!/**
 * Highmaps JS v13.0.0 (2026-06-11)
 * @module highcharts/modules/map
 * @requires highcharts
 *
 * Highmaps as a plugin for Highcharts or Highcharts Stock.
 *
 * (c) 2011-2026 Highsoft AS
 * Author: Torstein Hønsi
 *
 * A commercial license may be required depending on use,
 * see www.highcharts.com/license
 */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.SVGRenderer,t._Highcharts.Templating,t._Highcharts.Series.types.scatter,t._Highcharts.Point):"function"==typeof define&&define.amd?define("highcharts/modules/map",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.SeriesRegistry,t.SVGElement,t.Chart,t.SVGRenderer,t.Templating,t.Series,["types"],["scatter"],t.Point)}):"object"==typeof exports?exports["highcharts/modules/map"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.SVGRenderer,t._Highcharts.Templating,t._Highcharts.Series.types.scatter,t._Highcharts.Point):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.Chart,t.Highcharts.SVGRenderer,t.Highcharts.Templating,t.Highcharts.Series.types.scatter,t.Highcharts.Point)}("u"<typeof window?this:window,(t,e,i,s,o,r,a,n,l,h)=>(()=>{"use strict";let p;var d,c,u,m,g,b,f,y,x,v,M,w={28:t=>{t.exports=o},260:t=>{t.exports=h},512:t=>{t.exports=s},532:t=>{t.exports=e},540:t=>{t.exports=a},620:t=>{t.exports=i},632:t=>{t.exports=l},944:e=>{e.exports=t},960:t=>{t.exports=r},984:t=>{t.exports=n}},C={};function T(t){var e=C[t];if(void 0!==e)return e.exports;var i=C[t]={exports:{}};return w[t](i,i.exports,T),i.exports}T.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return T.d(e,{a:e}),e},T.d=(t,e)=>{for(var i in e)T.o(e,i)&&!T.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},T.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var L={};T.d(L,{default:()=>eq});var k=T(944),P=T.n(k),A=T(532),j=T.n(A),E=T(620),z=T.n(E);let{parse:S}=z();(d=g||(g={})).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,l=0,h;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t<i;++t)r=o[t],r=(0,k.merge)(r),a.push(r),(e.styledMode||!r.color)&&("category"===s.dataClassColor?(e.styledMode||(n=(h=e.options.colors||[]).length,r.color=h[l]),r.colorIndex=l,++l===n&&(l=0)):r.color=S(s.minColor).tweenTo(S(s.maxColor),i<2?.5:t/(i-1)))},d.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=S(e[t][1])},d.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)},d.toColor=function(t,e){let i,s,o,r,a,n,l=this.dataClasses,h=this.stops;if(l){for(n=l.length;n--;)if(s=(a=l[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=h.length;n--&&!(i>h[n][0]););s=h[n]||h[n+1],i=1-((o=h[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r};let I=g,{parse:N}=z();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=(0,k.splat)(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 l(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 h(){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 p(){this.elem.attr("fill",N(this.start).tweenTo(N(this.end),this.pos),void 0,!0)}function d(){this.elem.attr("stroke",N(this.start).tweenTo(N(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,m,g){var b;let f,y=c.prototype,x=u.prototype,v=g.prototype;y.collectionsWithUpdate.includes("colorAxis")||(e=t,y.collectionsWithUpdate.push("colorAxis"),y.collectionsWithInit.colorAxis=[y.addColorAxis],(0,k.addEvent)(c,"afterCreateAxes",i),f=(b=c).prototype.createAxis,b.prototype.createAxis=function(t,i){if("colorAxis"!==t)return f.apply(this,arguments);let s=new e(this,(0,k.merge)(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}),(0,k.pick)(i.redraw,!0)&&this.redraw(i.animation),s},x.fillSetter=p,x.strokeSetter=d,(0,k.addEvent)(m,"afterGetAllItems",s),(0,k.addEvent)(m,"afterColorizeItem",o),(0,k.addEvent)(m,"afterUpdate",r),(0,k.extend)(v,{optionalAxis:"colorAxis",translateColors:h}),(0,k.extend)(v.pointClass.prototype,{setVisible:l}),(0,k.addEvent)(g,"afterTranslate",a,{order:1}),(0,k.addEvent)(g,"bindAxes",n))},t.pointSetVisible=l}(b||(b={}));let B=b;var O=T(512),D=T.n(O);let{defaultOptions:V}=P(),{series:R}=D();V.colorAxis=(0,k.merge)(V.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 G extends j(){static compose(t,e,i,s){B.compose(G,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,(0,k.isArray)(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=V.colorAxis,s=t.layout||e.layout||i.layout,o=(0,k.merge)("vertical"!==s?{title:{rotation:0}}:{title:{rotation:90,margin:10}},i,t,{showEmpty:!1,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(o),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)||G.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 G&&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=(0,k.pick)(o.itemDistance,10),n=this.horiz,{width:l,height:h}=this.getSize(),p=(0,k.pick)(o.labelPadding,n?16:30);this.setLegendColor();let d=0,c=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?l:h,this.top=0,this.left=0,this.width=l,this.addTitle(!0),this.len=t,this.top=e,this.left=s,this.width=o}if(this.axisTitle){let t=this.axisTitle.getBBox();d=t.height,c=t.width}let u=this.options.title||{},m=this.axisTitle?u.margin??0:0,g=n?d+m: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+g,width:l,height:h}),n?(i.labelWidth=Math.max(l+s+a,c||0),i.labelHeight=h+s+p+d+m):(i.labelWidth=l+s+(r.x??r.distance??0)+(this.maxLabelLength||0)+(c||0)+m,i.labelHeight=Math.max(h+s,d||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=(0,k.pick)(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=R.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}(0,k.defined)(o.minColorValue)&&(0,k.defined)(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||R.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i,s=this.legendItem||{},o=e?.plotX,r=e?.plotY,a=this.pos,n=this.len,l=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:l.color,stroke:l.lineColor,"stroke-width":l.lineWidth})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,{symbol:s}=this.options.marker||{},o=this.top;if((0,k.isNumber)(i)){let t=this.width,r=i-t/2;return s?this.chart.renderer.symbols[s](e,r,t,t):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=(0,k.pick)(o.valueDecimals,-1),a=(0,k.pick)(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,l)=>{let h=o.from,p=o.to,{numberFormatter:d}=i,c=!0;t="",void 0===h?t="< ":void 0===p&&(t="> "),void 0!==h&&(t+=d(h,r)+a),void 0!==h&&void 0!==p&&(t+=" - "),void 0!==p&&(t+=d(p,r)+a),s.push((0,k.extend)({chart:i,name:t,options:{},drawLegendSymbol:R.prototype.drawLegendSymbol,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(l))e.setState(t)},setVisible:function(){this.visible=c=e.visible=!c;let t=[];for(let e of n(l))e.setVisible(c),e.hiddenInDataClass=!c,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,c),t.forEach(t=>{(0,k.fireEvent)(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:(0,k.pick)((0,k.defined)(s)?(0,k.relativeLength)(s,t.chartWidth):void 0,o?.symbolWidth,e?G.defaultLegendLength:12),height:(0,k.pick)((0,k.defined)(i)?(0,k.relativeLength)(i,t.chartHeight):void 0,o?.symbolHeight,e?12:G.defaultLegendLength)}}}G.defaultLegendLength=200,G.keepProps=["legendItem"],(0,k.extend)(G.prototype,I),Array.prototype.push.apply(j().keepProps,G.keepProps);/**
 * @license Highcharts JS v13.0.0 (2026-06-11)
 * @module highcharts/modules/color-axis
 * @requires highcharts
 *
 * ColorAxis module
 *
 * (c) 2012-2026 Highsoft AS
 * Author: Paweł Potaczek
 *
 * A commercial license may be required depending on use,
 * see www.highcharts.com/license
 */let X=P();X.ColorAxis=X.ColorAxis||G,X.ColorAxis.compose(X.Chart,X.Fx,X.Legend,X.Series);let W={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;t=this.normalize(t);let o=(0,k.defined)(t.wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&(0,k.internalClearTimeout)(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&&(0,k.extend)(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&(0,k.pick)(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||((0,k.extend)(e,{onContainerDblClick:s,onContainerMouseWheel:o}),(0,k.wrap)(e,"normalize",r),(0,k.wrap)(e,"zoomOption",a))}}(f||(f={}));let H=f;function Y(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxY=e-t,o.brBoxHeight=s+t}return p.roundedRect(t,e,i,s,o)}function F(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxHeight=s+t}return p.roundedRect(t,e,i,s,o)}let U=function(t){(p=t.prototype.symbols).bottombutton=Y,p.topbutton=F},{setOptions:Z}=P(),{composed:_}=P();function K(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class q{static compose(t,e,i){H.compose(e),U(i),(0,k.pushUnique)(_,"Map.Navigation")&&((0,k.addEvent)(t,"beforeRender",function(){this.mapNavigation=new q(this),this.mapNavigation.update()}),Z(W))}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),K(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=(0,k.merge)(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();!i.renderer.forExport&&(0,k.pick)(r.enableButtons,r.enabled)&&(e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),(0,k.objectEach)(r.buttons,(t,a)=>{let n={padding:(t=(0,k.merge)(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&((0,k.extend)(n,t.theme),n.style=(0,k.merge)(t.theme.style,t.style));let{text:l,width:h=0,height:p=0,padding:d=0}=t,c=i.renderer.button("+"!==l&&"-"!==l&&l||"",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:h,height:p,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",d+3,d+p/2],["L",d+e-3,d+p/2]];"+"===l&&s.push(["M",d+e/2,d+3],["L",d+e/2,d+p-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(c)}if(c.handler=t.onclick,(0,k.addEvent)(c.element,"dblclick",K),s.push(c),(0,k.extend)(t,{width:c.width,height:2*(c.height||0)}),i.hasLoaded)c.align(t,!1,t.alignTo);else{let e=(0,k.addEvent)(i,"load",()=>{c.element&&c.align(t,!1,t.alignTo),e()})}}),i.hasLoaded||(0,k.addEvent)(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;(0,k.pick)(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||(0,k.addEvent)(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),(0,k.pick)(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||(0,k.addEvent)(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&&K(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}var $=T(28),J=T.n($);let{column:{prototype:Q}}=D().seriesTypes;var tt=y||(y={});function te(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(J())(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:""}))}tt.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))}},tt.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return(0,k.defined)(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:Q.pointAttribs},tt.compose=function(t){let e=t.prototype.pointClass;return(0,k.addEvent)(e,"afterSetState",te),t};let ti=y,{deg2rad:ts}=P();(c=x||(x={})).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,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[(0,k.pick)(r?.[0],"50%"),(0,k.pick)(r?.[1],"50%"),(0,k.pick)(h&&h<0?void 0:t.size,"100%"),(0,k.pick)(p&&p<0?void 0:t.innerSize||0,"0%")];for(d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=(0,k.relativeLength)(c,[s,o,a,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),(0,k.isNumber)(n)&&2*n<u[2]&&n>0&&(u[3]=u[2]-2*n),(0,k.fireEvent)(this,"afterGetCenter",{positions:u}),u},c.getStartAndEndRadians=function(t,e){let i=(0,k.isNumber)(t)?t:0,s=(0,k.isNumber)(e)&&e>i&&e-i<360?e:i+360;return{start:ts*(i+-90),end:ts*(s+-90)}};let to=x,{setLength:tr,splice:ta}={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}}},tn=class{constructor(t={}){this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||(0,k.uniqueKey)(),this.rowCount=0,this.versionTag=(0,k.uniqueKey)();let e=0;(0,k.objectEach)(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,(0,k.objectEach)(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=tr(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;(0,k.objectEach)(this.columns,(s,o)=>{this.columns[o]=ta(s,t,e).array,i=s.length}),this.rowCount=i}(0,k.fireEvent)(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=(0,k.uniqueKey)()}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;(0,k.objectEach)(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||((0,k.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,k.uniqueKey)())}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));(0,k.objectEach)(r,(s,o)=>{s&&(i?s=ta(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||((0,k.fireEvent)(this,"afterSetRows",{rowIndex:e}),this.versionTag=(0,k.uniqueKey)())}getModified(){return this.modified||this}};var tl=T(960),th=T.n(tl),tp=T(540),td=T.n(tp);let{getOptions:tc}=P();class tu extends th(){init(t,e){let i=tc().credits,s=(0,k.merge)({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:(0,k.pick)(i.mapText,' \xa9 <a href="{geojson.copyrightUrl}">{geojson.copyrightShort}</a>'),mapTextFull:(0,k.pick)(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&((0,k.isNumber)(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,(0,k.isNumber)(e)&&(0,k.isNumber)(i)?this.mapView.projection.inverse([e,i]):void 0,(0,k.isNumber)(s)&&(0,k.isNumber)(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)}}(u=tu||(tu={})).maps={},u.mapChart=function(t,e,i){let s=new u(t,e,i);return s.promise||s},u.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,td().prototype.pathToSegments(e)};let tm=tu,tg={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:tb}=tg,tf=D().seriesTypes.scatter.prototype.pointClass;class ty extends tf{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?(0,k.extend)(o,{...i,name:o.name??i.name}):-1!==s.pointArrayMap.indexOf("value")&&(o.value=o.value||null)}return o}getProjectedBounds(t){let e=tb(ty.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&&(0,k.isNumber)(o)&&(0,k.isNumber)(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)*(0,k.pick)(this.middleX,(0,k.isNumber)(t)?t:.5);let o=(0,k.pick)(this.middleY,(0,k.isNumber)(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){(0,k.internalClearTimeout)(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=(0,k.isNumber)(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)}}}(0,k.extend)(ty.prototype,{dataLabelOnNull:ti.pointMembers.dataLabelOnNull,moveToTopOnHover:ti.pointMembers.moveToTopOnHover,isValid:ti.pointMembers.isValid});let tx={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"}};var tv=T(984),tM=T.n(tv);let{win:tw}=P(),{format:tC}=tM();!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||tw.proj4;if(!i)return void(0,k.error)(21,!1,this);let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:p=0}=e,d=i(e.crs,[t.lon,t.lat]),c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=e.rotation?[d[0]*c+d[1]*u,-d[0]*u+d[1]*c]:d;return{x:((m[0]-n)*a+l)*r+s,y:-(((h-m[1])*a+p)*r-o)}}function o(t,e){let i=this.options.chart.proj4||tw.proj4;if(!i)return void(0,k.error)(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:l=0,yoffset:h=0,ypan:p=0}=e,d={x:((t.x-s)/r-l)/a+n,y:((t.y-o)/r+p)/a+h},c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=i(e.crs,"WGS84",e.rotation?{x:d.x*c+-(d.y*u),y:d.x*u+d.y*c}:d);return{lat:m.y,lon:m.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,l=r.length;t<l;++t){let l=r[t];s.push(e=[]),i=0,o=0;for(let t=0,s=l.length;t<s;++t)e.push([(i+=l[t][0])*a[0]+n[0],(o+=l[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=(0,k.merge)(!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,(0,k.wrap)(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,l=r.coordinates,h=o.properties;if(("map"===e||"mapbubble"===e)&&("Polygon"===n||"MultiPolygon"===n)||"mapline"===e&&("LineString"===n||"MultiLineString"===n)?l.length&&(i={geometry:{coordinates:l,type:n}}):"mappoint"===e&&"Point"===n&&l.length&&(i={geometry:{coordinates:l,type:n}}),i){let t=h&&(h.name||h.NAME),e=h&&h.lon,o=h&&h.lat;s.push((0,k.extend)(i,{lat:"number"==typeof o?o:void 0,lon:"number"==typeof e?e:void 0,name:"string"==typeof t?t:void 0,properties:h}))}}return i&&o.copyrightShort&&(i.chart.mapCredits=tC(i.chart.options.credits?.mapText,{geojson:o}),i.chart.mapCreditsFull=tC(i.chart.options.credits?.mapTextFull,{geojson:o})),s},t.topo2geo=r}(v||(v={}));let tT=v;(m=M||(M={})).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}},m.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},m.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},m.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],[l,h]=i[r];n>e!=h>e&&t<(l-s)*(e-n)/(h-n)+s&&(a=!a)}return a};let tL=M;function tk(t,e,i=!0){let s=e[e.length-1],o,r,a,n=t;for(let t=0;t<e.length;t++){let l=n;o=e[t],n=[],r=i?l[l.length-1]:l[0];for(let t=0;t<l.length;t++)tP(s,o,a=l[t])?(tP(s,o,r)||n.push(tA(s,o,r,a)),n.push(a)):tP(s,o,r)&&n.push(tA(s,o,r,a)),r=a;s=o}return n}function tP(t,e,i){return(e[0]-t[0])*(i[1]-t[1])>(e[1]-t[1])*(i[0]-t[0])}function tA(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],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(a*r[0]-n*o[0])*l,(a*r[1]-n*o[1])*l];return h.isIntersection=!0,h}let tj=Math.sign||(t=>0===t?0:t>0?1:-1),tE=Math.PI/180,tz=Math.PI/2,tS=t=>Math.tan((tz+t)/2),tI=class{constructor(t){const e=(t.parallels||[]).map(t=>t*tE),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(tS(s)/tS(i));1e-10>Math.abs(r)&&(r=1e-10*(tj(r)||1)),this.n=r,this.c=o*Math.pow(tS(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*tE,r=t[1]*tE;e>0?r<-tz+1e-6&&(r=-tz+1e-6):r>tz-1e-6&&(r=tz-1e-6);let a=e/Math.pow(tS(r),i),n=a*Math.sin(i*o)*63.78137,l=(e-a*Math.cos(i*o))*63.78137,h=[n,l];return s&&(n<s.x1||n>s.x2||l<s.y1||l>s.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=tj(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*tj(o);return o*i<0&&(a-=Math.PI*tj(s)*tj(o)),[a/i/tE,(2*Math.atan(Math.pow(e/r,1/i))-tz)/tE]}},tN=Math.sqrt(3)/2,tB=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(tN*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(tN*(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,l;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-=l=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(l)));++t);a=(r=o*o)*r*r;let h=s*tN*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),p=s*Math.asin(Math.sin(o)/tN);return Math.abs(h)>180?[NaN,NaN]:[h,p]}},tO=Math.PI/4,tD=Math.PI/180,tV=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*tD*63.78137,79.7267125*Math.log(Math.tan(tO+.4*t[1]*tD))]}inverse(t){return[t[0]/63.78137/tD,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-tO)/tD]}},tR=Math.PI/180,tG=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]*tR,s=[Math.cos(i)*Math.sin(e*tR)*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))/tR,Math.asin(s&&i*r/s)/tR]}},tX=Math.PI/180,tW=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]*tX),i=[63.78137*t[0]*tX,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*tX),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/tX]}},{clipLineString:tH,clipPolygon:tY}={clipLineString:function(t,e){let i=[],s=tk(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:tk},tF=2*Math.PI/360,tU=t=>(t<-180&&(t+=360),t>180&&(t-=360),t),tZ=t=>(1-Math.cos(t))/2;class t_{static add(t,e){t_.registry[t]=e}static distance(t,e){let i,s,o,r,a,{atan2:n,sqrt:l}=Math,h=(i=Math.cos,s=t[1]*tF,o=t[0]*tF,r=e[1]*tF,a=e[0]*tF,tZ(r-s)+i(s)*i(r)*tZ(a-o));return 6371e3*(2*n(l(h),l(1-h)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,l=t_.distance,h=t[1]*tF,p=t[0]*tF,d=e[1]*tF,c=e[0]*tF,u=r(h)*r(p),m=r(d)*r(c),g=r(h)*a(p),b=r(d)*a(c),f=a(h),y=a(d),x=l(t,e),v=x/6371e3,M=a(v),w=Math.round(x/s),C=[];if(i&&C.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*m,r=t*g+i*b,l=o(t*f+i*y,n(s*s+r*r)),h=o(r,s);C.push([h/tF,l/tF])}}return i&&C.push(e),C}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=t_.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?t_.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]*tF,i=(t[1]||0)*tF,s=(t[2]||0)*tF,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]*tF+e,s=t[1]*tF,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*o+h*r;return[Math.atan2(p*a-c*n,h*o-d*r)/tF,Math.asin(c*a+p*n)/tF]},inverse:t=>{let i=t[0]*tF,s=t[1]*tF,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*a-p*n;return[(Math.atan2(p*a+d*n,h*o+c*r)-e)/tF,Math.asin(c*o-h*r)/tF]}}}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=(0,k.clamp)((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],(0,k.erase)(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=tU(180+1e-6*s[e].direction),a=tU(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...t_.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...t_.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=tU(180+1e-6*e),n=tU(180-1e-6*e),l=t_.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...t_.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[tU(180+1e-6*s[e].direction),s[e].lat]);r.unshift([tU(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,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,p=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let d=t=>{let s=t.map(t=>{if(l){h&&(t=h.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&&(t_.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let h=!1,d=!1,c=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,m=!1,g=t.map(t=>{let e=p.forward(t);return e.outside?u=!0:m=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(l){if(a&&g.push(g[0]),u){if(!m)return;if(e){if(a)g=tY(g,e);else if(i)return void tH(g,e).forEach(t=>{h=!1,t.forEach(c)})}}g.forEach(c)}else for(let e=0;e<g.length;e++){let i=t[e],r=g[e];r.outside?d=!0:(a&&!s&&(s=i,t.push(i),g.push(r)),d&&o&&(a&&n?t_.geodesic(o,i).forEach(t=>c(p.forward(t))):h=!1),c(r),o=i,d=!1)}})};return"LineString"===t.type?d(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>d(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>d(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>d(t))}),r.length&&r.push(["Z"])),r}}t_.registry={EqualEarth:tB,LambertConformalConic:tI,Miller:tV,Orthographic:tG,WebMercator:tW};let{composed:tK}=P(),{pointInPolygon:tq}=tL,{topo2geo:t$}=tT,{boundsFromPath:tJ}=tg,tQ={};function t0(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 t1(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class t2{static compose(t){(0,k.pushUnique)(tK,"MapView")&&(tQ=t.maps,(0,k.addEvent)(t,"afterInit",function(){this.mapView=new t2(this,this.options.mapView)},{order:0}),(0,k.addEvent)(t,"addSeriesAsDrilldown",t1),(0,k.addEvent)(t,"afterDrillUp",t1))}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),(0,k.merge)(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=(0,k.merge)(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 t3||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};const i=(0,k.merge)(tx,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=t2.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new t_(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push((0,k.addEvent)(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&(0,k.isNumber)(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&(0,k.merge)(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new t3(this,(0,k.merge)(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=(0,k.pick)(e,t?0:this.options.padding),a=this.getField(!1),n=(0,k.isArray)(r)?r:[r,r,r,r];this.padding=[(0,k.relativeLength)(n[0],a.height),(0,k.relativeLength)(n[1],a.width),(0,k.relativeLength)(n[2],a.height),(0,k.relativeLength)(n[3],a.width)],this.playingField=this.getField();let l=t0(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,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((0,k.isString)(t))return tQ[t]&&"Topology"===tQ[t].type?t$(tQ[t]):tQ[t];if((0,k.isObject)(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return t$(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=tJ(t.path(i));return this.fitToGeometryCache}return this.projection.bounds||t2.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,l=t+i/2-o[0]*a,h=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:l,translateY:h}}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&&tq(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&tq({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&&tq(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&&tq(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&&t2.compositeBounds(o);(0,k.fireEvent)(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)),(0,k.isNumber)(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}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,p=l.y,d=l.x,c=n.y;d-o<s?t[0]=h[0]:o<e&&d<e+s?t[0]+=Math.max(o-e,d-s-e)/a:d>e+s&&o>e&&(t[0]+=Math.min(d-s-e,o-e)/a),c-p<r?t[1]=h[1]:p<i&&c<i+r?t[1]-=Math.max(p-i,c-r-i)/a:c>i+r&&p>i&&(t[1]-=Math.min(c-r-i,p-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()}(0,k.fireEvent)(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,l=o.touches,{mouseDownX:h,mouseDownY:p}=s,d=0;if(a?.length===1?(h=a[0].chartX,p=a[0].chartY):a?.length===2&&(h=(a[0].chartX+a[1].chartX)/2,p=(a[0].chartY+a[1].chartY)/2),l?.length===2&&r&&(d=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(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),(0,k.isNumber)(h)&&(0,k.isNumber)(p)){let r=`${h},${p}`,{chartX:a,chartY:c}=o.originalEvent;l?.length===2&&(a=(l[0].chartX+l[1].chartX)/2,c=(l[0].chartY+l[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,m=u&&t0(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*m){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-a)*t-i[0],o=(0,k.clamp)(-i[1]-(p-c)*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((0,k.isNumber)(a)&&(0,k.isNumber)(c)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-a)/e,t[1]-(p-c)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(d,s,void 0,!1)}o.preventDefault()}};(0,k.addEvent)(s,"pan",o),(0,k.addEvent)(s,"touchpan",o),(0,k.addEvent)(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&&t_.toString(s)!==t_.toString(this.options.projection),r=!1;(0,k.merge)(!0,this.userOptions,t),(0,k.merge)(!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 t_(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!(0,k.isNumber)(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||(0,k.isNumber)(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,l,h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,l=r[1]+h/s}if("number"==typeof n&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-n,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class t3 extends t2{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=(0,k.merge)({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){const e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=tJ(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],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if((0,k.isNumber)(a)&&(0,k.isNumber)(l))return{x:a,y:l,width:n-a,height:h-l}}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()||(0,k.merge)(t.plotBox,{x:0,y:0});o=o.map(t=>[(0,k.relativeLength)(`${t[0]}%`,s.width,s.x),(0,k.relativeLength)(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return t2.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&&tq(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,l]=s;return"percent"===i.units&&(n=t.plotLeft+(0,k.relativeLength)(`${n}%`,a.width,a.x),l=t.plotTop+(0,k.relativeLength)(`${l}%`,a.height,a.y)),n=(0,k.crisp)(n,r),l=(0,k.crisp)(l,r),e.push(0===o?["M",n,l]:["L",n,l]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{animObject:t6,stop:t8}=P(),{noop:t7}=P(),{splitPath:t9}=tm,{column:t4,scatter:t5}=D().seriesTypes;class et extends t5{constructor(){super(...arguments),this.tupleKey="hc-key"}animate(t){let{chart:e,group:i}=this,s=t6(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)}),t4.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=(0,k.isNumber)(i["stroke-width"])&&!(0,k.isNumber)(s["stroke-width"]),l=(0,k.isNumber)(s["stroke-width"])&&!(0,k.isNumber)(i["stroke-width"]);if(n||l){let o=(0,k.pick)(t.getStrokeWidth(t.options),1)/(e.mapView?.getScale()||1);n&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?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=(0,k.pick)(this.getStrokeWidth(this.options),1),l=a.scaleX,h=a.scaleY>0?1:-1,p=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 d=s+(l-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:d,scaleY:d*h,"stroke-width":n/d}),p(d)},d=(0,k.merge)(t6(r.globalAnimation)),c=d.step;d.step=function(){c&&c.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},d,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),(0,k.fireEvent)(this,"mapZoomComplete")}).bind(this))}else t8(i),i.attr((0,k.merge)(a,{"stroke-width":n/l})),p(l)}),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=t9(s.path):(0,k.isArray)(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=(0,k.pick)(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&(0,k.isNumber)(e)&&(0,k.isNumber)(o)){let r=(0,k.find)(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=t2.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):t4.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t?.options||{});if(e){let i=(0,k.merge)(this.options.states?.[e],t?.options.states?.[e]||{}),s=this.getStrokeWidth(i);(0,k.defined)(s)&&(r=s),o.stroke=i.borderColor??t?.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&(0,k.isNumber)(a)&&(r=a/i.getScale()),t?.visible===!1&&(o.fill=this.options.nullColor),t?.isNull&&this.options.nullInteraction&&(o.opacity=1),(0,k.defined)(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=[],h={},p=this.chart.mapView,d=p&&((0,k.isObject)(s.mapData,!0)?p.getGeoMap(s.mapData):p.geoMap),c=r.mapTransforms=a.mapTransforms||d?.["hc-transform"]||r.mapTransforms,u=new tn;if(this.hasProcessedDataTable=!0,c&&(0,k.objectEach)(c,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),(0,k.isArray)(s.mapData)?i=s.mapData:d?.type==="FeatureCollection"&&(this.mapTitle=d.title,i=P().geojson(d,this.type,this)),Object.entries(o.columns).forEach(([t,e])=>{u.setColumn(t,e)}),"_i"===n[0]&&u.setColumn("_i",Array.from({length:u.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]]),h[t[n[0]]]=t;if(this.mapMap=h,n[1]){let t=n[1];for(let e=0;e<u.rowCount;e++){let i="_i"===t?e:(0,k.getNestedProperty)(t,u.getRowObject(e));h[i]&&l.push(h[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]]+"|")||u.setRow((0,k.merge)(e,{value:null}))})}}this.dataTable.modified=u}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=(0,k.splat)(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||(0,k.isNumber)(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=(0,k.isNumber)(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&(0,k.isNumber)(o.bounds.midX)&&(0,k.isNumber)(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:ty.getProjectedPath(o,i)}),!o.hiddenInDataClass&&(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}(0,k.fireEvent)(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)}}et.defaultOptions=(0,k.merge)(t5.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,distance:0,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return(0,k.isNumber)(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"}),(0,k.extend)(et.prototype,{type:"map",axisTypes:ti.seriesMembers.axisTypes,colorAttribs:ti.seriesMembers.colorAttribs,colorKey:ti.seriesMembers.colorKey,directTouch:!0,drawDataLabels:t7,drawGraph:t7,forceDL:!0,getCenter:to.getCenter,getExtremesFromAll:!0,getSymbol:t7,isCartesian:!1,parallelArrays:ti.seriesMembers.parallelArrays,pointArrayMap:ti.seriesMembers.pointArrayMap,pointClass:ty,preserveAspectRatio:!0,searchPoint:t7,trackerGroups:ti.seriesMembers.trackerGroups,useMapGeometry:!0}),ti.compose(et),D().registerSeriesType("map",et);let ee=et;class ei extends ee{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}ei.defaultOptions=(0,k.merge)(ee.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),(0,k.extend)(ei.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),D().registerSeriesType("mapline",ei);let{scatter:es}=D().seriesTypes;class eo extends es.prototype.pointClass{isValid(){return!!(this.options.geometry||(0,k.isNumber)(this.x)&&(0,k.isNumber)(this.y)||(0,k.isNumber)(this.options.lon)&&(0,k.isNumber)(this.options.lat))}}T(632);let{noop:er}=P(),{map:ea,scatter:en}=D().seriesTypes;class el extends en{constructor(){super(...arguments),this.clearBounds=ea.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((0,k.isNumber)(s)&&(0,k.isNumber)(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=(0,k.isNumber)(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,a=l.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&(0,k.isNumber)(r)&&(0,k.isNumber)(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),(0,k.isNumber)(r)&&(0,k.isNumber)(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})}(0,k.fireEvent)(this,"afterTranslate")}}el.defaultOptions=(0,k.merge)(en.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}"}}),td().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 l=n?s/3:s/2;return[["M",r,a],["C",r,a,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,a,r,a],["Z"]]},(0,k.extend)(el.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:eo,searchPoint:er,useMapGeometry:!0}),D().registerSeriesType("mappoint",el);let eh={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:ep}=P(),ed=class{constructor(t,e){this.setState=ep,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=(0,k.pick)(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!(0,k.isNumber)(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}(0,k.stableSort)(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=a-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+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,l=this.chart.styledMode;t.forEach(function(h,p){l||(o.stroke=(0,k.pick)(h.borderColor,e.borderColor,i.color),o.fill=h.color||e.color,o.fill||(o.fill=i.color,o["fill-opacity"]=n??1),r.stroke=(0,k.pick)(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=(0,k.merge)(t[p],{center:t[0].radius-t[p].radius+s}),l||(0,k.merge)(!0,t[p],{bubbleAttribs:(0,k.merge)(o),connectorAttribs:(0,k.merge)(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,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,m=i.options.rtl,g=s.borderWidth,b=s.connectorWidth,f=e.radius||0,y=p-d-g/2+b/2,x=(y%1?1:.5)-(b%2?0:.5),v=n.styledMode,M=m||"left"===u?-c:c;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(f,p+x,d).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",f,y],["L",f+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),C={x:f+M+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(C),h.push(w),w.placed=!0,w.alignAttr=C}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?tM().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(k.isNumber)).length&&(r=(0,k.pick)(t.options.zMin,Math.min(r,Math.max((0,k.arrayMin)(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),a=(0,k.pick)(t.options.zMax,Math.max(a,(0,k.arrayMax)(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]=(0,k.merge)(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],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(a,r),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-c>=r||!s&&r-c>=a)&&(c=p)),[h,Math.ceil(c)]}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:ec}=P(),{composed:eu}=P();function em(t,e,i){let s,o,r,a=this.legend,n=eg(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(),(0,k.objectEach)(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 eg(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 eb(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=eg(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 ed(s,this),this.bubbleLegend.addToLegend(t.allItems))}function ef(){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,l=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];l<=n;l++)e[l].itemHeight>o.height&&(o.height=e[l].itemHeight);o.step=n}return i}(this),s,o,r,a,n=0;t.forEach((t,l)=>{(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})),l>i[n].step&&n++,a.group.attr({translateY:Math.round(o+i[n].height/2)}),a.y=o+i[n].height/2)})}}function ey(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=eg(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}let ex=function(t,e){(0,k.pushUnique)(eu,"Series.BubbleLegend")&&(ec({legend:{bubbleLegend:eh}}),(0,k.wrap)(t.prototype,"drawChartBox",em),(0,k.addEvent)(e,"afterGetAllItems",eb),(0,k.addEvent)(e,"afterRender",ef),(0,k.addEvent)(e,"itemClick",ey))};var ev=T(260),eM=T.n(ev);let{seriesTypes:{scatter:{prototype:{pointClass:ew}}}}=D();class eC extends ew{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 eM().prototype.haloPath.call(this,e)}}(0,k.extend)(eC.prototype,{ttBelow:!1});let eT=eC,{composed:eL,noop:ek}=P(),{series:eP,seriesTypes:{column:{prototype:eA},scatter:ej}}=D();function eE(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!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((0,k.isNumber)(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)}}}}),l&&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===(0,k.pick)(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function ez(){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 eS extends ej{static compose(t,e,i){ex(e,i),(0,k.pushUnique)(eL,"Series.Bubble")&&((0,k.addEvent)(t,"foundExtremes",eE),(0,k.addEvent)(t,"afterRender",ez))}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:l}=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((0,k.pick)(e,o.zMin),o.zMin),i=Math.max((0,k.pick)(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,l,r,e&&e[o]));this.radii=i}getRadius(t,e,i,s,o,r){let a=this.options,n="width"!==a.sizeBy,l=a.zThreshold,h=e-t,p=.5;if(null===r||null===o)return null;if((0,k.isNumber)(o)){if(a.sizeByAbsoluteValue&&(o=Math.abs(o-l),e=h=Math.max(e-l,Math.abs(t-l)),t=0),o<t)return i/2-1;h>0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(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?(0,k.extend)(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=eP.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)),(0,k.isNumber)(n)&&(s.marker=(0,k.extend)(s.marker,{radius:n,width:2*n,height:2*n})),(0,k.isNumber)(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((0,k.pick)(this.options.minSize,8)),s=Math.max(e((0,k.pick)(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(k.isNumber);if(e.length){let i=(0,k.pick)(t.zMin,(0,k.clamp)((0,k.arrayMin)(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=(0,k.pick)(t.zMax,(0,k.arrayMax)(e));if((0,k.isNumber)(i)&&(0,k.isNumber)(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=ek,o=ek){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)}}eS.defaultOptions=(0,k.merge)(ej.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return(0,k.isNumber)(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"}),(0,k.extend)(eS.prototype,{alignDataLabel:eA.alignDataLabel,applyZones:ek,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:eT,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),(0,k.addEvent)(eS,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),(0,k.addEvent)(eS,"remove",t=>{delete t.target.chart.bubbleZExtremes}),(0,k.addEvent)(eS,"update",t=>{let e=t.target.options;((0,k.defined)(e.zMin)||(0,k.defined)(e.zMax))&&delete t.target.chart.bubbleZExtremes}),D().registerSeriesType("bubble",eS);let eI=eS,{seriesTypes:{map:{prototype:{pointClass:{prototype:eN}}}}}=D();class eB extends eT{isValid(){return"number"==typeof this.z}}(0,k.extend)(eB.prototype,{applyOptions:eN.applyOptions,getProjectedBounds:eN.getProjectedBounds});let{seriesTypes:{map:{prototype:eO},mappoint:{prototype:eD}}}=D();class eV extends eI{constructor(){super(...arguments),this.clearBounds=eO.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){eD.translate.call(this),this.getRadii(),this.translateBubble()}}eV.defaultOptions=(0,k.merge)(eI.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"},stickyTracking:!0}),(0,k.extend)(eV.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:eO.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:eB,processData:eO.processData,projectPoint:eD.projectPoint,kdAxisArray:["plotX","plotY"],setData:eO.setData,setOptions:eO.setOptions,useMapGeometry:!0,xyFromShape:!0}),D().registerSeriesType("mapbubble",eV);let{scatter:{prototype:{pointClass:eR}}}=D().seriesTypes;class eG extends eR{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(),l=(0,k.pick)(this.pointPadding,e.pointPadding,0),h={x1:(0,k.clamp)(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:(0,k.clamp)(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:(0,k.clamp)(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:(0,k.clamp)(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",p=Math.abs(h[s]-h[n]),d=a&&a.lineWidth||0,c=Math.abs(h[s]+h[n])/2,u=a&&a[e];if((0,k.defined)(u)&&u<p){let t=u/2+d/2;h[s]=c-t,h[n]=c+t}l&&(("x"===i&&o.reversed||"y"===i&&!r.reversed)&&(s=n,n=i+"1"),h[s]+=l,h[n]-=l)}return h}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}}(0,k.extend)(eG.prototype,{dataLabelOnNull:!0,moveToTopOnHover:!0,ttBelow:!1});let{doc:eX}=P(),{series:eW,seriesTypes:{column:eH,scatter:eY}}=D(),{prototype:{symbols:eF}}=td(),{colorFromPoint:eU,getContext:eZ}={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=>(0,k.pick)(parseFloat(t),parseInt(t,10)));return s[3]=255*(0,k.pick)(s[3],1),(0,k.defined)(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=eX.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class e_ extends eY{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:l}=o,h={width:a,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=eZ(t),{canvas:l,options:{colsize:p=1,rowsize:d=1},points:c,points:{length:u}}=t,m=i.colorAxis&&i.colorAxis[0];if(l&&a&&m){let{min:m,max:g}=s.getExtremes(),{min:b,max:f}=o.getExtremes(),y=g-m,x=f-b,v=Math.round(y/p/8*8),M=Math.round(x/d/8*8),[w,C]=[[v,v/y,r,"ceil"],[M,M/x,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),T=l.width=v+1,L=T*(l.height=M+1),k=(u-1)/L,P=new Uint8ClampedArray(4*L),A=(t,e)=>4*Math.ceil(T*C(e-b)+w(t-m));t.buildKDTree();for(let t=0;t<L;t++){let e=c[Math.ceil(k*t)],{x:i,y:s}=e;P.set(eU(e.value,e),A(i,s))}a.putImageData(new ImageData(P,T),0,0),e?e.attr({...h,href:l.toDataURL("image/png",1)}):(t.directTouch=!1,t.image=i.renderer.image(l.toDataURL("image/png",1)).attr(h).add(t.group))}t.isDirtyCanvas=!1}else(e.width!==a||e.height!==l)&&e.attr(h)}else(s.enabled||t._hasPointMarkers)&&(eW.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}=eW.prototype.getExtremes.call(this,this.getColumn("value"));return(0,k.isNumber)(t)&&(this.valueMin=t),(0,k.isNumber)(e)&&(this.valueMax=e),eW.prototype.getExtremes.call(this)}getValidPoints(t,e){return eW.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=(0,k.pick)(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,eF.ellipse=eF.circle,t.marker&&(0,k.isNumber)(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),l=(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)-l)/2,width:n,height:l}}return i}pointAttribs(t,e){let i=eW.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,l=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"]=l,e&&"normal"!==e){let o=(0,k.merge)(s.states?.[e],s.marker?.states?.[e],t?.options.marker?.states?.[e]||{});i.fill=o.color||z().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=eF[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),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker?.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);a=Math.min(r.x1,r.x2)+(l<h?0:t/2),n=Math.min(r.y1,r.y2)+(l<h?t/2:0),l=h=Math.min(l,h)}e.hasImage&&(e.marker={width:l,height:h}),e.plotX=e.clientX=(r.x1+r.x2)/2,e.plotY=(r.y1+r.y2)/2,e.shapeType="path",e.shapeArgs=(0,k.merge)(!0,{x:a,y:n,width:l,height:h},{d:eF[s](a,n,l,h,{r:(0,k.isNumber)(t)?t:0})})}(0,k.fireEvent)(this,"afterTranslate")}}e_.defaultOptions=(0,k.merge)(eY.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(0,k.isNumber)(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"}),(0,k.addEvent)(e_,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints(),this.options.enableMouseTracking&&this.drawTracker()}),(0,k.extend)(e_.prototype,{axisTypes:ti.seriesMembers.axisTypes,colorKey:ti.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:ti.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:eG,specialGroup:"group",trackerGroups:ti.seriesMembers.trackerGroups,alignDataLabel:eH.prototype.alignDataLabel,colorAttribs:ti.seriesMembers.colorAttribs}),ti.compose(e_),D().registerSeriesType("heatmap",e_);let eK=P();eK.ColorMapComposition=ti,eK.MapChart=eK.MapChart||tm,eK.MapNavigation=eK.MapNavigation||q,eK.MapView=eK.MapView||t2,eK.Projection=eK.Projection||t_,eK.mapChart=eK.Map=eK.MapChart.mapChart,eK.maps=eK.MapChart.maps,eK.geojson=tT.geojson,eK.topo2geo=tT.topo2geo,tT.compose(eK.Chart),eV.compose(eK.Axis,eK.Chart,eK.Legend),q.compose(tm,eK.Pointer,eK.SVGRenderer),t2.compose(tm);let eq=P();return L.default})());