highcharts 13.0.2 → 13.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1166) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +6 -2
  3. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +10 -6
  4. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +2 -1
  5. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +25 -1
  6. package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
  7. package/es-modules/Accessibility/Utils/HTMLUtilities.js +13 -3
  8. package/es-modules/Core/Animation/AnimationUtilities.js +7 -2
  9. package/es-modules/Core/Animation/Fx.js +1 -0
  10. package/es-modules/Core/Axis/Axis.js +181 -211
  11. package/es-modules/Core/Axis/Axis3DComposition.js +13 -15
  12. package/es-modules/Core/Axis/AxisDefaults.js +9 -8
  13. package/es-modules/Core/Axis/BrokenAxis.js +5 -4
  14. package/es-modules/Core/Axis/Color/ColorAxis.js +66 -54
  15. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -0
  16. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +6 -4
  17. package/es-modules/Core/Axis/DateTimeAxis.js +4 -3
  18. package/es-modules/Core/Axis/GridAxis.js +17 -13
  19. package/es-modules/Core/Axis/LogarithmicAxis.js +4 -3
  20. package/es-modules/Core/Axis/NavigatorAxisComposition.js +3 -4
  21. package/es-modules/Core/Axis/OrdinalAxis.js +0 -15
  22. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +135 -72
  23. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +72 -124
  24. package/es-modules/Core/Axis/RadialAxis.js +50 -7
  25. package/es-modules/Core/Axis/ScrollbarAxis.js +3 -0
  26. package/es-modules/Core/Axis/Stacking/StackItem.js +49 -75
  27. package/es-modules/Core/Axis/Stacking/StackingAxis.js +34 -22
  28. package/es-modules/Core/Axis/Tick.js +95 -92
  29. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +9 -13
  30. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  31. package/es-modules/Core/Chart/Chart.js +13 -4
  32. package/es-modules/Core/Chart/StockChart.js +20 -26
  33. package/es-modules/Core/Defaults.js +18 -0
  34. package/es-modules/Core/Globals.js +9 -7
  35. package/es-modules/Core/Pointer.js +7 -8
  36. package/es-modules/Core/Renderer/HTML/AST.js +19 -12
  37. package/es-modules/Core/Renderer/HTML/HTMLElement.js +5 -1
  38. package/es-modules/Core/Renderer/SVG/SVGElement.js +1 -0
  39. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +1 -1
  40. package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
  41. package/es-modules/Core/Renderer/SVG/TextBuilder.js +6 -2
  42. package/es-modules/Core/Series/OverlappingDataLabels.js +41 -32
  43. package/es-modules/Core/Series/Point.js +14 -11
  44. package/es-modules/Core/Series/Series.js +21 -10
  45. package/es-modules/Core/Tooltip.js +35 -40
  46. package/es-modules/Data/DataCursor.js +3 -2
  47. package/es-modules/Data/DataTable.js +21 -2
  48. package/es-modules/Data/DataTableCore.js +28 -4
  49. package/es-modules/Data/Formula/FormulaParser.js +30 -10
  50. package/es-modules/Extensions/Annotations/Annotation.js +5 -7
  51. package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -1
  52. package/es-modules/Extensions/Boost/BoostSeries.js +4 -13
  53. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +6 -4
  54. package/es-modules/Extensions/Breadcrumbs/BreadcrumbsDefaults.js +1 -1
  55. package/es-modules/Extensions/Data.js +4 -2
  56. package/es-modules/Extensions/DragPanes/DragPanes.js +6 -9
  57. package/es-modules/Extensions/Drilldown/Drilldown.js +9 -4
  58. package/es-modules/Extensions/ExportData/ExportData.js +24 -4
  59. package/es-modules/Extensions/Pane/Pane.js +1 -1
  60. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +5 -4
  61. package/es-modules/Extensions/StaticScale.js +13 -11
  62. package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
  63. package/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +1 -1
  64. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
  65. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +1 -1
  66. package/es-modules/Series/Bar/BarSeries.js +1 -1
  67. package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +1 -1
  68. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +1 -1
  69. package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
  70. package/es-modules/Series/Bullet/BulletSeriesDefaults.js +1 -1
  71. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -1
  72. package/es-modules/Series/Column/ColumnSeriesDefaults.js +6 -3
  73. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeriesDefaults.js +2 -3
  74. package/es-modules/Series/ColumnRange/ColumnRangeSeriesDefaults.js +1 -1
  75. package/es-modules/Series/Contour/ContourSeriesDefaults.js +12 -14
  76. package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +1 -1
  77. package/es-modules/Series/Flags/FlagsPoint.js +4 -2
  78. package/es-modules/Series/Flags/FlagsPointOptions.js +12 -0
  79. package/es-modules/Series/Flags/FlagsSeries.js +8 -7
  80. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +7 -7
  81. package/es-modules/Series/Flags/FlagsSeriesOptions.js +12 -0
  82. package/es-modules/Series/Flags/FlagsSymbols.js +5 -3
  83. package/es-modules/Series/Funnel/FunnelSeriesDefaults.js +1 -1
  84. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  85. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +1 -1
  86. package/es-modules/Series/HLC/HLCSeriesDefaults.js +1 -7
  87. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
  88. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
  89. package/es-modules/Series/Histogram/HistogramSeriesDefaults.js +1 -1
  90. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +1 -1
  91. package/es-modules/Series/Item/ItemSeriesDefaults.js +1 -1
  92. package/es-modules/Series/Line/LineSeries.js +0 -1
  93. package/es-modules/Series/Map/MapSeriesDefaults.js +1 -1
  94. package/es-modules/Series/MapBubble/MapBubbleSeries.js +0 -1
  95. package/es-modules/Series/MapLine/MapLineSeriesDefaults.js +1 -1
  96. package/es-modules/Series/MapPoint/MapPointSeriesDefaults.js +0 -1
  97. package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +5 -5
  98. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +0 -1
  99. package/es-modules/Series/PackedBubble/PackedBubbleChart.js +18 -0
  100. package/es-modules/Series/PackedBubble/PackedBubbleDataLabelOptions.js +12 -0
  101. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +3 -3
  102. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +2 -2
  103. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  104. package/es-modules/Series/PackedBubble/PackedBubblePointOptions.js +12 -0
  105. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +20 -20
  106. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +2 -2
  107. package/es-modules/Series/PackedBubble/PackedBubbleSeriesOptions.js +12 -0
  108. package/es-modules/Series/ParetoSeries/ParetoPoint.js +17 -0
  109. package/es-modules/Series/ParetoSeries/ParetoPointOptions.js +12 -0
  110. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -3
  111. package/es-modules/Series/ParetoSeries/ParetoSeriesDefaults.js +1 -1
  112. package/es-modules/Series/ParetoSeries/ParetoSeriesOptions.js +12 -0
  113. package/es-modules/Series/PathUtilities.js +3 -1
  114. package/es-modules/Series/Pictorial/PictorialPointOptions.js +12 -0
  115. package/es-modules/Series/Pictorial/PictorialSeries.js +5 -25
  116. package/es-modules/Series/Pictorial/PictorialSeriesDefaults.js +45 -0
  117. package/es-modules/Series/Pictorial/PictorialSeriesOptions.js +12 -0
  118. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
  119. package/es-modules/Series/Pie3D/Pie3DPoint.js +1 -1
  120. package/es-modules/Series/Pie3D/Pie3DSeries.js +6 -6
  121. package/es-modules/Series/PolarComposition.js +22 -21
  122. package/es-modules/Series/Polygon/PolygonPoint.js +17 -0
  123. package/es-modules/Series/Polygon/PolygonPointOptions.js +12 -0
  124. package/es-modules/Series/Polygon/PolygonSeriesDefaults.js +1 -1
  125. package/es-modules/Series/Polygon/PolygonSeriesOptions.js +12 -0
  126. package/es-modules/Series/Pyramid/PyramidPoint.js +19 -0
  127. package/es-modules/Series/Pyramid/PyramidPointOptions.js +14 -0
  128. package/es-modules/Series/Pyramid/PyramidSeries.js +1 -1
  129. package/es-modules/Series/Pyramid/PyramidSeriesDefaults.js +1 -1
  130. package/es-modules/Series/Pyramid/PyramidSeriesOptions.js +14 -0
  131. package/es-modules/Series/Pyramid3D/Pyramid3DPoint.js +19 -0
  132. package/es-modules/Series/Pyramid3D/Pyramid3DPointOptions.js +14 -0
  133. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +1 -1
  134. package/es-modules/Series/Pyramid3D/Pyramid3DSeriesOptions.js +14 -0
  135. package/es-modules/Series/Renko/RenkoSeriesDefaults.js +1 -2
  136. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +6 -7
  137. package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +1 -1
  138. package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +1 -1
  139. package/es-modules/Series/Spline/SplineSeries.js +1 -1
  140. package/es-modules/Series/Streamgraph/StreamgraphSeriesDefaults.js +1 -1
  141. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +1 -1
  142. package/es-modules/Series/TiledWebMap/TiledWebMapSeriesDefaults.js +2 -2
  143. package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +1 -1
  144. package/es-modules/Series/Timeline/TimelineSeriesDefaults.js +1 -1
  145. package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +1 -1
  146. package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +1 -1
  147. package/es-modules/Series/Variwide/VariwideComposition.js +11 -8
  148. package/es-modules/Series/Vector/VectorSeriesDefaults.js +1 -1
  149. package/es-modules/Series/Venn/VennSeriesDefaults.js +1 -1
  150. package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
  151. package/es-modules/Series/Windbarb/WindbarbSeriesDefaults.js +1 -1
  152. package/es-modules/Shared/Utilities.js +7 -0
  153. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +1 -1
  154. package/es-modules/Stock/Indicators/AD/ADIndicator.js +0 -1
  155. package/es-modules/Stock/Indicators/AO/AOIndicator.js +1 -1
  156. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  157. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +0 -1
  158. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  159. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +2 -2
  160. package/es-modules/Stock/Indicators/BB/BBIndicator.js +0 -1
  161. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +0 -1
  162. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +0 -1
  163. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +0 -1
  164. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  165. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -1
  166. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +3 -3
  167. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
  168. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -3
  169. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +0 -1
  170. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +0 -1
  171. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +1 -1
  172. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +0 -1
  173. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngleIndicator.js +0 -1
  174. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionInterceptIndicator.js +0 -1
  175. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopesIndicator.js +0 -1
  176. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +0 -1
  177. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +0 -1
  178. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +0 -1
  179. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +0 -1
  180. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +0 -1
  181. package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
  182. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  183. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +0 -1
  184. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +0 -1
  185. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +0 -1
  186. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +0 -1
  187. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +0 -1
  188. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  189. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -3
  190. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +1 -1
  191. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +1 -1
  192. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +1 -1
  193. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +0 -1
  194. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +1 -1
  195. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +0 -1
  196. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +0 -1
  197. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  198. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +0 -1
  199. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +5 -5
  200. package/es-modules/Stock/Navigator/Navigator.js +1 -5
  201. package/es-modules/Stock/Navigator/StandaloneNavigator.js +38 -8
  202. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
  203. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
  204. package/es-modules/masters/highcharts-3d.src.js +1 -1
  205. package/es-modules/masters/highcharts-autoload.src.js +1 -1
  206. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  207. package/es-modules/masters/highcharts-more.src.js +1 -1
  208. package/es-modules/masters/highcharts.src.js +1 -1
  209. package/es-modules/masters/highmaps.src.js +1 -1
  210. package/es-modules/masters/highstock.src.js +1 -1
  211. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  212. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  213. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  214. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  215. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  216. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  217. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  218. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  219. package/es-modules/masters/indicators/ao.src.js +1 -1
  220. package/es-modules/masters/indicators/apo.src.js +1 -1
  221. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  222. package/es-modules/masters/indicators/aroon.src.js +1 -1
  223. package/es-modules/masters/indicators/atr.src.js +1 -1
  224. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  225. package/es-modules/masters/indicators/cci.src.js +1 -1
  226. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  227. package/es-modules/masters/indicators/cmf.src.js +1 -1
  228. package/es-modules/masters/indicators/cmo.src.js +1 -1
  229. package/es-modules/masters/indicators/dema.src.js +1 -1
  230. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  231. package/es-modules/masters/indicators/dmi.src.js +1 -1
  232. package/es-modules/masters/indicators/dpo.src.js +1 -1
  233. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  234. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  235. package/es-modules/masters/indicators/indicators.src.js +1 -1
  236. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  237. package/es-modules/masters/indicators/klinger.src.js +1 -1
  238. package/es-modules/masters/indicators/macd.src.js +1 -1
  239. package/es-modules/masters/indicators/mfi.src.js +1 -1
  240. package/es-modules/masters/indicators/momentum.src.js +1 -1
  241. package/es-modules/masters/indicators/natr.src.js +1 -1
  242. package/es-modules/masters/indicators/obv.src.js +1 -1
  243. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  244. package/es-modules/masters/indicators/ppo.src.js +1 -1
  245. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  246. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  247. package/es-modules/masters/indicators/psar.src.js +1 -1
  248. package/es-modules/masters/indicators/regressions.src.js +1 -1
  249. package/es-modules/masters/indicators/roc.src.js +1 -1
  250. package/es-modules/masters/indicators/rsi.src.js +1 -1
  251. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  252. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  253. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  254. package/es-modules/masters/indicators/tema.src.js +1 -1
  255. package/es-modules/masters/indicators/trendline.src.js +1 -1
  256. package/es-modules/masters/indicators/trix.src.js +1 -1
  257. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  258. package/es-modules/masters/indicators/vwap.src.js +1 -1
  259. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  260. package/es-modules/masters/indicators/wma.src.js +1 -1
  261. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  262. package/es-modules/masters/modules/accessibility.src.js +1 -1
  263. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  264. package/es-modules/masters/modules/annotations.src.js +1 -1
  265. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  266. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  267. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  268. package/es-modules/masters/modules/boost.src.js +1 -1
  269. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  270. package/es-modules/masters/modules/bullet.src.js +1 -1
  271. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  272. package/es-modules/masters/modules/contour.src.js +1 -1
  273. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  274. package/es-modules/masters/modules/cylinder.src.js +1 -1
  275. package/es-modules/masters/modules/data-sorting.src.js +1 -1
  276. package/es-modules/masters/modules/data-tools.src.js +1 -1
  277. package/es-modules/masters/modules/data.src.js +1 -1
  278. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  279. package/es-modules/masters/modules/debugger.src.js +1 -1
  280. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  281. package/es-modules/masters/modules/dotplot.src.js +1 -1
  282. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  283. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  284. package/es-modules/masters/modules/drilldown.src.js +1 -1
  285. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  286. package/es-modules/masters/modules/export-data.src.js +1 -1
  287. package/es-modules/masters/modules/exporting.src.js +1 -1
  288. package/es-modules/masters/modules/flowmap.src.js +1 -1
  289. package/es-modules/masters/modules/full-screen.src.js +1 -1
  290. package/es-modules/masters/modules/funnel.src.js +1 -1
  291. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  292. package/es-modules/masters/modules/gantt.src.js +1 -1
  293. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  294. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  295. package/es-modules/masters/modules/heatmap.src.js +1 -1
  296. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  297. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  298. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  299. package/es-modules/masters/modules/item-series.src.js +1 -1
  300. package/es-modules/masters/modules/lollipop.src.js +1 -1
  301. package/es-modules/masters/modules/map.src.js +1 -1
  302. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  303. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  304. package/es-modules/masters/modules/navigator.src.js +1 -1
  305. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  306. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  307. package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  308. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  309. package/es-modules/masters/modules/organization.src.js +1 -1
  310. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  311. package/es-modules/masters/modules/pareto.src.js +1 -1
  312. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  313. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  314. package/es-modules/masters/modules/pictorial.src.js +1 -1
  315. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  316. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  317. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  318. package/es-modules/masters/modules/renko.src.js +1 -1
  319. package/es-modules/masters/modules/sankey.src.js +1 -1
  320. package/es-modules/masters/modules/series-label.src.js +1 -1
  321. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  322. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  323. package/es-modules/masters/modules/sonification.src.js +1 -1
  324. package/es-modules/masters/modules/static-scale.src.js +1 -1
  325. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  326. package/es-modules/masters/modules/stock.src.js +1 -1
  327. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  328. package/es-modules/masters/modules/sunburst.src.js +1 -1
  329. package/es-modules/masters/modules/textpath.src.js +1 -1
  330. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  331. package/es-modules/masters/modules/tilemap.src.js +1 -1
  332. package/es-modules/masters/modules/timeline.src.js +1 -1
  333. package/es-modules/masters/modules/treegraph.src.js +1 -1
  334. package/es-modules/masters/modules/treegrid.src.js +1 -1
  335. package/es-modules/masters/modules/treemap.src.js +1 -1
  336. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  337. package/es-modules/masters/modules/variwide.src.js +1 -1
  338. package/es-modules/masters/modules/vector.src.js +1 -1
  339. package/es-modules/masters/modules/venn.src.js +1 -1
  340. package/es-modules/masters/modules/windbarb.src.js +1 -1
  341. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  342. package/es-modules/masters/modules/xrange.src.js +1 -1
  343. package/es-modules/masters/standalone-navigator.src.js +1 -1
  344. package/es-modules/masters/themes/adaptive.src.js +1 -1
  345. package/es-modules/masters/themes/avocado.src.js +1 -1
  346. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  347. package/es-modules/masters/themes/grid-light.src.js +1 -1
  348. package/es-modules/masters/themes/high-contrast.src.js +1 -1
  349. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  350. package/es-modules/masters/themes/sunset.src.js +1 -1
  351. package/es-modules/tsconfig.tsbuildinfo +1 -1
  352. package/esm/highcharts-3d.js +2 -2
  353. package/esm/highcharts-3d.src.js +38 -61
  354. package/esm/highcharts-autoload.js +2 -2
  355. package/esm/highcharts-autoload.src.js +18 -39
  356. package/esm/highcharts-gantt.js +1 -1
  357. package/esm/highcharts-gantt.src.js +1 -1
  358. package/esm/highcharts-more.js +2 -2
  359. package/esm/highcharts-more.src.js +142 -120
  360. package/esm/highcharts.js +4 -4
  361. package/esm/highcharts.src.js +825 -751
  362. package/esm/highmaps.js +1 -1
  363. package/esm/highmaps.src.js +1 -1
  364. package/esm/highstock.js +1 -1
  365. package/esm/highstock.src.js +1 -1
  366. package/esm/i18n/fr-FR.js +2 -2
  367. package/esm/i18n/fr-FR.src.js +17 -38
  368. package/esm/i18n/nb-NO.js +2 -2
  369. package/esm/i18n/nb-NO.src.js +17 -38
  370. package/esm/i18n/zh-CN.js +2 -2
  371. package/esm/i18n/zh-CN.src.js +17 -38
  372. package/esm/indicators/acceleration-bands.js +2 -2
  373. package/esm/indicators/acceleration-bands.src.js +18 -39
  374. package/esm/indicators/accumulation-distribution.js +2 -2
  375. package/esm/indicators/accumulation-distribution.src.js +17 -39
  376. package/esm/indicators/ao.js +2 -2
  377. package/esm/indicators/ao.src.js +18 -39
  378. package/esm/indicators/apo.js +2 -2
  379. package/esm/indicators/apo.src.js +18 -39
  380. package/esm/indicators/aroon-oscillator.js +2 -2
  381. package/esm/indicators/aroon-oscillator.src.js +19 -40
  382. package/esm/indicators/aroon.js +2 -2
  383. package/esm/indicators/aroon.src.js +18 -39
  384. package/esm/indicators/atr.js +2 -2
  385. package/esm/indicators/atr.src.js +17 -39
  386. package/esm/indicators/bollinger-bands.js +2 -2
  387. package/esm/indicators/bollinger-bands.src.js +17 -39
  388. package/esm/indicators/cci.js +2 -2
  389. package/esm/indicators/cci.src.js +17 -39
  390. package/esm/indicators/chaikin.js +2 -2
  391. package/esm/indicators/chaikin.src.js +18 -40
  392. package/esm/indicators/cmf.js +2 -2
  393. package/esm/indicators/cmf.src.js +17 -39
  394. package/esm/indicators/cmo.js +2 -2
  395. package/esm/indicators/cmo.src.js +17 -39
  396. package/esm/indicators/dema.js +2 -2
  397. package/esm/indicators/dema.src.js +18 -39
  398. package/esm/indicators/disparity-index.js +2 -2
  399. package/esm/indicators/disparity-index.src.js +20 -41
  400. package/esm/indicators/dmi.js +2 -2
  401. package/esm/indicators/dmi.src.js +20 -41
  402. package/esm/indicators/dpo.js +2 -2
  403. package/esm/indicators/dpo.src.js +18 -39
  404. package/esm/indicators/ichimoku-kinko-hyo.js +2 -2
  405. package/esm/indicators/ichimoku-kinko-hyo.src.js +18 -40
  406. package/esm/indicators/indicators-all.js +2 -2
  407. package/esm/indicators/indicators-all.src.js +76 -99
  408. package/esm/indicators/indicators.js +2 -2
  409. package/esm/indicators/indicators.src.js +48 -46
  410. package/esm/indicators/keltner-channels.js +2 -2
  411. package/esm/indicators/keltner-channels.src.js +18 -39
  412. package/esm/indicators/klinger.js +2 -2
  413. package/esm/indicators/klinger.src.js +17 -38
  414. package/esm/indicators/macd.js +2 -2
  415. package/esm/indicators/macd.src.js +17 -39
  416. package/esm/indicators/mfi.js +2 -2
  417. package/esm/indicators/mfi.src.js +17 -39
  418. package/esm/indicators/momentum.js +2 -2
  419. package/esm/indicators/momentum.src.js +17 -39
  420. package/esm/indicators/natr.js +2 -2
  421. package/esm/indicators/natr.src.js +17 -39
  422. package/esm/indicators/obv.js +2 -2
  423. package/esm/indicators/obv.src.js +17 -39
  424. package/esm/indicators/pivot-points.js +2 -2
  425. package/esm/indicators/pivot-points.src.js +17 -39
  426. package/esm/indicators/ppo.js +2 -2
  427. package/esm/indicators/ppo.src.js +18 -39
  428. package/esm/indicators/price-channel.js +2 -2
  429. package/esm/indicators/price-channel.src.js +18 -39
  430. package/esm/indicators/price-envelopes.js +2 -2
  431. package/esm/indicators/price-envelopes.src.js +17 -39
  432. package/esm/indicators/psar.js +2 -2
  433. package/esm/indicators/psar.src.js +17 -39
  434. package/esm/indicators/regressions.js +2 -2
  435. package/esm/indicators/regressions.src.js +17 -42
  436. package/esm/indicators/roc.js +2 -2
  437. package/esm/indicators/roc.src.js +17 -39
  438. package/esm/indicators/rsi.js +2 -2
  439. package/esm/indicators/rsi.src.js +17 -39
  440. package/esm/indicators/slow-stochastic.js +2 -2
  441. package/esm/indicators/slow-stochastic.src.js +17 -38
  442. package/esm/indicators/stochastic.js +2 -2
  443. package/esm/indicators/stochastic.src.js +20 -41
  444. package/esm/indicators/supertrend.js +2 -2
  445. package/esm/indicators/supertrend.src.js +19 -40
  446. package/esm/indicators/tema.js +2 -2
  447. package/esm/indicators/tema.src.js +18 -39
  448. package/esm/indicators/trendline.js +2 -2
  449. package/esm/indicators/trendline.src.js +17 -39
  450. package/esm/indicators/trix.js +2 -2
  451. package/esm/indicators/trix.src.js +18 -39
  452. package/esm/indicators/volume-by-price.js +2 -2
  453. package/esm/indicators/volume-by-price.src.js +18 -39
  454. package/esm/indicators/vwap.js +2 -2
  455. package/esm/indicators/vwap.src.js +17 -39
  456. package/esm/indicators/williams-r.js +2 -2
  457. package/esm/indicators/williams-r.src.js +18 -39
  458. package/esm/indicators/wma.js +2 -2
  459. package/esm/indicators/wma.src.js +17 -39
  460. package/esm/indicators/zigzag.js +2 -2
  461. package/esm/indicators/zigzag.src.js +17 -39
  462. package/esm/modules/accessibility.js +2 -2
  463. package/esm/modules/accessibility.src.js +90 -76
  464. package/esm/modules/annotations-advanced.js +3 -3
  465. package/esm/modules/annotations-advanced.src.js +36 -58
  466. package/esm/modules/annotations.js +3 -3
  467. package/esm/modules/annotations.src.js +36 -58
  468. package/esm/modules/arc-diagram.js +2 -2
  469. package/esm/modules/arc-diagram.src.js +18 -39
  470. package/esm/modules/arrow-symbols.js +3 -3
  471. package/esm/modules/arrow-symbols.src.js +17 -38
  472. package/esm/modules/boost-canvas.js +2 -2
  473. package/esm/modules/boost-canvas.src.js +57 -63
  474. package/esm/modules/boost.js +2 -2
  475. package/esm/modules/boost.src.js +56 -62
  476. package/esm/modules/broken-axis.js +2 -2
  477. package/esm/modules/broken-axis.src.js +21 -41
  478. package/esm/modules/bullet.js +2 -2
  479. package/esm/modules/bullet.src.js +18 -39
  480. package/esm/modules/coloraxis.js +2 -2
  481. package/esm/modules/coloraxis.src.js +92 -96
  482. package/esm/modules/contour.js +3 -3
  483. package/esm/modules/contour.src.js +29 -52
  484. package/esm/modules/current-date-indicator.js +2 -2
  485. package/esm/modules/current-date-indicator.src.js +17 -38
  486. package/esm/modules/cylinder.js +2 -2
  487. package/esm/modules/cylinder.src.js +18 -39
  488. package/esm/modules/data-sorting.js +2 -2
  489. package/esm/modules/data-sorting.src.js +18 -39
  490. package/esm/modules/data-tools.js +2 -2
  491. package/esm/modules/data-tools.src.js +110 -67
  492. package/esm/modules/data.js +4 -4
  493. package/esm/modules/data.src.js +53 -48
  494. package/esm/modules/datagrouping.js +2 -2
  495. package/esm/modules/datagrouping.src.js +52 -48
  496. package/esm/modules/debugger.js +2 -2
  497. package/esm/modules/debugger.src.js +17 -38
  498. package/esm/modules/dependency-wheel.js +2 -2
  499. package/esm/modules/dependency-wheel.src.js +17 -38
  500. package/esm/modules/dotplot.js +2 -2
  501. package/esm/modules/dotplot.src.js +17 -38
  502. package/esm/modules/drag-panes.js +2 -2
  503. package/esm/modules/drag-panes.src.js +22 -46
  504. package/esm/modules/draggable-points.js +2 -2
  505. package/esm/modules/draggable-points.src.js +17 -38
  506. package/esm/modules/drilldown.js +2 -2
  507. package/esm/modules/drilldown.src.js +40 -54
  508. package/esm/modules/dumbbell.js +2 -2
  509. package/esm/modules/dumbbell.src.js +18 -39
  510. package/esm/modules/export-data.js +2 -2
  511. package/esm/modules/export-data.src.js +42 -43
  512. package/esm/modules/exporting.js +2 -2
  513. package/esm/modules/exporting.src.js +26 -47
  514. package/esm/modules/flowmap.js +2 -2
  515. package/esm/modules/flowmap.src.js +17 -38
  516. package/esm/modules/full-screen.js +2 -2
  517. package/esm/modules/full-screen.src.js +17 -38
  518. package/esm/modules/funnel.js +2 -2
  519. package/esm/modules/funnel.src.js +21 -42
  520. package/esm/modules/funnel3d.js +2 -2
  521. package/esm/modules/funnel3d.src.js +18 -39
  522. package/esm/modules/gantt.js +2 -2
  523. package/esm/modules/gantt.src.js +84 -104
  524. package/esm/modules/geoheatmap.js +2 -2
  525. package/esm/modules/geoheatmap.src.js +18 -39
  526. package/esm/modules/grid-axis.js +2 -2
  527. package/esm/modules/grid-axis.src.js +34 -51
  528. package/esm/modules/heatmap.js +2 -2
  529. package/esm/modules/heatmap.src.js +20 -41
  530. package/esm/modules/heikinashi.js +2 -2
  531. package/esm/modules/heikinashi.src.js +18 -39
  532. package/esm/modules/histogram-bellcurve.js +2 -2
  533. package/esm/modules/histogram-bellcurve.src.js +19 -40
  534. package/esm/modules/hollowcandlestick.js +2 -2
  535. package/esm/modules/hollowcandlestick.src.js +18 -39
  536. package/esm/modules/item-series.js +2 -2
  537. package/esm/modules/item-series.src.js +19 -40
  538. package/esm/modules/lollipop.js +2 -2
  539. package/esm/modules/lollipop.src.js +18 -39
  540. package/esm/modules/map.js +2 -2
  541. package/esm/modules/map.src.js +64 -63
  542. package/esm/modules/marker-clusters.js +2 -2
  543. package/esm/modules/marker-clusters.src.js +49 -46
  544. package/esm/modules/mouse-wheel-zoom.js +2 -2
  545. package/esm/modules/mouse-wheel-zoom.src.js +17 -38
  546. package/esm/modules/navigator.js +2 -2
  547. package/esm/modules/navigator.src.js +72 -67
  548. package/esm/modules/networkgraph.js +2 -2
  549. package/esm/modules/networkgraph.src.js +24 -45
  550. package/esm/modules/no-data-to-display.js +2 -2
  551. package/esm/modules/no-data-to-display.src.js +17 -38
  552. package/esm/modules/non-cartesian-zoom.js +2 -2
  553. package/esm/modules/non-cartesian-zoom.src.js +17 -38
  554. package/esm/modules/offline-exporting.js +2 -2
  555. package/esm/modules/offline-exporting.src.js +19 -40
  556. package/esm/modules/organization.js +2 -2
  557. package/esm/modules/organization.src.js +20 -39
  558. package/esm/modules/parallel-coordinates.js +2 -2
  559. package/esm/modules/parallel-coordinates.src.js +24 -44
  560. package/esm/modules/pareto.js +2 -2
  561. package/esm/modules/pareto.src.js +21 -42
  562. package/esm/modules/pathfinder.js +2 -2
  563. package/esm/modules/pathfinder.src.js +20 -39
  564. package/esm/modules/pattern-fill.js +2 -2
  565. package/esm/modules/pattern-fill.src.js +17 -38
  566. package/esm/modules/pictorial.js +2 -2
  567. package/esm/modules/pictorial.src.js +71 -65
  568. package/esm/modules/pointandfigure.js +2 -2
  569. package/esm/modules/pointandfigure.src.js +47 -44
  570. package/esm/modules/price-indicator.js +2 -2
  571. package/esm/modules/price-indicator.src.js +17 -38
  572. package/esm/modules/pyramid3d.js +2 -2
  573. package/esm/modules/pyramid3d.src.js +18 -39
  574. package/esm/modules/renko.js +2 -2
  575. package/esm/modules/renko.src.js +18 -40
  576. package/esm/modules/sankey.js +2 -2
  577. package/esm/modules/sankey.src.js +24 -46
  578. package/esm/modules/series-label.js +2 -2
  579. package/esm/modules/series-label.src.js +17 -38
  580. package/esm/modules/series-on-point.js +2 -2
  581. package/esm/modules/series-on-point.src.js +47 -44
  582. package/esm/modules/solid-gauge.js +2 -2
  583. package/esm/modules/solid-gauge.src.js +18 -39
  584. package/esm/modules/sonification.js +2 -2
  585. package/esm/modules/sonification.src.js +18 -39
  586. package/esm/modules/static-scale.js +2 -2
  587. package/esm/modules/static-scale.src.js +30 -49
  588. package/esm/modules/stock-tools.js +2 -2
  589. package/esm/modules/stock-tools.src.js +29 -50
  590. package/esm/modules/stock.js +2 -2
  591. package/esm/modules/stock.src.js +117 -141
  592. package/esm/modules/streamgraph.js +2 -2
  593. package/esm/modules/streamgraph.src.js +18 -39
  594. package/esm/modules/sunburst.js +2 -2
  595. package/esm/modules/sunburst.src.js +38 -57
  596. package/esm/modules/textpath.js +2 -2
  597. package/esm/modules/textpath.src.js +17 -38
  598. package/esm/modules/tiledwebmap.js +3 -3
  599. package/esm/modules/tiledwebmap.src.js +19 -40
  600. package/esm/modules/tilemap.js +2 -2
  601. package/esm/modules/tilemap.src.js +22 -40
  602. package/esm/modules/timeline.js +2 -2
  603. package/esm/modules/timeline.src.js +19 -40
  604. package/esm/modules/treegraph.js +2 -2
  605. package/esm/modules/treegraph.src.js +23 -42
  606. package/esm/modules/treegrid.js +2 -2
  607. package/esm/modules/treegrid.src.js +47 -67
  608. package/esm/modules/treemap.js +2 -2
  609. package/esm/modules/treemap.src.js +34 -53
  610. package/esm/modules/variable-pie.js +2 -2
  611. package/esm/modules/variable-pie.src.js +19 -40
  612. package/esm/modules/variwide.js +2 -2
  613. package/esm/modules/variwide.src.js +28 -46
  614. package/esm/modules/vector.js +2 -2
  615. package/esm/modules/vector.src.js +18 -39
  616. package/esm/modules/venn.js +2 -2
  617. package/esm/modules/venn.src.js +18 -39
  618. package/esm/modules/windbarb.js +2 -2
  619. package/esm/modules/windbarb.src.js +18 -39
  620. package/esm/modules/wordcloud.js +2 -2
  621. package/esm/modules/wordcloud.src.js +18 -39
  622. package/esm/modules/xrange.js +2 -2
  623. package/esm/modules/xrange.src.js +18 -39
  624. package/esm/standalone-navigator.js +4 -4
  625. package/esm/standalone-navigator.src.js +877 -777
  626. package/esm/themes/adaptive.js +2 -2
  627. package/esm/themes/adaptive.src.js +17 -38
  628. package/esm/themes/avocado.js +2 -2
  629. package/esm/themes/avocado.src.js +17 -38
  630. package/esm/themes/dark-unica.js +2 -2
  631. package/esm/themes/dark-unica.src.js +17 -38
  632. package/esm/themes/grid-light.js +2 -2
  633. package/esm/themes/grid-light.src.js +17 -38
  634. package/esm/themes/high-contrast.js +2 -2
  635. package/esm/themes/high-contrast.src.js +17 -38
  636. package/esm/themes/sand-signika.js +2 -2
  637. package/esm/themes/sand-signika.src.js +17 -38
  638. package/esm/themes/sunset.js +2 -2
  639. package/esm/themes/sunset.src.js +17 -38
  640. package/highcharts-3d.js +2 -2
  641. package/highcharts-3d.src.js +43 -66
  642. package/highcharts-autoload.d.ts +0 -1
  643. package/highcharts-autoload.js +4 -4
  644. package/highcharts-autoload.src.d.ts +0 -1
  645. package/highcharts-autoload.src.js +834 -779
  646. package/highcharts-gantt.js +4 -4
  647. package/highcharts-gantt.src.js +896 -840
  648. package/highcharts-more.d.ts +10 -0
  649. package/highcharts-more.js +2 -2
  650. package/highcharts-more.src.d.ts +10 -0
  651. package/highcharts-more.src.js +147 -125
  652. package/highcharts.d.ts +2785 -80144
  653. package/highcharts.js +4 -4
  654. package/highcharts.src.d.ts +2785 -80144
  655. package/highcharts.src.js +833 -778
  656. package/highmaps.js +4 -4
  657. package/highmaps.src.js +916 -846
  658. package/highstock.js +4 -4
  659. package/highstock.src.js +904 -875
  660. package/i18n/fr-FR.js +2 -2
  661. package/i18n/fr-FR.src.js +26 -37
  662. package/i18n/nb-NO.js +2 -2
  663. package/i18n/nb-NO.src.js +26 -37
  664. package/i18n/zh-CN.js +2 -2
  665. package/i18n/zh-CN.src.js +26 -37
  666. package/indicators/acceleration-bands.js +2 -2
  667. package/indicators/acceleration-bands.src.js +23 -44
  668. package/indicators/accumulation-distribution.js +2 -2
  669. package/indicators/accumulation-distribution.src.js +22 -44
  670. package/indicators/ao.js +2 -2
  671. package/indicators/ao.src.js +23 -44
  672. package/indicators/apo.js +2 -2
  673. package/indicators/apo.src.js +23 -44
  674. package/indicators/aroon-oscillator.js +2 -2
  675. package/indicators/aroon-oscillator.src.js +24 -45
  676. package/indicators/aroon.js +2 -2
  677. package/indicators/aroon.src.js +23 -44
  678. package/indicators/atr.js +2 -2
  679. package/indicators/atr.src.js +22 -44
  680. package/indicators/bollinger-bands.js +2 -2
  681. package/indicators/bollinger-bands.src.js +22 -44
  682. package/indicators/cci.js +2 -2
  683. package/indicators/cci.src.js +22 -44
  684. package/indicators/chaikin.js +2 -2
  685. package/indicators/chaikin.src.js +23 -45
  686. package/indicators/cmf.js +2 -2
  687. package/indicators/cmf.src.js +22 -44
  688. package/indicators/cmo.js +2 -2
  689. package/indicators/cmo.src.js +22 -44
  690. package/indicators/dema.js +2 -2
  691. package/indicators/dema.src.js +23 -44
  692. package/indicators/disparity-index.js +2 -2
  693. package/indicators/disparity-index.src.js +25 -46
  694. package/indicators/dmi.js +2 -2
  695. package/indicators/dmi.src.js +25 -46
  696. package/indicators/dpo.js +2 -2
  697. package/indicators/dpo.src.js +23 -44
  698. package/indicators/ichimoku-kinko-hyo.js +2 -2
  699. package/indicators/ichimoku-kinko-hyo.src.js +23 -45
  700. package/indicators/indicators-all.js +2 -2
  701. package/indicators/indicators-all.src.js +81 -104
  702. package/indicators/indicators.js +2 -2
  703. package/indicators/indicators.src.js +53 -51
  704. package/indicators/keltner-channels.js +2 -2
  705. package/indicators/keltner-channels.src.js +23 -44
  706. package/indicators/klinger.js +2 -2
  707. package/indicators/klinger.src.js +22 -43
  708. package/indicators/macd.js +2 -2
  709. package/indicators/macd.src.js +22 -44
  710. package/indicators/mfi.js +2 -2
  711. package/indicators/mfi.src.js +22 -44
  712. package/indicators/momentum.js +2 -2
  713. package/indicators/momentum.src.js +22 -44
  714. package/indicators/natr.js +2 -2
  715. package/indicators/natr.src.js +22 -44
  716. package/indicators/obv.js +2 -2
  717. package/indicators/obv.src.js +22 -44
  718. package/indicators/pivot-points.js +2 -2
  719. package/indicators/pivot-points.src.js +22 -44
  720. package/indicators/ppo.js +2 -2
  721. package/indicators/ppo.src.js +23 -44
  722. package/indicators/price-channel.js +2 -2
  723. package/indicators/price-channel.src.js +23 -44
  724. package/indicators/price-envelopes.js +2 -2
  725. package/indicators/price-envelopes.src.js +22 -44
  726. package/indicators/psar.js +2 -2
  727. package/indicators/psar.src.js +22 -44
  728. package/indicators/regressions.js +2 -2
  729. package/indicators/regressions.src.js +22 -47
  730. package/indicators/roc.js +2 -2
  731. package/indicators/roc.src.js +22 -44
  732. package/indicators/rsi.js +2 -2
  733. package/indicators/rsi.src.js +22 -44
  734. package/indicators/slow-stochastic.js +2 -2
  735. package/indicators/slow-stochastic.src.js +22 -43
  736. package/indicators/stochastic.js +2 -2
  737. package/indicators/stochastic.src.js +25 -46
  738. package/indicators/supertrend.js +2 -2
  739. package/indicators/supertrend.src.js +24 -45
  740. package/indicators/tema.js +2 -2
  741. package/indicators/tema.src.js +23 -44
  742. package/indicators/trendline.js +2 -2
  743. package/indicators/trendline.src.js +22 -44
  744. package/indicators/trix.js +2 -2
  745. package/indicators/trix.src.js +23 -44
  746. package/indicators/volume-by-price.js +2 -2
  747. package/indicators/volume-by-price.src.js +23 -44
  748. package/indicators/vwap.js +2 -2
  749. package/indicators/vwap.src.js +22 -44
  750. package/indicators/williams-r.js +2 -2
  751. package/indicators/williams-r.src.js +23 -44
  752. package/indicators/wma.js +2 -2
  753. package/indicators/wma.src.js +22 -44
  754. package/indicators/zigzag.js +2 -2
  755. package/indicators/zigzag.src.js +22 -44
  756. package/modules/accessibility.js +2 -2
  757. package/modules/accessibility.src.js +95 -81
  758. package/modules/annotations-advanced.js +9 -9
  759. package/modules/annotations-advanced.src.js +41 -63
  760. package/modules/annotations.js +3 -3
  761. package/modules/annotations.src.js +41 -63
  762. package/modules/arc-diagram.js +2 -2
  763. package/modules/arc-diagram.src.js +23 -44
  764. package/modules/arrow-symbols.js +2 -2
  765. package/modules/arrow-symbols.src.js +17 -38
  766. package/modules/boost-canvas.js +2 -2
  767. package/modules/boost-canvas.src.js +62 -68
  768. package/modules/boost.js +2 -2
  769. package/modules/boost.src.js +61 -67
  770. package/modules/broken-axis.js +2 -2
  771. package/modules/broken-axis.src.js +26 -46
  772. package/modules/bullet.js +2 -2
  773. package/modules/bullet.src.js +23 -44
  774. package/modules/coloraxis.js +2 -2
  775. package/modules/coloraxis.src.js +97 -101
  776. package/modules/contour.js +5 -5
  777. package/modules/contour.src.js +111 -117
  778. package/modules/current-date-indicator.js +2 -2
  779. package/modules/current-date-indicator.src.js +17 -38
  780. package/modules/cylinder.js +2 -2
  781. package/modules/cylinder.src.js +23 -44
  782. package/modules/data-sorting.js +2 -2
  783. package/modules/data-sorting.src.js +18 -39
  784. package/modules/data-tools.js +2 -2
  785. package/modules/data-tools.src.js +110 -67
  786. package/modules/data.js +4 -4
  787. package/modules/data.src.js +58 -53
  788. package/modules/datagrouping.js +2 -2
  789. package/modules/datagrouping.src.js +57 -53
  790. package/modules/debugger.js +2 -2
  791. package/modules/debugger.src.js +17 -38
  792. package/modules/dependency-wheel.js +2 -2
  793. package/modules/dependency-wheel.src.js +22 -43
  794. package/modules/dotplot.js +2 -2
  795. package/modules/dotplot.src.js +22 -43
  796. package/modules/drag-panes.js +2 -2
  797. package/modules/drag-panes.src.js +22 -46
  798. package/modules/draggable-points.js +2 -2
  799. package/modules/draggable-points.src.js +17 -38
  800. package/modules/drilldown.js +2 -2
  801. package/modules/drilldown.src.js +45 -59
  802. package/modules/dumbbell.js +2 -2
  803. package/modules/dumbbell.src.js +23 -44
  804. package/modules/export-data.js +2 -2
  805. package/modules/export-data.src.js +47 -48
  806. package/modules/exporting.js +2 -2
  807. package/modules/exporting.src.js +31 -52
  808. package/modules/flowmap.js +2 -2
  809. package/modules/flowmap.src.js +22 -43
  810. package/modules/full-screen.js +2 -2
  811. package/modules/full-screen.src.js +22 -43
  812. package/modules/funnel.js +2 -2
  813. package/modules/funnel.src.js +26 -47
  814. package/modules/funnel3d.js +2 -2
  815. package/modules/funnel3d.src.js +23 -44
  816. package/modules/gantt.js +8 -8
  817. package/modules/gantt.src.js +93 -113
  818. package/modules/geoheatmap.js +2 -2
  819. package/modules/geoheatmap.src.js +23 -44
  820. package/modules/grid-axis.js +2 -2
  821. package/modules/grid-axis.src.js +39 -56
  822. package/modules/heatmap.js +4 -4
  823. package/modules/heatmap.src.js +101 -105
  824. package/modules/heikinashi.js +2 -2
  825. package/modules/heikinashi.src.js +23 -44
  826. package/modules/histogram-bellcurve.js +2 -2
  827. package/modules/histogram-bellcurve.src.js +24 -45
  828. package/modules/hollowcandlestick.js +2 -2
  829. package/modules/hollowcandlestick.src.js +23 -44
  830. package/modules/item-series.js +2 -2
  831. package/modules/item-series.src.js +24 -45
  832. package/modules/lollipop.js +2 -2
  833. package/modules/lollipop.src.js +23 -44
  834. package/modules/map.js +4 -4
  835. package/modules/map.src.js +146 -128
  836. package/modules/marker-clusters.js +2 -2
  837. package/modules/marker-clusters.src.js +49 -46
  838. package/modules/mouse-wheel-zoom.js +2 -2
  839. package/modules/mouse-wheel-zoom.src.js +17 -38
  840. package/modules/navigator.js +2 -2
  841. package/modules/navigator.src.js +77 -72
  842. package/modules/networkgraph.js +2 -2
  843. package/modules/networkgraph.src.js +29 -50
  844. package/modules/no-data-to-display.js +2 -2
  845. package/modules/no-data-to-display.src.js +22 -43
  846. package/modules/non-cartesian-zoom.js +2 -2
  847. package/modules/non-cartesian-zoom.src.js +17 -38
  848. package/modules/offline-exporting.js +2 -2
  849. package/modules/offline-exporting.src.js +24 -45
  850. package/modules/organization.js +3 -3
  851. package/modules/organization.src.js +25 -44
  852. package/modules/parallel-coordinates.js +2 -2
  853. package/modules/parallel-coordinates.src.js +29 -49
  854. package/modules/pareto.js +2 -2
  855. package/modules/pareto.src.js +26 -47
  856. package/modules/pathfinder.js +2 -2
  857. package/modules/pathfinder.src.js +25 -44
  858. package/modules/pattern-fill.js +2 -2
  859. package/modules/pattern-fill.src.js +17 -38
  860. package/modules/pictorial.js +2 -2
  861. package/modules/pictorial.src.js +76 -70
  862. package/modules/pointandfigure.js +2 -2
  863. package/modules/pointandfigure.src.js +52 -49
  864. package/modules/price-indicator.js +2 -2
  865. package/modules/price-indicator.src.js +17 -38
  866. package/modules/pyramid3d.js +2 -2
  867. package/modules/pyramid3d.src.js +23 -44
  868. package/modules/renko.js +2 -2
  869. package/modules/renko.src.js +23 -45
  870. package/modules/sankey.js +2 -2
  871. package/modules/sankey.src.js +29 -51
  872. package/modules/series-label.js +2 -2
  873. package/modules/series-label.src.js +22 -43
  874. package/modules/series-on-point.js +2 -2
  875. package/modules/series-on-point.src.js +52 -49
  876. package/modules/solid-gauge.js +2 -2
  877. package/modules/solid-gauge.src.js +23 -44
  878. package/modules/sonification.js +2 -2
  879. package/modules/sonification.src.js +23 -44
  880. package/modules/static-scale.js +2 -2
  881. package/modules/static-scale.src.js +30 -49
  882. package/modules/stock-tools.js +2 -2
  883. package/modules/stock-tools.src.js +34 -55
  884. package/modules/stock.js +6 -6
  885. package/modules/stock.src.js +132 -154
  886. package/modules/streamgraph.js +2 -2
  887. package/modules/streamgraph.src.js +23 -44
  888. package/modules/sunburst.js +2 -2
  889. package/modules/sunburst.src.js +43 -62
  890. package/modules/textpath.js +2 -2
  891. package/modules/textpath.src.js +17 -38
  892. package/modules/tiledwebmap.js +3 -3
  893. package/modules/tiledwebmap.src.js +24 -45
  894. package/modules/tilemap.js +2 -2
  895. package/modules/tilemap.src.js +27 -45
  896. package/modules/timeline.js +2 -2
  897. package/modules/timeline.src.js +24 -45
  898. package/modules/treegraph.js +2 -2
  899. package/modules/treegraph.src.js +28 -47
  900. package/modules/treegrid.js +2 -2
  901. package/modules/treegrid.src.js +52 -72
  902. package/modules/treemap.js +2 -2
  903. package/modules/treemap.src.js +39 -58
  904. package/modules/variable-pie.js +2 -2
  905. package/modules/variable-pie.src.js +24 -45
  906. package/modules/variwide.js +2 -2
  907. package/modules/variwide.src.js +33 -51
  908. package/modules/vector.js +2 -2
  909. package/modules/vector.src.js +23 -44
  910. package/modules/venn.js +2 -2
  911. package/modules/venn.src.js +23 -44
  912. package/modules/windbarb.js +2 -2
  913. package/modules/windbarb.src.js +23 -44
  914. package/modules/wordcloud.js +2 -2
  915. package/modules/wordcloud.src.js +23 -44
  916. package/modules/xrange.js +2 -2
  917. package/modules/xrange.src.js +23 -44
  918. package/options/abands.d.ts +183 -8
  919. package/options/abands.src.d.ts +183 -8
  920. package/options/ad.d.ts +176 -5
  921. package/options/ad.src.d.ts +176 -5
  922. package/options/ao.d.ts +202 -0
  923. package/options/ao.src.d.ts +202 -0
  924. package/options/apo.d.ts +178 -8
  925. package/options/apo.src.d.ts +178 -8
  926. package/options/arcdiagram.d.ts +785 -0
  927. package/options/arcdiagram.src.d.ts +785 -0
  928. package/options/area.d.ts +226 -0
  929. package/options/area.src.d.ts +226 -0
  930. package/options/arearange.d.ts +229 -8
  931. package/options/arearange.src.d.ts +229 -8
  932. package/options/areaspline.d.ts +1344 -8
  933. package/options/areaspline.src.d.ts +1344 -8
  934. package/options/areasplinerange.d.ts +972 -8
  935. package/options/areasplinerange.src.d.ts +972 -8
  936. package/options/aroon.d.ts +219 -0
  937. package/options/aroon.src.d.ts +219 -0
  938. package/options/aroonoscillator.d.ts +1140 -8
  939. package/options/aroonoscillator.src.d.ts +1140 -8
  940. package/options/atr.d.ts +210 -0
  941. package/options/atr.src.d.ts +210 -0
  942. package/options/bar.d.ts +183 -10
  943. package/options/bar.src.d.ts +183 -10
  944. package/options/bb.d.ts +1232 -0
  945. package/options/bb.src.d.ts +1232 -0
  946. package/options/bellcurve.d.ts +1167 -8
  947. package/options/bellcurve.src.d.ts +1167 -8
  948. package/options/boxplot.d.ts +163 -10
  949. package/options/boxplot.src.d.ts +163 -10
  950. package/options/bubble.d.ts +1005 -8
  951. package/options/bubble.src.d.ts +1005 -8
  952. package/options/bullet.d.ts +953 -8
  953. package/options/bullet.src.d.ts +953 -8
  954. package/options/candlestick.d.ts +1309 -8
  955. package/options/candlestick.src.d.ts +1309 -8
  956. package/options/cci.d.ts +210 -0
  957. package/options/cci.src.d.ts +210 -0
  958. package/options/chaikin.d.ts +180 -8
  959. package/options/chaikin.src.d.ts +180 -8
  960. package/options/cmf.d.ts +211 -0
  961. package/options/cmf.src.d.ts +211 -0
  962. package/options/cmo.d.ts +175 -5
  963. package/options/cmo.src.d.ts +175 -5
  964. package/options/column.d.ts +252 -2
  965. package/options/column.src.d.ts +252 -2
  966. package/options/columnpyramid.d.ts +1296 -0
  967. package/options/columnpyramid.src.d.ts +1296 -0
  968. package/options/columnrange.d.ts +216 -2
  969. package/options/columnrange.src.d.ts +216 -2
  970. package/options/contour.d.ts +1148 -0
  971. package/options/contour.src.d.ts +1148 -0
  972. package/options/cylinder.d.ts +183 -2
  973. package/options/cylinder.src.d.ts +183 -2
  974. package/options/dema.d.ts +1181 -0
  975. package/options/dema.src.d.ts +1181 -0
  976. package/options/dependencywheel.d.ts +315 -0
  977. package/options/dependencywheel.src.d.ts +315 -0
  978. package/options/disparityindex.d.ts +1157 -8
  979. package/options/disparityindex.src.d.ts +1157 -8
  980. package/options/dmi.d.ts +1227 -0
  981. package/options/dmi.src.d.ts +1227 -0
  982. package/options/dpo.d.ts +1140 -8
  983. package/options/dpo.src.d.ts +1140 -8
  984. package/options/dumbbell.d.ts +286 -0
  985. package/options/dumbbell.src.d.ts +286 -0
  986. package/options/ema.d.ts +1156 -5
  987. package/options/ema.src.d.ts +1156 -5
  988. package/options/errorbar.d.ts +1286 -0
  989. package/options/errorbar.src.d.ts +1286 -0
  990. package/options/flags.d.ts +1269 -8
  991. package/options/flags.src.d.ts +1269 -8
  992. package/options/flowmap.d.ts +551 -0
  993. package/options/flowmap.src.d.ts +551 -0
  994. package/options/funnel.d.ts +728 -10
  995. package/options/funnel.src.d.ts +728 -10
  996. package/options/gantt.d.ts +1011 -0
  997. package/options/gantt.src.d.ts +1011 -0
  998. package/options/gauge.d.ts +675 -0
  999. package/options/gauge.src.d.ts +675 -0
  1000. package/options/geoheatmap.d.ts +585 -8
  1001. package/options/geoheatmap.src.d.ts +585 -8
  1002. package/options/heatmap.d.ts +1054 -8
  1003. package/options/heatmap.src.d.ts +1054 -8
  1004. package/options/heikinashi.d.ts +178 -10
  1005. package/options/heikinashi.src.d.ts +178 -10
  1006. package/options/histogram.d.ts +1226 -0
  1007. package/options/histogram.src.d.ts +1226 -0
  1008. package/options/hlc.d.ts +223 -2
  1009. package/options/hlc.src.d.ts +223 -2
  1010. package/options/hollowcandlestick.d.ts +1335 -0
  1011. package/options/hollowcandlestick.src.d.ts +1335 -0
  1012. package/options/ikh.d.ts +228 -5
  1013. package/options/ikh.src.d.ts +228 -5
  1014. package/options/item.d.ts +217 -8
  1015. package/options/item.src.d.ts +217 -8
  1016. package/options/keltnerchannels.d.ts +1220 -0
  1017. package/options/keltnerchannels.src.d.ts +1220 -0
  1018. package/options/klinger.d.ts +1162 -0
  1019. package/options/klinger.src.d.ts +1162 -0
  1020. package/options/line.d.ts +1377 -8
  1021. package/options/line.src.d.ts +1377 -8
  1022. package/options/linearregression.d.ts +199 -5
  1023. package/options/linearregression.src.d.ts +199 -5
  1024. package/options/linearregressionangle.d.ts +1157 -5
  1025. package/options/linearregressionangle.src.d.ts +1157 -5
  1026. package/options/linearregressionintercept.d.ts +240 -0
  1027. package/options/linearregressionintercept.src.d.ts +240 -0
  1028. package/options/linearregressionslope.d.ts +240 -0
  1029. package/options/linearregressionslope.src.d.ts +240 -0
  1030. package/options/lollipop.d.ts +949 -0
  1031. package/options/lollipop.src.d.ts +949 -0
  1032. package/options/macd.d.ts +254 -0
  1033. package/options/macd.src.d.ts +254 -0
  1034. package/options/map.d.ts +150 -8
  1035. package/options/map.src.d.ts +150 -8
  1036. package/options/mapbubble.d.ts +1016 -8
  1037. package/options/mapbubble.src.d.ts +1016 -8
  1038. package/options/mapline.d.ts +994 -0
  1039. package/options/mapline.src.d.ts +994 -0
  1040. package/options/mappoint.d.ts +1105 -1
  1041. package/options/mappoint.src.d.ts +1105 -1
  1042. package/options/mfi.d.ts +181 -5
  1043. package/options/mfi.src.d.ts +181 -5
  1044. package/options/momentum.d.ts +215 -0
  1045. package/options/momentum.src.d.ts +215 -0
  1046. package/options/natr.d.ts +170 -5
  1047. package/options/natr.src.d.ts +170 -5
  1048. package/options/networkgraph.d.ts +365 -0
  1049. package/options/networkgraph.src.d.ts +365 -0
  1050. package/options/obv.d.ts +170 -5
  1051. package/options/obv.src.d.ts +170 -5
  1052. package/options/ohlc.d.ts +183 -7
  1053. package/options/ohlc.src.d.ts +183 -7
  1054. package/options/organization.d.ts +808 -0
  1055. package/options/organization.src.d.ts +808 -0
  1056. package/options/packedbubble.d.ts +877 -8
  1057. package/options/packedbubble.src.d.ts +877 -8
  1058. package/options/pareto.d.ts +1028 -0
  1059. package/options/pareto.src.d.ts +1028 -0
  1060. package/options/pc.d.ts +183 -8
  1061. package/options/pc.src.d.ts +183 -8
  1062. package/options/pictorial.d.ts +202 -2
  1063. package/options/pictorial.src.d.ts +202 -2
  1064. package/options/pie.d.ts +196 -8
  1065. package/options/pie.src.d.ts +196 -8
  1066. package/options/pivotpoints.d.ts +1199 -0
  1067. package/options/pivotpoints.src.d.ts +1199 -0
  1068. package/options/pointandfigure.d.ts +980 -0
  1069. package/options/pointandfigure.src.d.ts +980 -0
  1070. package/options/polygon.d.ts +234 -0
  1071. package/options/polygon.src.d.ts +234 -0
  1072. package/options/ppo.d.ts +1156 -8
  1073. package/options/ppo.src.d.ts +1156 -8
  1074. package/options/priceenvelopes.d.ts +1229 -0
  1075. package/options/priceenvelopes.src.d.ts +1229 -0
  1076. package/options/psar.d.ts +1156 -5
  1077. package/options/psar.src.d.ts +1156 -5
  1078. package/options/pyramid.d.ts +837 -2
  1079. package/options/pyramid.src.d.ts +837 -2
  1080. package/options/renko.d.ts +247 -10
  1081. package/options/renko.src.d.ts +247 -10
  1082. package/options/roc.d.ts +1215 -0
  1083. package/options/roc.src.d.ts +1215 -0
  1084. package/options/rsi.d.ts +1157 -5
  1085. package/options/rsi.src.d.ts +1157 -5
  1086. package/options/sankey.d.ts +276 -8
  1087. package/options/sankey.src.d.ts +276 -8
  1088. package/options/scatter.d.ts +3043 -1018
  1089. package/options/scatter.src.d.ts +3043 -1018
  1090. package/options/series.d.ts +175 -0
  1091. package/options/series.src.d.ts +175 -0
  1092. package/options/slowstochastic.d.ts +183 -0
  1093. package/options/slowstochastic.src.d.ts +183 -0
  1094. package/options/sma.d.ts +211 -0
  1095. package/options/sma.src.d.ts +211 -0
  1096. package/options/solidgauge.d.ts +218 -0
  1097. package/options/solidgauge.src.d.ts +218 -0
  1098. package/options/spline.d.ts +230 -0
  1099. package/options/spline.src.d.ts +230 -0
  1100. package/options/stochastic.d.ts +1170 -8
  1101. package/options/stochastic.src.d.ts +1170 -8
  1102. package/options/streamgraph.d.ts +1345 -8
  1103. package/options/streamgraph.src.d.ts +1345 -8
  1104. package/options/sunburst.d.ts +286 -9
  1105. package/options/sunburst.src.d.ts +286 -9
  1106. package/options/supertrend.d.ts +1208 -0
  1107. package/options/supertrend.src.d.ts +1208 -0
  1108. package/options/tema.d.ts +1140 -8
  1109. package/options/tema.src.d.ts +1140 -8
  1110. package/options/tiledwebmap.d.ts +164 -0
  1111. package/options/tiledwebmap.src.d.ts +164 -0
  1112. package/options/tilemap.d.ts +687 -0
  1113. package/options/tilemap.src.d.ts +687 -0
  1114. package/options/timeline.d.ts +282 -0
  1115. package/options/timeline.src.d.ts +282 -0
  1116. package/options/treegraph.d.ts +982 -0
  1117. package/options/treegraph.src.d.ts +982 -0
  1118. package/options/treemap.d.ts +1396 -22
  1119. package/options/treemap.src.d.ts +1396 -22
  1120. package/options/trendline.d.ts +211 -0
  1121. package/options/trendline.src.d.ts +211 -0
  1122. package/options/trix.d.ts +178 -8
  1123. package/options/trix.src.d.ts +178 -8
  1124. package/options/variablepie.d.ts +686 -8
  1125. package/options/variablepie.src.d.ts +686 -8
  1126. package/options/variwide.d.ts +178 -2
  1127. package/options/variwide.src.d.ts +178 -2
  1128. package/options/vbp.d.ts +576 -0
  1129. package/options/vbp.src.d.ts +576 -0
  1130. package/options/vector.d.ts +660 -0
  1131. package/options/vector.src.d.ts +660 -0
  1132. package/options/venn.d.ts +654 -0
  1133. package/options/venn.src.d.ts +654 -0
  1134. package/options/vwap.d.ts +1157 -5
  1135. package/options/vwap.src.d.ts +1157 -5
  1136. package/options/waterfall.d.ts +1254 -8
  1137. package/options/waterfall.src.d.ts +1254 -8
  1138. package/options/williamsr.d.ts +209 -0
  1139. package/options/williamsr.src.d.ts +209 -0
  1140. package/options/windbarb.d.ts +222 -2
  1141. package/options/windbarb.src.d.ts +222 -2
  1142. package/options/wma.d.ts +1156 -5
  1143. package/options/wma.src.d.ts +1156 -5
  1144. package/options/wordcloud.d.ts +682 -0
  1145. package/options/wordcloud.src.d.ts +682 -0
  1146. package/options/xrange.d.ts +1168 -0
  1147. package/options/xrange.src.d.ts +1168 -0
  1148. package/options/zigzag.d.ts +1197 -0
  1149. package/options/zigzag.src.d.ts +1197 -0
  1150. package/package.json +1 -1
  1151. package/standalone-navigator.js +4 -4
  1152. package/standalone-navigator.src.js +885 -804
  1153. package/themes/adaptive.js +2 -2
  1154. package/themes/adaptive.src.js +22 -43
  1155. package/themes/avocado.js +2 -2
  1156. package/themes/avocado.src.js +17 -38
  1157. package/themes/dark-unica.js +2 -2
  1158. package/themes/dark-unica.src.js +17 -38
  1159. package/themes/grid-light.js +2 -2
  1160. package/themes/grid-light.src.js +17 -38
  1161. package/themes/high-contrast.js +2 -2
  1162. package/themes/high-contrast.src.js +17 -38
  1163. package/themes/sand-signika.js +2 -2
  1164. package/themes/sand-signika.src.js +17 -38
  1165. package/themes/sunset.js +2 -2
  1166. package/themes/sunset.src.js +17 -38
package/highmaps.js CHANGED
@@ -1,13 +1,13 @@
1
1
  !/**
2
- * Highcharts Maps v13.0.2 (2026-08-27)
2
+ * Highcharts Maps v13.1.1 (2026-09-20)
3
3
  * @module highcharts/highmaps
4
4
  *
5
5
  * (c) 2011-2026 Highsoft AS
6
6
  *
7
7
  * A commercial license may be required depending on use,
8
8
  * see www.highcharts.com/license
9
- */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("u"<typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o,r,a={};a.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var s=e[i++],o=e[i++];a.o(t,s)?0===o&&i++:0===o?Object.defineProperty(t,s,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,s,{enumerable:!0,get:o})}else for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let n={};a.d(n,{default:()=>rK}),(iy=e6||(e6={})).SVG_NS="http://www.w3.org/2000/svg",iy.product="Highcharts",iy.version="13.0.2",iy.win="u">typeof window?window:{},iy.doc=iy.win.document,iy.svg=!!iy.doc?.createElementNS?.(iy.SVG_NS,"svg")?.createSVGRect,iy.pageLang=iy.doc?.documentElement?.closest("[lang]")?.lang,iy.userAgent=iy.win.navigator?.userAgent||"",iy.isChrome=iy.win.chrome,iy.isFirefox=-1!==iy.userAgent.indexOf("Firefox"),iy.isMS=/(edge|msie|trident)/i.test(iy.userAgent)&&!iy.win.opera,iy.isSafari=!iy.isChrome&&-1!==iy.userAgent.indexOf("Safari"),iy.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(iy.userAgent),iy.isWebKit=-1!==iy.userAgent.indexOf("AppleWebKit"),iy.deg2rad=2*Math.PI/360,iy.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],iy.noop=function(){},iy.supportsPassiveEvents=function(){let t=!1;if(!iy.isMS){let e=Object.defineProperty({},"passive",{get:function(){t=!0}});iy.win.addEventListener&&iy.win.removeEventListener&&(iy.win.addEventListener("testPassive",iy.noop,e),iy.win.removeEventListener("testPassive",iy.noop,e))}return t}(),iy.charts=[],iy.composed=[],iy.dateFormats={},iy.seriesTypes={},iy.symbolSizes={},iy.chartCount=0;let h=e6,l={dark:{backgroundColor:"#141414",neutralColor:"#ffffff",highlightColor:"#2caffe"},light:{backgroundColor:"#ffffff",neutralColor:"#000000",highlightColor:"#0022ff",positiveColor:"#06b535",negativeColor:"#f21313"}},{doc:d,win:c}=h;function p(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;h.Point&&t instanceof h.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!h.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){J(t,e,i)}}function u(t){let e=t.length,i=t[0];for(;e--;)t[e]<i&&(i=t[e]);return i}function g(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i}function m(t,e,i){let s,o=j(e)&&!M(i),r=(e,i)=>{M(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return j(e)?r(i,e):V(e,r),s}function f(t,e,i){return t>e?t<i?t:i:e}function x(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}function y(t,e,i,s,o){let r=d.createElement(t);return e&&S(r,e),o&&v(r,{padding:"0",border:"none",margin:"0"}),i&&v(r,i),s&&s.appendChild(r),r}function b(t,e=0,i){let s=e%2/2,o=i?-1:1;return(Math.round(t*o-s)+s)*o}function v(t,e){S(t.style,e)}function M(t){return null!=t}function w(t,e,i){V(t,function(s,o){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[o]})}function k(t){t?.parentElement?.removeChild(t)}function C(t,e,i,s){let o={};return!function t(e,o,r,a){let n=i?o:e;V(e,function(i,h){if(!a&&s&&s.indexOf(h)>-1&&o[h]){i=Q(i),r[h]=[];for(let e=0;e<Math.max(i.length,o[h].length);e++)o[h][e]&&(void 0===i[e]?r[h][e]=o[h][e]:(r[h][e]={},t(i[e],o[h][e],r[h][e],a+1)))}else F(i,!0)&&!i.nodeType?(r[h]=X(i)?[]:{},t(i,o[h]||{},r[h],a+1),0===Object.keys(r[h]).length&&("colorAxis"!==h||0!==a)&&delete r[h]):(e[h]!==o[h]||h in e&&!(h in o))&&"__proto__"!==h&&"constructor"!==h&&(r[h]=n[h])})}(t,e,o,0),o}function T(t,e){let i=t.length;for(;i--;)if(t[i]===e){t.splice(i,1);break}}function S(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function P(t,e){let i=function(){};return i.prototype=new t,S(i.prototype,e),i}function A(t,e,i,s){if(i=i||{},d?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==h)){let s=d.createEvent("Events");s.initEvent(e,!0,!0),i=S(s,i),t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(e,i)}else if(t.hcEvents){i.target||S(i,{preventDefault:function(){i.defaultPrevented=!0},target:t,type:e});let s=[],o=t,r=!1;for(;o.hcEvents;)Object.hasOwnProperty.call(o,"hcEvents")&&o.hcEvents[e]&&(s.length&&(r=!0),s.unshift.apply(s,o.hcEvents[e])),o=Object.getPrototypeOf(o);r&&s.sort((t,e)=>t.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i,t)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let L=(t="")=>({center:.5,right:1,middle:.5,bottom:1})[t]||0;function O(t,e){let i,s,o,r,a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o<i)&&(i=o)}),i}function E(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function I(t,e){let i=t.split(".");for(;i.length&&M(e);){let t=i.shift();if(void 0===t||"__proto__"===t)return;if("this"===t){let t;return F(e)&&(t=e["@this"]),t??e}let s=e[t.replace(/[\\'"]/g,"")];if(!M(s)||"function"==typeof s||"number"==typeof s.nodeType||s===c)return;e=s}return e}function D(t,e,i){let s;if("width"===e){let e=Math.min(t.offsetWidth,t.scrollWidth),i=t.getBoundingClientRect?.().width;return i<e&&i>=e-1&&(e=Math.floor(i)),Math.max(0,e-(D(t,"padding-left",!0)||0)-(D(t,"padding-right",!0)||0))}if("height"===e)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(D(t,"padding-top",!0)||0)-(D(t,"padding-bottom",!0)||0));let o=c.getComputedStyle(t,void 0);return o&&(s=o.getPropertyValue(e),(i??"opacity"!==e)&&(s=Z(s))),s}let B=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i,s=t.length;for(i=0;i<s;i++)if(e(t[i],i))return t[i]};function z(t){M(t)&&clearTimeout(t)}function N(t){return F(t)&&"number"==typeof t.nodeType}function R(t){let e=t?.constructor;return!!(F(t,!0)&&!N(t)&&e?.name&&"Object"!==e.name)}function W(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function j(t){return"string"==typeof t}function X(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function G(t){return"function"==typeof t}function F(t,e){return!!t&&"object"==typeof t&&(!e||!X(t))}function H(t,...e){let i,s=[t,...e],o={},r=function(t,e){return"object"!=typeof t&&(t={}),V(e,function(i,s){"__proto__"!==s&&"constructor"!==s&&(!F(i,!0)||R(i)||N(i)?t[s]=e[s]:t[s]=r(t[s]||{},i))}),t};!0===t&&(o=s[1],s=Array.prototype.slice.call(s,2));let a=s.length;for(i=0;i<a;i++)o=r(o,s[i]);return o}function Y(t,e,i,s,o){let r,a=t;i=i??E(t);let n=t/i;for(!e&&(e=o?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?e=e.filter(function(t){return t%1==0}):i<=.1&&(e=[1/i]))),r=0;r<e.length&&(a=e[r],(!o||!(a*i>=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return x(a*i,-Math.round(Math.log(.001)/Math.LN10))}function V(t,e,i){for(let s in t)Object.hasOwnProperty.call(t,s)&&e.call(i||t[s],t[s],s,t)}function U(t){let e=d.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(c.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(c.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}}function $(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t}function Z(t,e){return parseInt(t,e||10)}function _(t,e){return 0>t.indexOf(e)&&!!t.push(e)}function K(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)}function q(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t}function J(t,e,i){function s(e,i){let s=t.removeEventListener;s&&s.call(t,e,i,!1)}function o(i){let o,r;t.nodeName&&(e?(o={})[e]=!0:o=i,V(o,function(t,e){if(i[e])for(r=i[e].length;r--;)s(e,i[e][r].fn)}))}let r="function"==typeof t&&t.prototype||t;if(Object.hasOwnProperty.call(r,"hcEvents")){let t=r.hcEvents;if(e){let r=t[e]||[];i?(t[e]=r.filter(function(t){return i!==t.fn}),s(e,i)):(o(t),t[e]=[])}else o(t),delete r.hcEvents}}function Q(t){return X(t)?t:[t]}function tt(t,e){let i,s,o=t.length;for(s=0;s<o;s++)t[s].safeI=s;for(t.sort(function(t,s){return 0===(i=e(t,s))?t.safeI-s.safeI:i}),s=0;s<o;s++)delete t[s].safeI}function te(t,e,i){return e>0?setTimeout(t,e,i):(t.call(0,i),-1)}function ti(t){return j(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)}function ts(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}let{charts:to,win:tr}=h;function ta(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=W(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),V(s,function(e,i){t+=`
10
- - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}A(h,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);tr.console&&-1===ta.messages.indexOf(a)&&console.warn(a)}),ta.messages.push(a)}function tn(t,e){let i,s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i<o+1;i++)if(!e[i]||W(s)&&s<(e[i].options.index??e[i]._i)||e[i].options.isInternal){e.splice(i,0,t);break}return i}(ta||(ta={})).messages=[];let th={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5};Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let tl=(s=Math.random().toString(36).substring(2,9)+"-",o=0,function(){return"highcharts-"+(t?"":s)+o++});tr.jQuery&&(tr.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new h[j(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):to[m(this[0],"data-highcharts-chart")]});let{pageLang:td,win:tc}=h,tp=h.isSafari&&tc.Intl&&!tc.Intl.DateTimeFormat.prototype.formatRange,tu=class{constructor(t,e){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=tc.Date,this.lang=e,this.update(t)}update(t={}){this.dTLCache={},this.options=t=H(!0,this.options,t);let{timezoneOffset:e,useUTC:i,locale:s}=t;this.Date=t.Date||tc.Date||Date;let o=t.timezone;M(i)&&(o=i?"UTC":void 0),e&&e%60==0&&(o="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==o&&o?.indexOf("Etc/GMT")!==0,this.timezone=o,this.lang&&s&&(this.lang.locale=s),["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, | |\/|:)/g);return[+o,s-1,+i,+r,+a,+n,Math.floor(Number(t)||0)%1e3,"DLMXJVS".indexOf(e)]}dateTimeFormat(t,e,i=this.options.locale||this.lang?.locale||td){let s=JSON.stringify(t)+i;j(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(ta(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):ta(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&S(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n),i=(s-t/th.hour+24)%24;if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(i<5||i>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tp||(n-=36e5)}}return n}parse(t){if(!j(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(W(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(60*(s+r/60)*6e4);if(W(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!M(e)||isNaN(e))return s?.invalidDate||"";if(j(t=t??"%Y-%m-%d %H:%M:%S")){let i,o=/%\[([a-zA-Z]+)\]/g;for(;i=o.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e,s?.locale))}if(j(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,l,d,c,p]=this.toParts(e),u=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,m=s?.months||this.months,f=s?.shortMonths||this.shortMonths;V(S({a:g?g[p]:u[p].substr(0,3),A:u[p],d:$(a),e:$(a,2," "),w:p,v:s?.weekFrom??"",b:f[r],B:m[r],m:$(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:$(n),k:n,I:$(n%12||12),l:n%12||12,M:$(l),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:$(d),L:$(c,3)},h.dateFormats),function(s,o){if(j(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e,i):s)})}else if(F(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(S({timeZone:s},t),e)+r}return i?ti(t):t}resolveDTLFormat(t){return F(t,!0)?F(t,!0)&&void 0===t.main?{main:t}:t:{main:(t=Q(t))[0],from:t[1],to:t[2]}}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in th){if(t&&t===th.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(t&&th[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},tg=class extends tu{getBoundaryTicks(t,e,i,s){let o={};if(e===th.year)return o;let r=M(i)&&M(s),a=e<th.hour,n=e<th.day,h=e<th.month,l=e>=th.hour?9e5:e>=th.minute?6e4:e>=th.second&&1e3;if(t.length<1e4){let d=!0;for(let c=0;c<t.length;c++){let p=t[c];if(r){if(p<i)continue;if(p>s)break}if(d){if(e===th.month){o[p]="year",d=!1;continue}if(e===th.hour){o[p]="day",d=!1;continue}}if(l&&p%l!=0){d=!1;continue}let[,u,g,m,f,x,y]=this.toParts(p),b=!m&&!f&&!x&&!y;a&&0===f&&(o[p]="hour"),n&&b&&(o[p]="day"),h&&1===g&&b&&(o[p]="month"),0===u&&1===g&&b&&(o[p]="year"),d=!1}}return o}getTimeTicks(t,e,i,s){let o=[],{count:r=1,unitRange:a}=t,n=e,[h,l,d,c,p,u]=this.toParts(e),g=(e||0)%1e3,m;if(s??(s=1),M(e)){if(g=a>=th.second?0:r*Math.floor(g/r),a>=th.second&&(u=a>=th.minute?0:r*Math.floor(u/r)),a>=th.minute&&(p=a>=th.hour?0:r*Math.floor(p/r)),a>=th.hour&&(c=a>=th.day?0:r*Math.floor(c/r)),a>=th.day&&(d=a>=th.month?1:Math.max(1,r*Math.floor(d/r))),a>=th.month&&(l=a>=th.year?0:r*Math.floor(l/r)),a>=th.year&&(h-=h%r),a===th.week){r&&(e=this.makeTime(h,l,d,c,p,u,g));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"),i="DLMXJVS".indexOf(t);d+=-i+s+(i<s?-7:0)}e=this.makeTime(h,l,d,c,p,u,g),this.variableTimezone&&M(i)&&(m=i-e>4*th.month||this.getTimezoneOffset(e)!==this.getTimezoneOffset(i));let t=e,n=1;for(;t<i;)o.push(t),a===th.year?t=this.makeTime(h+n*r,0):a===th.month?t=this.makeTime(h,l+n*r):m&&(a===th.day||a===th.week)?t=this.makeTime(h,l,d+n*r*(a===th.day?1:7)):m&&a===th.hour&&r>1?t=this.makeTime(h,l,d,c+n*r):t+=a*r,n++;o.push(t)}return o.info=S(t,{boundaryTicks:this.getBoundaryTicks(o,a,n,i),totalRange:a*r}),o}},{isTouchDevice:tm}=h,tf={palette:l,colors:Array(10).fill(1).map((t,e)=>`var(--highcharts-color-${e})`),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"var(--highcharts-neutral-color-3)",padding:8,r:2,stroke:"var(--highcharts-neutral-color-20)","stroke-width":1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"var(--highcharts-neutral-color-10)"},select:{fill:"var(--highcharts-highlight-color-10)",style:{color:"var(--highcharts-neutral-color-100)",fontWeight:"bold"}},disabled:{style:{color:"var(--highcharts-neutral-color-20)"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,selectionMarkerFill:"color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)",type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"var(--highcharts-highlight-color-80)",backgroundColor:"var(--highcharts-background-color)",plotBorderColor:"var(--highcharts-neutral-color-20)"},title:{style:{color:"var(--highcharts-neutral-color-80)",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"var(--highcharts-neutral-color-40)",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"var(--highcharts-highlight-color-100)",inactiveColor:"var(--highcharts-neutral-color-20)"},itemStyle:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"var(--highcharts-neutral-color-100)"},itemHiddenStyle:{color:"var(--highcharts-neutral-color-60)",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{color:"var(--highcharts-neutral-color-80)",fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"var(--highcharts-background-color)",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderColor:"light-dark(var(--highcharts-neutral-color-5), var(--highcharts-neutral-color-20))",borderRadius:5,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%[Y]"},footerFormat:"",header:{distance:5,shape:"callout",style:{fontSize:"1em"}},hideDelay:500,showDelay:0,padding:8,position:{x:0,y:3},shared:!1,snap:tm?25:10,headerFormat:'<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"var(--highcharts-background-color)",borderWidth:void 0,stickOnContact:!1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",verticalAlign:"bottom",x:-10,y:-5},style:{cursor:"pointer",color:"var(--highcharts-neutral-color-40)",fontSize:"0.6em"},text:"Highcharts.com"}},tx=new tg(tf.time,tf.lang),ty={defaultOptions:tf,defaultTime:tx,getOptions:function(){return tf},setOptions:function(t){return A(h,"setOptions",{options:t}),H(!0,tf,t),t.time&&tx.update(tf.time),t.lang&&"locale"in t.lang&&tx.update({locale:t.lang.locale}),t.lang?.chartTitle&&(tf.title={...tf.title,text:t.lang.chartTitle}),tf}},{win:tb}=h,tv=(t,e,i)=>0===i?t:1===i?e:`color-mix(in srgb,${t},${e} ${100*i}%)`,tM=t=>j(t)&&!!t&&"none"!==t;class tw{static parse(t){return t?new tw(t):tw.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;const r=h.Color;if(r&&r!==tw)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tw(t[1]));else if("string"==typeof t)for(this.input=t=tw.names[t.toLowerCase()]||t,s=tw.parsers.length;s--&&!i;)(e=(o=tw.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if("object"==typeof e&&void 0!==this.stops){let i=H(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&W(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(W(t)&&0!==t)if(W(e[0]))for(let i=0;i<3;i++)e[i]+=Z(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else tw.useColorMix&&tM(this.input)&&(this.output=tv(this.input,t>0?"white":"black",Math.abs(t)));return this}setOpacity(t){return W(this.rgba[0])?this.rgba[3]=t:tw.useColorMix&&tM(this.input)&&(this.output=tv(this.input,"#0000",1-t)),this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!W(i[0])||!W(s[0]))return tw.useColorMix&&tM(this.input)&&tM(t.input)&&e<.99?tv(this.input,t.input,e):t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tw.names={white:"#ffffff",black:"#000000"},tw.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[Z(t[1]),Z(t[2]),Z(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[Z(t[1]),Z(t[2]),Z(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[Z(t[1]+t[1],16),Z(t[2]+t[2],16),Z(t[3]+t[3],16),M(t[4])?Z(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[Z(t[1],16),Z(t[2],16),Z(t[3],16),M(t[4])?Z(t[4],16)/255:1]}}],tw.useColorMix=tb.CSS?.supports("color","color-mix(in srgb,red,blue 9%)"),tw.None=new tw("");let{parse:tk}=tw,{win:tC}=h;class tT{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i)if(e.length===i.length&&s<1)for(let t=0;t<i.length;t++){let r=e[t],a=i[t],n=[];for(let t=0;t<a.length;t++){let e=r[t],i=a[t];W(e)&&W(i)&&("A"!==a[0]||4!==t&&5!==t)?n[t]=e+s*(i-e):n[t]=i}o.push(n)}else o=i;else o=this.toD||[];this.elem.attr("d",o,void 0,!0)}update(){let t=this.elem,e=this.prop,i=this.now??1,s=this.options.step;this[e+"Setter"]?this[e+"Setter"]():t&&t.attr?t.element&&t.attr(e,i,void 0,!0):t&&(t.style[e]=i+(this.unit||"")),s?.call(t,i,this)}run(t,e,i){let{elem:s,options:o}=this,{complete:r,curAnim:a={}}=o,n=t=>!n.stopped&&this.step(t),h=tC.requestAnimationFrame||function(t){setTimeout(t,13)},l=()=>{for(let t=0;t<tT.timers.length;t++)tT.timers[t]()||tT.timers.splice(t--,1);tT.timers.length&&h(l)};t!==e||s["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,n.elem=s,n.prop=this.prop,n()&&1===tT.timers.push(n)&&h(l)):(delete a[this.prop],r&&0===Object.keys(a).length&&r.call(s))}step(t){let e,i,s=+new Date,o=this.options,r=this.elem,a=o.complete,n=o.duration,h=o.curAnim;return r?.attr&&!r.element?e=!1:t||s>=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,V(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e?.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length<d;){let i=t[0],s=e[d-t.length];if(s&&"M"===i[0]&&("C"===s[0]?t[0]=["C",i[1],i[2],i[1],i[2],i[1],i[2]]:t[0]=["L",i[1],i[2]]),t.unshift(i),a){let e=t.pop();t.push(t[t.length-1],e)}}}function m(t){for(;t.length<d;){let e=t[Math.floor(t.length/n)-1].slice();if("C"===e[0]&&(e[1]=e[5],e[2]=e[6]),a){let i=t[Math.floor(t.length/n)].slice();t.splice(t.length/2,0,e,i)}else t.push(e)}}if(s&&o&&o.length){for(c=0;c<s.length;c++)if(s[c]===o[0]){l=c;break}else if(s[0]===o[o.length-s.length+c]){l=c,p=!0;break}else if(s[s.length-1]===o[o.length-s.length+c]){l=s.length-c;break}void 0===l&&(u=[])}return u.length&&W(l)&&(d=r.length+l*n,p?(g(u,r),m(r)):(g(r,u),m(u))),[u,r]}fillSetter(){tT.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,tk(this.start).tweenTo(tk(this.end),this.pos),void 0,!0)}}function tS(t,e){e.renderer.globalAnimation=t??e.options.chart.animation??!0}function tP(t){return F(t)?H({duration:500,defer:0},t):{duration:500*!!t,defer:0}}function tA(t,e,i){let s=tP(e),o=i?[i]:t.series,r=0,a=0;return o.forEach(t=>{let i=tP(t.options.animation);r=F(e)&&M(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}}function tL(t,e={pos:1},i){F(i)||(i={duration:arguments[2],easing:arguments[3],complete:arguments[4]}),W(i.duration)||(i.duration=400),i.easing="function"==typeof i.easing?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=H(e),V(e,(s,o)=>{t&&tO(t,o);let r=new tT(t,i,o),a=e.d,n=0,h,l="";"d"===o&&X(a)?(r.paths=r.initPath(t,t.pathArray,a),r.toD=a,h=1):t?.attr?n=t.attr(o):t&&(n=+(D(t,o)||0),"opacity"!==o&&(l="px")),h||(h=s),"string"==typeof h&&h.match("px")&&(h=h.replace(/px/g,"")),M(h)&&r.run(n,h,l)})}tT.timers=[];let tO=(t,e)=>tT.timers.forEach(i=>{i.elem!==t||e&&e!==i.prop||(i.stopped=!0)}),{SVG_NS:tE,win:tI}=h,{trustedTypes:tD}=tI,tB=tD&&G(tD.createPolicy)&&tD.createPolicy("highcharts",{createHTML:t=>t}),tz=tB?tB.createHTML(""):"";class tN{static filterUserAttributes(t){return V(t,(e,i)=>{let s=!0;-1===tN.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=j(e)&&tN.allowedReferences.some(t=>0===e.indexOf(t))),s||(ta(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),j(e)&&t[i]&&(t[i]=e.replace(/</g,"&lt;"))}),t}static parseStyle(t){return t.split(";").reduce((t,e)=>{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=tN.emptyHTML,e&&new tN(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return Q(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?h.doc.createTextNode(e.textContent):void 0,n=tN.bypassHTMLFiltering;if(r)if("#text"===r)o=a;else if(-1!==tN.allowedTags.indexOf(r)||n){let s="svg"===r?tE:i.namespaceURI||tE,l=h.doc.createElementNS(s,r),d=e.attributes||{};V(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(d[e]=t)}),m(l,n?d:tN.filterUserAttributes(d)),e.style&&v(l,e.style),a&&l.appendChild(a),t(e.children||[],l),o=l}else ta(33,!1,void 0,{"Invalid tagName in config":r});o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(tB?tB.createHTML(t):t,"text/html")}catch{}if(!e){let i=y("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.localName||t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=tN.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}tN.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","aria-sort","class","clip-path","color","colspan","cx","cy","d","disabled","dx","dy","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","result","role","rowspan","scope","slope","src","startOffset","stdDeviation","stop-color","stop-opacity","stroke-linecap","stroke-width","stroke","style","summary","tabindex","tableValues","target","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],tN.allowedReferences=["https://","http://","mailto:","/","../","./","#"],tN.allowedTags=["#text","a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","tbody","td","text","textPath","th","thead","title","tr","tspan","u","ul"],tN.emptyHTML=tz,tN.bypassHTMLFiltering=!1;let{defaultOptions:tR,defaultTime:tW}=ty,{pageLang:tj}=h,tX={add:(t,e)=>t+e,divide:(t,e)=>0!==e?x(t/e):"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!X(t)&&t.map((i,s)=>tF(e.body,S(F(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>t<e,multiply:(t,e)=>x(t*e,15),ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ti,unless:t=>!t},tG={};function tF(t="",e,i){let s=/\{([^{}]+)\}/g,o=/\(([^()]+)\)/g,r=[],a=/f$/,n=/\.(\d)/,h=i?.options?.lang||tR.lang,l=i?.time||tW,d=i?.numberFormatter||tH.bind(i),c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):I(t,e))},p,u,g=0,m;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,m=!0),u?.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");tX[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n))if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let r,p,{body:u,elseBody:g,expression:m,fn:f}=s;if(f){let t=[s],o=[],a=m.length,n=0,h;for(p=0;p<=a;p++){let t=m.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==a||(o.push(m.substr(n,p-n)),n=p+1)}for(p=tX[f].length;p--;)t.unshift(c(o[p+1]));r=tX[f].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=tF(r?u:g,e,i))}else{let t=/^["'].+["']$/.test(m)?[m]:m.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&j(r)&&(r=`"${r}"`)}t=t.replace(s.find,r??"")}),m?tF(t,e,i):t}function tH(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tR.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):W(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),W(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||tj,g=JSON.stringify(c)+u;return o=(tG[g]??(tG[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/([,\.])/g,"_$1").replace(/_\,/g,s??",").replace("_.",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let tY={dateFormat:function(t,e,i){return tW.dateFormat(t,e,i)},format:tF,helpers:tX,numberFormat:tH};(e9||(e9={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p=!0,u,g,m=0;for(c=h;c--;)m+=e[c].size;if(m>r){if(tt(e,(t,e)=>(e.rank||0)-(t.rank||0)),e[0].rank===e[e.length-1].rank){let t=[[0,h-1]];for(;t.length&&m>r;){let i=t.shift();if(!i)break;u=e[c=Math.floor((i[0]+i[1])/2)],_(l,c)&&(m-=u.size),i[0]<c&&t.push([i[0],c-1]),c<i[1]&&t.push([c+1,i[1]])}}else for(c=h-1;m>r&&c>=0;)u=e[c],_(l,c)&&(m-=u.size),c--;l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(tt(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:t.align??.5}));p;){for(c=e.length;c--;)u=e[c],g=(Math.min.apply(0,u.targets)+Math.max.apply(0,u.targets))/2,u.pos=f(g-u.size*u.align,0,i-u.size);for(c=e.length,p=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),p=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),tt(o,a),o};let tV=e9,{deg2rad:tU,doc:t$,svg:tZ,SVG_NS:t_,win:tK,isFirefox:tq}=h;class tJ{_defaultGetter(t){let e=this[t+"Value"]??this[t]??(this.element?this.element.getAttribute(t):null)??0;return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||j(i)?i||"renderer":void 0;n&&(a&&_(r,this),i=void 0);let h=i??o[n]??o,l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*L(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*L(t.verticalAlign),c={};return t.align&&(c["text-align"]=t.align),c[e?"translateX":"x"]=Math.round(l),c[e?"translateY":"y"]=Math.round(d),s&&(this[this.placed?"animate":"attr"](c),this.placed=!0),this.alignAttr=c,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=tP(e??this.renderer.globalAnimation??!0),o=s.defer;return t$.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),te(()=>{this.element&&tL(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),V(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(" "),s=t.substring(i+1),o=t.substring(0,i);if(o&&"none"!==o&&h.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=t$.createElementNS(t_,"tspan");m(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=t$.createElementNS(t_,"tspan");a.textContent="​",m(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=tJ.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(V(t,function(e,i){l=!1,s||tO(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=tl()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);S(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=b(i,e),n=b(s,e);return S(t,{x:a,y:n,width:b(o,e)-a,height:b(r,e)-n}),M(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,u=[],g;A(this.renderer,"complexColor",{args:arguments},()=>{if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,c=i.radialReference,X(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&c&&!M(a.gradientUnits)&&(n=a,a=H(a,s.getRadialAttr(c,n),{gradientUnits:"userSpaceOnUse"})),V(a,function(t,e){"id"!==e&&u.push(e,t)}),V(l,function(t){u.push(t)}),h[u=u.join(",")])p=h[u].attr("id");else{a.id=p=tl();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(([e,i])=>{0===i.indexOf("rgba")?(i=(o=tw.parse(i)).get("rgb"),d=o.get("a")):d=1;let r=s.createElement("stop").attr({offset:e,"stop-color":i,"stop-opacity":d}).add(t);t.stops.push(r)})}g="url("+s.url+"#"+p+")",i.setAttribute(e,g),i.gradient=u,t.toString=function(){return g}}})}css(t){let e=this.styles,i={},s=this.element,o=this.renderer,r,a=!e;if(e&&V(t,function(t,s){e&&e[s]!==t&&(i[s]=t,a=!0)}),a){e&&(t=S(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(r=this.textWidth=Z(t.width)),S(this.styles,t),r&&!tZ&&o.forExport&&delete t.width;let a=tq&&t.fontSize||null;a&&(W(a)||/^\d+$/.test(a))&&(t.fontSize+="px");let n=H(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>n&&delete n[t]),n.color&&(n.fill=n.color,delete n.color)),v(s,n)}return this.added&&("text"===this.element.nodeName&&o.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t){let s=(t=t.toLowerCase()).replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+Z(s[e])*(i??NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,{element:e={},renderer:i,stops:s}=t,o=e.ownerSVGElement;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,tO(t),t.clipPath&&o){let e=t.clipPath;[].forEach.call(o.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(s){for(let t of s)t.destroy();s.length=0}t.safeRemoveChild(e),t.alignOptions&&T(i.alignedObjects,t),V(t,(e,i)=>{(t[i]?.parentGroup===t||-1!==["connector","foreignObject"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){X(t)&&("string"==typeof t[0]&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce((t,e,i)=>e?.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,{element:r,renderer:a,styles:n,textStr:h}=this,{cache:l,cacheKeys:d}=a,c=r.namespaceURI===this.SVG_NS,p=e??this.rotation??0,u=a.styledMode?r&&tJ.prototype.getStyle.call(r,"font-size"):n.fontSize,g=this.getBBoxCacheKey([a.rootFontSize,this.textWidth,this.alignValue,n.fontWeight,n.lineClamp,n.textOverflow,u,p]);if(g&&!t&&(i=l[g]),!i||i.polygon){if(c||a.forExport){try{o=this.fakeTS&&function(t){let e=r.querySelector(".highcharts-text-outline");e&&v(e,{display:t})},G(o)&&o("none"),i=r.getBBox?S({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight,x:0,y:0},G(o)&&o("")}catch{}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,c&&(i.height=s=({"11px,17":14,"13px,20":16})[`${u||""},${Math.round(s)}`]||s),p&&(i=this.getRotatedBox(i,p));let t={bBox:i};A(this,"afterGetBBox",t),i=t.bBox}if(g&&(""===h||i.height>0)){for(;d.length>250;)delete l[d.shift()];l[g]||d.push(g),l[g]=i}return i}getBBoxCacheKey(t){if(M(this.textStr)){let e=""+this.textStr;return -1===e.indexOf("<")&&(e=e.replace(/\d/g,"0")),[e,...t].join(",")}}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=L(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*tU,u=(e-90)*tU,g=Math.cos(p),m=Math.sin(p),f=o*g,x=o*m,y=Math.cos(u),b=Math.sin(u),[[v,M],[w,k]]=[h,l].map(t=>[t-t*g,t*m]),C=i+d*(o-f)+v+k+c*y,T=C+f,S=T-r*y,P=S-f,A=s+c-d*x-M+w+c*b,O=A+x,E=O-r*b,I=E-x,D=Math.min(C,T,S,P),B=Math.min(A,O,E,I),z=Math.max(C,T,S,P)-D,N=Math.max(A,O,E,I)-B;return{x:D,y:B,width:z,height:N,polygon:[[C,A],[T,O],[S,E],[P,I]]}}getStyle(t){return tK.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=t_,this.element="div"===e||"body"===e?y(e):t$.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},A(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=p(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(j(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=H(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},F(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=Z(t):""!==t&&(m(i=t$.createElementNS(t_,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;tJ.symbolCustomAttribs.forEach(function(i){e[i]=t[i]??e[i]}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||t$.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=q(t??"",[/<[^>]*>/g,""]).replace(/&lt;/g,"<").replace(/&gt;/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,foreignObject:i,matrix:s,rotation:o=0,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:h,text:l,translateX:d=0,translateY:c=0}=this,p=[`translate(${d},${c})`];M(s)&&p.push("matrix("+s.join(",")+")"),o&&p.push("rotate("+o+" "+(r??e.getAttribute("x")??this.x??0)+" "+(a??e.getAttribute("y")??this.y??0)+")"),(M(n)||M(h))&&p.push(`scale(${n??1} ${h??1})`),p.length&&!(l||this).textPath&&(i?.element||e).setAttribute(t,p.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let{element:i,parentGroup:s,renderer:o}=this,r=s?.element||o.box,a=r===o.box,n,h,l,d=!1,c,p=this.added,u;if(M(t)?(i.setAttribute("data-z-index",t),t*=1,this[e]===t&&(p=!1)):M(this[e])&&i.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=r.childNodes).length-1;u>=0&&!d;u--)c=!M(l=(h=n[u]).getAttribute("data-z-index")),h!==i&&(M(t)&&t<0&&c&&!a&&!u?(r.insertBefore(i,n[u]),d=!0):(M(t)&&parseFloat(l||"")<=t||c&&(!M(t)||t>=0))&&(r.insertBefore(i,n[u+1]),d=!0));d||(r.insertBefore(i,n[3*!!a]),d=!0)}return d}}tJ.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],tJ.prototype.strokeSetter=tJ.prototype.fillSetter,tJ.prototype.yGetter=tJ.prototype.xGetter,tJ.prototype.matrixSetter=tJ.prototype.rotationOriginXSetter=tJ.prototype.rotationOriginYSetter=tJ.prototype.rotationSetter=tJ.prototype.scaleXSetter=tJ.prototype.scaleYSetter=tJ.prototype.translateXSetter=tJ.prototype.translateYSetter=tJ.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let tQ=tJ,{charts:t0}=h,t1=["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],t2=[null,"#00e272","#efdf00"];class t3{constructor(t,e){this.defaultOptions=l,this.options=H(l),this.cssVars={light:{},dark:{}},this.renderer=t,this.update(e)}injectCSS(t){let e,i,s,{cssVars:o,renderer:r}=this,a=Object.keys(C(t,this.defaultOptions)).length>0,n=Math.max(t.colors?.length||0,t1.length),h="light",l=(t,e)=>{j(t)&&(e=e.replace(/([0-9]+)/g,"-$1").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),o[h][`--highcharts-${e}`]=t)};for(let e of["light","dark"]){let i=t[e]||{},s={},r=new tw(i?.neutralColor||""),a=new tw(i?.backgroundColor||""),d=new tw(i?.highlightColor||"");h=e,[3,5,10,20,40,60,80,100].forEach(t=>{s[`neutralColor${t}`]=a.tweenTo(r,t/100),s[`highlightColor${t}`]=a.tweenTo(d,t/100)});for(let s=0;s<n;s++)l(i?.colors?.[s]||t.colors?.[s]||("dark"===e?t2:[])?.[s]||t1[s]||"#888a",`color${s}`);V(i,l),V(s,l),"light"===e&&S(o.dark,o.light)}let d=r.defs.element,c=a?`*[data-highcharts-chart="${r.chartIndex}"]`:"",p=d.querySelector("style.highcharts-palette")||r.box.ownerDocument.createElement("style");p.parentNode||(p.nonce="highcharts",p.className="highcharts-palette",d.appendChild(p)),i=(e=t=>{let e="";return V(o.light,(i,s)=>{e+=t&&i!==o.dark[s]?` ${s}: light-dark(${i}, ${o.dark[s]});
9
+ */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("u"<typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o,r,a={};a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let n={};a.d(n,{default:()=>rq}),(ib=e8||(e8={})).SVG_NS="http://www.w3.org/2000/svg",ib.product="Highcharts",ib.version="13.1.1",ib.win="u">typeof window?window:{},ib.doc=ib.win.document,ib.svg=!!ib.doc?.createElementNS?.(ib.SVG_NS,"svg")?.createSVGRect,ib.pageLang=ib.doc?.documentElement?.closest("[lang]")?.lang,ib.userAgent=ib.win.navigator?.userAgent||"",ib.isChrome=ib.win.chrome,ib.isFirefox=-1!==ib.userAgent.indexOf("Firefox"),ib.isMS=/(edge|msie|trident)/i.test(ib.userAgent)&&!ib.win.opera,ib.isSafari=!ib.isChrome&&-1!==ib.userAgent.indexOf("Safari"),ib.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ib.userAgent),ib.isWebKit=-1!==ib.userAgent.indexOf("AppleWebKit"),ib.deg2rad=2*Math.PI/360,ib.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ib.noop=function(){},ib.supportsPassiveEvents=function(){let t=!1;if(!ib.isMS){let e={get passive(){return t=!0}};ib.win.addEventListener&&ib.win.removeEventListener&&(ib.win.addEventListener("testPassive",ib.noop,e),ib.win.removeEventListener("testPassive",ib.noop,e))}return t}(),ib.charts=[],ib.composed=[],ib.dateFormats={},ib.seriesTypes={},ib.symbolSizes={},ib.chartCount=0;let h=e8,l={dark:{backgroundColor:"#141414",neutralColor:"#ffffff",highlightColor:"#2caffe"},light:{backgroundColor:"#ffffff",neutralColor:"#000000",highlightColor:"#0022ff",positiveColor:"#06b535",negativeColor:"#f21313"}},{doc:d,win:c}=h;function p(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;h.Point&&t instanceof h.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!h.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){J(t,e,i)}}function u(t){let e=t.length,i=t[0];for(;e--;)t[e]<i&&(i=t[e]);return i}function g(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i}function m(t,e,i){let s,o=j(e)&&!M(i),r=(e,i)=>{M(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return j(e)?r(i,e):V(e,r),s}function f(t,e,i){return t>e?t<i?t:i:e}function x(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}function y(t,e,i,s,o){let r=d.createElement(t);return e&&S(r,e),o&&v(r,{padding:"0",border:"none",margin:"0"}),i&&v(r,i),s&&s.appendChild(r),r}function b(t,e=0,i){let s=e%2/2,o=i?-1:1;return(Math.round(t*o-s)+s)*o}function v(t,e){S(t.style,e)}function M(t){return null!=t}function w(t,e,i){V(t,function(s,o){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[o]})}function k(t){t?.parentElement?.removeChild(t)}function C(t,e,i,s){let o={};return!function t(e,o,r,a){let n=i?o:e;V(e,function(i,h){if(!a&&s&&s.indexOf(h)>-1&&o[h]){i=Q(i),r[h]=[];for(let e=0;e<Math.max(i.length,o[h].length);e++)o[h][e]&&(void 0===i[e]?r[h][e]=o[h][e]:(r[h][e]={},t(i[e],o[h][e],r[h][e],a+1)))}else F(i,!0)&&!i.nodeType?(r[h]=G(i)?[]:{},t(i,o[h]||{},r[h],a+1),0===Object.keys(r[h]).length&&("colorAxis"!==h||0!==a)&&delete r[h]):(e[h]!==o[h]||h in e&&!(h in o))&&"__proto__"!==h&&"constructor"!==h&&(r[h]=n[h])})}(t,e,o,0),o}function T(t,e){let i=t.length;for(;i--;)if(t[i]===e){t.splice(i,1);break}}function S(t,e){let i;for(i in t||(t={}),e)"__proto__"!==i&&"constructor"!==i&&(t[i]=e[i]);return t}function P(t,e){let i=function(){};return i.prototype=new t,S(i.prototype,e),i}function A(t,e,i,s){if(i=i||{},d?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==h)){let s=d.createEvent("Events");s.initEvent(e,!0,!0),i=S(s,i),t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(e,i)}else if(t.hcEvents){i.target||S(i,{preventDefault:function(){i.defaultPrevented=!0},target:t,type:e});let s=[],o=t,r=!1;for(;o.hcEvents;)Object.hasOwnProperty.call(o,"hcEvents")&&o.hcEvents[e]&&(s.length&&(r=!0),s.unshift.apply(s,o.hcEvents[e])),o=Object.getPrototypeOf(o);r&&s.sort((t,e)=>t.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i,t)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let L=(t="")=>({center:.5,right:1,middle:.5,bottom:1})[t]||0;function O(t,e){let i,s,o,r,a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o<i)&&(i=o)}),i}function E(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function I(t,e){let i=t.split(".");for(;i.length&&M(e);){let t=i.shift();if(void 0===t||"__proto__"===t)return;if("this"===t){let t;return F(e)&&(t=e["@this"]),t??e}let s=e[t.replace(/[\\'"]/g,"")];if(!M(s)||"function"==typeof s||"number"==typeof s.nodeType||s===c)return;e=s}return e}function D(t,e,i){let s;if("width"===e){let e=Math.min(t.offsetWidth,t.scrollWidth),i=t.getBoundingClientRect?.().width;return i<e&&i>=e-1&&(e=Math.floor(i)),Math.max(0,e-(D(t,"padding-left",!0)||0)-(D(t,"padding-right",!0)||0))}if("height"===e)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(D(t,"padding-top",!0)||0)-(D(t,"padding-bottom",!0)||0));let o=c.getComputedStyle(t,void 0);return o&&(s=o.getPropertyValue(e),(i??"opacity"!==e)&&(s=Z(s))),s}let B=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i,s=t.length;for(i=0;i<s;i++)if(e(t[i],i))return t[i]};function z(t){M(t)&&clearTimeout(t)}function R(t){return F(t)&&"number"==typeof t.nodeType}function N(t){let e=t?.constructor;return!!(F(t,!0)&&!R(t)&&e?.name&&"Object"!==e.name)}function W(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function j(t){return"string"==typeof t}function G(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function X(t){return"function"==typeof t}function F(t,e){return!!t&&"object"==typeof t&&(!e||!G(t))}function H(t,...e){let i,s=[t,...e],o={},r=function(t,e){return"object"!=typeof t&&(t={}),V(e,function(i,s){"__proto__"!==s&&"constructor"!==s&&(!F(i,!0)||N(i)||R(i)?t[s]=e[s]:t[s]=r(t[s]||{},i))}),t};!0===t&&(o=s[1],s=Array.prototype.slice.call(s,2));let a=s.length;for(i=0;i<a;i++)o=r(o,s[i]);return o}function Y(t,e,i,s,o){let r,a=t;i=i??E(t);let n=t/i;for(!e&&(e=o?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?e=e.filter(function(t){return t%1==0}):i<=.1&&(e=[1/i]))),r=0;r<e.length&&(a=e[r],(!o||!(a*i>=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return x(a*i,-Math.round(Math.log(.001)/Math.LN10))}function V(t,e,i){for(let s in t)Object.hasOwnProperty.call(t,s)&&e.call(i||t[s],t[s],s,t)}function U(t){let e=d.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(c.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(c.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}}function $(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t}function Z(t,e){return parseInt(t,e||10)}function _(t,e){return 0>t.indexOf(e)&&!!t.push(e)}function K(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)}function q(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t}function J(t,e,i){function s(e,i){let s=t.removeEventListener;s&&s.call(t,e,i,!1)}function o(i){let o,r;t.nodeName&&(e?(o={})[e]=!0:o=i,V(o,function(t,e){if(i[e])for(r=i[e].length;r--;)s(e,i[e][r].fn)}))}let r="function"==typeof t&&t.prototype||t;if(Object.hasOwnProperty.call(r,"hcEvents")){let t=r.hcEvents;if(e){let r=t[e]||[];i?(t[e]=r.filter(function(t){return i!==t.fn}),s(e,i)):(o(t),t[e]=[])}else o(t),delete r.hcEvents}}function Q(t){return G(t)?t:[t]}function tt(t,e){let i,s,o=t.length;for(s=0;s<o;s++)t[s].safeI=s;for(t.sort(function(t,s){return 0===(i=e(t,s))?t.safeI-s.safeI:i}),s=0;s<o;s++)delete t[s].safeI}function te(t,e,i){return e>0?setTimeout(t,e,i):(t.call(0,i),-1)}function ti(t){return j(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)}function ts(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}let{charts:to,win:tr}=h;function ta(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=W(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),V(s,function(e,i){t+=`
10
+ - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}A(h,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);tr.console&&-1===ta.messages.indexOf(a)&&console.warn(a)}),ta.messages.push(a)}function tn(t,e){let i,s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i<o+1;i++)if(!e[i]||W(s)&&s<(e[i].options.index??e[i]._i)||e[i].options.isInternal){e.splice(i,0,t);break}return i}(ta||(ta={})).messages=[];let th={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5};Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let tl=(s=Math.random().toString(36).substring(2,9)+"-",o=0,function(){return"highcharts-"+(t?"":s)+o++});tr.jQuery&&(tr.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new h[j(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):to[m(this[0],"data-highcharts-chart")]});let{pageLang:td,win:tc}=h,tp=h.isSafari&&tc.Intl&&!tc.Intl.DateTimeFormat.prototype.formatRange,tu=class{constructor(t,e){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=tc.Date,this.lang=e,this.update(t)}update(t={}){this.dTLCache={},this.options=t=H(!0,this.options,t);let{timezoneOffset:e,useUTC:i,locale:s}=t;this.Date=t.Date||tc.Date||Date;let o=t.timezone;M(i)&&(o=i?"UTC":void 0),e&&e%60==0&&(o="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==o&&o?.indexOf("Etc/GMT")!==0,this.timezone=o,this.lang&&s&&(this.lang.locale=s),["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*864e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, | |\/|:)/g);return[+o,s-1,+i,+r,+a,+n,Math.floor(Number(t)||0)%1e3,"DLMXJVS".indexOf(e)]}dateTimeFormat(t,e,i=this.options.locale||this.lang?.locale||td){let s=JSON.stringify(t)+i;j(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(ta(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):ta(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&S(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n),i=(s-t/th.hour+24)%24;if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(i<5||i>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tp||(n-=36e5)}}return n}parse(t){if(!j(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(W(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(60*(s+r/60)*6e4);if(W(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!M(e)||isNaN(e))return s?.invalidDate||"";if(j(t=t??"%Y-%m-%d %H:%M:%S")){let i,o=/%\[([a-zA-Z]+)\]/g;for(;i=o.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e,s?.locale))}if(j(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,l,d,c,p]=this.toParts(e),u=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,m=s?.months||this.months,f=s?.shortMonths||this.shortMonths;V(S({a:g?g[p]:u[p].substr(0,3),A:u[p],d:$(a),e:$(a,2," "),w:p,v:s?.weekFrom??"",b:f[r],B:m[r],m:$(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:$(n),k:n,I:$(n%12||12),l:n%12||12,M:$(l),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:$(d),L:$(c,3)},h.dateFormats),function(s,o){if(j(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e,i):s)})}else if(F(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(S({timeZone:s},t),e)+r}return i?ti(t):t}resolveDTLFormat(t){return F(t,!0)?F(t,!0)&&void 0===t.main?{main:t}:t:{main:(t=Q(t))[0],from:t[1],to:t[2]}}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in th){if(t&&t===th.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(t&&th[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},tg=class extends tu{getBoundaryTicks(t,e,i,s){let o={};if(e===th.year)return o;let r=M(i)&&M(s),a=e<th.hour,n=e<th.day,h=e<th.month,l=e>=th.hour?9e5:e>=th.minute?6e4:e>=th.second&&1e3;if(t.length<1e4){let d=!0;for(let c=0;c<t.length;c++){let p=t[c];if(r){if(p<i)continue;if(p>s)break}if(d){if(e===th.month){o[p]="year",d=!1;continue}if(e===th.hour){o[p]="day",d=!1;continue}}if(l&&p%l!=0){d=!1;continue}let[,u,g,m,f,x,y]=this.toParts(p),b=!m&&!f&&!x&&!y;a&&0===f&&(o[p]="hour"),n&&b&&(o[p]="day"),h&&1===g&&b&&(o[p]="month"),0===u&&1===g&&b&&(o[p]="year"),d=!1}}return o}getTimeTicks(t,e,i,s){let o=[],{count:r=1,unitRange:a}=t,n=e,[h,l,d,c,p,u]=this.toParts(e),g=(e||0)%1e3,m;if(s??(s=1),M(e)){if(g=a>=th.second?0:r*Math.floor(g/r),a>=th.second&&(u=a>=th.minute?0:r*Math.floor(u/r)),a>=th.minute&&(p=a>=th.hour?0:r*Math.floor(p/r)),a>=th.hour&&(c=a>=th.day?0:r*Math.floor(c/r)),a>=th.day&&(d=a>=th.month?1:Math.max(1,r*Math.floor(d/r))),a>=th.month&&(l=a>=th.year?0:r*Math.floor(l/r)),a>=th.year&&(h-=h%r),a===th.week){r&&(e=this.makeTime(h,l,d,c,p,u,g));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"),i="DLMXJVS".indexOf(t);d+=-i+s+(i<s?-7:0)}e=this.makeTime(h,l,d,c,p,u,g),this.variableTimezone&&M(i)&&(m=i-e>4*th.month||this.getTimezoneOffset(e)!==this.getTimezoneOffset(i));let t=e,n=1;for(;t<i;)o.push(t),a===th.year?t=this.makeTime(h+n*r,0):a===th.month?t=this.makeTime(h,l+n*r):m&&(a===th.day||a===th.week)?t=this.makeTime(h,l,d+n*r*(a===th.day?1:7)):m&&a===th.hour&&r>1?t=this.makeTime(h,l,d,c+n*r):t+=a*r,n++;o.push(t)}return o.info=S(t,{boundaryTicks:this.getBoundaryTicks(o,a,n,i),totalRange:a*r}),o}},{isTouchDevice:tm}=h,tf={palette:l,colors:Array(10).fill(1).map((t,e)=>`var(--highcharts-color-${e})`),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"var(--highcharts-neutral-color-3)",padding:8,r:2,stroke:"var(--highcharts-neutral-color-20)","stroke-width":1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"var(--highcharts-neutral-color-10)"},select:{fill:"var(--highcharts-highlight-color-10)",style:{color:"var(--highcharts-neutral-color-100)",fontWeight:"bold"}},disabled:{style:{color:"var(--highcharts-neutral-color-20)"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,selectionMarkerFill:"color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)",type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"var(--highcharts-highlight-color-80)",backgroundColor:"var(--highcharts-background-color)",plotBorderColor:"var(--highcharts-neutral-color-20)"},title:{style:{color:"var(--highcharts-neutral-color-80)",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"var(--highcharts-neutral-color-40)",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"var(--highcharts-highlight-color-100)",inactiveColor:"var(--highcharts-neutral-color-20)"},itemStyle:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"var(--highcharts-neutral-color-100)"},itemHiddenStyle:{color:"var(--highcharts-neutral-color-60)",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{color:"var(--highcharts-neutral-color-80)",fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"var(--highcharts-background-color)",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderColor:"light-dark(var(--highcharts-neutral-color-5), var(--highcharts-neutral-color-20))",borderRadius:5,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%[Y]"},footerFormat:"",header:{distance:5,shape:"callout",style:{fontSize:"1em"}},hideDelay:500,showDelay:0,padding:8,position:{x:0,y:3},shared:!1,snap:tm?25:10,headerFormat:'<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"var(--highcharts-background-color)",borderWidth:void 0,stickOnContact:!1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",verticalAlign:"bottom",x:-10,y:-5},style:{cursor:"pointer",color:"var(--highcharts-neutral-color-40)",fontSize:"0.6em"},text:"Highcharts.com"}},tx=new tg(tf.time,tf.lang),ty={defaultOptions:tf,defaultTime:tx,getOptions:function(){return tf},setOptions:function(t){return A(h,"setOptions",{options:t}),H(!0,tf,t),t.time&&tx.update(tf.time),t.lang&&"locale"in t.lang&&tx.update({locale:t.lang.locale}),t.lang?.chartTitle&&(tf.title={...tf.title,text:t.lang.chartTitle}),tf}},{win:tb}=h,tv=(t,e,i)=>0===i?t:1===i?e:`color-mix(in srgb,${t},${e} ${100*i}%)`,tM=t=>j(t)&&!!t&&"none"!==t;class tw{static parse(t){return t?new tw(t):tw.None}constructor(t){let e,i,s,o;this.rgba=[0/0,0/0,0/0,0/0],this.input=t;let r=h.Color;if(r&&r!==tw)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tw(t[1]));else if("string"==typeof t)for(this.input=t=tw.names[t.toLowerCase()]||t,s=tw.parsers.length;s--&&!i;)(e=(o=tw.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if("object"==typeof e&&void 0!==this.stops){let i=H(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&W(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(W(t)&&0!==t)if(W(e[0]))for(let i=0;i<3;i++)e[i]+=Z(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else tw.useColorMix&&tM(this.input)&&(this.output=tv(this.input,t>0?"white":"black",Math.abs(t)));return this}setOpacity(t){return W(this.rgba[0])?this.rgba[3]=t:tw.useColorMix&&tM(this.input)&&(this.output=tv(this.input,"#0000",1-t)),this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!W(i[0])||!W(s[0]))return tw.useColorMix&&tM(this.input)&&tM(t.input)&&e<.99?tv(this.input,t.input,e):t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tw.names={white:"#ffffff",black:"#000000"},tw.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[Z(t[1]),Z(t[2]),Z(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[Z(t[1]),Z(t[2]),Z(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[Z(t[1]+t[1],16),Z(t[2]+t[2],16),Z(t[3]+t[3],16),M(t[4])?Z(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[Z(t[1],16),Z(t[2],16),Z(t[3],16),M(t[4])?Z(t[4],16)/255:1]}}],tw.useColorMix=tb.CSS?.supports("color","color-mix(in srgb,red,blue 9%)"),tw.None=new tw("");let{parse:tk}=tw,{win:tC}=h;class tT{constructor(t,e,i){this.pos=0/0,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i)if(e.length===i.length&&s<1)for(let t=0;t<i.length;t++){let r=e[t],a=i[t],n=[];for(let t=0;t<a.length;t++){let e=r[t],i=a[t];W(e)&&W(i)&&("A"!==a[0]||4!==t&&5!==t)?n[t]=e+s*(i-e):n[t]=i}o.push(n)}else o=i;else o=this.toD||[];this.elem.attr("d",o,void 0,!0)}update(){let t=this.elem,e=this.prop,i=this.now??1,s=this.options.step;this[e+"Setter"]?this[e+"Setter"]():t&&t.attr?t.element&&t.attr(e,i,void 0,!0):t&&(t.style[e]=i+(this.unit||"")),s?.call(t,i,this)}run(t,e,i){let{elem:s,options:o}=this,{complete:r,curAnim:a={}}=o,n=t=>!n.stopped&&this.step(t),h=tC.requestAnimationFrame||function(t){setTimeout(t,13)},l=()=>{for(let t=0;t<tT.timers.length;t++)tT.timers[t]()||tT.timers.splice(t--,1);tT.timers.length&&h(l)};t!==e||s["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,n.elem=s,n.prop=this.prop,n()&&1===tT.timers.push(n)&&h(l)):(delete a[this.prop],r&&0===Object.keys(a).length&&r.call(s))}step(t){let e,i,s=+new Date,o=this.options,r=this.elem,a=o.complete,n=o.duration,h=o.curAnim;return r?.attr&&!r.element?e=!1:t||s>=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,V(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e?.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length<d;){let i=t[0],s=e[d-t.length];if(s&&"M"===i[0]&&("C"===s[0]?t[0]=["C",i[1],i[2],i[1],i[2],i[1],i[2]]:t[0]=["L",i[1],i[2]]),t.unshift(i),a){let e=t.pop();t.push(t[t.length-1],e)}}}function m(t){for(;t.length<d;){let e=t[Math.floor(t.length/n)-1].slice();if("C"===e[0]&&(e[1]=e[5],e[2]=e[6]),a){let i=t[Math.floor(t.length/n)].slice();t.splice(t.length/2,0,e,i)}else t.push(e)}}if(s&&o&&o.length){for(c=0;c<s.length;c++)if(s[c]===o[0]){l=c;break}else if(s[0]===o[o.length-s.length+c]){l=c,p=!0;break}else if(s[s.length-1]===o[o.length-s.length+c]){l=s.length-c;break}void 0===l&&(u=[])}return u.length&&W(l)&&(d=r.length+l*n,p?(g(u,r),m(r)):(g(r,u),m(u))),[u,r]}fillSetter(){tT.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,tk(this.start).tweenTo(tk(this.end),this.pos),void 0,!0)}}function tS(t,e){e.renderer.globalAnimation=t??e.options.chart.animation??!0}function tP(t){return F(t)?H({duration:500,defer:0},t):{duration:500*!!t,defer:0}}function tA(t,e,i){let s=tP(e),o=i?[i]:t.series,r=0,a=0;return o.forEach(t=>{let i=tP(t.options.animation);r=F(e)&&M(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}}function tL(t,e={pos:1},i){F(i)||(i={duration:arguments[2],easing:arguments[3],complete:arguments[4]}),W(i.duration)||(i.duration=400),i.easing="function"==typeof i.easing?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=H(e),V(e,(s,o)=>{t&&tO(t,o);let r=new tT(t,i,o),a=e.d,n="dashstyle"===o,h=0,l,d="";"d"===o&&G(a)?(r.paths=r.initPath(t,t.pathArray,a),r.toD=a,l=1):t?.attr?(h=t.attr(o),n&&t.attr(o,s)):t&&(h=+(D(t,o)||0),"opacity"!==o&&(d="px")),l||(l=s),"string"==typeof l&&l.match("px")&&(l=l.replace(/px/g,"")),M(l)&&!n&&r.run(h,l,d)})}tT.timers=[];let tO=(t,e)=>tT.timers.forEach(i=>{i.elem!==t||e&&e!==i.prop||(i.stopped=!0)}),{SVG_NS:tE,win:tI}=h,{trustedTypes:tD}=tI,tB=tD&&X(tD.createPolicy)&&tD.createPolicy("highcharts",{createHTML:t=>t}),tz=tB?tB.createHTML(""):"";class tR{static filterUserAttributes(t){return V(t,(e,i)=>{let s=!0;-1===tR.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src","xlink:href"].indexOf(i)&&(s=j(e)&&tR.allowedReferences.some(t=>0===e.indexOf(t))),s||(ta(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),j(e)&&t[i]&&(t[i]=e.replace(/</g,"&lt;"))}),t}static parseStyle(t){return t.split(";").reduce((t,e)=>{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=tR.emptyHTML,e&&new tR(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return Q(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?h.doc.createTextNode(e.textContent):void 0,n=tR.bypassHTMLFiltering;if(r)if("#text"===r)o=a;else if(-1!==tR.allowedTags.indexOf(r)||n){let s="svg"===r?tE:i.namespaceURI||tE,l=h.doc.createElementNS(s,r),d=e.attributes||{};V(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(d[e]=t)}),m(l,n?d:tR.filterUserAttributes(d)),e.style&&v(l,e.style),a&&l.appendChild(a),t(e.children||[],l),o=l}else ta(33,!1,void 0,{"Invalid tagName in config":r});o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(tB?tB.createHTML(t):t,"text/html")}catch{try{e=new DOMParser().parseFromString(t,"text/html")}catch{}}e||((e=h.doc.implementation.createHTMLDocument("")).body.innerHTML=t);let s=(t,e)=>{let i=t.localName||t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=tR.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}tR.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","aria-sort","class","clip-path","color","colspan","cx","cy","d","disabled","dx","dy","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","result","role","rowspan","scope","slope","src","startOffset","stdDeviation","stop-color","stop-opacity","stroke-linecap","stroke-width","stroke","style","summary","tabindex","tableValues","target","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],tR.allowedReferences=["https://","http://","mailto:","/","../","./","#"],tR.allowedTags=["#text","a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","sub","sup","svg","table","tbody","td","text","textPath","th","thead","title","tr","tspan","u","ul"],tR.emptyHTML=tz,tR.bypassHTMLFiltering=!1;let{defaultOptions:tN,defaultTime:tW}=ty,{pageLang:tj}=h,tG={add:(t,e)=>t+e,divide:(t,e)=>0!==e?x(t/e):"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!G(t)&&t.map((i,s)=>tF(e.body,S(F(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>t<e,multiply:(t,e)=>x(t*e,15),ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ti,unless:t=>!t},tX={};function tF(t="",e,i){let s=/\{([^{}]+)\}/g,o=/\(([^()]+)\)/g,r=[],a=/f$/,n=/\.(\d)/,h=i?.options?.lang||tN.lang,l=i?.time||tW,d=i?.numberFormatter||tH.bind(i),c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):I(t,e))},p,u,g=0,m;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,m=!0),u?.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");tG[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n))if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let r,p,{body:u,elseBody:g,expression:m,fn:f}=s;if(f){let t=[s],o=[],a=m.length,n=0,h;for(p=0;p<=a;p++){let t=m.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==a||(o.push(m.substr(n,p-n)),n=p+1)}for(p=tG[f].length;p--;)t.unshift(c(o[p+1]));r=tG[f].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=tF(r?u:g,e,i))}else{let t=/^["'].+["']$/.test(m)?[m]:m.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&j(r)&&(r=`"${r}"`)}t=t.replace(s.find,r??"")}),m?tF(t,e,i):t}function tH(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tN.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):W(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),W(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||tj,g=JSON.stringify(c)+u;return o=(tX[g]??(tX[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/([,\.])/g,"_$1").replace(/_\,/g,s??",").replace("_.",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let tY={dateFormat:function(t,e,i){return tW.dateFormat(t,e,i)},format:tF,helpers:tG,numberFormat:tH};(e4||(e4={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p=!0,u,g,m=0;for(c=h;c--;)m+=e[c].size;if(m>r){if(tt(e,(t,e)=>(e.rank||0)-(t.rank||0)),e[0].rank===e[e.length-1].rank){let t=[[0,h-1]];for(;t.length&&m>r;){let i=t.shift();if(!i)break;u=e[c=Math.floor((i[0]+i[1])/2)],_(l,c)&&(m-=u.size),i[0]<c&&t.push([i[0],c-1]),c<i[1]&&t.push([c+1,i[1]])}}else for(c=h-1;m>r&&c>=0;)u=e[c],_(l,c)&&(m-=u.size),c--;l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(tt(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:t.align??.5}));p;){for(c=e.length;c--;)u=e[c],g=(Math.min.apply(0,u.targets)+Math.max.apply(0,u.targets))/2,u.pos=f(g-u.size*u.align,0,i-u.size);for(c=e.length,p=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),p=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),tt(o,a),o};let tV=e4,{deg2rad:tU,doc:t$,svg:tZ,SVG_NS:t_,win:tK,isFirefox:tq}=h;class tJ{_defaultGetter(t){let e=this[t+"Value"]??this[t]??(this.element?this.element.getAttribute(t):null)??this.box?.[t]??0;return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||j(i)?i||"renderer":void 0;n&&(a&&_(r,this),i=void 0);let h=i??o[n]??o,l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*L(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*L(t.verticalAlign),c={};return t.align&&(c["text-align"]=t.align),c[e?"translateX":"x"]=Math.round(l),c[e?"translateY":"y"]=Math.round(d),s&&(this[this.placed?"animate":"attr"](c),this.placed=!0),this.alignAttr=c,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=tP(e??this.renderer.globalAnimation??!0),o=s.defer;return t$.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),te(()=>{this.element&&tL(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),V(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(" "),s=t.substring(i+1),o=t.substring(0,i);if(o&&"none"!==o&&h.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=t$.createElementNS(t_,"tspan");m(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=t$.createElementNS(t_,"tspan");a.textContent="​",m(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=tJ.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(V(t,function(e,i){l=!1,s||tO(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=tl()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);S(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=b(i,e),n=b(s,e);return S(t,{x:a,y:n,width:b(o,e)-a,height:b(r,e)-n}),M(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,u=[],g;A(this.renderer,"complexColor",{args:arguments},()=>{if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,c=i.radialReference,G(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&c&&!M(a.gradientUnits)&&(n=a,a=H(a,s.getRadialAttr(c,n),{gradientUnits:"userSpaceOnUse"})),V(a,function(t,e){"id"!==e&&u.push(e,t)}),V(l,function(t){u.push(t)}),h[u=u.join(",")])p=h[u].attr("id");else{a.id=p=tl();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(([e,i])=>{0===i.indexOf("rgba")?(i=(o=tw.parse(i)).get("rgb"),d=o.get("a")):d=1;let r=s.createElement("stop").attr({offset:e,"stop-color":i,"stop-opacity":d}).add(t);t.stops.push(r)})}g="url("+s.url+"#"+p+")",i.setAttribute(e,g),i.gradient=u,t.toString=function(){return g}}})}css(t){let e=this.styles,i={},s=this.element,o=this.renderer,r,a=!e;if(e&&V(t,function(t,s){e&&e[s]!==t&&(i[s]=t,a=!0)}),a){e&&(t=S(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(r=this.textWidth=Z(t.width)),S(this.styles,t),r&&!tZ&&o.forExport&&delete t.width;let a=tq&&t.fontSize||null;a&&(W(a)||/^\d+$/.test(a))&&(t.fontSize+="px");let n=H(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>n&&delete n[t]),n.color&&(n.fill=n.color,delete n.color)),v(s,n)}return this.added&&("text"===this.element.nodeName&&o.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t){let s=(t=t.toLowerCase()).replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+Z(s[e])*(i??0/0);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,{element:e={},renderer:i,stops:s}=t,o=e.ownerSVGElement;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,tO(t),t.clipPath&&o){let e=t.clipPath;[].forEach.call(o.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(s){for(let t of s)t.destroy();s.length=0}t.safeRemoveChild(e),t.alignOptions&&T(i.alignedObjects,t),V(t,(e,i)=>{(t[i]?.parentGroup===t||-1!==["connector","foreignObject"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){G(t)&&("string"==typeof t[0]&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce((t,e,i)=>e?.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,{element:r,renderer:a,styles:n,textStr:h}=this,{cache:l,cacheKeys:d}=a,c=r.namespaceURI===this.SVG_NS,p=e??this.rotation??0,u=a.styledMode?r&&tJ.prototype.getStyle.call(r,"font-size"):n.fontSize,g=this.getBBoxCacheKey([a.rootFontSize,this.textWidth,this.alignValue,n.fontWeight,n.lineClamp,n.textOverflow,u,p]);if(g&&!t&&(i=l[g]),!i||i.polygon){if(c||a.forExport){try{o=this.fakeTS&&function(t){let e=r.querySelector(".highcharts-text-outline");e&&v(e,{display:t})},X(o)&&o("none"),i=r.getBBox?S({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight,x:0,y:0},X(o)&&o("")}catch{}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,c&&(i.height=s=({"11px,17":14,"13px,20":16})[`${u||""},${Math.round(s)}`]||s),p&&(i=this.getRotatedBox(i,p));let t={bBox:i};A(this,"afterGetBBox",t),i=t.bBox}if(g&&(""===h||i.height>0)){for(;d.length>250;)delete l[d.shift()];l[g]||d.push(g),l[g]=i}return i}getBBoxCacheKey(t){if(M(this.textStr)){let e=""+this.textStr;return -1===e.indexOf("<")&&(e=e.replace(/\d/g,"0")),[e,...t].join(",")}}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=L(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*tU,u=(e-90)*tU,g=Math.cos(p),m=Math.sin(p),f=o*g,x=o*m,y=Math.cos(u),b=Math.sin(u),[[v,M],[w,k]]=[h,l].map(t=>[t-t*g,t*m]),C=i+d*(o-f)+v+k+c*y,T=C+f,S=T-r*y,P=S-f,A=s+c-d*x-M+w+c*b,O=A+x,E=O-r*b,I=E-x,D=Math.min(C,T,S,P),B=Math.min(A,O,E,I),z=Math.max(C,T,S,P)-D,R=Math.max(A,O,E,I)-B;return{x:D,y:B,width:z,height:R,polygon:[[C,A],[T,O],[S,E],[P,I]]}}getStyle(t){return tK.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=t_,this.element="div"===e||"body"===e?y(e):t$.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},A(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=p(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(j(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=H(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},F(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=Z(t):""!==t&&(m(i=t$.createElementNS(t_,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;tJ.symbolCustomAttribs.forEach(function(i){e[i]=t[i]??e[i]}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||t$.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=q(t??"",[/<[^>]*>/g,""]).replace(/&lt;/g,"<").replace(/&gt;/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,foreignObject:i,matrix:s,rotation:o=0,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:h,text:l,translateX:d=0,translateY:c=0}=this,p=[`translate(${d},${c})`];M(s)&&p.push("matrix("+s.join(",")+")"),o&&p.push("rotate("+o+" "+(r??e.getAttribute("x")??this.x??0)+" "+(a??e.getAttribute("y")??this.y??0)+")"),(M(n)||M(h))&&p.push(`scale(${n??1} ${h??1})`),p.length&&!(l||this).textPath&&(i?.element||e).setAttribute(t,p.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let{element:i,parentGroup:s,renderer:o}=this,r=s?.element||o.box,a=r===o.box,n,h,l,d=!1,c,p=this.added,u;if(M(t)?(i.setAttribute("data-z-index",t),t*=1,this[e]===t&&(p=!1)):M(this[e])&&i.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=r.childNodes).length-1;u>=0&&!d;u--)c=!M(l=(h=n[u]).getAttribute("data-z-index")),h!==i&&(M(t)&&t<0&&c&&!a&&!u?(r.insertBefore(i,n[u]),d=!0):(M(t)&&parseFloat(l||"")<=t||c&&(!M(t)||t>=0))&&(r.insertBefore(i,n[u+1]),d=!0));d||(r.insertBefore(i,n[3*!!a]),d=!0)}return d}}tJ.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],tJ.prototype.strokeSetter=tJ.prototype.fillSetter,tJ.prototype.yGetter=tJ.prototype.xGetter,tJ.prototype.matrixSetter=tJ.prototype.rotationOriginXSetter=tJ.prototype.rotationOriginYSetter=tJ.prototype.rotationSetter=tJ.prototype.scaleXSetter=tJ.prototype.scaleYSetter=tJ.prototype.translateXSetter=tJ.prototype.translateYSetter=tJ.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let tQ=tJ,{charts:t0}=h,t1=["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],t2=[null,"#00e272","#efdf00"];class t3{constructor(t,e){this.defaultOptions=l,this.options=H(l),this.cssVars={light:{},dark:{}},this.renderer=t,this.update(e)}injectCSS(t){let e,i,s,{cssVars:o,renderer:r}=this,a=Object.keys(C(t,this.defaultOptions)).length>0,n=Math.max(t.colors?.length||0,t1.length),h="light",l=(t,e)=>{j(t)&&(e=e.replace(/([0-9]+)/g,"-$1").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),o[h][`--highcharts-${e}`]=t)};for(let e of["light","dark"]){let i=t[e]||{},s={},r=new tw(i?.neutralColor||""),a=new tw(i?.backgroundColor||""),d=new tw(i?.highlightColor||"");h=e,[3,5,10,20,40,60,80,100].forEach(t=>{s[`neutralColor${t}`]=a.tweenTo(r,t/100),s[`highlightColor${t}`]=a.tweenTo(d,t/100)});for(let s=0;s<n;s++)l(i?.colors?.[s]||t.colors?.[s]||("dark"===e?t2:[])?.[s]||t1[s]||"#888a",`color${s}`);V(i,l),V(s,l),"light"===e&&S(o.dark,o.light)}let d=r.defs.element,c=a?`*[data-highcharts-chart="${r.chartIndex}"]`:"",p=d.querySelector("style.highcharts-palette")||r.box.ownerDocument.createElement("style");p.parentNode||(p.nonce="highcharts",p.className="highcharts-palette",d.appendChild(p)),i=(e=t=>{let e="";return V(o.light,(i,s)=>{e+=t&&i!==o.dark[s]?` ${s}: light-dark(${i}, ${o.dark[s]});
11
11
  `:` ${s}: ${i};
12
12
  `}),e})(),s=e(!0),p.textContent=`${c||":root"} {
13
13
  ${i}
@@ -25,4 +25,4 @@ ${s}
25
25
  }
26
26
  .highcharts-dark .highcharts-container {
27
27
  color-scheme: dark;
28
- }`}update(t){let e=this.renderer.box.parentElement,i=t0?.[this.renderer.chartIndex];t=H(!0,this.options,t),i&&(i.options.palette=t),!1!==t.injectCSS&&this.injectCSS(t),e&&(j(t.colorScheme)&&["light","dark","inherit"].includes(t.colorScheme)?e.style.colorScheme=t.colorScheme:e.style.removeProperty("color-scheme"))}}class t5 extends tQ{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=t5.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=L(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&W(this.xSetting)&&this.attr({x:this.xSetting}),this.updateTextPadding())}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=H(t),t5.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e||"width"in e?this.updateTextPadding():"textOverflow"in e&&this.updateBoxSize(),"color"in e&&this.updateBackground()}return tQ.prototype.css.call(this,t)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),tQ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){(this.textStr&&0===this.bBox.width&&0===this.bBox.height||this.rotation)&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=this.paddingLeft??i,h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1),this.updateBackground()}onAdd(){this.text.add(this),this.attr({text:this.textStr??"",x:this.x||0,y:this.y||0}),this.box&&M(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){W(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=this["text-align"]=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBackground(){"contrast"===this.fill&&this.box?.attr({fill:this.renderer.getContrast(this.text.styles.color||"#000"),"fill-opacity":.65})}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!W(this.widthSetting)||!W(this.heightSetting)||this.textAlign)&&M(e.textStr)?e.getBBox(void 0,0):t5.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(S(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+L(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=W(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=this.paddingLeft??t,i=this.paddingRight??t;return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.anchorX&&(this["forceAnimate:anchorX"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.anchorY&&(this["forceAnimate:anchorY"]=!0),this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}function t6(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=o.r??i,l=o.r??(s||i),d=1e-4>Math.abs(n-a-2*Math.PI);d&&(a=Math.PI/2,n=2.5*Math.PI-1e-4);let c=o.innerR,p=o.open??d,u=d?0:Math.cos(a),g=d?1:Math.sin(a),m=d?0:Math.cos(n),f=d?1:Math.sin(n),x=o.longArc??(n-a-Math.PI<1e-4?0:1),y=["A",h,l,0,x,o.clockwise??1,t+(d?.001:h*m),e+l*f];y.params={start:a,end:n,cx:t,cy:e},r.push(["M",t+h*u,e+l*g],y),M(c)&&((y=["A",c,c,0,x,M(o.clockwise)?1-o.clockwise:0,t+(d?-.001:c*u),e+c*g]).params={start:n,end:a,cx:t,cy:e},r.push(p?["M",t+c*m,e+c*f]:["L",t+c*m,e+c*f],y)),p||r.push(["Z"])}return r}function t9(t,e,i,s,o){return o?.r?t8(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}function t8(t,e,i,s,o){let r=o?.r||0;return[["M",t+r,e],["L",t+i-r,e],["A",r,r,0,0,1,t+i,e+r],["L",t+i,e+s-r],["A",r,r,0,0,1,t+i-r,e+s],["L",t+r,e+s],["A",r,r,0,0,1,t,e+s-r],["L",t,e+r],["A",r,r,0,0,1,t+r,e],["Z"]]}t5.emptyBBox={width:0,height:0,x:0,y:0},t5.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let t4={arc:t6,callout:function(t,e,i,s,o){let r=Math.min(o?.r||0,i,s),a=r+6,n=o?.anchorX,h=o?.anchorY||0,l=t8(t,e,i,s,{r});if(!W(n)||n<i&&n>0&&h<s&&h>0)return l;if(t+n>i-a)if(h>e+a&&h<e+s-a)l.splice(3,1,["L",t+i,h-6],["L",t+i+6,h],["L",t+i,h+6],["L",t+i,e+s-r]);else if(n<i){let o=h<e+a,d=o?e:e+s;l.splice(o?2:5,0,["L",n,h],["L",t+i-r,d])}else l.splice(3,1,["L",t+i,s/2],["L",n,h],["L",t+i,s/2],["L",t+i,e+s-r]);else if(t+n<a)if(h>e+a&&h<e+s-a)l.splice(7,1,["L",t,h+6],["L",t-6,h],["L",t,h-6],["L",t,e+r]);else if(n>0){let i=h<e+a,o=i?e:e+s;l.splice(i?1:6,0,["L",n,h],["L",t+r,o])}else l.splice(7,1,["L",t,s/2],["L",n,h],["L",t,s/2],["L",t,e+r]);else h>s&&n<i-a?l.splice(5,1,["L",n+6,e+s],["L",n,e+s+6],["L",n-6,e+s],["L",t+r,e+s]):h<0&&n>a&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return t6(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:t9,roundedRect:t8,square:t9,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:t7,SVG_NS:et,win:ee}=h,ei=(t,e)=>t.substring(0,e)+"…",es=class{constructor(t){const e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e?.lineHeight,this.textOutline=e?.textOutline,this.ellipsis=e?.textOverflow==="ellipsis",this.lineClamp=e?.lineClamp,this.noWrap=e?.whiteSpace==="nowrap"}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=(t.textStr??"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||/<br.*?>/g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new tN(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["&lt;","&gt;"])),a&&a.removeChild(e)}}else e.appendChild(t7.createTextNode(this.unescapeEntities(s)));j(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=m(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),m(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,ei),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(t7.createTextNode(e),t);let s=t7.createElementNS(et,"tspan");s.textContent="​",m(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,ei)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ee.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ee.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a?.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e?.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),S(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),A(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h,l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let m=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch{}return c[r]};if(l.rotation=0,s+(h=m(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),h=m(g,n&&n.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ei)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return V(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:eo}=ty,{charts:er,deg2rad:ea,doc:en,isFirefox:eh,isMS:el,isWebKit:ed,noop:ec,SVG_NS:ep,symbolSizes:eu,win:eg}=h;class em{constructor(t,e,i,s,o,r,a,n,h){let l,d;this.x=0,this.y=0;const c=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),u=c.element;t.appendChild(u),m(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&m(u,"xmlns",this.SVG_NS),this.box=u,this.boxWrapper=c,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(en.createTextNode("Created with Highcharts 13.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.chartIndex=h||0,this.gradients={},this.cache={},this.cacheKeys=[],this.asyncCounter=0,this.rootFontSize=c.getStyle("font-size"),this.setSize(e,i,!1),a||(c.css(this.getStyle(s||{})),this.palette=new t3(this,n||eo.palette)),eh&&t.getBoundingClientRect&&((l=function(){v(t,{left:0,top:0}),d=t.getBoundingClientRect(),v(t,{left:Math.ceil(d.left)-d.left+"px",top:Math.ceil(d.top)-d.top+"px"})})(),this.unSubPixelFix=p(eg,"resize",l))}definition(t){return new tN([t]).addToDOM(this.defs.element)}getReferenceURL(){if((eh||ed)&&en.getElementsByTagName("base").length){if(!M(e)){let t=tl(),i=new tN([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(en.body);v(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=en.elementFromPoint(6,6);e=s?.id==="hitme",en.body.removeChild(i)}if(e)return q(eg.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=S({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),w(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects.length=0,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=H({color:"#000000",offsetX:0,offsetY:2,opacity:.05,width:6},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new es(t).buildSVG()}getContrast(t){if("transparent"===t)return"#000000";let e=tw.parse(t).rgba,i=" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";if(W(e[0])||!tw.useColorMix){let t=e.map(t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}return"color(from "+t+" srgb"+i+i+i+")"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,u=arguments,g=0;o=H(eo.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let m=o.states||{},f=o.style||{};delete o.states,delete o.style;let x=[tN.filterUserAttributes(o)],y=[f];return c||["hover","select","disabled"].forEach((t,e)=>{x.push(H(x[0],tN.filterUserAttributes(u[e+5]||m[t]||{}))),y.push(x[e+1].style),delete x[e+1].style}),p(d.element,el?"mouseover":"mouseenter",function(){3!==g&&d.setState(1)}),p(d.element,el?"mouseout":"mouseleave",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(x[t]);let e=y[t];F(e)&&d.css(e)}},d.attr(x[0]),!c&&(d.css(S({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==g&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return M(i[1])&&i[1]===s[1]&&(i[1]=s[1]=b(i[1],e)),M(i[2])&&i[2]===s[2]&&(i[2]=s[2]=b(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return X(t)?e.d=t:F(t)&&S(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=F(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;F(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=F(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,S(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,m(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:i??!0?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};W(e)&&(a.x=e),W(i)&&(a.y=i),W(s)&&(a.width=s),W(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new eg.Image;p(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l,d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),S(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&S(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=r?.width??eu[h]?.width,s.imgheight=r?.height??eu[h]?.height,l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),m(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),M(e)&&s.attr({x:e,y:i}),s.isImg=!0,M(s.imgwidth)&&M(s.imgheight)?l(s):(s.attr({width:0,height:0}),y("img",{onload:function(){let t=er[d.chartIndex];0===this.width&&(v(this,{position:"absolute",top:"-999em"}),en.body.appendChild(this)),eu[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.asyncCounter--,d.asyncCounter||!t||t.hasLoaded||t.onload()},src:h}),this.asyncCounter++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),M(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;i<s.length;i++)(r=s[i]).getAttribute(e)===o&&r.setAttribute(e,t);i.setAttribute(e,t)}),r}fontMetrics(t){let e=W(t)?t:Z(tQ.prototype.getStyle.call(t,"font-size")||0),i=e<24?e+3:Math.round(1.2*e),s=Math.round(.8*i);return{h:i,b:s,f:e}}rotCorr(t,e,i){let s=t;return e&&i&&(s=Math.max(s*Math.cos(e*ea),4)),{x:-t/3*Math.sin(e*ea),y:s}}pathToSegments(t){let e=[],i=[],s={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let o=0;o<t.length;o++)j(i[0])&&W(t[o])&&i.length===s[i[0].toUpperCase()]&&t.splice(o,0,i[0].replace("M","L").replace("m","l")),"string"==typeof t[o]&&(i.length&&e.push(i.slice(0)),i.length=0),i.push(t[o]);return e.push(i.slice(0)),e}label(t,e,i,s,o,r,a,n,h){return new t5(this,t,e,i,s,o,r,a,n,h)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}S(em.prototype,{Element:tQ,SVG_NS:ep,escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},symbols:t4,draw:ec}),h.Renderer=em;let{composed:ef,isFirefox:ex}=h;class ey extends tQ{static compose(t){_(ef,"HTMLElement")&&(t.prototype.html=function(t,e,i){return new ey(this,"div").attr({text:t,x:Math.round(e),y:Math.round(i),xmlns:"http://www.w3.org/1999/xhtml"})})}constructor(t,e){super(t,e),this.foreignObject=t.createElement("foreignObject").attr({zIndex:2}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=Z(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden",t.whiteSpace="nowrap"),t?.lineClamp?(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"):t?.lineClamp===0&&(t.display="inline-block"),W(Number(t?.fontSize))&&(t.fontSize+="px"),S(this.styles,t),v(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){let t;if(!this.added){this.alignOnAdd=!0;return}let{element:e,foreignObject:i,oldTextWidth:s,renderer:o,rotation:r,scaleX:a,styles:{display:n="inline-block",whiteSpace:h},textAlign:l="left",textWidth:d,x:c=0,y:p=0}=this,u=()=>this.textPxLength?this.textPxLength:(v(e,{width:"",whiteSpace:h||"nowrap"}),e.offsetWidth),g=[r,l,e.innerHTML,d,this.textAlign].join(",");if(v(e,{display:"inline-block",verticalAlign:"top"}),d!==s){let t=u(),i=d||0,l=!o.styledMode&&""===e.style.textOverflow&&e.style.webkitLineClamp;(i>s||t>i||l)&&(/[\-\s\u00AD]/.test(e.textContent||e.innerText)||"ellipsis"===e.style.textOverflow)&&(v(e,{width:(r||a||t>i)&&W(d)?d+"px":l?Math.min(t+1,i)+"px":"auto",display:n,whiteSpace:h||"normal"}),this.oldTextWidth=d)}i.attr({width:o.width,height:o.height}),g!==this.cTT&&(t=o.fontMetrics(e).b,this.getSpanCorrection(!M(r)&&!this.textWidth&&this.textPxLength||e.offsetWidth,t,L(l))),super.updateTransform(),W(c)&&W(p)?(i.attr({x:c+(this.xCorr||0),y:p+(this.yCorr||0),width:e.offsetWidth+4,height:e.offsetHeight+1,"transform-origin":e.getAttribute("transform-origin")||"0 0"}),v(e,{display:n,textAlign:l})):ex&&i.attr({width:0,height:0}),this.cTT=g}add(t){let{foreignObject:e}=this;return e.add(t),super.add(e),this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.oldTextWidth,tN.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}visibilitySetter(t,e){this.foreignObject.attr({[e]:t}),this[e]=t}}let eb=ey.prototype;eb.ySetter=eb.xSetter,eb.opacitySetter=eb.visibilitySetter,(ib=e8||(e8={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",boundary:void 0,range:!1},day:{main:"%[eb]",boundary:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]",boundary:void 0},year:{main:"%[Y]",boundary:void 0}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"var(--highcharts-neutral-color-80)",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"var(--highcharts-neutral-color-5)",minorGridLineWidth:1,minorTickColor:"var(--highcharts-neutral-color-40)",lineColor:"var(--highcharts-neutral-color-80)",lineWidth:1,gridLineColor:"var(--highcharts-neutral-color-10)",gridLineWidth:void 0,tickColor:"var(--highcharts-neutral-color-80)"},ib.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){return this.axis.chart.numberFormatter(this.total||0,-1)},style:{color:"var(--highcharts-neutral-color-100)",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0};let ev=e8;(e4||(e4={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},V(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(J(t,i,t.eventOptions[i]),delete t.eventOptions[i]),G(e)&&(t.eventOptions[i]=e,p(t,i,e,{order:0})))})};let eM=e4,{deg2rad:ew}=h,ek=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,A(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=t.options?.labels??i.labels,l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=l.info,u=p?.boundaryTicks[n],g=i.dateTimeLabelFormats,m=t.label,f,y,b,v=this.parameters.category||(o?o[n]??a[n]??n:n);if(r&&W(v)&&(v=x(r.lin2log(v))),e.dateTime&&g)if(p){let t=p.unitName,e={millisecond:"hour",second:"hour",minute:"hour",hour:"day",day:"month",week:"month",month:"year",year:"year"}[t],o=!i.grid?.enabled&&u&&e&&g[e]?.boundary||g[t];f=(y=s.time.resolveDTLFormat(o)).main}else W(v)&&(f=e.dateTime.getXDateFormat(v,g||{}));t.isFirst=d,t.isLast=c,t.boundary=u;let M={axis:e,chart:s,dateTimeLabelFormat:f,boundary:u,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:p,value:v};A(this,"labelFormat",M);let w=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),tY.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=w.call(M,M),C=y?.list;C?t.shortenLabel=function(){for(b=0;b<C.length;b++)if(S(M,{dateTimeLabelFormat:C[b]}),m.attr({text:w.call(M,M)}),m.getBBox().width<e.getSlotWidth(t)-2*(h.padding||0))return;m.attr({text:""})}:t.shortenLabel=void 0,m?m.textStr!==k&&(!m.textWidth||h.style.width||m.styles.width||m.css({width:void 0}),m.attr({text:k}),m.textPxLength=m.getBBox().width):(t.label=m=t.createLabel(k,h),t.rotation=0)}createLabel(t,e,i){let s=this.axis,{renderer:o,styledMode:r}=s.chart,a=e.style.whiteSpace,n=M(t)&&e.enabled?o.text(t,i?.x,i?.y,e.useHTML).add(s.labelGroup):void 0;return n&&(r||n.css(H(e.style)),n.textPxLength=n.getBBox().width,!r&&a&&n.css({whiteSpace:a})),n}destroy(){w(this,this.axis)}getPosition(t,e,i,s){let o=this.axis,r=o.chart,a=s&&r.oldChartHeight||r.chartHeight,n={x:t?x(o.translate(e+i,void 0,void 0,s)+o.transB):o.left+o.offset+(o.opposite?(s&&r.oldChartWidth||r.chartWidth)-o.right-o.left:0),y:t?a-o.bottom+o.offset-(o.opposite?o.height:0):x(a-o.translate(e+i,void 0,void 0,s)-o.transB)};return n.y=f(n.y,-1e9,1e9),A(this,"afterGetPosition",{pos:n}),n}getLabelPosition(t,e,i,s,o,r,a,n){let h,l,d=this.axis,c=d.transA,p=d.isLinked&&d.linkedParent?d.linkedParent.reversed:d.reversed,u=d.staggerLines,g=d.tickRotCorr||{x:0,y:0},m=s||d.reserveSpaceDefault?0:-d.labelOffset*("center"===d.labelAlign?.5:1),f=o.distance,x={};return h=0===d.side?i.rotation?-f:-i.getBBox().height:2===d.side?g.y+f:Math.cos(i.rotation*ew)*(g.y-i.getBBox(!1,0).height/2),M(o.y)&&(h=0===d.side&&d.horiz?o.y+h:o.y),t=t+(o.x??[0,1,0,-1][d.side]*f)+m+g.x-(r&&s?r*c*(p?-1:1):0),e=e+h-(r&&!s?r*c*(p?1:-1):0),u&&(l=a/(n||1)%u,d.opposite&&(l=u-l-1),e+=l*(d.labelOffset/u)),x.x=t,x.y=Math.round(e),A(this,"afterGetLabelPosition",{pos:x,tickmarkOffset:r,index:a}),x}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(t,e,i,s,o=!1,r){return r.crispLine([["M",t,e],["L",t+(o?0:-i),e+(o?i:0)]],s)}handleOverflow(t){let e=this.axis,i=e.options.labels,s=t.x,o=e.chart.chartWidth,r=e.chart.spacing,a=e.labelLeft??Math.min(e.pos,r[3]),n=e.labelRight??Math.max(e.isRadial?0:e.pos+e.len,o-r[1]),h=this.label,l=this.rotation,d=L(e.labelAlign||h.attr("align")),c=h.getBBox().width,p=e.getSlotWidth(this),u=p,g=1,m;l||"justify"!==i.overflow?l<0&&s-d*c<a?m=Math.round(s/Math.cos(l*ew)-a):l>0&&s+d*c>n&&(m=Math.round((o-s)/Math.cos(l*ew))):(s-d*c<a?u=t.x+u*(1-d)-a:s+(1-d)*c>n&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))<p&&"center"===e.labelAlign&&(t.x+=g*(p-u-d*(p-Math.min(c,u)))),(c>u||e.autoRotation&&h?.styles?.width)&&(m=u)),m&&h&&(this.shortenLabel?this.shortenLabel():h.css(S({},{width:Math.floor(m)+"px",lineClamp:+!e.isRadial})))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=this.tickmarkOffset??s.tickmarkOffset,n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l,u=i??this.label?.newOpacity??1;!s.chart.polar&&(x(p)<d||p>c)&&(i=0),i??(i=1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,A(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=this.tickmarkOffset??i.tickmarkOffset,h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=s["minor"!==r?"tickWidth":"minorTickWidth"]??(!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),!c&&(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=this.tickmarkOffset??o.tickmarkOffset,c=t.x,p=t.y,u=!0;n&&W(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?r&&!e&&0!==i&&this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&W(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}},{xAxis:eC,yAxis:eT}=ev,{parse:eS}=tw,{defaultOptions:eP}=ty,{registerEventOptions:eA}=eM,{deg2rad:eL}=h,eO=(t,e)=>Y(e,void 0,void 0,t.options.allowDecimals??(e<.5||void 0!==t.tickAmount),!!t.tickAmount);S(eP,{xAxis:eC,yAxis:H(eC,eT)});class eE{constructor(t,e,i){this.clippable=!0,this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,A(this,"init",{userOptions:e}),this.opposite=e.opposite??this.opposite,this.side=e.side??this.side??(o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),A(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=r.reversed??this.reversed,this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=X(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[]),this.namesMap||(this.namesMap={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=M(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.max=void 0,this.min=void 0;let n=r.crosshair??Q(t.options.tooltip.crosshairs)[+!s];this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),tn(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!M(this.reversed)&&(this.reversed=!0),this.labelRotation=W(a.rotation)?a.rotation:void 0,eA(this,r),A(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=H(e,"yAxis"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},eP[this.coll],t),A(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,e=this.chart,{numberFormatter:i}=e,s=W(this.value)?this.value:NaN,o=t.chart.time,r=t.categories,a=this.dateTimeLabelFormat,n=eP.lang,h=n.numericSymbols,l=n.numericSymbolMagnitude||1e3,d=t.logarithmic?Math.abs(s):t.tickInterval,c=h?.length,p,u;if(r)u=`${this.value}`;else if(a)u=o.dateFormat(a,s,!0);else if(c&&h&&d>=1e3)for(;c--&&void 0===u;)d>=(p=Math.pow(l,c+1))&&10*s%p==0&&null!==h[c]&&0!==s&&(u=i(s/p,-1,void 0,void 0,e)+h[c]);return u??(u=i(s,-1,void 0,1e4>Math.abs(s)?"":void 0,e)),u}getSeriesExtremes(){let t,e=this;A(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,W(a)||a instanceof Date||(o=o.filter(W),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(e.dataMin??a,a),e.dataMax=Math.max(e.dataMax??n,n)));else{let t=i.applyExtremes();W(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(e.dataMin??a,a)),W(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(e.dataMax??n,n)),M(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),A(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!W(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&!!a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-h)/p+n,l&&(u=a.lin2val(u))):(l&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*h+(W(r)?p*r:0),a.isRadial||(u=x(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,m,x,y;function b(t,e,i){return"pass"!==p&&(t<e||t>i)&&(p?t=f(t,e,i):y=!0),t}let v={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return A(this,"getPlotLinePath",v,function(t){u=m=(c=f(c=c??e.translate(a,void 0,void 0,r),-1e9,1e9))+d,g=x=h-c-d,W(c)?e.horiz?(g=o,x=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=m=b(u,s,s+e.width)):(u=s,m=l-e.right+(i.scrollablePixelsX||0),g=x=b(g,o,o+e.height)):(y=!0,p=!1),t.path=y&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",m,x]],n||1)}),v.path}getLinearTickPositions(t,e,i){let s,o,r,a=x(Math.floor(e/t)*t),n=x(Math.ceil(i/t)*t),h=[];if(x(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=x(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?e??"auto":!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i<this.len/3){let s=this.logarithmic;if(s)this.paddedTicks.forEach(function(t,e,o){e&&n.push.apply(n,s.getLogTickPositions(i,o[e-1],o[e],!0))});else if(this.dateTime&&"auto"===this.getMinorTickInterval())n=n.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(i),o,r,t.startOfWeek));else for(h=o+(e[0]-o)%i;h<=r&&h!==n[0];h+=i)n.push(h)}return 0!==n.length&&this.trimTicks(n),n}adjustForMinRange(){let t=this.options,e=this.logarithmic,i=this.chart.time,{max:s,min:o,minRange:r}=this,a,n,h,l;this.isXAxis&&void 0===r&&!e&&(r=M(t.min)||M(t.max)||M(t.floor)||M(t.ceiling)?null:Math.min(5*(O(this.series.map(t=>{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),W(s)&&W(o)&&W(r)&&s-o<r&&(n=this.dataMax-this.dataMin>=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=g(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=u(l))-o<r&&(h[0]=s-r,h[1]=i.parse(t.min)??s-r,o=g(h))),this.minRange=r,this.min=o,this.max=s}getClosest(){let t,e;if(this.categories)e=1;else{let i=[];this.series.forEach(function(t){let s=t.closestPointRange,o=t.getColumn("x");1===o.length?i.push(o[0]):t.sorted&&M(s)&&t.reserveSpace()&&(e=M(e)?Math.min(e,s):s)}),i.length&&(i.sort((t,e)=>t-e),t=O([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t,e){let i,s=X(this.options.categories),{name:o,series:r}=t,a=s?this.categories:this.names,n=this.namesMap;return r.requireSorting=!1,M(e)||(e=this.uniqueNames&&a?s?a.indexOf(o):n[o]??-1:r.autoIncrement()),-1===e?!s&&a&&(i=a.length):W(e)&&(i=e),void 0!==i?(this.names[i]=t.name,n[t.name]=i):i=W(t.x)?t.x:r.autoIncrement(),i}updateNames(){let t=this,{names:e,namesMap:i}=this;e.length>0&&(Object.keys(i).forEach(function(t){delete i[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{if(e.xIncrement=null,delete e.xColumn,!e.points||e.isDirtyData)t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints();else{let t=e.getColumn("x");e.points?.forEach(e=>{e.x=t[e.index]})}}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?e.options.pointRange??a??0:t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&j(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal?.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,A(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return W(t)&&W(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=W(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:m,softMax:f,softMin:y}=h,b=W(m)&&i[this.coll]?.[m],v=h.tickPixelInterval,w=h.maxPadding,k=h.minPadding,C=0,T,S=W(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,P,L,O,E;if(r||e||b||this.getTickAmount(),O=this.userMin??d.parse(h.min),E=this.userMax??d.parse(h.max),b?(this.linkedParent=b,T=b.getExtremes(),this.min=T.min??T.dataMin,this.max=T.max??T.dataMax,this.type!==b.type&&ta(11,!0,i)):(l&&M(c)&&W(s)&&W(o)&&(o>=c?(P=c,k=0):s<=c&&(L=c,w=0)),this.min=O??P??o,this.max=E??L??s),W(this.max)&&W(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,o??this.min)&&ta(10,!0,i),this.min=x(n.log2lin(this.min),16),this.max=x(n.log2lin(this.max),16)),this.range&&W(o)&&(this.userMin=this.min=O=Math.max(o,this.minFromRange()||0),this.userMax=E=this.max,this.range=void 0)),A(this,"foundExtremes"),this.adjustForMinRange(),W(this.min)&&W(this.max)){if(!W(this.userMin)&&W(y)&&y<this.min&&(this.min=O=y),!W(this.userMax)&&W(f)&&f>this.max&&(this.max=E=f),e||this.axisPointRange||this.stacking?.usePercentage||b||(C=this.max-this.min)&&(!M(O)&&k&&(this.min-=C*k),!M(E)&&w&&(this.max+=C*w)),!W(this.userMin)&&W(g)&&(this.min=Math.max(this.min,g)),!W(this.userMax)&&W(u)&&(this.max=Math.min(this.max,u)),l&&W(o)&&W(s)){let t=c||0;!M(O)&&this.min<t&&o>=t?this.min=h.minRange?Math.min(t,this.max-p):t:!M(E)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(M(h.min)?this.max=this.min:M(h.max)&&(this.min=this.max)),C=this.max-this.min}if(this.min!==this.max&&W(this.min)&&W(this.max)?b&&!S&&v===b.options.tickPixelInterval?this.tickInterval=S=b.tickInterval:this.tickInterval=S??(this.tickAmount?C/Math.max(this.tickAmount-1,1):e?1:C*v/Math.max(this.len,v)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),A(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),A(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let I=h.minTickInterval??(r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&I&&this.tickInterval<I&&(this.tickInterval=I),r||n||S||(this.tickInterval=eO(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){let t=this.options,e=t.tickPositions,i=t.tickPositioner,s=this.getMinorTickInterval(),o=!this.isPanning,r=o&&t.startOnTick,a=o&&t.endOnTick,n=[],h;if(this.tickmarkOffset=this.categories&&"between"===t.tickmarkPlacement&&1===this.tickInterval?.5:0,this.single=this.min===this.max&&M(this.min)&&!this.tickAmount&&(this.min%1==0||!1!==t.allowDecimals),e)n=e.slice();else if(W(this.min)&&W(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))n=[this.min,this.max],ta(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=eO(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max,this]))&&(n=h))}this.isDirty||n.length===this.tickPositions?.length||(this.isDirty=!0),this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&W(this.min)&&W(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),A(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(A(this,"trimTicks"),!this.isLinked||!this.grid){if(e&&W(s))this.min=s;else if(t.length)for(;this.min-r>t[0];)t.shift();if(i&&W(o))this.max=o;else for(;this.max+r<t[t.length-1];)t.pop();0===t.length&&M(s)&&!this.options.tickPositions&&t.push((o+s)/2)}}alignToOthers(){let t,e=this,i=e.chart,s=[this],o=e.options,r=i.options.chart,a="yAxis"===this.coll&&r.alignThresholds,n=[];if(e.thresholdAlignment=void 0,(!1!==r.alignTicks&&o.alignTicks||a)&&!1!==o.startOnTick&&!1!==o.endOnTick&&!e.logarithmic){let o=t=>{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);W(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!W(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData||t.xAxis?.isDirty))&&this.getSeriesExtremes(),W(this.threshold)){let t=f((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;M(t.tickInterval)||i||!(this.len<e)||this.isRadial||this.logarithmic||!t.startOnTick||!t.endOnTick||(i=2),!i&&this.alignToOthers()&&(i=Math.ceil(this.len/e)+1),i<4&&(this.finalTickAmt=i,i=5),this.tickAmount=i}adjustTickAmount(){let t=this,{finalTickAmt:e,max:i,min:s,options:o,tickPositions:r,tickAmount:a,thresholdAlignment:n}=t,h=r?.length,l=t.threshold??(t.softThreshold?0:null),d,c,p=t.tickInterval,u,g=()=>r.push(x(r[r.length-1]+p)),m=()=>r.unshift(x(r[0]-p));if(W(n)&&(u=0===n?0:1===n?a-1:Math.round(f(n*(a-1),1,a-2)),o.reversed&&(u=a-1-u)),t.hasData()&&W(s)&&W(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(W(u)&&W(t.threshold)){for(;r[u]!==l||r.length!==a||r[0]>s||r[r.length-1]<i;){for(r.length=0,r.push(t.threshold);r.length<a;)void 0===r[u]||r[u]>t.threshold?m():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(h<a){for(;r.length<a;)r.length%2||s===l?g():m();n()}if(M(e)){for(c=d=r.length;c--;)(3===e&&c%2==1||e<=2&&c>0&&c<d-1)&&r.splice(c,1);t.finalTickAmt=void 0}}}setScale(){let{coll:t,stacking:e}=this,i=!1,s=!1;this.series.forEach(t=>{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis?.isDirty||!1}),this.setAxisSize();let o=this.len!==this.old?.len;o||i||s||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,A(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),A(this,"setExtremes",o=S(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(K(e.width??t.plotWidth-i[3]+i[1],t.plotWidth)),r=this.height=Math.round(K(e.height??t.plotHeight-i[0]+i[2],t.plotHeight)),a=this.top=Math.round(K(e.top??t.plotTop+i[0],t.plotHeight,t.plotTop)),n=this.left=Math.round(K(e.left??t.plotLeft+i[3],t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?x(t.lin2log(this.min)):this.min,max:t?x(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s<t&&(t=s),this.translate(t,0,1,0,1)}autoLabelAlign(t){let e=((t-90*this.side)%360+360)%360,i={align:"center"};return A(this,"autoLabelAlign",i,function(t){e>15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=e["tick"===t?"tickWidth":"minorTickWidth"]??("tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o,prefix:t};return A(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/((+!!this.categories+this.max-this.min)/s),r=t.rotation,a=x(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),x(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(W(r)?p=[r]:o<t.autoRotationLimit&&(p=t.autoRotation)),p){let t,e;for(let i of p)(i===r||i&&i>=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(eL*i))))+Math.abs(i/360))<c&&(c=e,d=i,l=t)}}else l=h(.75*a);return this.autoRotation=p,this.labelRotation=d??(W(r)?r:0),t.step?s:l}getSlotWidth(t){let e=this.chart,i=this.horiz,s=this.options.labels,o=Math.max(this.tickPositions.length-!this.categories,1),r=e.margin[3];if(t&&W(t.slotWidth))return t.slotWidth;if(i&&s.step<2&&!this.isRadial)return s.rotation?0:(this.staggerLines||1)*this.len/o;if(!i){let t=s.style.width;if(void 0!==t)return parseInt(String(t),10);if(!this.opposite&&r)return r-e.spacing[3]}return .33*e.chartWidth}renderUnsquish(){let t=this.chart,e=t.renderer,i=this.tickPositions,s=this.ticks,o=this.options.labels,r=o.style,a=this.horiz,n=this.getSlotWidth(),h=Math.max(1,Math.round(n-(a?2*(o.padding||0):o.distance||0))),l={},d=this.labelMetrics(),c=r.lineClamp,p,u=c??(Math.floor(this.len/(i.length*d.h))||1),g=0;j(o.rotation)||(l.rotation=o.rotation||0),i.forEach(function(t){g=Math.max(g,s[t].label?.textPxLength||0)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation||0),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e?.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"DIV"===i.element.tagName)?i.css(S(a,{width:`${p}px`,lineClamp:u})):(i.styles.width||i.textWidth||i.styles.lineClamp)&&!a.width&&!o&&i.css({width:"auto",lineClamp:0}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&M(this.min)&&M(this.max)}addTitle(t){let e,i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(H(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new ek(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex).clip(this.clippable?e.plotClipInner:void 0),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}shuffleTicks(){let t=this.ticks,e=this.old?.names;if("category"===this.type&&e){e.forEach((i,s)=>{let o=this.namesMap[i];M(o)&&s!==o&&(t[s]&&(t[s].pos=o,this.isDirty=!0),t[o]&&-1===this.names.indexOf(e[o])&&(t[o].pos=NaN))});let i=Object.values(t);Object.keys(t).forEach(e=>{delete t[e]}),i.forEach(e=>{isNaN(e.pos)?e.destroy():t[e.pos]=e})}}getOffset(){let{chart:t,horiz:e,options:i,side:s,ticks:o,tickPositions:r,coll:a}=this,n=this.hasData(),h=i.title,l=i.labels,d=W(i.crossing),c=t.axisOffset,p=t.clipOffset,u=[-1,1,1,-1][s],g=this.tickRotCorr||{x:0,y:0},m=0,f,x=0,y,b=0,v=0,w,k,C;if(this.showAxis=f=n||i.showEmpty,this.staggerLines=this.horiz&&l.staggerLines||void 0,this.createGroups(),n||this.isLinked?(this.shuffleTicks(),r.forEach(this.generateTick.bind(this)),this.renderUnsquish(),m=Math.abs((g=this.tickRotCorr).x),C=this.reserveSpaceDefault=0===s||2===s||({1:"left",3:"right"})[s]===this.labelAlign,(l.reserveSpace??(!d&&null)??("center"===this.labelAlign||null)??C)&&r.forEach(function(t){v=Math.max(o[t].getLabelSize(),v)}),this.staggerLines&&(v*=this.staggerLines),!e&&W(this.labelRotation)&&C&&(v-=m),this.labelOffset=v*(this.opposite?-1:1)):V(o,function(t,e){t.destroy(),delete o[e]}),h?.text&&!1!==h.enabled&&(this.addTitle(f),f&&!d&&!1!==h.reserveSpace&&(this.titleOffset=x=this.axisTitle.getBBox()[e?"height":"width"],b=M(y=h.offset)?0:h.margin??(e?5:10))),this.renderLine(),this.offset=u*(W(i.offset)?i.offset:c[s]?c[s]+(i.margin||0):0),k=0===s?-this.labelMetrics().h:2===s?g.y:0,w=Math.abs(v)+b,v&&(w-=k,w+=u*(e?l.y??g.y+u*l.distance:l.x??(C?u*(l.distance-m):g.x+u*l.distance)),!e&&!C&&"center"===this.labelAlign&&W(this.labelRotation)&&(w+=m)),this.axisTitleMargin=y??w,this.maxLabelDimensions=this.getMaxLabelDimensions?.(o,r),"colorAxis"!==a&&p){let t=this.tickSize("tick");c[s]=Math.max(c[s],(this.axisTitleMargin||0)+x+u*this.offset,w,r?.length&&t?t[0]+u*this.offset:0);let e=!this.axisLine||i.offset?0:this.axisLine.strokeWidth()/2;p[s]=Math.max(p[s],e)}A(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){let{chart:t,offset:e=0,options:i}=this;this.axisLine||(this.axisLine=t.renderer.path().addClass("highcharts-axis-line").attr(t.styledMode?{}:{stroke:i.lineColor,"stroke-width":i.lineWidth,zIndex:7}).clip(this.clippable&&e<=0?t.plotClipOuter:void 0).add(this.axisGroup))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],m={x:e?u+l:g+(n?this.width:0)+h+l,y:e?g+d-(n?this.height:0)+h:u+d};return A(this,"afterGetTitlePosition",{titlePosition:m}),m}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new ek(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(o[t]||(o[t]=new ek(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,l=i.tickPositions,d=i.axisTitle,c=i.ticks,p=i.minorTicks,u=i.alternateBands,g=a.stackLabels,m=a.alternateGridColor,f=a.crossing,x=i.tickmarkOffset,y=i.axisLine,b=i.showAxis,v=tP(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[c,p,u].forEach(function(t){V(t,function(t){t.isActive=!1})}),W(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&W(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),l.length&&(l.forEach(function(t,e){i.renderTick(t,e,r)}),x&&(0===i.min||i.single)&&(c[-1]||(c[-1]=new ek(i,-1,null,!0)),c[-1].render(-1))),m&&l.forEach(function(r,a){e=void 0!==l[a+1]?l[a+1]+x:i.max-x,a%2==0&&r<i.max&&e<=i.max+(s.polar?-x:x)&&(u[r]||(u[r]=new h.PlotLineOrBand(i,{})),t=r+x,u[r].options={from:o?o.lin2log(t):t,to:o?o.lin2log(e):e,color:m,className:"highcharts-alternate-grid"},u[r].render(),u[r].isActive=!0)}),i._addedPlotLB||(i._addedPlotLB=!0,(a.plotLines||[]).concat(a.plotBands||[]).forEach(function(t){i.addPlotBandOrLine(t)}))}[c,p,u].forEach(function(t){let e=[],i=v.duration;V(t,function(t,i){t.isActive||(t.render(i,!1,0),t.isActive=!1,e.push(i))}),te(function(){let i=e.length;for(;i--;)t[e[i]]&&!t[e[i]].isActive&&(t[e[i]].destroy(),delete t[e[i]])},t!==u&&s.hasRendered&&i?i:0)}),y&&(y[y.isPlaced?"animate":"attr"]({d:this.getLinePath(y.strokeWidth())}),y.isPlaced=!0,y[b?"show":"hide"](b)),d&&b&&(d[d.isNew?"attr":"animate"](i.getTitlePosition(d)),d.isNew=!1),g?.enabled&&i.stacking&&i.stacking.renderStackTotals(),this.old||this.saveOld(),i.isDirty=!1,A(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(t){t.render()})),this.series.forEach(function(t){t.isDirty=!0})}saveOld(){this.old=W(this.min)?{len:this.len,max:this.max,min:this.min,names:this.names.slice(),transA:this.transA,userMax:this.userMax,userMin:this.userMin}:void 0}getKeepProps(){return this.keepProps||eE.keepProps}destroy(t){let e=this,i=e.plotLinesAndBands,s=this.eventOptions;if(A(this,"destroy",{keepEvents:t}),t||J(e),[e.ticks,e.minorTicks,e.alternateBands].forEach(function(t){w(t)}),i){let t=i.length;for(;t--;)i[t].destroy()}for(let t in["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(function(t){e[t]&&(e[t]=e[t].destroy())}),e.plotLinesAndBandsGroups)e.plotLinesAndBandsGroups[t]=e.plotLinesAndBandsGroups[t].destroy();V(e,function(t,i){-1===e.getKeepProps().indexOf(i)&&delete e[i]}),this.eventOptions=s}drawCrosshair(t,e){let i,s,o,r,a=this.crosshair,n=a?.snap??!0,h=this.chart,l=this.cross;if(A(this,"drawCrosshair",{e:t,point:e}),t||(t=this.cross?.e),a&&!1!==(M(e)||!n)){if(clearTimeout(this.crossShowTimer),n?M(e)&&(s=("colorAxis"!==this.coll?e.crosshairPos:null)??(this.isXAxis?e.plotX:this.len-e.plotY)):s=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),M(s)&&(r={value:e&&(this.isXAxis?e.x:e.stackY??e.y??void 0),translatedValue:s},h.polar&&S(r,{isCrosshair:!0,chartX:t?.chartX,chartY:t?.chartY,point:e}),i=this.getPlotLinePath(r)||null),!M(i))return void this.hideCrosshair();o=this.categories&&!this.isRadial,this.crossShowTimer=te(()=>{let e=this.cross;e||(this.cross=e=h.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(o?"category ":"thin ")+(a.className||"")).attr({zIndex:a.zIndex??2}).clip(!1===a.clip?void 0:h.plotClipInner).add(),!h.styledMode&&(e.attr({stroke:a.color||(o?eS("var(--highcharts-highlight-color-20)").setOpacity(.25).get():"var(--highcharts-neutral-color-20)"),"stroke-width":a.width??1}).css({"pointer-events":"none"}),a.dashStyle&&e.attr({dashstyle:a.dashStyle}))),e.show().animate({d:i},tP(a?.animation)),o&&!a.width&&e.attr({"stroke-width":this.transA}),this.cross&&(this.cross.e=t)},(!l||"hidden"===l.attr("visibility"))&&a.showDelay||0)}else this.hideCrosshair();A(this,"afterDrawCrosshair",{e:t,point:e})}hideCrosshair(){clearTimeout(this.crossShowTimer),this.cross&&this.cross.hide(),A(this,"afterHideCrosshair")}update(t,e){let i=this.chart;t=H(this.userOptions,t),this.destroy(!0),this.init(i,t),i.isDirtyBox=!0,(e??!0)&&i.redraw()}remove(t){let e=this.chart,i=this.coll,s=this.series,o=s.length;for(;o--;)s[o]&&s[o].remove(!1);T(e.axes,this),T(e[i]||[],this),e.orderItems(i),this.destroy(),e.isDirtyBox=!0,(t??!0)&&e.redraw()}setTitle(t,e){this.update({title:t},e)}setCategories(t,e){this.update({categories:t},e)}}eE.keepProps=["coll","extKey","hcEvents","len","names","series","userMax","userMin"];let eI=eE;!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return t.keepProps.includes("dateTime")||(t.keepProps.push("dateTime"),t.prototype.getTimeTicks=e,p(t,"afterSetType",i)),t};class s{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],s=i[i.length-1],o=th[s[0]],r=s[1],a,n;for(a=0;a<i.length;a++)if(o=th[(s=i[a])[0]],r=s[1],i[a+1]){let e=(o*r[r.length-1]+th[i[a+1][0]])/2;if(t<=e){n=e/t;break}}o===th.year&&t<5*o&&(r=[1,2,5]);let h=Y(t/o,r,"year"===s[0]?Math.max(E(t/o),1):1);return{unitRange:o,count:h,unitName:s[0],match:n}}getXDateFormat(t,e){let{axis:i}=this,s=i.chart.time;return i.closestPointRange?s.getDateFormat(i.closestPointRange,t,i.options.startOfWeek,e)||s.resolveDTLFormat(e.year).main:s.resolveDTLFormat(e.day).main}}t.Additions=s}(e7||(e7={}));let eD=e7;!function(t){function e(){"logarithmic"!==this.type?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new s(this))}function i(){let t=this.logarithmic;t&&(this.lin2val=function(e){return t.lin2log(e)},this.val2lin=function(e){return t.log2lin(e)})}t.compose=function(t){return t.keepProps.includes("logarithmic")||(t.keepProps.push("logarithmic"),p(t,"afterSetType",e),p(t,"afterInit",i)),t};class s{constructor(t){this.axis=t}getLogTickPositions(t,e,i,s){let o=this.axis,r=o.len,a=o.options,n=[];if(s||(this.minorAutoInterval=void 0),t>=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c,p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;r<i+1&&!c;r++)for(a=0,h=o.length;a<h&&!c;a++)(l=this.log2lin(this.lin2log(r)*o[a]))>e&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=Y(t=("auto"===d?null:d)??this.minorAutoInterval??(l-h)*c/(p||1)),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(it||(it={}));let eB=it;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!W(this.min)||!W(this.max)||t<this.min&&e<this.min||t>this.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h<n.length;h+=2){let t=n[h],e=n[h+1],i=s[h],a=s[h+1];("M"===t[0]||"L"===t[0])&&("M"===e[0]||"L"===e[0])&&("M"===i[0]||"L"===i[0])&&("M"===a[0]||"L"===a[0])&&(r&&i[1]===t[1]?(i[1]+=l,a[1]+=l):r||i[2]!==t[2]||(i[2]+=l,a[2]+=l),o.push(["M",t[1],t[2]],["L",e[1],e[2]],["L",a[1],a[2]],["L",i[1],i[2]],["Z"])),o.isFlat=d}return o}function a(t){this.removePlotBandOrLine(t)}function n(t){let e=this.plotLinesAndBands,i=this.options,s=this.userOptions;if(e){let o=e.length;for(;o--;)e[o].id===t&&e[o].destroy();[i.plotLines||[],s.plotLines||[],i.plotBands||[],s.plotBands||[]].forEach(function(e){for(o=e.length;o--;)e[o]?.id===t&&T(e,e[o])})}}function h(t){this.removePlotBandOrLine(t)}t.compose=function(t,l){let d=l.prototype;return d.addPlotBand||(e=t,S(d,{addPlotBand:i,addPlotLine:o,addPlotBandOrLine:s,getPlotBandPath:r,removePlotBand:a,removePlotLine:h,removePlotBandOrLine:n})),l}}(ie||(ie={}));let ez=ie;class eN{static compose(t,e){return p(t,"afterInit",function(){this.labelCollectors.push(()=>{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),ez.compose(eN,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){A(this,"render");let{axis:t,options:e}=this,{chart:i,horiz:s,logarithmic:o}=t,{color:r,events:a,zIndex:n=0}=e,{renderer:h,time:l}=t.chart,d={},c=l.parse(e.to),p=l.parse(e.from),u=l.parse(e.value),g=e.borderWidth,m=e.label,{label:f,svgElem:x}=this,y=[],b,v=M(p)&&M(c),w=M(u),k=!x,C={class:"highcharts-plot-"+(v?"band ":"line ")+(e.className||"")},T=v?"bands":"lines";if(!i.styledMode&&(w?(C.stroke=r||"var(--highcharts-neutral-color-40)",C["stroke-width"]=e.width??1,e.dashStyle&&(C.dashstyle=e.dashStyle)):v&&(C.fill=r||"var(--highcharts-highlight-color-10)",g&&(C.stroke=e.borderColor,C["stroke-width"]=g))),d.zIndex=n,T+="-"+n,(b=t.plotLinesAndBandsGroups[T])||(t.plotLinesAndBandsGroups[T]=b=h.g("plot-"+T).clip(i.plotClipOuter).attr(d).add()),x||(this.svgElem=x=h.path().attr(C).add(b)),M(u))y=t.getPlotLinePath({value:o?.log2lin(u)??u,lineWidth:x.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(M(p)&&M(c)))return;y=t.getPlotBandPath(o?.log2lin(p)??p,o?.log2lin(c)??c,e)}return!this.eventsAdded&&a&&(V(a,(t,e)=>{x?.on(e,t=>{a[e].apply(this,[t,this])})}),this.eventsAdded=!0),(k||!x.d)&&y?.length?x.attr({d:y}):x&&(y?(x.show(),x.animate({d:y})):x.d&&(x.hide(),f&&(this.label=f=f.destroy()))),m&&(M(m.text)||M(m.formatter))&&y?.length&&t.width>0&&t.height>0&&!y.isFlat?(m=H({align:s&&v?"center":void 0,x:s?!v&&4:10,verticalAlign:!s&&v?"middle":void 0,y:s?v?16:10:v?6:-4,rotation:s&&!v?90:0,...v?{inside:!0}:{}},m),this.renderLabel(m,y,v,n)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(H({color:o.chart.options.title?.style?.color,fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=u(h),c=u(l),p=g(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:g(l)-c}),n.alignAttr.y-=r.fontMetrics(n).b,(!n.alignValue||"left"===n.alignValue||M(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width+o.left:o.chart.chartWidth)-n.alignAttr.x))+"px"}),n.show(!0)}getLabelText(t){return M(t.formatter)?t.formatter.call(this,this):t.text}destroy(){T(this.axis.plotLinesAndBands,this),delete this.axis,w(this)}}let{format:eR}=tY,{composed:eW,dateFormats:ej,doc:eX,isSafari:eG}=h,{distribute:eF}=tV,eH=t=>{clearTimeout(t.hideTimer),clearTimeout(t.showTimer)};class eY{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"",t)})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e,i=this.points||Q(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),k(this.container)),z(this.hideTimer),eH(this)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=Q(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}let h={point:t[0],ret:i};return A(this,"getAnchor",h),h.ret.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+(t.colorIndex??o.colorIndex),r?.className].filter(j).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style;this.container=a=h.doc.createElement("div"),a.className="highcharts-container highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),a.dataset.highchartsChart=t.index.toString(),v(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(o.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=n=new em(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape||"callout",void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth??+!o.fixed}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return a&&!a.parentElement&&h.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=eX,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:m,width:f}=this.getPlayingField(),x=a.getChartPosition(),y=i=>{let a="x"===i;return[i,a?f:m,a?t:e].concat(r?[a?t*x.scaleX:e*x.scaleY,a?x.left-s+(c+h)*x.scaleX:x.top-s+(p+l)*x.scaleY,0,a?f:m]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},b=y("y"),v=y("x"),M,w=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(w=!w);let k=!this.followPointer&&(i.ttBelow??(!d&&!n===w)),C=function(t,e,i,o,a,n,h){let l=r?"y"===t?s*x.scaleY:s*x.scaleX:s,d=(i-o)/2,c=o<a-s,p=a+s+o<e,m=a-l-i+d,f=a+l-d;if(k&&p)u[t]=f;else if(!k&&c)u[t]=m;else if(c)u[t]=Math.min(h-o,m-g<0?m:m-g);else{if(!p)return u[t]=0,!1;u[t]=Math.max(n,f+g+i>e?f:f+g)}},T=function(t,e,i,o,r){if(r<s||r>e-s)return!1;r<i/2?u[t]=1:r>e-o/2?u[t]=e-o-2:u[t]=r-i/2},S=function(t){[b,v]=[v,b],M=t},P=()=>{!1!==C.apply(0,b)?!1!==T.apply(0,v)||M||(S(!0),P()):M?u.x=u.y=0:(S(!0),P())};return(n&&!d||this.len>1)&&S(),P(),r&&(u.x-=x.left,u.y-=x.top),u}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:a}=this,n=r.position,h=n.relativeTo,l=r.shared||s?.yAxis?.isRadial&&("pane"===h||!h)?"plotBox":h,d="chart"===l?o.renderer:o[l]||o.getClipBox(s,!0);return{x:d.x+(d.width-t)*L(n.align)+n.x,y:d.y+(d.height-e)*L(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;eH(this),t=t??this.options.hideDelay,this.isHidden||(this.hideTimer=te(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=e.outside??!!(t.scrollablePixelsX||t.scrollablePixelsY)}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let{followPointer:o,options:r}=this,a=tP(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};n?h.anchorX=h.anchorY=NaN:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let i=this,{chart:s,options:o,pointer:r,shared:a}=this,n=Q(t),h=n[0],l=o.format,d=o.formatter||i.defaultFormatter,c=s.styledMode,p=i.allowShared;if(!o.enabled||!h.series)return;eH(this),i.allowShared=!(!X(t)&&t.series&&t.series.noSharedTooltip),p=p&&!i.allowShared,i.followPointer=!i.split&&h.series.tooltipOptions.followPointer;let u=i.getAnchor(t,e),g=u[0],m=u[1];a&&i.allowShared&&(r.applyInactiveState(n),n.forEach(t=>t.setState("hover")),h.points=n),this.len=n.length;let x=j(l)?eR(l,h,s):d.call(h,i,h);h.points=void 0;let y=h.series;this.distance=y.tooltipOptions.distance??16,!1===x?this.hide():this.showTimer=te(()=>{if(i.split&&i.allowShared)i.renderSplit(x,n);else{let t=g,a=m;if(e&&r.isDirectTouch&&(t=e.chartX-s.plotLeft,a=e.chartY-s.plotTop),!(s.polar||!1===y.options.clip||n.some(e=>r.isDirectTouch||e.series.shouldShowTooltip(t,a))))return void i.hide();{let t=i.getLabel(p&&i.tt||{});(!o.style.width||c)&&t.css({width:(this.outside?this.getPlayingField():s.spacingBox).width-2*o.padding+"px"}),t.attr({class:i.getClassName(h),text:X(x)?x.join(""):x}),this.outside&&t.attr({x:f(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),c||t.attr({stroke:o.borderColor||h.color||y.color||"var(--highcharts-neutral-color-60)"}),i.updatePosition({plotX:g,plotY:m,negative:h.negative,ttBelow:h.ttBelow,series:y,h:u[2]||0})}}i.isHidden&&i.label&&i.label.attr({opacity:1}).show(),i.isHidden=!1},i.isHidden&&o.showDelay||0),A(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{fixed:g,position:m,positioner:x},pointer:y}=i,{scrollLeft:b=0,scrollTop:v=0}=s.scrollablePlotArea?.scrollingContainer||{},M=i.outside&&"number"!=typeof d?eX.documentElement.getBoundingClientRect():{left:b,right:b+o,top:v,bottom:v+r},w=i.getLabel(),k=this.renderer||s.renderer,C=!!s.xAxis[0]?.opposite,{left:T,top:P}=y.getChartPosition(),A=x||g,L=h+v,O=0,E=a-l,I=function(t,e,s,o,r=[0,0],a=!0){let n,h;if(s.isHeader)h=C?0:E,n=f(r[0]-t/2,M.left,M.right-t-(i.outside?T:0));else if(g&&s){let o=i.getFixedPosition(t,e,s);n=o.x,h=o.y-L}else h=r[1]-L,n=f(n=a?r[0]-t-p:r[0]+p,a?n:M.left,M.right);return{x:n,y:h}};j(t)&&(t=[!1,t]);let D=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||u,h=r?H(n,n.header):n;if(!o){let t={padding:n.padding,r:n.borderRadius};c||(t.fill=h.backgroundColor,t["stroke-width"]=h.borderWidth??+!n.fixed),o=k.label("",0,0,h.shape||(g&&!r?"rect":"callout"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(w)}return o.isActive=!0,c||o.css(h.style),o.attr({text:s}),c||o.attr({stroke:h.borderColor||e.color||a.color||"var(--highcharts-neutral-color-80)"}),o}(d.tt,r,s.toString()),y=m.getBBox(),b=y.width+m.strokeWidth();l&&(O=y.height+u.header.distance,E+=O,C&&(L-=O));let{anchorX:v,anchorY:T}=function(t){let e,i,{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+f(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=f(e,M.left-p,M.right+p),anchorY:i}}(r);if("number"==typeof T){let e=y.height+1,s=(x||I).call(i,b,e,r,i,[v,T]);t.push({align:A?0:void 0,anchorX:v,anchorY:T,boxWidth:b,point:r,rank:s.rank??+!!l,size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t},[]);!A&&D.some(t=>{let{outside:e}=i,s=(e?T:0)+t.anchorX;return s<M.left&&s+t.boxWidth<M.right||s<T-M.left+t.boxWidth&&M.right-s>s})&&(D=D.map(t=>{let{x:e,y:i}=I.call(this,t.boxWidth,t.size,t.point,void 0,[t.anchorX,t.anchorY],!1);return S(t,{target:i,x:e})})),i.cleanSplit(),eF(D,E);let B={left:T,right:T};D.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&T+e<B.left&&(B.left=T+e),i.outside&&B.left+s>B.right&&(B.right=T+e))}),D.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+L+(g&&m.y||0),anchorX:s,anchorY:o};if(i.outside&&e<s){let t=T-B.left;t>0&&(n.x=a?(B.right-B.left)/2:e+t,n.anchorX=s+t)}t.tt.attr(n)});let{container:z,outside:N,renderer:R}=i;if(N&&z&&R){let{width:t,height:e,x:i,y:s}=w.getBBox();R.setSize(t+i,e+s,!1),z.style.left=B.left+"px",z.style.top=P+"px"}eG&&w.attr({opacity:1===w.opacity?.999:1})}drawTracker(){let t=this;if(!this.shouldStickOnContact()){t.tracker&&(t.tracker=t.tracker.destroy());return}let e=t.chart,i=t.label,s=t.shared?e.hoverPoints:e.hoverPoint;if(!i||!s)return;let o={x:0,y:0,width:0,height:0},r=this.getAnchor(s),a=i.getBBox();r[0]+=e.plotLeft-(i.translateX||0),r[1]+=e.plotTop-(i.translateY||0),o.x=Math.min(0,r[0]),o.y=Math.min(0,r[1]),o.width=r[0]<0?Math.max(Math.abs(r[0]),a.width-r[0]):Math.max(Math.abs(r[0]),a.width),o.height=r[1]<0?Math.max(Math.abs(r[1]),a.height-Math.abs(r[1])):Math.max(Math.abs(r[1]),a.height),t.tracker?t.tracker.attr(o):(t.tracker=i.renderer.rect(o).addClass("highcharts-tracker").add(i),p(t.tracker.element,"mouseenter",()=>eH(t)),e.styledMode||t.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return A(this,"headerFormatter",a,function(e){if(r&&!n&&W(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(F(n)){let t=n;ej[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])"),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=eR(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,H(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:l=0}=this.getLabel(),{fixed:d,positioner:c}=o,{left:p,top:u,scaleX:g,scaleY:m}=r.getChartPosition(),x=(c||d&&this.getFixedPosition||this.getPosition).call(this,l,n,t,this),y=h.doc,b=(t.plotX||0)+e.plotLeft,M=(t.plotY||0)+e.plotTop,w;if(a&&i){if(x.x+=p,x.y+=u,c||d){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};x.x+=t,x.y+=i}w=(o.borderWidth??+!d)+2*s+2,a.setSize(f(l+w,0,y.documentElement.clientWidth)-1,n+w,!1),(1!==g||1!==m)&&(v(i,{transform:`scale(${g}, ${m})`}),b*=g,M*=m),b+=p-x.x,M+=u-x.y}this.move(Math.round(x.x),Math.round(x.y||0),b,M)}}(iv=eY||(eY={})).compose=function(t){_(eW,"Core.Tooltip")&&p(t,"afterInit",function(){let t=this.chart;t.options.tooltip&&(t.tooltip=new iv(t,t.options.tooltip,this))})};let eV=eY,{defaultOptions:eU}=ty,{format:e$}=tY;class eZ{constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=tl()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,this.category=t.xAxis?.categories?.[this.x]??this.x,this.key=this.name??this.category,A(this,"afterInit")}applyOptions(t,e,i){let s=this.series,o=s.options.pointValKey||s.pointValKey;return S(this,t=eZ.prototype.optionsToObject.call(this,t)),this.options?this.options=s.chart.options.chart.allowMutatingData?S(this.options,t):H(this.options,t):this.options=t,o&&(this.y=eZ.prototype.getNestedProperty.call(this,o)),W(e)&&(this.x=e),i||(this.selected&&(this.state="select"),t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point"),this}getOrigin({x:t=0,y:e=0},i={}){let{graphic:s,series:o}=this;if(o.chart.inverted&&s?.parentGroup&&!s?.parentGroup?.rotation){let i=this.pos(!1,t,e);i&&(t=i[0],e=i[1])}t-=(i.width||0)/2,e-=(i.height||0)/2;let r={x:t};return o.is("column")||this.plotHigh||(r.y=e),r}destroy(t){if(!this.destroyed&&!this.condemned){let e=this,i=e.series,s=i.chart,o=s.hoverPoints,{duration:r}=tP(e.series.chart.renderer.globalAnimation),a=()=>{for(let t in(e.graphic||e.graphics||e.dataLabel||e.dataLabels)&&(J(e),e.destroyElements()),e)delete e[t];this.destroyed=!0};e.legendItem&&s.legend.destroyItem(e),o&&(e.setState(),T(o,e),o.length||(s.hoverPoints=void 0)),e===s.hoverPoint&&e.onMouseOut(),r&&!t&&i.condemnedPoints?(i.condemnedPoints.push(this),this.graphic?.addClass("highcharts-point-condemned"),setTimeout(a,r)):a(),s.pointCount--}this.condemned=!0}destroyElements(t={graphic:1,dataLabel:1}){let e,i,s=this,o=[];for(t.graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&(s[e]=s[e].destroy());["graphic","dataLabel"].forEach(e=>{let i=`${e}s`;t[e]&&s[i]&&(s[i].forEach(t=>{t?.element&&t.destroy()}),delete s[i])})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.condemned&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),A(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative&&!1!==this.series.options.negativeColor?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone?.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getNestedProperty(t){if(t)return 0===t.indexOf("custom.")?I(t,this.options):this[t]}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];o<e.length&&this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}isValid(){return(W(this.x)||this.x instanceof Date)&&W(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(W(t)||null===t)r[s[0]]=t;else if(X(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r[e.tupleKey||"name"]=t[0]:"number"===a&&(r.x=t[0]),n++);h<o;)i&&void 0===t[n]||(r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return(i||!e.options.data)&&Object.keys(r).forEach(t=>{t.indexOf(".")>0&&(eZ.prototype.setNestedProperty(r,r[t],t),delete r[t])}),r}pos(t,e=this.plotX,i=this.plotY){let{series:s}=this,{chart:o,xAxis:r,yAxis:a}=s||{},n=0,h=0;if(o&&W(e)&&W(i))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-i+h,r.len-e+n]:[e+n,i+h]}resolveColor(){let{options:t,series:e}=this,i=e.chart,s=i.options.chart,o=i.styledMode,r,a=s.colorCount,n;if(delete this.nonZonedColor,e.options.colorByPoint){if(!o){let t=e.options.colors||i.options.colors;r=t?.[e.colorCounter],a=t?.length}n=e.colorCounter,e.colorCounter++,e.colorCounter===a&&(e.colorCounter=0)}else o||(r=e.color),n=e.colorIndex;this.colorIndex=t.colorIndex??n,this.color=t.color??r}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:F(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),e$(t,this,e)}update(t,e=!0,i,s){let o=this,r=o.series,a=o.graphic,n=r.chart,h=r.options,l=h.data;function d(){o.applyOptions(t);let s=a&&o.hasMockGraphic,d=o.index,c=null===o.y?!s:s;a&&c&&(o.graphic=a.destroy(),delete o.hasMockGraphic),F(t,!0)&&(a?.element&&t?.marker&&void 0!==t.marker.symbol&&(o.graphic=a.destroy()),t?.dataLabels&&o.dataLabel&&(o.dataLabel=o.dataLabel.destroy()));let p=o.optionsToObject(t);!r.hasProcessedDataTable&&(r.dataTable.setRow(p,d),l&&(l[d]=F(l[d],!0)||F(t,!0)?o.options:t??l[d])),r.isDirty=r.isDirtyData=!0,"x"in p&&(j(p.x)&&(r.xColumnIsNumbers=void 0),o.x=r.getX(p.x),o.isNull=o.isValid&&!o.isValid(),r.xColumn&&(r.xColumn[d]=o.x)),!r.fixedBox&&r.hasCartesianSeries&&(n.isDirtyBox=!0),"point"===h.legendType&&(n.isDirtyLegend=!0),e&&n.redraw(i)}!1===s?d():o.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=t??!i.selected,this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data&&(s.options.data[s.data.indexOf(i)]=i.options),i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series,s=e.options;t.selected&&t!==i&&(t.selected=t.options.selected=!1,s.data&&(s.data[e.data.indexOf(t)]=t.options),t.setState(o.hoverPoints&&s.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){if(!this.series)return;let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=H(this.series.options.point,this.options),i=e.events?.[t];G(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=p(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(J(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states?.[t||"normal"]||{},r=eU.plotOptions?.[i.type]?.marker&&i.options.marker,a=r?.enabled===!1,n=r?.states?.[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,m,f=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states?.[t]?.enabled===!1)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),m=d.options.chart.animation??o.animation;let e=g.opacity;i.options.inactiveOtherPoints&&W(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},m),t.connector&&t.connector.animate({opacity:e},m))}),this.graphic.animate(g,m)}u&&this.graphic.animate(u,d.options.chart.animation??n.animation??r.animation),f&&f.hide()}else t&&n&&(x=l.symbol||i.symbol,f&&f.currentSymbol!==x&&(f=f.destroy()),u&&(f?f[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=f=d.renderer.symbol(x,u.x,u.y,u.width,u.height,H(r,n)).add(i.markerGroup),f.currentSymbol=x)),!d.styledMode&&f&&"inactive"!==this.state&&f.attr(i.pointAttribs(this,t))),f&&(f[t&&this.isInside?"show":"hide"](),f.element.point=this,f.addClass(this.getClassName(),!0));let y=F(o.halo)?o.halo:{},b=this.graphic||f,v=b?.visibility||"inherit";y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+(this.colorIndex??i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(S({fill:this.color||i.color,"fill-opacity":y.opacity},tN.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),A(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(b(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let e_=eZ,{charts:eK,composed:eq,isTouchDevice:eJ}=h,eQ=(t,e)=>!M(e)||t[`${e}Key`];class e0{applyInactiveState(t=[]){let e=[];for(let i of(t.forEach(t=>{let i=t.series;e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&e.push.apply(e,i.linkedSeries),i.navigatorSeries&&e.push(i.navigatorSeries),i.boosted&&i.markerGroup&&e.push.apply(e,this.chart.series.filter(t=>t.markerGroup===i.markerGroup))}),this.chart.series)){let t=i.options;t.states?.inactive?.enabled!==!1&&(-1===e.indexOf(i)?i.setState("inactive",!0):t.inactiveOtherPoints&&i.setAllPointsToState("inactive"))}}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!h.chartCount&&(e0.unbindDocumentMouseUp.forEach(t=>t.unbind()),e0.unbindDocumentMouseUp.length=0,e0.unbindDocumentTouchEnd&&(e0.unbindDocumentTouchEnd=e0.unbindDocumentTouchEnd())),V(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return A(this,"getSelectionMarkerAttrs",i,i=>{let s,{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(l.width=Math.max(1,Math.abs(s=t-n)),l.x=(s>0?0:s)+n),a&&(l.height=Math.max(1,Math.abs(s=e-h)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=F(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,m,f=this.selectionMarker;if((!f||!f.touch)&&(u<n?u=n:u>n+l&&(u=n+l),g<h?g=h:g>h+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){m=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:l,attrs:d}=this.getSelectionMarkerAttrs(u,g);this.hasZoom&&m&&!p&&!f&&(this.selectionMarker=f=e.renderer[l](),f.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||f.attr({fill:a})),f&&f.attr(d),m&&!f&&c&&eQ(t,r)&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return A(this,"getSelectionBox",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(t?.type==="touchend"&&this.hasDragged&&i.transform({trigger:"drop"}),e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}W(i.index)&&(this.selectionMarker=s.destroy())}i&&W(i.index)&&(v(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[],this.hasPinchMoved=!1)}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){var o;let r,a,n,h=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),l=t.searchPoint(i,h);F(l,!0)&&l.series&&(!F(s,!0)||(r=(o=s).distX-l.distX,a=o.dist-l.dist,n=l.series.group?.zIndex-o.series.group?.zIndex,(0!==r&&e?r:0!==a?a:0!==n?n:o.series.index>l.series.index?-1:1)>0))&&(s=l)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&W(o.x)&&W(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=U(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&(t.options.enableMouseTracking??!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};A(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c?.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=t.options?.nullInteraction,i=B(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});F(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),A(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=m(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),A(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):(i.changedTouches??t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return S(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(A(i.series,"click",S(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(S(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&A(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),h.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=eK[e0.hoverChartIndex??-1]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.exporting?.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){t?.touches&&this.hasPinchMoved&&t?.preventDefault?.(),eK[e0.hoverChartIndex??-1]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=1===a&&(i.tooltip?.options.followTouchMove??!0);a>1?e.initiated=!0:h&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):h?this.runPointActions(e.normalize(t)):o&&(A(i,"touchpan",{originalEvent:t,touches:r},()=>{let s=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:s(r),from:s(o),trigger:t.type}),e.hasDragged=1}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&Q(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&Q(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n?.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h?.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,u=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(u&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=p(s.container.ownerDocument,"mousemove",t=>eK[e0.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i,o=e.crosshair?.snap??!0;o&&((i=s.hoverPoint)&&i.series[e.coll]===e||(i=B(c,t=>t.series?.[e.coll]===e))),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument,i=t=>t.parentElement||t.getRootNode()?.host?.parentElement;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(p(t,"mouseenter",this.onContainerMouseEnter.bind(this)),p(t,"mouseleave",this.onContainerMouseLeave.bind(this))),e0.unbindDocumentMouseUp.some(t=>t.doc===e)||e0.unbindDocumentMouseUp.push({doc:e,unbind:p(e,"mouseup",this.onDocumentMouseUp.bind(this))});let s=i(this.chart.renderTo);for(;s&&"BODY"!==s.tagName;)this.eventsToUnbind.push(p(s,"scroll",()=>{delete this.chartPosition})),s=i(s);this.eventsToUnbind.push(p(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),p(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),e0.unbindDocumentTouchEnd||(e0.unbindDocumentTouchEnd=p(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),p(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!eJ)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=(e.options.tooltip?.followTouchMove??!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(p(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),p(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=h.charts[e0.hoverChartIndex??-1];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(e0.hoverChartIndex=e.index)}touch(t,e){let i,s,{chart:o,pinchDown:r=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?((s=o.isInsidePlot(t.chartX-o.plotLeft,t.chartY-o.plotTop,{visiblePlotOnly:!0}))&&!o.exporting?.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(this.hasPinchMoved=i=!!r[0]&&Math.pow(r[0].chartX-t.chartX,2)+Math.pow(r[0].chartY-t.chartY,2)>=16),(i??!0)&&this.pinch(t)):e&&this.reset(),(o.tooltip?.options.followTouchMove??!0)&&s&&"touchmove"===t.type&&!(o.scrollablePixelsX||o.scrollablePixelsY)&&t.preventDefault()):2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=e.zooming.pinchType??s),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=(o||r)&&eQ(t,e.zooming.key)}}e0.unbindDocumentMouseUp=[],(iM=e0||(e0={})).compose=function(t){_(eq,"Core.Pointer")&&p(t,"beforeRender",function(){this.pointer=new iM(this,this.options)})};let e1=e0,{setLength:e2,splice:e3}={convertToNumber:function(t,e){switch(typeof t){case"boolean":return+!!t;case"number":return isNaN(t)&&!e?null:t;default:return isNaN(t=parseFloat(`${t??""}`))&&!e?null:t}},setLength:function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},splice:function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,a=t[s?"subarray":"slice"](e,e+i),n=new r(t.length-i+o.length);return n.set(t.subarray(0,e),0),n.set(o,e),n.set(t.subarray(e+i),e+o.length),{removed:a,array:n}}},e5=class{constructor(t={}){this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||tl(),this.rowCount=0,this.versionTag=tl();let e=0;V(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,V(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=e2(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;V(this.columns,(s,o)=>{this.columns[o]=e3(s,t,e).array,i=s.length}),this.rowCount=i}A(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=tl()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRowObject(t,e){let i={},s=this.columns;for(let o of(e??(e=Object.keys(this.columns)),e))i[o]=s[o]?.[t];return i}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;V(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(A(this,"afterSetColumns"),this.versionTag=tl())}setRow(t,e=this.rowCount,i,s){var o;let{columns:r}=this,a=i?this.rowCount+1:e+1,n=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=n.length;t<e;t++)r[o=n[t]]||(r[o]=Array(this.rowCount));V(r,(s,o)=>{s&&(i?s=e3(s,e,0,!0,[t[o]]).array:s[e]=o in t?t[o]:s[e],r[o]=s)}),this.applyRowCount(Math.max(a,this.rowCount)),s?.silent||(A(this,"afterSetRows",{rowIndex:e}),this.versionTag=tl())}getModified(){return this.modified||this}};var e6,e9,e8,e4,e7,it,ie,ii,is,io,ir,ia,ih,il,id,ic,ip,iu,ig,im,ix,iy,ib,iv,iM,iw,ik,iC,iT,iS,iP,iA=ii||(ii={});function iL(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},m,f=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"!==r.linecap&&(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(f&&!1!==f.enabled&&n){let t=Math.min(f.radius??d,d);0===l.indexOf("url")&&(f=H(f,{width:h,height:h}),t=0),s.symbol=m=c.symbol(l,n/2-t,u-t,2*t,2*t,S({context:"legend"},f)).addClass("highcharts-point").add(p),m.isMarker=!0}}iA.areaMarker=function(t,e){iL.call(this,t,e,!0)},iA.lineMarker=iL;let iO=ii,{defaultOptions:iE}=ty;var iI=is||(is={});function iD(t,e){let i=iE.plotOptions||{},s=e.defaultOptions,o=e.prototype;return o.type=t,o.pointClass||(o.pointClass=e_),!iI.seriesTypes[t]&&(s&&(i[t]=s),iI.seriesTypes[t]=e,!0)}iI.seriesTypes=h.seriesTypes,iI.registerSeriesType=iD,iI.seriesType=function(t,e,i,s,o){let r=iE.plotOptions||{};if(e=e||"",r[t]=H(r[e],i),delete iI.seriesTypes[t],iD(t,P(iI.seriesTypes[e]||h.Series,s)),iI.seriesTypes[t].prototype.type=t,o){class e extends e_{}S(e.prototype,o),iI.seriesTypes[t].prototype.pointClass=e}return iI.seriesTypes[t]};let iB=is,{defaultOptions:iz}=ty,{registerEventOptions:iN}=eM,{svg:iR,win:iW}=h,{seriesTypes:ij}=iB,{format:iX}=tY;class iG{constructor(){this.zoneAxis="y"}init(t,e){let i;A(this,"init",{options:e});let s=t.series;this.eventsToUnbind=[],this.condemnedPoints||(this.condemnedPoints=[]),this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.dataTable??(this.dataTable=X(o.dataTable)?new e5:o.dataTable?.isDataTable?o.dataTable:new e5(o.dataTable)),this.linkedSeries=[],this.bindAxes(),S(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),iN(this,o);let a=o.events;(a?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=(i?._i??-1)+1,this.opacity=this.options.opacity,t.orderItems("series",tn(this,s)),this.points||this.data||this.setData(o.data,!1),A(this,"afterInit")}is(t){return ij[t]&&this instanceof ij[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;A(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,((i[o]??0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(tn(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||ta(18,!0,s)})}),A(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker;return i&&s&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=this.pointInterval??i.pointInterval??1,o&&W(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&W(t)?a+e:(this.xIncrement=a+e,a)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=H(t),a=i.styledMode,n={plotOptions:s,userOptions:r};A(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=iz.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let u=H(h,s.series,p,r),{negativeColor:g,negativeFillColor:m,zoneAxis:f="y",zones:x}=u,y=(x||[]).map(t=>({...t}));return this.tooltipOptions=H(iz.tooltip,iz.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=r.stickyTracking??p.stickyTracking??d.stickyTracking??(!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zones||(this.zones=y),this.zoneAxis=f,(g||m)&&!x&&(e={value:u[f+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||("boolean"!=typeof g&&(e.color=g),e.fillColor=m),y.push(e)),y.length&&M(y[y.length-1].value)&&y.push(a?{}:{color:this.color,fillColor:this.fillColor}),A(this,"afterSetOptions",{options:u}),u}getName(){let{chart:t,options:e}=this,{dataMapping:i,name:s}=e,o=i?.y||i?.value,r=j(o)?o:o?.column;return s??(j(r)?r:iX(t.options.lang.seriesName,this,t))}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(M(o="color"===t?this.options.colorIndex??this[a]:this[a])?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){let t=this.chart;t.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="var(--highcharts-neutral-color-20)":this.getCyclic("color",this.options.color||iz.plotOptions[this.type]?.color,t.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t?.symbol,this.chart.options.symbols)}getColumn(t,e,i){let s=e?this.dataTable.getModified():this.dataTable,o=s.rowCount,r=this.dataTable!==s,a=s.getColumn(t,!0);if("x"===t&&!r){if(this.xColumn)return this.xColumn;let t=s.getColumn("name",!0),e=this.options,i=t=>{if(void 0!==this.xColumnIsNumbers)return this.xColumnIsNumbers;for(let e of t)if("number"!=typeof e)return this.xColumnIsNumbers=!1;return this.xColumnIsNumbers=!0};if(this.xIncrement=null,!a||this.xAxis?.hasNames||e.relativeXValue||a.length<(e.turboThreshold||1/0)&&!this.boosted&&!i(a)){let e=[];for(let i=0;i<o;i++){let s=a?.[i];M(s)||(this.xIncrement??(this.xIncrement=e[e.length-1]??null)),e.push(this.getX(s,t?.[i]))}return this.xColumn=e}}return a||Array(i?o:0)}getX(t,e){return this.xAxis?.hasNames&&this.dataTable.getColumn("name",!0)&&M(e)?this.xAxis.nameToX({name:e,series:this},t):void 0===t||W(t)&&this.options.relativeXValue?this.autoIncrement(t):("string"==typeof t&&W(t=this.chart.time.parse(t)),t)}matchPoints(t,e,i,s){let{dataTable:o,options:r,requireSorting:a}=this,n=r.dataSorting,h=this.data,l=[],d=[],c=o.rowCount===h.length,p,u,m,f=0,x=!0;this.xIncrement=null,delete this.xColumn;let y=o.getColumn("x"),b=o.getColumn("id"),v=n?.matchByName?o.getColumn("name"):void 0,w=o.getColumn("index");for(u=0;u<o.rowCount;u++){let r=y?.[u],g=b?.[u],m=v?.[u],x=w?.[u],[k,C]=g&&e?[g,e]:m&&i?[m,i]:M(x)&&s?[x,s]:M(r)&&t?[r,t]:[],T=-1;if(C){if(-1===(T=C.indexOf(k,f))){let e=y?.[u],i=t?.length??o.rowCount;for(;i&&t&&"number"==typeof e&&t[i-1]>e;)i--;l.push({newIndex:i,oldIndex:u})}else h[T]&&(d.push({newIndex:T,oldIndex:u}),h[T].touched=!0,a&&(f=T+1));(!c||u!==T||n?.enabled||this.hasDerivedData)&&(p=!0)}else l.push({newIndex:u,oldIndex:u})}if(p){for(d.forEach(t=>{h[t.newIndex].applyOptions(o.getRowObject(t.oldIndex))}),l.sort((t,e)=>e.newIndex-t.newIndex),l.forEach(t=>{h.splice(t.newIndex,0,void 0)}),u=h.length;u--;)(m=h[u])&&!m.touched&&(m.destroy(),h.splice(u,1));this.isDirtyData=this.isDirty=!0}else if(c&&!n?.enabled){for(u=0;u<o.rowCount;u++)if(!h[u].destroyed&&!h[u].condemned){let t=o.getRowObject(u);t&&(Object.keys(t).forEach(e=>{void 0===t[e]&&delete t[e]}),Object.keys(t).length&&h[u].update(t,!1,void 0,!1))}}else x=!1;if(h.forEach(t=>{t&&(t.touched=!1)}),!x)return!1;let k=this.getColumn("x");return null===this.xIncrement&&k.length&&(this.xIncrement=g(k),this.autoIncrement()),!0}getDataColumnKeys(){return this.dataColumnKeys||["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o,r,a,n=this.dataTable,h=this.options,l=this.points,d=l?.length||0,c=n.getColumn("x"),p=n.getColumn("id"),u=h.dataSorting?.matchByName&&l?.map(t=>t.name)||n.getColumn("name"),g=n.getColumn("index"),m=this.chart,f=this.xAxis;if(m.options.chart.allowMutatingData||(h.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,a=H(!0,t)),t=a||t,this.xIncrement=null,delete this.xColumn,delete this.xColumnIsNumbers,n!==h.dataTable&&delete n.columns.x,this.colorCounter=0,X(t)?this.setDataFromArray(t):this.setDataFromTable(t),!1===s||!d||this.cropped||this.hasGroupedData||!this.visible||this.boosted||(o=this.matchPoints(c,p,u,g)),!o){for(j(this.getColumn("y")[0])&&ta(14,!0,m),this.data=[],r=d;r--;)l[r]?.destroy();f&&(f.minRange=f.userMinRange),this.isDirty=m.isDirtyBox=!0,this.isDirtyData=!!l,i=!1}X(t)&&(this.options.data=this.userOptions.data=t),"point"===h.legendType&&(this.processData(),this.generatePoints()),e&&m.redraw(i)}setDataFromArray(t){let e=t.length,{keys:i,turboThreshold:s}=this.options,{pointValKey:o="y",pointArrayMap:r=[]}=this,a=r.length,n=this.dataTable,h=this.getDataColumnKeys(),l=s&&e>s,d=0,c=1;if(l){let s=this.getFirstValidPoint(t),p=this.getFirstValidPoint(t,e-1,-1),u=t=>!!(X(t)&&(i||W(t[0])));if(W(s)&&W(p))n.setColumn(o,t);else if(u(s)&&u(p))if(a){let e=s.length===a,i=Array(s.length).fill(0).map(()=>[]);for(let e of t)for(let t=0;t<=a;t++)i[t]?.push(e[t]);n.setColumns((e?r:h).reduce((t,e,s)=>(t[e]=i[s],t),{}))}else{i&&(d=i.indexOf("x"),c=i.indexOf("y"),d=d>=0?d:0,c=c>=0?c:1),1===s.length&&(c=0);let e=[],r=[];if(d===c){for(let e of t)r.push(e[c]);n.setColumn(o,r)}else{for(let i of t)e.push(i[d]),r.push(i[c]);n.setColumns({x:e,[o]:r})}}else l=!1}if(!l){let i={};for(let s=0;s<e;s++){let o=this.pointClass.prototype.optionsToObject.call({series:this},t[s]);for(let t of Object.keys(o))i[t]||(i[t]=Array(e)),i[t][s]=o[t]}e?n.setColumns(i):n.deleteRows(0,n.rowCount)}}setDataFromTable(t){let{chart:e,options:i,dataTable:s}=this,o=e.getDataTable(i),r=t?[t]:o.length?o:e.dataTable,a=this.getDataColumnKeys(),n=i.dataMapping,h=a.slice();n&&(Object.keys(n).forEach(t=>{_(h,t)}),this.dataColumnKeys=h),r.forEach((t,e)=>{let i=h.reduce((i,s)=>{let o=n?.[s],r=t.columns||{},a=t.id,h=j(o)?0===e&&r[o]:((o?.dataTable||0)===e||a&&o?.dataTable===a)&&(W(o?.column)?Object.values(r)[o.column]:r[o?.column||s]);return h&&(i[s]=h),i},{});(n||t)&&s.setColumns(i),t.isDataTable&&this.bindDataTableEvents(t,i)})}bindDataTableEvents(t,e){if(this.hasBoundDataTableEvents)return;let{chart:i,eventsToUnbind:s}=this,o=()=>{clearTimeout(i.redrawTimeout),i.redrawTimeout=setTimeout(()=>i.renderer&&i.redraw(),0)};s.push(p(t,"afterSetRows",t=>{let i=t.rowIndex;if(W(i)){let t=e5.prototype.getRowObject.call({columns:e},i),s=this.data[i];t&&(this.currentDataGrouping?this.setData():(s?s.update(t,!1):this.addPoint(t,!1),o()))}})),s.push(p(t,"afterDeleteRows",t=>{let{rowCount:e,rowIndex:i}=t;if(W(i)){for(let t=i+e-1;t>=i;t--)this.removePoint(t,!1);o()}})),s.push(p(t,"afterSetColumns",t=>{this.setData(t.target)})),this.hasBoundDataTableEvents=!0}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,m,f=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,m=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(f[l-1]<g||f[0]>m?x=new e5:e.getColumn(e.pointValKey||"y").length&&(f[0]<g||f[l-1]>m)&&(x=(d=this.cropData(i,g,m)).modified,p=d.start,c=!0))),x!==i&&(f=x.getColumn("x",!0)||[]),{modified:x,cropped:c,cropStart:p,closestPointRange:O([h?f.map(h.log2lin):f],()=>e.requireSorting&&!y&&ta(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,A(this,"afterProcessData")}cropData(t,e,i){let s=t===this.dataTable?this.getColumn("x"):t.getColumn("x",!0),o=s.length,r,a,n=0,h=o;for(r=0;r<o;r++)if(s[r]>=e){n=Math.max(0,r-1);break}for(a=r;a<o;a++)if(s[a]>i){h=a+1;break}let l=Object.keys(t.columns).reduce((e,i)=>(e[i]=(t.getColumn(i,!0)||[]).slice(n,h),e),{});return l.x=s.slice(n,h),{modified:new e5({columns:l}),start:n,end:h}}generatePoints(){let t=this.options,e=this.hasProcessedDataTable?void 0:t.data,i=this.dataTable.getModified(),s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping?.groupAll?a:0,c=this.getDataColumnKeys(),p,u,g,m,f=this.data,x;if(!f&&!n){let t=[];t.length=e?.length||0,f=this.data=t}for(h&&n&&(this.options.keys=!1),m=0;m<r;m++)u=a+m,n?((g=new o(this,i.getRowObject(m,c))).dataGroup=this.groupMap?.[d+m],g.dataGroup?.options&&(g.options=g.dataGroup.options,S(g,g.dataGroup.options),delete g.dataLabels,g.key=g.name??g.category)):(g=f[u],x=e?e[u]:i.getRowObject(m),g||void 0===x?g&&(g.category=this.xAxis?.categories?.[g.x]??g.x,g.key=g.name??g.category):f[u]=g=new o(this,x,s[m])),g&&(g.index=n?d+m:u,l[m]=g);if(this.options.keys=h,f&&(r!==(p=f.length)||n))for(m=0;m<p;m++)m!==a||n||(m+=r),f[m]&&(f[m].destroyElements(),f[m].plotX=void 0);this.data=f,this.points=l,A(this,"afterGeneratePoints")}getXExtremes(t){return{min:u(t),max:g(t)}}getExtremes(t,e){let{options:i,xAxis:s,yAxis:o}=this,r=e||this.getExtremesFromAll||i.getExtremesFromAll,a=r&&this.cropped?this.dataTable:this.dataTable.getModified(),n=a.rowCount,h=t||this.stackedYData,l=h?[h]:(this.keysAffectYAxis||this.pointArrayMap||["y"])?.map(t=>a.getColumn(t,!0)||[])||[],d=this.getColumn("x",!0),c=[],p=this.requireSorting&&!this.is("column")?1:0,m=i.cumulative&&i.cumulativeStart&&p&&!r,f=!!o&&o.positiveValuesOnly,x=r||this.cropped||!s,y,b,v,M=0,w=0;for(s&&(M=(y=s.getExtremes()).min,w=y.max),v=0;v<n;v++)if(b=d[v],(x||(d[v+p]||b)>=M&&(d[v-p]||b)<=w)&&(!m||b>=M))for(let t of l){let e=t[v];W(e)&&(e>0||!f)&&c.push(e)}let k={activeYData:c,dataMin:u(c),dataMax:g(c)};return A(this,"afterGetExtremes",{dataExtremes:k}),k}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o<s;){if(M(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let{hasRendered:t,options:e,xAxis:i,yAxis:s}=this,{stacking:o,threshold:r}=e,{polar:a}=this.chart,n=this.points.concat(this.condemnedPoints),h=n.length,l=this.pointPlacementToXValue(),d=!!l,c=e.startFromThreshold?r:0,p=e?.nullInteraction&&s.len,u,g,m,y,b=Number.MAX_VALUE;function v(t){return f(t,-1e9,1e9)}let w=(t,e)=>{let s=i.translate(t,!1,!1,e,!0,l);return W(s)?x(v(s)):void 0},k=(t,e,i)=>{if(W(t)&&void 0!==e.plotX){let e=s.translate(t,!1,!0,i,!0);return W(e)?v(e):void 0}if(!W(t)&&p)return p};for(u=0;u<h;u++){let e=n[u],h=e.x,p,f,C=e.y,T=e.low,S=o&&s.stacking?.stacks[(this.negStacks&&C<(c?0:r)?"-":"")+this.stackKey];e.plotX=g=w(h),o&&this.visible&&S&&S[h]&&(y=this.getStackIndicator(y,h,this.index),!e.isNull&&y.key&&(f=(p=S[h]).points[y.key]),p&&X(f)&&(T=f[0],C=f[1],T===c&&y.key===S[h].base&&(T=W(r)?r:s.min),s.positiveValuesOnly&&M(T)&&T<=0&&(T=void 0),e.total=e.stackTotal=p.total??void 0,e.percentage=M(e.y)&&p.total?e.y/p.total*100:void 0,e.stackY=C,this.irregularWidths||p.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),e.yBottom=M(T)?v(s.translate(T,!1,!0,!1,!0)):void 0,this.dataModify&&(C=this.dataModify.modifyValue(C,u)),e.plotY=k(C,e),e.origin=!t||e.graphic||a?void 0:{x:w(h,!0),y:k(C,e,!0)},e.isInside=this.isPointInside(e),e.clientX=d?x(i.translate(h,!1,!1,!1,!0,l)):g,e.negative=(e.y||0)<(r||0),!e.isNull&&!1!==e.visible&&W(g)&&(W(m)&&(b=Math.min(b,Math.abs(g-m))),m=g),e.zone=this.zones.length?e.getZone():void 0}this.closestPointRangePx=b,A(this,"afterTranslate")}getValidPoints(t,e,i){let s=this.chart;return(t||this.points||[]).filter(function(t){let{plotX:o,plotY:r}=t;return(!!i||!t.isNull&&!!W(r))&&(!e||!!s.isInsidePlot(o,r,{inverted:s.inverted}))&&!1!==t.visible})}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:t,group:e,markerGroup:i,options:s,plotClipGroup:o}=this,r=t.sharedClips,a=t.renderer,n=t.getClipBox(this),h=s.clip??!0,l=this.getSharedClipKey(),d=r[l];d?d.animate(n):r[l]=d=a.clipRect(n),e?.clip(h?d:void 0),i?.clip(),o?.clip(h&&this.yAxis.clippable?t.plotClipInner:void 0)}animate(t){let{chart:e,group:i,markerGroup:s}=this,o=e.inverted,r=tP(this.options.animation),a=[this.getSharedClipKey(),r.duration,r.easing,r.defer].join(","),n=e.sharedClips[a],h=e.sharedClips[a+"m"];if(t&&i){let t=e.getClipBox(this);if(n)n.attr("height",t.height);else{t.width=0,o&&(t.x=e.plotHeight),n=e.renderer.clipRect(t),e.sharedClips[a]=n;let i={x:-99,y:-99,width:o?e.plotWidth+199:99,height:o?99:e.plotHeight+199};h=e.renderer.clipRect(i),e.sharedClips[a+"m"]=h}i.clip(n),s?.clip(h)}else if(n&&!n.hasClass("highcharts-animating")){let t=e.getClipBox(this),i=r.step;(s?.element.childNodes.length||e.series.length>1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),V(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,A(this,"afterAnimate")}drawPoints(t){let e,i,s,o,r,a,n;t||(t=this.points.concat(this.condemnedPoints));let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker||{},u=c.nullInteraction,g=this[this.specialGroup||"markerGroup"],m=this.xAxis,f=p.enabled??(!m||!!m.isRadial||null)??(this.closestPointRangePx??-1/0)>=(p.enabledThreshold??2)*p.radius;if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e<t.length;e++){o=(s=(i=t[e]).graphic)?"animate":"attr",r=i.marker||{},a=!!i.marker;let c=i.isNull;if((f&&!M(r.enabled)||r.enabled)&&(!c||u)&&!1!==i.visible){let t=r.symbol??this.symbol??"rect";n=this.markerAttribs(i,i.selected?"select":"");let e=!1!==i.isInside;if(!s&&e&&((n.width||0)>0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(g),i.origin)){let t=i.getOrigin(i.origin,n);l||(t.opacity=0),s.attr(t),o="animate"}if(s){"animate"===o&&s?.animate(n);let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t),s.addClass(i.getClassName(),!0)}}else s&&(i.graphic=s.destroy())}}markerAttribs(t,e){let i=this.options,s=i.marker??{},o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=o.radius??s.radius;e&&(n=s.states?.[e],h=o.states?.[e],l=h?.radius??n?.radius??(l&&l+(n?.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return W(l)&&d&&(i.crisp&&(d[0]=b(d[0],t.hasImage?0:"rect"===r?s.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options,s=i.marker??{},o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,h=t?.zone?.color,l=this.color,d,c,p=r.lineWidth??s.lineWidth,u=t?.isNull&&i.nullInteraction?0:1;l=a||h||n||l,d=r.fillColor||s.fillColor||l,c=r.lineColor||s.lineColor||l,e=e||"normal";let g=s.states?.[e]||{},m=r.states?.[e]||{};return p=m.lineWidth??g.lineWidth??(p||0)+(m.lineWidthPlus??g.lineWidthPlus??0),d=m.fillColor||g.fillColor||d,c=m.lineColor||g.lineColor||c,u=m.opacity??g.opacity??u,{stroke:c,"stroke-width":p,fill:d,opacity:t?.condemned||t?.isInside===!1?0:u}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\/533/.test(iW.navigator.userAgent),a=s.data||[];for(A(s,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach(function(t){i=s[t],i?.series&&(T(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),e=a.length;e--;)a[e]?.destroy?.(!0);for(let t of s.zones||[])w(t,void 0,!0);z(s.animationTimeout),V(s,function(t,e){t instanceof tQ&&!t.survive&&t[r&&"group"===e?"hide":"destroy"]()}),o.hoverSeries===s&&(o.hoverSeries=void 0),T(o.series,s),o.orderItems("series"),V(s,function(e,i){t&&"hcEvents"===i||delete s[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,m=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o,value:r}=t,a=i-s;o?.push(["L",e,Math.abs(a)<g?i-g*(a<0||0===a&&M(r)?-1:1):s])};if(s.length&&(i||t)&&d&&W(d.min)){let e=d.getExtremes().max+u,g=t=>{t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=f(d.toPixels(t.value??e,!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length<r.len)for(let t of o){let{plotX:e,plotY:i,zone:o}=t,r=o&&s[s.indexOf(o)-1];o&&m(o,e,i),r&&m(r,e,i)}let x=[],y=d.toPixels(d.getExtremes().min-u,!0);s.forEach(e=>{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,m=r.len,f=a.len;c?(p=o,m=y):(u=o,f=y);let b=[["M",p,u],["L",m,u],["L",m,f],["L",p,f],["Z"]],v=[b[0],...s,b[1],b[2],...x,b[3],b[4]];x=s.reverse(),y=o,h&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return M(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(M(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;s.inverted&&(e=i,i=this.xAxis);let r={scale:1,translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,name:t};A(this,"getPlotBox",r);let{scale:a,translateX:n,translateY:h}=r;return{translateX:n,translateY:h,rotation:90*!!o,rotationOriginX:o?a*(e.len-i.len)/2:0,rotationOriginY:o?a*(e.len+i.len)/2:0,scaleX:o?-a:a,scaleY:a}}removeEvents(t){let{eventsToUnbind:e}=this;t||J(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=tP(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;A(this,"render"),e.plotClipInner&&(t.plotClipGroup||(t.plotClipGroup=e.renderer.g().add(n))),t.plotGroup("group","series",r,a,t.plotClipGroup||n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=te(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,A(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree,this.condemnedPoints.length=0}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=(i.findNearestPointBy??"").indexOf("y")>-1?2:1;delete e.kdTree,te(function(){e.kdTree=function t(i,s,o){let r,a,n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1},i.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>{let s=t[i]||0,o=e[i]||0;return[s===o&&t.index>e.index||s<o?t:e,!1]}),p=o||((t,e)=>t<e);if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,s,o){let l,u,g,m,f,x,y,b=i.point,v=r.kdAxisArray[s%o],w=b,k=!1;l=e[a],u=b[a],g=M(l)&&M(u)?l-u:null,m=e[n],f=b[n],x=M(m)&&M(f)?m-f:0,y=d&&b.marker?.radius||0,b.dist=Math.sqrt((g&&g*g||0)+x*x)-y,b.distX=M(g)?Math.abs(g)-y:Number.MAX_VALUE;let C=(e[v]||0)-(b[v]||0)+(d&&b.marker?.radius||0),T=C<0?"left":"right",S=C<0?"right":"left";return i[T]&&([w,k]=c(b,t(e,i[T],s+1,o),h)),i[S]&&p(Math.sqrt(C*C),w[h],k)&&(w=c(w,t(e,i[S],s+1,o),h)[0]),w}(t,this.kdTree,l,l)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return"between"===i&&(i=e.reversed?-.5:.5),W(i)?i*(t.pointRange||e.pointRange):0}isPointInside(t){let{chart:e,xAxis:i,yAxis:s}=this,{plotX:o=-1,plotY:r=-1}=t;return r>=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(iR?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,...t.dataLabelsGroups||[]].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),A(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a,n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c?.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=e??!0;let{applyOptions:m,optionsToObject:f}=this.pointClass.prototype,x={series:this},y=f.call(x,t);m.call(x,y,void 0,!1);let b=x.x;if(a=g.length,this.requireSorting&&b<g[a-1])for(r=!0;a&&g[a-1]>b;)a--;d.setRow(y,a,!0),this.xColumn?.splice(a,0,this.getX(b)),p&&x.name&&(p[b]=x.name),u?.splice(a,0,t),(r||this.hasProcessedDataTable)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,this.xColumn].filter(M).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&A(this,"addPoint",{point:x}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,s.xColumn].filter(M).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),n.modified=n,h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};tS(i,o),e=e??!0,h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),(t??!0)&&r.redraw(e)}!1!==i?A(o,"remove",null,a):a()}update(t,e){A(this,"update",{options:t=C(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=ij[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d=t.data||t.dataTable,c,p,u=iG.keepProps.slice(),g=t.type||o.type||s.options.chart.type,m=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));g=g||r,m?(u.push.apply(u,iG.keepPropsForPoints),!1!==t.visible&&(u.push("area","graph"),"zones"in t||u.push("zones")),i.parallelArrays.forEach(function(t){u.push(t+"Data")}),d&&(t.dataSorting&&S(i.options.dataSorting,t.dataSorting),this.setData(d,!1))):this.dataTable.modified=this.dataTable,t.dataLabels&&o.dataLabels&&(t.dataLabels=this.mergeArrays(o.dataLabels,t.dataLabels)),t=H(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart},!m&&{data:i.options.data},t,h),m&&t.data&&(t.data=i.options.data),(u=["dataLabelsGroup","dataLabelsGroups","dataLabelsParentGroups","group","markerGroup","plotClipGroup","transformGroup"].concat(u)).forEach(function(t){u[t]=i[t],delete i[t]});let f=!1;if(ij[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,ij[g].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(p in n)i[p]=void 0;S(i,ij[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}else ta(17,!0,s,{missingModuleFor:g});if(u.forEach(function(t){i[t]=u[t]}),i.init(s,t),m&&this.points)for(let t of(!1===(c=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(c,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===c.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),A(this,"afterUpdate"),(e??!0)&&s.redraw(!!m&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=s?.[this.type]?.[t]??s?.series?.[t];return o&&!M(r)?i!==o:i!==(r??i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),A(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.chart,e=t.tooltip,i=t.hoverPoint;t.hoverSeries=null,i&&i.onMouseOut(),A(this,"mouseOut"),e&&!this.stickyTracking&&(!e.shared||this.noSharedTooltip)&&e.hide(),t.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,{graph:s,options:o}=i,{inactiveOtherPoints:r,states:a={}}=o,n=a[t||"normal"]?.animation??i.chart.options.chart.animation,{lineWidth:h,opacity:l}=o;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,...i.dataLabelsGroups||[]].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]?.enabled===!1)return;if(t&&(h=a[t]?.lineWidth??(W(h)?h+(a?.[t]?.lineWidthPlus||0):void 0),l=a[t]?.opacity??l),s&&!s.dashstyle&&W(h))for(let t of[s,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,...i.dataLabelsGroups||[],i.labelBySeries].forEach(function(t){t?.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(e=>e.setState?.(t))}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),i.dataLabelsGroups?.forEach(t=>{t?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),A(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),A(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){let i=this.chart.renderer,s=this.options.legendSymbol||"rectangle",o=e.legendItem||{},{options:r,symbolHeight:a,symbolWidth:n}=t,h=r.squareSymbol,l=h?a:n,d=h?(n-a)/2:0,c=(t.baseline||0)-a+1,p=r.symbolRadius??a,u="rectangle"===s?i.rect(d,c,l,a,p):i.symbols[s]&&i.symbol(s,d,c,l,a,{r:p});u?o.symbol=u.addClass("highcharts-point").attr({zIndex:3}).add(o.group):iO[s]?.call(this,t,e)}}iG.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"var(--highcharts-background-color)",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"var(--highcharts-neutral-color-20)",lineColor:"var(--highcharts-neutral-color-100)",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,distance:4,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:[1,3],style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},iG.types=iB.seriesTypes,iG.registerType=iB.registerSeriesType,iG.keepProps=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],iG.keepPropsForPoints=["data","isDirtyData","isDirtyCanvas","points","condemnedPoints","dataTable","hasProcessedDataTable","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"],S(iG.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:e_,requireSorting:!0,sorted:!0}),iB.series=iG;let iF=iG,{registerEventOptions:iH}=eM,{composed:iY,marginNames:iV}=h,{distribute:iU}=tV,{format:i$}=tY;class iZ{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),iH(this,e),p(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),p(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=t.padding??8;this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=H(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=t.symbolWidth??16,this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(H(!0,this.options,t)),"events"in this.options&&iH(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,(e??!0)&&i.redraw(),A(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof iF||t instanceof e_)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,lineColor:l}=t.options,d=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(H(e?this.itemStyle:i)),a?.attr(d({stroke:l||t.color})),n?.attr(d(t.series?t.series.pointAttribs?.(t):t.pointAttribs?.()||{fill:t.color})),s?.attr(d({fill:h||t.color,"fill-opacity":h?1:t.options.fillOpacity??.75}))}t.color=i,A(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e?.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s},n=()=>{A(this,"afterPositionItem",{item:t})};e[M(e.translateY)?"animate":"attr"](o,void 0,n)}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.legendItem||{};for(let t of["group","label","line","symbol"])e[t]&&(e[t]=e[t].destroy());t.checkbox=k(t.checkbox),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r,a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,v(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r<t+i-6?"":"none"}))},this))}renderTitle(){let t=this.options,e=this.padding,i=t.title,s,o=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,void 0,void 0,void 0,t.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(i.style),this.title.add(this.group)),i.width||this.title.css({width:this.maxLegendWidth+"px"}),o=(s=this.title.getBBox()).height,this.offsetWidth=s.width,this.contentGroup.attr({translateY:o})),this.titleHeight=o}setText(t){let e=this.options;t.legendItem.label.attr({text:e.labelFormat?i$(e.labelFormat,t,this.chart):e.labelFormatter.call(t,t)})}renderItem(t){let e=t.legendItem=t.legendItem||{},i=this.chart,s=i.renderer,o=this.options,r="horizontal"===o.layout,a=this.symbolWidth,n=o.symbolPadding||0,h=this.itemStyle,l=this.itemHiddenStyle,d=r?o.itemDistance??20:0,c=!o.rtl,p=!t.series,u=!p&&t.series.drawLegendSymbol?t.series:t,g=u.options,m=!!this.createCheckboxForItem&&g&&g.showCheckbox,f=o.useHTML,x=t.options.className,y=e.label,b=a+n+d+20*!!m;!y&&(e.group=s.g("legend-item").addClass("highcharts-"+u.type+"-series highcharts-color-"+t.colorIndex+(x?" "+x:"")+(p?" highcharts-series-"+t.index:"")).attr({zIndex:1}).add(this.scrollGroup),e.label=y=s.text("",c?a+n:-n,this.baseline||0,f),i.styledMode||y.css(H(t.visible?h:l)),y.attr({align:c?"left":"right",zIndex:2}).add(e.group),!this.baseline&&(this.fontMetrics=s.fontMetrics(y),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,y.attr("y",this.baseline),this.symbolHeight=o.symbolHeight??this.fontMetrics.f,o.squareSymbol&&(this.symbolWidth=o.symbolWidth??Math.max(this.symbolHeight,16),b=this.symbolWidth+n+d+20*!!m,c&&y.attr("x",this.symbolWidth+n))),u.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,y,f)),m&&!t.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(t),this.colorizeItem(t,t.visible),(i.styledMode||!h.width)&&y.css({width:Math.min(o.itemWidth||this.widthOption||i.spacingBox.width,o.maxWidth?K(o.maxWidth,i.chartWidth):1/0)-b+"px"}),this.setText(t);let v=y.getBBox(),M=this.fontMetrics?.h||0;t.itemWidth=t.checkboxOffset=o.itemWidth||e.labelWidth||v.width+b,this.maxItemWidth=Math.max(this.maxItemWidth,t.itemWidth),this.totalItemWidth+=t.itemWidth,this.itemHeight=t.itemHeight=Math.round(e.labelHeight||(v.height>1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?e.itemDistance??20:0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e?.options;e&&(i.showInLegend??!M(i.linkedTo))&&(t=t.concat(e.legendItem?.labels||("point"===i.legendType?e.data:e)))}),A(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((r,a)=>{r.test(o)&&!M(t[a])&&(i[iV[a]]=Math.max(i[iV[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+(s.margin??12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t,e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=B(a?t.points:t.points.slice(0).reverse(),function(t){return W(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),iU(i,e.plotHeight)))t=o.item.legendItem||{},W(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.spacingBox.width,i=t.renderer,s=this.options,o=this.padding,r=this.getAllItems(),a,n,h,l=this.group,d,c=this.box;this.itemX=o,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=K(s.width,e-o),d=e-2*o-s.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(d/=2),this.maxLegendWidth=this.widthOption||d,l||(this.group=l=i.g("legend").addClass(s.className||"").attr({zIndex:7}).add(),this.contentGroup=i.g().attr({zIndex:1}).add(l),this.scrollGroup=i.g().add(this.contentGroup)),this.renderTitle(),tt(r,(t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0)),s.reversed&&r.reverse(),this.allItems=r,this.display=a=!!r.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,r.forEach(this.renderItem,this),r.forEach(this.layoutItem,this),n=(s.maxWidth?Math.min(this.widthOption||this.offsetWidth,d,K(s.maxWidth,t.chartWidth)||1/0):this.widthOption||this.offsetWidth)+o,h=this.lastItemY+this.lastLineHeight+this.titleHeight,h=this.handleOverflow(h)+o,c||(this.box=c=i.rect().addClass("highcharts-legend-box").attr({r:s.borderRadius}).add(l)),t.styledMode||c.attr({stroke:s.borderColor,"stroke-width":s.borderWidth||0,fill:s.backgroundColor||"none"}).shadow(s.shadow),n>0&&h>0&&c[c.placed?"animate":"attr"](c.crisp.call({},{x:0,y:0,width:n,height:h},c.strokeWidth())),l[a?"show":"hide"](),t.styledMode&&"none"===l.getStyle("display")&&(n=h=0),this.legendWidth=n,this.legendHeight=h,a&&this.align(),this.proximate||this.positionItems(),A(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=H(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(H(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=l.animation??!0,c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?w.attr({height:t}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},m=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(M),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},f,x,y,b,v=i.spacingBox.height+(a?-r:r)-n,M=this.nav,w=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(v/=2),h&&(v=Math.min(v,h)),p.length=0,t&&v>0&&t>v&&!1!==l.enabled?(this.clipHeight=f=Math.max(v-20-this.titleHeight-n,0),this.currentPage=this.currentPage??1,this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>f&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&b&&(b.pageIx=o-1),e===u.length-1&&i+s-p[o-1]>f&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i),b=y}),w||(w=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(w)),g(f),M||(this.nav=M=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(M),m("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(M),this.down=s.symbol("triangle-down",0,0,c,c).add(M),m("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=v):M&&(g(),this.nav=M.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&tS(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),te(()=>{A(this,"afterScroll",{currentPage:l})},tP(e??i.renderer.globalAnimation??!0).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof e_,n=t instanceof iF,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(H(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),A(s,"itemClick",{browserEvent:e,legendItem:t,context:s},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&A(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=y("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),p(t.checkbox,"click",function(e){let i=e.target;A(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}(iw=iZ||(iZ={})).compose=function(t){_(iY,"Core.Legend")&&p(t,"beforeMargins",function(){this.legend=new iw(this,this.options.legend)})};let i_=iZ,{defaultOptions:iK}=ty,{numberFormat:iq}=tY,{registerEventOptions:iJ}=eM,{charts:iQ,doc:i0,marginNames:i1,win:i2}=h,{seriesTypes:i3}=iB;class i5{static chart(t,e,i){let s=new i5(t,e,i);return s.promise??s}constructor(t,e,i){if(this.sharedClips={},!i0)return void ta(36,!1,this);const s=[...arguments];(j(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:t.zoomType??e.type,key:t.zoomKey??e.key,pinchType:t.pinchType??e.pinchType,singleTouch:t.zoomBySingleTouch??e.singleTouch??!1,resetButton:H(e.resetButton,t.resetZoomButton)}}init(t,e){A(this,"init",{args:arguments},function(){let i=H(iK,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=S({},t),(this.renderTo=j(o)?i0.getElementById(o):o)||ta(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],!0===e?this.promise=new Promise(t=>{this.callback=t}):this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tg(S(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||iq).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=iQ.length,this.dataTable=this.getDataTable(i),iQ.push(this),h.chartCount++,iJ(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),A(this,"afterInit"),this.firstRender()})}getDataTable(t){return(t.dataTable?Q(t.dataTable):[]).map(t=>t.isDataTable?t:new e5(t))}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=i3[i];s||ta(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}orderItems(t,e=0){let i=this[t],s=this.options[t]=Q(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?Q(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t<r;++t){let e=i[t];e&&(e.index=t,e instanceof iF&&(e.name=e.getName()),e.options.isInternal||(s[t]=e.options,o[t]=e.userOptions))}}getClipBox(t,e){let i=this.inverted,{xAxis:s,yAxis:o}=t||{},{x:r,y:a,width:n,height:h}=H(this.clipBox);return t&&(s&&s.len!==this.plotSizeX&&!s.isRadial&&(n=s.len),o&&o.len!==this.plotSizeY&&!o.isRadial&&(h=o.len),i&&!t.invertible&&([n,h]=[h,n])),e&&(r+=(i?o:s)?.pos??this.plotLeft,a+=(i?s:o)?.pos??this.plotTop),{x:r,y:a,width:n,height:h}}isInsidePlot(t,e,i={}){let{inverted:s,plotBox:o,plotLeft:r,plotTop:a,scrollablePlotBox:n}=this,{scrollLeft:h=0,scrollTop:l=0}=i.visiblePlotOnly&&this.scrollablePlotArea?.scrollingContainer||{},d=i.series,c=i.visiblePlotOnly&&n||o,p=i.inverted?e:t,u=i.inverted?t:e,g={x:p,y:u,isInsidePlot:!0,options:i};if(!i.ignoreX){let t=d&&(s&&!this.polar?d.yAxis:d.xAxis)||{pos:r,len:1/0},e=i.paneCoordinates?t.pos+p:r+p;e>=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return A(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){A(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),tS(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),p=!0):r&&(r.labelFormatter||r.labelFormat)&&(p=!0)),t.isDirtyData&&A(t,"updatedData")}),p&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins();let g=this.isDirtyBox;e.forEach(function(t){t.isDirty&&(g=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){A(t,"afterSetExtremes",S(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(g||d)&&t.redraw()}),g&&this.drawChartBox(),A(this,"predraw"),i.forEach(function(t){(g||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),e.forEach(t=>{t.saveOld()}),A(this,"redraw"),A(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=B(this.axes,i)||B(this.series,i);for(let t=0;!s&&t<e.length;t++)s=B(e[t].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(A(this,"createAxes"),["xAxis","yAxis"]))for(let i of t[e]=Q(t[e]||{}))new eI(this,i,e);A(this,"afterCreateAxes")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(e=>{(e.selectedStaging??e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=H(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(S("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=H(o),n=i?.textPxLength||0;if(i&&r){A(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),m=Math.max(p,g),f=H({y:"bottom"===d?h:u+h},r),x=(r.width||(g>p?this.chartWidth:a.width)/m)+"px";f.align??(f.align="title"===t?g<p?"left":"center":this.title?.alignValue),i.alignValue!==f.align&&(i.placed=!1);let y=Math.round(i.css({width:x}).getBBox(r.useHTML).height);if(f.height=y,i.align(f,!1,a).attr({align:f.align,scaleX:m,scaleY:m,"transform-origin":`${a.x+n*m*L(f.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:m);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,A(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:D(this.renderTo,"width",!0)||0,height:D(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,K(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(v(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(i0.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(i0.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,i0.body.appendChild(e)),("none"===D(e,"display",!1)||e.hcOrigDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),v(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==i0.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t,e=this.options,i=e.chart,s="data-highcharts-chart",o=tl(),r=this.renderTo,a=Z(m(r,s));W(a)&&iQ[a]&&iQ[a].hasRendered&&iQ[a].destroy(),m(r,s,this.index),r.innerHTML=tN.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;v(r,{overflow:"hidden"}),this.styledMode||(t=S({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=y("div",{id:o},t,r);if(this.container=l,this.getChartSize(),h!==this.chartWidth&&(h=this.chartWidth,this.styledMode||v(l,{width:i.style?.width??h+"px"})),this._cursor=l.style.cursor,this.renderer=new em(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode,e.palette,this.index),this.containerBox=this.getContainerBox(),tS(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style),this.palette=this.renderer.palette;A(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!M(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!M(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),A(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=t=>{t.forEach(t=>{t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),i1.forEach((i,o)=>{M(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return C(this.userOptions,iK)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.exporting?.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(z(e.reflowTimeout),e.reflowTimeout=te(function(){if(e.container){e.setSize(void 0,void 0,!1);let t=e.containerBox;t&&(t.height=e.chartHeight)}},100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=p(i2,"resize",e);p(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,tS(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?tL:v)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,A(s,"resize"),setTimeout(()=>{s&&A(s,"endResize")},tP(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,clipOffset:n,inverted:h,spacing:l,renderer:d}=this,c=Math[h?"floor":"round"];if(this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=h?o:s,this.plotSizeY=h?s:o,this.spacingBox=d.spacingBox={x:l[3],y:l[0],width:a-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=d.plotBox={x:e,y:i,width:s,height:o},n&&(this.clipBox={x:c(n[h?2:3]),y:c(n[+!!h]),width:c(this.plotSizeX-n[+!h]-n[h?2:3]),height:c(this.plotSizeY-n[+!!h]-n[h?3:2])}),!t){for(let t of this.axes)t.setAxisSize(),t.setAxisTranslation();d.alignElements()}A(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){A(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;["margin","spacing"].forEach(i=>{let s=e[i],o=F(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach((s,r)=>{t[i][r]=e[`${i}${s}`]??o[r]})}),i1.forEach((e,i)=>{t[e]=t.margin[i]??t.spacing[i]}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this,e=t.options.chart,{backgroundColor:i,plotBackgroundColor:s,plotBackgroundImage:o,plotBorderRadius:r=0,shadow:a}=e,{chartWidth:n,chartHeight:h,clipBox:l,clipOffset:d,clipRect:c,plotBGImage:p,plotBox:u,plotLeft:g,plotTop:m,plotWidth:f,plotHeight:x,renderer:y,styledMode:b}=t,v=t.chartBackground,M=t.plotBackground,w=t.plotBorder,k,C,T,S="animate";v||(t.chartBackground=v=y.rect().addClass("highcharts-background").add(),S="attr"),b?k=C=v.strokeWidth():(C=(k=e.borderWidth||0)+8*!!a,T={fill:i||"none"},(k||v["stroke-width"])&&(T.stroke=e.borderColor,T["stroke-width"]=k),v.attr(T).shadow(a)),v[S]({x:C/2,y:C/2,width:n-C-k%2,height:h-C-k%2,r:e.borderRadius}),S="animate",M||(S="attr",t.plotBackground=M=y.rect().addClass("highcharts-plot-background").add()),M[S]({...u,r:r}),!b&&(M.attr({fill:s||"none"}).shadow(e.plotShadow),o&&(p?(o!==p.attr("href")&&p.attr("href",o),p.animate(u)):t.plotBGImage=y.image(o,g,m,f,x).add())),c?c.animate({width:l.width,height:l.height}):t.clipRect=y.clipRect(l),S="animate",w||(S="attr",t.plotBorder=w=y.rect().addClass("highcharts-plot-border").attr({zIndex:1.5}).add()),w.attr(b?void 0:{stroke:e.plotBorderColor,"stroke-width":e.plotBorderWidth||0,fill:"none"})[S]({r:r});let P=w.strokeWidth(),L=H(w.crisp(u,-P));if(d&&!b){let t=d[0]-P/2,e=d[3]-P/2;L.x-=e,L.y-=t,L.width+=e+d[1]-P/2,L.height+=t+d[2]-P/2}w[S](L),["plotClipOuter","plotClipInner"].forEach((e,i)=>{let s=t[e],o=i?-P:P;s?.[r?S:"attr"]({x:L.x-o/2,y:L.y-o/2,width:L.width+o,height:L.height+o,r:r?r+o/2:0}),s?.parentGroup?.attr({display:r?"":"none"})}),t.isDirtyBox=!1,A(this,"afterDrawChartBox")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=i3[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=i3[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:s}=t.options,o=j(s)&&(":previous"===s?i[t.index-1]:e.get(s));o&&o.linkedParent!==t&&(o.linkedSeries.push(t),t.linkedParent=o,t.visible=t.options.visible??o.options.visible??t.visible)}),A(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,{axisLayoutRuns:s=2,plotBorderRadius:o}=this.options.chart,r=t=>{t.forEach(t=>{t.visible&&t.render()})},a=0,n=!0,h,l=0;for(let e of(o&&(this.plotClipOuter||(this.plotClipOuter=i.clipRect()),this.plotClipInner||(this.plotClipInner=i.clipRect())),this.setTitle(),A(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i,offset:s}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!e.isRadial){a=t.tickLength,e.createGroups();let o=new ek(e,0,"",!0),r=o.createLabel("x",i);if(o.destroy(),r&&(i.reserveSpace??!W(t.crossing))&&(a=r.getBBox().height+i.distance+Math.max(W(s)?s:0,0)),a){r?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-a,0);(n||h||s>1)&&l<s;){let e=this.plotWidth,i=this.plotHeight,s=[1.05,1.1];for(let e of t){let t=+(e.horiz||0);if(0===l){e.setScale();let i=e.tickPositions?.info?.match;i&&(s[t]=Math.min(i,s[t]))}else(t&&n||!t&&h)&&e.setTickInterval(!0)}0===l?this.getAxisMargins():this.getMargins(),n=e/this.plotWidth>(l?1:s[1]),h=i/this.plotHeight>(l?1:s[0]),l++}this.drawChartBox(),this.hasCartesianSeries?r(t):e?.length&&r(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=H(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0,i.useHTML).addClass("highcharts-credits").on("click",function(t){A(e,"creditsClick",t,()=>{i.href&&(i2.location.href=i.href)})}).attr({align:i.position.align,zIndex:8}),i.events?.click&&p(e,"creditsClick",i.events.click),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(A(e,"destroy"),e.renderer.forExport?T(iQ,e):iQ[e.index]=void 0,h.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),J(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(t=>{e[t]=e[t]?.destroy?.()}),o&&(o.innerHTML=tN.emptyHTML,J(o),r&&k(o)),V(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=X(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),A(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.asyncCounter||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),A(this,"load"),A(this,"render"),M(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.warnIfCSSNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;t&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:"img","aria-label":(e?.element.textContent||"").replace(/</g,"&lt;")}),t.accessibility&&!1===t.accessibility.enabled||ta('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}warnIfCSSNotLoaded(){this.styledMode&&"0"!==i2.getComputedStyle(this.container).zIndex&&ta(35,!1,this)}addSeries(t,e,i){let s,o=this;return t&&(e=e??!0,A(o,"addSeries",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),A(o,"afterAddSeries",{series:s}),e&&o.redraw(i)})),s}addAxis(t,e,i,s){return this.createAxis(e?"xAxis":"yAxis",{axis:t,redraw:i,animation:s})}addColorAxis(t,e,i){return this.createAxis("colorAxis",{axis:t,redraw:e,animation:i})}createAxis(t,e){let i=new eI(this,e.axis,t);return(e.redraw??!0)&&this.redraw(e.animation),i}showLoading(t){let e=this,i=e.options,s=i.loading,o=s?.style??{},r=function(){a&&v(a,{left:o.left??e.plotLeft+"px",top:o.top??e.plotTop+"px",width:o.width??e.plotWidth+"px",height:o.height??e.plotHeight+"px"})},a=e.loadingDiv,n=e.loadingSpan;a||(e.loadingDiv=a=y("div",{className:"highcharts-loading highcharts-loading-hidden"},null,e.container)),n||(e.loadingSpan=n=y("span",{className:"highcharts-loading-inner"},null,a),p(e,"redraw",r)),a.className="highcharts-loading",tN.setElementHTML(n,t??i.lang.loading??""),!e.styledMode&&(v(a,S(o,{zIndex:10})),v(n,s?.labelStyle??{}),e.loadingShown||(v(a,{opacity:0,display:""}),tL(a,{opacity:o.opacity??.5},{duration:s?.showDuration??0}))),e.loadingShown=!0,r()}hideLoading(){let t=this.options,e=this.loadingDiv;e&&(e.className="highcharts-loading highcharts-loading-hidden",this.styledMode||tL(e,{opacity:0},{duration:t.loading?.hideDuration??100,complete:function(){v(e,{display:"none"})}})),this.loadingShown=!1}update(t,e,i,s){let o,r,a,n=this,h={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},l=t.isResponsiveOptions,d=[],c={options:t=C(t,n.options),hasChanged:!!Object.keys(t).length};if(A(n,"update",c),!c.hasChanged)return;l||n.setResponsive(!1,!0),n.userOptions=H(n.userOptions,t);let p=t.chart;p&&(H(!0,n.options.chart,p),this.setZoomOptions(),"className"in p&&n.setClassName(p.className),("inverted"in p||"polar"in p||"type"in p)&&(n.propFromSeries(),o=!0),"alignTicks"in p&&(o=!0),"events"in p&&iJ(this,p),V(p,function(t,e){-1!==n.propsRequireUpdateSeries.indexOf("chart."+e)&&(r=!0),-1!==n.propsRequireDirtyBox.indexOf(e)&&(n.isDirtyBox=!0),-1!==n.propsRequireReflow.indexOf(e)&&(n.isDirtyBox=!0,l||(a=!0))}),!n.styledMode&&p.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),V(t,function(e,i){n[i]&&"function"==typeof n[i].update?n[i].update(e,!1):"function"==typeof n[h[i]]?n[h[i]](e):"colors"!==i&&-1===n.collectionsWithUpdate.indexOf(i)&&H(!0,n.options[i],t[i]),"chart"!==i&&-1!==n.propsRequireUpdateSeries.indexOf(i)&&(r=!0)}),this.collectionsWithUpdate.forEach(e=>{t[e]&&(Q(t[e]).forEach((t,s)=>{let o;if(!t)return;let r=M(t.id);r&&(o=n.get(t.id)),!o&&n[e]&&(o=n[e][t.index??s])&&(r&&M(o.options.id)||o.options.isInternal)&&(o=void 0),o&&o.coll===e&&(o.update(t,!1),i&&(o.touched=!0)),!o&&i&&n.collectionsWithInit[e]&&(n.collectionsWithInit[e][0].apply(n,[t].concat(n.collectionsWithInit[e][1]||[]).concat([!1])).touched=!0)}),i&&n[e].forEach(t=>{t.touched||t.options.isInternal?delete t.touched:d.push(t)}))}),d.forEach(t=>{t.chart&&t.remove&&t.remove(!1)}),o&&n.axes.forEach(function(t){t.update({},!1)}),r&&n.series.forEach(t=>{t.chart&&t.update({},!1)});let u=p?.width,g=p&&(j(p.height)?K(p.height,u||n.chartWidth):p.height);a||W(u)&&u!==n.chartWidth||W(g)&&g!==n.chartHeight?n.setSize(u,g,s):(e??!0)&&n.redraw(s),A(n,"afterUpdate",{options:t,redraw:e,animation:s})}setSubtitle(t,e){this.applyDescription("subtitle",t),this.layOutTitles(e)}setCaption(t,e){this.applyDescription("caption",t),this.layOutTitles(e)}showResetZoom(){let t=this,e=t.options.lang,i=t.zooming.resetButton,s=i.theme,o="chart"===i.relativeTo||"spacingBox"===i.relativeTo?void 0:"plotBox";A(this,"beforeShowResetZoom",void 0,()=>{t.resetZoomButton=t.renderer.button(e.resetZoom,0,0,()=>t.zoomOut(),s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(i.position,!1,o)}),A(this,"afterShowResetZoom")}zoomOut(){A(this,"selection",{resetSelection:!0},()=>this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),A(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),v(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n,allowResetButton:h=!0}=t,{time:l}=this;this.hoverPoints?.forEach(t=>t.setState()),A(this,"transform",t);let d=t.hasZoomed||!1,c,p;for(let t of e){let{horiz:e,len:u,minPointOffset:g=0,options:m,reversed:f}=t,x=e?"width":"height",y=e?"x":"y",b=a[x]??t.len,v=s[x]??t.len,w=10>Math.abs(b)?1:b/v,k=(s[y]||0)+v/2-t.pos,C=k-((a[y]??t.pos)+b/2-t.pos)/w,T=e&&!f||!e&&f?1:-1;if(!o&&(k<0||k>t.len))continue;let P=r||t.chart.polar||t.isOrdinal&&w<=1?0:g*T||0,A=t.toValue(C,!0),L=t.toValue(C+u/w,!0),O=A+P,E=L-P,I=t.allExtremes;if(O>E&&([O,E]=[E,O]),1===w&&!o&&"yAxis"===t.coll&&!I){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(e.pointValKey||"y")||[],!0);I??(I={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),W(t.dataMin)&&W(t.dataMax)&&(I.dataMin=Math.min(t.dataMin,I.dataMin),I.dataMax=Math.max(t.dataMax,I.dataMax))}t.allExtremes=I}let{dataMin:D,dataMax:B,min:z,max:N}=S(t.getExtremes(),I||{}),R=l.parse(m.min),j=l.parse(m.max),X=D??R,G=B??j,F=E-O,H=t.categories?0:Math.min(F,G-X),Y=X-H*(M(R)?0:m.minPadding),V=G+H*(M(j)?0:m.maxPadding),U=t.allowZoomOutside||1===w||"zoom"!==n&&w>1,$=Math.min(R??Y,Y,U?z:Y),Z=Math.max(j??V,V,U?N:V);(!t.isOrdinal||1!==w||o)&&(O<$&&(O=$,w>=1&&(E=O+F)),E>Z&&(E=Z,w>=1&&(O=E-F)),(o||t.series.length&&(r||(O!==z||E!==N)&&O>=$&&E<=Z))&&(r?r[t.coll].push({axis:t,min:Math.min(A,L),max:Math.max(A,L)}):(t.isPanning="zoom"!==n&&"drop"!==n,t.isPanning&&"mousewheel"!==n&&(p=!0),"drop"!==n&&t.setExtremes(o?void 0:O,o?void 0:E,!1,!1,{move:C,trigger:n,scale:w}),!o&&(O>$||E<Z)&&(c=h)),d=!0),this.hasCartesianSeries||o||(c=h),i&&(this[e?"mouseDownX":"mouseDownY"]=i[e?"chartX":"chartY"]))}return d&&(r?A(this,"selection",r,()=>{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}S(i5.prototype,{callbacks:[],collectionsWithInit:{xAxis:[i5.prototype.addAxis,[!0]],yAxis:[i5.prototype.addAxis,[!1]],series:[i5.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderRadius","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let i6=i5,{composed:i9}=h;function i8(){(this.scrollablePixelsX||this.scrollablePixelsY)&&!this.scrollablePlotArea&&(this.scrollablePlotArea=new i7(this)),this.scrollablePlotArea?.applyFixed()}function i4(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class i7{static compose(t,e,i){_(i9,"ScrollablePlotArea")&&(p(t,"afterInit",i4),p(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),p(e,"render",i8),p(i,"show",i4))}static afterSetSize(t,e){let i,s,o,{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport)if(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=H(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),M(s)&&(t.scrollablePlotBox=H(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),M(o)){if(!e.skipAxes)for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}else delete t.scrollablePlotBox}constructor(t){let e;const i=t.options.chart,s=i.scrollablePlotArea||{},o=this.moveFixedElements.bind(this),r={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(r.overflowX="auto"),t.scrollablePixelsY&&(r.overflowY="auto"),this.chart=t;const a=this.parentDiv=y("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),n=this.scrollingContainer=y("div",{className:"highcharts-scrolling"},r,a),h=this.innerContainer=y("div",{className:"highcharts-inner-container"},void 0,n),l=this.fixedDiv=y("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),d=this.fixedRenderer=new em(l,t.chartWidth,t.chartHeight,i.style);this.mask=d.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":s.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),n.parentNode.insertBefore(l,n),v(t.renderTo,{overflow:"visible"}),p(t,"afterShowResetZoom",o),p(t,"afterApplyDrilldown",o),p(t,"afterLayOutTitles",o),p(n,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),h.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:m=0}=t.options.chart.scrollablePlotArea||{},f=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),tO(t.container),v(n,{width:`${f}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:f,height:x,viewBox:["0 0",f,x].join(" ")}),t.chartBackground?.attr({width:f,height:x}),v(s,{width:`${r}px`,height:`${a}px`}),M(i)||(s.scrollLeft=p*g,s.scrollTop=u*m);let y=d-o[0]-1,b=l-o[3]-1,w=d+h+o[2]+1,k=l+c+o[1]+1,C=l+c-p,T=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,w],["L",0,w],["Z"],["M",C,y],["L",r,y],["L",r,w],["L",C,w],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,T],["L",b,a],["L",k,a],["L",k,T],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=i7.fixedSelectors.slice();if(s&&!i?t=".highcharts-yaxis":s&&i||o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])_(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])T(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}i7.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:st}=tY,{series:se}=iB,si=class{constructor(t,e,i,s,o){const r=t.chart.inverted,a=t.reversed;this.axis=t;const n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){w(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=(s?st(s,this,e):i.formatter?.call(this,this))||"";if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:i.padding??5,visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,A(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i=(l.overflow??"justify")==="justify",s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&se.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*L(l.textAlign||"center"),rotationOriginY:t.height/2}),((!i&&l.crop)??!0)&&(s=W(h.x)&&W(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}A(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*L(i)-1),y:t.height/2*2*(1-L(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:s??this.total??0,l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=(o??d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||W(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:a,height:p}}},{series:{prototype:ss}}=iB;function so(){let t=this.inverted;this.axes.forEach(t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis?.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,e.options.stack??"",t?i.top:i.left,t?i.height:i.width].join(","))})}function sr(){let t=this.stacking;if(t){let e=t.stacks;V(e,(t,i)=>{w(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function sa(){this.stacking||(this.stacking=new sp(this))}function sn(t,e,i,s){return!M(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function sh(){let t,e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function sl(t,e,i){let s=e.total?100/e.total:0;t[0]=x(t[0]*s),t[1]=x(t[1]*s),this.stackedYData[i]=t[1]}function sd(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?ss.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function sc(t,e){let i,s,o,r,a,n,h,l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,m=g.threshold||0,f=g.startFromThreshold?m:0,y=g.stack,b=e?`${this.type},${l}`:this.stackKey||"",v="-"+b,w=this.negStacks,k=t.stacking,C=k.stacks,T=k.oldStacks;for(k.stacksTouched+=1,h=0;h<u;h++){let e=d[h]||0,u=c[h],g=W(u)&&u||0;n=(i=this.getStackIndicator(i,e,this.index)).key||"",C[a=(s=w&&g<(f?0:m))?v:b]||(C[a]={}),C[a][e]||(T[a]?.[e]?(C[a][e]=T[a][e],C[a][e].total=null):C[a][e]=new si(t,t.options.stackLabels,!!s,e,y)),o=C[a][e],null!==u?(o.points[n]=o.points[this.index]=[o.cumulative??f],M(o.cumulative)||(o.base=n),o.touched=k.stacksTouched,i.index>0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?b:v,S=w&&C[r]?.[e]?(r=C[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):x(S+Math.abs(g))):"group"===l?W(u)&&S++:S=x(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=x((o.cumulative??f)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class sp{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e<a;e++)s[e].modifyStacks();A(i,"afterBuildStacks")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,V(this.stacks,t=>{V(t,t=>{t.cumulative=t.total})}))}resetStacks(){V(this.stacks,t=>{V(t,(e,i)=>{W(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[i]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){let t=this.axis,e=t.chart,i=e.renderer,s=this.stacks,o=tA(e,t.options.stackLabels?.animation||!1),r=this.stackTotalGroup=this.stackTotalGroup||i.g("stack-labels").attr({zIndex:6,opacity:0}).add();r.translate(e.plotLeft,e.plotTop),V(s,t=>{V(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(io||(io={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(p(t,"init",sa),p(t,"destroy",sr),s.getStacks=so,o.getStackIndicator=sn,o.modifyStacks=sh,o.percentStacker=sl,o.setGroupedPoints=sd,o.setStackedPoints=sc)};let su=io;class sg extends iF{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;if(a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"var(--highcharts-neutral-color-20)","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r),t.shadow)){let e=this.chart.inverted,i={filterUnits:"userSpaceOnUse"},s=F(t.shadow)?H(e?{}:i,t.shadow):!!e||i;a.shadow(s)}a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,o.nullInteraction||!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c,p=l.plotX,u=l.plotY,g=t[d-1],m=l.isNull||"number"!=typeof u;(l.leftCliff||g?.rightCliff)&&!i&&(n=!0),m&&!M(e)&&d>0?n=!o.connectNulls:m&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}sg.defaultOptions=H(iF.defaultOptions,{legendSymbol:"lineMarker"}),iB.registerSeriesType("line",sg);let{seriesTypes:{line:sm}}=iB;class sf extends sm{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s,o=sm.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=r.connectNulls??"percent"===a,m=function(i,s,o){let r=t[i],g=t[s],m=a&&c[r.x].points[d],f=r[o+"Null"]||0,x=r[o+"Cliff"]||0,y,b,v=!0;m&&(x||f)?(y=(f?m[0]:m[1])+x,b=m[0]+x,v=!!f):!a&&g&&(g.isNull||!M(g.plotY))&&(y=b=p),void 0!==y&&(l.push({plotX:e,plotY:null===y?u:n.getThreshold(y),isNull:v,isCliff:!0}),h.push({plotX:e,plotY:null===b?u:n.getThreshold(b),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o<r;++o)a||(t[o].leftCliff=t[o].rightCliff=t[o].leftNull=t[o].rightNull=void 0),i=t[o].isNull||!M(t[o].plotY),e=t[o].rectPlotX??t[o].plotX,s=a?t[o].yBottom??u:u,(!i||g)&&(g||m(o,o-1,"left"),i&&!a&&g||(l.push(t[o]),h.push({x:o,plotX:e,plotY:s})),g||m(o,o+1,"right"));let f=o.call(this,l,!0,!0);h.reversed=!0;let x=o.call(this,h,!0,!0),y=x[0];y&&"M"===y[0]&&(x[0]=["L",y[1],y[2]]);let b=f.concat(x);b.length&&b.push(["Z"]);let v=o.call(this,l,!1,g);return this.chart.series.length>1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=f.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e),p=r.getThreshold(e.options.threshold||0);if(t=t||this.points,this.options.stacking){for(let e=0;e<t.length;e++)t[e].leftNull=t[e].rightNull=void 0,n[t[e].x]=t[e];V(a,function(t,e){null!==t.total&&s.push(e)}),s.sort(function(t,e){return t-e});let u=h.map(t=>t.visible);s.forEach(function(t,g){let m=0,f,x;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[g+i]],p=0;if(r){let i=c;for(;i>=0&&i<l;){let s=h[i].index;!(f=r.points[s])&&(s===e.index?n[t][o]=!0:u[i]&&(x=a[t].points[s])&&(p-=x[1]-x[0])),i+=d}}n[t][1===i?"rightCliff":"leftCliff"]=p});else{let e=c;for(;e>=0&&e<l;){let i=h[e].index;if(f=a[t].points[i]){m=f[1];break}e+=d}m||(m=0);let s=r.positiveValuesOnly&&m<=0?p:r.translate(m,!1,!0,!1,!0);i.push({isNull:!0,plotX:o.translate(t,!1,!1,!1,!0),x:t,plotY:s,yBottom:s})}})}return i}}sf.defaultOptions=H(sm.defaultOptions,{threshold:0,legendSymbol:"areaMarker"}),S(sf.prototype,{singleStacks:!1}),iB.registerSeriesType("area",sf);let{line:sx}=iB.seriesTypes;class sy extends sx{getPointSpline(t,e,i){let s,o,r,a,n=e.plotX||0,h=e.plotY||0,l=t[i-1],d=t[i+1];function c(t){return t&&!t.isNull&&!1!==t.doCurve&&!e.isCliff}if(c(l)&&c(d)){let t=l.plotX||0,i=l.plotY||0,c=d.plotX||0,p=d.plotY||0,u=0;s=(1.5*n+t)/2.5,o=(1.5*h+i)/2.5,r=(1.5*n+c)/2.5,a=(1.5*h+p)/2.5,r!==s&&(u=(a-o)*(r-n)/(r-s)+h-a),o+=u,a+=u,o>i&&o>h?(o=Math.max(i,h),a=2*h-o):o<i&&o<h&&(o=Math.min(i,h),a=2*h-o),a>p&&a>h?(a=Math.max(p,h),o=2*h-a):a<p&&a<h&&(a=Math.min(p,h),o=2*h-a),e.rightContX=r,e.rightContY=a,e.controlPoints={low:[s,o],high:[r,a]}}let p=["C",l.rightContX??l.plotX??0,l.rightContY??l.plotY??0,s??n??0,o??h??0,n,h];return l.rightContX=l.rightContY=void 0,p}}sy.defaultOptions=H(sx.defaultOptions),iB.registerSeriesType("spline",sy);let sb=sy,{area:sv,area:{prototype:sM}}=iB.seriesTypes;class sw extends sb{}sw.defaultOptions=H(sb.defaultOptions,sv.defaultOptions),S(sw.prototype,{getGraphPath:sM.getGraphPath,getStackPoints:sM.getStackPoints,drawGraph:sM.drawGraph}),iB.registerSeriesType("areaspline",sw);let{parse:sk}=tw,{noop:sC}=h;class sT extends iF{animate(t){let e,i,s=this,o=this.yAxis,r=o.pos,a=o.reversed,n=s.options,{clipOffset:h,inverted:l}=this.chart,d={},c=l?"translateX":"translateY";t&&h?(d.scaleY=.001,i=f(o.toPixels(n.threshold||0),r,r+o.len),l?d.translateX=(i+=a?-Math.floor(h[+!!l]):Math.ceil(h[l?3:2]))-o.len:d.translateY=i+=a?Math.ceil(h[+!!l]):-Math.floor(h[l?3:2]),s.clipBox&&s.setClip(),s.group.attr(d)):(e=Number(s.group.attr(c)),s.group.animate({scaleY:1},S(tP(s.options.animation),{step:function(t,i){s.group&&(d[c]=e+i.pos*(r-e),s.group.attr(d))}})))}init(t,e){super.init.apply(this,arguments);let i=this;(t=i.chart).hasRendered&&t.series.forEach(function(t){t.type===i.type&&(t.isDirty=!0)})}getColumnMetrics(){let t=this,e=t.options,i=t.xAxis,s=t.yAxis,o=i.options.reversedStacks,r=i.reversed&&!o||!i.reversed&&o,a={},n,h=0;!1===e.grouping?h=1:t.chart.series.forEach(function(e){let i,o=e.yAxis,r=e.options;e.type===t.type&&e.reserveSpace()&&s.len===o.len&&s.pos===o.pos&&(r.stacking&&"group"!==r.stacking?(void 0===a[n=e.stackKey]&&(a[n]=h++),i=a[n]):!1!==r.grouping&&(i=h++),e.columnIndex=i)});let l=Math.min(Math.abs(i.transA)*(!i.brokenAxis?.hasBreaks&&i.ordinal?.slope||e.pointRange||i.closestPointRange||i.tickInterval||1),i.len),d=l*e.groupPadding,c=(l-2*d)/(h||1),p=Math.min(e.maxPointWidth||i.len,e.pointWidth??c*(1-2*e.pointPadding)),u=(t.columnIndex||0)+ +!!r;return t.columnMetrics={width:p,offset:(c-p)/2+(d+u*c-l/2)*(r?-1:1),paddedWidth:c,columnCount:h},t.columnMetrics}crispCol(t,e,i,s){let o=this.borderWidth,r=this.chart.inverted;return s=b(e+s,o,r)-(e=b(e,o,r)),this.options.crisp&&(i=b(t+i,o)-(t=b(t,o))),{x:t,y:e,width:i,height:s}}adjustForMissingColumns(t,e,i,s){if(!i.isNull&&s.columnCount>1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;V(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&X(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(M(s)){if(W(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=i.borderWidth??+!s,r=t.xAxis,a=t.yAxis,n=i.threshold,h=i.minPointLength??5,l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),iF.prototype.translate.apply(t),t.points.concat(t.condemnedPoints).forEach(function(s){let o=s.yBottom??g,x=999+Math.abs(o),y=s.plotX||0,b=f(s.plotY,-x,a.len+x),v,w=Math.min(b,o),k=Math.max(b,o)-w,C=d,T=y+c,S=m;h&&Math.abs(k)<h&&(k=h,v=!a.reversed&&!s.negative||a.reversed&&s.negative,W(n)&&W(u)&&s.y===n&&u<=n&&(a.min||0)<n&&(p!==u||(a.max||0)<=n)&&(v=!v,s.negative=!s.negative),w=Math.abs(w-g)>h?o-(v?h:0):g-(v?h:0)),M(s.options.pointWidth)&&(T-=Math.round(((C=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(T=t.adjustForMissingColumns(T,C,s,l)),s.barX=T,s.pointWidth=C,s.tooltipPos=e.inverted?[f(a.len+a.pos-e.plotLeft-b,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-T-S/2,k]:[r.left-e.plotLeft+T+S/2,f(b+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(T,w,S,s.isNull?0:k)}),A(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t?.color||this.color,d=t?.[o]||i[o]||l,c=t?.options.dashStyle||i.dashStyle,p=t?.[r]??i[r]??this[r]??1,u=t?.isNull&&i.nullInteraction?0:t?.opacity??i.opacity??1;t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=H(i.states?.[e],t.options.states?.[e]||{})).brightness,l=a.color||void 0!==h&&sk(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=a.opacity??u);let g={fill:l,stroke:d,"stroke-width":p,opacity:t?.condemned?0:u};return c&&(g.dashstyle=c),g}drawPoints(t){let e;t||(t=this.points.concat(this.condemnedPoints));let i=this,s=this.chart,o=i.options,r=o.nullInteraction,{styledMode:a,renderer:n}=s,h=o.animationLimit||250;t.forEach(function(t){let l=t.plotY,d=t.graphic,c=!!d,p=d&&s.pointCount<h?"animate":"attr";if(W(l)&&(null!==t.y||r)){if(e=t.shapeArgs,d&&t.hasNewShapeType()&&(d=d.destroy()),!d){let o=e;t.origin&&s.pointCount<h&&(o=H(e,t.getOrigin(t.origin,e)),a||(o.opacity=0,o["stroke-width"]=0),c=!0,p="animate"),t.graphic=d=n[t.shapeType](o).add(t.group||i.group)}c&&d[p](H(e)),a||d[p](i.pointAttribs(t,t.selected?"select":"")).shadow(!1!==t.allowShadow&&o.shadow),d.addClass(t.getClassName(),!0).attr({visibility:t.visible?"inherit":"hidden"})}else d&&(t.graphic=d.destroy())})}drawTracker(t=this.points){let e,i=this,s=i.chart,o=s.pointer,r=function(t){o?.normalize(t);let e=o?.getPointFromEvent(t);o&&e&&i.options.enableMouseTracking&&(s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})||i.allowOutsidePlotInteraction&&o?.inClass(t.target,"highcharts-point")||o?.inClass(t.target,"highcharts-data-label"))&&(o.isDirectTouch=!0,e.onMouseOver(t))};t.forEach(function(t){e=X(t.dataLabels)?t.dataLabels:t.dataLabel?[t.dataLabel]:[],t.graphic&&(t.graphic.element.point=t),e.forEach(function(e){(e.div||e.element).point=t})}),i._hasTracking||(i.trackerGroups?.reduce((t,e)=>("dataLabelsGroup"===e?t.push(...i.dataLabelsGroups||[]):t.push(i[e]),t),[]).forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(t){o?.onTrackerMouseOut(t)}).on("touchstart",r),!s.styledMode&&i.options.cursor&&t.css({cursor:i.options.cursor}))}),i._hasTracking=!0),A(this,"afterDrawTracker")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(e){e.type===t.type&&(e.isDirty=!0)}),iF.prototype.remove.apply(t,arguments)}}sT.defaultOptions=H(iF.defaultOptions,{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.2},select:{color:"var(--highcharts-neutral-color-20)",borderColor:"var(--highcharts-neutral-color-100)"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"var(--highcharts-background-color)"}),S(sT.prototype,{directTouch:!0,getSymbol:sC,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),iB.registerSeriesType("column",sT);let sS=sT,{format:sP}=tY;!function(t){function e(){return h(this).some(t=>t?.enabled)}function i(t,e,i,s,o){let{chart:r}=this,a=this.isCartesian&&r.inverted,{condemned:n,origin:h,plotX:l,plotY:d}=t,{crop:c=!0,distance:p,overflow:u="justify",rotation:g=0}=i,m=L(i.align),f=L(i.verticalAlign),x=t.pos(),y=M(l)&&M(d)&&r.isInsidePlot(l,Math.round(d),{inverted:a,paneCoordinates:!0,series:this}),b=this.visible&&t.visible&&M(l)&&(this.forceDL||n||y||(i.inside??!!this.options.stacking)&&s&&r.isInsidePlot(l,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this}));if(x){let l=e.getBBox(),d=e.getBBox(void 0,0);s=S({x:x[0],y:Math.round(x[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[a?"x":"y"]=0,s[a?"width":"height"]=this.yAxis?.len||0),S(i,{width:l.width,height:l.height});let y=0,v=0;W(p)&&!i.inside&&(y=p*(1-2*m),v=p*(1-2*f)),e.align(H(i,{x:(i.x||0)+y,y:(i.y||0)+v,width:d.width,height:d.height}),!1,s,!1),e.distX=y,e.distY=v,e.alignAttr.x+=m*(d.width-l.width),e.alignAttr.y+=f*(d.height-l.height);let M=e.alignAttr.x+(l.width-d.width)/2,w=e.alignAttr.y+(l.height-d.height)/2;if(h){let i=t.pos(!1,h.x,h.y);if(i){let s=[i[0]-x[0],i[1]-x[1]];(this.is("column")||t.plotHigh)&&(s[+!a]=0),e.attr({x:M+s[0],y:w+s[1],opacity:.01}),e.placed=!0,o=!1}}let k={"text-align":e.alignAttr["text-align"]||"center",x:M,y:w,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2};if((n||!b)&&(k.opacity=0),e[e.placed?"animate":"attr"](k),0===g&&!n&&"justify"===u&&b&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(c&&!n){let{x:t,y:i}=e.alignAttr;b=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!g&&e[o?"attr":"animate"]({anchorX:x[0],anchorY:x[1]})}e[o?"attr":"animate"]({visibility:b?"inherit":"hidden"}),e.placed=b}function s(t,e){A(this,"initDataLabelsGroup",{index:t,zIndex:e?.zIndex}),this.dataLabelsGroup=this.dataLabelsGroups?.[t];let i=this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",e?.zIndex??6,this.dataLabelsParentGroups?.[t]);return this.dataLabelsGroups||(this.dataLabelsGroups=[]),this.dataLabelsGroups[t]=i,this.dataLabelsGroup=this.dataLabelsGroups[0],i}function o(t,e,i){let s=!!this.hasRendered,o=this.initDataLabelsGroup(t,i).attr({opacity:+s});return!s&&o&&(this.visible&&o.show(),this.options.animation?o.animate({opacity:1},e):o.attr({opacity:1})),o}function r(t){t=t||this.points;let e=this,i=e.chart,s=e.options,o=i.renderer,{backgroundColor:r,plotBackgroundColor:a}=i.options.chart,l=o.getContrast(j(a)&&a||j(r)&&r||"var(--highcharts-background-color)"),d=[],c=h(e),{animation:p,defer:u}=c[0],g=u?tA(i,p,e):{defer:0,duration:0};A(this,"drawDataLabels"),e.hasDataLabels?.()&&t.concat(e.condemnedPoints).forEach(t=>{let r=t.dataLabels||[],a=t.color||e.color;Q(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let c=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s<o||">="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o||!1}return!0}(t,n),{backgroundColor:p,borderColor:u,distance:m,style:f={}}=n,x=Q(n.padding||0),y,b,v,w={},k=r[h],C=!k,T;if(c&&(b=M(y=n[t.formatPrefix+"Format"]??n.format)?sP(y,t,i):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n,t),v=n.rotation,!i.styledMode&&(f.color=(j(n.color)?n.color:void 0)??f.color??(j(e.color)?e.color:void 0)??"var(--highcharts-neutral-color-100)","contrast"===f.color?("none"!==p&&(T=p),t.contrastColor=o.getContrast("auto"!==T&&"contrast"!==T&&j(T)&&T||(j(a)?a:"")),f.color=T&&"contrast"!==T||n.inside||0>Z(m||0)||s.stacking?t.contrastColor:l):delete t.contrastColor,s.cursor&&(f.cursor=s.cursor)),w={r:n.borderRadius??3,rotation:v,padding:x[0],paddingLeft:x[3%x.length],paddingRight:x[1%x.length],zIndex:1},i.styledMode||(w.fill="auto"===p?t.color:p,w.stroke="auto"===u?t.color:u,w["stroke-width"]=n.borderWidth),V(w,(t,e)=>{void 0===t&&delete w[e]})),!k||c&&M(b)&&!!(k.div||k.text?.foreignObject)==!!n.useHTML&&(k.rotation&&n.rotation||k.rotation===n.rotation)||(k=void 0,C=!0),c&&M(b)&&""!==b&&(k?w.text=b:(k=o.label(b,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),k)){k.options=n,k.attr(w),i.styledMode?f.width&&k.css({width:f.width,textOverflow:f.textOverflow,whiteSpace:f.whiteSpace}):k.css(f).shadow(n.shadow),A(k,"beforeAddingDataLabel",{labelOptions:n,point:t});let s=d[h]=d[h]||this.initDataLabels(h,g,n);k.added||k.add(s),e.alignDataLabel(t,k,n,void 0,C),k.isActive=!0,r[h]&&r[h]!==k&&r[h].destroy(),r[h]=k}});let h=r.length;for(;h--;)r[h]?.isActive?r[h].isActive=!1:(r[h]?.destroy(),r.splice(h,1));t.dataLabel=r[0],t.dataLabels=r}),A(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,{align:n,verticalAlign:h}=e,{distX:l=0,distY:d=0}=t,c=t.box?0:t.padding||0,p=a.inverted?this.yAxis:this.xAxis,u=p?p.left-a.plotLeft:0,g=a.inverted?this.xAxis:this.yAxis,m=g?g.top-a.plotTop:0,{x:f=0,y:x=0}=e,y,b,v;return(y=(i.x||0)-l+c+u)<0&&("right"===n&&f>=0?(e.align="left",e.inside=!0,f-=l):f-=y,b=!0),(y=(i.x||0)+s.width-l-c+u)>a.plotWidth&&("left"===n&&f<=0?(e.align="right",e.inside=!0,f-=l):f+=a.plotWidth-y,b=!0),(y=(i.y||0)-d+c+m)<0&&("bottom"===h&&x>=0?(e.verticalAlign="top",e.inside=!0,x-=d):x-=y,v=!0),(y=(i.y||0)+s.height-d-c+m)>a.plotHeight&&("top"===h&&x<=0?(e.verticalAlign="bottom",e.inside=!0,x-=d):x+=a.plotHeight-y,v=!0),(b||v)&&(e.x=b?f:f+l,e.y=v?x:x+d,t.placed=!r,t.align(e,void 0,o)),b||v}function n(t,e){let i=[],s;if(X(t)&&!X(e))i=t.map(function(t){return H(t,e)});else if(X(e)&&!X(t))i=e.map(function(e){return H(t,e)});else if(X(t)||X(e)){if(X(t)&&X(e))for(s=Math.max(t.length,e.length);s--;)i[s]=H(t[s],e[s])}else i=H(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return Q(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}t.compose=function(t){let h=t.prototype;h.initDataLabels||(h.initDataLabels=o,h.initDataLabelsGroup=s,h.alignDataLabel=i,h.drawDataLabels=r,h.justifyDataLabel=a,h.mergeArrays=n,h.hasDataLabels=e)}}(ir||(ir={}));let sA=ir,{composed:sL}=h,{series:sO}=iB;function sE(t,e,i,s,o){let{chart:r,options:a}=this,n=r.inverted,h=this.xAxis?.len||r.plotSizeX||0,l=this.yAxis?.len||r.plotSizeY||0,d=t.dlBox||t.shapeArgs,c=t.below??(t.plotY||0)>(this.translatedThreshold??l),p=i.inside??!!a.stacking;if(d){if(s=H(d),"allow"!==i.overflow||!1!==i.crop||!1!==a.clip){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t<s.height-1&&(s.height-=t)}n&&(s={x:l-s.y-s.height,y:h-s.x-s.width,width:s.height,height:s.width}),p||(n?(s.x+=c?0:s.width,s.width=0):(s.y+=c?s.height:0,s.height=0))}i.align??(i.align=!n||p?"center":c?"right":"left"),i.verticalAlign??(i.verticalAlign=n||p?"middle":c?"top":"bottom"),sO.prototype.alignDataLabel.call(this,t,e,i,s,o),i.inside&&t.contrastColor&&e.css({color:t.contrastColor})}(ia||(ia={})).compose=function(t){sA.compose(sO),_(sL,"ColumnDataLabel")&&(t.prototype.alignDataLabel=sE)};let sI=ia;class sD extends sS{}sD.defaultOptions=H(sS.defaultOptions,{}),S(sD.prototype,{inverted:!0}),iB.registerSeriesType("bar",sD);let{column:sB,line:sz}=iB.seriesTypes;class sN extends sz{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach((s,o)=>{["x","y"].forEach((r,a)=>{if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,h=t[`${r}Axis`];if(h&&!h.logarithmic){let t,l=e[r]*h.transA*(h.reversed?-1:1),d=(s[n]||0)-l,c=(s[n]||0)+l;s[n]=d+(c-d)*((t=1e4*Math.sin(o+a*i))-Math.floor(t)),"x"===r&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}sN.defaultOptions=H(sz.defaultOptions,{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),S(sN.prototype,{allowOutsidePlotInteraction:!0,drawTracker:sB.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),p(sN,"afterTranslate",function(){this.applyJitter()}),iB.registerSeriesType("scatter",sN);let{deg2rad:sR}=h;(ik=ih||(ih={})).getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[r?.[0]??"50%",r?.[1]??"50%",(l&&l<0?void 0:t.size)??"100%",(d&&d<0?void 0:t.innerSize||0)??"0%"];for(c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=K(p,[s,o,a,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),W(n)&&2*n<u[2]&&n>0&&(u[3]=u[2]-2*n),A(this,"afterGetCenter",{positions:u}),u},ik.getStartAndEndRadians=function(t,e){let i=W(t)?t:0,s=W(e)&&e>i&&e-i<360?e:i+360;return{start:sR*(i+-90),end:sR*(s+-90)}};let sW=ih;class sj extends e_{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);const s=t=>{this.slice("select"===t.type)};p(this,"select",s),p(this,"unselect",s)}isValid(){return W(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;tS(i,s.chart),e=e??!0,this.sliced=this.options.sliced=t??!this.sliced,s.options.data&&(s.options.data[s.data.indexOf(this)]=this.options),this.graphic?.animate(this.getTranslate())}}S(sj.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:m}=t,f=o.x;if(i.crookDistance){let t=K(i.crookDistance,1);f=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else f=n+(h-m)*Math.tan(s-Math.PI/2);let x=[["M",g,m]];return(u?f<=g&&f>=o.x:f>=g&&f<=o.x)&&x.push(["L",f,m]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:sX}=sW,{noop:sG}=h;class sF extends iF{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:t.startR??(e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:t4.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"var(--highcharts-neutral-color-20)"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getXPos(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(f((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?e?-5:5:0)}hasData(){return this.points.some(t=>t.visible)}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||H(!0,n,i),H(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){A(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=sX(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,u,g,m,f=0;for(t||(this.center=t=this.getCenter()),g=0;g<h;g++){m=a[g],l=o+f*r,m.isValid()&&(!n||m.visible)&&(f+=m.percentage/100),d=o+f*r;let e={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:l,end:d};m.shapeType="arc",m.shapeArgs=e,(c=(d+l)/2)>1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),m.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,m.tooltipPos=[t[0]+.7*p,t[1]+.7*u],m.half=+(c<-Math.PI/2||c>Math.PI/2),m.angle=c}A(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s<e;s++)(o=t[s]).isValid()&&(!i||o.visible)&&(r+=o.y);for(s=0,this.total=r;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}sF.defaultOptions=H(iF.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"var(--highcharts-background-color)",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),S(sF.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:sS.prototype.drawTracker,getCenter:sW.getCenter,getSymbol:sG,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:sS.prototype.pointAttribs,pointClass:sj,requireSorting:!1,searchPoint:sG,trackerGroups:["group","dataLabelsGroup"]}),iB.registerSeriesType("pie",sF);let{composed:sH,noop:sY}=h,{distribute:sV}=tV,{series:sU}=iB;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getXPos(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&s<i&&o>i&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,m,f,x=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),sU.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=K(o?.distance||0,s);0===i&&d[t.half].push(t),!M(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),x=Math.max(x,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],g,y,b=0,v;d&&(t.sortByAngle(e,a-.5),x>0&&(g=Math.max(0,l-h-x),y=Math.min(l+h+x,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),sV(u,v=y+b-g,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},g=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,w=(v-l.getBBox().height)/2,k=0,C=y,T="inherit";if(x){if(u&&M(g)&&x.distance>0&&(void 0===g.pos?T="hidden":(f=g.size,C=p.radialDistributionY(i,l))),d.justify)k=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":k=p.alignToConnectors(e,a,s,r);break;case"plotEdges":k=p.alignToPlotEdges(l,a,s,r);break;default:k=p.radialDistributionX(t,i,C-w,y,l)}if(x.attribs={visibility:T,align:x.alignment},x.posAttribs={x:k+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:C+(d.y||0)-v/2},x.computed.x=k,x.computed.y=C-w,d.crop??!0){let t;k-(m=l.getBBox().width)<b&&1===a?(t=Math.round(m-k+b),c[3]=Math.max(t,c[3])):k+m>s-b&&0===a&&(t=Math.round(k+m-s+b),c[1]=Math.max(t,c[1])),C-f/2<0?c[0]=Math.max(Math.round(-C+f/2),c[0]):C+f/2>o&&(c[2]=Math.max(Math.round(C+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===g(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{e.dataLabels?.forEach((s,o)=>{let{connectorColor:r,connectorWidth:a=1}=s.options||{},n=s.dataLabelPosition;if(W(a)){let h;u=s.connector,n&&n.distance>0?(h=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroups?.[o])),i.styledMode||u.attr({"stroke-width":a,stroke:r||e.color||"var(--highcharts-neutral-color-60)"}),u[h?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:n.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:t.options?.style?.textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=f(r,o,e[2]-Math.max(t[0],t[2])):(r=f(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r<e[2]?(e[2]=r,e[3]=Math.min(i.thickness?Math.max(0,r-2*i.thickness):Math.max(0,K(i.innerSize||0,r)),r),this.translate(e),this.drawDataLabels&&this.drawDataLabels()):a=!0),a}t.compose=function(t){if(sA.compose(sU),_(sH,"PieDataLabel")){let a=t.prototype;a.dataLabelPositioners=e,a.alignDataLabel=sY,a.drawDataLabels=s,a.getDataLabelPosition=i,a.placeDataLabels=o,a.verifyDataLabelOverflow=r}}}(il||(il={}));let s$=il;(iC=id||(id={})).getCenterOfPoints=function(t){let e=t.reduce((t,e)=>(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},iC.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},iC.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},iC.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;o<s;r=o++){let[s,n]=i[o],[h,l]=i[r];n>e!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a};let sZ=id,{pointInPolygon:s_}=sZ;function sK(t,e){let i,s=!1;return t&&(i=t.newOpacity,t.oldOpacity!==i&&(t.hasClass("highcharts-data-label")?(t[i?"removeClass":"addClass"]("highcharts-data-label-hidden"),s=!0,t[t.isOld||t.placed?"animate":"attr"]({opacity:i},void 0,function(){e.styledMode||t.css({pointerEvents:i?"auto":"none"})}),A(e,"afterHideOverlappingLabel")):t.attr({opacity:i})),t.isOld=!0),s}let{defaultOptions:sq}=ty,{noop:sJ}=h,sQ={radius:0,scope:"stack",where:void 0},s0=sJ,s1=sJ;function s2(t,e,i,s,o={}){let r=s0(t,e,i,s,o),{brStart:a=!0,brEnd:n=!0,innerR:h=0,r:l=i,start:d=0,end:c=0}=o;if(o.open||!o.borderRadius)return r;let p=c-d,u=Math.sin(p/2),g=Math.max(Math.min(K(s5(o.borderRadius).radius,l-h),(l-h)/2,l*u/(1+u)),0),m=Math.min(g,p/Math.PI*2*h),f=r.length-1;for(;f--;)(a||0!==f&&3!==f)&&(n||1!==f&&2!==f)&&!function(t,e,i){let s,o,r,a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=n?a-i:a+i,g=u?Math.asin(i/u):0,m=n?g:-g,f=Math.cos(g)*u;r?(h.start=l+m,s[1]=c+f*Math.cos(l),s[2]=p+f*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-m,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+f*Math.cos(d),p+f*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)<Math.PI?0:1}}(r,f,f>1?m:g);return r}function s3(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=sq.plotOptions?.[this.type]?.borderRadius,o=s5(t.borderRadius,F(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(K(o.radius,n),n/2,"all"===u?c/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),S(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function s5(t,e){return F(t)||(t={radius:t||0}),H(sQ,e,t)}function s6(){let t=s5(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=K(t.radius,(i.r||0)-(i.innerR||0)))}}function s9(t,e,i,s,o={}){let r=s1(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&l,0),g=Math.max(p&&d,0),m=[t+c,e],f=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],w=[t,e+c],k=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=k(c,c-u);m[0]-=t,f[0]+=t,x[1]=w[1]=e+c-u}if(s<c-u){let o=k(c,c-u-s);x[0]=y[0]=t+i-c+o,b[0]=Math.min(x[0],b[0]),v[0]=Math.max(y[0],v[0]),M[0]=w[0]=t+c-o,x[1]=w[1]=e+s}if(g){let t=k(p,p-g);b[0]+=t,v[0]-=t,y[1]=M[1]=e+s-p+g}if(s<p-g){let o=k(p,p-g-s);x[0]=y[0]=t+i-p+o,f[0]=Math.min(x[0],f[0]),m[0]=Math.max(y[0],m[0]),M[0]=w[0]=t+p-o,y[1]=M[1]=e}return r.length=0,r.push(["M",...m],["L",...f],["A",c,c,0,0,1,...x],["L",...y],["A",p,p,0,0,1,...b],["L",...v],["A",p,p,0,0,1,...M],["L",...w],["A",c,c,0,0,1,...m],["Z"]),r}function s8(t,e){let i=t.condition;(i.callback||function(){return this.chartWidth<=(i.maxWidth??Number.MAX_VALUE)&&this.chartHeight<=(i.maxHeight??Number.MAX_VALUE)&&this.chartWidth>=(i.minWidth??0)&&this.chartHeight>=(i.minHeight??0)}).call(this,this)&&e.push(t._id)}function s4(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=tl()),this.matchResponsiveRule(t,o)},this);let a=H(...o.map(t=>B(i?.rules||[],e=>e._id===t)).map(t=>t?.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s?.ruleIds;o!==n&&(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=C(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}(ic||(ic={})).compose=function(t){let e=t.prototype;return e.matchResponsiveRule||S(e,{matchResponsiveRule:s8,setResponsive:s4}),t};let s7=ic;h.AST=tN,h.Axis=eI,h.Chart=i6,h.Color=tw,h.DataLabel=sA,h.DataTable=e5,h.DataTableCore=e5,h.Fx=tT,h.HTMLElement=ey,h.Legend=i_,h.LegendSymbol=iO,h.PlotLineOrBand=eN,h.Point=e_,h.Pointer=e1,h.Series=iF,h.SeriesRegistry=iB,h.StackItem=si,h.SVGElement=tQ,h.SVGRenderer=em,h.Templating=tY,h.Tick=ek,h.Time=class extends tg{constructor(t,e){const i=ty.getOptions();super(t??i.time,e??i.lang)}},h.Tooltip=eV,h.addEvent=p,h.animObject=tP,h.animate=tL,h.arrayMax=g,h.arrayMin=u,h.attr=m,h.chart=i6.chart,h.clamp=f,h.color=tw.parse,h.correctFloat=x,h.createElement=y,h.css=v,h.crisp=b,h.dateFormat=tY.dateFormat,h.defaultOptions=ty.defaultOptions,h.defined=M,h.destroyObjectProperties=w,h.diffObjects=C,h.discardElement=k,h.distribute=tV.distribute,h.erase=T,h.error=ta,h.extend=S,h.extendClass=P,h.find=B,h.fireEvent=A,h.format=tY.format,h.getAlignFactor=L,h.getClosestDistance=O,h.getDeferredAnimation=tA,h.getMagnitude=E,h.getNestedProperty=I,h.getOptions=ty.getOptions,h.getStyle=D,h.insertItem=tn,h.isArray=X,h.isClass=R,h.isDOMElement=N,h.isFunction=G,h.isNumber=W,h.isObject=F,h.isString=j,h.internalClearTimeout=z,h.merge=H,h.normalizeTickInterval=Y,h.numberFormat=tY.numberFormat,h.objectEach=V,h.offset=U,h.pad=$,h.pick=function(...t){let e=t.length;for(let i=0;i<e;i++){let e=t[i];if(null!=e)return e}},h.pushUnique=_,h.pInt=Z,h.relativeLength=K,h.removeEvent=J,h.replaceNested=q,h.seriesType=iB.seriesType,h.setAnimation=tS,h.setOptions=ty.setOptions,h.splat=Q,h.stableSort=tt,h.stop=tO,h.syncTimeout=te,h.time=ty.defaultTime,h.ucfirst=ti,h.timers=tT.timers,h.timeUnits=th,h.uniqueKey=tl,h.useSerialIds=function(e){return t=e??t},h.wrap=ts,function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;p(t,"afterColumnTranslate",s3,{order:9}),p(s,"afterTranslate",s6),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY","brEnd","brStart"),s0=o.arc,s1=o.roundedRect,o.arc=s2,o.roundedRect=s9}}(h.Series,h.SVGElement,h.SVGRenderer),sI.compose(h.Series.types.column),sA.compose(h.Series),eD.compose(h.Axis),ey.compose(h.SVGRenderer),i_.compose(h.Chart),eB.compose(h.Axis),(r=(iT=h.Chart).prototype).hideOverlappingLabels||(r.hideOverlappingLabels=function(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(s_({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i<e;i++)(o=t[i])&&(o.oldOpacity=o.opacity,o.newOpacity=1,o.absoluteBox=function(t){if(t&&(!t.alignAttr||t.placed)){let e=t.box?0:t.padding||0,i=t.dataLabelPosition?.posAttribs||t.alignAttr||{x:t.attr("x"),y:t.attr("y")},{height:s,polygon:o,width:r}=t.getBBox(),a=L(t.alignValue)*r;return t.width=r,t.height=s,{x:i.x+(t.parentGroup?.translateX||0)+e-a,y:i.y+(t.parentGroup?.translateY||0)+e,width:r-2*e,height:s-2*e,polygon:o}}}(o));t.sort((t,e)=>(e?.labelrank||0)-(t?.labelrank||0));for(let o=0;o<e;++o){n=(r=t[o])&&r.absoluteBox;let l=n?.polygon;for(let d=o+1;d<e;++d){h=(a=t[d])&&a.absoluteBox;let e=!1;if(n&&h&&r!==a&&r?.newOpacity!==0&&a?.newOpacity!==0&&r?.visibility!=="hidden"&&a?.visibility!=="hidden"){let t=h.polygon;if(l&&t&&l!==t?s(l,t)&&(e=!0):i(n,h)&&(e=!0),e){let t=r?.labelrank<a?.labelrank?r:a,e=t?.text;t&&(t.newOpacity=0),e?.element.querySelector("textPath")&&e.hide()}}}}for(let e of t)e&&sK(e,this)&&(l=!0);l&&A(this,"afterHideAllOverlappingLabels")},p(iT,"render",function(){let t=this,e=[];for(let i of t.labelCollectors||[])e=e.concat(i());for(let i of t.yAxis||[])i.stacking&&i.options.stackLabels&&!i.options.stackLabels.allowOverlap&&V(i.stacking.stacks,t=>{V(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=s=>{for(let o of s)o.visible&&(o.dataLabels||[]).forEach(s=>{let r=s.options||{};s.labelrank=r.labelrank??o.labelrank??o.shapeArgs?.height,r.allowOverlap??(i.is("pie")&&Number(r.distance)>0)?(s.oldOpacity=s.opacity,s.newOpacity=1,sK(s,t)):e.push(s)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)})),s$.compose(h.Series.types.pie),eN.compose(h.Chart,h.Axis),e1.compose(h.Chart),s7.compose(h.Chart),i7.compose(h.Axis,h.Chart,h.Series),su.compose(h.Axis,h.Chart,h.Series),eV.compose(h.Pointer);let{parse:ot}=tw;(iS=ip||(ip={})).initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,h=0,l;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t<i;++t)r=H(r=o[t]),a.push(r),(e.styledMode||!r.color)&&("category"===s.dataClassColor?(e.styledMode||(n=(l=e.options.colors||[]).length,r.color=l[h]),r.colorIndex=h,++h===n&&(h=0)):r.color=ot(s.minColor).tweenTo(ot(s.maxColor),i<2?.5:t/(i-1)))},iS.initStops=function(){let t=this.options,e=this.stops=t.stops||[[0,t.minColor||""],[1,t.maxColor||""]];for(let t=0,i=e.length;t<i;++t)e[t].color=ot(e[t][1])},iS.normalizedValue=function(t){let e=this.max||0,i=this.min||0;return this.logarithmic&&(t=this.logarithmic.log2lin(t)),1-(e-t)/(e-i||1)},iS.toColor=function(t,e){let i,s,o,r,a,n,h=this.dataClasses,l=this.stops;if(h){for(n=h.length;n--;)if(s=(a=h[n]).from,o=a.to,(void 0===s||t>=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=l.length;n--&&!(i>l[n][0]););s=l[n]||l[n+1],i=1-((o=l[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r};let oe=ip,{parse:oi}=tw;!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=Q(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){o=t.options,o?.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis?.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function h(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function l(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",oi(this.start).tweenTo(oi(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",oi(this.start).tweenTo(oi(this.end),this.pos),void 0,!0)}t.compose=function(t,u,g,m,f){var x;let y,b=u.prototype,v=g.prototype,M=f.prototype;b.collectionsWithUpdate.includes("colorAxis")||(e=t,b.collectionsWithUpdate.push("colorAxis"),b.collectionsWithInit.colorAxis=[b.addColorAxis],p(u,"afterCreateAxes",i),y=(x=u).prototype.createAxis,x.prototype.createAxis=function(t,i){if("colorAxis"!==t)return y.apply(this,arguments);let s=new e(this,H(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),(i.redraw??!0)&&this.redraw(i.animation),s},v.fillSetter=d,v.strokeSetter=c,p(m,"afterGetAllItems",s),p(m,"afterColorizeItem",o),p(m,"afterUpdate",r),S(M,{optionalAxis:"colorAxis",translateColors:l}),S(M.pointClass.prototype,{setVisible:h}),p(f,"afterTranslate",a,{order:1}),p(f,"bindAxes",n))},t.pointSetVisible=h}(iu||(iu={}));let os=iu,{defaultOptions:oo}=ty,{series:or}=iB;oo.colorAxis=H(oo.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"var(--highcharts-background-color)",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},clip:!1,lineColor:"var(--highcharts-neutral-color-40)",lineWidth:0,color:"var(--highcharts-neutral-color-40)",width:.01},labels:{distance:8,overflow:"justify",rotation:0},minColor:"var(--highcharts-highlight-color-10)",maxColor:"var(--highcharts-highlight-color-100)",tickLength:5,title:{margin:5},showInLegend:!0});class oa extends eI{static compose(t,e,i,s){os.compose(oa,t,e,i,s)}constructor(t,e){super(t,e),this.clippable=!1,this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,X(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=this.chart.options.legend||{},i=oo.colorAxis,s=H("vertical"!==(t.layout||e.layout||i.layout)?{title:{rotation:0}}:{title:{rotation:90,margin:10}},i,t,{showEmpty:!1,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(s),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||oa.defaultLegendLength}getOffset(){let t=this.chart,e=this.legendItem?.group,i=t.axisOffset[this.side],{clipOffset:s,legend:o}=t;e&&(this.axisParent=e,super.getOffset(),o.allItems.forEach(function(t){t instanceof oa&&t.drawLegendSymbol(o,t)}),o.render(),t.getMargins(!0),this.added||(this.added=!0),this.labelLeft=0,this.labelRight=this.width,t.axisOffset[this.side]=i,t.clipOffset=s)}setLegendColor(){let t=this.horiz,e=this.reversed,i=+!!e,s=+!e,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=o.itemDistance??10,n=this.horiz,{width:h,height:l}=this.getSize(),d=o.labelPadding??(n?16:30);this.setLegendColor();let c=0,p=0;if(this.options.title?.text&&!this.axisTitle){this.axisGroup||(this.axisParent=i.group,this.createGroups());let t=this.len,e=this.top,s=this.left,o=this.width;this.len=n?h:l,this.top=0,this.left=0,this.width=h,this.addTitle(!0),this.len=t,this.top=e,this.left=s,this.width=o}if(this.axisTitle){let t=this.axisTitle.getBBox();c=t.height,p=t.width}let u=this.options.title||{},g=this.axisTitle?u.margin??0:0,m=n?c+g:0;i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11+m,width:h,height:l}),n?(i.labelWidth=Math.max(h+s+a,p||0),i.labelHeight=l+s+d+c+g):(i.labelWidth=h+s+(r.x??r.distance??0)+(this.maxLabelLength||0)+(p||0)+g,i.labelHeight=Math.max(l+s,c||0))}getTitlePosition(t){let e=super.getTitlePosition(t),i=this.options.title?.margin??0;if(this.horiz&&t)e.y=this.top-i;else if(!this.horiz&&t){let t=this.options.labels||{},s=t.x??t.distance??0;e.x=this.left+this.width+s+(this.maxLabelLength||0)+i}return e}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=o.options.colorKey??o.colorKey??o.pointValKey??o.zoneAxis??"y",s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=or.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}M(o.minColorValue)&&M(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||or.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i,s=this.legendItem||{},o=e?.plotX,r=e?.plotY,a=this.pos,n=this.len,h=this.options.marker||{};e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))<a?i=a-2:i>a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:h.color,stroke:h.lineColor,"stroke-width":h.lineWidth})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,{symbol:s}=this.options.marker||{},o=this.top;if(W(i)){if(s){let t=this.height,r=i-t/2,a=o;return this.horiz||(t=this.width,r=e,a=i-t/2),this.chart.renderer.symbols[s](r,a,t,t)}return this.horiz?[["M",i-4,o-6],["L",i+4,o-6],["L",i,o],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]}return super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem?.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t,e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=o.valueDecimals??-1,a=o.valueSuffix??"",n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses.forEach((o,h)=>{let l=o.from,d=o.to,{numberFormatter:c}=i,p=!0;t="",void 0===l?t="< ":void 0===d&&(t="> "),void 0!==l&&(t+=c(l,r)+a),void 0!==l&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+a),s.push(S({chart:i,name:t,options:{},drawLegendSymbol:or.prototype.drawLegendSymbol,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(h))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of n(h))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,p),t.forEach(t=>{A(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:M(s)?K(s,t.chartWidth):o?.symbolWidth??(e?oa.defaultLegendLength:12),height:M(i)?K(i,t.chartHeight):o?.symbolHeight??(e?12:oa.defaultLegendLength)}}}oa.defaultLegendLength=200,oa.keepProps=["legendItem"],S(oa.prototype,oe),Array.prototype.push.apply(eI.keepProps,oa.keepProps),h.ColorAxis=h.ColorAxis||oa,h.ColorAxis.compose(h.Chart,h.Fx,h.Legend,h.Series);let on={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"1em",fontWeight:"bold"},theme:{fill:"var(--highcharts-background-color)",stroke:"var(--highcharts-neutral-color-10)","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}};!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=M((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&z(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&S(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&(e.enableTouchZoom??e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(S(e,{onContainerDblClick:s,onContainerMouseWheel:o}),ts(e,"normalize",r),ts(e,"zoomOption",a))}}(ig||(ig={}));let oh=ig;function ol(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxY=e-t,r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}function od(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}let oc=function(t){(i=t.prototype.symbols).bottombutton=ol,i.topbutton=od},{setOptions:op}=ty,{composed:ou}=h;function og(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class om{static compose(t,e,i){oh.compose(e),oc(i),_(ou,"Map.Navigation")&&(p(t,"beforeRender",function(){this.mapNavigation=new om(this),this.mapNavigation.update()}),op(on))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),og(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=H(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();!i.renderer.forExport&&(r.enableButtons??r.enabled)&&(e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),V(r.buttons,(t,a)=>{let n={padding:(t=H(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(S(n,t.theme),n.style=H(t.theme.style,t.style));let{text:h,width:l=0,height:d=0,padding:c=0}=t,u=i.renderer.button("+"!==h&&"-"!==h&&h||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:l,height:d,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===h||"-"===h){let e=l+1,s=[["M",c+3,c+d/2],["L",c+e-3,c+d/2]];"+"===h&&s.push(["M",c+e/2,c+3],["L",c+e/2,c+d-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(u)}if(u.handler=t.onclick,p(u.element,"dblclick",og),s.push(u),S(t,{width:u.width,height:2*(u.height||0)}),i.hasLoaded)u.align(t,!1,t.alignTo);else{let e=p(i,"load",()=>{u.element&&u.align(t,!1,t.alignTo),e()})}}),i.hasLoaded||p(i,"render",function(){let t=i.exporting?.group?.getBBox();if(t){let i=e.navButtonsGroup.getBBox();if(!(i.x>=t.x+t.width||i.x+i.width<=t.x||i.y>=t.y+t.height||i.y+i.height<=t.y)){let s=-i.y-i.height+t.y-5,o=t.y+t.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?s:o})}}})),this.updateEvents(r)}updateEvents(t){let e=this.chart;(t.enableDoubleClickZoom??t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||p(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),t.enableMouseWheelZoom??t.enabled?this.unbindMouseWheel=this.unbindMouseWheel||p(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&og(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}let{column:{prototype:of}}=iB.seriesTypes;var ox=im||(im={});function oy(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new tQ(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}ox.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},ox.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return M(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:of.pointAttribs},ox.compose=function(t){return p(t.prototype.pointClass,"afterSetState",oy),t};let ob=im,{getOptions:ov}=ty;class oM extends i6{init(t,e){let i=ov().credits,s=H({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:i.mapText??' \xa9 <a href="{geojson.copyrightUrl}">{geojson.copyrightShort}</a>',mapTextFull:i.mapTextFull??"{geojson.copyright}"},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(W(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,W(e)&&W(i)?this.mapView.projection.inverse([e,i]):void 0,W(s)&&W(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}(iP=oM||(oM={})).maps={},iP.mapChart=function(t,e,i){let s=new iP(t,e,i);return s.promise??s},iP.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,em.prototype.pathToSegments(e)};let ow=oM,ok={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:oC}=ok,oT=iB.seriesTypes.scatter.prototype.pointClass;class oS extends oT{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e,i){let s=this.series,o=super.applyOptions(t,e,i),r=s.joinBy;if(s.mapData&&s.mapMap){let t=r[1],e=super.getNestedProperty(t),i=void 0!==e&&s.mapMap[e];i?S(o,{...i,name:o.name??i.name}):-1!==s.pointArrayMap.indexOf("value")&&(o.value=o.value||null)}return o}getProjectedBounds(t){let e=oC(oS.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i?.["hc-middle-lon"],r=i?.["hc-middle-lat"];if(s&&W(o)&&W(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i?.["hc-middle-x"],s=i?.["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*(this.middleX??(W(t)?t:.5));let o=this.middleY??(W(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){z(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=W(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}S(oS.prototype,{dataLabelOnNull:ob.pointMembers.dataLabelOnNull,moveToTopOnHover:ob.pointMembers.moveToTopOnHover,isValid:ob.pointMembers.isValid});let oP={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"var(--highcharts-neutral-color-20)",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}},{win:oA}=h,{format:oL}=tY;!function(t){function e(t){return this.mapView?.lonLatToProjectedUnits(t)}function i(t){return this.mapView?.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||oA.proj4;if(!i)return void ta(21,!1,this);let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:h=0,yoffset:l=0,ypan:d=0}=e,c=i(e.crs,[t.lon,t.lat]),p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=e.rotation?[c[0]*p+c[1]*u,-c[0]*u+c[1]*p]:c;return{x:((g[0]-n)*a+h)*r+s,y:-(((l-g[1])*a+d)*r-o)}}function o(t,e){let i=this.options.chart.proj4||oA.proj4;if(!i)return void ta(21,!1,this);if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:h=0,yoffset:l=0,ypan:d=0}=e,c={x:((t.x-s)/r-h)/a+n,y:((t.y-o)/r+d)/a+l},p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=i(e.crs,"WGS84",e.rotation?{x:c.x*p+-(c.y*u),y:c.x*u+c.y*p}:c);return{lat:g.y,lon:g.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o,r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,h=r.length;t<h;++t){let h=r[t];s.push(e=[]),i=0,o=0;for(let t=0,s=h.length;t<s;++t)e.push([(i+=h[t][0])*a[0]+n[0],(o+=h[t][1])*a[1]+n[1]])}}let o=t=>"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t<e;++t)a.push({type:"Feature",properties:r[t].properties,geometry:{type:r[t].type,coordinates:r[t].coordinates||o(r[t].arcs)}});let n={type:"FeatureCollection",copyright:t.copyright,copyrightShort:t.copyrightShort,copyrightUrl:t.copyrightUrl,features:a,"hc-recommended-mapview":i["hc-recommended-mapview"],bbox:t.bbox,title:t.title};return i["hc-decoded-geojson"]=n,n}function a(t,e){e=H(!0,this.options.credits,e),t.call(this,e),this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})}t.compose=function(t){let r=t.prototype;r.transformFromLatLon||(r.fromLatLonToPoint=e,r.fromPointToLatLon=i,r.transformFromLatLon=s,r.transformToLatLon=o,ts(r,"addCredits",a))},t.geojson=function(t,e="map",i){let s=[],o="Topology"===t.type?r(t):t,a=o.features;for(let t=0,i=a.length;t<i;++t){let i,o=a[t],r=o.geometry||{},n=r.type,h=r.coordinates,l=o.properties;if(("map"===e||"mapbubble"===e)&&("Polygon"===n||"MultiPolygon"===n)||"mapline"===e&&("LineString"===n||"MultiLineString"===n)?h.length&&(i={geometry:{coordinates:h,type:n}}):"mappoint"===e&&"Point"===n&&h.length&&(i={geometry:{coordinates:h,type:n}}),i){let t=l&&(l.name||l.NAME),e=l&&l.lon,o=l&&l.lat;s.push(S(i,{lat:"number"==typeof o?o:void 0,lon:"number"==typeof e?e:void 0,name:"string"==typeof t?t:void 0,properties:l}))}}return i&&o.copyrightShort&&(i.chart.mapCredits=oL(i.chart.options.credits?.mapText,{geojson:o}),i.chart.mapCreditsFull=oL(i.chart.options.credits?.mapTextFull,{geojson:o})),s},t.topo2geo=r}(ix||(ix={}));let oO=ix;function oE(t,e,i=!0){let s=e[e.length-1],o,r,a,n=t;for(let t=0;t<e.length;t++){let h=n;o=e[t],n=[],r=i?h[h.length-1]:h[0];for(let t=0;t<h.length;t++)oI(s,o,a=h[t])?(oI(s,o,r)||n.push(oD(s,o,r,a)),n.push(a)):oI(s,o,r)&&n.push(oD(s,o,r,a)),r=a;s=o}return n}function oI(t,e,i){return(e[0]-t[0])*(i[1]-t[1])>(e[1]-t[1])*(i[0]-t[0])}function oD(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],h=1/(o[0]*r[1]-o[1]*r[0]),l=[(a*r[0]-n*o[0])*h,(a*r[1]-n*o[1])*h];return l.isIntersection=!0,l}let oB=Math.sign||(t=>0===t?0:t>0?1:-1),oz=Math.PI/180,oN=Math.PI/2,oR=t=>Math.tan((oN+t)/2),oW=class{constructor(t){const e=(t.parallels||[]).map(t=>t*oz),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(oR(s)/oR(i));1e-10>Math.abs(r)&&(r=1e-10*(oB(r)||1)),this.n=r,this.c=o*Math.pow(oR(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*oz,r=t[1]*oz;e>0?r<-oN+1e-6&&(r=-oN+1e-6):r>oN-1e-6&&(r=oN-1e-6);let a=e/Math.pow(oR(r),i),n=a*Math.sin(i*o)*63.78137,h=(e-a*Math.cos(i*o))*63.78137,l=[n,h];return s&&(n<s.x1||n>s.x2||h<s.y1||h>s.y2)&&(l.outside=!0),l}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=oB(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*oB(o);return o*i<0&&(a-=Math.PI*oB(s)*oB(o)),[a/i/oz,(2*Math.atan(Math.pow(e/r,1/i))-oN)/oz]}},oj=Math.sqrt(3)/2,oX=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(oj*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(oj*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,h;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=h=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(h)));++t);a=(r=o*o)*r*r;let l=s*oj*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),d=s*Math.asin(Math.sin(o)/oj);return Math.abs(l)>180?[NaN,NaN]:[l,d]}},oG=Math.PI/4,oF=Math.PI/180,oH=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*oF*63.78137,79.7267125*Math.log(Math.tan(oG+.4*t[1]*oF))]}inverse(t){return[t[0]/63.78137/oF,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-oG)/oF]}},oY=Math.PI/180,oV=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*oY,s=[Math.cos(i)*Math.sin(e*oY)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/oY,Math.asin(s&&i*r/s)/oY]}},oU=Math.PI/180,o$=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*oU),i=[63.78137*t[0]*oU,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*oU),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/oU]}},{clipLineString:oZ,clipPolygon:o_}={clipLineString:function(t,e){let i=[],s=oE(t,e,!1);for(let t=1;t<s.length;t++)s[t].isIntersection&&s[t-1].isIntersection&&(i.push(s.splice(0,t)),t=0),t===s.length-1&&i.push(s);return i},clipPolygon:oE},oK=2*Math.PI/360,oq=t=>(t<-180&&(t+=360),t>180&&(t-=360),t),oJ=t=>(1-Math.cos(t))/2;class oQ{static add(t,e){oQ.registry[t]=e}static distance(t,e){let i,s,o,r,a,{atan2:n,sqrt:h}=Math,l=(i=Math.cos,s=t[1]*oK,o=t[0]*oK,r=e[1]*oK,a=e[0]*oK,oJ(r-s)+i(s)*i(r)*oJ(a-o));return 6371e3*(2*n(h(l),h(1-l)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,h=oQ.distance,l=t[1]*oK,d=t[0]*oK,c=e[1]*oK,p=e[0]*oK,u=r(l)*r(d),g=r(c)*r(p),m=r(l)*a(d),f=r(c)*a(p),x=a(l),y=a(c),b=h(t,e),v=b/6371e3,M=a(v),w=Math.round(b/s),k=[];if(i&&k.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*v)/M,i=a(e*v)/M,s=t*u+i*g,r=t*m+i*f,h=o(t*x+i*y,n(s*s+r*r)),l=o(r,s);k.push([l/oK,h/oK])}}return i&&k.push(e),k}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=oQ.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;const{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;const o=e?oQ.registry[e]:void 0;o&&(this.def=new o(t));const{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=+!e;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*oK,i=(t[1]||0)*oK,s=(t[2]||0)*oK,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*oK+e,s=t[1]*oK,h=Math.cos(s),l=Math.cos(i)*h,d=Math.sin(i)*h,c=Math.sin(s),p=c*o+l*r;return[Math.atan2(d*a-p*n,l*o-c*r)/oK,Math.asin(p*a+d*n)/oK]},inverse:t=>{let i=t[0]*oK,s=t[1]*oK,h=Math.cos(s),l=Math.cos(i)*h,d=Math.sin(i)*h,c=Math.sin(s),p=c*a-d*n;return[(Math.atan2(d*a+c*n,l*o+p*r)-e)/oK,Math.asin(p*o-l*r)/oK]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i,s=[],o=[t];for(let i=0,o=t.length;i<o;++i){let o=t[i],r=t[i-1];if(!i){if(!e)continue;r=t[t.length-1]}let a=r[0],n=o[0];if((a<-90||a>90)&&(n<-90||n>90)&&a>0!=n>0){let t=f((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length)if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],T(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=oq(180+1e-6*s[e].direction),a=oq(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...oQ.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...oQ.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t<o.length;t++){let{direction:e,lat:s}=i,r=o[t],a=r.indexOf(i.lonLat);if(a>-1){let t=(s<0?-1:1)*this.maxLatitude,o=oq(180+1e-6*e),n=oq(180-1e-6*e),h=oQ.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)h.push([i,t]);h.push(...oQ.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...h);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[oq(180+1e-6*s[e].direction),s[e].lat]);r.unshift([oq(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}return o}path(t){let e,{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,h=!s||!1!==s.antimeridianCutting,l=h?o:void 0,d=h&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let c=t=>{let s=t.map(t=>{if(h){l&&(t=l.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t}),o=[s];n&&(oQ.insertGeodesics(s),h&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let l=!1,c=!1,p=t=>{l?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),l=!0)},u=!1,g=!1,m=t.map(t=>{let e=d.forward(t);return e.outside?u=!0:g=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(h){if(a&&m.push(m[0]),u){if(!g)return;if(e){if(a)m=o_(m,e);else if(i)return void oZ(m,e).forEach(t=>{l=!1,t.forEach(p)})}}m.forEach(p)}else for(let e=0;e<m.length;e++){let i=t[e],r=m[e];r.outside?c=!0:(a&&!s&&(s=i,t.push(i),m.push(r)),c&&o&&(a&&n?oQ.geodesic(o,i).forEach(t=>p(d.forward(t))):l=!1),p(r),o=i,c=!1)}})};return"LineString"===t.type?c(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>c(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>c(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>c(t))}),r.length&&r.push(["Z"])),r}}oQ.registry={EqualEarth:oX,LambertConformalConic:oW,Miller:oH,Orthographic:oV,WebMercator:o$};let{composed:o0}=h,{pointInPolygon:o1}=sZ,{topo2geo:o2}=oO,{boundsFromPath:o3}=ok,o5={};function o6(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function o9(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class o8{static compose(t){_(o0,"MapView")&&(o5=t.maps,p(t,"afterInit",function(){this.mapView=new o8(this,this.options.mapView)},{order:0}),p(t,"addSeriesAsDrilldown",o9),p(t,"afterDrillUp",o9))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),H(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=H(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof o4||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};const i=H(oP,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=o8.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new oQ(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(p(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&W(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&H(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new o4(this,H(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=e??(t?0:this.options.padding),a=this.getField(!1),n=X(r)?r:[r,r,r,r];this.padding=[K(n[0],a.height),K(n[1],a.width),K(n[2],a.height),K(n[3],a.width)],this.playingField=this.getField();let h=o6(o,this.playingField);t||(this.minZoom=h);let l=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(l,h,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(j(t))return o5[t]&&"Topology"===o5[t].type?o2(o5[t]):o5[t];if(F(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return o2(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache)if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=o3(t.path(i));return this.fitToGeometryCache}return this.projection.bounds||o8.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,h=t+i/2-o[0]*a,l=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:h,translateY:l}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&o1(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&o1({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&o1(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&o1(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&o8.compositeBounds(o);A(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),W(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),h=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),l=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,d=h.y,c=h.x,p=n.y;c-o<s?t[0]=l[0]:o<e&&c<e+s?t[0]+=Math.max(o-e,c-s-e)/a:c>e+s&&o>e&&(t[0]+=Math.min(c-s-e,o-e)/a),p-d<r?t[1]=l[1]:d<i&&p<i+r?t[1]-=Math.max(d-i,p-r-i)/a:p>i+r&&d>i&&(t[1]-=Math.min(p-r-i,d-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}A(this,"afterSetView"),i&&this.redraw(s)}setUpEvents(){let t,e,i,{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,h=o.touches,{mouseDownX:l,mouseDownY:d}=s,c=0;if(a?.length===1?(l=a[0].chartX,d=a[0].chartY):a?.length===2&&(l=(a[0].chartX+a[1].chartX)/2,d=(a[0].chartY+a[1].chartY)/2),h?.length===2&&r&&(c=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(h[0].chartX-h[1].chartX,2)+Math.pow(h[0].chartY-h[1].chartY,2)))/Math.log(.5)),W(l)&&W(d)){let r=`${l},${d}`,{chartX:a,chartY:p}=o.originalEvent;h?.length===2&&(a=(h[0].chartX+h[1].chartX)/2,p=(h[0].chartY+h[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,g=u&&o6(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(h?.length||0)&&(this.minZoom||1/0)<1.3*g){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(l-a)*t-i[0],o=f(-i[1]-(d-p)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(W(a)&&W(p)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(l-a)/e,t[1]-(d-p)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(c,s,void 0,!1)}o.preventDefault()}};p(s,"pan",o),p(s,"touchpan",o),p(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){let t=this.chart;this.group?this.groupClipRect&&this.groupClipRect.animate(t.plotBox):(this.groupClipRect=t.renderer.clipRect(t.plotBox),this.group=t.renderer.g("map-view").attr({zIndex:4}).clip(this.groupClipRect).add())}update(t,e=!0,i){let s=t.projection,o=s&&oQ.toString(s)!==oQ.toString(this.options.projection),r=!1;H(!0,this.userOptions,t),H(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new oQ(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!W(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||W(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,h,l=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,l=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,h=r[1]+l/s}if("number"==typeof n&&"number"==typeof h){let t=1-Math.pow(2,this.zoom)/Math.pow(2,l),e=r[0]-n,i=r[1]-h;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,l,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class o4 extends o8{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=H({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){const e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=o3(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],h=Math.min.apply(0,r)+i[0],l=Math.max.apply(0,r)-i[2];if(W(a)&&W(h))return{x:a,y:h,width:n-a,height:l-h}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||H(t.plotBox,{x:0,y:0});o=o.map(t=>[K(`${t[0]}%`,s.width,s.x),K(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return o8.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&o1(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,h]=s;return"percent"===i.units&&(n=t.plotLeft+K(`${n}%`,a.width,a.x),h=t.plotTop+K(`${h}%`,a.height,a.y)),n=b(n,r),h=b(h,r),e.push(0===o?["M",n,h]:["L",n,h]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{noop:o7}=h,{splitPath:rt}=ow,{column:re,scatter:ri}=iB.seriesTypes;class rs extends ri{constructor(){super(...arguments),this.tupleKey="hc-key"}animate(t){let{chart:e,group:i}=this,s=tP(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroups?.forEach(t=>t?.clip(this.chart.clipRect))}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t<e;++t)s[t+1]||s.push(r.g().add(i));this.doFullTranslate()&&(this.points.forEach(t=>{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),re.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties?.["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=W(i["stroke-width"])&&!W(s["stroke-width"]),h=W(s["stroke-width"])&&!W(i["stroke-width"]);if(n||h){let o=(t.getStrokeWidth(t.options)??1)/(e.mapView?.getScale()||1);n&&(s["stroke-width"]=o),h&&(i["stroke-width"]=o)}return o.call(s,i,r,h?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=this.getStrokeWidth(this.options)??1,h=a.scaleX,l=a.scaleY>0?1:-1,d=e=>{(t.points||[]).forEach(t=>{let i,s=t.graphic;s?.["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let c=s+(h-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:c,scaleY:c*l,"stroke-width":n/c}),d(c)},c=H(tP(r.globalAnimation)),p=c.step;c.step=function(){p&&p.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},c,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),A(this,"mapZoomComplete")}).bind(this))}else tO(i),i.attr(H(a,{"stroke-width":n/h})),d(h)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=rt(s.path):X(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=s.labelrank??(i.x2-i.x1)*(i.y2-i.y1);let{midX:e,midY:o}=i;if(t&&W(e)&&W(o)){let r=B(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=o8.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e?.["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.getModified().rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=(t?.series||this).chart,o=s&&t?this.colorAttribs(t):re.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t?.options||{});if(e){let i=H(this.options.states?.[e],t?.options.states?.[e]||{}),s=this.getStrokeWidth(i);M(s)&&(r=s),o.stroke=i.borderColor??t?.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&W(a)&&(r=a/i.getScale()),t?.visible===!1&&(o.fill=this.options.nullColor),t?.isNull&&this.options.nullInteraction&&(o.opacity=1),M(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}matchPoints(){return!this.hasProcessedDataTable&&super.matchPoints.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}getDataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i,s=this.options,o=this.dataTable,r=this.chart,a=r.options.chart,n=this.joinBy,l=[],d={},c=this.chart.mapView,p=c&&(F(s.mapData,!0)?c.getGeoMap(s.mapData):c.geoMap),u=r.mapTransforms=a.mapTransforms||p?.["hc-transform"]||r.mapTransforms,g=new e5;if(this.hasProcessedDataTable=!0,u&&V(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),X(s.mapData)?i=s.mapData:p?.type==="FeatureCollection"&&(this.mapTitle=p.title,i=h.geojson(p,this.type,this)),Object.entries(o.columns).forEach(([t,e])=>{g.setColumn(t,e)}),"_i"===n[0]&&g.setColumn("_i",Array.from({length:g.rowCount},(t,e)=>e)),i){this.mapData=i,this.mapMap={};for(let s=0;s<i.length;s++)e=(t=i[s]).properties,t._i=s,n[0]&&e&&e[n[0]]&&(t[n[0]]=e[n[0]]),d[t[n[0]]]=t;if(this.mapMap=d,n[1]){let t=n[1];for(let e=0;e<g.rowCount;e++){let i="_i"===t?e:I(t,g.getRowObject(e));d[i]&&l.push(d[i])}}if(s.allAreas){let t="|"+l.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||g.setRow(H(e,{value:null}))})}}this.dataTable.modified=g}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=Q(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e?.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||W(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=W(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&W(o.bounds.midX)&&W(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:oS.getProjectedPath(o,i)}),!o.hiddenInDataClass&&(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}A(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}rs.defaultOptions=H(ri.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,distance:0,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return W(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:[0,2],verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"var(--highcharts-neutral-color-3)",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}<br/>"},turboThreshold:0,allAreas:!0,borderColor:"var(--highcharts-neutral-color-20)",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"var(--highcharts-neutral-color-60)",borderWidth:2},normal:{animation:!0},select:{color:"var(--highcharts-neutral-color-20)"}},legendSymbol:"rectangle"}),S(rs.prototype,{type:"map",axisTypes:ob.seriesMembers.axisTypes,colorAttribs:ob.seriesMembers.colorAttribs,colorKey:ob.seriesMembers.colorKey,directTouch:!0,drawDataLabels:o7,drawGraph:o7,forceDL:!0,getCenter:sW.getCenter,getExtremesFromAll:!0,getSymbol:o7,isCartesian:!1,parallelArrays:ob.seriesMembers.parallelArrays,pointArrayMap:ob.seriesMembers.pointArrayMap,pointClass:oS,preserveAspectRatio:!0,searchPoint:o7,trackerGroups:ob.seriesMembers.trackerGroups,useMapGeometry:!0}),ob.compose(rs),iB.registerSeriesType("map",rs);let ro=rs;class rr extends ro{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}rr.defaultOptions=H(ro.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),S(rr.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),iB.registerSeriesType("mapline",rr);let{scatter:ra}=iB.seriesTypes;class rn extends ra.prototype.pointClass{isValid(){return!!(this.options.geometry||W(this.x)&&W(this.y)||W(this.options.lon)&&W(this.options.lat))}}let{noop:rh}=h,{map:rl,scatter:rd}=iB.seriesTypes;class rc extends rd{constructor(){super(...arguments),this.clearBounds=rl.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroups?.forEach(t=>{t?.clip(this.chart.clipRect)})}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(W(s)&&W(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=W(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,h=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(h?(r=h.x,a=h.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&W(r)&&W(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),W(r)&&W(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}A(this,"afterTranslate")}}rc.defaultOptions=H(rd.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"var(--highcharts-neutral-color-100)"}},legendSymbol:"lineMarker",stickyTracking:!0,tooltip:{pointFormat:"{#if point.name}{point.name}{else}Lat: {point.lat}, Lon: {point.lon}{/if}"}}),em.prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a,n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let h=n?s/3:s/2;return[["M",r,a],["C",r,a,r-h,e+1.5*h,r-h,e+h],["A",h,h,1,1,1,r+h,e+h],["C",r+h,e+1.5*h,r,a,r,a],["Z"]]},S(rc.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:rn,searchPoint:rh,useMapGeometry:!0}),iB.registerSeriesType("mappoint",rc);let rp={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"var(--highcharts-neutral-color-100)"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{noop:ru}=h,rg=class{constructor(t,e){this.setState=ru,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e,i=t.options.itemDistance??20,s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!W(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}tt(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),h=this.ranges[0].radius,l=2*h;e=(e=a-h+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=l+e+i,s.labelHeight=l+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,h=this.chart.styledMode;t.forEach(function(l,d){h||(o.stroke=l.borderColor??e.borderColor??i.color,o.fill=l.color||e.color,o.fill||(o.fill=i.color,o["fill-opacity"]=n??1),r.stroke=l.connectorColor??e.connectorColor??i.color),t[d].radius=this.getRangeRadius(l.value),t[d]=H(t[d],{center:t[0].radius-t[d].radius+s}),h||H(!0,t[d],{bubbleAttribs:H(o),connectorAttribs:H(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,h=this.symbols,l=h.labels,d=t.center,c=Math.abs(t.radius),p=s.connectorDistance||0,u=o.align,g=i.options.rtl,m=s.borderWidth,f=s.connectorWidth,x=e.radius||0,y=d-c-m/2+f/2,b=(y%1?1:.5)-(f%2?0:.5),v=n.styledMode,M=g||"left"===u?-p:p;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),h.bubbleItems.push(n.circle(x,d+b,c).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),h.connectors.push(n.path(n.crispLine([["M",x,y],["L",x+M,y]],s.connectorWidth)).attr(v?{}:t.connectorAttribs).addClass((v?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(v?{}:t.labelAttribs).css(v?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),k={x:x+M+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(k),l.push(w),w.placed=!0,w.alignAttr=k}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?tY.format(s,t,this.chart):i?i.call(t,t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(W)).length&&(r=t.options.zMin??Math.min(r,Math.max(u(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE)),a=t.options.zMax??Math.max(a,g(o)))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=H(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],h=n.getPxExtremes(),l=Math.ceil(h.minPxSize),d=Math.ceil(h.maxPxSize),c=Math.min(a,r),p,u=n.options.maxSize;return i||!/%$/.test(u)?p=d:(p=(c+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-p>=r||!s&&r-p>=a)&&(p=d)),[l,Math.ceil(p)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:rm}=ty,{composed:rf}=h;function rx(t,e,i){let s,o,r,a=this.legend,n=ry(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),V(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes()):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&a.render())}function ry(t){let e=t.series,i=0;for(;i<e.length;){if(e[i]&&e[i].isBubble&&e[i].visible&&e[i].dataTable.rowCount)return i;i++}return -1}function rb(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=ry(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new rg(s,this),this.bubbleLegend.addToLegend(t.allItems))}function rv(){if(this.bubbleLegend){let t=this.allItems,e=this.options.rtl,i=function(t){let e=t.allItems,i=[],s=e.length,o,r,a,n=0,h=0;for(n=0;n<s;n++)if(r=e[n].legendItem||{},a=(e[n+1]||{}).legendItem||{},r.labelHeight&&(e[n].itemHeight=r.labelHeight),e[n]===e[s-1]||r.y!==a.y){for(i.push({height:0}),o=i[i.length-1];h<=n;h++)e[h].itemHeight>o.height&&(o.height=e[h].itemHeight);o.step=n}return i}(this),s,o,r,a,n=0;t.forEach((t,h)=>{(a=t.legendItem||{}).group&&(s=a.group.translateX||0,o=a.y||0,((r=t.movementX)||e&&t.ranges)&&(r=e?s-t.options.maxSize/2:s+r,a.group.attr({translateX:r})),h>i[n].step&&n++,a.group.attr({translateY:Math.round(o+i[n].height/2)}),a.y=o+i[n].height/2)})}}function rM(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=ry(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}let rw=function(t,e){_(rf,"Series.BubbleLegend")&&(rm({legend:{bubbleLegend:rp}}),ts(t.prototype,"drawChartBox",rx),p(e,"afterGetAllItems",rb),p(e,"afterRender",rv),p(e,"itemClick",rM))},{seriesTypes:{scatter:{prototype:{pointClass:rk}}}}=iB;class rC extends rk{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series,r=2*e;return o.renderer.symbols.circle((i?.len||0)-t[1]-e,(s?.len||0)-t[0]-e,r,r)}return e_.prototype.haloPath.call(this,e)}}S(rC.prototype,{ttBelow:!1});let rT=rC,{composed:rS,noop:rP}=h,{series:rA,seriesTypes:{column:{prototype:rL},scatter:rO}}=iB;function rE(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,h;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,h=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(W(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),h&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===(this.options[t[0]]??this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function rI(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a<i)&&r.label?.hide()}}}class rD extends rO{static compose(t,e,i){rw(e,i),_(rS,"Series.Bubble")&&(p(t,"foundExtremes",rE),p(t,"afterRender",rI))}animate(t){!t&&this.points.length<this.options.animationLimit&&this.points.forEach(function(t){let{graphic:e,plotX:i=0,plotY:s=0}=t;e&&e.width&&(this.hasRendered||e.attr({x:i,y:s,width:1,height:1}),e.animate(this.markerAttribs(t),this.options.animation))},this)}getRadii(){let t=[...this.getColumn("z",!1,!0)],e=this.getColumn("y"),i=[],s,o,r,a=this.chart.bubbleZExtremes,{minPxSize:n,maxPxSize:h}=this.getPxExtremes();if(!a){let t,e=Number.MAX_VALUE,i=-Number.MAX_VALUE;this.chart.series.forEach(s=>{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(e??o.zMin,o.zMin),i=Math.max(i??o.zMax,o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o<s;o++)r=t[o],i.push(this.getRadius(a.zMin,a.zMax,n,h,r,e&&e[o]));this.radii=i}getRadius(t,e,i,s,o,r){let a=this.options,n="width"!==a.sizeBy,h=a.zThreshold,l=e-t,d=.5;if(null===r||null===o)return null;if(W(o)){if(a.sizeByAbsoluteValue&&(o=Math.abs(o-h),e=l=Math.max(e-h,Math.abs(t-h)),t=0),o<t)return i/2-1;l>0&&(d=(o-t)/l)}return n&&d>=0&&(d=Math.sqrt(d)),Math.ceil(i+d*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?S(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker,s=i?.fillOpacity,o=rA.prototype.pointAttribs.call(this,t,e);return o["fill-opacity"]=s??1,o}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{options:t,radii:e}=this,{minPxSize:i}=this.getPxExtremes();this.data.concat(this.condemnedPoints).forEach((s,o)=>{let{plotX:r=0,plotY:a=0}=s,n=s.condemned?s.marker?.radius||0:e?e[o]:0;"z"===this.zoneAxis&&(s.negative=(s.z||0)<(t.zThreshold||0)),W(n)&&(s.marker=S(s.marker,{radius:n,width:2*n,height:2*n})),W(n)&&n>=i/2?s.dlBox={x:r-n,y:a-n,width:2*n,height:2*n}:(s.shapeArgs=s.plotY=s.dlBox=void 0,s.isInside=!1)})}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(this.options.minSize??8),s=Math.max(e(this.options.maxSize??"20%"),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(W);if(e.length){let i=t.zMin??f(u(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE),s=t.zMax??g(e);if(W(i)&&W(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=rP,o=rP){return s=(t,e,i)=>{let s=t[i]||0,o=e[i]||0,r,a=!1;return s===o?r=t.index>e.index?t:e:s<0&&o<0?(r=s-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,a=!0):r=s<o?t:e,[r,a]},o=(t,e,i)=>!i&&t>e||t<e,super.searchKDTree(t,e,i,s,o)}}rD.defaultOptions=H(rO.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return W(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),S(rD.prototype,{alignDataLabel:rL.alignDataLabel,applyZones:rP,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:rT,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),p(rD,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),p(rD,"remove",t=>{delete t.target.chart.bubbleZExtremes}),p(rD,"update",t=>{let e=t.target.options;(M(e.zMin)||M(e.zMax))&&delete t.target.chart.bubbleZExtremes}),iB.registerSeriesType("bubble",rD);let rB=rD,{seriesTypes:{map:{prototype:{pointClass:{prototype:rz}}}}}=iB;class rN extends rT{isValid(){return"number"==typeof this.z}}S(rN.prototype,{applyOptions:rz.applyOptions,getProjectedBounds:rz.getProjectedBounds});let{seriesTypes:{map:{prototype:rR},mappoint:{prototype:rW}}}=iB;class rj extends rB{constructor(){super(...arguments),this.clearBounds=rR.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){rW.translate.call(this),this.getRadii(),this.translateBubble()}}rj.defaultOptions=H(rB.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"},stickyTracking:!0}),S(rj.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:rR.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:rN,processData:rR.processData,projectPoint:rW.projectPoint,kdAxisArray:["plotX","plotY"],setData:rR.setData,setOptions:rR.setOptions,useMapGeometry:!0,xyFromShape:!0}),iB.registerSeriesType("mapbubble",rj);let{scatter:{prototype:{pointClass:rX}}}=iB.seriesTypes;class rG extends rX{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),h=this.pointPadding??e.pointPadding??0,l={x1:f(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:f(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:f(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:f(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",d=Math.abs(l[s]-l[n]),c=a&&a.lineWidth||0,p=Math.abs(l[s]+l[n])/2,u=a&&a[e];if(M(u)&&u<d){let t=u/2+c/2;l[s]=p-t,l[n]=p+t}h&&(("x"===i&&o.reversed||"y"===i&&!r.reversed)&&(s=n,n=i+"1"),l[s]+=h,l[n]-=h)}return l}haloPath(t){if(!t)return[];let{x:e=0,y:i=0,width:s=0,height:o=0}=this.shapeArgs||{};return[["M",e-t,i-t],["L",e-t,i+o+t],["L",e+s+t,i+o+t],["L",e+s+t,i-t],["Z"]]}isValid(){return this.value!==1/0&&this.value!==-1/0}}S(rG.prototype,{dataLabelOnNull:!0,moveToTopOnHover:!0,ttBelow:!1});let{doc:rF}=h,{series:rH,seriesTypes:{column:rY,scatter:rV}}=iB,{prototype:{symbols:rU}}=em,{colorFromPoint:r$,getContext:rZ}={colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let s=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>parseFloat(t)??parseInt(t,10));return s[3]=(s[3]??1)*255,M(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?.clearRect?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=rF.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class r_ extends rV{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:h}=o,l={width:a,height:h};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=rZ(t),{canvas:h,options:{colsize:d=1,rowsize:c=1},points:p,points:{length:u}}=t,g=i.colorAxis&&i.colorAxis[0];if(h&&a&&g){let{min:g,max:m}=s.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),M=Math.round(b/c/8*8),[w,k]=[[v,v/y,r,"ceil"],[M,M/b,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),C=h.width=v+1,T=C*(h.height=M+1),S=(u-1)/T,P=new Uint8ClampedArray(4*T),A=(t,e)=>4*Math.ceil(C*k(e-f)+w(t-g));t.buildKDTree();for(let t=0;t<T;t++){let e=p[Math.ceil(S*t)],{x:i,y:s}=e;P.set(r$(e.value,e),A(i,s))}a.putImageData(new ImageData(P,C),0,0),e?e.attr({...l,href:h.toDataURL("image/png",1)}):(t.directTouch=!1,t.image=i.renderer.image(h.toDataURL("image/png",1)).attr(l).add(t.group))}t.isDirtyCanvas=!1}else(e.width!==a||e.height!==h)&&e.attr(l)}else(s.enabled||t._hasPointMarkers)&&(rH.prototype.drawPoints.call(t),t.points.forEach(e=>{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getSymbol(){this.symbol=this.options.marker?.symbol||"rect"}getExtremes(){let{dataMin:t,dataMax:e}=rH.prototype.getExtremes.call(this,this.getColumn("value"));return W(t)&&(this.valueMin=t),W(e)&&(this.valueMax=e),rH.prototype.getExtremes.call(this)}getValidPoints(t,e){return rH.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=t.pointRange??(t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,rU.ellipse=rU.circle,t.marker&&W(t.borderRadius)&&(t.marker.r=t.borderRadius);let e=this.canvas=document.createElement("canvas");e&&(this.context=e?.getContext("webgpu"))}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states?.[e]||{},a=s.states?.[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),h=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-h)/2,width:n,height:h}}return i}pointAttribs(t,e){let i=rH.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t?.options.borderColor||s.borderColor||a.borderColor||r.borderColor,h=t?.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t?.marker?.lineColor||s.marker?.lineColor||n||this.color,i["stroke-width"]=h,e&&"normal"!==e){let o=H(s.states?.[e],s.marker?.states?.[e],t?.options.marker?.states?.[e]||{});i.fill=o.color||tw.parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e?.symbol||"rect",s=rU[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),h=Math.max(Math.abs(r.x2-r.x1),0),l=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker?.symbol||i||"").indexOf("url"),o){let t=Math.abs(h-l);a=Math.min(r.x1,r.x2)+(h<l?0:t/2),n=Math.min(r.y1,r.y2)+(h<l?t/2:0),h=l=Math.min(h,l)}e.hasImage&&(e.marker={width:h,height:l}),e.plotX=e.clientX=(r.x1+r.x2)/2,e.plotY=(r.y1+r.y2)/2,e.shapeType="path",e.shapeArgs=H(!0,{x:a,y:n,width:h,height:l},{d:rU[s](a,n,h,l,{r:W(t)?t:0})})}A(this,"afterTranslate")}}r_.defaultOptions=H(rV.defaultOptions,{animation:!1,borderRadius:0,borderWidth:0,interpolation:!1,nullColor:"var(--highcharts-neutral-color-3)",dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return W(e)?t(e,-1):""},inside:!0,verticalAlign:"middle",crop:!1,overflow:"allow",padding:0},marker:{radius:0,lineColor:void 0,states:{hover:{lineWidthPlus:0},select:{}}},clip:!0,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}<br/>"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),p(r_,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints(),this.options.enableMouseTracking&&this.drawTracker()}),S(r_.prototype,{axisTypes:ob.seriesMembers.axisTypes,colorKey:ob.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:ob.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:rG,specialGroup:"group",trackerGroups:ob.seriesMembers.trackerGroups,alignDataLabel:rY.prototype.alignDataLabel,colorAttribs:ob.seriesMembers.colorAttribs}),ob.compose(r_),iB.registerSeriesType("heatmap",r_),h.ColorMapComposition=ob,h.MapChart=h.MapChart||ow,h.MapNavigation=h.MapNavigation||om,h.MapView=h.MapView||o8,h.Projection=h.Projection||oQ,h.mapChart=h.Map=h.MapChart.mapChart,h.maps=h.MapChart.maps,h.geojson=oO.geojson,h.topo2geo=oO.topo2geo,oO.compose(h.Chart),rj.compose(h.Axis,h.Chart,h.Legend),om.compose(ow,h.Pointer,h.SVGRenderer),o8.compose(ow),h.product="Highmaps";let rK=h;return n.default})());
28
+ }`}update(t){let e=this.renderer.box.parentElement,i=t0?.[this.renderer.chartIndex];t=H(!0,this.options,t),i&&(i.options.palette=t),!1!==t.injectCSS&&this.injectCSS(t),e&&(j(t.colorScheme)&&["light","dark","inherit"].includes(t.colorScheme)?e.style.colorScheme=t.colorScheme:e.style.removeProperty("color-scheme"))}}class t5 extends tQ{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=t5.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=L(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&W(this.xSetting)&&this.attr({x:this.xSetting}),this.updateTextPadding())}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=H(t),t5.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e||"width"in e?this.updateTextPadding():"textOverflow"in e&&this.updateBoxSize(),"color"in e&&this.updateBackground()}return tQ.prototype.css.call(this,t)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),tQ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){(this.textStr&&0===this.bBox.width&&0===this.bBox.height||this.rotation)&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=this.paddingLeft??i,h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1),this.updateBackground()}onAdd(){this.text.add(this),this.attr({text:this.textStr??"",x:this.x||0,y:this.y||0}),this.box&&M(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){W(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=this["text-align"]=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBackground(){"contrast"===this.fill&&this.box?.attr({fill:this.renderer.getContrast(this.text.styles.color||"#000"),"fill-opacity":.65})}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!W(this.widthSetting)||!W(this.heightSetting)||this.textAlign)&&M(e.textStr)?e.getBBox(void 0,0):t5.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(S(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+L(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=W(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=this.paddingLeft??t,i=this.paddingRight??t;return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.anchorX&&(this["forceAnimate:anchorX"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.anchorY&&(this["forceAnimate:anchorY"]=!0),this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}function t6(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=o.r??i,l=o.r??(s||i),d=1e-4>Math.abs(n-a-2*Math.PI);d&&(a=Math.PI/2,n=2.5*Math.PI-1e-4);let c=o.innerR,p=o.open??d,u=d?0:Math.cos(a),g=d?1:Math.sin(a),m=d?0:Math.cos(n),f=d?1:Math.sin(n),x=o.longArc??(n-a-Math.PI<1e-4?0:1),y=["A",h,l,0,x,o.clockwise??1,t+(d?.001:h*m),e+l*f];y.params={start:a,end:n,cx:t,cy:e},r.push(["M",t+h*u,e+l*g],y),M(c)&&((y=["A",c,c,0,x,M(o.clockwise)?1-o.clockwise:0,t+(d?-.001:c*u),e+c*g]).params={start:n,end:a,cx:t,cy:e},r.push(p?["M",t+c*m,e+c*f]:["L",t+c*m,e+c*f],y)),p||r.push(["Z"])}return r}function t8(t,e,i,s,o){return o?.r?t4(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}function t4(t,e,i,s,o){let r=o?.r||0;return[["M",t+r,e],["L",t+i-r,e],["A",r,r,0,0,1,t+i,e+r],["L",t+i,e+s-r],["A",r,r,0,0,1,t+i-r,e+s],["L",t+r,e+s],["A",r,r,0,0,1,t,e+s-r],["L",t,e+r],["A",r,r,0,0,1,t+r,e],["Z"]]}t5.emptyBBox={width:0,height:0,x:0,y:0},t5.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let t9={arc:t6,callout:function(t,e,i,s,o){let r=o?.arrowLength??6,a=Math.min(o?.r||0,i,s),n=a+6,h=o?.anchorX,l=o?.anchorY||0,d=t4(t,e,i,s,{r:a});if(!W(h)||h<i&&h>0&&l<s&&l>0)return d;if(t+h>i-n)if(l>e+n&&l<e+s-n)d.splice(3,1,["L",t+i,l-6],["L",t+i+r,l],["L",t+i,l+6],["L",t+i,e+s-a]);else if(h<i){let o=l<e+n,r=o?e:e+s;d.splice(o?2:5,0,["L",h,l],["L",t+i-a,r])}else d.splice(3,1,["L",t+i,s/2],["L",h,l],["L",t+i,s/2],["L",t+i,e+s-a]);else if(t+h<n)if(l>e+n&&l<e+s-n)d.splice(7,1,["L",t,l+6],["L",t-r,l],["L",t,l-6],["L",t,e+a]);else if(h>0){let i=l<e+n,o=i?e:e+s;d.splice(i?1:6,0,["L",h,l],["L",t+a,o])}else d.splice(7,1,["L",t,s/2],["L",h,l],["L",t,s/2],["L",t,e+a]);else l>s&&h<i-n?d.splice(5,1,["L",h+6,e+s],["L",h,e+s+r],["L",h-6,e+s],["L",t+a,e+s]):l<0&&h>n&&d.splice(1,1,["L",h-6,e],["L",h,e-r],["L",h+6,e],["L",i-a,e]);return d},circle:function(t,e,i,s){return t6(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:t8,roundedRect:t4,square:t8,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:t7,SVG_NS:et,win:ee}=h,ei=(t,e)=>t.substring(0,e)+"…",es=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e?.lineHeight,this.textOutline=e?.textOutline,this.ellipsis=e?.textOverflow==="ellipsis",this.lineClamp=e?.lineClamp,this.noWrap=e?.whiteSpace==="nowrap"}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=(t.textStr??"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||/<br.*?>/g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new tR(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["&lt;","&gt;"])),a&&a.removeChild(e)}}else e.appendChild(t7.createTextNode(this.unescapeEntities(s)));j(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=m(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),m(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,ei),t.textContent&&(t.textContent=t.textContent?.replace("…","")+"…"));break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(t7.createTextNode(e),t);let s=t7.createElementNS(et,"tspan");s.textContent="​",m(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,ei)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ee.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ee.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a?.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e?.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),S(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),A(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h,l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let m=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch{}return c[r]};if(l.rotation=0,s+(h=m(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),h=m(g,n&&n.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ei)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return V(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:eo}=ty,{charts:er,deg2rad:ea,doc:en,isFirefox:eh,isMS:el,isWebKit:ed,noop:ec,SVG_NS:ep,symbolSizes:eu,win:eg}=h;class em{constructor(t,e,i,s,o,r,a,n,h){let l,d;this.x=0,this.y=0;let c=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),u=c.element;t.appendChild(u),m(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&m(u,"xmlns",this.SVG_NS),this.box=u,this.boxWrapper=c,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(en.createTextNode("Created with Highcharts 13.1.1")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.chartIndex=h||0,this.gradients={},this.cache={},this.cacheKeys=[],this.asyncCounter=0,this.rootFontSize=c.getStyle("font-size"),this.setSize(e,i,!1),a||(c.css(this.getStyle(s||{})),this.palette=new t3(this,n||eo.palette)),eh&&t.getBoundingClientRect&&((l=function(){v(t,{left:0,top:0}),d=t.getBoundingClientRect(),v(t,{left:Math.ceil(d.left)-d.left+"px",top:Math.ceil(d.top)-d.top+"px"})})(),this.unSubPixelFix=p(eg,"resize",l))}definition(t){return new tR([t]).addToDOM(this.defs.element)}getReferenceURL(){if((eh||ed)&&en.getElementsByTagName("base").length){if(!M(e)){let t=tl(),i=new tR([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(en.body);v(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=en.elementFromPoint(6,6);e=s?.id==="hitme",en.body.removeChild(i)}if(e)return q(eg.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=S({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),w(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects.length=0,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=H({color:"#000000",offsetX:0,offsetY:2,opacity:.05,width:6},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new es(t).buildSVG()}getContrast(t){if("transparent"===t)return"#000000";let e=tw.parse(t).rgba,i=" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";if(W(e[0])||!tw.useColorMix){let t=e.map(t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}return"color(from "+t+" srgb"+i+i+i+")"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,u=arguments,g=0;o=H(eo.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let m=o.states||{},f=o.style||{};delete o.states,delete o.style;let x=[tR.filterUserAttributes(o)],y=[f];return c||["hover","select","disabled"].forEach((t,e)=>{x.push(H(x[0],tR.filterUserAttributes(u[e+5]||m[t]||{}))),y.push(x[e+1].style),delete x[e+1].style}),p(d.element,el?"mouseover":"mouseenter",function(){3!==g&&d.setState(1)}),p(d.element,el?"mouseout":"mouseleave",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(x[t]);let e=y[t];F(e)&&d.css(e)}},d.attr(x[0]),!c&&(d.css(S({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==g&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return M(i[1])&&i[1]===s[1]&&(i[1]=s[1]=b(i[1],e)),M(i[2])&&i[2]===s[2]&&(i[2]=s[2]=b(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return G(t)?e.d=t:F(t)&&S(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=F(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;F(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=F(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,S(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,m(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:i??!0?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};W(e)&&(a.x=e),W(i)&&(a.y=i),W(s)&&(a.width=s),W(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new eg.Image;p(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l,d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),S(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&S(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=r?.width??eu[h]?.width,s.imgheight=r?.height??eu[h]?.height,l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),m(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),M(e)&&s.attr({x:e,y:i}),s.isImg=!0,M(s.imgwidth)&&M(s.imgheight)?l(s):(s.attr({width:0,height:0}),y("img",{onload:function(){let t=er[d.chartIndex];0===this.width&&(v(this,{position:"absolute",top:"-999em"}),en.body.appendChild(this)),eu[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.asyncCounter--,d.asyncCounter||!t||t.hasLoaded||t.onload()},src:h}),this.asyncCounter++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),M(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;i<s.length;i++)(r=s[i]).getAttribute(e)===o&&r.setAttribute(e,t);i.setAttribute(e,t)}),r}fontMetrics(t){let e=W(t)?t:Z(tQ.prototype.getStyle.call(t,"font-size")||0),i=e<24?e+3:Math.round(1.2*e),s=Math.round(.8*i);return{h:i,b:s,f:e}}rotCorr(t,e,i){let s=t;return e&&i&&(s=Math.max(s*Math.cos(e*ea),4)),{x:-t/3*Math.sin(e*ea),y:s}}pathToSegments(t){let e=[],i=[],s={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let o=0;o<t.length;o++)j(i[0])&&W(t[o])&&i.length===s[i[0].toUpperCase()]&&t.splice(o,0,i[0].replace("M","L").replace("m","l")),"string"==typeof t[o]&&(i.length&&e.push(i.slice(0)),i.length=0),i.push(t[o]);return e.push(i.slice(0)),e}label(t,e,i,s,o,r,a,n,h){return new t5(this,t,e,i,s,o,r,a,n,h)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}S(em.prototype,{Element:tQ,SVG_NS:ep,escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},symbols:t9,draw:ec}),h.Renderer=em;let{composed:ef,isFirefox:ex}=h;class ey extends tQ{static compose(t){_(ef,"HTMLElement")&&(t.prototype.html=function(t,e,i){return new ey(this,"div").attr({text:t,x:Math.round(e),y:Math.round(i),xmlns:"http://www.w3.org/1999/xhtml"})})}constructor(t,e){super(t,e),this.foreignObject=t.createElement("foreignObject").attr({zIndex:2}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=Z(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden",(t.lineClamp??this.styles.lineClamp)||(t.whiteSpace="nowrap")),t?.lineClamp?(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"):t?.lineClamp===0&&(t.display="inline-block"),W(Number(t?.fontSize))&&(t.fontSize+="px"),S(this.styles,t),v(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){let t;if(!this.added){this.alignOnAdd=!0;return}let{element:e,foreignObject:i,oldTextWidth:s,renderer:o,rotation:r,scaleX:a,styles:{display:n="inline-block",whiteSpace:h},textAlign:l="left",textWidth:d,x:c=0,y:p=0}=this,u=()=>this.textPxLength?this.textPxLength:(v(e,{width:"",whiteSpace:h||"nowrap"}),e.offsetWidth),g=[r,l,e.innerHTML,d,this.textAlign].join(",");if(v(e,{display:"inline-block",verticalAlign:"top"}),d!==s){let t=u(),i=d||0,l=!o.styledMode&&""===e.style.textOverflow&&e.style.webkitLineClamp;(i>s||t>i||l)&&(/[\-\s\u00AD]/.test(e.textContent||e.innerText)||"ellipsis"===e.style.textOverflow)&&(v(e,{width:(r||a||t>i)&&W(d)?d+"px":l?Math.min(t+1,i)+"px":"auto",display:n,whiteSpace:h||"normal"}),this.oldTextWidth=d)}i.attr({width:o.width,height:o.height}),g!==this.cTT&&(t=o.fontMetrics(e).b,this.getSpanCorrection(!M(r)&&!this.textWidth&&this.textPxLength||e.offsetWidth,t,L(l))),super.updateTransform(),W(c)&&W(p)?(i.attr({x:c+(this.xCorr||0),y:p+(this.yCorr||0),width:e.offsetWidth+4,height:e.offsetHeight+1,"transform-origin":e.getAttribute("transform-origin")||"0 0"}),v(e,{display:n,textAlign:l})):ex&&i.attr({width:0,height:0}),this.cTT=g}add(t){let{foreignObject:e}=this;return e.add(t),super.add(e),this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.oldTextWidth,tR.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}visibilitySetter(t,e){this.foreignObject.attr({[e]:t}),this[e]=t}}let eb=ey.prototype;eb.ySetter=eb.xSetter,eb.opacitySetter=eb.visibilitySetter,(iv=e9||(e9={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",boundary:void 0,range:!1},day:{main:"%[eb]",boundary:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]",boundary:void 0},year:{main:"%[Y]",boundary:void 0}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"var(--highcharts-neutral-color-80)",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"var(--highcharts-neutral-color-5)",minorGridLineWidth:1,minorTickColor:"var(--highcharts-neutral-color-40)",lineColor:"var(--highcharts-neutral-color-80)",lineWidth:1,gridLineColor:"var(--highcharts-neutral-color-10)",gridLineWidth:void 0,tickColor:"var(--highcharts-neutral-color-80)"},iv.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){return this.axis.chart.numberFormatter(this.total||0,-1)},style:{color:"var(--highcharts-neutral-color-100)",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0};let ev=e9;(e7||(e7={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},V(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(J(t,i,t.eventOptions[i]),delete t.eventOptions[i]),X(e)&&(t.eventOptions[i]=e,p(t,i,e,{order:0})))})};let eM=e7,{deg2rad:ew}=h,ek=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,A(this,"init"),i||s||this.addLabel()}addLabel(){let t,e,i,s=this,o=s.axis,r=o.options,a=o.chart,n=o.categories,h=o.logarithmic,l=o.names,d=s.pos,c=s.options?.labels??r.labels,p=o.tickPositions,u=d===p[0],g=d===p[p.length-1],m=p.info,f=m?.boundaryTicks[d],y=r.dateTimeLabelFormats,b=this.parameters.category||(n?n[d]??l[d]??d:d);if(h&&W(b)&&(b=x(h.lin2log(b))),o.dateTime&&y)if(m){let i=m.unitName,s={millisecond:"hour",second:"hour",minute:"hour",hour:"day",day:"month",week:"month",month:"year",year:"year"}[i],o=!r.grid?.enabled&&f&&s&&y[s]?.boundary||y[i];t=(e=a.time.resolveDTLFormat(o)).main}else W(b)&&(t=o.dateTime.getXDateFormat(b,y||{}));s.isFirst=u,s.isLast=g,s.boundary=f;let v={axis:o,chart:a,dateTimeLabelFormat:t,boundary:f,isFirst:u,isLast:g,pos:d,tick:s,tickPositionInfo:m,value:b};A(this,"labelFormat",v);let M=t=>c.formatter?c.formatter.call(t,t):c.format?(t.text=o.defaultLabelFormatter.call(t),tY.format(c.format,t,a)):o.defaultLabelFormatter.call(t);s.label=s.createLabel(M.call(v,v),c);let w=e?.list,k=s.label;w&&k?s.shortenLabel=function(){for(i=0;i<w.length;i++)if(S(v,{dateTimeLabelFormat:w[i]}),k.attr({text:M.call(v,v)}),k.getBBox().width<o.getSlotWidth(s)-2*(c.padding||0))return;k.attr({text:""})}:s.shortenLabel=void 0}createLabel(t,e,i){let s=this.axis,{renderer:o,styledMode:r}=s.chart,a=e.style,n=a.whiteSpace,h=this.label;return M(t)&&e.enabled?h||(h=o.text(t,i?.x,i?.y,e.useHTML).add(s.labelGroup)):h&&(h=h.destroy(),this.isNewLabel=!0),h&&(h.labelStyle!==a||t!==h.textStr)&&(h.labelStyle=a,t!==h.textStr&&(h.attr({text:t}),delete h.textPxLength),r||h.css(H(a)),h.textPxLength??(h.textPxLength=h.getBBox().width),!r&&n&&h.css({whiteSpace:n})),h}destroy(){w(this,this.axis)}getPosition(t,e,i,s){let o=this.axis,r=o.chart,a=s&&r.oldChartHeight||r.chartHeight,n={x:t?x(o.translate(e+i,void 0,void 0,s)+o.transB):o.left+o.offset+(o.opposite?(s&&r.oldChartWidth||r.chartWidth)-o.right-o.left:0),y:t?a-o.bottom+o.offset-(o.opposite?o.height:0):x(a-o.translate(e+i,void 0,void 0,s)-o.transB)};return n.y=f(n.y,-1e9,1e9),A(this,"afterGetPosition",{pos:n}),n}getLabelPosition(t,e,i,s,o,r,a,n){let h,l,d=this.axis,{labelAlign:c,side:p,staggerLines:u,transA:g}=d,m=d.linkedParent?d.linkedParent.reversed:d.reversed,f=d.tickRotCorr||{x:0,y:0},x=s||d.reserveSpaceDefault?0:-(d.labelOffset||0)*("center"===d.labelAlign?.5:1),y=o.distance??((1!==p||"right"!==c||o.reserveSpace)&&(3!==p||"left"!==c||o.reserveSpace)?15:0),b={};return h=0===p?i.rotation?-y:-i.getBBox().height:2===p?f.y+y:Math.cos(i.rotation*ew)*(f.y-i.getBBox(!1,0).height/2),M(o.y)&&(h=0===p&&d.horiz?o.y+h:o.y),t=t+(o.x??[0,1,0,-1][p]*y)+x+f.x-(r&&s?r*g*(m?-1:1):0),e=e+h-(r&&!s?r*g*(m?1:-1):0),u&&(l=a/(n||1)%u,d.opposite&&(l=u-l-1),e+=l*(d.labelOffset/u)),b.x=t,b.y=Math.round(e),A(this,"afterGetLabelPosition",{pos:b,tickmarkOffset:r,index:a}),b}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(t,e,i,s,o=!1,r){return r.crispLine([["M",t,e],["L",t+(o?0:-i),e+(o?i:0)]],s)}handleOverflow(t){let{axis:e,label:i}=this,s=e.options.labels,o=t.x,{chartWidth:r,spacing:a}=e.chart,n=e.labelLeft??Math.min(e.pos,a[3]),h=e.labelRight??Math.max(e.isRadial?0:e.pos+e.len,r-a[1]),l=i?.rotation||0,d=L(e.labelAlign||i?.attr("align")),c=i?.getBBox().width||0,p=e.getSlotWidth(this),u=p,g=1,m;l||"justify"!==s.overflow?l<0&&o-d*c<n?m=Math.round(o/Math.cos(l*ew)-n):l>0&&o+d*c>h&&(m=Math.round((r-o)/Math.cos(l*ew))):(o-d*c<n?u=t.x+u*(1-d)-n:o+(1-d)*c>h&&(u=h-t.x+u*d,g=-1),(u=Math.min(p,u))<p&&"center"===e.labelAlign&&(t.x+=g*(p-u-d*(p-Math.min(c,u)))),(c>u||e.autoRotation&&i?.styles?.width)&&(m=u)),m&&i&&(this.shortenLabel?this.shortenLabel():i.css({width:Math.floor(m)+"px",lineClamp:+!e.isRadial}))}render(t,e,i){let s=this.axis,o=(e?s.old?.horiz:void 0)??s.horiz,r=this.pos,a=this.tickmarkOffset??s.tickmarkOffset,n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;s.visible||(i=0);let u=i??1;!s.chart.polar&&(x(p)<d||p>c)&&(i=0),i??(i=1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,A(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=this.tickmarkOffset??i.tickmarkOffset,{renderer:h,styledMode:l}=i.chart,d=this.gridLine,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(o["stroke-width"]=c||0),d||(a||(o.zIndex=1),this.gridLine=d=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup));let g=i.getPlotLinePath({value:r+n,lineWidth:d.strokeWidth(),force:"pass",old:t,acrossPanes:!1});g&&(o.d=g,o.opacity=t?0:e,l||(o.stroke=p,o.dashstyle=u),d[t||this.isNew?"attr":"animate"](o))}renderMark(t,e){let i=this.axis,{chart:s,options:o}=i,r=s.renderer,a=this.type,n=i.tickSize(a?a+"Tick":"tick"),h=t.x,l=t.y,d=o["minor"!==a?"tickWidth":"minorTickWidth"]??(!a&&i.isXAxis?1:0),c=o["minor"!==a?"tickColor":"minorTickColor"],p=this.mark,u=p?"animate":"attr";(n||p)&&(i.opposite&&n&&(n[0]=-n[0]),p||(this.mark=p=r.path().addClass("highcharts-"+(a?a+"-":"")+"tick").add(i.axisGroup)),s.styledMode||p[u]({stroke:c,"stroke-width":d}),p[u]({d:this.getMarkPath(h,l,n?.[0]||0,p.strokeWidth(),i.horiz,r),opacity:n?e:0}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=this.tickmarkOffset??o.tickmarkOffset,c=t.x,p=t.y,u=!0;n&&W(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?r&&!e&&0!==i&&this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&W(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}},{xAxis:eC,yAxis:eT}=ev,{parse:eS}=tw,{defaultOptions:eP}=ty,{registerEventOptions:eA}=eM,{deg2rad:eL}=h,eO=(t,e)=>Y(e,void 0,void 0,t.options.allowDecimals??(e<.5||void 0!==t.tickAmount),!!t.tickAmount);S(eP,{xAxis:eC,yAxis:H(eC,eT)});let eE=class{constructor(t,e,i){this.clippable=!0,this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,A(this,"init",{userOptions:e}),this.opposite=e.opposite??this.opposite,this.side=e.side??(o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type=r.type||"linear",this.uniqueNames=r.uniqueNames??!0,A(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=r.reversed,this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=G(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[]),this.namesMap||(this.namesMap={}),this.plotLinesAndBandsGroups||(this.plotLinesAndBandsGroups={}),this.positiveValuesOnly=!!this.logarithmic,this.ticks||(this.ticks={}),this.labelEdge||(this.labelEdge=[]),this.minorTicks||(this.minorTicks={}),this.alternateBands||(this.alternateBands={}),this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.max=void 0,this.min=void 0;let n=r.crosshair??Q(t.options.tooltip?.crosshairs)[+!s];this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),tn(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!M(this.reversed)&&(this.reversed=!0),this.labelRotation=W(a.rotation)?a.rotation:void 0,eA(this,r),A(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:1===this.side?90:-90}};this.options=H(e,"yAxis"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},eP[this.coll],t),A(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,e=this.chart,{numberFormatter:i}=e,s=W(this.value)?this.value:0/0,o=t.chart.time,r=t.categories,a=this.dateTimeLabelFormat,n=eP.lang,h=n.numericSymbols,l=n.numericSymbolMagnitude||1e3,d=t.logarithmic?Math.abs(s):t.tickInterval,c=h?.length,p,u;if(r)u=`${this.value}`;else if(a)u=o.dateFormat(a,s,!0);else if(c&&h&&d>=1e3)for(;c--&&void 0===u;)d>=(p=Math.pow(l,c+1))&&10*s%p==0&&null!==h[c]&&0!==s&&(u=i(s/p,-1,void 0,void 0,e)+h[c]);return u??(u=i(s,-1,void 0,1e4>Math.abs(s)?"":void 0,e)),u}getSeriesExtremes(){let t,e=this;A(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,W(a)||a instanceof Date||(o=o.filter(W),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(e.dataMin??a,a),e.dataMax=Math.max(e.dataMax??n,n)));else{let t=i.applyExtremes();W(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(e.dataMin??a,a)),W(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(e.dataMax??n,n)),M(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),A(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!W(n))return 0/0;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&!!a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-h)/p+n,l&&(u=a.lin2val(u))):(l&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*h+(W(r)?p*r:0),a.isRadial||(u=x(u)),1e-9>Math.abs(u)&&(u=0)),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??0/0,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,{chart:i,left:s,top:o,transB:r}=e,{lineWidth:a,old:n,value:h}=t,l=(n?e.old?.horiz:void 0)??e.horiz,d=n&&i.oldChartHeight||i.chartHeight,c=n&&i.oldChartWidth||i.chartWidth,p=t.translatedValue,u=t.force,g,m,x,y,b;function v(t,e,i){return"pass"!==u&&(t<e||t>i)&&(u?t=f(t,e,i):b=!0),t}let M={value:h,lineWidth:a,old:n,force:u,acrossPanes:t.acrossPanes,translatedValue:p};return A(this,"getPlotLinePath",M,function(t){g=x=(p=f(p=p??e.translate(h,void 0,void 0,n),-1e9,1e9))+r,m=y=d-p-r,W(p)?l?(m=o,y=d-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=x=v(g,s,s+e.width)):(g=s,x=c-e.right+(i.scrollablePixelsX||0),m=y=v(m,o,o+e.height)):(b=!0,u=!1),t.path=b&&!u?void 0:i.renderer.crispLine([["M",g,m],["L",x,y]],a||1)}),M.path}getLinearTickPositions(t,e,i){let s,o,r,a=x(Math.floor(e/t)*t),n=x(Math.ceil(i/t)*t),h=[];if(x(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=x(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?e??"auto":!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i<this.len/3){let s=this.logarithmic;if(s)this.paddedTicks.forEach(function(t,e,o){e&&n.push.apply(n,s.getLogTickPositions(i,o[e-1],o[e],!0))});else if(this.dateTime&&"auto"===this.getMinorTickInterval())n=n.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(i),o,r,t.startOfWeek));else for(h=o+(e[0]-o)%i;h<=r&&h!==n[0];h+=i)n.push(h)}return 0!==n.length&&this.trimTicks(n),n}adjustForMinRange(){let t=this.options,e=this.logarithmic,i=this.chart.time,{max:s,min:o,minRange:r}=this,a,n,h,l;this.isXAxis&&void 0===r&&!e&&(r=M(t.min)||M(t.max)||M(t.floor)||M(t.ceiling)?null:Math.min(5*(O(this.series.map(t=>{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),W(s)&&W(o)&&W(r)&&s-o<r&&(n=this.dataMax-this.dataMin>=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=g(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=u(l))-o<r&&(h[0]=s-r,h[1]=i.parse(t.min)??s-r,o=g(h))),this.minRange=r,this.min=o,this.max=s}getClosest(){let t,e;if(this.categories)e=1;else{let i=[];this.series.forEach(function(t){let s=t.closestPointRange,o=t.getColumn("x");1===o.length?i.push(o[0]):t.sorted&&M(s)&&t.reserveSpace()&&(e=M(e)?Math.min(e,s):s)}),i.length&&(i.sort((t,e)=>t-e),t=O([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t,e){let i,s=G(this.options.categories),{name:o,series:r}=t,a=s?this.categories:this.names,n=this.namesMap;return r.requireSorting=!1,M(e)||(e=this.uniqueNames&&a?s?a.indexOf(o):n[o]??-1:r.autoIncrement()),-1===e?!s&&a&&(i=a.length):W(e)&&(i=e),void 0!==i?(this.names[i]=t.name,n[t.name]=i):i=W(t.x)?t.x:r.autoIncrement(),i}updateNames(){let t=this,{names:e,namesMap:i}=this;e.length>0&&(Object.keys(i).forEach(function(t){delete i[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{if(e.xIncrement=null,delete e.xColumn,!e.points||e.isDirtyData)t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints();else{let t=e.getColumn("x");e.points?.forEach(e=>{e.x=t[e.index]})}}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?e.options.pointRange??a??0:t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&j(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal?.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,A(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return W(t)&&W(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=W(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,softMax:m,softMin:f}=h,y=this.linkedParent,b=h.tickPixelInterval,v=h.maxPadding,w=h.minPadding,k=0,C,T=W(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,S,P,L,O;if(r||e||y||this.getTickAmount(),L=this.userMin??d.parse(h.min),O=this.userMax??d.parse(h.max),y?(C=y.getExtremes(),this.min=C.min??C.dataMin,this.max=C.max??C.dataMax,this.type!==y.type&&ta(11,!0,i)):(l&&M(c)&&W(s)&&W(o)&&(o>=c?(S=c,w=0):s<=c&&(P=c,v=0)),this.min=L??S??o,this.max=O??P??s),W(this.max)&&W(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,o??this.min)&&ta(10,!0,i),this.min=x(n.log2lin(this.min),16),this.max=x(n.log2lin(this.max),16)),this.range&&W(o)&&(this.userMin=this.min=L=Math.max(o,this.minFromRange()||0),this.userMax=O=this.max,this.range=void 0)),A(this,"foundExtremes"),this.adjustForMinRange(),W(this.min)&&W(this.max)){if(!W(this.userMin)&&W(f)&&f<this.min&&(this.min=L=f),!W(this.userMax)&&W(m)&&m>this.max&&(this.max=O=m),e||this.axisPointRange||this.stacking?.usePercentage||y||(k=this.max-this.min)&&(!M(L)&&w&&(this.min-=k*w),!M(O)&&v&&(this.max+=k*v)),!W(this.userMin)&&W(g)&&(this.min=Math.max(this.min,g)),!W(this.userMax)&&W(u)&&(this.max=Math.min(this.max,u)),l&&W(o)&&W(s)){let t=c||0;!M(L)&&this.min<t&&o>=t?this.min=h.minRange?Math.min(t,this.max-p):t:!M(O)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(M(h.min)?this.max=this.min:M(h.max)&&(this.min=this.max)),k=this.max-this.min}if(this.min!==this.max&&W(this.min)&&W(this.max)?y&&!T&&b===y.options.tickPixelInterval?this.tickInterval=T=y.tickInterval:this.tickInterval=T??(this.tickAmount?k/Math.max(this.tickAmount-1,1):e?1:k*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),A(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),A(this,"initialAxisTranslation"),this.pointRange&&!T&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let E=h.minTickInterval??(r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!T&&E&&this.tickInterval<E&&(this.tickInterval=E),r||n||T||(this.tickInterval=eO(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){let t=this.options,e=t.tickPositions,i=t.tickPositioner,s=this.getMinorTickInterval(),o=!this.isPanning,r=o&&t.startOnTick,a=o&&t.endOnTick,n=[],h;if(this.tickmarkOffset=this.categories&&"between"===t.tickmarkPlacement&&1===this.tickInterval?.5:0,this.single=this.min===this.max&&M(this.min)&&!this.tickAmount&&(this.min%1==0||!1!==t.allowDecimals),e)n=e.slice();else if(W(this.min)&&W(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))n=[this.min,this.max],ta(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=eO(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max,this]))&&(n=h))}this.isDirty||n.length===this.tickPositions?.length||(this.isDirty=!0),this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.linkedParent&&W(this.min)&&W(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),A(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(A(this,"trimTicks"),!this.linkedParent||!this.grid){if(e&&W(s))this.min=s;else if(t.length)for(;this.min-r>t[0];)t.shift();if(i&&W(o))this.max=o;else for(;this.max+r<t[t.length-1];)t.pop();0===t.length&&M(s)&&!this.options.tickPositions&&t.push((o+s)/2)}}alignToOthers(){let t,e=this,i=e.chart,s=[this],o=e.options,r=i.options.chart,a="yAxis"===this.coll&&r.alignThresholds,n=[];if(e.thresholdAlignment=void 0,(!1!==r.alignTicks&&o.alignTicks||a)&&!1!==o.startOnTick&&!1!==o.endOnTick&&!e.logarithmic){let o=t=>{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);W(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!W(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData||t.xAxis?.isDirty))&&this.getSeriesExtremes(),W(this.threshold)){let t=f((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;M(t.tickInterval)||i||!(this.len<e)||this.isRadial||this.logarithmic||!t.startOnTick||!t.endOnTick||(i=2),!i&&this.alignToOthers()&&(i=Math.ceil(this.len/e)+1),i<4&&(this.finalTickAmt=i,i=5),this.tickAmount=i}adjustTickAmount(){let t=this,{finalTickAmt:e,max:i,min:s,options:o,tickPositions:r,tickAmount:a,thresholdAlignment:n}=t,h=r?.length,l=t.threshold??(t.softThreshold?0:null),d,c,p=t.tickInterval,u,g=()=>r.push(x(r[r.length-1]+p)),m=()=>r.unshift(x(r[0]-p));if(W(n)&&(u=0===n?0:1===n?a-1:Math.round(f(n*(a-1),1,a-2)),o.reversed&&(u=a-1-u)),t.hasData()&&W(s)&&W(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(W(u)&&W(t.threshold)){for(;r[u]!==l||r.length!==a||r[0]>s||r[r.length-1]<i;){for(r.length=0,r.push(t.threshold);r.length<a;)void 0===r[u]||r[u]>t.threshold?m():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(h<a){for(;r.length<a;)r.length%2||s===l?g():m();n()}if(M(e)){for(c=d=r.length;c--;)(3===e&&c%2==1||e<=2&&c>0&&c<d-1)&&r.splice(c,1);t.finalTickAmt=void 0}}}setScale(){let{chart:t,coll:e,options:i,stacking:s}=this,{linkedTo:o}=i,r=t[e]||[],a=r.indexOf(this),n=j(o)?B(r,t=>t.options.id===o):W(o)?r[o]:void 0,h=this.linkedParent=n===this?void 0:n;h&&a>-1&&r.indexOf(h)>a&&h.setScale();let l=!1,d=!1;this.series.forEach(t=>{l=l||t.isDirtyData||t.isDirty,d=d||t.xAxis?.isDirty||!1}),this.setAxisSize();let c=this.len!==this.old?.len;c||l||d||this.linkedParent||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(s&&"yAxis"===e&&s.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),s&&"xAxis"===e&&s.buildStacks(),this.isDirty||(this.isDirty=c||this.min!==this.old?.min||this.max!==this.old?.max)):s&&s.cleanStacks(),l&&delete this.allExtremes,A(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),A(this,"setExtremes",o=S(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(K(e.width??t.plotWidth-i[3]+i[1],t.plotWidth)),r=this.height=Math.round(K(e.height??t.plotHeight-i[0]+i[2],t.plotHeight)),a=this.top=Math.round(K(e.top??t.plotTop+i[0],t.plotHeight,t.plotTop)),n=this.left=Math.round(K(e.left??t.plotLeft+i[3],t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?x(t.lin2log(this.min)):this.min,max:t?x(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||-1/0===t?t=i:1/0===t?t=s:i>t?t=i:s<t&&(t=s),this.translate(t,0,1,0,1)}autoLabelAlign(t){let e=((t-90*this.side)%360+360)%360,i={align:"center"};return A(this,"autoLabelAlign",i,function(t){e>15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=e["tick"===t?"tickWidth":"minorTickWidth"]??("tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o,prefix:t};return A(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/((+!!this.categories+this.max-this.min)/s),r=t.rotation,a=x(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&1/0!==t&&1/0!==o&&n&&(i=Math.ceil(n/s)),x(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(W(r)?p=[r]:o<t.autoRotationLimit&&(p=t.autoRotation)),p){let t,e;for(let i of p)(i===r||i&&i>=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(eL*i))))+Math.abs(i/360))<c&&(c=e,d=i,l=t)}}else l=h(.75*a);return this.autoRotation=p,this.labelRotation=d??(W(r)?r:0),t.step?s:l}getSlotWidth(t){let e=this.chart,i=this.horiz,s=this.options.labels,o=Math.max(this.tickPositions.length-!this.categories,1),r=e.margin[3];if(t&&W(t.slotWidth))return t.slotWidth;if(i&&s.step<2&&!this.isRadial)return s.rotation?0:(this.staggerLines||1)*this.len/o;if(!i){let t=s.style.width;if(void 0!==t)return parseInt(String(t),10);if(!this.opposite&&r)return r-e.spacing[3]}return .33*e.chartWidth}renderUnsquish(){let t=this.chart,e=t.renderer,i=this.tickPositions,s=this.ticks,o=this.options.labels,r=o.style,a=this.horiz,n=this.getSlotWidth(),h=Math.max(1,Math.round(n-(a?2*(o.padding||0):o.distance??15))),l={},d=this.labelMetrics(),c=r.lineClamp,p,u=c??(Math.floor(this.len/(i.length*d.h))||1),g=0;j(o.rotation)||(l.rotation=o.rotation||0),i.forEach(function(t){g=Math.max(g,s[t].label?.textPxLength||0)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation||0),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e?.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"DIV"===i.element.tagName)?i.css(S(a,{width:`${p}px`,lineClamp:u})):(i.styles.width||i.textWidth||i.styles.lineClamp)&&!a.width&&!o&&i.css({width:"auto",lineClamp:0}))},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&M(this.min)&&M(this.max)}addTitle(t){let e=this.chart.renderer,i=this.horiz,s=this.opposite,o=this.options.title,r=this.chart.styledMode,a=o.textAlign||(i?{low:"left",middle:"center",high:"right"}:{low:s?"right":"left",middle:"center",high:s?"left":"right"})[o.align],n={text:o.text||"",zIndex:7,align:a},h={rotation:o.rotation||0},l=this.axisTitle;if(l?l.attr(n).animate(h):((l=e.text("",0,0,o.useHTML).attr(S(n,h)).addClass("highcharts-axis-title")).add(this.axisGroup),l.isNew=!0),!r){let t=H(o.style);o.style.width||this.isRadial||(t.width=this.len+"px"),l.css(t)}l[t?"show":"hide"](t),this.axisTitle=l}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new ek(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r)=>o.g(e).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);(this.axisGroup||(this.axisGroup=r("axis",""))).attr({zIndex:s.zIndex}),(this.gridGroup||(this.gridGroup=r("grid","-grid"))).clip(this.clippable?e.plotClipInner:void 0).attr({zIndex:s.gridZIndex}),(this.labelGroup||(this.labelGroup=r("axis-labels","-labels"))).attr({zIndex:s.labels.zIndex})}shuffleTicks(){let t=this.ticks,e=this.old?.names,i=t=>new Set(t).size!==t.length;if("category"===this.type&&e&&!i(e)&&!i(this.names)){e.forEach((i,s)=>{let o=this.namesMap[i];M(o)&&s!==o&&(t[s]&&(t[s].pos=o,this.isDirty=!0),t[o]&&-1===this.names.indexOf(e[o])&&(t[o].pos=0/0))});let i=Object.values(t);Object.keys(t).forEach(e=>{delete t[e]}),i.forEach(e=>{isNaN(e.pos)?e.destroy():t[e.pos]=e})}}getOffset(){let{chart:t,horiz:e,options:i,side:s,ticks:o,tickPositions:r,coll:a}=this,n=this.hasData(),h=i.title,l=i.labels,d=W(i.crossing),c=t.axisOffset,p=t.clipOffset,u=[-1,1,1,-1][s],g=l.distance??15,m=this.tickRotCorr||{x:0,y:0},f=0,x,y=0,b,v=0,w=0,k,C,T;if(this.showAxis=x=n||i.showEmpty,this.staggerLines=this.horiz&&l.staggerLines||void 0,this.createGroups(),n||this.linkedParent?(this.shuffleTicks(),r.forEach(this.generateTick.bind(this)),this.renderUnsquish(),f=Math.abs((m=this.tickRotCorr).x),T=this.reserveSpaceDefault=0===s||2===s||({1:"left",3:"right"})[s]===this.labelAlign,(l.reserveSpace??(!d&&null)??("center"===this.labelAlign||null)??T)&&r.forEach(function(t){w=Math.max(o[t].getLabelSize(),w)}),this.staggerLines&&(w*=this.staggerLines),!e&&W(this.labelRotation)&&T&&(w-=f),this.labelOffset=w*(this.opposite?-1:1)):V(o,function(t,e){t.destroy(),delete o[e]}),h?.text&&!1!==h.enabled?(this.addTitle(x),x&&!d&&!1!==h.reserveSpace&&(this.titleOffset=y=this.axisTitle.getBBox()[e?"height":"width"],v=M(b=h.offset)?0:h.margin??(e?5:10))):this.axisTitle=this.axisTitle?.destroy(),this.renderLine(),this.offset=u*(W(i.offset)?i.offset:c[s]?c[s]+(i.margin||0):0),C=0===s?-this.labelMetrics().h:2===s?m.y:0,k=Math.abs(w)+v,w&&(k-=C,k+=u*(e?l.y??m.y+u*g:l.x??(T?u*(g-f):m.x+u*g)),!e&&!T&&"center"===this.labelAlign&&W(this.labelRotation)&&(k+=f)),this.axisTitleMargin=b??k,this.maxLabelDimensions=this.getMaxLabelDimensions?.(o,r),"colorAxis"!==a&&p){let t=this.tickSize("tick");c[s]=Math.max(c[s],Math.max((this.axisTitleMargin||0)+y,k)+u*this.offset,k,r?.length&&t?t[0]+u*this.offset:0);let e=!this.axisLine||i.offset?0:this.axisLine.strokeWidth()/2;p[s]=Math.max(p[s],e)}A(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){let{chart:t,offset:e=0,options:i}=this,s=this.axisLine?"animate":"attr";this.axisLine||(this.axisLine=t.renderer.path().addClass("highcharts-axis-line").attr({zIndex:7}).clip(this.clippable&&e<=0?t.plotClipOuter:void 0).add(this.axisGroup)),t.styledMode||this.axisLine[s]({stroke:i.lineColor,"stroke-width":i.lineWidth})}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],m={x:e?u+l:g+(n?this.width:0)+h+l,y:e?g+d-(n?this.height:0)+h:u+d};return A(this,"afterGetTitlePosition",{titlePosition:m}),m}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new ek(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.ticks;(!this.linkedParent||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(s[t]||(s[t]=new ek(this,t)),i&&s[t].isNew&&s[t].render(e,!0,-1),s[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.alternateGridColor,g=a.crossing,m=i.tickmarkOffset,f=i.axisLine,x=i.showAxis,y=+i.visible,b=tP(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,this.createGroups(),[d,c,p].forEach(function(t){V(t,function(t){t.isActive=!1})}),W(g)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(g,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||i.linkedParent){let r=i.chart.hasRendered&&i.old&&W(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),n.length&&(n.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new ek(i,-1,null,!0)),d[-1].render(-1))),u&&n.forEach(function(r,a){e=void 0!==n[a+1]?n[a+1]+m:i.max-m,a%2==0&&r<i.max&&e<=i.max+(s.polar?-m:m)&&(p[r]||(p[r]=new h.PlotLineOrBand(i,{},"plotBands")),t=r+m,p[r].options={from:o?o.lin2log(t):t,to:o?o.lin2log(e):e,color:u,className:"highcharts-alternate-grid"},p[r].render(),p[r].isActive=!0)})}for(let t of["plotBands","plotLines"])for(let e of this[t])e.render();[d,c,p].forEach(function(t){let e=[],i=b.duration;V(t,function(t,i){t.isActive||(t.render(i,!1,0),t.isActive=!1,e.push(i))}),te(function(){let i=e.length;for(;i--;)t[e[i]]&&!t[e[i]].isActive&&(t[e[i]].destroy(),delete t[e[i]])},t!==p&&s.hasRendered&&i?i:0)}),f&&(f[f.isPlaced?"animate":"attr"]({d:this.getLinePath(f.strokeWidth()),opacity:y}),f.isPlaced=!0,f[x?"show":"hide"](x)),l&&x&&(l[l.isNew?"attr":"animate"]({opacity:y,...i.getTitlePosition(l)}),l.isNew=!1),i.stacking?.renderStackTotals(),this.old||this.saveOld(),i.isDirty=!1,A(this,"afterRender")}redraw(){(this.visible||this.axisGroup)&&this.render(),this.series.forEach(function(t){t.isDirty=!0})}saveOld(){this.old=W(this.min)?{horiz:this.horiz,len:this.len,max:this.max,min:this.min,names:this.names.slice(),transA:this.transA,userMax:this.userMax,userMin:this.userMin}:void 0}destroy(){A(this,"destroy"),J(this),[this.ticks,this.minorTicks,this.alternateBands,this.plotBands,this.plotLines,this.plotLinesAndBandsGroups].forEach(w),["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(t=>{this[t]=this[t]?.destroy()}),V(this,(t,e)=>{delete this[e]})}drawCrosshair(t,e){let i,s,o,r,a=this.crosshair,n=a?.snap??!0,h=this.chart,l=this.cross;if(A(this,"drawCrosshair",{e:t,point:e}),t||(t=this.cross?.e),a&&!1!==(M(e)||!n)){if(clearTimeout(this.crossShowTimer),n?M(e)&&(s=("colorAxis"!==this.coll?e.crosshairPos:null)??(this.isXAxis?e.plotX:this.len-e.plotY)):s=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),M(s)&&(r={value:e&&(this.isXAxis?e.x:e.stackY??e.y??void 0),translatedValue:s},h.polar&&S(r,{isCrosshair:!0,chartX:t?.chartX,chartY:t?.chartY,point:e}),i=this.getPlotLinePath(r)||null),!M(i))return void this.hideCrosshair();o=this.categories&&!this.isRadial,this.crossShowTimer=te(()=>{let e=this.cross;e||(this.cross=e=h.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(o?"category ":"thin ")+(a.className||"")).attr({zIndex:a.zIndex??2}).clip(!1===a.clip?void 0:h.plotClipInner).add()),h.styledMode||e.attr({stroke:a.color||(o?eS("var(--highcharts-highlight-color-20)").setOpacity(.25).get():"var(--highcharts-neutral-color-20)"),"stroke-width":a.width??1,dashstyle:a.dashStyle||"Solid"}).css({"pointer-events":"none"}),e.show().animate({d:i},tP(a?.animation)),o&&!a.width&&e.attr({"stroke-width":this.transA}),e.e=t},(!l||"hidden"===l.attr("visibility"))&&a.showDelay||0)}else this.hideCrosshair();A(this,"afterDrawCrosshair",{e:t,point:e})}hideCrosshair(){clearTimeout(this.crossShowTimer),this.cross&&this.cross.hide(),A(this,"afterHideCrosshair")}update(t={},e=!0){let i=this.chart;A(this,"update",{options:t}),t=H(this.userOptions,t),this.isDirty=this.forceRedraw=!0,this.init(i,t),i.isDirtyBox=!0,e&&i.redraw()}remove(t){let e=this.chart,i=this.coll,s=this.series,o=s.length;for(;o--;)s[o]&&s[o].remove(!1);T(e.axes,this),T(e[i]||[],this),e.orderItems(i),this.destroy(),e.isDirtyBox=!0,(t??!0)&&e.redraw()}setTitle(t,e){this.update({title:t},e)}setCategories(t,e){this.update({categories:t},e)}},{composed:eI}=h;!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return _(eI,"Axis.DateTime")&&(t.prototype.getTimeTicks=e,p(t,"afterSetType",i)),t};class s{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],s=i[i.length-1],o=th[s[0]],r=s[1],a,n;for(a=0;a<i.length;a++)if(o=th[(s=i[a])[0]],r=s[1],i[a+1]){let e=(o*r[r.length-1]+th[i[a+1][0]])/2;if(t<=e){n=e/t;break}}o===th.year&&t<5*o&&(r=[1,2,5]);let h=Y(t/o,r,"year"===s[0]?Math.max(E(t/o),1):1);return{unitRange:o,count:h,unitName:s[0],match:n}}getXDateFormat(t,e){let{axis:i}=this,s=i.chart.time;return i.closestPointRange?s.getDateFormat(i.closestPointRange,t,i.options.startOfWeek,e)||s.resolveDTLFormat(e.year).main:s.resolveDTLFormat(e.day).main}}t.Additions=s}(it||(it={}));let eD=it,{composed:eB}=h;!function(t){function e(){"logarithmic"!==this.type?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new s(this))}function i(){let t=this.logarithmic;t&&(this.lin2val=function(e){return t.lin2log(e)},this.val2lin=function(e){return t.log2lin(e)})}t.compose=function(t){return _(eB,"Axis.Logarithmic")&&(p(t,"afterSetType",e),p(t,"afterInit",i)),t};class s{constructor(t){this.axis=t}getLogTickPositions(t,e,i,s){let o=this.axis,r=o.len,a=o.options,n=[];if(s||(this.minorAutoInterval=void 0),t>=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c,p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;r<i+1&&!c;r++)for(h=o.length,a=0;a<h&&!c;a++)(l=this.log2lin(this.lin2log(r)*o[a]))>e&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=Y(t=("auto"===d?null:d)??this.minorAutoInterval??(l-h)*c/(p||1)),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(ie||(ie={}));let ez=ie;!function(t){let e,i=t=>function(i){var s;let o=new e(this,i,t);return this.visible&&o.render(),(s=this.options)[t]||(s[t]=this.userOptions[t]=[]),this.options[t].push(i),this[t].push(o),o};function s(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!W(this.min)||!W(this.max)||t<this.min&&e<this.min||t>this.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h<n.length;h+=2){let t=n[h],e=n[h+1],i=s[h],a=s[h+1];("M"===t[0]||"L"===t[0])&&("M"===e[0]||"L"===e[0])&&("M"===i[0]||"L"===i[0])&&("M"===a[0]||"L"===a[0])&&(r&&i[1]===t[1]?(i[1]+=l,a[1]+=l):r||i[2]!==t[2]||(i[2]+=l,a[2]+=l),o.push(["M",t[1],t[2]],["L",e[1],e[2]],["L",a[1],a[2]],["L",i[1],i[2]],["Z"])),o.isFlat=d}return o}function o(t){[...this.plotBands||[],...this.plotLines||[]].find(e=>e.id===t)?.remove()}t.compose=function(t,r){let a=r.prototype;return a.addPlotBand||(e=t,S(a,{addPlotBand:i("plotBands"),addPlotLine:i("plotLines"),getPlotBandPath:s,removePlotBand:o,removePlotLine:o}),p(r,"afterInit",function(){if(!this.plotBands)for(let t of(this.plotLinesAndBandsGroups={},["plotBands","plotLines"]))for(let i of(this[t]=[],Q(this.options[t]||[])))this[t].push(new e(this,i,t))}),p(r,"update",function({options:t}){for(let e of["plotBands","plotLines"])if(t[e]){let i=this[e];Q(t[e]).forEach((s={},o)=>{let r;s?.id&&(r=i.find(t=>t.id===s.id)),r||(r=i[o]),r?(r.update(s,!1),t[e][o]=r.options):r=this["plotBands"===e?"addPlotBand":"addPlotLine"](s),r.isActive=!0});let s=i.length;for(;s--;)i[s].isActive?delete i[s].isActive:i[s].remove()}})),r}}(ii||(ii={}));let eR=ii,eN=class t{static compose(e,i){return p(e,"afterInit",function(){this.labelCollectors.push(()=>{let t=[];for(let e of this.axes)for(let i of["plotBands","plotLines"])for(let{label:s,options:o}of e[i])s&&!o?.label?.allowOverlap&&t.push(s);return t})}),eR.compose(t,i)}constructor(t,e,i){this.axis=t,this.options=e,this.id=e.id,this.coll=i}render(){let t;A(this,"render");let{axis:e,options:i}=this,{chart:s,horiz:o,logarithmic:r}=e,{color:a,events:n,zIndex:h=0}=i,{renderer:l,styledMode:d,time:c}=e.chart,p=c.parse(i.to),u=c.parse(i.from),g=c.parse(i.value),m=i.borderWidth,f=i.label,{label:x,svgElem:y}=this,b,v="plotBands"===this.coll,w=v?"band":"line",k=`${w}s-${h}`,C=!y,T={class:`highcharts-plot-${w} ${i.className||""}`},S=v?m||0:i.width??1;return d||(T["stroke-width"]=S),(b=e.plotLinesAndBandsGroups[k])||(e.plotLinesAndBandsGroups[k]=b=l.g("plot-"+k).clip(s.plotClipOuter).attr({zIndex:h}).add()),b[C?"attr":"animate"]({opacity:+e.visible}),y||(this.svgElem=y=l.path().attr(T)),y.parentGroup!==b&&y.add(b),!v&&M(g)?t=e.getPlotLinePath({value:r?.log2lin(g)??g,lineWidth:y.strokeWidth(),acrossPanes:i.acrossPanes}):v&&M(u)&&M(p)&&(t=e.getPlotBandPath(r?.log2lin(u)??u,r?.log2lin(p)??p,i)),t&&(T.d=t),!d&&(v?(T.fill=a||"var(--highcharts-highlight-color-10)",m&&(T.stroke=i.borderColor)):(T.stroke=a||"var(--highcharts-neutral-color-40)",i.dashStyle&&(T.dashstyle=i.dashStyle))),C&&n&&V(n,(t,e)=>{y?.on(e,t=>{n[e].apply(this,[t,this])})}),(C||!y.d)&&t?.length?y.attr(T):y&&(t?(y.show(),y.animate(T)):y.d&&(y.hide(),x&&(this.label=x=x.destroy()))),f&&(M(f.text)||M(f.formatter))&&t?.length&&e.width>0&&e.height>0&&!t.isFlat?(f=H({align:o&&v?"center":void 0,x:o?!v&&4:10,verticalAlign:!o&&v?"middle":void 0,y:o?v?16:10:v?6:-4,rotation:o&&!v?90:0,...v?{inside:!0}:{}},f),this.renderLabel(f,t,v,h)):x&&x.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart,a=r.renderer,n=t.inside,h=this.label;h||(this.label=h=a.text("",0,0,t.useHTML).attr({zIndex:s})),h.attr({text:this.getLabelText(t),align:t.textAlign||t.align,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||"")})[h.placed?"animate":"attr"]({opacity:1,rotation:t.rotation}),r.styledMode||h.css(H({color:r.options.title?.style?.color,fontSize:"0.8em",textOverflow:i&&!n?"":"ellipsis"},t.style)),h.added||h.add();let l=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],d=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],c=u(l),p=u(d),m=g(l)-c;h.align(t,!1,{x:c,y:p,width:m,height:g(d)-p}),h.alignAttr.y-=a.fontMetrics(h).b,!h.alignValue||"left"===h.alignValue||M(n)?h.css({width:(t.style?.width||(i&&n?m:90===h.rotation?o.height-(h.alignAttr.y-o.top):(t.clip?o.width+o.left:r.chartWidth)-h.alignAttr.x))+"px"}):h.textWidth&&h.css({width:"auto"}),h.show(!0)}update(t,e=!0){H(!0,this.options,t),e&&this.render()}getLabelText(t){return M(t.formatter)?t.formatter.call(this,this):t.text}destroy(){w(this,this.axis)}remove(){T(this.axis[this.coll],this),T(this.axis.options[this.coll]||[],this.options),this.destroy()}},{format:eW}=tY,{composed:ej,dateFormats:eG,doc:eX,isSafari:eF}=h,{distribute:eH}=tV,eY=t=>{clearTimeout(t.hideTimer),clearTimeout(t.showTimer)};class eV{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"",t)})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e,i=this.points||Q(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.tracker=this.tracker?.destroy(),this.label=this.label?.destroy(),this.split&&(this.cleanSplit(!0),this.tt=this.tt?.destroy()),this.renderer&&(this.renderer=this.renderer.destroy(),k(this.container)),z(this.hideTimer),eY(this)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=Q(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}let h={point:t[0],ret:i};return A(this,"getAnchor",h),h.ret.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+(t.colorIndex??o.colorIndex),r?.className].filter(j).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style;this.container=a=h.doc.createElement("div"),a.className="highcharts-container highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),a.dataset.highchartsChart=t.index.toString(),v(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(o.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=n=new em(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape||"callout",void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth??+!o.fixed}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return a&&!a.parentElement&&h.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=eX,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:m,width:f}=this.getPlayingField(),x=a.getChartPosition(),y=i=>{let a="x"===i;return[i,a?f:m,a?t:e].concat(r?[a?t*x.scaleX:e*x.scaleY,a?x.left-s+(c+h)*x.scaleX:x.top-s+(p+l)*x.scaleY,0,a?f:m]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},b=y("y"),v=y("x"),M,w=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(w=!w);let k=!this.followPointer&&(i.ttBelow??(!d&&!n===w)),C=function(t,e,i,o,a,n,h){let l=r?"y"===t?s*x.scaleY:s*x.scaleX:s,d=(i-o)/2,c=o<a-s,p=a+s+o<e,m=a-l-i+d,f=a+l-d;if(k&&p)u[t]=f;else if(!k&&c)u[t]=m;else if(c)u[t]=Math.min(h-o,m-g<0?m:m-g);else{if(!p)return u[t]=0,!1;u[t]=Math.max(n,f+g+i>e?f:f+g)}},T=function(t,e,i,o,r){if(r<s||r>e-s)return!1;r<i/2?u[t]=1:r>e-o/2?u[t]=e-o-2:u[t]=r-i/2},S=function(t){[b,v]=[v,b],M=t},P=()=>{!1!==C.apply(0,b)?!1!==T.apply(0,v)||M||(S(!0),P()):M?u.x=u.y=0:(S(!0),P())};return(n&&!d||this.len>1)&&S(),P(),r&&(u.x-=x.left,u.y-=x.top),u}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:a}=this,n=r.position,h=n.relativeTo,l=r.shared||s?.yAxis?.isRadial&&("pane"===h||!h)?"plotBox":h,d="chart"===l?o.renderer:o[l]||o.getClipBox(s,!0);return{x:d.x+(d.width-t)*L(n.align)+n.x,y:d.y+(d.height-e)*L(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;eY(this),t=t??this.options.hideDelay,this.isHidden||(this.hideTimer=te(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=e.outside??!!(t.scrollablePixelsX||t.scrollablePixelsY)}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let{followPointer:o,options:r}=this,a=tP(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};this.anchorX=i,this.anchorY=s,n?h.anchorX=h.anchorY=0/0:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let i=this,{chart:s,options:o,pointer:r,shared:a}=this,n=Q(t),h=n[0],l=o.format,d=o.formatter||i.defaultFormatter,c=s.styledMode,p=i.allowShared;if(!o.enabled||!h.series)return;eY(this),i.allowShared=!(!G(t)&&t.series&&t.series.noSharedTooltip),p=p&&!i.allowShared,i.followPointer=!i.split&&h.series.tooltipOptions.followPointer;let u=i.getAnchor(t,e),g=u[0],m=u[1];a&&i.allowShared&&(r.applyInactiveState(n),n.forEach(t=>t.setState("hover")),h.points=n),this.len=n.length;let x=j(l)?eW(l,h,s):d.call(h,i,h);h.points=void 0;let y=h.series;this.distance=y.tooltipOptions.distance??16,!1===x?this.hide():this.showTimer=te(()=>{if(i.split&&i.allowShared)i.renderSplit(x,n);else{let t=g,a=m;if(e&&r.isDirectTouch&&(t=e.chartX-s.plotLeft,a=e.chartY-s.plotTop),!(s.polar||!1===y.options.clip||n.some(e=>r.isDirectTouch||e.series.shouldShowTooltip(t,a))))return void i.hide();{let t=i.getLabel(p&&i.tt||{});(!o.style.width||c)&&t.css({width:(this.outside?this.getPlayingField():s.spacingBox).width-2*o.padding+"px"}),t.attr({class:i.getClassName(h),text:G(x)?x.join(""):x}),this.outside&&t.attr({x:f(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),c||t.attr({stroke:o.borderColor||h.color||y.color||"var(--highcharts-neutral-color-60)"}),i.updatePosition({plotX:g,plotY:m,negative:h.negative,ttBelow:h.ttBelow,series:y,h:u[2]||0})}}i.isHidden&&i.label&&i.label.attr({opacity:1}).show(),i.isHidden=!1},i.isHidden&&o.showDelay||0),A(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{fixed:g,position:m,positioner:x},pointer:y}=i,{scrollLeft:b=0,scrollTop:v=0}=s.scrollablePlotArea?.scrollingContainer||{},M=i.outside&&"number"!=typeof d?eX.documentElement.getBoundingClientRect():{left:b,right:b+o,top:v,bottom:v+r},w=i.getLabel(),k=this.renderer||s.renderer,C=!!s.xAxis[0]?.opposite,{left:T,top:P}=y.getChartPosition(),A=x||g,L=h+v,O=0,E=a-l,I=function(t,e,s,o,r=[0,0],a=!0){let n,h;if(s.isHeader)h=C?0:E,n=f(r[0]-t/2,M.left,M.right-t-(i.outside?T:0));else if(g&&s){let o=i.getFixedPosition(t,e,s);n=o.x,h=o.y-L}else h=r[1]-L,n=f(n=a?r[0]-t-p:r[0]+p,a?n:M.left,M.right);return{x:n,y:h}};j(t)&&(t=[!1,t]);let D=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||u,h=r?H(n,n.header):n;if(!o){let t={padding:n.padding,r:n.borderRadius};c||(t.fill=h.backgroundColor,t["stroke-width"]=h.borderWidth??+!n.fixed),o=k.label("",0,0,h.shape||(g&&!r?"rect":"callout"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(w)}return o.isActive=!0,c||o.css(h.style),o.attr({text:s}),c||o.attr({stroke:h.borderColor||e.color||a.color||"var(--highcharts-neutral-color-80)"}),o}(d.tt,r,s.toString()),y=m.getBBox(),b=y.width+m.strokeWidth();l&&(O=y.height+u.header.distance,E+=O,C&&(L-=O));let{anchorX:v,anchorY:T}=function(t){let e,i,{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+f(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=f(e,M.left-p,M.right+p),anchorY:i}}(r);if("number"==typeof T){let e=y.height+1,s=(x||I).call(i,b,e,r,i,[v,T]);t.push({align:A?0:void 0,anchorX:v,anchorY:T,boxWidth:b,point:r,rank:s.rank??+!!l,size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t},[]);!A&&D.some(t=>{let{outside:e}=i,s=(e?T:0)+t.anchorX;return s<M.left&&s+t.boxWidth<M.right||s<T-M.left+t.boxWidth&&M.right-s>s})&&(D=D.map(t=>{let{x:e,y:i}=I.call(this,t.boxWidth,t.size,t.point,void 0,[t.anchorX,t.anchorY],!1);return S(t,{target:i,x:e})})),i.cleanSplit(),eH(D,E);let B={left:T,right:T};D.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&T+e<B.left&&(B.left=T+e),i.outside&&B.left+s>B.right&&(B.right=T+e))}),D.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+L+(g&&m.y||0),anchorX:s,anchorY:o};if(i.outside&&e<s){let t=T-B.left;t>0&&(n.x=a?(B.right-B.left)/2:e+t,n.anchorX=s+t)}t.tt.attr(n)});let{container:z,outside:R,renderer:N}=i;if(R&&z&&N){let{width:t,height:e,x:i,y:s}=w.getBBox();N.setSize(t+i,e+s,!1),z.style.left=B.left+"px",z.style.top=P+"px"}eF&&w.attr({opacity:1===w.opacity?.999:1})}drawTracker(){let t=this;if(!t.shouldStickOnContact()){t.tracker=t.tracker?.destroy();return}let{chart:e,label:i}=t,s=t.shared?e.hoverPoints:e.hoverPoint,o=i?.box;if(!o||!s)return;let{height:r,r:a,width:n,x:h,y:l}=o,{anchorX:d,anchorY:c}=o;W(d)||(d=(t.anchorX||0)-(i.translateX||0),c=(t.anchorY||0)-(i.translateY||0));let u=i.renderer.symbols.callout(h,l,n,r,{anchorX:d,anchorY:c,arrowLength:Math.max(d-n,-d,c-r,-c,0),r:a});!t.tracker&&(t.tracker=i.renderer.path().addClass("highcharts-tracker").add(i),p(t.tracker.element,"mouseenter",()=>eY(t)),e.styledMode||t.tracker.attr({fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)","stroke-linejoin":"round","stroke-width":10})),t.tracker.attr({d:u})}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return A(this,"headerFormatter",a,function(e){if(r&&!n&&W(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(F(n)){let t=n;eG[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])"),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=eW(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,H(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:l=0}=this.getLabel(),{fixed:d,positioner:c}=o,{left:p,top:u,scaleX:g,scaleY:m}=r.getChartPosition(),x=(c||d&&this.getFixedPosition||this.getPosition).call(this,l,n,t,this),y=h.doc,b=(t.plotX||0)+e.plotLeft,M=(t.plotY||0)+e.plotTop,w;if(a&&i){if(x.x+=p,x.y+=u,c||d){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};x.x+=t,x.y+=i}w=(o.borderWidth??+!d)+2*s+2,a.setSize(f(l+w,0,y.documentElement.clientWidth)-1,n+w,!1),(1!==g||1!==m)&&(v(i,{transform:`scale(${g}, ${m})`}),b*=g,M*=m),b+=p-x.x,M+=u-x.y}this.move(Math.round(x.x),Math.round(x.y||0),b,M)}}(iM=eV||(eV={})).compose=function(t){_(ej,"Core.Tooltip")&&p(t,"afterInit",function(){let t=this.chart;t.options.tooltip&&(t.tooltip=new iM(t,t.options.tooltip,this))})};let eU=eV,{defaultOptions:e$}=ty,{format:eZ}=tY;class e_{constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=tl()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,this.category=t.xAxis?.categories?.[this.x]??this.x,this.key=this.name??this.category,A(this,"afterInit")}applyOptions(t,e,i){let s=this.series,o=s.options.pointValKey||s.pointValKey;return S(this,t=e_.prototype.optionsToObject.call(this,t)),this.options?this.options=s.chart.options.chart.allowMutatingData?S(this.options,t):H(this.options,t):this.options=t,o&&(this.y=e_.prototype.getNestedProperty.call(this,o)),W(e)&&(this.x=e),i||(this.selected&&(this.state="select"),t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point"),this}getOrigin({x:t=0,y:e=0},i={}){let{graphic:s,series:o}=this;if(o.chart.inverted&&s?.parentGroup&&!s?.parentGroup?.rotation){let i=this.pos(!1,t,e);i&&(t=i[0],e=i[1])}t-=(i.width||0)/2,e-=(i.height||0)/2;let r={x:t};return o.is("column")||this.plotHigh||(r.y=e),r}destroy(t){if(!this.destroyed&&!this.condemned){let e=this,i=e.series,s=i.chart,o=s.hoverPoints,{duration:r}=tP(e.series.chart.renderer.globalAnimation),a=()=>{for(let t in(e.graphic||e.graphics||e.dataLabel||e.dataLabels)&&(J(e),e.destroyElements()),e)delete e[t];this.destroyed=!0};e.legendItem&&s.legend.destroyItem(e),o&&(e.setState(),T(o,e),o.length||(s.hoverPoints=void 0)),e===s.hoverPoint&&e.onMouseOut(),r&&!t&&i.condemnedPoints?(i.condemnedPoints.push(this),this.graphic?.addClass("highcharts-point-condemned"),setTimeout(a,r)):a(),s.pointCount--}this.condemned=!0}destroyElements(t={graphic:1,dataLabel:1}){let e,i,s=this,o=[];for(t.graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&(s[e]=s[e].destroy());["graphic","dataLabel"].forEach(e=>{let i=`${e}s`;t[e]&&s[i]&&(s[i].forEach(t=>{t?.element&&t.destroy()}),delete s[i])})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.condemned&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),A(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative&&!1!==this.series.options.negativeColor?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone?.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getNestedProperty(t){if(t)return 0===t.indexOf("custom.")?I(t,this.options):this[t]}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];o<e.length&&this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}isValid(){return(W(this.x)||this.x instanceof Date)&&W(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(W(t)||null===t)r[s[0]]=t;else if(G(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r[e.tupleKey||"name"]=t[0]:"number"===a&&(r.x=t[0]),n++);h<o;)i&&void 0===t[n]||(r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return(i||!e.options.data)&&Object.keys(r).forEach(t=>{t.indexOf(".")>0&&(e_.prototype.setNestedProperty(r,r[t],t),delete r[t])}),r}pos(t,e=this.plotX,i=this.plotY){let{series:s}=this,{chart:o,xAxis:r,yAxis:a}=s||{},n=0,h=0;if(o&&W(e)&&W(i))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-i+h,r.len-e+n]:[e+n,i+h]}resolveColor(){let{options:t,series:e}=this,i=e.chart,s=i.options.chart,o=i.styledMode,r,a=s.colorCount,n;if(delete this.nonZonedColor,e.options.colorByPoint){if(!o){let t=e.options.colors||i.options.colors;r=t?.[e.colorCounter],a=t?.length}n=e.colorCounter,e.colorCounter++,e.colorCounter===a&&(e.colorCounter=0)}else o||(r=e.color),n=e.colorIndex;this.colorIndex=t.colorIndex??n,this.color=t.color??r}setNestedProperty(t,e,i){let s=i.split(".");return s.some(t=>"__proto__"===t||"constructor"===t)||s.reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:F(t[i],!0)&&Object.hasOwnProperty.call(t,i)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),eZ(t,this,e)}update(t,e=!0,i,s){let o=this,r=o.series,a=o.graphic,n=r.chart,h=r.options,l=h.data;function d(){o.applyOptions(t),a&&null===o.y&&!o.hasMockGraphic&&(o.graphic=a.destroy()),F(t,!0)&&(a?.element&&t?.marker&&void 0!==t.marker.symbol&&(o.graphic=a.destroy()),t?.dataLabels&&o.dataLabel&&(o.dataLabel=o.dataLabel.destroy()));let s=o.index,d=o.optionsToObject(t);!r.hasProcessedDataTable&&(r.dataTable.setRow(d,s),l&&(l[s]=F(l[s],!0)||F(t,!0)?o.options:t??l[s])),r.isDirty=r.isDirtyData=!0,"x"in d&&(j(d.x)&&(r.xColumnIsNumbers=void 0),o.x=r.getX(d.x),o.isNull=o.isValid&&!o.isValid(),r.xColumn&&(r.xColumn[s]=o.x)),!r.fixedBox&&r.hasCartesianSeries&&(n.isDirtyBox=!0),"point"===h.legendType&&(n.isDirtyLegend=!0),e&&n.redraw(i)}!1===s?d():o.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=t??!i.selected,this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data&&(s.options.data[s.data.indexOf(i)]=i.options),i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series,s=e.options;t.selected&&t!==i&&(t.selected=t.options.selected=!1,s.data&&(s.data[e.data.indexOf(t)]=t.options),t.setState(o.hoverPoints&&s.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){if(!this.series)return;let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=H(this.series.options.point,this.options),i=e.events?.[t];X(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=p(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(J(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states?.[t||"normal"]||{},r=e$.plotOptions?.[i.type]?.marker&&i.options.marker,a=r?.enabled===!1,n=r?.states?.[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,m,f=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states?.[t]?.enabled===!1)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),m=d.options.chart.animation??o.animation;let e=g.opacity;i.options.inactiveOtherPoints&&W(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},m),t.connector&&t.connector.animate({opacity:e},m))}),this.graphic.animate(g,m)}u&&this.graphic.animate(u,d.options.chart.animation??n.animation??r.animation),f&&f.hide()}else t&&n&&(x=l.symbol||i.symbol,f&&f.currentSymbol!==x&&(f=f.destroy()),u&&(f?f[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=f=d.renderer.symbol(x,u.x,u.y,u.width,u.height,H(r,n)).add(i.markerGroup),f.currentSymbol=x)),!d.styledMode&&f&&"inactive"!==this.state&&f.attr(i.pointAttribs(this,t))),f&&(f[t&&this.isInside?"show":"hide"](),f.element.point=this,f.addClass(this.getClassName(),!0));let y=F(o.halo)?o.halo:{},b=this.graphic||f,v=b?.visibility||"inherit";y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+(this.colorIndex??i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(S({fill:this.color||i.color,"fill-opacity":y.opacity},tR.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),A(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(b(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let eK=e_,{charts:eq,composed:eJ,isTouchDevice:eQ}=h,e0=(t,e)=>!M(e)||t[`${e}Key`];class e1{applyInactiveState(t=[]){let e=[];for(let i of(t.forEach(t=>{let i=t.series;e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&e.push.apply(e,i.linkedSeries),i.navigatorSeries&&e.push(i.navigatorSeries),i.boosted&&i.markerGroup&&e.push.apply(e,this.chart.series.filter(t=>t.markerGroup===i.markerGroup))}),this.chart.series)){let t=i.options;t.states?.inactive?.enabled!==!1&&(-1===e.indexOf(i)?i.setState("inactive",!0):t.inactiveOtherPoints&&i.setAllPointsToState("inactive"))}}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!h.chartCount&&(e1.unbindDocumentMouseUp.forEach(t=>t.unbind()),e1.unbindDocumentMouseUp.length=0,e1.unbindDocumentTouchEnd&&(e1.unbindDocumentTouchEnd=e1.unbindDocumentTouchEnd())),V(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return A(this,"getSelectionMarkerAttrs",i,i=>{let s,{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(l.width=Math.max(1,Math.abs(s=t-n)),l.x=(s>0?0:s)+n),a&&(l.height=Math.max(1,Math.abs(s=e-h)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=F(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,m,f=this.selectionMarker;if((!f||!f.touch)&&(u<n?u=n:u>n+l&&(u=n+l),g<h?g=h:g>h+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){m=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:l,attrs:d}=this.getSelectionMarkerAttrs(u,g);this.hasZoom&&m&&!p&&!f&&(this.selectionMarker=f=e.renderer[l](),f.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||f.attr({fill:a})),f&&f.attr(d),m&&!f&&c&&e0(t,r)&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return A(this,"getSelectionBox",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(t?.type==="touchend"&&this.hasDragged&&i.transform({trigger:"drop"}),e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}W(i.index)&&(this.selectionMarker=s.destroy())}i&&W(i.index)&&(v(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[],this.hasPinchMoved=!1)}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){var o;let r,a,n,h=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),l=t.searchPoint(i,h);F(l,!0)&&l.series&&(!F(s,!0)||(r=(o=s).distX-l.distX,a=o.dist-l.dist,n=l.series.group?.zIndex-o.series.group?.zIndex,(0!==r&&e?r:0!==a?a:0!==n?n:o.series.index>l.series.index?-1:1)>0))&&(s=l)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&W(o.x)&&W(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=U(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&(t.options.enableMouseTracking??!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};A(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c?.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=t.options?.nullInteraction,i=B(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});F(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),A(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=m(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),A(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):(i.changedTouches??t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return S(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(A(i.series,"click",S(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(S(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&A(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),h.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=eq[e1.hoverChartIndex??-1]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.exporting?.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){t?.touches&&this.hasPinchMoved&&t?.preventDefault?.(),eq[e1.hoverChartIndex??-1]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=1===a&&(i.tooltip?.options.followTouchMove??!0);a>1?e.initiated=!0:h&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):h?this.runPointActions(e.normalize(t)):o&&(A(i,"touchpan",{originalEvent:t,touches:r},()=>{let s=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:s(r),from:s(o),trigger:t.type}),e.hasDragged=1}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&Q(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&Q(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n?.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h?.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,u=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(u&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=p(s.container.ownerDocument,"mousemove",t=>eq[e1.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i,o=e.crosshair?.snap??!0;o&&((i=s.hoverPoint)&&i.series[e.coll]===e||(i=B(c,t=>t.series?.[e.coll]===e))),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument,i=t=>t.parentElement||t.getRootNode()?.host?.parentElement;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(p(t,"mouseenter",this.onContainerMouseEnter.bind(this)),p(t,"mouseleave",this.onContainerMouseLeave.bind(this))),e1.unbindDocumentMouseUp.some(t=>t.doc===e)||e1.unbindDocumentMouseUp.push({doc:e,unbind:p(e,"mouseup",this.onDocumentMouseUp.bind(this))});let s=i(this.chart.renderTo);for(;s&&"BODY"!==s.tagName;)this.eventsToUnbind.push(p(s,"scroll",()=>{delete this.chartPosition})),s=i(s);this.eventsToUnbind.push(p(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),p(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),e1.unbindDocumentTouchEnd||(e1.unbindDocumentTouchEnd=p(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),p(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!eQ)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=(e.options.tooltip?.followTouchMove??!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(p(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),p(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=h.charts[e1.hoverChartIndex??-1];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(e1.hoverChartIndex=e.index)}touch(t,e){let i,{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.exporting?.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(this.hasPinchMoved=i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),(i??!0)&&this.pinch(t),this.hasPointerCapture&&"touchmove"===t.type&&!(s.scrollablePixelsX||s.scrollablePixelsY)&&t.preventDefault()):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=e.zooming.pinchType??s),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=(o||r)&&e0(t,e.zooming.key)}}e1.unbindDocumentMouseUp=[],(iw=e1||(e1={})).compose=function(t){_(eJ,"Core.Pointer")&&p(t,"beforeRender",function(){this.pointer=new iw(this,this.options)})};let e2=e1,{setLength:e3,splice:e5}={convertToNumber:function(t,e){switch(typeof t){case"boolean":return+!!t;case"number":return isNaN(t)&&!e?null:t;default:return isNaN(t=parseFloat(`${t??""}`))&&!e?null:t}},setLength:function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},splice:function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,a=t[s?"subarray":"slice"](e,e+i),n=new r(t.length-i+o.length);return n.set(t.subarray(0,e),0),n.set(o,e),n.set(t.subarray(e+i),e+o.length),{removed:a,array:n}}},e6=class{constructor(t={}){this.isDataTable=!0;let e=this.isPollutingKey(t.id)?void 0:t.id;this.autoId=!e,this.columns={},this.id=e||tl(),this.rowCount=0,this.versionTag=tl();let i=0;V(t.columns||{},(t,e)=>{"__proto__"!==e&&"constructor"!==e&&(this.columns[e]=t.slice(),i=Math.max(i,t.length))}),this.applyRowCount(i)}isPollutingKey(t){return"__proto__"===t||"constructor"===t}applyRowCount(t){this.rowCount=t,V(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=e3(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;V(this.columns,(s,o)=>{this.columns[o]=e5(s,t,e).array,i=s.length}),this.rowCount=i}A(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=tl()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRowObject(t,e){let i={},s=this.columns;for(let o of(e??(e=Object.keys(this.columns)),e))i[o]=s[o]?.[t];return i}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;V(t,(t,e)=>{"__proto__"!==e&&"constructor"!==e&&(this.columns[e]=t.slice(),s=t.length)}),this.applyRowCount(s),i?.silent||(A(this,"afterSetColumns"),this.versionTag=tl())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1,a=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=a.length;t<e;t++){let e=a[t];this.isPollutingKey(e)||Object.hasOwnProperty.call(o,e)||(o[e]=Array(this.rowCount))}V(o,(s,r)=>{s&&(i?s=e5(s,e,0,!0,[t[r]]).array:s[e]=r in t?t[r]:s[e],o[r]=s)}),this.applyRowCount(Math.max(r,this.rowCount)),s?.silent||(A(this,"afterSetRows",{rowIndex:e}),this.versionTag=tl())}getModified(){return this.modified||this}};var e8,e4,e9,e7,it,ie,ii,is,io,ir,ia,ih,il,id,ic,ip,iu,ig,im,ix,iy,ib,iv,iM,iw,ik,iC,iT,iS,iP,iA,iL=is||(is={});function iO(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},m,f=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"!==r.linecap&&(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(f&&!1!==f.enabled&&n){let t=Math.min(f.radius??d,d);0===l.indexOf("url")&&(f=H(f,{width:h,height:h}),t=0),s.symbol=m=c.symbol(l,n/2-t,u-t,2*t,2*t,S({context:"legend"},f)).addClass("highcharts-point").add(p),m.isMarker=!0}}iL.areaMarker=function(t,e){iO.call(this,t,e,!0)},iL.lineMarker=iO;let iE=is,{defaultOptions:iI}=ty;var iD=io||(io={});function iB(t,e){let i=iI.plotOptions||{},s=e.defaultOptions,o=e.prototype;return o.type=t,o.pointClass||(o.pointClass=eK),!iD.seriesTypes[t]&&(s&&(i[t]=s),iD.seriesTypes[t]=e,!0)}iD.seriesTypes=h.seriesTypes,iD.registerSeriesType=iB,iD.seriesType=function(t,e,i,s,o){let r=iI.plotOptions||{};if(e=e||"",r[t]=H(r[e],i),delete iD.seriesTypes[t],iB(t,P(iD.seriesTypes[e]||h.Series,s)),iD.seriesTypes[t].prototype.type=t,o){class e extends eK{}S(e.prototype,o),iD.seriesTypes[t].prototype.pointClass=e}return iD.seriesTypes[t]};let iz=io,{defaultOptions:iR}=ty,{registerEventOptions:iN}=eM,{svg:iW,win:ij}=h,{seriesTypes:iG}=iz,{format:iX}=tY;class iF{constructor(){this.zoneAxis="y"}init(t,e){let i;A(this,"init",{options:e});let s=t.series;this.eventsToUnbind=[],this.condemnedPoints||(this.condemnedPoints=[]),this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.dataTable??(this.dataTable=G(o.dataTable)?new e6:o.dataTable?.isDataTable?o.dataTable:new e6(o.dataTable)),this.linkedSeries=[],this.bindAxes(),S(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),iN(this,o);let a=o.events;(a?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=(i?._i??-1)+1,this.opacity=this.options.opacity,t.orderItems("series",tn(this,s)),this.points||this.data||this.setData(o.data,!1),A(this,"afterInit")}is(t){return iG[t]&&this instanceof iG[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;A(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,((i[o]??0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(tn(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||ta(18,!0,s)})}),A(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker;return i&&s&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=this.pointInterval??i.pointInterval??1,o&&W(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&W(t)?a+e:(this.xIncrement=a+e,a)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=H(t),a=i.styledMode,n={plotOptions:s,userOptions:r};A(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=iR.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let u=H(h,s.series,p,r),{negativeColor:g,negativeFillColor:m,zoneAxis:f="y",zones:x}=u,y=(x||[]).map(t=>({...t}));return this.tooltipOptions=H(iR.tooltip,iR.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=r.stickyTracking??p.stickyTracking??d.stickyTracking??(!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zones||(this.zones=y),this.zoneAxis=f,(g||m)&&!x&&(e={value:u[f+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||("boolean"!=typeof g&&(e.color=g),e.fillColor=m),y.push(e)),y.length&&M(y[y.length-1].value)&&y.push(a?{}:{color:this.color,fillColor:this.fillColor}),A(this,"afterSetOptions",{options:u}),u}getName(){let{chart:t,options:e}=this,{dataMapping:i,name:s}=e,o=i?.y||i?.value,r=j(o)?o:o?.column;return s??(j(r)?r:iX(t.options.lang.seriesName,this,t))}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(M(o="color"===t?this.options.colorIndex??this[a]:this[a])?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){let t=this.chart;t.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="var(--highcharts-neutral-color-20)":this.getCyclic("color",this.options.color||iR.plotOptions[this.type]?.color,t.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t?.symbol,this.chart.options.symbols)}getColumn(t,e,i){let s=e?this.dataTable.getModified():this.dataTable,o=s.rowCount,r=this.dataTable!==s,a=s.getColumn(t,!0);if("x"===t&&!r){if(this.xColumn)return this.xColumn;let t=s.getColumn("name",!0),e=this.options,i=t=>{if(void 0!==this.xColumnIsNumbers)return this.xColumnIsNumbers;for(let e of t)if("number"!=typeof e)return this.xColumnIsNumbers=!1;return this.xColumnIsNumbers=!0};if(this.xIncrement=null,!a||this.xAxis?.hasNames||e.relativeXValue||a.length<(e.turboThreshold||1/0)&&!this.boosted&&!i(a)){let e=[];for(let i=0;i<o;i++){let s=a?.[i];M(s)||(this.xIncrement??(this.xIncrement=e[e.length-1]??null)),e.push(this.getX(s,t?.[i]))}return this.xColumn=e}}return a||Array(i?o:0)}getX(t,e){return this.xAxis?.hasNames&&this.dataTable.getColumn("name",!0)&&M(e)?this.xAxis.nameToX({name:e,series:this},t):void 0===t||W(t)&&this.options.relativeXValue?this.autoIncrement(t):("string"==typeof t&&W(t=this.chart.time.parse(t)),t)}matchPoints(t,e,i,s){let{dataTable:o,options:r,requireSorting:a}=this,n=r.dataSorting,h=this.data,l=[],d=[],c=o.rowCount===h.length,p,u,m,f=0,x=!0;this.xIncrement=null,delete this.xColumn;let y=o.getColumn("x"),b=o.getColumn("id"),v=n?.matchByName?o.getColumn("name"):void 0,w=o.getColumn("index");for(u=0;u<o.rowCount;u++){let r=y?.[u],g=b?.[u],m=v?.[u],x=w?.[u],[k,C]=g&&e?[g,e]:m&&i?[m,i]:M(x)&&s?[x,s]:M(r)&&t?[r,t]:[],T=-1;if(C){if(-1===(T=C.indexOf(k,f))){let e=y?.[u],i=t?.length??o.rowCount;for(;i&&t&&"number"==typeof e&&t[i-1]>e;)i--;l.push({newIndex:i,oldIndex:u})}else h[T]&&(d.push({newIndex:T,oldIndex:u}),h[T].touched=!0,a&&(f=T+1));(!c||u!==T||n?.enabled||this.hasDerivedData)&&(p=!0)}else l.push({newIndex:u,oldIndex:u})}if(p){for(d.forEach(t=>{h[t.newIndex].applyOptions(o.getRowObject(t.oldIndex))}),l.sort((t,e)=>e.newIndex-t.newIndex),l.forEach(t=>{h.splice(t.newIndex,0,void 0)}),u=h.length;u--;)(m=h[u])&&!m.touched&&(m.destroy(),h.splice(u,1));this.isDirtyData=this.isDirty=!0}else if(c&&!n?.enabled){for(u=0;u<o.rowCount;u++)if(!h[u].destroyed&&!h[u].condemned){let t=o.getRowObject(u);t&&(Object.keys(t).forEach(e=>{void 0===t[e]&&delete t[e]}),Object.keys(t).length&&h[u].update(t,!1,void 0,!1))}}else x=!1;if(h.forEach(t=>{t&&(t.touched=!1)}),!x)return!1;let k=this.getColumn("x");return null===this.xIncrement&&k.length&&(this.xIncrement=g(k),this.autoIncrement()),!0}getDataColumnKeys(){return this.dataColumnKeys||["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o,r,a,n=this.dataTable,h=this.options,l=this.points,d=l?.length||0,c=n.getColumn("x"),p=n.getColumn("id"),u=h.dataSorting?.matchByName&&l?.map(t=>t.name)||n.getColumn("name"),g=n.getColumn("index"),m=this.chart,f=this.xAxis;if(m.options.chart.allowMutatingData||(h.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,a=H(!0,t)),t=a||t,this.xIncrement=null,delete this.xColumn,delete this.xColumnIsNumbers,n!==h.dataTable&&delete n.columns.x,this.colorCounter=0,G(t)?this.setDataFromArray(t):this.setDataFromTable(t),!1===s||!d||this.cropped||this.hasGroupedData||!this.visible||this.boosted||(o=this.matchPoints(c,p,u,g)),!o){for(j(this.getColumn("y")[0])&&ta(14,!0,m),this.data=[],r=d;r--;)l[r]?.destroy();f&&(f.minRange=f.userMinRange),this.isDirty=m.isDirtyBox=!0,this.isDirtyData=!!l,i=!1}G(t)&&(this.options.data=this.userOptions.data=t),"point"===h.legendType&&(this.processData(),this.generatePoints()),e&&m.redraw(i)}setDataFromArray(t){let e=t.length,{keys:i,turboThreshold:s}=this.options,{pointValKey:o="y",pointArrayMap:r=[]}=this,a=r.length,n=this.dataTable,h=this.getDataColumnKeys(),l=s&&e>s,d=0,c=1;if(l){let s=this.getFirstValidPoint(t),p=this.getFirstValidPoint(t,e-1,-1),u=t=>!!(G(t)&&(i||W(t[0])));if(W(s)&&W(p))n.setColumn(o,t);else if(u(s)&&u(p))if(a){let e=s.length===a,i=Array(s.length).fill(0).map(()=>[]);for(let e of t)for(let t=0;t<=a;t++)i[t]?.push(e[t]);n.setColumns((e?r:h).reduce((t,e,s)=>(t[e]=i[s],t),{}))}else{i&&(d=i.indexOf("x"),c=i.indexOf("y"),d=d>=0?d:0,c=c>=0?c:1),1===s.length&&(c=0);let e=[],r=[];if(d===c){for(let e of t)r.push(e[c]);n.setColumn(o,r)}else{for(let i of t)e.push(i[d]),r.push(i[c]);n.setColumns({x:e,[o]:r})}}else l=!1}if(!l){let i={};for(let s=0;s<e;s++){let o=this.pointClass.prototype.optionsToObject.call({series:this},t[s]);for(let t of Object.keys(o))"__proto__"!==t&&"constructor"!==t&&(Object.hasOwnProperty.call(i,t)||(i[t]=Array(e)),i[t][s]=o[t])}e?n.setColumns(i):n.deleteRows(0,n.rowCount)}}setDataFromTable(t){let{chart:e,options:i,dataTable:s}=this,o=e.getDataTable(i),r=t?[t]:o.length?o:e.dataTable,a=this.getDataColumnKeys(),n=i.dataMapping,h=a.slice();n&&(Object.keys(n).forEach(t=>{_(h,t)}),this.dataColumnKeys=h),r.forEach((t,e)=>{let i=h.reduce((i,s)=>{let o=n?.[s],r=t.columns||{},a=t.id,h=j(o)?0===e&&r[o]:((o?.dataTable||0)===e||a&&o?.dataTable===a)&&(W(o?.column)?Object.values(r)[o.column]:r[o?.column||s]);return h&&(i[s]=h),i},{});(n||t)&&s.setColumns(i),t.isDataTable&&this.bindDataTableEvents(t,i)})}bindDataTableEvents(t,e){if(this.hasBoundDataTableEvents)return;let{chart:i,eventsToUnbind:s}=this,o=()=>{clearTimeout(i.redrawTimeout),i.redrawTimeout=setTimeout(()=>i.renderer&&i.redraw(),0)};s.push(p(t,"afterSetRows",t=>{let i=t.rowIndex;if(W(i)){let t=e6.prototype.getRowObject.call({columns:e},i),s=this.data[i];t&&(this.currentDataGrouping?this.setData():(s?s.update(t,!1):this.addPoint(t,!1),o()))}})),s.push(p(t,"afterDeleteRows",t=>{let{rowCount:e,rowIndex:i}=t;if(W(i)){for(let t=i+e-1;t>=i;t--)this.removePoint(t,!1);o()}})),s.push(p(t,"afterSetColumns",t=>{this.setData(t.target)})),this.hasBoundDataTableEvents=!0}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,m,f=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,m=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(f[l-1]<g||f[0]>m?x=new e6:e.getColumn(e.pointValKey||"y").length&&(f[0]<g||f[l-1]>m)&&(x=(d=this.cropData(i,g,m)).modified,p=d.start,c=!0))),x!==i&&(f=x.getColumn("x",!0)||[]),{modified:x,cropped:c,cropStart:p,closestPointRange:O([h?f.map(h.log2lin):f],()=>e.requireSorting&&!y&&ta(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,A(this,"afterProcessData")}cropData(t,e,i){let s=t===this.dataTable?this.getColumn("x"):t.getColumn("x",!0),o=s.length,r,a,n=0,h=o;for(r=0;r<o;r++)if(s[r]>=e){n=Math.max(0,r-1);break}for(a=r;a<o;a++)if(s[a]>i){h=a+1;break}let l=Object.keys(t.columns).reduce((e,i)=>(e[i]=(t.getColumn(i,!0)||[]).slice(n,h),e),{});return l.x=s.slice(n,h),{modified:new e6({columns:l}),start:n,end:h}}generatePoints(){let t=this.options,e=this.hasProcessedDataTable?void 0:t.data,i=this.dataTable.getModified(),s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping?.groupAll?a:0,c=this.getDataColumnKeys(),p,u,g,m,f=this.data,x;if(!f&&!n){let t=[];t.length=e?.length||0,f=this.data=t}for(h&&n&&(this.options.keys=!1),m=0;m<r;m++)u=a+m,n?((g=new o(this,i.getRowObject(m,c))).dataGroup=this.groupMap?.[d+m],g.dataGroup?.options&&(g.options=g.dataGroup.options,S(g,g.dataGroup.options),delete g.dataLabels,g.key=g.name??g.category)):(g=f[u],x=e?e[u]:i.getRowObject(m),g||void 0===x?g&&(g.category=this.xAxis?.categories?.[g.x]??g.x,g.key=g.name??g.category):f[u]=g=new o(this,x,s[m])),g&&(g.index=n?d+m:u,l[m]=g);if(this.options.keys=h,f&&(r!==(p=f.length)||n))for(m=0;m<p;m++)m!==a||n||(m+=r),f[m]&&(f[m].destroyElements(),f[m].plotX=void 0);this.data=f,this.points=l,A(this,"afterGeneratePoints")}getXExtremes(t){return{min:u(t),max:g(t)}}getExtremes(t,e){let{options:i,xAxis:s,yAxis:o}=this,r=e||this.getExtremesFromAll||i.getExtremesFromAll,a=r&&this.cropped?this.dataTable:this.dataTable.getModified(),n=a.rowCount,h=t||this.stackedYData,l=h?[h]:(this.keysAffectYAxis||this.pointArrayMap||["y"])?.map(t=>a.getColumn(t,!0)||[])||[],d=this.getColumn("x",!0),c=[],p=this.requireSorting&&!this.is("column")?1:0,m=i.cumulative&&i.cumulativeStart&&p&&!r,f=!!o&&o.positiveValuesOnly,x=r||this.cropped||!s,y,b,v,M=0,w=0;for(s&&(M=(y=s.getExtremes()).min,w=y.max),v=0;v<n;v++)if(b=d[v],(x||(d[v+p]||b)>=M&&(d[v-p]||b)<=w)&&(!m||b>=M))for(let t of l){let e=t[v];W(e)&&(e>0||!f)&&c.push(e)}let k={activeYData:c,dataMin:u(c),dataMax:g(c)};return A(this,"afterGetExtremes",{dataExtremes:k}),k}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o<s;){if(M(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let{hasRendered:t,options:e,xAxis:i,yAxis:s}=this,{stacking:o,threshold:r}=e,{polar:a}=this.chart,n=this.points.concat(this.condemnedPoints),h=n.length,l=this.pointPlacementToXValue(),d=!!l,c=e.startFromThreshold?r:0,p=e?.nullInteraction&&s.len,u,g,m,y,b=Number.MAX_VALUE;function v(t){return f(t,-1e9,1e9)}let w=(t,e)=>{let s=i.translate(t,!1,!1,e,!0,l);return W(s)?x(v(s)):void 0},k=(t,e,i)=>{if(W(t)&&void 0!==e.plotX){let e=s.translate(t,!1,!0,i,!0);return W(e)?v(e):void 0}if(!W(t)&&p)return p};for(u=0;u<h;u++){let e=n[u],h=e.x,p,f,C=e.y,T=e.low,S=o&&s.stacking?.stacks[(this.negStacks&&C<(c?0:r)?"-":"")+this.stackKey];e.plotX=g=w(h),o&&this.visible&&S&&S[h]&&(y=this.getStackIndicator(y,h,this.index),!e.isNull&&y.key&&(f=(p=S[h]).points[y.key]),p&&G(f)&&(T=f[0],C=f[1],T===c&&y.key===S[h].base&&(T=W(r)?r:s.min),s.positiveValuesOnly&&M(T)&&T<=0&&(T=void 0),e.total=e.stackTotal=p.total??void 0,e.percentage=M(e.y)&&p.total?e.y/p.total*100:void 0,e.stackY=C,this.irregularWidths||p.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),e.yBottom=M(T)?v(s.translate(T,!1,!0,!1,!0)):void 0,this.dataModify&&(C=this.dataModify.modifyValue(C,u)),e.plotY=k(C,e),e.origin=!t||e.graphic||a?void 0:{x:w(h,!0),y:k(C,e,!0)},e.isInside=this.isPointInside(e),e.clientX=d?x(i.translate(h,!1,!1,!1,!0,l)):g,e.negative=(e.y||0)<(r||0),!e.isNull&&!1!==e.visible&&W(g)&&(W(m)&&(b=Math.min(b,Math.abs(g-m))),m=g),e.zone=this.zones.length?e.getZone():void 0}this.closestPointRangePx=b,A(this,"afterTranslate")}getValidPoints(t,e,i){let s=this.chart;return(t||this.points||[]).filter(function(t){let{plotX:o,plotY:r}=t;return(!!i||!t.isNull&&!!W(r))&&(!e||!!s.isInsidePlot(o,r,{inverted:s.inverted}))&&!1!==t.visible})}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:t,group:e,markerGroup:i,options:s,plotClipGroup:o}=this,r=t.sharedClips,a=t.renderer,n=t.getClipBox(this),h=s.clip??!0,l=this.getSharedClipKey(),d=r[l];d?d.animate(n):r[l]=d=a.clipRect(n),e?.clip(h?d:void 0),i?.clip(),o?.clip(h&&this.yAxis?.clippable?t.plotClipInner:void 0)}animate(t){let{chart:e,group:i,markerGroup:s}=this,o=e.inverted,r=tP(this.options.animation),a=[this.getSharedClipKey(),r.duration,r.easing,r.defer].join(","),n=e.sharedClips[a],h=e.sharedClips[a+"m"];if(t&&i){let t=e.getClipBox(this);if(n)n.attr("height",t.height);else{t.width=0,o&&(t.x=e.plotHeight),n=e.renderer.clipRect(t),e.sharedClips[a]=n;let i={x:-99,y:-99,width:o?e.plotWidth+199:99,height:o?99:e.plotHeight+199};h=e.renderer.clipRect(i),e.sharedClips[a+"m"]=h}i.clip(n),s?.clip(h)}else if(n&&!n.hasClass("highcharts-animating")){let t=e.getClipBox(this),i=r.step;(s?.element.childNodes.length||e.series.length>1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),V(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,A(this,"afterAnimate")}drawPoints(t){let e,i,s,o,r,a,n;t||(t=this.points.concat(this.condemnedPoints));let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker||{},u=c.nullInteraction,g=this[this.specialGroup||"markerGroup"],m=this.xAxis,f=p.enabled??(!m||!!m.isRadial||null)??(this.closestPointRangePx??-1/0)>=(p.enabledThreshold??2)*p.radius;if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e<t.length;e++){o=(s=(i=t[e]).graphic)?"animate":"attr",r=i.marker||{},a=!!i.marker;let c=i.isNull;if((f&&!M(r.enabled)||r.enabled)&&(!c||u)&&!1!==i.visible){let t=r.symbol??this.symbol??"rect";n=this.markerAttribs(i,i.selected?"select":"");let e=!1!==i.isInside;if(!s&&e&&((n.width||0)>0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(g),i.origin)){let t=i.getOrigin(i.origin,n);l||(t.opacity=0),s.attr(t),o="animate"}if(s){"animate"===o&&s?.animate(n);let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t),s.addClass(i.getClassName(),!0)}}else s&&(i.graphic=s.destroy())}}markerAttribs(t,e){let i=this.options,s=i.marker??{},o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=o.radius??s.radius;e&&(n=s.states?.[e],h=o.states?.[e],l=h?.radius??n?.radius??(l&&l+(n?.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return W(l)&&d&&(i.crisp&&(d[0]=b(d[0],t.hasImage?0:"rect"===r?s.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options,s=i.marker??{},o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,h=t?.zone?.color,l=this.color,d,c,p=r.lineWidth??s.lineWidth,u=t?.isNull&&i.nullInteraction?0:1;l=a||h||n||l,d=r.fillColor||s.fillColor||l,c=r.lineColor||s.lineColor||l,e=e||"normal";let g=s.states?.[e]||{},m=r.states?.[e]||{};return p=m.lineWidth??g.lineWidth??(p||0)+(m.lineWidthPlus??g.lineWidthPlus??0),d=m.fillColor||g.fillColor||d,c=m.lineColor||g.lineColor||c,u=m.opacity??g.opacity??u,{stroke:c,"stroke-width":p,fill:d,opacity:t?.condemned||t?.isInside===!1?0:u}}destroy(t){let e,i=this,s=i.chart,o=/AppleWebKit\/533/.test(ij.navigator.userAgent);for(let s of(A(i,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),i.axisTypes||[]))e=i[s],e?.series&&(T(e.series,i),e.isDirty=e.forceRedraw=!0);for(let t of(i.legendItem&&i.chart.legend.destroyItem(i),i.points||[]))t?.destroy?.(!0);for(let t of i.zones||[])w(t,void 0,!0);z(i.animationTimeout),V(i,function(t,e){t instanceof tQ&&!t.survive&&t[o&&"group"===e?"hide":"destroy"]()}),s.hoverSeries===i&&(s.hoverSeries=void 0),T(s.series,i),s.orderItems("series"),V(i,function(e,s){t&&"hcEvents"===s||delete i[s]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,m=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o,value:r}=t,a=i-s;o?.push(["L",e,Math.abs(a)<g?i-g*(a<0||0===a&&M(r)?-1:1):s])};if(s.length&&(i||t)&&d&&W(d.min)){let e=d.getExtremes().max+u,g=t=>{t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=f(d.toPixels(t.value??e,!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length<r.len)for(let t of o){let{plotX:e,plotY:i,zone:o}=t,r=o&&s[s.indexOf(o)-1];o&&m(o,e,i),r&&m(r,e,i)}let x=[],y=d.toPixels(d.getExtremes().min-u,!0);s.forEach(e=>{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,m=r.len,f=a.len;c?(p=o,m=y):(u=o,f=y);let b=[["M",p,u],["L",m,u],["L",m,f],["L",p,f],["Z"]],v=[b[0],...s,b[1],b[2],...x,b[3],b[4]];x=s.reverse(),y=o,h&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return M(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(M(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;s.inverted&&(e=i,i=this.xAxis);let r={scale:1,translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,name:t};A(this,"getPlotBox",r);let{scale:a,translateX:n,translateY:h}=r;return{translateX:n,translateY:h,rotation:90*!!o,rotationOriginX:o?a*(e.len-i.len)/2:0,rotationOriginY:o?a*(e.len+i.len)/2:0,scaleX:o?-a:a,scaleY:a}}removeEvents(t){let{eventsToUnbind:e}=this;t||J(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=tP(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;A(this,"render"),e.plotClipInner&&(t.plotClipGroup||(t.plotClipGroup=e.renderer.g().add(n))),t.plotGroup("group","series",r,a,t.plotClipGroup||n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=te(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,A(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree,this.condemnedPoints.length=0}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=(i.findNearestPointBy??"").indexOf("y")>-1?2:1;delete e.kdTree,te(function(){e.kdTree=function t(i,s,o){let r,a,n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1},i.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>{let s=t[i]||0,o=e[i]||0;return[s===o&&t.index>e.index||s<o?t:e,!1]}),p=o||((t,e)=>t<e);if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,s,o){let l,u,g,m,f,x,y,b=i.point,v=r.kdAxisArray[s%o],w=b,k=!1;l=e[a],u=b[a],g=M(l)&&M(u)?l-u:null,m=e[n],f=b[n],x=M(m)&&M(f)?m-f:0,y=d&&b.marker?.radius||0,b.dist=Math.sqrt((g&&g*g||0)+x*x)-y,b.distX=M(g)?Math.abs(g)-y:Number.MAX_VALUE;let C=(e[v]||0)-(b[v]||0)+(d&&b.marker?.radius||0),T=C<0?"left":"right",S=C<0?"right":"left";return i[T]&&([w,k]=c(b,t(e,i[T],s+1,o),h)),i[S]&&p(Math.sqrt(C*C),w[h],k)&&(w=c(w,t(e,i[S],s+1,o),h)[0]),w}(t,this.kdTree,l,l)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return"between"===i&&(i=e.reversed?-.5:.5),W(i)?i*(t.pointRange||e.pointRange):0}isPointInside(t){let{chart:e,xAxis:i,yAxis:s}=this,{plotX:o=-1,plotY:r=-1}=t;return r>=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(iW?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,...t.dataLabelsGroups||[]].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),A(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a,n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c?.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=e??!0;let{applyOptions:m,optionsToObject:f}=this.pointClass.prototype,x={series:this},y=f.call(x,t);m.call(x,y,void 0,!1);let b=x.x;if(a=g.length,this.requireSorting&&b<g[a-1])for(r=!0;a&&g[a-1]>b;)a--;d.setRow(y,a,!0),this.xColumn?.splice(a,0,this.getX(b)),p&&x.name&&(p[b]=x.name),u?.splice(a,0,t),(r||this.hasProcessedDataTable)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,this.xColumn].filter(M).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&A(this,"addPoint",{point:x}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,s.xColumn].filter(M).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),n.modified=n,h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};tS(i,o),e=e??!0,h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),(t??!0)&&r.redraw(e)}!1!==i?A(o,"remove",null,a):a()}update(t,e){A(this,"update",{options:t=C(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=iG[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d=t.data||t.dataTable,c,p,u=iF.keepProps.slice(),g=t.type||o.type||s.options.chart.type,m=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));g=g||r,m?(u.push.apply(u,iF.keepPropsForPoints),!1!==t.visible&&(u.push("area","graph"),"zones"in t||u.push("zones")),i.parallelArrays.forEach(function(t){u.push(t+"Data")}),d&&(t.dataSorting&&S(i.options.dataSorting,t.dataSorting),this.setData(d,!1))):this.dataTable.modified=this.dataTable,t.dataLabels&&o.dataLabels&&(t.dataLabels=this.mergeArrays(o.dataLabels,t.dataLabels)),t=H(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart},!m&&{data:i.options.data},t,h),m&&t.data&&(t.data=i.options.data),(u=["dataLabelsGroup","dataLabelsGroups","dataLabelsParentGroups","group","markerGroup","plotClipGroup","transformGroup"].concat(u)).forEach(function(t){u[t]=i[t],delete i[t]});let f=!1;if(iG[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,iG[g].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(p in n)i[p]=void 0;S(i,iG[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}else ta(17,!0,s,{missingModuleFor:g});if(u.forEach(function(t){i[t]=u[t]}),i.init(s,t),m&&this.points)for(let t of(!1===(c=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(c,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===c.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),A(this,"afterUpdate"),(e??!0)&&s.redraw(!!m&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=s?.[this.type]?.[t]??s?.series?.[t];return o&&!M(r)?i!==o:i!==(r??i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),A(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.chart,e=t.tooltip,i=t.hoverPoint;t.hoverSeries=null,i&&i.onMouseOut(),A(this,"mouseOut"),e&&!this.stickyTracking&&(!e.shared||this.noSharedTooltip)&&e.hide(),t.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,{graph:s,options:o}=i,{inactiveOtherPoints:r,states:a={}}=o,n=a[t||"normal"]?.animation??i.chart.options.chart.animation,{lineWidth:h,opacity:l}=o;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,...i.dataLabelsGroups||[]].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]?.enabled===!1)return;if(t&&(h=a[t]?.lineWidth??(W(h)?h+(a?.[t]?.lineWidthPlus||0):void 0),l=a[t]?.opacity??l),s&&!s.dashstyle&&W(h))for(let t of[s,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,...i.dataLabelsGroups||[],i.labelBySeries].forEach(function(t){t?.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(e=>e.setState?.(t))}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),i.dataLabelsGroups?.forEach(t=>{t?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),A(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),A(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){let i=this.chart.renderer,s=this.options.legendSymbol||"rectangle",o=e.legendItem||{},{options:r,symbolHeight:a,symbolWidth:n}=t,h=r.squareSymbol,l=h?a:n,d=h?(n-a)/2:0,c=(t.baseline||0)-a+1,p=r.symbolRadius??a,u="rectangle"===s?i.rect(d,c,l,a,p):i.symbols[s]&&i.symbol(s,d,c,l,a,{r:p});u?o.symbol=u.addClass("highcharts-point").attr({zIndex:3}).add(o.group):iE[s]?.call(this,t,e)}}iF.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"var(--highcharts-background-color)",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"var(--highcharts-neutral-color-20)",lineColor:"var(--highcharts-neutral-color-100)",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,distance:4,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:[1,3],style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},iF.types=iz.seriesTypes,iF.registerType=iz.registerSeriesType,iF.keepProps=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],iF.keepPropsForPoints=["data","isDirtyData","isDirtyCanvas","points","condemnedPoints","dataTable","hasProcessedDataTable","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"],S(iF.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:eK,requireSorting:!0,sorted:!0}),iz.series=iF;let iH=iF,{registerEventOptions:iY}=eM,{composed:iV,marginNames:iU}=h,{distribute:i$}=tV,{format:iZ}=tY;class i_{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),iY(this,e),p(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),p(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=t.padding??8;this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=H(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=t.symbolWidth??16,this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(H(!0,this.options,t)),"events"in this.options&&iY(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,(e??!0)&&i.redraw(),A(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof iH||t instanceof eK)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,lineColor:l}=t.options,d=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(H(e?this.itemStyle:i)),a?.attr(d({stroke:l||t.color})),n?.attr(d(t.series?t.series.pointAttribs?.(t):t.pointAttribs?.()||{fill:t.color})),s?.attr(d({fill:h||t.color,"fill-opacity":h?1:t.options.fillOpacity??.75}))}t.color=i,A(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e?.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s},n=()=>{A(this,"afterPositionItem",{item:t})};e[M(e.translateY)?"animate":"attr"](o,void 0,n)}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.legendItem||{};for(let t of["group","label","line","symbol"])e[t]&&(e[t]=e[t].destroy());t.checkbox=k(t.checkbox),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r,a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,v(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r<t+i-6?"":"none"}))},this))}renderTitle(){let t=this.options,e=this.padding,i=t.title,s,o=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,void 0,void 0,void 0,t.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(i.style),this.title.add(this.group)),i.width||this.title.css({width:this.maxLegendWidth+"px"}),o=(s=this.title.getBBox()).height,this.offsetWidth=s.width,this.contentGroup.attr({translateY:o})),this.titleHeight=o}setText(t){let e=this.options;t.legendItem.label.attr({text:e.labelFormat?iZ(e.labelFormat,t,this.chart):e.labelFormatter.call(t,t)})}renderItem(t){let e=t.legendItem=t.legendItem||{},i=this.chart,s=i.renderer,o=this.options,r="horizontal"===o.layout,a=this.symbolWidth,n=o.symbolPadding||0,h=this.itemStyle,l=this.itemHiddenStyle,d=r?o.itemDistance??20:0,c=!o.rtl,p=!t.series,u=!p&&t.series.drawLegendSymbol?t.series:t,g=u.options,m=!!this.createCheckboxForItem&&g&&g.showCheckbox,f=o.useHTML,x=t.options.className,y=e.label,b=a+n+d+20*!!m;!y&&(e.group=s.g("legend-item").addClass("highcharts-"+u.type+"-series highcharts-color-"+t.colorIndex+(x?" "+x:"")+(p?" highcharts-series-"+t.index:"")).attr({zIndex:1}).add(this.scrollGroup),e.label=y=s.text("",c?a+n:-n,this.baseline||0,f),i.styledMode||y.css(H(t.visible?h:l)),y.attr({align:c?"left":"right",zIndex:2}).add(e.group),!this.baseline&&(this.fontMetrics=s.fontMetrics(y),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,y.attr("y",this.baseline),this.symbolHeight=o.symbolHeight??this.fontMetrics.f,o.squareSymbol&&(this.symbolWidth=o.symbolWidth??Math.max(this.symbolHeight,16),b=this.symbolWidth+n+d+20*!!m,c&&y.attr("x",this.symbolWidth+n))),u.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,y,f)),m&&!t.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(t),this.colorizeItem(t,t.visible),(i.styledMode||!h.width)&&y.css({width:Math.min(o.itemWidth||this.widthOption||i.spacingBox.width,o.maxWidth?K(o.maxWidth,i.chartWidth):1/0)-b+"px"}),this.setText(t);let v=y.getBBox(),M=this.fontMetrics?.h||0;t.itemWidth=t.checkboxOffset=o.itemWidth||e.labelWidth||v.width+b,this.maxItemWidth=Math.max(this.maxItemWidth,t.itemWidth),this.totalItemWidth+=t.itemWidth,this.itemHeight=t.itemHeight=Math.round(e.labelHeight||(v.height>1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?e.itemDistance??20:0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e?.options;e&&(i.showInLegend??!M(i.linkedTo))&&(t=t.concat(e.legendItem?.labels||("point"===i.legendType?e.data:e)))}),A(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((r,a)=>{r.test(o)&&!M(t[a])&&(i[iU[a]]=Math.max(i[iU[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+(s.margin??12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t,e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=B(a?t.points:t.points.slice(0).reverse(),function(t){return W(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),i$(i,e.plotHeight)))t=o.item.legendItem||{},W(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.spacingBox.width,i=t.renderer,s=this.options,o=this.padding,r=this.getAllItems(),a,n,h,l=this.group,d,c=this.box;this.itemX=o,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=K(s.width,e-o),d=e-2*o-s.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(d/=2),this.maxLegendWidth=this.widthOption||d,l||(this.group=l=i.g("legend").addClass(s.className||"").attr({zIndex:7}).add(),this.contentGroup=i.g().attr({zIndex:1}).add(l),this.scrollGroup=i.g().add(this.contentGroup)),this.renderTitle(),tt(r,(t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0)),s.reversed&&r.reverse(),this.allItems=r,this.display=a=!!r.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,r.forEach(this.renderItem,this),r.forEach(this.layoutItem,this),n=(s.maxWidth?Math.min(this.widthOption||this.offsetWidth,d,K(s.maxWidth,t.chartWidth)||1/0):this.widthOption||this.offsetWidth)+o,h=this.lastItemY+this.lastLineHeight+this.titleHeight,h=this.handleOverflow(h)+o,c||(this.box=c=i.rect().addClass("highcharts-legend-box").attr({r:s.borderRadius}).add(l)),t.styledMode||c.attr({stroke:s.borderColor,"stroke-width":s.borderWidth||0,fill:s.backgroundColor||"none"}).shadow(s.shadow),n>0&&h>0&&c[c.placed?"animate":"attr"](c.crisp.call({},{x:0,y:0,width:n,height:h},c.strokeWidth())),l[a?"show":"hide"](),t.styledMode&&"none"===l.getStyle("display")&&(n=h=0),this.legendWidth=n,this.legendHeight=h,a&&this.align(),this.proximate||this.positionItems(),A(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=H(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(H(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=l.animation??!0,c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?w.attr({height:t}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},m=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(M),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},f,x,y,b,v=i.spacingBox.height+(a?-r:r)-n,M=this.nav,w=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(v/=2),h&&(v=Math.min(v,h)),p.length=0,t&&v>0&&t>v&&!1!==l.enabled?(this.clipHeight=f=Math.max(v-20-this.titleHeight-n,0),this.currentPage=this.currentPage??1,this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>f&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&b&&(b.pageIx=o-1),e===u.length-1&&i+s-p[o-1]>f&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i),b=y}),w||(w=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(w)),g(f),M||(this.nav=M=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(M),m("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(M),this.down=s.symbol("triangle-down",0,0,c,c).add(M),m("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=v):M&&(g(),this.nav=M.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&tS(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),te(()=>{A(this,"afterScroll",{currentPage:l})},tP(e??i.renderer.globalAnimation??!0).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof eK,n=t instanceof iH,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(H(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),A(s,"itemClick",{browserEvent:e,legendItem:t,context:s},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&A(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=y("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),p(t.checkbox,"click",function(e){let i=e.target;A(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}(ik=i_||(i_={})).compose=function(t){_(iV,"Core.Legend")&&p(t,"beforeMargins",function(){this.legend=new ik(this,this.options.legend)})};let iK=i_,{defaultOptions:iq}=ty,{numberFormat:iJ}=tY,{registerEventOptions:iQ}=eM,{charts:i0,doc:i1,marginNames:i2,win:i3}=h,{seriesTypes:i5}=iz;class i6{static chart(t,e,i){let s=new i6(t,e,i);return s.promise??s}constructor(t,e,i){if(this.sharedClips={},!i1)return void ta(36,!1,this);let s=[...arguments];(j(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:t.zoomType??e.type,key:t.zoomKey??e.key,pinchType:t.pinchType??e.pinchType,singleTouch:t.zoomBySingleTouch??e.singleTouch??!1,resetButton:H(e.resetButton,t.resetZoomButton)}}init(t,e){A(this,"init",{args:arguments},function(){let i=H(iq,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=S({},t),(this.renderTo=j(o)?i1.getElementById(o):o)||ta(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],!0===e?this.promise=new Promise(t=>{this.callback=t}):this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tg(S(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||iJ).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=i0.length,this.dataTable=this.getDataTable(i),i0.push(this),h.chartCount++,iQ(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),A(this,"afterInit"),this.firstRender()})}getDataTable(t){return(t.dataTable?Q(t.dataTable):[]).map(t=>t.isDataTable?t:new e6(t))}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=i5[i];s||ta(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}orderItems(t,e=0){let i=this[t],s=this.options[t]=Q(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?Q(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t<r;++t){let e=i[t];e&&(e.index=t,e instanceof iH&&(e.name=e.getName()),e.options.isInternal||(s[t]=e.options,o[t]=e.userOptions))}}getClipBox(t,e){let i=this.inverted,{xAxis:s,yAxis:o}=t||{},{x:r,y:a,width:n,height:h}=H(this.clipBox);return t&&(s&&s.len!==this.plotSizeX&&!s.isRadial&&(n=s.len),o&&o.len!==this.plotSizeY&&!o.isRadial&&(h=o.len),i&&!t.invertible&&([n,h]=[h,n])),e&&(r+=(i?o:s)?.pos??this.plotLeft,a+=(i?s:o)?.pos??this.plotTop),{x:r,y:a,width:n,height:h}}isInsidePlot(t,e,i={}){let{inverted:s,plotBox:o,plotLeft:r,plotTop:a,scrollablePlotBox:n}=this,{scrollLeft:h=0,scrollTop:l=0}=i.visiblePlotOnly&&this.scrollablePlotArea?.scrollingContainer||{},d=i.series,c=i.visiblePlotOnly&&n||o,p=i.inverted?e:t,u=i.inverted?t:e,g={x:p,y:u,isInsidePlot:!0,options:i};if(!i.ignoreX){let t=d&&(s&&!this.polar?d.yAxis:d.xAxis)||{pos:r,len:1/0},e=i.paneCoordinates?t.pos+p:r+p;e>=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return A(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){A(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),tS(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),p=!0):r&&(r.labelFormatter||r.labelFormat)&&(p=!0)),t.isDirtyData&&A(t,"updatedData")}),p&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins();let g=this.isDirtyBox;e.forEach(function(t){t.isDirty&&(g=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){A(t,"afterSetExtremes",S(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(g||d)&&t.redraw()}),g&&this.drawChartBox(),A(this,"predraw"),i.forEach(function(t){(g||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),e.forEach(t=>{t.saveOld()}),A(this,"redraw"),A(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=B(this.axes,i)||B(this.series,i);for(let t=0;!s&&t<e.length;t++)s=B(e[t].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(A(this,"createAxes"),["xAxis","yAxis"]))for(let i of t[e]=Q(t[e]||{}))new eE(this,i,e);A(this,"afterCreateAxes")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(e=>{(e.selectedStaging??e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=H(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:[s.className,"highcharts-"+t].filter(j).join(" "),zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(S("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=H(o),n=i?.textPxLength||0;if(i&&r){A(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),m=Math.max(p,g),f=H({y:"bottom"===d?h:u+h},r),x=(r.width||(g>p?this.chartWidth:a.width)/m)+"px";f.align??(f.align="title"===t?g<p?"left":"center":this.title?.alignValue),i.alignValue!==f.align&&(i.placed=!1);let y=Math.round(i.css({width:x}).getBBox(r.useHTML).height);if(f.height=y,i.align(f,!1,a).attr({align:f.align,scaleX:m,scaleY:m,"transform-origin":`${a.x+n*m*L(f.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:m);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,A(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:D(this.renderTo,"width",!0)||0,height:D(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,K(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(v(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(i1.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(i1.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,i1.body.appendChild(e)),("none"===D(e,"display",!1)||e.hcOrigDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),v(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==i1.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t,e=this.options,i=e.chart,s="data-highcharts-chart",o=tl(),r=this.renderTo,a=Z(m(r,s));W(a)&&i0[a]&&i0[a].hasRendered&&i0[a].destroy(),m(r,s,this.index),r.innerHTML=tR.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;v(r,{overflow:"hidden"}),this.styledMode||(t=S({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=y("div",{id:o},t,r);if(this.container=l,this.getChartSize(),h!==this.chartWidth&&(h=this.chartWidth,this.styledMode||v(l,{width:i.style?.width??h+"px"})),this._cursor=l.style.cursor,this.renderer=new em(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode,e.palette,this.index),this.containerBox=this.getContainerBox(),tS(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style),this.palette=this.renderer.palette;A(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!M(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!M(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),A(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=t=>{t.forEach(t=>{t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),i2.forEach((i,o)=>{M(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return C(this.userOptions,iq)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.exporting?.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(z(e.reflowTimeout),e.reflowTimeout=te(function(){if(e.container){e.setSize(void 0,void 0,!1);let t=e.containerBox;t&&(t.height=e.chartHeight)}},100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=p(i3,"resize",e);p(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,tS(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?tL:v)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,A(s,"resize"),setTimeout(()=>{s&&A(s,"endResize")},tP(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,clipOffset:n,inverted:h,spacing:l,renderer:d}=this,c=Math[h?"floor":"round"];if(this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=h?o:s,this.plotSizeY=h?s:o,this.spacingBox=d.spacingBox={x:l[3],y:l[0],width:a-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=d.plotBox={x:e,y:i,width:s,height:o},n&&(this.clipBox={x:c(n[h?2:3]),y:c(n[+!!h]),width:c(this.plotSizeX-n[+!h]-n[h?2:3]),height:c(this.plotSizeY-n[+!!h]-n[h?3:2])}),!t){for(let t of this.axes)t.setAxisSize(),t.setAxisTranslation();d.alignElements()}A(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){A(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;["margin","spacing"].forEach(i=>{let s=e[i],o=F(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach((s,r)=>{t[i][r]=e[`${i}${s}`]??o[r]})}),i2.forEach((e,i)=>{t[e]=t.margin[i]??t.spacing[i]}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this,e=t.options.chart,{backgroundColor:i,plotBackgroundColor:s,plotBackgroundImage:o,plotBorderRadius:r=0,shadow:a}=e,{chartWidth:n,chartHeight:h,clipBox:l,clipOffset:d,clipRect:c,plotBGImage:p,plotBox:u,plotLeft:g,plotTop:m,plotWidth:f,plotHeight:x,renderer:y,styledMode:b}=t,v=t.chartBackground,M=t.plotBackground,w=t.plotBorder,k,C,T,S="animate";v||(t.chartBackground=v=y.rect().addClass("highcharts-background").add(),S="attr"),b?k=C=v.strokeWidth():(C=(k=e.borderWidth||0)+8*!!a,T={fill:i||"none"},(k||v["stroke-width"])&&(T.stroke=e.borderColor,T["stroke-width"]=k),v.attr(T).shadow(a)),v[S]({x:C/2,y:C/2,width:n-C-k%2,height:h-C-k%2,r:e.borderRadius}),S="animate",M||(S="attr",t.plotBackground=M=y.rect().addClass("highcharts-plot-background").add()),M[S]({...u,r:r}),!b&&(M.attr({fill:s||"none"}).shadow(e.plotShadow),o&&(p?(o!==p.attr("href")&&p.attr("href",o),p.animate(u)):t.plotBGImage=y.image(o,g,m,f,x).add())),c?c.animate({width:l.width,height:l.height}):t.clipRect=y.clipRect(l),S="animate",w||(S="attr",t.plotBorder=w=y.rect().addClass("highcharts-plot-border").attr({zIndex:1.5}).add()),w.attr(b?void 0:{stroke:e.plotBorderColor,"stroke-width":e.plotBorderWidth||0,fill:"none"})[S]({r:r});let P=w.strokeWidth(),L=H(w.crisp(u,-P));if(d&&!b){let t=d[0]-P/2,e=d[3]-P/2;L.x-=e,L.y-=t,L.width+=e+d[1]-P/2,L.height+=t+d[2]-P/2}w[S](L),["plotClipOuter","plotClipInner"].forEach((e,i)=>{let s=t[e],o=i?-P:P;s?.[r?S:"attr"]({x:L.x-o/2,y:L.y-o/2,width:L.width+o,height:L.height+o,r:r?r+o/2:0}),s?.parentGroup?.attr({display:r?"":"none"})}),t.isDirtyBox=!1,A(this,"afterDrawChartBox")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=i5[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=i5[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:s}=t.options,o=j(s)&&(":previous"===s?i[t.index-1]:e.get(s));o&&o.linkedParent!==t&&(o.linkedSeries.push(t),t.linkedParent=o,t.visible=t.options.visible??o.options.visible??t.visible)}),A(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,{axisLayoutRuns:s=2,plotBorderRadius:o}=this.options.chart,r=t=>{t.forEach(t=>{t.visible&&t.render()})},a=0,n=!0,h,l=0;for(let e of(o&&(this.plotClipOuter||(this.plotClipOuter=i.clipRect()),this.plotClipInner||(this.plotClipInner=i.clipRect())),this.setTitle(),A(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i,offset:s}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!e.isRadial){a=t.tickLength,e.createGroups();let o=new ek(e,0,"",!0),r=o.createLabel("x",i);if(o.destroy(),r&&(i.reserveSpace??!W(t.crossing))&&(a=r.getBBox().height+(i.distance??15)+Math.max(W(s)?s:0,0)),a){r?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-a,0);(n||h||s>1)&&l<s;){let e=this.plotWidth,i=this.plotHeight,s=[1.05,1.1];for(let e of t){let t=+(e.horiz||0);if(0===l){e.setScale();let i=e.tickPositions?.info?.match;i&&(s[t]=Math.min(i,s[t]))}else(t&&n||!t&&h)&&e.setTickInterval(!0)}0===l?this.getAxisMargins():this.getMargins(),n=e/this.plotWidth>(l?1:s[1]),h=i/this.plotHeight>(l?1:s[0]),l++}this.drawChartBox(),this.hasCartesianSeries?r(t):e?.length&&r(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=H(!0,this.options.credits,t);if(i.enabled&&!this.credits){let t=i.href?tR.filterUserAttributes({href:i.href}).href:void 0;this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0,i.useHTML).addClass("highcharts-credits").on("click",function(i){A(e,"creditsClick",i,()=>{t&&(i3.location.href=t)})}).attr({align:i.position.align,zIndex:8}),i.events?.click&&p(e,"creditsClick",i.events.click),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)}}}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(A(e,"destroy"),e.renderer.forExport?T(i0,e):i0[e.index]=void 0,h.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),J(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(t=>{e[t]=e[t]?.destroy?.()}),o&&(o.innerHTML=tR.emptyHTML,J(o),r&&k(o)),V(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=G(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),A(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.asyncCounter||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),A(this,"load"),A(this,"render"),M(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.warnIfCSSNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;t&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:"img","aria-label":(e?.element.textContent||"").replace(/</g,"&lt;")}),t.accessibility&&!1===t.accessibility.enabled||ta('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}warnIfCSSNotLoaded(){this.styledMode&&"0"!==i3.getComputedStyle(this.container).zIndex&&ta(35,!1,this)}addSeries(t,e,i){let s,o=this;return t&&(e=e??!0,A(o,"addSeries",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),A(o,"afterAddSeries",{series:s}),e&&o.redraw(i)})),s}addAxis(t,e,i,s){return this.createAxis(e?"xAxis":"yAxis",{axis:t,redraw:i,animation:s})}addColorAxis(t,e,i){return this.createAxis("colorAxis",{axis:t,redraw:e,animation:i})}createAxis(t,e){let i=new eE(this,e.axis,t);return(e.redraw??!0)&&this.redraw(e.animation),i}showLoading(t){let e=this,i=e.options,s=i.loading,o=s?.style??{},r=function(){a&&v(a,{left:o.left??e.plotLeft+"px",top:o.top??e.plotTop+"px",width:o.width??e.plotWidth+"px",height:o.height??e.plotHeight+"px"})},a=e.loadingDiv,n=e.loadingSpan;a||(e.loadingDiv=a=y("div",{className:"highcharts-loading highcharts-loading-hidden"},null,e.container)),n||(e.loadingSpan=n=y("span",{className:"highcharts-loading-inner"},null,a),p(e,"redraw",r)),a.className="highcharts-loading",tR.setElementHTML(n,t??i.lang.loading??""),!e.styledMode&&(v(a,S(o,{zIndex:10})),v(n,s?.labelStyle??{}),e.loadingShown||(v(a,{opacity:0,display:""}),tL(a,{opacity:o.opacity??.5},{duration:s?.showDuration??0}))),e.loadingShown=!0,r()}hideLoading(){let t=this.options,e=this.loadingDiv;e&&(e.className="highcharts-loading highcharts-loading-hidden",this.styledMode||tL(e,{opacity:0},{duration:t.loading?.hideDuration??100,complete:function(){v(e,{display:"none"})}})),this.loadingShown=!1}update(t,e,i,s){let o,r,a,n=this,h={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},l=t.isResponsiveOptions,d=[],c={options:t=C(t,n.options),hasChanged:!!Object.keys(t).length};if(A(n,"update",c),!c.hasChanged)return;l||n.setResponsive(!1,!0),n.userOptions=H(n.userOptions,t);let p=t.chart;p&&(H(!0,n.options.chart,p),this.setZoomOptions(),"className"in p&&n.setClassName(p.className),("inverted"in p||"polar"in p||"type"in p)&&(n.propFromSeries(),o=!0),"alignTicks"in p&&(o=!0),"events"in p&&iQ(this,p),V(p,function(t,e){-1!==n.propsRequireUpdateSeries.indexOf("chart."+e)&&(r=!0),-1!==n.propsRequireDirtyBox.indexOf(e)&&(n.isDirtyBox=!0),-1!==n.propsRequireReflow.indexOf(e)&&(n.isDirtyBox=!0,l||(a=!0))}),!n.styledMode&&p.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),V(t,function(e,i){n[i]&&"function"==typeof n[i].update?n[i].update(e,!1):"function"==typeof n[h[i]]?n[h[i]](e):"colors"!==i&&-1===n.collectionsWithUpdate.indexOf(i)&&H(!0,n.options[i],t[i]),"chart"!==i&&-1!==n.propsRequireUpdateSeries.indexOf(i)&&(r=!0)}),this.collectionsWithUpdate.forEach(e=>{t[e]&&(Q(t[e]).forEach((t,s)=>{let o;if(!t)return;let r=M(t.id);r&&(o=n.get(t.id)),!o&&n[e]&&(o=n[e][t.index??s])&&(r&&M(o.options.id)||o.options.isInternal)&&(o=void 0),o&&o.coll===e&&(o.update(t,!1),i&&(o.touched=!0)),!o&&i&&n.collectionsWithInit[e]&&(n.collectionsWithInit[e][0].apply(n,[t].concat(n.collectionsWithInit[e][1]||[]).concat([!1])).touched=!0)}),i&&n[e].forEach(t=>{t.touched||t.options.isInternal?delete t.touched:d.push(t)}))}),d.forEach(t=>{t.chart&&t.remove&&t.remove(!1)}),o&&n.axes.forEach(function(t){t.update({},!1)}),r&&n.series.forEach(t=>{t.chart&&t.update({},!1)});let u=p?.width,g=p&&(j(p.height)?K(p.height,u||n.chartWidth):p.height);a||W(u)&&u!==n.chartWidth||W(g)&&g!==n.chartHeight?n.setSize(u,g,s):(e??!0)&&n.redraw(s),A(n,"afterUpdate",{options:t,redraw:e,animation:s})}setSubtitle(t,e){this.applyDescription("subtitle",t),this.layOutTitles(e)}setCaption(t,e){this.applyDescription("caption",t),this.layOutTitles(e)}showResetZoom(){let t=this,e=t.options.lang,i=t.zooming.resetButton,s=i.theme,o="chart"===i.relativeTo||"spacingBox"===i.relativeTo?void 0:"plotBox";A(this,"beforeShowResetZoom",void 0,()=>{t.resetZoomButton=t.renderer.button(e.resetZoom,0,0,()=>t.zoomOut(),s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(i.position,!1,o)}),A(this,"afterShowResetZoom")}zoomOut(){A(this,"selection",{resetSelection:!0},()=>this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),A(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),v(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n,allowResetButton:h=!0}=t,{time:l}=this;this.hoverPoints?.forEach(t=>t.setState()),A(this,"transform",t);let d=t.hasZoomed||!1,c,p;for(let t of e){let{horiz:e,len:u,minPointOffset:g=0,options:m,reversed:f}=t,x=e?"width":"height",y=e?"x":"y",b=a[x]??t.len,v=s[x]??t.len,w=10>Math.abs(b)?1:b/v,k=(s[y]||0)+v/2-t.pos,C=k-((a[y]??t.pos)+b/2-t.pos)/w,T=e&&!f||!e&&f?1:-1;if(!o&&(k<0||k>t.len))continue;let P=r||t.chart.polar||t.isOrdinal&&w<=1?0:g*T||0,A=t.toValue(C,!0),L=t.toValue(C+u/w,!0),O=A+P,E=L-P,I=t.allExtremes;if(O>E&&([O,E]=[E,O]),1===w&&!o&&"yAxis"===t.coll&&!I){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(e.pointValKey||"y")||[],!0);I??(I={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),W(t.dataMin)&&W(t.dataMax)&&(I.dataMin=Math.min(t.dataMin,I.dataMin),I.dataMax=Math.max(t.dataMax,I.dataMax))}t.allExtremes=I}let{dataMin:D,dataMax:B,min:z,max:R}=S(t.getExtremes(),I||{}),N=l.parse(m.min),j=l.parse(m.max),G=D??N,X=B??j,F=E-O,H=t.categories?0:Math.min(F,X-G),Y=G-H*(M(N)?0:m.minPadding),V=X+H*(M(j)?0:m.maxPadding),U=t.allowZoomOutside||1===w||"zoom"!==n&&w>1,$=Math.min(N??Y,Y,U?z:Y),Z=Math.max(j??V,V,U?R:V);(!t.isOrdinal||1!==w||o)&&(O<$&&(O=$,w>=1&&(E=O+F)),E>Z&&(E=Z,w>=1&&(O=E-F)),(o||t.series.length&&(r||(O!==z||E!==R)&&O>=$&&E<=Z))&&(r?r[t.coll].push({axis:t,min:Math.min(A,L),max:Math.max(A,L)}):(t.isPanning="zoom"!==n&&"drop"!==n,t.isPanning&&"mousewheel"!==n&&(p=!0),"drop"!==n&&t.setExtremes(o?void 0:O,o?void 0:E,!1,!1,{move:C,trigger:n,scale:w}),!o&&(O>$||E<Z)&&(c=h)),d=!0),this.hasCartesianSeries||o||(c=h),i&&(this[e?"mouseDownX":"mouseDownY"]=i[e?"chartX":"chartY"]))}return d&&(r?A(this,"selection",r,()=>{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}S(i6.prototype,{callbacks:[],collectionsWithInit:{xAxis:[i6.prototype.addAxis,[!0]],yAxis:[i6.prototype.addAxis,[!1]],series:[i6.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderRadius","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let i8=i6,{composed:i4}=h;function i9(){(this.scrollablePixelsX||this.scrollablePixelsY)&&!this.scrollablePlotArea&&(this.scrollablePlotArea=new st(this)),this.scrollablePlotArea?.applyFixed()}function i7(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class st{static compose(t,e,i){_(i4,"ScrollablePlotArea")&&(p(t,"afterInit",i7),p(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),p(e,"render",i9),p(i,"show",i7))}static afterSetSize(t,e){let i,s,o,{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport)if(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=H(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),M(s)&&(t.scrollablePlotBox=H(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),M(o)){if(!e.skipAxes)for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}else delete t.scrollablePlotBox}constructor(t){let e,i=t.options.chart,s=i.scrollablePlotArea||{},o=this.moveFixedElements.bind(this),r={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(r.overflowX="auto"),t.scrollablePixelsY&&(r.overflowY="auto"),this.chart=t;let a=this.parentDiv=y("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),n=this.scrollingContainer=y("div",{className:"highcharts-scrolling"},r,a),h=this.innerContainer=y("div",{className:"highcharts-inner-container"},void 0,n),l=this.fixedDiv=y("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),d=this.fixedRenderer=new em(l,t.chartWidth,t.chartHeight,i.style);this.mask=d.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":s.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),n.parentNode.insertBefore(l,n),v(t.renderTo,{overflow:"visible"}),p(t,"afterShowResetZoom",o),p(t,"afterApplyDrilldown",o),p(t,"afterLayOutTitles",o),p(n,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),h.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:m=0}=t.options.chart.scrollablePlotArea||{},f=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),tO(t.container),v(n,{width:`${f}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:f,height:x,viewBox:["0 0",f,x].join(" ")}),t.chartBackground?.attr({width:f,height:x}),v(s,{width:`${r}px`,height:`${a}px`}),M(i)||(s.scrollLeft=p*g,s.scrollTop=u*m);let y=d-o[0]-1,b=l-o[3]-1,w=d+h+o[2]+1,k=l+c+o[1]+1,C=l+c-p,T=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,w],["L",0,w],["Z"],["M",C,y],["L",r,y],["L",r,w],["L",C,w],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,T],["L",b,a],["L",k,a],["L",k,T],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=st.fixedSelectors.slice();if(s&&!i?t=".highcharts-yaxis":s&&i||o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])_(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])T(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}st.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:se}=tY,{series:si}=iz,ss=class{constructor(t,e,i,s){this.axis=t,this.negativeValue=e,this.x=i,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=s,this.leftCliff=0,this.rightCliff=0}destroy(){w(this,this.axis)}render(t){let e=this.axis,i=e.chart,s=e.options.stackLabels||{},o=s.format,r=(o?se(o,this,i):s.formatter?.call(this,this))||"",a=this.label?"animate":"attr";this.label||(this.label=i.renderer.label(r,0,void 0,s.shape,void 0,void 0,s.useHTML,!1,"stack-labels"));let n=this.label,h={r:s.borderRadius||0,padding:s.padding??5};i.styledMode||(h.fill=s.backgroundColor,h.stroke=s.borderColor,h["stroke-width"]=s.borderWidth,n.css(s.style||{})),n.attr({text:r,visibility:"hidden"})[a](h),n.added||n.add(t),n.labelrank=i.plotSizeY,A(this,"afterRender")}setOffset(t,e,i,s,o,r){let{axis:a,label:n}=this,h=a.chart,l=a.options.stackLabels||{},d=h.inverted,c=!!a.reversed!==this.negativeValue,p=this.getStackBox({boxBottom:i,boxTop:s,defaultX:o,isNegative:c,width:e,xAxis:r,xOffset:t}),{align:u=d?c?"left":"right":"center",verticalAlign:g=d?"middle":c?"bottom":"top",textAlign:m=d?!c?"left":"right":"center",x:f=0,y:x=0}=l,y={align:u,verticalAlign:g,x:f,y:x};if(n&&p){let t=n.getBBox(void 0,0),e=n.padding,i=(l.overflow??"justify")==="justify",s,{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:m});p.x-=o,p.y-=r,n.align(y,!1,p),(s=h.isInsidePlot(n.alignAttr.x+f+o,n.alignAttr.y+x+r))||(i=!1),i&&si.prototype.justifyDataLabel.call(a,n,y,n.alignAttr,t,p),n.attr({rotation:l.rotation,rotationOriginX:t.width*L(l.textAlign||"center"),rotationOriginY:t.height/2}),((!i&&l.crop)??!0)&&(s=W(n.x)&&W(n.y)&&h.isInsidePlot(n.x-e+(n.width||0),n.y)&&h.isInsidePlot(n.x+e,n.y)),n[s?"show":"hide"]()}A(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*L(i)-1),y:t.height/2*2*(1-L(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxBottom:s,boxTop:o,defaultX:r,isNegative:a,width:n,xOffset:h}=t,l=e.stacking.usePercentage?100:o??this.total??0,d=e.toPixels(l),c=t.xAxis||i.xAxis[0],p=(r??c.translate(this.x))+h,u=Math.abs(d-e.toPixels(s||W(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0));return i.inverted?{x:(a?d:d-u)-i.plotLeft,y:c.height-p-n+c.top-i.plotTop,width:u,height:n}:{x:p+c.transB-i.plotLeft,y:(a?d-u:d)-i.plotTop,width:n,height:u}}},{series:{prototype:so}}=iz;function sr(){let t=this.inverted;this.axes.forEach(t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis?.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,e.options.stack??"",t?i.top:i.left,t?i.height:i.width].join(","))})}function sa(){let t=this.stacking;if(t){let e=t.stacks;V(e,(t,i)=>{w(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function sn(){this.stacking||(this.stacking=new su(this))}function sh(t,e,i,s){return!M(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function sl(){let t,e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function sd(t,e,i){let s=e.total?100/e.total:0;t[0]=x(t[0]*s),t[1]=x(t[1]*s),this.stackedYData[i]=t[1]}function sc(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?so.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function sp(t,e){let i,s,o,r,a,n,h,l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,m=g.threshold||0,f=g.startFromThreshold?m:0,y=g.stack,b=e?`${this.type},${l}`:this.stackKey||"",v="-"+b,w=this.negStacks,k=t.stacking,C=k.stacks,T=k.oldStacks;for(k.stacksTouched+=1,h=0;h<u;h++){let e=d[h]||0,u=c[h],g=W(u)&&u||0;n=(i=this.getStackIndicator(i,e,this.index)).key||"",C[a=(s=w&&g<(f?0:m))?v:b]||(C[a]={}),C[a][e]||(T[a]?.[e]?(C[a][e]=T[a][e],C[a][e].total=null):C[a][e]=new ss(t,!!s,e,y)),o=C[a][e],null!==u?(o.points[n]=o.points[this.index]=[o.cumulative??f],M(o.cumulative)||(o.base=n),o.touched=k.stacksTouched,i.index>0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?b:v,S=w&&C[r]?.[e]?(r=C[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):x(S+Math.abs(g))):"group"===l?W(u)&&S++:S=x(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=x((o.cumulative??f)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class su{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e<a;e++)s[e].modifyStacks();A(i,"afterBuildStacks")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,V(this.stacks,t=>{V(t,t=>{t.cumulative=t.total})}))}resetStacks(){V(this.stacks,t=>{V(t,(e,i)=>{W(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[i]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){let t=this.axis,e=t.chart,i=e.renderer,s=this.stacks,{animation:o,enabled:r}=t.options.stackLabels||{},a=tA(e,o||!1),n=this.stackTotalGroup=this.stackTotalGroup||(r?i.g("stack-labels").attr({zIndex:6,opacity:0}).add():void 0);n&&(n.translate(e.plotLeft,e.plotTop),V(s,t=>{V(t,t=>{r?t.render(n):t.label=t.label?.destroy()})}),n.animate({opacity:1},a))}}(ir||(ir={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(p(t,"init",sn),p(t,"destroy",sa),s.getStacks=sr,o.getStackIndicator=sh,o.modifyStacks=sl,o.percentStacker=sd,o.setGroupedPoints=sc,o.setStackedPoints=sp)};let sg=ir;class sm extends iH{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;if(a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"var(--highcharts-neutral-color-20)","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r),t.shadow)){let e=this.chart.inverted,i={filterUnits:"userSpaceOnUse"},s=F(t.shadow)?H(e?{}:i,t.shadow):!!e||i;a.shadow(s)}a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,o.nullInteraction||!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c,p=l.plotX,u=l.plotY,g=t[d-1],m=l.isNull||"number"!=typeof u;(l.leftCliff||g?.rightCliff)&&!i&&(n=!0),m&&!M(e)&&d>0?n=!o.connectNulls:m&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}sm.defaultOptions=H(iH.defaultOptions,{legendSymbol:"lineMarker"}),iz.registerSeriesType("line",sm);let{seriesTypes:{line:sf}}=iz;class sx extends sf{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s,o=sf.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=r.connectNulls??"percent"===a,m=function(i,s,o){let r=t[i],g=t[s],m=a&&c[r.x].points[d],f=r[o+"Null"]||0,x=r[o+"Cliff"]||0,y,b,v=!0;m&&(x||f)?(y=(f?m[0]:m[1])+x,b=m[0]+x,v=!!f):!a&&g&&(g.isNull||!M(g.plotY))&&(y=b=p),void 0!==y&&(l.push({plotX:e,plotY:null===y?u:n.getThreshold(y),isNull:v,isCliff:!0}),h.push({plotX:e,plotY:null===b?u:n.getThreshold(b),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o<r;++o)a||(t[o].leftCliff=t[o].rightCliff=t[o].leftNull=t[o].rightNull=void 0),i=t[o].isNull||!M(t[o].plotY),e=t[o].rectPlotX??t[o].plotX,s=a?t[o].yBottom??u:u,(!i||g)&&(g||m(o,o-1,"left"),i&&!a&&g||(l.push(t[o]),h.push({x:o,plotX:e,plotY:s})),g||m(o,o+1,"right"));let f=o.call(this,l,!0,!0);h.reversed=!0;let x=o.call(this,h,!0,!0),y=x[0];y&&"M"===y[0]&&(x[0]=["L",y[1],y[2]]);let b=f.concat(x);b.length&&b.push(["Z"]);let v=o.call(this,l,!1,g);return this.chart.series.length>1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=f.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e),p=r.getThreshold(e.options.threshold||0);if(t=t||this.points,this.options.stacking){for(let e=0;e<t.length;e++)t[e].leftNull=t[e].rightNull=void 0,n[t[e].x]=t[e];V(a,function(t,e){null!==t.total&&s.push(e)}),s.sort(function(t,e){return t-e});let u=h.map(t=>t.visible);s.forEach(function(t,g){let m=0,f,x;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[g+i]],p=0;if(r){let i=c;for(;i>=0&&i<l;){let s=h[i].index;!(f=r.points[s])&&(s===e.index?n[t][o]=!0:u[i]&&(x=a[t].points[s])&&(p-=x[1]-x[0])),i+=d}}n[t][1===i?"rightCliff":"leftCliff"]=p});else{let e=c;for(;e>=0&&e<l;){let i=h[e].index;if(f=a[t].points[i]){m=f[1];break}e+=d}m||(m=0);let s=r.positiveValuesOnly&&m<=0?p:r.translate(m,!1,!0,!1,!0);i.push({isNull:!0,plotX:o.translate(t,!1,!1,!1,!0),x:t,plotY:s,yBottom:s})}})}return i}}sx.defaultOptions=H(sf.defaultOptions,{threshold:0,legendSymbol:"areaMarker"}),S(sx.prototype,{singleStacks:!1}),iz.registerSeriesType("area",sx);let{line:sy}=iz.seriesTypes;class sb extends sy{getPointSpline(t,e,i){let s,o,r,a,n=e.plotX||0,h=e.plotY||0,l=t[i-1],d=t[i+1];function c(t){return t&&!t.isNull&&!1!==t.doCurve&&!e.isCliff}if(c(l)&&c(d)){let t=l.plotX||0,i=l.plotY||0,c=d.plotX||0,p=d.plotY||0,u=0;s=(1.5*n+t)/2.5,o=(1.5*h+i)/2.5,r=(1.5*n+c)/2.5,a=(1.5*h+p)/2.5,r!==s&&(u=(a-o)*(r-n)/(r-s)+h-a),o+=u,a+=u,o>i&&o>h?(o=Math.max(i,h),a=2*h-o):o<i&&o<h&&(o=Math.min(i,h),a=2*h-o),a>p&&a>h?(a=Math.max(p,h),o=2*h-a):a<p&&a<h&&(a=Math.min(p,h),o=2*h-a),e.rightContX=r,e.rightContY=a,e.controlPoints={low:[s,o],high:[r,a]}}let p=["C",l.rightContX??l.plotX??0,l.rightContY??l.plotY??0,s??n??0,o??h??0,n,h];return l.rightContX=l.rightContY=void 0,p}}sb.defaultOptions=H(sy.defaultOptions),iz.registerSeriesType("spline",sb);let sv=sb,{area:sM,area:{prototype:sw}}=iz.seriesTypes;class sk extends sv{}sk.defaultOptions=H(sv.defaultOptions,sM.defaultOptions),S(sk.prototype,{getGraphPath:sw.getGraphPath,getStackPoints:sw.getStackPoints,drawGraph:sw.drawGraph}),iz.registerSeriesType("areaspline",sk);let{parse:sC}=tw,{noop:sT}=h;class sS extends iH{animate(t){let e,i,s=this,o=this.yAxis,r=o.pos,a=o.reversed,n=s.options,{clipOffset:h,inverted:l}=this.chart,d={},c=l?"translateX":"translateY";t&&h?(d.scaleY=.001,i=f(o.toPixels(n.threshold||0),r,r+o.len),l?d.translateX=(i+=a?-Math.floor(h[+!!l]):Math.ceil(h[l?3:2]))-o.len:d.translateY=i+=a?Math.ceil(h[+!!l]):-Math.floor(h[l?3:2]),s.clipBox&&s.setClip(),s.group.attr(d)):(e=Number(s.group.attr(c)),s.group.animate({scaleY:1},S(tP(s.options.animation),{step:function(t,i){s.group&&(d[c]=e+i.pos*(r-e),s.group.attr(d))}})))}init(t,e){super.init.apply(this,arguments);let i=this;(t=i.chart).hasRendered&&t.series.forEach(function(t){t.type===i.type&&(t.isDirty=!0)})}getColumnMetrics(){let t=this,e=t.options,i=t.xAxis,s=t.yAxis,o=i.options.reversedStacks,r=i.reversed&&!o||!i.reversed&&o,a={},n,h=0;!1===e.grouping?h=1:t.chart.series.forEach(function(e){let i,o=e.yAxis,r=e.options;e.type===t.type&&e.reserveSpace()&&s.len===o.len&&s.pos===o.pos&&(r.stacking&&"group"!==r.stacking?(void 0===a[n=e.stackKey]&&(a[n]=h++),i=a[n]):!1!==r.grouping&&(i=h++),e.columnIndex=i)});let l=Math.min(Math.abs(i.transA)*(!i.brokenAxis?.hasBreaks&&i.ordinal?.slope||e.pointRange||i.closestPointRange||i.tickInterval||1),i.len),d=l*e.groupPadding,c=(l-2*d)/(h||1),p=Math.min(e.maxPointWidth||i.len,e.pointWidth??c*(1-2*e.pointPadding)),u=(t.columnIndex||0)+ +!!r;return t.columnMetrics={width:p,offset:(c-p)/2+(d+u*c-l/2)*(r?-1:1),paddedWidth:c,columnCount:h},t.columnMetrics}crispCol(t,e,i,s){let o=this.borderWidth,r=this.chart.inverted;return s=b(e+s,o,r)-(e=b(e,o,r)),this.options.crisp&&(i=b(t+i,o)-(t=b(t,o))),{x:t,y:e,width:i,height:s}}adjustForMissingColumns(t,e,i,s){if(!i.isNull&&s.columnCount>1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;V(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&G(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(M(s)){if(W(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=i.borderWidth??+!s,r=t.xAxis,a=t.yAxis,n=i.threshold,h=i.minPointLength??5,l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),iH.prototype.translate.apply(t),t.points.concat(t.condemnedPoints).forEach(function(s){let o=s.yBottom??g,x=999+Math.abs(o),y=s.plotX||0,b=f(s.plotY,-x,a.len+x),v,w=Math.min(b,o),k=Math.max(b,o)-w,C=d,T=y+c,S=m;h&&Math.abs(k)<h&&(k=h,v=!a.reversed&&!s.negative||a.reversed&&s.negative,W(n)&&W(u)&&s.y===n&&u<=n&&(a.min||0)<n&&(p!==u||(a.max||0)<=n)&&(v=!v,s.negative=!s.negative),w=Math.abs(w-g)>h?o-(v?h:0):g-(v?h:0)),M(s.options.pointWidth)&&(T-=Math.round(((C=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(T=t.adjustForMissingColumns(T,C,s,l)),s.barX=T,s.pointWidth=C,s.tooltipPos=e.inverted?[f(a.len+a.pos-e.plotLeft-b,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-T-S/2,k]:[r.left-e.plotLeft+T+S/2,f(b+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(T,w,S,s.isNull?0:k)}),A(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t?.color||this.color,d=t?.[o]||i[o]||l,c=t?.options.dashStyle||i.dashStyle,p=t?.[r]??i[r]??this[r]??1,u=t?.isNull&&i.nullInteraction?0:t?.opacity??i.opacity??1;t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=H(i.states?.[e],t.options.states?.[e]||{})).brightness,l=a.color||void 0!==h&&sC(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=a.opacity??u);let g={fill:l,stroke:d,"stroke-width":p,opacity:t?.condemned?0:u};return c&&(g.dashstyle=c),g}drawPoints(t){let e;t||(t=this.points.concat(this.condemnedPoints));let i=this,s=this.chart,o=i.options,r=o.nullInteraction,{styledMode:a,renderer:n}=s,h=o.animationLimit||250;t.forEach(function(t){let l=t.plotY,d=t.graphic,c=!!d,p=d&&s.pointCount<h?"animate":"attr";if(W(l)&&(null!==t.y||r)){if(e=t.shapeArgs,d&&t.hasNewShapeType()&&(d=d.destroy()),!d){let o=e;t.origin&&s.pointCount<h&&(o=H(e,t.getOrigin(t.origin,e)),a||(o.opacity=0,o["stroke-width"]=0),c=!0,p="animate"),t.graphic=d=n[t.shapeType](o).add(t.group||i.group)}c&&d[p](H(e)),a||d[p](i.pointAttribs(t,t.selected?"select":"")).shadow(!1!==t.allowShadow&&o.shadow),d.addClass(t.getClassName(),!0).attr({visibility:t.visible?"inherit":"hidden"})}else d&&(t.graphic=d.destroy())})}drawTracker(t=this.points){let e,i=this,s=i.chart,o=s.pointer,r=function(t){o?.normalize(t);let e=o?.getPointFromEvent(t);o&&e&&i.options.enableMouseTracking&&(s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})||i.allowOutsidePlotInteraction&&o?.inClass(t.target,"highcharts-point")||o?.inClass(t.target,"highcharts-data-label"))&&(o.isDirectTouch=!0,e.onMouseOver(t))};t.forEach(function(t){e=G(t.dataLabels)?t.dataLabels:t.dataLabel?[t.dataLabel]:[],t.graphic&&(t.graphic.element.point=t),e.forEach(function(e){(e.div||e.element).point=t})}),i._hasTracking||(i.trackerGroups?.reduce((t,e)=>("dataLabelsGroup"===e?t.push(...i.dataLabelsGroups||[]):t.push(i[e]),t),[]).forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(t){o?.onTrackerMouseOut(t)}).on("touchstart",r),!s.styledMode&&i.options.cursor&&t.css({cursor:i.options.cursor}))}),i._hasTracking=!0),A(this,"afterDrawTracker")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(e){e.type===t.type&&(e.isDirty=!0)}),iH.prototype.remove.apply(t,arguments)}}sS.defaultOptions=H(iH.defaultOptions,{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.2},select:{color:"var(--highcharts-neutral-color-20)",borderColor:"var(--highcharts-neutral-color-100)"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"var(--highcharts-background-color)"}),S(sS.prototype,{directTouch:!0,getSymbol:sT,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),iz.registerSeriesType("column",sS);let sP=sS,{format:sA}=tY;!function(t){function e(){return h(this).some(t=>t?.enabled)}function i(t,e,i,s,o){let{chart:r}=this,a=this.isCartesian&&r.inverted,{condemned:n,origin:h,plotX:l,plotY:d}=t,{crop:c=!0,distance:p,overflow:u="justify",rotation:g=0}=i,m=L(i.align),f=L(i.verticalAlign),x=t.pos(),y=M(l)&&M(d)&&r.isInsidePlot(l,Math.round(d),{inverted:a,paneCoordinates:!0,series:this}),b=this.visible&&t.visible&&M(l)&&(this.forceDL||n||y||(i.inside??!!this.options.stacking)&&s&&r.isInsidePlot(l,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this}));if(x){let l=e.getBBox(),d=e.getBBox(void 0,0);s=S({x:x[0],y:Math.round(x[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[a?"x":"y"]=0,s[a?"width":"height"]=this.yAxis?.len||0),S(i,{width:l.width,height:l.height});let y=0,v=0;W(p)&&!i.inside&&(y=p*(1-2*m),v=p*(1-2*f)),e.align(H(i,{x:(i.x||0)+y,y:(i.y||0)+v,width:d.width,height:d.height}),!1,s,!1),e.distX=y,e.distY=v,e.alignAttr.x+=m*(d.width-l.width),e.alignAttr.y+=f*(d.height-l.height);let M=e.alignAttr.x+(l.width-d.width)/2,w=e.alignAttr.y+(l.height-d.height)/2;if(h){let i=t.pos(!1,h.x,h.y);if(i){let s=[i[0]-x[0],i[1]-x[1]];(this.is("column")||t.plotHigh)&&(s[+!a]=0),e.attr({x:M+s[0],y:w+s[1],opacity:.01}),e.placed=!0,o=!1}}let k={"text-align":e.alignAttr["text-align"]||"center",x:M,y:w,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2};if((n||!b)&&(k.opacity=0),e[e.placed?"animate":"attr"](k),0===g&&!n&&"justify"===u&&b&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(c&&!n){let{x:t,y:i}=e.alignAttr;b=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!g&&e[o?"attr":"animate"]({anchorX:x[0],anchorY:x[1]})}e[o?"attr":"animate"]({visibility:b?"inherit":"hidden"}),e.placed=b}function s(t,e){A(this,"initDataLabelsGroup",{index:t,zIndex:e?.zIndex}),this.dataLabelsGroup=this.dataLabelsGroups?.[t];let i=this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",e?.zIndex??6,this.dataLabelsParentGroups?.[t]);return this.dataLabelsGroups||(this.dataLabelsGroups=[]),this.dataLabelsGroups[t]=i,this.dataLabelsGroup=this.dataLabelsGroups[0],i}function o(t,e,i){let s=!!this.hasRendered,o=this.initDataLabelsGroup(t,i).attr({opacity:+s});return!s&&o&&(this.visible&&o.show(),this.options.animation?o.animate({opacity:1},e):o.attr({opacity:1})),o}function r(t){t=t||this.points;let e=this,i=e.chart,s=e.options,o=i.renderer,{backgroundColor:r,plotBackgroundColor:a}=i.options.chart,l=o.getContrast(j(a)&&a||j(r)&&r||"var(--highcharts-background-color)"),d=[],c=h(e),{animation:p,defer:u}=c[0],g=u?tA(i,p,e):{defer:0,duration:0};A(this,"drawDataLabels"),e.hasDataLabels?.()&&t.concat(e.condemnedPoints).forEach(t=>{let r=t.dataLabels||[],a=t.color||e.color;Q(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let c=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s<o||">="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o||!1}return!0}(t,n),{backgroundColor:p,borderColor:u,distance:m,style:f={}}=n,x=Q(n.padding||0),y,b,v,w={},k=r[h],C=!k,T;if(c&&(b=M(y=n[t.formatPrefix+"Format"]??n.format)?sA(y,t,i):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n,t),v=n.rotation,!i.styledMode&&(f.color=(j(n.color)?n.color:void 0)??f.color??(j(e.color)?e.color:void 0)??"var(--highcharts-neutral-color-100)","contrast"===f.color?("none"!==p&&(T=p),t.contrastColor=o.getContrast("auto"!==T&&"contrast"!==T&&j(T)&&T||(j(a)?a:"")),f.color=T&&"contrast"!==T||n.inside||0>Z(m||0)||s.stacking?t.contrastColor:l):delete t.contrastColor,s.cursor&&(f.cursor=s.cursor)),w={r:n.borderRadius??3,rotation:v,padding:x[0],paddingLeft:x[3%x.length],paddingRight:x[1%x.length],zIndex:1},i.styledMode||(w.fill="auto"===p?t.color:p,w.stroke="auto"===u?t.color:u,w["stroke-width"]=n.borderWidth),V(w,(t,e)=>{void 0===t&&delete w[e]})),!k||c&&M(b)&&!!(k.div||k.text?.foreignObject)==!!n.useHTML&&(k.rotation&&n.rotation||k.rotation===n.rotation)||(k=void 0,C=!0),c&&M(b)&&""!==b&&(k?w.text=b:(k=o.label(b,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),k)){k.options=n,k.attr(w),i.styledMode?f.width&&k.css({width:f.width,textOverflow:f.textOverflow,whiteSpace:f.whiteSpace}):k.css(f).shadow(n.shadow),A(k,"beforeAddingDataLabel",{labelOptions:n,point:t});let s=d[h]=d[h]||this.initDataLabels(h,g,n);k.added||k.add(s),e.alignDataLabel(t,k,n,void 0,C),k.isActive=!0,r[h]&&r[h]!==k&&r[h].destroy(),r[h]=k}});let h=r.length;for(;h--;)r[h]?.isActive?r[h].isActive=!1:(r[h]?.destroy(),r.splice(h,1));t.dataLabel=r[0],t.dataLabels=r}),A(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,{align:n,verticalAlign:h}=e,{distX:l=0,distY:d=0}=t,c=t.box?0:t.padding||0,p=a.inverted?this.yAxis:this.xAxis,u=p?p.left-a.plotLeft:0,g=a.inverted?this.xAxis:this.yAxis,m=g?g.top-a.plotTop:0,{x:f=0,y:x=0}=e,y,b,v;return(y=(i.x||0)-l+c+u)<0&&("right"===n&&f>=0?(e.align="left",e.inside=!0,f-=l):f-=y,b=!0),(y=(i.x||0)+s.width-l-c+u)>a.plotWidth&&("left"===n&&f<=0?(e.align="right",e.inside=!0,f-=l):f+=a.plotWidth-y,b=!0),(y=(i.y||0)-d+c+m)<0&&("bottom"===h&&x>=0?(e.verticalAlign="top",e.inside=!0,x-=d):x-=y,v=!0),(y=(i.y||0)+s.height-d-c+m)>a.plotHeight&&("top"===h&&x<=0?(e.verticalAlign="bottom",e.inside=!0,x-=d):x+=a.plotHeight-y,v=!0),(b||v)&&(e.x=b?f:f+l,e.y=v?x:x+d,t.placed=!r,t.align(e,void 0,o)),b||v}function n(t,e){let i=[],s;if(G(t)&&!G(e))i=t.map(function(t){return H(t,e)});else if(G(e)&&!G(t))i=e.map(function(e){return H(t,e)});else if(G(t)||G(e)){if(G(t)&&G(e))for(s=Math.max(t.length,e.length);s--;)i[s]=H(t[s],e[s])}else i=H(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return Q(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}t.compose=function(t){let h=t.prototype;h.initDataLabels||(h.initDataLabels=o,h.initDataLabelsGroup=s,h.alignDataLabel=i,h.drawDataLabels=r,h.justifyDataLabel=a,h.mergeArrays=n,h.hasDataLabels=e)}}(ia||(ia={}));let sL=ia,{composed:sO}=h,{series:sE}=iz;function sI(t,e,i,s,o){let{chart:r,options:a}=this,n=r.inverted,h=this.xAxis?.len||r.plotSizeX||0,l=this.yAxis?.len||r.plotSizeY||0,d=t.dlBox||t.shapeArgs,c=t.below??(t.plotY||0)>(this.translatedThreshold??l),p=i.inside??!!a.stacking;if(d){if(s=H(d),"allow"!==i.overflow||!1!==i.crop||!1!==a.clip){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t<s.height-1&&(s.height-=t)}n&&(s={x:l-s.y-s.height,y:h-s.x-s.width,width:s.height,height:s.width}),p||(n?(s.x+=c?0:s.width,s.width=0):(s.y+=c?s.height:0,s.height=0))}i.align??(i.align=!n||p?"center":c?"right":"left"),i.verticalAlign??(i.verticalAlign=n||p?"middle":c?"top":"bottom"),sE.prototype.alignDataLabel.call(this,t,e,i,s,o),i.inside&&t.contrastColor&&e.css({color:t.contrastColor})}(ih||(ih={})).compose=function(t){sL.compose(sE),_(sO,"ColumnDataLabel")&&(t.prototype.alignDataLabel=sI)};let sD=ih;class sB extends sP{}sB.defaultOptions=H(sP.defaultOptions,{}),S(sB.prototype,{inverted:!0}),iz.registerSeriesType("bar",sB);let{column:sz,line:sR}=iz.seriesTypes;class sN extends sR{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach((s,o)=>{["x","y"].forEach((r,a)=>{if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,h=t[`${r}Axis`];if(h&&!h.logarithmic){let t,l=e[r]*h.transA*(h.reversed?-1:1),d=(s[n]||0)-l,c=(s[n]||0)+l;s[n]=d+(c-d)*((t=1e4*Math.sin(o+a*i))-Math.floor(t)),"x"===r&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}sN.defaultOptions=H(sR.defaultOptions,{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),S(sN.prototype,{allowOutsidePlotInteraction:!0,drawTracker:sz.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),p(sN,"afterTranslate",function(){this.applyJitter()}),iz.registerSeriesType("scatter",sN);let{deg2rad:sW}=h;(iC=il||(il={})).getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[r?.[0]??"50%",r?.[1]??"50%",(l&&l<0?void 0:t.size)??"100%",(d&&d<0?void 0:t.innerSize||0)??"0%"];for(c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=K(p,[s,o,a,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),W(n)&&2*n<u[2]&&n>0&&(u[3]=u[2]-2*n),A(this,"afterGetCenter",{positions:u}),u},iC.getStartAndEndRadians=function(t,e){let i=W(t)?t:0,s=W(e)&&e>i&&e-i<360?e:i+360;return{start:sW*(i+-90),end:sW*(s+-90)}};let sj=il;class sG extends eK{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);let s=t=>{this.slice("select"===t.type)};p(this,"select",s),p(this,"unselect",s)}isValid(){return W(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;tS(i,s.chart),e=e??!0,this.sliced=this.options.sliced=t??!this.sliced,s.options.data&&(s.options.data[s.data.indexOf(this)]=this.options),this.graphic?.animate(this.getTranslate())}}S(sG.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:m}=t,f=o.x;if(i.crookDistance){let t=K(i.crookDistance,1);f=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else f=n+(h-m)*Math.tan(s-Math.PI/2);let x=[["M",g,m]];return(u?f<=g&&f>=o.x:f>=g&&f<=o.x)&&x.push(["L",f,m]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:sX}=sj,{noop:sF}=h;class sH extends iH{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:t.startR??(e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:t9.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"var(--highcharts-neutral-color-20)"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getXPos(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(f((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?e?-5:5:0)}hasData(){return this.points.some(t=>t.visible)}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||H(!0,n,i),H(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){A(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=sX(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,u,g,m,f=0;for(t||(this.center=t=this.getCenter()),g=0;g<h;g++){m=a[g],l=o+f*r,m.isValid()&&(!n||m.visible)&&(f+=m.percentage/100),d=o+f*r;let e={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:l,end:d};m.shapeType="arc",m.shapeArgs=e,(c=(d+l)/2)>1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),m.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,m.tooltipPos=[t[0]+.7*p,t[1]+.7*u],m.half=+(c<-Math.PI/2||c>Math.PI/2),m.angle=c}A(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s<e;s++)(o=t[s]).isValid()&&(!i||o.visible)&&(r+=o.y);for(this.total=r,s=0;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}sH.defaultOptions=H(iH.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"var(--highcharts-background-color)",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),S(sH.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:sP.prototype.drawTracker,getCenter:sj.getCenter,getSymbol:sF,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:sP.prototype.pointAttribs,pointClass:sG,requireSorting:!1,searchPoint:sF,trackerGroups:["group","dataLabelsGroup"]}),iz.registerSeriesType("pie",sH);let{composed:sY,noop:sV}=h,{distribute:sU}=tV,{series:s$}=iz;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getXPos(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&s<i&&o>i&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,m,f,x=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),s$.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=K(o?.distance||0,s);0===i&&d[t.half].push(t),!M(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),x=Math.max(x,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],g,y,b=0,v;d&&(t.sortByAngle(e,a-.5),x>0&&(g=Math.max(0,l-h-x),y=Math.min(l+h+x,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),sU(u,v=y+b-g,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},g=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,w=(v-l.getBBox().height)/2,k=0,C=y,T="inherit";if(x){if(u&&M(g)&&x.distance>0&&(void 0===g.pos?T="hidden":(f=g.size,C=p.radialDistributionY(i,l))),d.justify)k=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":k=p.alignToConnectors(e,a,s,r);break;case"plotEdges":k=p.alignToPlotEdges(l,a,s,r);break;default:k=p.radialDistributionX(t,i,C-w,y,l)}if(x.attribs={visibility:T,align:x.alignment},x.posAttribs={x:k+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:C+(d.y||0)-v/2},x.computed.x=k,x.computed.y=C-w,d.crop??!0){let t;k-(m=l.getBBox().width)<b&&1===a?(t=Math.round(m-k+b),c[3]=Math.max(t,c[3])):k+m>s-b&&0===a&&(t=Math.round(k+m-s+b),c[1]=Math.max(t,c[1])),C-f/2<0?c[0]=Math.max(Math.round(-C+f/2),c[0]):C+f/2>o&&(c[2]=Math.max(Math.round(C+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===g(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{e.dataLabels?.forEach((s,o)=>{let{connectorColor:r,connectorWidth:a=1}=s.options||{},n=s.dataLabelPosition;if(W(a)){let h;u=s.connector,n&&n.distance>0?(h=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroups?.[o])),i.styledMode||u.attr({"stroke-width":a,stroke:r||e.color||"var(--highcharts-neutral-color-60)"}),u[h?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:n.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:t.options?.style?.textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=f(r,o,e[2]-Math.max(t[0],t[2])):(r=f(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r<e[2]?(e[2]=r,e[3]=Math.min(i.thickness?Math.max(0,r-2*i.thickness):Math.max(0,K(i.innerSize||0,r)),r),this.translate(e),this.drawDataLabels&&this.drawDataLabels()):a=!0),a}t.compose=function(t){if(sL.compose(s$),_(sY,"PieDataLabel")){let a=t.prototype;a.dataLabelPositioners=e,a.alignDataLabel=sV,a.drawDataLabels=s,a.getDataLabelPosition=i,a.placeDataLabels=o,a.verifyDataLabelOverflow=r}}}(id||(id={}));let sZ=id;(iT=ic||(ic={})).getCenterOfPoints=function(t){let e=t.reduce((t,e)=>(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},iT.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},iT.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},iT.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;o<s;r=o++){let[s,n]=i[o],[h,l]=i[r];n>e!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a};let s_=ic,{pointInPolygon:sK}=s_;function sq(t,e){let i=!1;if(t){let s=t.newOpacity,o=t.hasClass("highcharts-data-label");o||tO(t,"opacity"),t.oldOpacity!==s&&(o?(t[s?"removeClass":"addClass"]("highcharts-data-label-hidden"),i=!0,t[t.isOld||t.placed?"animate":"attr"]({opacity:s},void 0,()=>{e.styledMode||t.css({pointerEvents:s?"auto":"none"})}),A(e,"afterHideOverlappingLabel")):t[t.placed?"animate":"attr"]({opacity:s})),t.isOld=!0}return i}let{defaultOptions:sJ}=ty,{noop:sQ}=h,s0={radius:0,scope:"stack",where:void 0},s1=sQ,s2=sQ;function s3(t,e,i,s,o={}){let r=s1(t,e,i,s,o),{brStart:a=!0,brEnd:n=!0,innerR:h=0,r:l=i,start:d=0,end:c=0}=o;if(o.open||!o.borderRadius)return r;let p=c-d,u=Math.sin(p/2),g=Math.max(Math.min(K(s6(o.borderRadius).radius,l-h),(l-h)/2,l*u/(1+u)),0),m=Math.min(g,p/Math.PI*2*h),f=r.length-1;for(;f--;)(a||0!==f&&3!==f)&&(n||1!==f&&2!==f)&&!function(t,e,i){let s,o,r,a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=n?a-i:a+i,g=u?Math.asin(i/u):0,m=n?g:-g,f=Math.cos(g)*u;r?(h.start=l+m,s[1]=c+f*Math.cos(l),s[2]=p+f*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-m,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+f*Math.cos(d),p+f*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)<Math.PI?0:1}}(r,f,f>1?m:g);return r}function s5(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=sJ.plotOptions?.[this.type]?.borderRadius,o=s6(t.borderRadius,F(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(K(o.radius,n),n/2,"all"===u?c/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),S(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function s6(t,e){return F(t)||(t={radius:t||0}),H(s0,e,t)}function s8(){let t=s6(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=K(t.radius,(i.r||0)-(i.innerR||0)))}}function s4(t,e,i,s,o={}){let r=s2(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&l,0),g=Math.max(p&&d,0),m=[t+c,e],f=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],w=[t,e+c],k=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=k(c,c-u);m[0]-=t,f[0]+=t,x[1]=w[1]=e+c-u}if(s<c-u){let o=k(c,c-u-s);x[0]=y[0]=t+i-c+o,b[0]=Math.min(x[0],b[0]),v[0]=Math.max(y[0],v[0]),M[0]=w[0]=t+c-o,x[1]=w[1]=e+s}if(g){let t=k(p,p-g);b[0]+=t,v[0]-=t,y[1]=M[1]=e+s-p+g}if(s<p-g){let o=k(p,p-g-s);x[0]=y[0]=t+i-p+o,f[0]=Math.min(x[0],f[0]),m[0]=Math.max(y[0],m[0]),M[0]=w[0]=t+p-o,y[1]=M[1]=e}return r.length=0,r.push(["M",...m],["L",...f],["A",c,c,0,0,1,...x],["L",...y],["A",p,p,0,0,1,...b],["L",...v],["A",p,p,0,0,1,...M],["L",...w],["A",c,c,0,0,1,...m],["Z"]),r}function s9(t,e){let i=t.condition;(i.callback||function(){return this.chartWidth<=(i.maxWidth??Number.MAX_VALUE)&&this.chartHeight<=(i.maxHeight??Number.MAX_VALUE)&&this.chartWidth>=(i.minWidth??0)&&this.chartHeight>=(i.minHeight??0)}).call(this,this)&&e.push(t._id)}function s7(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=tl()),this.matchResponsiveRule(t,o)},this);let a=H(...o.map(t=>B(i?.rules||[],e=>e._id===t)).map(t=>t?.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s?.ruleIds;o!==n&&(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=C(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}(ip||(ip={})).compose=function(t){let e=t.prototype;return e.matchResponsiveRule||S(e,{matchResponsiveRule:s9,setResponsive:s7}),t};let ot=ip;h.AST=tR,h.Axis=eE,h.Chart=i8,h.Color=tw,h.DataLabel=sL,h.DataTable=e6,h.DataTableCore=e6,h.Fx=tT,h.HTMLElement=ey,h.Legend=iK,h.LegendSymbol=iE,h.PlotLineOrBand=eN,h.Point=eK,h.Pointer=e2,h.Series=iH,h.SeriesRegistry=iz,h.StackItem=ss,h.SVGElement=tQ,h.SVGRenderer=em,h.Templating=tY,h.Tick=ek,h.Time=class extends tg{constructor(t,e){let i=ty.getOptions();super(t??i.time,e??i.lang)}},h.Tooltip=eU,h.addEvent=p,h.animObject=tP,h.animate=tL,h.arrayMax=g,h.arrayMin=u,h.attr=m,h.chart=i8.chart,h.clamp=f,h.color=tw.parse,h.correctFloat=x,h.createElement=y,h.css=v,h.crisp=b,h.dateFormat=tY.dateFormat,h.defaultOptions=ty.defaultOptions,h.defined=M,h.destroyObjectProperties=w,h.diffObjects=C,h.discardElement=k,h.distribute=tV.distribute,h.erase=T,h.error=ta,h.extend=S,h.extendClass=P,h.find=B,h.fireEvent=A,h.format=tY.format,h.getAlignFactor=L,h.getClosestDistance=O,h.getDeferredAnimation=tA,h.getMagnitude=E,h.getNestedProperty=I,h.getOptions=ty.getOptions,h.getStyle=D,h.insertItem=tn,h.isArray=G,h.isClass=N,h.isDOMElement=R,h.isFunction=X,h.isNumber=W,h.isObject=F,h.isString=j,h.internalClearTimeout=z,h.merge=H,h.normalizeTickInterval=Y,h.numberFormat=tY.numberFormat,h.objectEach=V,h.offset=U,h.pad=$,h.pick=function(...t){let e=t.length;for(let i=0;i<e;i++){let e=t[i];if(null!=e)return e}},h.pushUnique=_,h.pInt=Z,h.relativeLength=K,h.removeEvent=J,h.replaceNested=q,h.seriesType=iz.seriesType,h.setAnimation=tS,h.setOptions=ty.setOptions,h.splat=Q,h.stableSort=tt,h.stop=tO,h.syncTimeout=te,h.time=ty.defaultTime,h.ucfirst=ti,h.timers=tT.timers,h.timeUnits=th,h.uniqueKey=tl,h.useSerialIds=function(e){return t=e??t},h.wrap=ts,function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;p(t,"afterColumnTranslate",s5,{order:9}),p(s,"afterTranslate",s8),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY","brEnd","brStart"),s1=o.arc,s2=o.roundedRect,o.arc=s3,o.roundedRect=s4}}(h.Series,h.SVGElement,h.SVGRenderer),sD.compose(h.Series.types.column),sL.compose(h.Series),eD.compose(h.Axis),ey.compose(h.SVGRenderer),iK.compose(h.Chart),ez.compose(h.Axis),(r=(iS=h.Chart).prototype).hideOverlappingLabels||(r.hideOverlappingLabels=function(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(sK({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i<e;i++)(o=t[i])&&(o.oldOpacity=o.opacity,o.newOpacity=1,o.absoluteBox=function(t){if(t&&(!t.alignAttr||t.placed)){let e=t.box?0:t.padding||0,i=t.dataLabelPosition?.posAttribs||t.alignAttr||{x:t.attr("x"),y:t.attr("y")},{height:s,polygon:o,width:r}=t.getBBox(),a=L(t.alignValue)*r;return t.width=r,t.height=s,{x:i.x+(t.parentGroup?.translateX||0)+e-a,y:i.y+(t.parentGroup?.translateY||0)+e,width:r-2*e,height:s-2*e,polygon:o}}}(o));t.sort((t,e)=>(e?.labelrank||0)-(t?.labelrank||0));for(let o=0;o<e;++o){n=(r=t[o])&&r.absoluteBox;let l=n?.polygon;for(let d=o+1;d<e;++d){h=(a=t[d])&&a.absoluteBox;let e=!1;if(n&&h&&r!==a&&r?.newOpacity!==0&&a?.newOpacity!==0&&r?.visibility!=="hidden"&&a?.visibility!=="hidden"){let t=h.polygon;if(l&&t&&l!==t?s(l,t)&&(e=!0):i(n,h)&&(e=!0),e){let t=r?.labelrank<a?.labelrank?r:a,e=t?.text;t&&(t.newOpacity=0),e?.element.querySelector("textPath")&&e.hide()}}}}for(let e of t)e&&sq(e,this)&&(l=!0);l&&A(this,"afterHideAllOverlappingLabels")},p(iS,"render",function(){let t=this,e=(e,s)=>{s?(e.oldOpacity=e.opacity,e.newOpacity=1,sq(e,t)):i.push(e)},i=[];for(let e of t.labelCollectors||[])i=i.concat(e());for(let{options:i,stacking:s}of t.yAxis||[])V(s?.stacks,t=>{V(t,({label:t})=>{t&&e(t,i.stackLabels?.allowOverlap)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let t=t=>{for(let s of t)s.visible&&(s.dataLabels||[]).forEach(t=>{let o=t.options||{};t.labelrank=o.labelrank??s.labelrank??s.shapeArgs?.height,e(t,o.allowOverlap??(i.is("pie")&&Number(o.distance)>0))})};t(i.nodes||[]),t(i.points)}this.hideOverlappingLabels(i)})),sZ.compose(h.Series.types.pie),eN.compose(h.Chart,h.Axis),e2.compose(h.Chart),ot.compose(h.Chart),st.compose(h.Axis,h.Chart,h.Series),sg.compose(h.Axis,h.Chart,h.Series),eU.compose(h.Pointer);let{parse:oe}=tw;(iP=iu||(iu={})).initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,h=0,l;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t<i;++t)r=H(r=o[t]),a.push(r),(e.styledMode||!r.color)&&("category"===s.dataClassColor?(e.styledMode||(n=(l=e.options.colors||[]).length,r.color=l[h]),r.colorIndex=h,++h===n&&(h=0)):r.color=oe(s.minColor).tweenTo(oe(s.maxColor),i<2?.5:t/(i-1)))},iP.initStops=function(){let t=this.options,e=this.stops=t.stops||[[0,t.minColor||""],[1,t.maxColor||""]];for(let t=0,i=e.length;t<i;++t)e[t].color=oe(e[t][1])},iP.normalizedValue=function(t){let e=this.max||0,i=this.min||0;return this.logarithmic&&(t=this.logarithmic.log2lin(t)),1-(e-t)/(e-i||1)},iP.toColor=function(t,e){let i,s,o,r,a,n,h=this.dataClasses,l=this.stops;if(h){for(n=h.length;n--;)if(s=(a=h[n]).from,o=a.to,(void 0===s||t>=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=l.length;n--&&!(i>l[n][0]););s=l[n]||l[n+1],i=1-((o=l[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r};let oi=iu,{parse:os}=tw;!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=Q(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){o=t.options,o?.showInLegend?(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))})):t.destroyItems()}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis?.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function h(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function l(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",os(this.start).tweenTo(os(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",os(this.start).tweenTo(os(this.end),this.pos),void 0,!0)}t.compose=function(t,u,g,m,f){var x;let y,b=u.prototype,v=g.prototype,M=f.prototype;b.collectionsWithUpdate.includes("colorAxis")||(e=t,b.collectionsWithUpdate.push("colorAxis"),b.collectionsWithInit.colorAxis=[b.addColorAxis],p(u,"afterCreateAxes",i),y=(x=u).prototype.createAxis,x.prototype.createAxis=function(t,i){if("colorAxis"!==t)return y.apply(this,arguments);let s=new e(this,H(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),(i.redraw??!0)&&this.redraw(i.animation),s},v.fillSetter=d,v.strokeSetter=c,p(m,"afterGetAllItems",s),p(m,"afterColorizeItem",o),p(m,"afterUpdate",r),S(M,{optionalAxis:"colorAxis",translateColors:l}),S(M.pointClass.prototype,{setVisible:h}),p(f,"afterTranslate",a,{order:1}),p(f,"bindAxes",n))},t.pointSetVisible=h}(ig||(ig={}));let oo=ig,{defaultOptions:or}=ty,{series:oa}=iz;or.colorAxis=H(or.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"var(--highcharts-background-color)",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},clip:!1,lineColor:"var(--highcharts-neutral-color-40)",lineWidth:0,color:"var(--highcharts-neutral-color-40)",width:.01},labels:{distance:8,overflow:"justify",rotation:0},minColor:"var(--highcharts-highlight-color-10)",maxColor:"var(--highcharts-highlight-color-100)",tickLength:5,title:{margin:5},showInLegend:!0});class on extends eE{static compose(t,e,i,s){oo.compose(on,t,e,i,s)}constructor(t,e){super(t,e),this.clippable=!1,this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.reversed=e.reversed,this.opposite=!s,super.init(t,e,"colorAxis"),this.side=e.side||s?2:1,this.userOptions=e,G(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses?this.initDataClasses(e):delete this.dataClasses,this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=this.chart.options.legend||{},i=or.colorAxis,s=H("vertical"!==(t.layout||e.layout||i.layout)?{title:{rotation:0}}:{title:{rotation:90,margin:10}},i,t,{showEmpty:!1,visible:this.chart.options.legend.enabled&&!1!==t.visible}),o=s.marker||{};super.setOptions(s),this.options.crosshair=H(o,{color:o.lineColor,width:o.lineWidth})}setAxisSize(){let t=this.chart,e=this.legendItem?.symbolBBox,{width:i,height:s}=this.getSize();e&&(this.left=e.x,this.top=e.y),this.width=i=e?.width??i,this.height=s=e?.height??s,this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top,this.len=(this.horiz?i:s)||on.defaultLegendLength}getOffset(){let t=this.chart,e=this.legendItem?.group,i=t.axisOffset[this.side],{clipOffset:s,legend:o}=t;e&&(this.axisParent=e,super.getOffset(),o.allItems.forEach(function(t){t instanceof on&&t.drawLegendSymbol(o,t)}),o.render(),t.getMargins(!0),this.added||(this.added=!0),this.labelLeft=0,this.labelRight=this.width,t.axisOffset[this.side]=i,t.clipOffset=s)}createGroups(){let t=this.axisParent;super.createGroups(),this.axisGroup?.parentGroup!==t&&(this.gridGroup?.add(t),this.axisGroup?.add(t),this.labelGroup?.add(t))}setLegendColor(){let t=this.horiz,e=this.reversed,i=+!!e,s=+!e,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=o.itemDistance??10,n=this.horiz,{width:h,height:l}=this.getSize(),d=o.labelPadding??(n?16:30);this.setLegendColor();let c=0,p=0;if(this.options.title?.text&&!this.axisTitle){this.axisGroup||(this.axisParent=i.group,this.createGroups());let t=this.len,e=this.top,s=this.left,o=this.width;this.len=n?h:l,this.top=0,this.left=0,this.width=h,this.addTitle(!0),this.len=t,this.top=e,this.left=s,this.width=o}if(this.axisTitle){let t=this.axisTitle.getBBox();c=t.height,p=t.width}let u=this.options.title||{},g=this.axisTitle?u.margin??0:0,m=n?c+g:0,f=i.symbol?"animate":"attr";i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbolBBox={x:0,y:(t.baseline||0)-11+m,width:h,height:l},i.symbol[f](i.symbolBBox),n?(i.labelWidth=Math.max(h+s+a,p||0),i.labelHeight=l+s+d+c+g):(i.labelWidth=h+s+(r.x??r.distance??15)+(this.maxLabelLength||0)+(p||0)+g,i.labelHeight=Math.max(l+s,c||0))}getTitlePosition(t){let e=super.getTitlePosition(t),i=this.options.title?.margin??0;if(this.horiz&&t)e.y=this.top-i;else if(!this.horiz&&t){let t=this.options.labels||{},s=t.x??t.distance??0;e.x=this.left+this.width+s+(this.maxLabelLength||0)+i}return e}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=o.options.colorKey??o.colorKey??o.pointValKey??o.zoneAxis??"y",s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=oa.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}M(o.minColorValue)&&M(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||oa.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i,s=this.legendItem||{},o=e?.plotX,r=e?.plotY,a=this.pos,n=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))<a?i=a-2:i>a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&"object"==typeof this.crosshair&&(!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0),this.chart.styledMode||this.cross.attr({fill:this.options.marker?.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,{symbol:s}=this.options.marker||{},o=this.top;if(W(i)){if(s){let t=this.height,r=i-t/2,a=o;return this.horiz||(t=this.width,r=e,a=i-t/2),this.chart.renderer.symbols[s](r,a,t,t)}return this.horiz?[["M",i-4,o-6],["L",i+4,o-6],["L",i,o],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]}return super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),delete this.legendItem?.symbolBBox,super.update(t,e),this.legendItem?.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let{chart:t,legendItem:e={}}=this;if(t){if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy()}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t,e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=o.valueDecimals??-1,a=o.valueSuffix??"",n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses?.forEach((o,h)=>{let l=o.from,d=o.to,{numberFormatter:c}=i,p=!0;t="",void 0===l?t="< ":void 0===d&&(t="> "),void 0!==l&&(t+=c(l,r)+a),void 0!==l&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+a),s.push(S({chart:i,name:t,options:{},drawLegendSymbol:oa.prototype.drawLegendSymbol,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(h))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of n(h))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,p),t.forEach(t=>{A(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:M(s)?K(s,t.chartWidth):o?.symbolWidth??(e?on.defaultLegendLength:12),height:M(i)?K(i,t.chartHeight):o?.symbolHeight??(e?12:on.defaultLegendLength)}}}on.defaultLegendLength=200,S(on.prototype,oi),h.ColorAxis=h.ColorAxis||on,h.ColorAxis.compose(h.Chart,h.Fx,h.Legend,h.Series);let oh={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"var(--highcharts-neutral-color-60)",fontSize:"1em",fontWeight:"bold"},theme:{fill:"var(--highcharts-background-color)",stroke:"var(--highcharts-neutral-color-10)","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}};!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=M((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&z(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&S(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&(e.enableTouchZoom??e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(S(e,{onContainerDblClick:s,onContainerMouseWheel:o}),ts(e,"normalize",r),ts(e,"zoomOption",a))}}(im||(im={}));let ol=im;function od(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxY=e-t,r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}function oc(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}let op=function(t){(i=t.prototype.symbols).bottombutton=od,i.topbutton=oc},{setOptions:ou}=ty,{composed:og}=h;function om(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}let of=class t{static compose(e,i,s){ol.compose(i),op(s),_(og,"Map.Navigation")&&(p(e,"beforeRender",function(){this.mapNavigation=new t(this),this.mapNavigation.update()}),ou(oh))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),om(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=H(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();!i.renderer.forExport&&(r.enableButtons??r.enabled)&&(e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),V(r.buttons,(t,a)=>{let n={padding:(t=H(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(S(n,t.theme),n.style=H(t.theme.style,t.style));let{text:h,width:l=0,height:d=0,padding:c=0}=t,u=i.renderer.button("+"!==h&&"-"!==h&&h||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:l,height:d,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===h||"-"===h){let e=l+1,s=[["M",c+3,c+d/2],["L",c+e-3,c+d/2]];"+"===h&&s.push(["M",c+e/2,c+3],["L",c+e/2,c+d-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(u)}if(u.handler=t.onclick,p(u.element,"dblclick",om),s.push(u),S(t,{width:u.width,height:2*(u.height||0)}),i.hasLoaded)u.align(t,!1,t.alignTo);else{let e=p(i,"load",()=>{u.element&&u.align(t,!1,t.alignTo),e()})}}),i.hasLoaded||p(i,"render",function(){let t=i.exporting?.group?.getBBox();if(t){let i=e.navButtonsGroup.getBBox();if(!(i.x>=t.x+t.width||i.x+i.width<=t.x||i.y>=t.y+t.height||i.y+i.height<=t.y)){let s=-i.y-i.height+t.y-5,o=t.y+t.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?s:o})}}})),this.updateEvents(r)}updateEvents(t){let e=this.chart;(t.enableDoubleClickZoom??t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||p(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),t.enableMouseWheelZoom??t.enabled?this.unbindMouseWheel=this.unbindMouseWheel||p(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&om(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}},{column:{prototype:ox}}=iz.seriesTypes;var oy=ix||(ix={});function ob(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new tQ(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}oy.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&1/0!==this.value&&-1/0!==this.value&&(void 0===this.value||!isNaN(this.value))}},oy.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return M(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:ox.pointAttribs},oy.compose=function(t){return p(t.prototype.pointClass,"afterSetState",ob),t};let ov=ix,{getOptions:oM}=ty;class ow extends i8{init(t,e){let i=oM().credits,s=H({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:i.mapText??' \xa9 <a href="{geojson.copyrightUrl}">{geojson.copyrightShort}</a>',mapTextFull:i.mapTextFull??"{geojson.copyright}"},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(W(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,W(e)&&W(i)?this.mapView.projection.inverse([e,i]):void 0,W(s)&&W(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}(iA=ow||(ow={})).maps={},iA.mapChart=function(t,e,i){let s=new iA(t,e,i);return s.promise??s},iA.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,em.prototype.pathToSegments(e)};let ok=ow,oC={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:oT}=oC,oS=iz.seriesTypes.scatter.prototype.pointClass;class oP extends oS{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e,i){let s=this.series,o=super.applyOptions(t,e,i),r=s.joinBy;if(s.mapData&&s.mapMap){let t=r[1],e=super.getNestedProperty(t),i=void 0!==e&&s.mapMap[e];i?S(o,{...i,name:o.name??i.name}):-1!==s.pointArrayMap.indexOf("value")&&(o.value=o.value||null)}return o}getProjectedBounds(t){let e=oT(oP.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i?.["hc-middle-lon"],r=i?.["hc-middle-lat"];if(s&&W(o)&&W(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i?.["hc-middle-x"],s=i?.["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*(this.middleX??(W(t)?t:.5));let o=this.middleY??(W(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){z(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=W(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}S(oP.prototype,{dataLabelOnNull:ov.pointMembers.dataLabelOnNull,moveToTopOnHover:ov.pointMembers.moveToTopOnHover,isValid:ov.pointMembers.isValid});let oA={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"var(--highcharts-neutral-color-20)",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}},{win:oL}=h,{format:oO}=tY;!function(t){function e(t){return this.mapView?.lonLatToProjectedUnits(t)}function i(t){return this.mapView?.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||oL.proj4;if(!i)return void ta(21,!1,this);let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:h=0,yoffset:l=0,ypan:d=0}=e,c=i(e.crs,[t.lon,t.lat]),p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=e.rotation?[c[0]*p+c[1]*u,-c[0]*u+c[1]*p]:c;return{x:((g[0]-n)*a+h)*r+s,y:-(((l-g[1])*a+d)*r-o)}}function o(t,e){let i=this.options.chart.proj4||oL.proj4;if(!i)return void ta(21,!1,this);if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:h=0,yoffset:l=0,ypan:d=0}=e,c={x:((t.x-s)/r-h)/a+n,y:((t.y-o)/r+d)/a+l},p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=i(e.crs,"WGS84",e.rotation?{x:c.x*p+-(c.y*u),y:c.x*u+c.y*p}:c);return{lat:g.y,lon:g.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o,r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,h=r.length;t<h;++t){let h=r[t];s.push(e=[]),i=0,o=0;for(let t=0,s=h.length;t<s;++t)e.push([(i+=h[t][0])*a[0]+n[0],(o+=h[t][1])*a[1]+n[1]])}}let o=t=>"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t<e;++t)a.push({type:"Feature",properties:r[t].properties,geometry:{type:r[t].type,coordinates:r[t].coordinates||o(r[t].arcs)}});let n={type:"FeatureCollection",copyright:t.copyright,copyrightShort:t.copyrightShort,copyrightUrl:t.copyrightUrl,features:a,"hc-recommended-mapview":i["hc-recommended-mapview"],bbox:t.bbox,title:t.title};return i["hc-decoded-geojson"]=n,n}function a(t,e){e=H(!0,this.options.credits,e),t.call(this,e),this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})}t.compose=function(t){let r=t.prototype;r.transformFromLatLon||(r.fromLatLonToPoint=e,r.fromPointToLatLon=i,r.transformFromLatLon=s,r.transformToLatLon=o,ts(r,"addCredits",a))},t.geojson=function(t,e="map",i){let s=[],o="Topology"===t.type?r(t):t,a=o.features;for(let t=0,i=a.length;t<i;++t){let i,o=a[t],r=o.geometry||{},n=r.type,h=r.coordinates,l=o.properties;if(("map"===e||"mapbubble"===e)&&("Polygon"===n||"MultiPolygon"===n)||"mapline"===e&&("LineString"===n||"MultiLineString"===n)?h.length&&(i={geometry:{coordinates:h,type:n}}):"mappoint"===e&&"Point"===n&&h.length&&(i={geometry:{coordinates:h,type:n}}),i){let t=l&&(l.name||l.NAME),e=l&&l.lon,o=l&&l.lat;s.push(S(i,{lat:"number"==typeof o?o:void 0,lon:"number"==typeof e?e:void 0,name:"string"==typeof t?t:void 0,properties:l}))}}return i&&o.copyrightShort&&(i.chart.mapCredits=oO(i.chart.options.credits?.mapText,{geojson:o}),i.chart.mapCreditsFull=oO(i.chart.options.credits?.mapTextFull,{geojson:o})),s},t.topo2geo=r}(iy||(iy={}));let oE=iy;function oI(t,e,i=!0){let s=e[e.length-1],o,r,a,n=t;for(let t=0;t<e.length;t++){let h=n;o=e[t],n=[],r=i?h[h.length-1]:h[0];for(let t=0;t<h.length;t++)oD(s,o,a=h[t])?(oD(s,o,r)||n.push(oB(s,o,r,a)),n.push(a)):oD(s,o,r)&&n.push(oB(s,o,r,a)),r=a;s=o}return n}function oD(t,e,i){return(e[0]-t[0])*(i[1]-t[1])>(e[1]-t[1])*(i[0]-t[0])}function oB(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],h=1/(o[0]*r[1]-o[1]*r[0]),l=[(a*r[0]-n*o[0])*h,(a*r[1]-n*o[1])*h];return l.isIntersection=!0,l}let oz=Math.sign||(t=>0===t?0:t>0?1:-1),oR=Math.PI/180,oN=Math.PI/2,oW=t=>Math.tan((oN+t)/2),oj=class{constructor(t){let e=(t.parallels||[]).map(t=>t*oR),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(oW(s)/oW(i));1e-10>Math.abs(r)&&(r=1e-10*(oz(r)||1)),this.n=r,this.c=o*Math.pow(oW(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*oR,r=t[1]*oR;e>0?r<-oN+1e-6&&(r=-oN+1e-6):r>oN-1e-6&&(r=oN-1e-6);let a=e/Math.pow(oW(r),i),n=a*Math.sin(i*o)*63.78137,h=(e-a*Math.cos(i*o))*63.78137,l=[n,h];return s&&(n<s.x1||n>s.x2||h<s.y1||h>s.y2)&&(l.outside=!0),l}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=oz(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*oz(o);return o*i<0&&(a-=Math.PI*oz(s)*oz(o)),[a/i/oR,(2*Math.atan(Math.pow(e/r,1/i))-oN)/oR]}},oG=Math.sqrt(3)/2,oX=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(oG*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(oG*(1.340264+-3*.081106*s+o*(7*893e-6+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,h;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=h=n/(1.340264+-3*.081106*r+a*(7*893e-6+.034164*r)),!(1e-9>Math.abs(h)));++t);a=(r=o*o)*r*r;let l=s*oG*e*(1.340264+-3*.081106*r+a*(7*893e-6+.034164*r))/Math.cos(o),d=s*Math.asin(Math.sin(o)/oG);return Math.abs(l)>180?[0/0,0/0]:[l,d]}},oF=Math.PI/4,oH=Math.PI/180,oY=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*oH*63.78137,79.7267125*Math.log(Math.tan(oF+.4*t[1]*oH))]}inverse(t){return[t[0]/63.78137/oH,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-oF)/oH]}},oV=Math.PI/180,oU=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*oV,s=[Math.cos(i)*Math.sin(e*oV)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/oV,Math.asin(s&&i*r/s)/oV]}},o$=Math.PI/180,oZ=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*o$),i=[63.78137*t[0]*o$,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*o$),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/o$]}},{clipLineString:o_,clipPolygon:oK}={clipLineString:function(t,e){let i=[],s=oI(t,e,!1);for(let t=1;t<s.length;t++)s[t].isIntersection&&s[t-1].isIntersection&&(i.push(s.splice(0,t)),t=0),t===s.length-1&&i.push(s);return i},clipPolygon:oI},oq=2*Math.PI/360,oJ=t=>(t<-180&&(t+=360),t>180&&(t-=360),t),oQ=t=>(1-Math.cos(t))/2;class o0{static add(t,e){o0.registry[t]=e}static distance(t,e){let i,s,o,r,a,{atan2:n,sqrt:h}=Math,l=(i=Math.cos,s=t[1]*oq,o=t[0]*oq,r=e[1]*oq,a=e[0]*oq,oQ(r-s)+i(s)*i(r)*oQ(a-o));return 6371e3*(2*n(h(l),h(1-l)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,h=o0.distance,l=t[1]*oq,d=t[0]*oq,c=e[1]*oq,p=e[0]*oq,u=r(l)*r(d),g=r(c)*r(p),m=r(l)*a(d),f=r(c)*a(p),x=a(l),y=a(c),b=h(t,e),v=b/6371e3,M=a(v),w=Math.round(b/s),k=[];if(i&&k.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*v)/M,i=a(e*v)/M,s=t*u+i*g,r=t*m+i*f,h=o(t*x+i*y,n(s*s+r*r)),l=o(r,s);k.push([l/oq,h/oq])}}return i&&k.push(e),k}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=o0.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?o0.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=+!e;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*oq,i=(t[1]||0)*oq,s=(t[2]||0)*oq,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*oq+e,s=t[1]*oq,h=Math.cos(s),l=Math.cos(i)*h,d=Math.sin(i)*h,c=Math.sin(s),p=c*o+l*r;return[Math.atan2(d*a-p*n,l*o-c*r)/oq,Math.asin(p*a+d*n)/oq]},inverse:t=>{let i=t[0]*oq,s=t[1]*oq,h=Math.cos(s),l=Math.cos(i)*h,d=Math.sin(i)*h,c=Math.sin(s),p=c*a-d*n;return[(Math.atan2(d*a+c*n,l*o+p*r)-e)/oq,Math.asin(p*o-l*r)/oq]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i,s=[],o=[t];for(let i=0,o=t.length;i<o;++i){let o=t[i],r=t[i-1];if(!i){if(!e)continue;r=t[t.length-1]}let a=r[0],n=o[0];if((a<-90||a>90)&&(n<-90||n>90)&&a>0!=n>0){let t=f((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length)if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],T(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=oJ(180+1e-6*s[e].direction),a=oJ(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...o0.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...o0.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t<o.length;t++){let{direction:e,lat:s}=i,r=o[t],a=r.indexOf(i.lonLat);if(a>-1){let t=(s<0?-1:1)*this.maxLatitude,o=oJ(180+1e-6*e),n=oJ(180-1e-6*e),h=o0.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)h.push([i,t]);h.push(...o0.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...h);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[oJ(180+1e-6*s[e].direction),s[e].lat]);r.unshift([oJ(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}return o}path(t){let e,{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,h=!s||!1!==s.antimeridianCutting,l=h?o:void 0,d=h&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let c=t=>{let s=t.map(t=>{if(h){l&&(t=l.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?180-1e-6:180+1e-6),t=[e,t[1]]}return t}),o=[s];n&&(o0.insertGeodesics(s),h&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let l=!1,c=!1,p=t=>{l?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),l=!0)},u=!1,g=!1,m=t.map(t=>{let e=d.forward(t);return e.outside?u=!0:g=!0,1/0===e[1]?e[1]=1e10:-1/0===e[1]&&(e[1]=-1e10),e});if(h){if(a&&m.push(m[0]),u){if(!g)return;if(e){if(a)m=oK(m,e);else if(i)return void o_(m,e).forEach(t=>{l=!1,t.forEach(p)})}}m.forEach(p)}else for(let e=0;e<m.length;e++){let i=t[e],r=m[e];r.outside?c=!0:(a&&!s&&(s=i,t.push(i),m.push(r)),c&&o&&(a&&n?o0.geodesic(o,i).forEach(t=>p(d.forward(t))):l=!1),p(r),o=i,c=!1)}})};return"LineString"===t.type?c(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>c(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>c(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>c(t))}),r.length&&r.push(["Z"])),r}}o0.registry={EqualEarth:oX,LambertConformalConic:oj,Miller:oY,Orthographic:oU,WebMercator:oZ};let{composed:o1}=h,{pointInPolygon:o2}=s_,{topo2geo:o3}=oE,{boundsFromPath:o5}=oC,o6={};function o8(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function o4(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class o9{static compose(t){_(o1,"MapView")&&(o6=t.maps,p(t,"afterInit",function(){this.mapView=new o9(this,this.options.mapView)},{order:0}),p(t,"addSeriesAsDrilldown",o4),p(t,"afterDrillUp",o4))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),H(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=H(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof o7||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};let i=H(oA,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=o9.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new o0(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(p(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&W(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&H(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new o7(this,H(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=e??(t?0:this.options.padding),a=this.getField(!1),n=G(r)?r:[r,r,r,r];this.padding=[K(n[0],a.height),K(n[1],a.width),K(n[2],a.height),K(n[3],a.width)],this.playingField=this.getField();let h=o8(o,this.playingField);t||(this.minZoom=h);let l=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(l,h,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(j(t))return o6[t]&&"Topology"===o6[t].type?o3(o6[t]):o6[t];if(F(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return o3(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache)if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=o5(t.path(i));return this.fitToGeometryCache}return this.projection.bounds||o9.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,h=t+i/2-o[0]*a,l=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:h,translateY:l}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&o2(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&o2({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&o2(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&o2(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&o9.compositeBounds(o);A(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),W(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),h=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),l=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,d=h.y,c=h.x,p=n.y;c-o<s?t[0]=l[0]:o<e&&c<e+s?t[0]+=Math.max(o-e,c-s-e)/a:c>e+s&&o>e&&(t[0]+=Math.min(c-s-e,o-e)/a),p-d<r?t[1]=l[1]:d<i&&p<i+r?t[1]-=Math.max(d-i,p-r-i)/a:p>i+r&&d>i&&(t[1]-=Math.min(p-r-i,d-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}A(this,"afterSetView"),i&&this.redraw(s)}setUpEvents(){let t,e,i,{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,h=o.touches,{mouseDownX:l,mouseDownY:d}=s,c=0;if(a?.length===1?(l=a[0].chartX,d=a[0].chartY):a?.length===2&&(l=(a[0].chartX+a[1].chartX)/2,d=(a[0].chartY+a[1].chartY)/2),h?.length===2&&r&&(c=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(h[0].chartX-h[1].chartX,2)+Math.pow(h[0].chartY-h[1].chartY,2)))/Math.log(.5)),W(l)&&W(d)){let r=`${l},${d}`,{chartX:a,chartY:p}=o.originalEvent;h?.length===2&&(a=(h[0].chartX+h[1].chartX)/2,p=(h[0].chartY+h[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,g=u&&o8(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(h?.length||0)&&(this.minZoom||1/0)<1.3*g){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(l-a)*t-i[0],o=f(-i[1]-(d-p)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(W(a)&&W(p)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(l-a)/e,t[1]-(d-p)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(c,s,void 0,!1)}o.preventDefault()}};p(s,"pan",o),p(s,"touchpan",o),p(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){let t=this.chart;this.group?this.groupClipRect&&this.groupClipRect.animate(t.plotBox):(this.groupClipRect=t.renderer.clipRect(t.plotBox),this.group=t.renderer.g("map-view").attr({zIndex:4}).clip(this.groupClipRect).add())}update(t,e=!0,i){let s=t.projection,o=s&&o0.toString(s)!==o0.toString(this.options.projection),r=!1;H(!0,this.userOptions,t),H(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new o0(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!W(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||W(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,h,l=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,l=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,h=r[1]+l/s}if("number"==typeof n&&"number"==typeof h){let t=1-Math.pow(2,this.zoom)/Math.pow(2,l),e=r[0]-n,i=r[1]-h;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,l,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class o7 extends o9{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=H({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=o5(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],h=Math.min.apply(0,r)+i[0],l=Math.max.apply(0,r)-i[2];if(W(a)&&W(h))return{x:a,y:h,width:n-a,height:l-h}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||H(t.plotBox,{x:0,y:0});o=o.map(t=>[K(`${t[0]}%`,s.width,s.x),K(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return o9.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&o2(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,h]=s;return"percent"===i.units&&(n=t.plotLeft+K(`${n}%`,a.width,a.x),h=t.plotTop+K(`${h}%`,a.height,a.y)),n=b(n,r),h=b(h,r),e.push(0===o?["M",n,h]:["L",n,h]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{noop:rt}=h,{splitPath:re}=ok,{column:ri,scatter:rs}=iz.seriesTypes;class ro extends rs{constructor(){super(...arguments),this.tupleKey="hc-key"}animate(t){let{chart:e,group:i}=this,s=tP(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroups?.forEach(t=>t?.clip(this.chart.clipRect))}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t<e;++t)s[t+1]||s.push(r.g().add(i));this.doFullTranslate()&&(this.points.forEach(t=>{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),ri.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties?.["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=W(i["stroke-width"])&&!W(s["stroke-width"]),h=W(s["stroke-width"])&&!W(i["stroke-width"]);if(n||h){let o=(t.getStrokeWidth(t.options)??1)/(e.mapView?.getScale()||1);n&&(s["stroke-width"]=o),h&&(i["stroke-width"]=o)}return o.call(s,i,r,h?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=this.getStrokeWidth(this.options)??1,h=a.scaleX,l=a.scaleY>0?1:-1,d=e=>{(t.points||[]).forEach(t=>{let i,s=t.graphic;s?.["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let c=s+(h-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:c,scaleY:c*l,"stroke-width":n/c}),d(c)},c=H(tP(r.globalAnimation)),p=c.step;c.step=function(){p&&p.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},c,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),A(this,"mapZoomComplete")}).bind(this))}else tO(i),i.attr(H(a,{"stroke-width":n/h})),d(h)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=re(s.path):G(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=s.labelrank??(i.x2-i.x1)*(i.y2-i.y1);let{midX:e,midY:o}=i;if(t&&W(e)&&W(o)){let r=B(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=o9.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e?.["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.getModified().rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=(t?.series||this).chart,o=s&&t?this.colorAttribs(t):ri.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t?.options||{});if(e){let i=H(this.options.states?.[e],t?.options.states?.[e]||{}),s=this.getStrokeWidth(i);M(s)&&(r=s),o.stroke=i.borderColor??t?.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&W(a)&&(r=a/i.getScale()),t?.visible===!1&&(o.fill=this.options.nullColor),t?.isNull&&this.options.nullInteraction&&(o.opacity=1),M(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}matchPoints(){return!this.hasProcessedDataTable&&super.matchPoints.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}getDataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i,s=this.options,o=this.dataTable,r=this.chart,a=r.options.chart,n=this.joinBy,l=[],d={},c=this.chart.mapView,p=c&&(F(s.mapData,!0)?c.getGeoMap(s.mapData):c.geoMap),u=r.mapTransforms=a.mapTransforms||p?.["hc-transform"]||r.mapTransforms,g=new e6;if(this.hasProcessedDataTable=!0,u&&V(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),G(s.mapData)?i=s.mapData:p?.type==="FeatureCollection"&&(this.mapTitle=p.title,i=h.geojson(p,this.type,this)),Object.entries(o.columns).forEach(([t,e])=>{g.setColumn(t,e)}),"_i"===n[0]&&g.setColumn("_i",Array.from({length:g.rowCount},(t,e)=>e)),i){this.mapData=i,this.mapMap={};for(let s=0;s<i.length;s++)e=(t=i[s]).properties,t._i=s,n[0]&&e&&e[n[0]]&&(t[n[0]]=e[n[0]]),d[t[n[0]]]=t;if(this.mapMap=d,n[1]){let t=n[1];for(let e=0;e<g.rowCount;e++){let i="_i"===t?e:I(t,g.getRowObject(e));d[i]&&l.push(d[i])}}if(s.allAreas){let t="|"+l.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||g.setRow(H(e,{value:null}))})}}this.dataTable.modified=g}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=Q(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e?.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||W(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=W(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&W(o.bounds.midX)&&W(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:oP.getProjectedPath(o,i)}),!o.hiddenInDataClass&&(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}A(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}ro.defaultOptions=H(rs.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,distance:0,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return W(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:[0,2],verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"var(--highcharts-neutral-color-3)",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}<br/>"},turboThreshold:0,allAreas:!0,borderColor:"var(--highcharts-neutral-color-20)",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"var(--highcharts-neutral-color-60)",borderWidth:2},normal:{animation:!0},select:{color:"var(--highcharts-neutral-color-20)"}},legendSymbol:"rectangle"}),S(ro.prototype,{type:"map",axisTypes:ov.seriesMembers.axisTypes,colorAttribs:ov.seriesMembers.colorAttribs,colorKey:ov.seriesMembers.colorKey,directTouch:!0,drawDataLabels:rt,drawGraph:rt,forceDL:!0,getCenter:sj.getCenter,getExtremesFromAll:!0,getSymbol:rt,isCartesian:!1,parallelArrays:ov.seriesMembers.parallelArrays,pointArrayMap:ov.seriesMembers.pointArrayMap,pointClass:oP,preserveAspectRatio:!0,searchPoint:rt,trackerGroups:ov.seriesMembers.trackerGroups,useMapGeometry:!0}),ov.compose(ro),iz.registerSeriesType("map",ro);let rr=ro;class ra extends rr{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}ra.defaultOptions=H(rr.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),S(ra.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),iz.registerSeriesType("mapline",ra);let{scatter:rn}=iz.seriesTypes;class rh extends rn.prototype.pointClass{isValid(){return!!(this.options.geometry||W(this.x)&&W(this.y)||W(this.options.lon)&&W(this.options.lat))}}let{noop:rl}=h,{map:rd,scatter:rc}=iz.seriesTypes;class rp extends rc{constructor(){super(...arguments),this.clearBounds=rd.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroups?.forEach(t=>{t?.clip(this.chart.clipRect)})}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(W(s)&&W(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=W(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,h=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(h?(r=h.x,a=h.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&W(r)&&W(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),W(r)&&W(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}A(this,"afterTranslate")}}rp.defaultOptions=H(rc.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"var(--highcharts-neutral-color-100)"}},legendSymbol:"lineMarker",stickyTracking:!0,tooltip:{pointFormat:"{#if point.name}{point.name}{else}Lat: {point.lat}, Lon: {point.lon}{/if}"}}),em.prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a,n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let h=n?s/3:s/2;return[["M",r,a],["C",r,a,r-h,e+1.5*h,r-h,e+h],["A",h,h,1,1,1,r+h,e+h],["C",r+h,e+1.5*h,r,a,r,a],["Z"]]},S(rp.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:rh,searchPoint:rl,useMapGeometry:!0}),iz.registerSeriesType("mappoint",rp);let ru={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"var(--highcharts-neutral-color-100)"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{noop:rg}=h,rm=class{constructor(t,e){this.setState=rg,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e,i=t.options.itemDistance??20,s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!W(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}tt(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),h=this.ranges[0].radius,l=2*h;e=(e=a-h+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=l+e+i,s.labelHeight=l+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,h=this.chart.styledMode;t.forEach(function(l,d){h||(o.stroke=l.borderColor??e.borderColor??i.color,o.fill=l.color||e.color,o.fill||(o.fill=i.color,o["fill-opacity"]=n??1),r.stroke=l.connectorColor??e.connectorColor??i.color),t[d].radius=this.getRangeRadius(l.value),t[d]=H(t[d],{center:t[0].radius-t[d].radius+s}),h||H(!0,t[d],{bubbleAttribs:H(o),connectorAttribs:H(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,h=this.symbols,l=h.labels,d=t.center,c=Math.abs(t.radius),p=s.connectorDistance||0,u=o.align,g=i.options.rtl,m=s.borderWidth,f=s.connectorWidth,x=e.radius||0,y=d-c-m/2+f/2,b=(y%1?1:.5)-(f%2?0:.5),v=n.styledMode,M=g||"left"===u?-p:p;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),h.bubbleItems.push(n.circle(x,d+b,c).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),h.connectors.push(n.path(n.crispLine([["M",x,y],["L",x+M,y]],s.connectorWidth)).attr(v?{}:t.connectorAttribs).addClass((v?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(v?{}:t.labelAttribs).css(v?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),k={x:x+M+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(k),l.push(w),w.placed=!0,w.alignAttr=k}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?tY.format(s,t,this.chart):i?i.call(t,t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(W)).length&&(r=t.options.zMin??Math.min(r,Math.max(u(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE)),a=t.options.zMax??Math.max(a,g(o)))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=H(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],h=n.getPxExtremes(),l=Math.ceil(h.minPxSize),d=Math.ceil(h.maxPxSize),c=Math.min(a,r),p,u=n.options.maxSize;return i||!/%$/.test(u)?p=d:(p=(c+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-p>=r||!s&&r-p>=a)&&(p=d)),[l,Math.ceil(p)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:rf}=ty,{composed:rx}=h;function ry(t,e,i){let s,o,r,a=this.legend,n=rb(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),V(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes()):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&a.render())}function rb(t){let e=t.series,i=0;for(;i<e.length;){if(e[i]&&e[i].isBubble&&e[i].visible&&e[i].dataTable.rowCount)return i;i++}return -1}function rv(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=rb(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new rm(s,this),this.bubbleLegend.addToLegend(t.allItems))}function rM(){if(this.bubbleLegend){let t=this.allItems,e=this.options.rtl,i=function(t){let e=t.allItems,i=[],s=e.length,o,r,a,n=0,h=0;for(n=0;n<s;n++)if(r=e[n].legendItem||{},a=(e[n+1]||{}).legendItem||{},r.labelHeight&&(e[n].itemHeight=r.labelHeight),e[n]===e[s-1]||r.y!==a.y){for(i.push({height:0}),o=i[i.length-1];h<=n;h++)e[h].itemHeight>o.height&&(o.height=e[h].itemHeight);o.step=n}return i}(this),s,o,r,a,n=0;t.forEach((t,h)=>{(a=t.legendItem||{}).group&&(s=a.group.translateX||0,o=a.y||0,((r=t.movementX)||e&&t.ranges)&&(r=e?s-t.options.maxSize/2:s+r,a.group.attr({translateX:r})),h>i[n].step&&n++,a.group.attr({translateY:Math.round(o+i[n].height/2)}),a.y=o+i[n].height/2)})}}function rw(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=rb(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}let rk=function(t,e){_(rx,"Series.BubbleLegend")&&(rf({legend:{bubbleLegend:ru}}),ts(t.prototype,"drawChartBox",ry),p(e,"afterGetAllItems",rv),p(e,"afterRender",rM),p(e,"itemClick",rw))},{seriesTypes:{scatter:{prototype:{pointClass:rC}}}}=iz;class rT extends rC{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series,r=2*e;return o.renderer.symbols.circle((i?.len||0)-t[1]-e,(s?.len||0)-t[0]-e,r,r)}return eK.prototype.haloPath.call(this,e)}}S(rT.prototype,{ttBelow:!1});let rS=rT,{composed:rP,noop:rA}=h,{series:rL,seriesTypes:{column:{prototype:rO},scatter:rE}}=iz;function rI(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,h;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,h=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(W(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),h&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===(this.options[t[0]]??this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function rD(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a<i)&&r.label?.hide()}}}class rB extends rE{static compose(t,e,i){rk(e,i),_(rP,"Series.Bubble")&&(p(t,"foundExtremes",rI),p(t,"afterRender",rD))}animate(t){!t&&this.points.length<this.options.animationLimit&&this.points.forEach(function(t){let{graphic:e,plotX:i=0,plotY:s=0}=t;e&&e.width&&(this.hasRendered||e.attr({x:i,y:s,width:1,height:1}),e.animate(this.markerAttribs(t),this.options.animation))},this)}getRadii(){let t=[...this.getColumn("z",!1,!0)],e=this.getColumn("y"),i=[],s,o,r,a=this.chart.bubbleZExtremes,{minPxSize:n,maxPxSize:h}=this.getPxExtremes();if(!a){let t,e=Number.MAX_VALUE,i=-Number.MAX_VALUE;this.chart.series.forEach(s=>{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(e??o.zMin,o.zMin),i=Math.max(i??o.zMax,o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o<s;o++)r=t[o],i.push(this.getRadius(a.zMin,a.zMax,n,h,r,e&&e[o]));this.radii=i}getRadius(t,e,i,s,o,r){let a=this.options,n="width"!==a.sizeBy,h=a.zThreshold,l=e-t,d=.5;if(null===r||null===o)return null;if(W(o)){if(a.sizeByAbsoluteValue&&(o=Math.abs(o-h),e=l=Math.max(e-h,Math.abs(t-h)),t=0),o<t)return i/2-1;l>0&&(d=(o-t)/l)}return n&&d>=0&&(d=Math.sqrt(d)),Math.ceil(i+d*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?S(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker,s=i?.fillOpacity,o=rL.prototype.pointAttribs.call(this,t,e);return o["fill-opacity"]=s??1,o}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{options:t,radii:e}=this,{minPxSize:i}=this.getPxExtremes();this.data.concat(this.condemnedPoints).forEach((s,o)=>{let{plotX:r=0,plotY:a=0}=s,n=s.condemned?s.marker?.radius||0:e?e[o]:0;"z"===this.zoneAxis&&(s.negative=(s.z||0)<(t.zThreshold||0)),W(n)&&(s.marker=S(s.marker,{radius:n,width:2*n,height:2*n})),W(n)&&n>=i/2?s.dlBox={x:r-n,y:a-n,width:2*n,height:2*n}:(s.shapeArgs=s.plotY=s.dlBox=void 0,s.isInside=!1)})}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(this.options.minSize??8),s=Math.max(e(this.options.maxSize??"20%"),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(W);if(e.length){let i=t.zMin??f(u(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE),s=t.zMax??g(e);if(W(i)&&W(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=rA,o=rA){return s=(t,e,i)=>{let s=t[i]||0,o=e[i]||0,r,a=!1;return s===o?r=t.index>e.index?t:e:s<0&&o<0?(r=s-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,a=!0):r=s<o?t:e,[r,a]},o=(t,e,i)=>!i&&t>e||t<e,super.searchKDTree(t,e,i,s,o)}}rB.defaultOptions=H(rE.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return W(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),S(rB.prototype,{alignDataLabel:rO.alignDataLabel,applyZones:rA,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:rS,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),p(rB,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),p(rB,"remove",t=>{delete t.target.chart.bubbleZExtremes}),p(rB,"update",t=>{let e=t.target.options;(M(e.zMin)||M(e.zMax))&&delete t.target.chart.bubbleZExtremes}),iz.registerSeriesType("bubble",rB);let rz=rB,{seriesTypes:{map:{prototype:{pointClass:{prototype:rR}}}}}=iz;class rN extends rS{isValid(){return"number"==typeof this.z}}S(rN.prototype,{applyOptions:rR.applyOptions,getProjectedBounds:rR.getProjectedBounds});let{seriesTypes:{map:{prototype:rW},mappoint:{prototype:rj}}}=iz;class rG extends rz{constructor(){super(...arguments),this.clearBounds=rW.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){rj.translate.call(this),this.getRadii(),this.translateBubble()}}rG.defaultOptions=H(rz.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"},stickyTracking:!0}),S(rG.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:rW.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:rN,processData:rW.processData,projectPoint:rj.projectPoint,kdAxisArray:["plotX","plotY"],setData:rW.setData,setOptions:rW.setOptions,useMapGeometry:!0,xyFromShape:!0}),iz.registerSeriesType("mapbubble",rG);let{scatter:{prototype:{pointClass:rX}}}=iz.seriesTypes;class rF extends rX{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),h=this.pointPadding??e.pointPadding??0,l={x1:f(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:f(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:f(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:f(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",d=Math.abs(l[s]-l[n]),c=a&&a.lineWidth||0,p=Math.abs(l[s]+l[n])/2,u=a&&a[e];if(M(u)&&u<d){let t=u/2+c/2;l[s]=p-t,l[n]=p+t}h&&(("x"===i&&o.reversed||"y"===i&&!r.reversed)&&(s=n,n=i+"1"),l[s]+=h,l[n]-=h)}return l}haloPath(t){if(!t)return[];let{x:e=0,y:i=0,width:s=0,height:o=0}=this.shapeArgs||{};return[["M",e-t,i-t],["L",e-t,i+o+t],["L",e+s+t,i+o+t],["L",e+s+t,i-t],["Z"]]}isValid(){return 1/0!==this.value&&-1/0!==this.value}}S(rF.prototype,{dataLabelOnNull:!0,moveToTopOnHover:!0,ttBelow:!1});let{doc:rH}=h,{series:rY,seriesTypes:{column:rV,scatter:rU}}=iz,{prototype:{symbols:r$}}=em,{colorFromPoint:rZ,getContext:r_}={colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let s=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>parseFloat(t)??parseInt(t,10));return s[3]=(s[3]??1)*255,M(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?.clearRect?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=rH.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class rK extends rU{constructor(){super(...arguments),this.valueMax=0/0,this.valueMin=0/0,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:h}=o,l={width:a,height:h};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=r_(t),{canvas:h,options:{colsize:d=1,rowsize:c=1},points:p,points:{length:u}}=t,g=i.colorAxis&&i.colorAxis[0];if(h&&a&&g){let{min:g,max:m}=s.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),M=Math.round(b/c/8*8),[w,k]=[[v,v/y,r,"ceil"],[M,M/b,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),C=h.width=v+1,T=C*(h.height=M+1),S=(u-1)/T,P=new Uint8ClampedArray(4*T),A=(t,e)=>4*Math.ceil(C*k(e-f)+w(t-g));t.buildKDTree();for(let t=0;t<T;t++){let e=p[Math.ceil(S*t)],{x:i,y:s}=e;P.set(rZ(e.value,e),A(i,s))}a.putImageData(new ImageData(P,C),0,0),e?e.attr({...l,href:h.toDataURL("image/png",1)}):(t.directTouch=!1,t.image=i.renderer.image(h.toDataURL("image/png",1)).attr(l).add(t.group))}t.isDirtyCanvas=!1}else(e.width!==a||e.height!==h)&&e.attr(l)}else(s.enabled||t._hasPointMarkers)&&(rY.prototype.drawPoints.call(t),t.points.forEach(e=>{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getSymbol(){this.symbol=this.options.marker?.symbol||"rect"}getExtremes(){let{dataMin:t,dataMax:e}=rY.prototype.getExtremes.call(this,this.getColumn("value"));return W(t)&&(this.valueMin=t),W(e)&&(this.valueMax=e),rY.prototype.getExtremes.call(this)}getValidPoints(t,e){return rY.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=t.pointRange??(t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,r$.ellipse=r$.circle,t.marker&&W(t.borderRadius)&&(t.marker.r=t.borderRadius);let e=this.canvas=document.createElement("canvas");e&&(this.context=e?.getContext("webgpu"))}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states?.[e]||{},a=s.states?.[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),h=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-h)/2,width:n,height:h}}return i}pointAttribs(t,e){let i=rY.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t?.options.borderColor||s.borderColor||a.borderColor||r.borderColor,h=t?.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t?.marker?.lineColor||s.marker?.lineColor||n||this.color,i["stroke-width"]=h,e&&"normal"!==e){let o=H(s.states?.[e],s.marker?.states?.[e],t?.options.marker?.states?.[e]||{});i.fill=o.color||tw.parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e?.symbol||"rect",s=r$[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),h=Math.max(Math.abs(r.x2-r.x1),0),l=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker?.symbol||i||"").indexOf("url"),o){let t=Math.abs(h-l);a=Math.min(r.x1,r.x2)+(h<l?0:t/2),n=Math.min(r.y1,r.y2)+(h<l?t/2:0),h=l=Math.min(h,l)}e.hasImage&&(e.marker={width:h,height:l}),e.plotX=e.clientX=(r.x1+r.x2)/2,e.plotY=(r.y1+r.y2)/2,e.shapeType="path",e.shapeArgs=H(!0,{x:a,y:n,width:h,height:l},{d:r$[s](a,n,h,l,{r:W(t)?t:0})})}A(this,"afterTranslate")}}rK.defaultOptions=H(rU.defaultOptions,{animation:!1,borderRadius:0,borderWidth:0,interpolation:!1,nullColor:"var(--highcharts-neutral-color-3)",dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return W(e)?t(e,-1):""},inside:!0,verticalAlign:"middle",crop:!1,overflow:"allow",padding:0},marker:{radius:0,lineColor:void 0,states:{hover:{lineWidthPlus:0},select:{}}},clip:!0,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}<br/>"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),p(rK,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints(),this.options.enableMouseTracking&&this.drawTracker()}),S(rK.prototype,{axisTypes:ov.seriesMembers.axisTypes,colorKey:ov.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:ov.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:rF,specialGroup:"group",trackerGroups:ov.seriesMembers.trackerGroups,alignDataLabel:rV.prototype.alignDataLabel,colorAttribs:ov.seriesMembers.colorAttribs}),ov.compose(rK),iz.registerSeriesType("heatmap",rK),h.ColorMapComposition=ov,h.MapChart=h.MapChart||ok,h.MapNavigation=h.MapNavigation||of,h.MapView=h.MapView||o9,h.Projection=h.Projection||o0,h.mapChart=h.Map=h.MapChart.mapChart,h.maps=h.MapChart.maps,h.geojson=oE.geojson,h.topo2geo=oE.topo2geo,oE.compose(h.Chart),rG.compose(h.Axis,h.Chart,h.Legend),of.compose(ok,h.Pointer,h.SVGRenderer),o9.compose(ok),h.product="Highmaps";let rq=h;return n.default})());