(function(n){"object"==typeof module&&module.exports?(n["default"]=n,module.exports=n):"function"==typeof define&&define.amd?define("highcharts/highcharts-more",["highcharts"],function(t){return n(t),n.Highcharts=t,n}):n("undefined"!=typeof Highcharts?Highcharts:void 0)})(function(n){function t(n,t,i,r){n.hasOwnProperty(t)||(n[t]=r.apply(null,i))}n=n?n._modules:{};t(n,"parts-more/Pane.js",[n["parts/Chart.js"],n["parts/Globals.js"],n["parts/Pointer.js"],n["parts/Utilities.js"]],function(n,t,i,r){function f(n,t,i){return Math.sqrt(Math.pow(n-i[0],2)+Math.pow(t-i[1],2))<i[2]/2}var e=r.addEvent,o=r.extend,u=r.merge,s=r.pick,h=r.splat,c=t.CenteredSeriesMixin;return n.prototype.collectionsWithUpdate.push("pane"),r=function(){function n(n,t){this.options=this.chart=this.center=this.background=void 0;this.coll="pane";this.defaultOptions={center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0};this.defaultBackgroundOptions={shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"};this.init(n,t)}return n.prototype.init=function(n,t){this.chart=t;this.background=[];t.pane.push(this);this.setOptions(n)},n.prototype.setOptions=function(n){this.options=u(this.defaultOptions,this.chart.angular?{background:{}}:void 0,n)},n.prototype.render=function(){var i=this.options,t=this.options.background,n=this.chart.renderer;if(this.group||(this.group=n.g("pane-group").attr({zIndex:i.zIndex||0}).add()),this.updateCenter(),t)for(t=h(t),i=Math.max(t.length,this.background.length||0),n=0;n<i;n++)t[n]&&this.axis?this.renderBackground(u(this.defaultBackgroundOptions,t[n]),n):this.background[n]&&(this.background[n]=this.background[n].destroy(),this.background.splice(n,1))},n.prototype.renderBackground=function(n,t){var i="animate",r={"class":"highcharts-pane "+(n.className||"")};this.chart.styledMode||o(r,{fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth});this.background[t]||(this.background[t]=this.chart.renderer.path().add(this.group),i="attr");this.background[t][i]({d:this.axis.getPlotBandPath(n.from,n.to,n)}).attr(r)},n.prototype.updateCenter=function(n){this.center=(n||this.axis||{}).center=c.getCenter.call(this)},n.prototype.update=function(n,t){u(!0,this.options,n);u(!0,this.chart.options.pane,n);this.setOptions(this.options);this.render();this.chart.axes.forEach(function(n){n.pane===this&&(n.pane=null,n.update({},t))},this)},n}(),t.Chart.prototype.getHoverPane=function(n){var t=this,i;return n&&t.pane.forEach(function(r){var u=n.chartX-t.plotLeft,e=n.chartY-t.plotTop;f(t.inverted?e:u,t.inverted?u:e,r.center)&&(i=r)}),i},e(n,"afterIsInsidePlot",function(n){this.polar&&(n.isInsidePlot=this.pane.some(function(t){return f(n.x,n.y,t.center)}))}),e(i,"beforeGetHoverData",function(n){var t=this.chart;t.polar&&(t.hoverPane=t.getHoverPane(n),n.filter=function(i){return i.visible&&!(!n.shared&&i.directTouch)&&s(i.options.enableMouseTracking,!0)&&(!t.hoverPane||i.xAxis.pane===t.hoverPane)})}),e(i,"afterGetHoverData",function(n){var t=this.chart;n.hoverPoint&&n.hoverPoint.plotX&&n.hoverPoint.plotY&&t.hoverPane&&!f(n.hoverPoint.plotX,n.hoverPoint.plotY,t.hoverPane.center)&&(n.hoverPoint=void 0)}),t.Pane=r,t.Pane});t(n,"parts-more/HiddenAxis.js",[],function(){return function(){function n(){}return n.init=function(n){n.getOffset=function(){};n.redraw=function(){this.isDirty=!1};n.render=function(){this.isDirty=!1};n.createLabelCollector=function(){return function(){}};n.setScale=function(){};n.setCategories=function(){};n.setTitle=function(){};n.isHidden=!0},n}()});t(n,"parts-more/RadialAxis.js",[n["parts/Axis.js"],n["parts/Tick.js"],n["parts-more/HiddenAxis.js"],n["parts/Utilities.js"]],function(n,t,i,r){var f=r.addEvent,s=r.correctFloat,e=r.defined,h=r.extend,l=r.fireEvent,c=r.merge,u=r.pick,o=r.relativeLength,a=r.wrap;return r=function(){function t(){}return t.init=function(t){var i=n.prototype;t.setOptions=function(n){n=this.options=c(t.constructor.defaultOptions,this.defaultPolarOptions,n);n.plotBands||(n.plotBands=[]);l(this,"afterSetOptions")};t.getOffset=function(){i.getOffset.call(this);this.chart.axisOffset[this.side]=0};t.getLinePath=function(n,t,i){n=this.pane.center;var f=this.chart,r=u(t,n[2]/2-this.offset);return"undefined"==typeof i&&(i=this.horiz?0:this.center&&-this.center[3]/2),i&&(r+=i),this.isCircular||"undefined"!=typeof t?(t=this.chart.renderer.symbols.arc(this.left+n[0],this.top+n[1],r,r,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),t.xBounds=[this.left+n[0]],t.yBounds=[this.top+n[1]-r]):(t=this.postTranslate(this.angleRad,r),t=[["M",this.center[0]+f.plotLeft,this.center[1]+f.plotTop],["L",t.x,t.y]]),t};t.setAxisTranslation=function(){i.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)};t.beforeSetTickPositions=function(){this.autoConnect=this.isCircular&&"undefined"==typeof u(this.userMax,this.options.max)&&s(this.endAngleRad-this.startAngleRad)===s(2*Math.PI);!this.isCircular&&this.chart.inverted&&this.max++;this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)};t.setAxisSize=function(){var n,t;i.setAxisSize.call(this);this.isRadial&&(this.pane.updateCenter(this),n=this.center=h([],this.pane.center),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(t=this.postTranslate(this.angleRad,n[3]/2),n[0]=t.x-this.chart.plotLeft,n[1]=t.y-this.chart.plotTop),this.len=this.width=this.height=(n[2]-n[3])*u(this.sector,1)/2)};t.getPosition=function(n,t){return n=this.translate(n),this.postTranslate(this.isCircular?n:this.angleRad,u(this.isCircular?t:0>n?0:n,this.center[2]/2)-this.offset)};t.postTranslate=function(n,t){var i=this.chart,r=this.center;return n=this.startAngleRad+n,{x:i.plotLeft+r[0]+Math.cos(n)*t,y:i.plotTop+r[1]+Math.sin(n)*t}};t.getPlotBandPath=function(n,t,i){var s=function(n){if("string"==typeof n){var t=parseInt(n,10);return v.test(n)&&(t=t*l/100),t}return n},e=this.center,o=this.startAngleRad,l=e[2]/2,f=Math.min(this.offset,0),v=/%$/,r=this.isCircular,h=u(s(i.outerRadius),l),a=s(i.innerRadius),c;return s=u(s(i.thickness),10),"polygon"===this.options.gridLineInterpolation?f=this.getPlotLinePath({value:n}).concat(this.getPlotLinePath({value:t,reverse:!0})):(n=Math.max(n,this.min),t=Math.min(t,this.max),n=this.translate(n),t=this.translate(t),r||(h=n||0,a=t||0),"circle"!==i.shape&&r?(i=o+(n||0),o+=t||0):(i=-Math.PI/2,o=1.5*Math.PI,c=!0),h-=f,f=this.chart.renderer.symbols.arc(this.left+e[0],this.top+e[1],h,h,{start:Math.min(i,o),end:Math.max(i,o),innerR:u(a,h-(s-f)),open:c}),r&&(r=(o+i)/2,c=this.left+e[0]+e[2]/2*Math.cos(r),f.xBounds=r>-Math.PI/2&&r<Math.PI/2?[c,this.chart.plotWidth]:[0,c],f.yBounds=[this.top+e[1]+e[2]/2*Math.sin(r)],f.yBounds[0]+=r>-Math.PI&&0>r||r>Math.PI?-10:10)),f};t.getCrosshairPosition=function(n,t,i){var u=n.value,o=this.pane.center,r,f;return this.isCircular?(e(u)?n.point&&(r=n.point.shapeArgs||{},r.start&&(u=this.chart.inverted?this.translate(n.point.rectPlotY,!0):n.point.x)):(r=n.chartX||0,f=n.chartY||0,u=this.translate(Math.atan2(f-i,r-t)-this.startAngleRad,!0)),n=this.getPosition(u),r=n.x,f=n.y):(e(u)||(r=n.chartX,f=n.chartY),e(r)&&e(f)&&(i=o[1]+this.chart.plotTop,u=this.translate(Math.min(Math.sqrt(Math.pow(r-t,2)+Math.pow(f-i,2)),o[2]/2)-o[3]/2,!0))),[u,r||0,f||0]};t.getPlotLinePath=function(n){var r=this,e=r.pane.center,s=r.chart,p=s.inverted,t=n.value,l=n.reverse,c=r.getPosition(t),i=r.pane.options.background?r.pane.options.background[0]||r.pane.options.background:{},v=i.innerRadius||"0%",y=i.outerRadius||"100%",a;i=e[0]+s.plotLeft;var u=e[1]+s.plotTop,f=c.x,h=c.y,w=r.height;if(c=e[3]/2,n.isCrosshair&&(h=this.getCrosshairPosition(n,i,u),t=h[0],f=h[1],h=h[2]),r.isCircular)t=Math.sqrt(Math.pow(f-i,2)+Math.pow(h-u,2)),l="string"==typeof v?o(v,1):v/t,s="string"==typeof y?o(y,1):y/t,e&&c&&(t=c/t,l<t&&(l=t),s<t&&(s=t)),e=[["M",i+l*(f-i),u-l*(u-h)],["L",f-(1-s)*(f-i),h+(1-s)*(u-h)]];else if((t=r.translate(t))&&(0>t||t>w)&&(t=0),"circle"===r.options.gridLineInterpolation)e=r.getLinePath(0,t,c);else if(e=[],s[p?"yAxis":"xAxis"].forEach(function(n){n.pane===r.pane&&(a=n)}),a)for(i=a.tickPositions,a.autoConnect&&(i=i.concat([i[0]])),l&&(i=i.slice().reverse()),t&&(t+=c),f=0;f<i.length;f++)u=a.getPosition(i[f],t),e.push(f?["L",u.x,u.y]:["M",u.x,u.y]);return e};t.getTitlePosition=function(){var n=this.center,i=this.chart,t=this.options.title;return{x:i.plotLeft+n[0]+(t.x||0),y:i.plotTop+n[1]-{high:.5,middle:.25,low:0}[t.align]*n[2]+(t.y||0)}};t.createLabelCollector=function(){var n=this;return function(){if(n.isRadial&&n.tickPositions&&!0!==n.options.labels.allowOverlap)return n.tickPositions.map(function(t){return n.ticks[t]&&n.ticks[t].label}).filter(function(n){return!!n})}}},t.compose=function(n,r){f(n,"init",function(r){var u=this.chart,l=u.inverted,e=u.angular,s=u.polar,h=this.isXAxis,o=this.coll,a=e&&h,f,v=u.options;r=r.userOptions.pane||0;r=this.pane=u.pane&&u.pane[r];"colorAxis"===o?this.isRadial=!1:(e?(a?i.init(this):t.init(this),f=!h)&&(this.defaultPolarOptions=t.defaultRadialGaugeOptions):s&&(t.init(this),this.defaultPolarOptions=(f=this.horiz)?t.defaultCircularOptions:c("xAxis"===o?n.defaultOptions:n.defaultYAxisOptions,t.defaultRadialOptions),l&&"yAxis"===o&&(this.defaultPolarOptions.stackLabels=n.defaultYAxisOptions.stackLabels)),e||s?(this.isRadial=!0,v.chart.zoomType=null,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&u.labelCollectors.push(this.labelCollector)):this.isRadial=!1,r&&f&&(r.axis=this),this.isCircular=f)});f(n,"afterInit",function(){var n=this.chart,r=this.options,t=this.pane,i=t&&t.options;(!n.angular||!this.isXAxis)&&t&&(n.angular||n.polar)&&(this.angleRad=(r.angle||0)*Math.PI/180,this.startAngleRad=(i.startAngle-90)*Math.PI/180,this.endAngleRad=(u(i.endAngle,i.startAngle+360)-90)*Math.PI/180,this.offset=r.offset||0)});f(n,"autoLabelAlign",function(n){this.isRadial&&(n.align=void 0,n.preventDefault())});f(n,"destroy",function(){if(this.chart&&this.chart.labelCollectors){var n=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;0<=n&&this.chart.labelCollectors.splice(n,1)}});f(n,"initialAxisTranslation",function(){this.isRadial&&this.beforeSetTickPositions()});f(r,"afterGetPosition",function(n){this.axis.getPosition&&h(n.pos,this.axis.getPosition(this.pos))});f(r,"afterGetLabelPosition",function(n){var i=this.axis,h=this.label,b;if(h){var r=h.getBBox(),l=i.options.labels,p=l.y,y=20,c=l.align,a=(i.translate(this.pos)+i.startAngleRad+Math.PI/2)/Math.PI*180%360,f=Math.round(a),e="end",t=0>f?f+360:f,s=t,v=0,w=0,k=null===l.y?.3*-r.height:0;i.isRadial&&(b=i.getPosition(this.pos,i.center[2]/2+o(u(l.distance,-25),i.center[2]/2,-i.center[2]/2)),"auto"===l.rotation?h.attr({rotation:a}):null===p&&(p=i.chart.renderer.fontMetrics(h.styles&&h.styles.fontSize).b-r.height/2),null===c&&(i.isCircular?(r.width>i.len*i.tickInterval/(i.max-i.min)&&(y=0),c=a>y&&a<180-y?"left":a>180+y&&a<360-y?"right":"center"):c="center",h.attr({align:c})),"auto"===c&&2===i.tickPositions.length&&i.isCircular&&(90<t&&180>t?t=180-t:270<t&&360>=t&&(t=540-t),180<s&&360>=s&&(s=360-s),(i.pane.options.startAngle===f||i.pane.options.startAngle===f+360||i.pane.options.startAngle===f-360)&&(e="start"),c=-90<=f&&90>=f||-360<=f&&-270>=f||270<=f&&360>=f?"start"===e?"right":"left":"start"===e?"left":"right",70<s&&110>s&&(c="center"),15>t||180<=t&&195>t?v=.3*r.height:15<=t&&35>=t?v="start"===e?0:.75*r.height:195<=t&&215>=t?v="start"===e?.75*r.height:0:35<t&&90>=t?v="start"===e?.25*-r.height:r.height:215<t&&270>=t&&(v="start"===e?r.height:.25*-r.height),15>s?w="start"===e?.15*-r.height:.15*r.height:165<s&&180>=s&&(w="start"===e?.15*r.height:.15*-r.height),h.attr({align:c}),h.translate(w,v+k)),n.pos.x=b.x+l.x,n.pos.y=b.y+p)}});a(r.prototype,"getMarkPath",function(n,t,i,r,u,f,e){var o=this.axis;return o.isRadial?(n=o.getPosition(this.pos,o.center[2]/2+r),t=["M",t,i,"L",n.x,n.y]):t=n.call(this,t,i,r,u,f,e),t})},t.defaultCircularOptions={gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},t.defaultRadialGaugeOptions={labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},t.defaultRadialOptions={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},t}(),r.compose(n,t),r});t(n,"parts-more/AreaRangeSeries.js",[n["parts/Globals.js"],n["parts/Point.js"],n["parts/Utilities.js"]],function(n,t,i){var f=i.defined,e=i.extend,h=i.isArray,s=i.isNumber,c=i.pick;i=i.seriesType;var o=n.seriesTypes,r=n.Series.prototype,u=t.prototype;i("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">●<\/span> {series.name}: <b>{point.low}<\/b> - <b>{point.high}<\/b><br/>'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],pointValKey:"low",deferTranslatePolar:!0,toYData:function(n){return[n.low,n.high]},highToXY:function(n){var t=this.chart,i=this.xAxis.postTranslate(n.rectPlotX,this.yAxis.len-n.plotHigh);n.plotHighX=i.x-t.plotLeft;n.plotHigh=i.y-t.plotTop;n.plotLowX=n.plotX},translate:function(){var n=this,i=n.yAxis,t=!!n.modifyValue;o.area.prototype.translate.apply(n);n.points.forEach(function(r){var u=r.high,f=r.plotY;r.isNull?r.plotY=null:(r.plotLow=f,r.plotHigh=i.translate(t?n.modifyValue(u,r):u,0,1,0,1),t&&(r.yBottom=r.plotHigh))});this.chart.polar&&this.points.forEach(function(t){n.highToXY(t);t.tooltipPos=[(t.plotHighX+t.plotLowX)/2,(t.plotHigh+t.plotLow)/2]})},getGraphPath:function(n){var e=[],i=[],u,s=o.area.prototype.getGraphPath,r=this.options,l=this.chart.polar&&!1!==r.connectEnds,a=r.connectNulls,f=r.step,t,h;for(n=n||this.points,u=n.length;u--;)t=n[u],t.isNull||l||a||n[u+1]&&!n[u+1].isNull||i.push({plotX:t.plotX,plotY:t.plotY,doCurve:!1}),h={polarPlotY:t.polarPlotY,rectPlotX:t.rectPlotX,yBottom:t.yBottom,plotX:c(t.plotHighX,t.plotX),plotY:t.plotHigh,isNull:t.isNull},i.push(h),e.push(h),t.isNull||l||a||n[u-1]&&!n[u-1].isNull||i.push({plotX:t.plotX,plotY:t.plotY,doCurve:!1});return n=s.call(this,n),f&&(!0===f&&(f="left"),r.step={left:"right",center:"center",right:"left"}[f]),e=s.call(this,e),i=s.call(this,i),r.step=f,r=[].concat(n,e),!this.chart.polar&&i[0]&&"M"===i[0][0]&&(i[0]=["L",i[0][1],i[0][2]]),this.graphPath=r,this.areaPath=n.concat(i),r.isArea=!0,r.xMap=n.xMap,this.areaPath.xMap=n.xMap,r},drawDataLabels:function(){var s=this.points,c=s.length,t,l=[],u=this.options.dataLabels,n,a=this.chart.inverted,i,f,o;if(h(u)?1<u.length?(i=u[0],f=u[1]):(i=u[0],f={enabled:!1}):(i=e({},u),i.x=u.xHigh,i.y=u.yHigh,f=e({},u),f.x=u.xLow,f.y=u.yLow),i.enabled||this._hasPointLabels){for(t=c;t--;)(n=s[t])&&(o=i.inside?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.y=n.high,n._plotY=n.plotY,n.plotY=n.plotHigh,l[t]=n.dataLabel,n.dataLabel=n.dataLabelUpper,n.below=o,a?i.align||(i.align=o?"right":"left"):i.verticalAlign||(i.verticalAlign=o?"top":"bottom"));for(this.options.dataLabels=i,r.drawDataLabels&&r.drawDataLabels.apply(this,arguments),t=c;t--;)(n=s[t])&&(n.dataLabelUpper=n.dataLabel,n.dataLabel=l[t],delete n.dataLabels,n.y=n.low,n.plotY=n._plotY)}if(f.enabled||this._hasPointLabels){for(t=c;t--;)(n=s[t])&&(o=f.inside?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.below=!o,a?f.align||(f.align=o?"left":"right"):f.verticalAlign||(f.verticalAlign=o?"bottom":"top"));this.options.dataLabels=f;r.drawDataLabels&&r.drawDataLabels.apply(this,arguments)}if(i.enabled)for(t=c;t--;)(n=s[t])&&(n.dataLabels=[n.dataLabelUpper,n.dataLabel].filter(function(n){return!!n}));this.options.dataLabels=u},alignDataLabel:function(){o.column.prototype.alignDataLabel.apply(this,arguments)},drawPoints:function(){var i=this.points.length,t,n;for(r.drawPoints.apply(this,arguments),t=0;t<i;)n=this.points[t],n.origProps={plotY:n.plotY,plotX:n.plotX,isInside:n.isInside,negative:n.negative,zone:n.zone,y:n.y},n.lowerGraphic=n.graphic,n.graphic=n.upperGraphic,n.plotY=n.plotHigh,f(n.plotHighX)&&(n.plotX=n.plotHighX),n.y=n.high,n.negative=n.high<(this.options.threshold||0),n.zone=this.zones.length&&n.getZone(),this.chart.polar||(n.isInside=n.isTopInside="undefined"!=typeof n.plotY&&0<=n.plotY&&n.plotY<=this.yAxis.len&&0<=n.plotX&&n.plotX<=this.xAxis.len),t++;for(r.drawPoints.apply(this,arguments),t=0;t<i;)n=this.points[t],n.upperGraphic=n.graphic,n.graphic=n.lowerGraphic,e(n,n.origProps),delete n.origProps,t++},setStackedPoints:n.noop},{setState:function(){var i=this.state,n=this.series,t=n.chart.polar;f(this.plotHigh)||(this.plotHigh=n.yAxis.toPixels(this.high,!0));f(this.plotLow)||(this.plotLow=this.plotY=n.yAxis.toPixels(this.low,!0));n.stateMarkerGraphic&&(n.lowerStateMarkerGraphic=n.stateMarkerGraphic,n.stateMarkerGraphic=n.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh;t&&(this.plotX=this.plotHighX);u.setState.apply(this,arguments);this.state=i;this.plotY=this.plotLow;this.graphic=this.lowerGraphic;t&&(this.plotX=this.plotLowX);n.stateMarkerGraphic&&(n.upperStateMarkerGraphic=n.stateMarkerGraphic,n.stateMarkerGraphic=n.lowerStateMarkerGraphic,n.lowerStateMarkerGraphic=void 0);u.setState.apply(this,arguments)},haloPath:function(){var t=this.series.chart.polar,n=[];return this.plotY=this.plotLow,t&&(this.plotX=this.plotLowX),this.isInside&&(n=u.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&(this.plotX=this.plotHighX),this.isTopInside&&(n=n.concat(u.haloPath.apply(this,arguments))),n},destroyElements:function(){return["lowerGraphic","upperGraphic"].forEach(function(n){this[n]&&(this[n]=this[n].destroy())},this),this.graphic=null,u.destroyElements.apply(this,arguments)},isValid:function(){return s(this.low)&&s(this.high)}});""});t(n,"parts-more/AreaSplineRangeSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){t=t.seriesType;t("areasplinerange","arearange",null,{getPointSpline:n.seriesTypes.spline.prototype.getPointSpline});""});t(n,"parts-more/ColumnRangeSeries.js",[n["parts/Globals.js"],n["parts/Options.js"],n["parts/Utilities.js"]],function(n,t,i){var u,r;t=t.defaultOptions;var f=i.clamp,e=i.merge,o=i.pick;i=i.seriesType;u=n.noop;r=n.seriesTypes.column.prototype;i("columnrange","arearange",e(t.plotOptions.column,t.plotOptions.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var n=this,i=n.yAxis,u=n.xAxis,c=u.startAngleRad,s,t=n.chart,l=n.xAxis.isRadial,e=Math.max(t.chartWidth,t.chartHeight)+999,h;r.translate.apply(n);n.points.forEach(function(r){var y=r.shapeArgs,p=n.options.minPointLength,v,a;r.plotHigh=h=f(i.translate(r.high,0,1,0,1),-e,e);r.plotLow=f(r.plotY,-e,e);v=h;a=o(r.rectPlotY,r.plotY)-h;Math.abs(a)<p?(p-=a,a+=p,v-=p/2):0>a&&(a*=-1,v-=a);l?(s=r.barX+c,r.shapeType="arc",r.shapeArgs=n.polarArc(v+a,v,s,s+r.pointWidth)):(y.height=a,y.y=v,r.tooltipPos=t.inverted?[i.len+i.pos-t.plotLeft-v-a/2,u.len+u.pos-t.plotTop-y.x-y.width/2,a]:[u.left-t.plotLeft+y.x+y.width/2,i.pos-t.plotTop+v+a/2,a])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:u,getSymbol:u,crispCol:function(){return r.crispCol.apply(this,arguments)},drawPoints:function(){return r.drawPoints.apply(this,arguments)},drawTracker:function(){return r.drawTracker.apply(this,arguments)},getColumnMetrics:function(){return r.getColumnMetrics.apply(this,arguments)},pointAttribs:function(){return r.pointAttribs.apply(this,arguments)},animate:function(){return r.animate.apply(this,arguments)},polarArc:function(){return r.polarArc.apply(this,arguments)},translate3dPoints:function(){return r.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return r.translate3dShapes.apply(this,arguments)}},{setState:r.pointClass.prototype.setState});""});t(n,"parts-more/ColumnPyramidSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){var u=t.clamp,i=t.pick,r;t=t.seriesType;r=n.seriesTypes.column.prototype;t("columnpyramid","column",{},{translate:function(){var n=this,t=n.chart,e=n.options,h=n.dense=2>n.closestPointRange*n.xAxis.transA;h=n.borderWidth=i(e.borderWidth,h?0:1);var f=n.yAxis,c=e.threshold,o=n.translatedThreshold=f.getThreshold(c),s=i(e.minPointLength,5),a=n.getColumnMetrics(),v=a.width,l=n.barW=Math.max(v,1+2*h),y=n.pointXOffset=a.offset;t.inverted&&(o-=.5);e.pointPadding&&(l=Math.ceil(l));r.translate.apply(n);n.points.forEach(function(r){var p=i(r.yBottom,o),w=999+Math.abs(p),h=u(r.plotY,-w,f.len+w),a,k,b,d,g,nt,tt,it;w=r.plotX+y;a=l/2;k=Math.min(h,p);p=Math.max(h,p)-k;r.barX=w;r.pointWidth=v;r.tooltipPos=t.inverted?[f.len+f.pos-t.plotLeft-h,n.xAxis.len-w-a,p]:[w+a,h+f.pos-t.plotTop,p];h=c+(r.total||r.y);"percent"===e.stacking&&(h=c+(0>r.y)?-100:100);h=f.toPixels(h,!0);d=(b=t.plotHeight-h-(t.plotHeight-o))?a*(k-h)/b:0;g=b?a*(k+p-h)/b:0;b=w-d+a;d=w+d+a;nt=w+g+a;g=w-g+a;tt=k-s;it=k+p;0>r.y&&(tt=k,it=k+p+s);t.inverted&&(nt=t.plotWidth-k,b=h-(t.plotWidth-o),d=a*(h-nt)/b,g=a*(h-(nt-p))/b,b=w+a+d,d=b-2*d,nt=w-g+a,g=w+g+a,tt=k,it=k+p-s,0>r.y&&(it=k+p+s));r.shapeType="path";r.shapeArgs={x:b,y:tt,width:d-b,height:p,d:[["M",b,tt],["L",d,tt],["L",nt,it],["L",g,it],["Z"]]}})}});""});t(n,"parts-more/GaugeSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){var s=t.clamp,e=t.isNumber,o=t.merge,i=t.pick,r=t.pInt,u,f;t=t.seriesType;u=n.Series;f=n.TrackerMixin;t("gauge","line",{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:n.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var n=this.yAxis,u=this.options,t=n.center;this.generatePoints();this.points.forEach(function(f){var h=o(u.dial,f.dial),a=r(i(h.radius,"80%"))*t[2]/200,y=r(i(h.baseLength,"70%"))*a/100,p=r(i(h.rearLength,"10%"))*a/100,v=h.baseWidth||3,w=h.topWidth||1,c=u.overshoot,l=n.startAngleRad+n.translate(f.y,null,null,null,!0);(e(c)||!1===u.wrap)&&(c=e(c)?c/180*Math.PI:0,l=s(l,n.startAngleRad-c,n.endAngleRad+c));l=180*l/Math.PI;f.shapeType="path";f.shapeArgs={d:h.path||[["M",-p,-v/2],["L",y,-v/2],["L",a,-w/2],["L",a,w/2],["L",y,v/2],["L",-p,v/2],["Z"]],translateX:t[0],translateY:t[1],rotation:l};f.plotX=t[0];f.plotY=t[1]})},drawPoints:function(){var n=this,u=n.chart,t=n.yAxis.center,f=n.pivot,e=n.options,r=e.pivot,s=u.renderer;n.points.forEach(function(t){var r=t.graphic,i=t.shapeArgs,h=i.d,f=o(e.dial,t.dial);r?(r.animate(i),i.d=h):t.graphic=s[t.shapeType](i).attr({rotation:i.rotation,zIndex:1}).addClass("highcharts-dial").add(n.group);u.styledMode||t.graphic[r?"animate":"attr"]({stroke:f.borderColor||"none","stroke-width":f.borderWidth||0,fill:f.backgroundColor||"#000000"})});f?f.animate({translateX:t[0],translateY:t[1]}):(n.pivot=s.circle(0,0,i(r.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(t[0],t[1]).add(n.group),u.styledMode||n.pivot.attr({"stroke-width":r.borderWidth||0,stroke:r.borderColor||"#cccccc",fill:r.backgroundColor||"#000000"}))},animate:function(n){var t=this;n||t.points.forEach(function(n){var i=n.graphic;i&&(i.attr({rotation:180*t.yAxis.startAngleRad/Math.PI}),i.animate({rotation:n.shapeArgs.rotation},t.options.animation))})},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);u.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(n,t){u.prototype.setData.call(this,n,!1);this.processData();this.generatePoints();i(t,!0)&&this.chart.redraw()},hasData:function(){return!!this.points.length},drawTracker:f&&f.drawTrackerPoint},{setState:function(n){this.state=n}});""});t(n,"parts-more/BoxPlotSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){var i=t.pick,r,u;t=t.seriesType;r=n.noop;u=n.seriesTypes;t("boxplot","column",{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(n){return[n.low,n.q1,n.median,n.q3,n.high]},pointValKey:"high",pointAttribs:function(){return{}},drawDataLabels:r,translate:function(){var n=this.yAxis,t=this.pointArrayMap;u.column.prototype.translate.apply(this);this.points.forEach(function(i){t.forEach(function(t){null!==i[t]&&(i[t+"Plot"]=n.translate(i[t],0,1,0,1))});i.plotHigh=i.highPlot})},drawPoints:function(){var f=this,n=f.options,k=f.chart,h=k.renderer,o,e,c,l,p,t,r=0,w,u,a,b,v=!1!==f.doQuartiles,y,s=f.options.whiskerLength;f.points.forEach(function(d){var g=d.graphic,it=g?"animate":"attr",et=d.shapeArgs,nt={},rt={},ut={},ft={},tt=d.color||f.color;"undefined"!=typeof d.plotY&&(w=Math.round(et.width),u=Math.floor(et.x),a=u+w,b=Math.round(w/2),o=Math.floor(v?d.q1Plot:d.lowPlot),e=Math.floor(v?d.q3Plot:d.lowPlot),c=Math.floor(d.highPlot),l=Math.floor(d.lowPlot),g||(d.graphic=g=h.g("point").add(f.group),d.stem=h.path().addClass("highcharts-boxplot-stem").add(g),s&&(d.whiskers=h.path().addClass("highcharts-boxplot-whisker").add(g)),v&&(d.box=h.path(void 0).addClass("highcharts-boxplot-box").add(g)),d.medianShape=h.path(void 0).addClass("highcharts-boxplot-median").add(g)),k.styledMode||(rt.stroke=d.stemColor||n.stemColor||tt,rt["stroke-width"]=i(d.stemWidth,n.stemWidth,n.lineWidth),rt.dashstyle=d.stemDashStyle||n.stemDashStyle||n.dashStyle,d.stem.attr(rt),s&&(ut.stroke=d.whiskerColor||n.whiskerColor||tt,ut["stroke-width"]=i(d.whiskerWidth,n.whiskerWidth,n.lineWidth),ut.dashstyle=d.whiskerDashStyle||n.whiskerDashStyle||n.dashStyle,d.whiskers.attr(ut)),v&&(nt.fill=d.fillColor||n.fillColor||tt,nt.stroke=n.lineColor||tt,nt["stroke-width"]=n.lineWidth||0,nt.dashstyle=d.boxDashStyle||n.boxDashStyle||n.dashStyle,d.box.attr(nt)),ft.stroke=d.medianColor||n.medianColor||tt,ft["stroke-width"]=i(d.medianWidth,n.medianWidth,n.lineWidth),ft.dashstyle=d.medianDashStyle||n.medianDashStyle||n.dashStyle,d.medianShape.attr(ft)),t=d.stem.strokeWidth()%2/2,r=u+b+t,g=[["M",r,e],["L",r,c],["M",r,o],["L",r,l]],d.stem[it]({d:g}),v&&(t=d.box.strokeWidth()%2/2,o=Math.floor(o)+t,e=Math.floor(e)+t,u+=t,a+=t,g=[["M",u,e],["L",u,o],["L",a,o],["L",a,e],["L",u,e],["Z"]],d.box[it]({d:g})),s&&(t=d.whiskers.strokeWidth()%2/2,c+=t,l+=t,y=/%$/.test(s)?b*parseFloat(s)/100:s/2,g=[["M",r-y,c],["L",r+y,c],["M",r-y,l],["L",r+y,l]],d.whiskers[it]({d:g})),p=Math.round(d.medianPlot),t=d.medianShape.strokeWidth()%2/2,p+=t,g=[["M",u,p],["L",a,p]],d.medianShape[it]({d:g}))})},setStackedPoints:r});""});t(n,"parts-more/ErrorBarSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){t=t.seriesType;var r=n.noop,i=n.seriesTypes;t("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> {series.name}: <b>{point.low}<\/b> - <b>{point.high}<\/b><br/>'},whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(n){return[n.low,n.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:i.arearange?function(){var n=this.pointValKey;i.arearange.prototype.drawDataLabels.call(this);this.data.forEach(function(t){t.y=t[n]})}:r,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||i.column.prototype.getColumnMetrics.call(this)}});""});t(n,"parts-more/WaterfallSeries.js",[n["parts/Axis.js"],n["parts/Chart.js"],n["parts/Globals.js"],n["parts/Point.js"],n["parts/Stacking.js"],n["parts/Utilities.js"]],function(n,t,i,r,u,f){var e=f.addEvent,v=f.arrayMax,y=f.arrayMin,l=f.correctFloat,p=f.isNumber,o=f.objectEach,a=f.pick,s,h,c;return f=f.seriesType,s=i.Series,h=i.seriesTypes,function(n){function i(){var n=this.waterfall.stacks;n&&(n.changed=!1,delete n.alreadyChanged)}function r(){var n=this.options.stackLabels;n&&n.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function f(){for(var i=this.axes,t=this.series,n=t.length;n--;)t[n].options.stacking&&(i.forEach(function(n){n.isXAxis||(n.waterfall.stacks.changed=!0)}),n=0)}function s(){this.waterfall||(this.waterfall=new t(this))}var t=function(){function n(n){this.axis=n;this.stacks={changed:!1}}return n.prototype.renderStackTotals=function(){var t=this.axis,i=t.waterfall.stacks,r=t.stacking&&t.stacking.stackTotalGroup,n=new u(t,t.options.stackLabels,!1,0,void 0);this.dummyStackItem=n;o(i,function(t){o(t,function(t){n.total=t.stackTotal;t.label&&(n.label=t.label);u.prototype.render.call(n,r);t.label=n.label;delete n.label})});n.total=null},n}();n.Composition=t;n.compose=function(n,t){e(n,"init",s);e(n,"afterBuildStacks",i);e(n,"afterRender",r);e(t,"beforeRedraw",f)}}(c||(c={})),f("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",showLine:!0,generatePoints:function(){var i,n,t,r;for(h.column.prototype.generatePoints.apply(this),n=0,i=this.points.length;n<i;n++)t=this.points[n],r=this.processedYData[n],(t.isIntermediateSum||t.isSum)&&(t.y=l(r))},translate:function(){var l=this.options,u=this.yAxis,c,v=a(l.minPointLength,5),y=v/2,p=l.threshold,b=l.stacking,w=u.waterfall.stacks[this.stackKey],e;h.column.prototype.translate.apply(this);var s=c=p,k=this.points,o=0;for(l=k.length;o<l;o++){var r=k[o],f=this.processedYData[o],t=r.shapeArgs,n=[0,f],i=r.y;b?(w&&(n=w[o],"overlap"===b?(e=n.stackState[n.stateIndex--],e=0<=i?e:e-i,Object.hasOwnProperty.call(n,"absolutePos")&&delete n.absolutePos,Object.hasOwnProperty.call(n,"absoluteNeg")&&delete n.absoluteNeg):(0<=i?(e=n.threshold+n.posTotal,n.posTotal-=i):(e=n.threshold+n.negTotal,n.negTotal-=i,e-=i),!n.posTotal&&Object.hasOwnProperty.call(n,"absolutePos")&&(n.posTotal=n.absolutePos,delete n.absolutePos),!n.negTotal&&Object.hasOwnProperty.call(n,"absoluteNeg")&&(n.negTotal=n.absoluteNeg,delete n.absoluteNeg)),r.isSum||(n.connectorThreshold=n.threshold+n.stackTotal),u.reversed?(f=0<=i?e-i:e+i,i=e):(f=e,i=e-i),r.below=f<=a(p,0),t.y=u.translate(f,0,1,0,1),t.height=Math.abs(t.y-u.translate(i,0,1,0,1))),(i=u.waterfall.dummyStackItem)&&(i.x=o,i.label=w[o].label,i.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[o],this.stackedYPos[o]))):(e=Math.max(s,s+i)+n[0],t.y=u.translate(e,0,1,0,1),r.isSum?(t.y=u.translate(n[1],0,1,0,1),t.height=Math.min(u.translate(n[0],0,1,0,1),u.len)-t.y):r.isIntermediateSum?(0<=i?(f=n[1]+c,i=c):(f=c,i=n[1]+c),u.reversed&&(f^=i,i^=f,f^=i),t.y=u.translate(f,0,1,0,1),t.height=Math.abs(t.y-Math.min(u.translate(i,0,1,0,1),u.len)),c+=n[1]):(t.height=0<f?u.translate(s,0,1,0,1)-t.y:u.translate(s,0,1,0,1)-u.translate(s-f,0,1,0,1),s+=f,r.below=s<a(p,0)),0>t.height&&(t.y+=t.height,t.height*=-1));r.plotY=t.y=Math.round(t.y)-this.borderWidth%2/2;t.height=Math.max(Math.round(t.height),.001);r.yBottom=t.y+t.height;t.height<=v&&!r.isNull?(t.height=v,t.y-=y,r.plotY=t.y,r.minPointLengthOffset=0>r.y?-y:y):(r.isNull&&(t.width=0),r.minPointLengthOffset=0);t=r.plotY+(r.negative?t.height:0);this.chart.inverted?r.tooltipPos[0]=u.len-t:r.tooltipPos[1]=t}},processData:function(n){for(var h=this.options,u=this.yData,c=h.data,v=u.length,y=h.threshold||0,f,i,e,o,r,a,t=i=f=e=o=0;t<v;t++)r=u[t],a=c&&c[t]?c[t]:{},"sum"===r||a.isSum?u[t]=l(i):"intermediateSum"===r||a.isIntermediateSum?(u[t]=l(f),f=0):(i+=r,f+=r),e=Math.min(i,e),o=Math.max(i,o);s.prototype.processData.call(this,n);h.stacking||(this.dataMin=e+y,this.dataMax=o)},toYData:function(n){return n.isSum?"sum":n.isIntermediateSum?"intermediateSum":n.y},updateParallelArrays:function(n,t){s.prototype.updateParallelArrays.call(this,n,t);("sum"===this.yData[0]||"intermediateSum"===this.yData[0])&&(this.yData[0]=null)},pointAttribs:function(n,t){var i=this.options.upColor;return i&&!n.options.color&&(n.color=0<n.y?i:null),n=h.column.prototype.pointAttribs.call(this,n,t),delete n.dashstyle,n},getGraphPath:function(){return[["M",0,0]]},getCrispPath:function(){for(var f=this.data,h=this.yAxis,v=f.length,c=Math.round(this.graph.strokeWidth())%2/2,y=Math.round(this.borderWidth)%2/2,l=this.xAxis.reversed,o=this.yAxis.reversed,a=this.options.stacking,t=[],i=1;i<v;i++){var s=f[i].shapeArgs,e=f[i-1],n=f[i-1].shapeArgs,r=h.waterfall.stacks[this.stackKey],u=0<e.y?-n.height:0;r&&n&&s&&(r=r[i-1],a?(r=r.connectorThreshold,u=Math.round(h.translate(r,0,1,0,1)+(o?u:0))-c):u=n.y+e.minPointLengthOffset+y-c,t.push(["M",(n.x||0)+(l?0:n.width||0),u],["L",(s.x||0)+(l?s.width||0:0),u]));!a&&t.length&&n&&(0>e.y&&!o||0<e.y&&o)&&(t[t.length-2][2]+=n.height,t[t.length-1][2]+=n.height)}return t},drawGraph:function(){s.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},setStackedPoints:function(){function p(t,i,r,u){if(s)for(r;r<s;r++)n.stackState[r]+=u;else n.stackState[0]=t,s=n.stackState.length;n.stackState.push(n.stackState[s-1]+i)}var b=this.options,t=this.yAxis.waterfall.stacks,l=b.threshold,i=l||0,w=i,h=this.stackKey,k=this.xData,g=k.length,r,c,a,v,y,e,u,n,f,o,d,s;if(this.yAxis.stacking.usePercentage=!1,v=c=a=i,this.visible||!this.chart.options.chart.ignoreHiddenSeries){for(y=t.changed,(r=t.alreadyChanged)&&0>r.indexOf(h)&&(y=!0),t[h]||(t[h]={}),r=t[h],e=0;e<g;e++)u=k[e],(!r[u]||y)&&(r[u]={negTotal:0,posTotal:0,stackTotal:0,threshold:0,stateIndex:0,stackState:[],label:y&&r[u]?r[u].label:void 0}),n=r[u],f=this.yData[e],0<=f?n.posTotal+=f:n.negTotal+=f,o=b.data[e],u=n.absolutePos=n.posTotal,d=n.absoluteNeg=n.negTotal,n.stackTotal=u+d,s=n.stackState.length,o&&o.isIntermediateSum?(p(a,c,0,a),a=c,c=l,i^=w,w^=i,i^=w):o&&o.isSum?(p(l,v,s),i=l):(p(i,f,0,v),o&&(v+=f,c+=f)),n.stateIndex++,n.threshold=i,i+=n.stackTotal;t.changed=!1;t.alreadyChanged||(t.alreadyChanged=[]);t.alreadyChanged.push(h)}},getExtremes:function(){var r=this.options.stacking,n,t,i;return r?(n=this.yAxis,n=n.waterfall.stacks,t=this.stackedYNeg=[],i=this.stackedYPos=[],"overlap"===r?o(n[this.stackKey],function(n){t.push(y(n.stackState));i.push(v(n.stackState))}):o(n[this.stackKey],function(n){t.push(n.negTotal+n.threshold);i.push(n.posTotal+n.threshold)}),{dataMin:y(t),dataMax:v(i)}):{dataMin:this.dataMin,dataMax:this.dataMax}}},{getClassName:function(){var n=r.prototype.getClassName.call(this);return this.isSum?n+=" highcharts-sum":this.isIntermediateSum&&(n+=" highcharts-intermediate-sum"),n},isValid:function(){return p(this.y)||this.isSum||!!this.isIntermediateSum}}),c.compose(n,t),c});t(n,"parts-more/PolygonSeries.js",[n["parts/Globals.js"],n["mixins/legend-symbol.js"],n["parts/Utilities.js"]],function(n,t,i){i=i.seriesType;var r=n.Series,u=n.seriesTypes;i("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var n=r.prototype.getGraphPath.call(this),t=n.length+1;t--;)(t===n.length||"M"===n[t][0])&&0<t&&n.splice(t,0,["Z"]);return this.areaPath=n},drawGraph:function(){this.options.fillColor=this.color;u.area.prototype.drawGraph.call(this)},drawLegendSymbol:t.drawRectangle,drawTracker:r.prototype.drawTracker,setStackedPoints:n.noop});""});t(n,"parts-more/BubbleLegend.js",[n["parts/Chart.js"],n["parts/Color.js"],n["parts/Globals.js"],n["parts/Legend.js"],n["parts/Utilities.js"]],function(n,t,i,r,u){var a=t.parse,c,l;t=u.addEvent;var v=u.arrayMax,y=u.arrayMin,s=u.isNumber,e=u.merge,h=u.objectEach,f=u.pick,o=u.setOptions,p=u.stableSort,w=u.wrap;return c=i.Series,l=i.noop,o({legend:{bubbleLegend:{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:10,color:void 0},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}}}),o=function(){function n(n,t){this.options=this.symbols=this.visible=this.ranges=this.movementX=this.maxLabel=this.legendSymbol=this.legendItemWidth=this.legendItemHeight=this.legendItem=this.legendGroup=this.legend=this.fontMetrics=this.chart=void 0;this.setState=l;this.init(n,t)}return n.prototype.init=function(n,t){this.options=n;this.visible=!0;this.chart=t.chart;this.legend=t},n.prototype.addToLegend=function(n){n.splice(this.options.legendIndex,0,this)},n.prototype.drawLegendSymbol=function(n){var r=this.chart,u=this.options,e=f(n.options.itemDistance,20),t=u.ranges,i=u.connectorDistance;this.fontMetrics=r.renderer.fontMetrics(u.labels.style.fontSize.toString()+"px");t&&t.length&&s(t[0].value)?(p(t,function(n,t){return t.value-n.value}),this.ranges=t,this.setOptions(),this.render(),r=this.getMaxLabelSize(),t=this.ranges[0].radius,n=2*t,i=i-t+r.width,i=0<i?i:0,this.maxLabel=r,this.movementX="left"===u.labels.align?i:0,this.legendItemWidth=n+i+e,this.legendItemHeight=n+this.fontMetrics.h/2):n.options.bubbleLegend.autoRanges=!0},n.prototype.setOptions=function(){var t=this.ranges,n=this.options,i=this.chart.series[n.seriesIndex],h=this.legend.baseline,r={"z-index":n.zIndex,"stroke-width":n.borderWidth},u={"z-index":n.zIndex,"stroke-width":n.connectorWidth},c=this.getLabelStyles(),o=i.options.marker.fillOpacity,s=this.chart.styledMode;t.forEach(function(l,v){s||(r.stroke=f(l.borderColor,n.borderColor,i.color),r.fill=f(l.color,n.color,1!==o?a(i.color).setOpacity(o).get("rgba"):i.color),u.stroke=f(l.connectorColor,n.connectorColor,i.color));t[v].radius=this.getRangeRadius(l.value);t[v]=e(t[v],{center:t[0].radius-t[v].radius+h});s||e(!0,t[v],{bubbleStyle:e(!1,r),connectorStyle:e(!1,u),labelStyle:c})},this)},n.prototype.getLabelStyles=function(){var n=this.options,t={},i="left"===n.labels.align,r=this.legend.options.rtl;return h(n.labels.style,function(n,i){"color"!==i&&"fontSize"!==i&&"z-index"!==i&&(t[i]=n)}),e(!1,t,{"font-size":n.labels.style.fontSize,fill:f(n.labels.style.color,"#000000"),"z-index":n.zIndex,align:r||i?"right":"left"})},n.prototype.getRangeRadius=function(n){var t=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,t.ranges[t.ranges.length-1].value,t.ranges[0].value,t.minSize,t.maxSize,n)},n.prototype.render=function(){var n=this.chart.renderer,t=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]});this.legendSymbol=n.g("bubble-legend");this.legendItem=n.g("bubble-legend-item");this.legendSymbol.translateX=0;this.legendSymbol.translateY=0;this.ranges.forEach(function(n){n.value>=t&&this.renderRange(n)},this);this.legendSymbol.add(this.legendItem);this.legendItem.add(this.legendGroup);this.hideOverlappingLabels()},n.prototype.renderRange=function(n){var t=this.options,u=t.labels,f=this.chart.renderer,c=this.symbols,y=c.labels,a=n.center,v=Math.abs(n.radius),i=t.connectorDistance||0,e=u.align,o=u.style.fontSize,s,h,r,l;i=this.legend.options.rtl||"left"===e?-i:i;u=t.connectorWidth;s=this.ranges[0].radius||0;h=a-v-t.borderWidth/2+u/2;o=o/2-(this.fontMetrics.h-o)/2;r=f.styledMode;"center"===e&&(i=0,t.connectorDistance=0,n.labelStyle.align="center");e=h+t.labels.y;l=s+i+t.labels.x;c.bubbleItems.push(f.circle(s,a+((h%1?1:.5)-(u%2?0:.5)),v).attr(r?{}:n.bubbleStyle).addClass((r?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-symbol "+(t.className||"")).add(this.legendSymbol));c.connectors.push(f.path(f.crispLine([["M",s,h],["L",s+i,h]],t.connectorWidth)).attr(r?{}:n.connectorStyle).addClass((r?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(t.connectorClassName||"")).add(this.legendSymbol));n=f.text(this.formatLabel(n),l,e+o).attr(r?{}:n.labelStyle).addClass("highcharts-bubble-legend-labels "+(t.labels.className||"")).add(this.legendSymbol);y.push(n);n.placed=!0;n.alignAttr={x:l,y:e+o}},n.prototype.getMaxLabelSize=function(){var n,t;return this.symbols.labels.forEach(function(i){t=i.getBBox(!0);n=n?t.width>n.width?t:n:t}),n||{}},n.prototype.formatLabel=function(n){var t=this.options,i=t.labels.formatter,r;return t=t.labels.format,r=this.chart.numberFormatter,t?u.format(t,n):i?i.call(n):r(n.value,1)},n.prototype.hideOverlappingLabels=function(){var t=this.chart,n=this.symbols;!this.options.labels.allowOverlap&&n&&(t.hideOverlappingLabels(n.labels),n.labels.forEach(function(t,i){t.newOpacity?t.newOpacity!==t.oldOpacity&&n.connectors[i].show():n.connectors[i].hide()}))},n.prototype.getRanges=function(){var o=this.legend.bubbleLegend,t=o.options.ranges,u,i=Number.MAX_VALUE,n=-Number.MAX_VALUE,r;return o.chart.series.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(u=t.zData.filter(s),u.length&&(i=f(t.options.zMin,Math.min(i,Math.max(y(u),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),n=f(t.options.zMax,Math.max(n,v(u)))))}),r=i===n?[{value:n}]:[{value:i},{value:(i+n)/2},{value:n,autoRanges:!0}],t.length&&t[0].radius&&r.reverse(),r.forEach(function(n,i){t&&t[i]&&(r[i]=e(!1,t[i],n))}),r},n.prototype.predictBubbleSizes=function(){var t=this.chart,i=this.fontMetrics,o=t.legend.options,r="horizontal"===o.layout,h=r?t.legend.lastLineHeight:0,u=t.plotSizeX,f=t.plotSizeY,n=t.series[this.options.seriesIndex],e,s;return t=Math.ceil(n.minPxSize),e=Math.ceil(n.maxPxSize),n=n.options.maxSize,s=Math.min(f,u),o.floating||!/%$/.test(n)?i=e:(n=parseFloat(n),i=(s+h-i.h/2)*n/100/(n/100+1),r&&f-i>=u||!r&&u-i>=f)&&(i=e),[t,Math.ceil(i)]},n.prototype.updateRanges=function(n,t){var i=this.legend.options.bubbleLegend;i.minSize=n;i.maxSize=t;i.ranges=this.getRanges()},n.prototype.correctSizes=function(){var t=this.legend,n=this.chart.series[this.options.seriesIndex];1<Math.abs(Math.ceil(n.maxPxSize)-this.options.maxSize)&&(this.updateRanges(this.options.minSize,n.maxPxSize),t.render())},n}(),t(r,"afterGetAllItems",function(n){var r=this.bubbleLegend,u=this.options,t=u.bubbleLegend,f=this.chart.getVisibleBubbleSeriesIndex();r&&r.ranges&&r.ranges.length&&(t.ranges.length&&(t.autoRanges=!!t.ranges[0].autoRanges),this.destroyItem(r));0<=f&&u.enabled&&t.enabled&&(t.seriesIndex=f,this.bubbleLegend=new i.BubbleLegend(t,this),this.bubbleLegend.addToLegend(n.allItems))}),n.prototype.getVisibleBubbleSeriesIndex=function(){for(var t=this.series,n=0;n<t.length;){if(t[n]&&t[n].isBubble&&t[n].visible&&t[n].zData.length)return n;n++}return-1},r.prototype.getLinesHeights=function(){for(var t=this.allItems,r=[],f=t.length,i=0,u,n=0;n<f;n++)if(t[n].legendItemHeight&&(t[n].itemHeight=t[n].legendItemHeight),t[n]===t[f-1]||t[n+1]&&t[n]._legendItemPos[1]!==t[n+1]._legendItemPos[1]){for(r.push({height:0}),u=r[r.length-1],i;i<=n;i++)t[i].itemHeight>u.height&&(u.height=t[i].itemHeight);u.step=n}return r},r.prototype.retranslateItems=function(n){var r,u,t,f=this.options.rtl,i=0;this.allItems.forEach(function(e,o){r=e.legendGroup.translateX;u=e._legendItemPos[1];((t=e.movementX)||f&&e.ranges)&&(t=f?r-e.options.maxSize/2:r+t,e.legendGroup.attr({translateX:t}));o>n[i].step&&i++;e.legendGroup.attr({translateY:Math.round(u+n[i].height/2)});e._legendItemPos[1]=u+n[i].height/2})},t(c,"legendItemClick",function(){var n=this.chart,i=this.visible,t=this.chart.legend;t&&t.bubbleLegend&&(this.visible=!i,this.ignoreSeries=i,n=0<=n.getVisibleBubbleSeriesIndex(),t.bubbleLegend.visible!==n&&(t.update({bubbleLegend:{enabled:n}}),t.bubbleLegend.visible=n),this.visible=i)}),w(n.prototype,"drawChartBox",function(n,t,i){var r=this.legend,u=0<=this.getVisibleBubbleSeriesIndex(),f;r&&r.options.enabled&&r.bubbleLegend&&r.options.bubbleLegend.autoRanges&&u?(f=r.bubbleLegend.options,u=r.bubbleLegend.predictBubbleSizes(),r.bubbleLegend.updateRanges(u[0],u[1]),f.placed||(r.group.placed=!1,r.allItems.forEach(function(n){n.legendGroup.translateY=null})),r.render(),this.getMargins(),this.axes.forEach(function(n){n.visible&&n.render();f.placed||(n.setScale(),n.updateNames(),h(n.ticks,function(n){n.isNew=!0;n.isNewLabel=!0}))}),f.placed=!0,this.getMargins(),n.call(this,t,i),r.bubbleLegend.correctSizes(),r.retranslateItems(r.getLinesHeights())):(n.call(this,t,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),r.retranslateItems(r.getLinesHeights())))}),i.BubbleLegend=o,i.BubbleLegend});t(n,"parts-more/BubbleSeries.js",[n["parts/Globals.js"],n["parts/Color.js"],n["parts/Point.js"],n["parts/Utilities.js"]],function(n,t,i,r){var s=t.parse,h=r.arrayMax,c=r.arrayMin,l=r.clamp,a=r.extend,u=r.isNumber,f=r.pick,v=r.pInt;t=r.seriesType;r=n.Axis;var e=n.noop,y=n.Series,o=n.seriesTypes;t("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},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"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,isBubble:!0,pointAttribs:function(n,t){var i=this.options.marker.fillOpacity;return n=y.prototype.pointAttribs.call(this,n,t),1!==i&&(n.fill=s(n.fill).setOpacity(i).get("rgba")),n},getRadii:function(n,t,i){var u=this.zData,o=this.yData,s=i.minPxSize,h=i.maxPxSize,f=[],r=0,e;for(i=u.length;r<i;r++)e=u[r],f.push(this.getRadius(n,t,s,h,e,o[r]));this.radii=f},getRadius:function(n,t,i,r,f,e){var s=this.options,l="width"!==s.sizeBy,h=s.zThreshold,c=t-n,o=.5;if(null===e||null===f)return null;if(u(f)){if(s.sizeByAbsoluteValue&&(f=Math.abs(f-h),c=Math.max(t-h,Math.abs(n-h)),n=0),f<n)return i/2-1;0<c&&(o=(f-n)/c)}return l&&0<=o&&(o=Math.sqrt(o)),Math.ceil(i+o*(r-i))/2},animate:function(n){!n&&this.points.length<this.options.animationLimit&&this.points.forEach(function(n){var t=n.graphic;t&&t.width&&(this.hasRendered||t.attr({x:n.plotX,y:n.plotY,width:1,height:1}),t.animate(this.markerAttribs(n),this.options.animation))},this)},hasData:function(){return!!this.processedXData.length},translate:function(){var i,r=this.data,f=this.radii,t,n;for(o.scatter.prototype.translate.call(this),i=r.length;i--;)t=r[i],n=f?f[i]:0,u(n)&&n>=this.minPxSize/2?(t.marker=a(t.marker,{radius:n,width:2*n,height:2*n}),t.dlBox={x:t.plotX-n,y:t.plotY-n,width:2*n,height:2*n}):t.shapeArgs=t.plotY=t.dlBox=void 0},alignDataLabel:o.column.prototype.alignDataLabel,buildKDTree:e,applyZones:e},{haloPath:function(n){return i.prototype.haloPath.call(this,0===n?0:(this.marker?this.marker.radius||0:0)+n)},ttBelow:!1});r.prototype.beforePadding=function(){var n=this,t=this.len,s=this.chart,r=0,i=t,a=this.isXAxis,d=a?"xData":"yData",y=this.min,e={},g=Math.min(s.plotWidth,s.plotHeight),p=Number.MAX_VALUE,w=-Number.MAX_VALUE,b=this.max-y,o=t/b,k=[];this.series.forEach(function(t){var i=t.options;t.bubblePadding&&(t.visible||!s.options.chart.ignoreHiddenSeries)&&(n.allowZoomOutside=!0,k.push(t),a&&(["minSize","maxSize"].forEach(function(n){var t=i[n],r=/%$/.test(t);t=v(t);e[n]=r?g*t/100:t}),t.minPxSize=e.minSize,t.maxPxSize=Math.max(e.maxSize,e.minSize),t=t.zData.filter(u),t.length&&(p=f(i.zMin,l(c(t),!1===i.displayNegative?i.zThreshold:-Number.MAX_VALUE,p)),w=f(i.zMax,Math.max(w,h(t))))))});k.forEach(function(t){var e=t[d],f=e.length,s;if(a&&t.getRadii(p,w,t),0<b)for(;f--;)u(e[f])&&n.dataMin<=e[f]&&e[f]<=n.max&&(s=t.radii?t.radii[f]:0,r=Math.min((e[f]-y)*o-s,r),i=Math.max((e[f]-y)*o+s,i))});k.length&&0<b&&!this.logarithmic&&(i-=t,o*=(t+Math.max(0,r)-Math.min(i,t))/t,[["min","userMin",r],["max","userMax",i]].forEach(function(t){"undefined"==typeof f(n.options[t[0]],n[t[1]])&&(n[t[0]]+=t[2]/o)}))};""});t(n,"modules/networkgraph/integrations.js",[n["parts/Globals.js"]],function(n){n.networkgraphIntegrations={verlet:{attractiveForceFunction:function(n,t){return(t-n)/n},repulsiveForceFunction:function(n,t){return(t-n)/n*(t>n?1:0)},barycenter:function(){var i=this.options.gravitationalConstant,n=this.barycenter.xFactor,t=this.barycenter.yFactor;n=(n-(this.box.left+this.box.width)/2)*i;t=(t-(this.box.top+this.box.height)/2)*i;this.nodes.forEach(function(i){i.fixedPosition||(i.plotX-=n/i.mass/i.degree,i.plotY-=t/i.mass/i.degree)})},repulsive:function(n,t,i){t=t*this.diffTemperature/n.mass/n.degree;n.fixedPosition||(n.plotX+=i.x*t,n.plotY+=i.y*t)},attractive:function(n,t,i){var r=n.getMass(),u=-i.x*t*this.diffTemperature;t=-i.y*t*this.diffTemperature;n.fromNode.fixedPosition||(n.fromNode.plotX-=u*r.fromNode/n.fromNode.degree,n.fromNode.plotY-=t*r.fromNode/n.fromNode.degree);n.toNode.fixedPosition||(n.toNode.plotX+=u*r.toNode/n.toNode.degree,n.toNode.plotY+=t*r.toNode/n.toNode.degree)},integrate:function(n,t){var i=-n.options.friction,f=n.options.maxSpeed,r=(t.plotX+t.dispX-t.prevX)*i,u,e;i*=t.plotY+t.dispY-t.prevY;u=Math.abs;e=u(r)/(r||1);u=u(i)/(i||1);r=e*Math.min(f,Math.abs(r));i=u*Math.min(f,Math.abs(i));t.prevX=t.plotX+t.dispX;t.prevY=t.plotY+t.dispY;t.plotX+=r;t.plotY+=i;t.temperature=n.vectorLength({x:r,y:i})},getK:function(n){return Math.pow(n.box.width*n.box.height/n.nodes.length,.5)}},euler:{attractiveForceFunction:function(n,t){return n*n/t},repulsiveForceFunction:function(n,t){return t*t/n},barycenter:function(){var n=this.options.gravitationalConstant,t=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(r){if(!r.fixedPosition){var u=r.getDegree();u*=1+u/2;r.dispX+=(t-r.plotX)*n*u/r.degree;r.dispY+=(i-r.plotY)*n*u/r.degree}})},repulsive:function(n,t,i,r){n.dispX+=i.x/r*t/n.degree;n.dispY+=i.y/r*t/n.degree},attractive:function(n,t,i,r){var u=n.getMass(),f=i.x/r*t;t*=i.y/r;n.fromNode.fixedPosition||(n.fromNode.dispX-=f*u.fromNode/n.fromNode.degree,n.fromNode.dispY-=t*u.fromNode/n.fromNode.degree);n.toNode.fixedPosition||(n.toNode.dispX+=f*u.toNode/n.toNode.degree,n.toNode.dispY+=t*u.toNode/n.toNode.degree)},integrate:function(n,t){t.dispX+=t.dispX*n.options.friction;t.dispY+=t.dispY*n.options.friction;var i=t.temperature=n.vectorLength({x:t.dispX,y:t.dispY});0!==i&&(t.plotX+=t.dispX/i*Math.min(Math.abs(t.dispX),n.temperature),t.plotY+=t.dispY/i*Math.min(Math.abs(t.dispY),n.temperature))},getK:function(n){return Math.pow(n.box.width*n.box.height/n.nodes.length,.3)}}}});t(n,"modules/networkgraph/QuadTree.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){t=t.extend;var i=n.QuadTreeNode=function(n){this.box=n;this.boxSize=Math.min(n.width,n.height);this.nodes=[];this.body=this.isInternal=!1;this.isEmpty=!0};t(i.prototype,{insert:function(n,t){this.isInternal?this.nodes[this.getBoxPosition(n)].insert(n,t-1):(this.isEmpty=!1,this.body?t?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,t-1),this.body=!0),this.nodes[this.getBoxPosition(n)].insert(n,t-1)):(t=new i({top:n.plotX,left:n.plotY,width:.1,height:.1}),t.body=n,t.isInternal=!1,this.nodes.push(t)):(this.isInternal=!1,this.body=n))},updateMassAndCenter:function(){var n=0,t=0,i=0;this.isInternal?(this.nodes.forEach(function(r){r.isEmpty||(n+=r.mass,t+=r.plotX*r.mass,i+=r.plotY*r.mass)}),t/=n,i/=n):this.body&&(n=this.body.mass,t=this.body.plotX,i=this.body.plotY);this.mass=n;this.plotX=t;this.plotY=i},divideBox:function(){var n=this.box.width/2,t=this.box.height/2;this.nodes[0]=new i({left:this.box.left,top:this.box.top,width:n,height:t});this.nodes[1]=new i({left:this.box.left+n,top:this.box.top,width:n,height:t});this.nodes[2]=new i({left:this.box.left+n,top:this.box.top+t,width:n,height:t});this.nodes[3]=new i({left:this.box.left,top:this.box.top+t,width:n,height:t})},getBoxPosition:function(n){var t=n.plotY<this.box.top+this.box.height/2;return n.plotX<this.box.left+this.box.width/2?t?0:3:t?1:2}});n=n.QuadTree=function(n,t,r,u){this.box={left:n,top:t,width:r,height:u};this.maxDepth=25;this.root=new i(this.box,"0");this.root.isInternal=!0;this.root.isRoot=!0;this.root.divideBox()};t(n.prototype,{insertNodes:function(n){n.forEach(function(n){this.root.insert(n,this.maxDepth)},this)},visitNodeRecursive:function(n,t,i){var r;n||(n=this.root);n===this.root&&t&&(r=t(n));!1!==r&&(n.nodes.forEach(function(n){if(n.isInternal){if(t&&(r=t(n)),!1===r)return;this.visitNodeRecursive(n,t,i)}else n.body&&t&&t(n.body);i&&i(n)},this),n===this.root&&i&&i(n))},calculateMassAndCenter:function(){this.visitNodeRecursive(null,null,function(n){n.updateMassAndCenter()})}})});t(n,"modules/networkgraph/layouts.js",[n["parts/Chart.js"],n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t,i){var u=i.addEvent,f=i.clamp,e=i.defined,o=i.extend,s=i.isFunction,r=i.pick,h=i.setAnimation;t.layouts={"reingold-fruchterman":function(){}};o(t.layouts["reingold-fruchterman"].prototype,{init:function(n){this.options=n;this.nodes=[];this.links=[];this.series=[];this.box={x:0,y:0,width:0,height:0};this.setInitialRendering(!0);this.integration=t.networkgraphIntegrations[n.integration];this.enableSimulation=n.enableSimulation;this.attractiveForce=r(n.attractiveForce,this.integration.attractiveForceFunction);this.repulsiveForce=r(n.repulsiveForce,this.integration.repulsiveForceFunction);this.approximation=n.approximation},updateSimulation:function(n){this.enableSimulation=r(n,this.options.enableSimulation)},start:function(){var n=this.series,t=this.options;this.currentStep=0;this.forces=n[0]&&n[0].forces||[];this.chart=n[0]&&n[0].chart;this.initialRendering&&(this.initPositions(),n.forEach(function(n){n.finishedAnimating=!0;n.render()}));this.setK();this.resetSimulation(t);this.enableSimulation&&this.step()},step:function(){var n=this,i=this.series;n.currentStep++;"barnes-hut"===n.approximation&&(n.createQuadTree(),n.quadTree.calculateMassAndCenter());n.forces.forEach(function(t){n[t+"Forces"](n.temperature)});n.applyLimits(n.temperature);n.temperature=n.coolDown(n.startTemperature,n.diffTemperature,n.currentStep);n.prevSystemTemperature=n.systemTemperature;n.systemTemperature=n.getSystemTemperature();n.enableSimulation&&(i.forEach(function(n){n.chart&&n.render()}),n.maxIterations--&&isFinite(n.temperature)&&!n.isStable()?(n.simulation&&t.win.cancelAnimationFrame(n.simulation),n.simulation=t.win.requestAnimationFrame(function(){n.step()})):n.simulation=!1)},stop:function(){this.simulation&&t.win.cancelAnimationFrame(this.simulation)},setArea:function(n,t,i,r){this.box={left:n,top:t,width:i,height:r}},setK:function(){this.k=this.options.linkLength||this.integration.getK(this)},addElementsToCollection:function(n,t){n.forEach(function(n){-1===t.indexOf(n)&&t.push(n)})},removeElementFromCollection:function(n,t){n=t.indexOf(n);-1!==n&&t.splice(n,1)},clear:function(){this.nodes.length=0;this.links.length=0;this.series.length=0;this.resetSimulation()},resetSimulation:function(){this.forcedStop=!1;this.systemTemperature=0;this.setMaxIterations();this.setTemperature();this.setDiffTemperature()},restartSimulation:function(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))},setMaxIterations:function(n){this.maxIterations=r(n,this.options.maxIterations)},setTemperature:function(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)},setDiffTemperature:function(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)},setInitialRendering:function(n){this.initialRendering=n},createQuadTree:function(){this.quadTree=new t.QuadTree(this.box.left,this.box.top,this.box.width,this.box.height);this.quadTree.insertNodes(this.nodes)},initPositions:function(){var n=this.options.initialPositions;s(n)?(n.call(this),this.nodes.forEach(function(n){e(n.prevX)||(n.prevX=n.plotX);e(n.prevY)||(n.prevY=n.plotY);n.dispX=0;n.dispY=0})):"circle"===n?this.setCircularPositions():this.setRandomPositions()},setCircularPositions:function(){function i(t){t.linksFrom.forEach(function(t){e[t.toNode.id]||(e[t.toNode.id]=!0,n.push(t.toNode),i(t.toNode))})}var u=this.box,t=this.nodes,f=2*Math.PI/(t.length+1),s=t.filter(function(n){return 0===n.linksTo.length}),n=[],e={},o=this.options.initialPositionRadius;s.forEach(function(t){n.push(t);i(t)});n.length?t.forEach(function(t){-1===n.indexOf(t)&&n.push(t)}):n=t;n.forEach(function(n,t){n.plotX=n.prevX=r(n.plotX,u.width/2+o*Math.cos(t*f));n.plotY=n.prevY=r(n.plotY,u.height/2+o*Math.sin(t*f));n.dispX=0;n.dispY=0})},setRandomPositions:function(){function n(n){return n=n*n/Math.PI,n-Math.floor(n)}var t=this.box,i=this.nodes,u=i.length+1;i.forEach(function(i,f){i.plotX=i.prevX=r(i.plotX,t.width*n(f));i.plotY=i.prevY=r(i.plotY,t.height*n(u+f));i.dispX=0;i.dispY=0})},force:function(n){this.integration[n].apply(this,Array.prototype.slice.call(arguments,1))},barycenterForces:function(){this.getBarycenter();this.force("barycenter")},getBarycenter:function(){var n=0,t=0,i=0;return this.nodes.forEach(function(r){t+=r.plotX*r.mass;i+=r.plotY*r.mass;n+=r.mass}),this.barycenter={x:t,y:i,xFactor:t/n,yFactor:i/n}},barnesHutApproximation:function(n,t){var u=this.getDistXY(n,t),i=this.vectorLength(u),r,f;return n!==t&&0!==i&&(t.isInternal?t.boxSize/i<this.options.theta&&0!==i?(r=this.repulsiveForce(i,this.k),this.force("repulsive",n,r*t.mass,u,i),f=!1):f=!0:(r=this.repulsiveForce(i,this.k),this.force("repulsive",n,r*t.mass,u,i))),f},repulsiveForces:function(){var n=this;"barnes-hut"===n.approximation?n.nodes.forEach(function(t){n.quadTree.visitNodeRecursive(null,function(i){return n.barnesHutApproximation(t,i)})}):n.nodes.forEach(function(t){n.nodes.forEach(function(i){var u,r,f;t===i||t.fixedPosition||(u=n.getDistXY(t,i),r=n.vectorLength(u),0!==r&&(f=n.repulsiveForce(r,n.k),n.force("repulsive",t,f*i.mass,u,r)))})})},attractiveForces:function(){var n=this,i,t,r;n.links.forEach(function(u){u.fromNode&&u.toNode&&(i=n.getDistXY(u.fromNode,u.toNode),t=n.vectorLength(i),0!==t&&(r=n.attractiveForce(t,n.k),n.force("attractive",u,r,i,t)))})},applyLimits:function(){var n=this;n.nodes.forEach(function(t){t.fixedPosition||(n.integration.integrate(n,t),n.applyLimitBox(t,n.box),t.dispX=0,t.dispY=0)})},applyLimitBox:function(n,t){var i=n.radius;n.plotX=f(n.plotX,t.left+i,t.width-i);n.plotY=f(n.plotY,t.top+i,t.height-i)},coolDown:function(n,t,i){return n-t*i},isStable:function(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||0>=this.temperature},getSystemTemperature:function(){return this.nodes.reduce(function(n,t){return n+t.temperature},0)},vectorLength:function(n){return Math.sqrt(n.x*n.x+n.y*n.y)},getDistR:function(n,t){return n=this.getDistXY(n,t),this.vectorLength(n)},getDistXY:function(n,t){var i=n.plotX-t.plotX;return n=n.plotY-t.plotY,{x:i,y:n,absX:Math.abs(i),absY:Math.abs(n)}}});u(n,"predraw",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(n){n.stop()})});u(n,"render",function(){function i(i){i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),n=!1,t=!0)}var t=!1,n;if(this.graphLayoutsLookup){for(h(!1,this),this.graphLayoutsLookup.forEach(function(n){n.start()});!n;)n=!0,this.graphLayoutsLookup.forEach(i);t&&this.series.forEach(function(n){n&&n.layout&&n.render()})}});u(n,"beforePrint",function(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(n){n.updateSimulation(!1)}),this.redraw())});u(n,"afterPrint",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(n){n.updateSimulation()});this.redraw()})});t(n,"modules/networkgraph/draggable-nodes.js",[n["parts/Chart.js"],n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t,i){var r=i.addEvent;t.dragNodesMixin={onMouseDown:function(n,t){t=this.chart.pointer.normalize(t);n.fixedPosition={chartX:t.chartX,chartY:t.chartY,plotX:n.plotX,plotY:n.plotY};n.inDragMode=!0},onMouseMove:function(n,t){var u,i,r;n.fixedPosition&&n.inDragMode&&(u=this.chart,t=u.pointer.normalize(t),i=n.fixedPosition.chartX-t.chartX,r=n.fixedPosition.chartY-t.chartY,t=u.graphLayoutsLookup,(5<Math.abs(i)||5<Math.abs(r))&&(i=n.fixedPosition.plotX-i,r=n.fixedPosition.plotY-r,u.isInsidePlot(i,r)&&(n.plotX=i,n.plotY=r,n.hasDragged=!0,this.redrawHalo(n),t.forEach(function(n){n.restartSimulation()}))))},onMouseUp:function(n){n.fixedPosition&&n.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw(),n.inDragMode=n.hasDragged=!1,this.options.fixedDraggable||delete n.fixedPosition)},redrawHalo:function(n){n&&this.halo&&this.halo.attr({d:n.haloPath(this.options.states.hover.halo.size)})}};r(n,"load",function(){var n=this,t,i,u;n.container&&(t=r(n.container,"mousedown",function(t){var f=n.hoverPoint;f&&f.series&&f.series.hasDraggableNodes&&f.series.options.draggable&&(f.series.onMouseDown(f,t),i=r(n.container,"mousemove",function(n){return f&&f.series&&f.series.onMouseMove(f,n)}),u=r(n.container.ownerDocument,"mouseup",function(n){return i(),u(),f&&f.series&&f.series.onMouseUp(f,n)}))}));r(n,"destroy",function(){t()})})});t(n,"parts-more/PackedBubbleSeries.js",[n["parts/Chart.js"],n["parts/Color.js"],n["parts/Globals.js"],n["parts/Point.js"],n["parts/Utilities.js"]],function(n,t,i,r,u){var y=t.parse,c=u.addEvent,l=u.clamp,f=u.defined,p=u.extend;t=u.extendClass;var w=u.fireEvent,a=u.isArray,b=u.isNumber,h=u.merge,o=u.pick;u=u.seriesType;var e=i.Series,v=i.layouts["reingold-fruchterman"],s=i.dragNodesMixin;n.prototype.getSelectedParentNodes=function(){var n=[];return this.series.forEach(function(t){t.parentNode&&t.parentNode.selected&&n.push(t.parentNode)}),n};i.networkgraphIntegrations.packedbubble={repulsiveForceFunction:function(n,t,i,r){return Math.min(n,(i.marker.radius+r.marker.radius)/2)},barycenter:function(){var n=this,u=n.options.gravitationalConstant,f=n.box,t=n.nodes,i,r;t.forEach(function(e){n.options.splitSeries&&!e.isParentNode?(i=e.series.parentNode.plotX,r=e.series.parentNode.plotY):(i=f.width/2,r=f.height/2);e.fixedPosition||(e.plotX-=(e.plotX-i)*u/(e.mass*Math.sqrt(t.length)),e.plotY-=(e.plotY-r)*u/(e.mass*Math.sqrt(t.length)))})},repulsive:function(n,t,i,r){var u=t*this.diffTemperature/n.mass/n.degree;t=i.x*u;i=i.y*u;n.fixedPosition||(n.plotX+=t,n.plotY+=i);r.fixedPosition||(r.plotX-=t,r.plotY-=i)},integrate:i.networkgraphIntegrations.verlet.integrate,getK:i.noop};i.layouts.packedbubble=t(v,{beforeStep:function(){this.options.marker&&this.series.forEach(function(n){n&&n.calculateParentRadius()})},setCircularPositions:function(){var n=this,r=n.box,u=n.nodes,f=2*Math.PI/(u.length+1),t,i,e=n.options.initialPositionRadius;u.forEach(function(u,s){n.options.splitSeries&&!u.isParentNode?(t=u.series.parentNode.plotX,i=u.series.parentNode.plotY):(t=r.width/2,i=r.height/2);u.plotX=u.prevX=o(u.plotX,t+e*Math.cos(u.index||s*f));u.plotY=u.prevY=o(u.plotY,i+e*Math.sin(u.index||s*f));u.dispX=0;u.dispY=0})},repulsiveForces:function(){var n=this,i,t,r,u=n.options.bubblePadding;n.nodes.forEach(function(f){f.degree=f.mass;f.neighbours=0;n.nodes.forEach(function(e){i=0;f===e||f.fixedPosition||!n.options.seriesInteraction&&f.series!==e.series||(r=n.getDistXY(f,e),t=n.vectorLength(r)-(f.marker.radius+e.marker.radius+u),0>t&&(f.degree+=.01,f.neighbours++,i=n.repulsiveForce(-t/Math.sqrt(f.neighbours),n.k,f,e)),n.force("repulsive",f,i*e.mass,r,e,t))})})},applyLimitBox:function(n){if(this.options.splitSeries&&!n.isParentNode&&this.options.parentNodeLimit){var t=this.getDistXY(n,n.series.parentNode),i=n.series.parentNodeRadius-n.marker.radius-this.vectorLength(t);0>i&&i>-2*n.marker.radius&&(n.plotX-=.01*t.x,n.plotY-=.01*t.y)}v.prototype.applyLimitBox.apply(this,arguments)}});u("packedbubble","bubble",{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){return this.point.value},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:1,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}},{hasDraggableNodes:!0,forces:["barycenter","repulsive"],pointArrayMap:["value"],trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],pointValKey:"value",isCartesian:!1,requireSorting:!1,directTouch:!0,axisTypes:[],noSharedTooltip:!0,searchPoint:i.noop,accumulateAllPoints:function(n){for(var r=n.chart,u=[],t,i=0;i<r.series.length;i++)if(n=r.series[i],n.is("packedbubble")&&n.visible||!r.options.chart.ignoreHiddenSeries)for(t=0;t<n.yData.length;t++)u.push([null,null,n.yData[t],n.index,t,{id:t,marker:{radius:0}}]);return u},init:function(){return e.prototype.init.apply(this,arguments),c(this,"updatedData",function(){this.chart.series.forEach(function(n){n.type===this.type&&(n.isDirty=!0)},this)}),this},render:function(){var n=[];e.prototype.render.apply(this,arguments);this.options.dataLabels.allowOverlap||(this.data.forEach(function(t){a(t.dataLabels)&&t.dataLabels.forEach(function(t){n.push(t)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(n))},setVisible:function(){var n=this;e.prototype.setVisible.apply(n,arguments);n.parentNodeLayout&&n.graph?n.visible?(n.graph.show(),n.parentNode.dataLabel&&n.parentNode.dataLabel.show()):(n.graph.hide(),n.parentNodeLayout.removeElementFromCollection(n.parentNode,n.parentNodeLayout.nodes),n.parentNode.dataLabel&&n.parentNode.dataLabel.hide()):n.layout&&(n.visible?n.layout.addElementsToCollection(n.points,n.layout.nodes):n.points.forEach(function(t){n.layout.removeElementFromCollection(t,n.layout.nodes)}))},drawDataLabels:function(){var n=this.options.dataLabels.textPath,t=this.points;e.prototype.drawDataLabels.apply(this,arguments);this.parentNode&&(this.parentNode.formatPrefix="parentNode",this.points=[this.parentNode],this.options.dataLabels.textPath=this.options.dataLabels.parentNodeTextPath,e.prototype.drawDataLabels.apply(this,arguments),this.points=t,this.options.dataLabels.textPath=n)},seriesBox:function(){var t=this.chart,r=Math.max,u=Math.min,i,n=[t.plotLeft,t.plotLeft+t.plotWidth,t.plotTop,t.plotTop+t.plotHeight];return this.data.forEach(function(t){f(t.plotX)&&f(t.plotY)&&t.marker.radius&&(i=t.marker.radius,n[0]=u(n[0],t.plotX-i),n[1]=r(n[1],t.plotX+i),n[2]=u(n[2],t.plotY-i),n[3]=r(n[3],t.plotY+i))}),b(n.width/n.height)?n:null},calculateParentRadius:function(){var n=this.seriesBox();this.parentNodeRadius=l(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,n?Math.max(Math.sqrt(Math.pow(n.width,2)+Math.pow(n.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20);this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)},drawGraph:function(){var i,n,t;this.layout&&this.layout.options.splitSeries&&(i=this.chart,n=this.layout.options.parentNodeOptions.marker,n={fill:n.fillColor||y(this.color).brighten(.4).get(),opacity:n.fillOpacity,stroke:n.lineColor||this.color,"stroke-width":n.lineWidth},t=this.visible?"inherit":"hidden",this.parentNodesGroup||(this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",t,.1,i.seriesGroup),this.group.attr({zIndex:2})),this.calculateParentRadius(),t=h({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},n),this.parentNode.graphic||(this.graph=this.parentNode.graphic=i.renderer.symbol(n.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(t))},createParentNodes:function(){var n=this,r=n.chart,t=n.parentNodeLayout,u,i=n.parentNode,f=n.pointClass;n.parentNodeMass=0;n.points.forEach(function(t){n.parentNodeMass+=Math.PI*Math.pow(t.marker.radius,2)});n.calculateParentRadius();t.nodes.forEach(function(t){t.seriesIndex===n.index&&(u=!0)});t.setArea(0,0,r.plotWidth,r.plotHeight);u||(i||(i=(new f).init(this,{mass:n.parentNodeRadius/2,marker:{radius:n.parentNodeRadius},dataLabels:{inside:!1},dataLabelOnNull:!0,degree:n.parentNodeRadius,isParentNode:!0,seriesIndex:n.index})),n.parentNode&&(i.plotX=n.parentNode.plotX,i.plotY=n.parentNode.plotY),n.parentNode=i,t.addElementsToCollection([n],t.series),t.addElementsToCollection([i],t.nodes))},drawTracker:function(){var n=this.parentNode,t;i.TrackerMixin.drawTrackerPoint.call(this);n&&(t=a(n.dataLabels)?n.dataLabels:n.dataLabel?[n.dataLabel]:[],n.graphic&&(n.graphic.element.point=n),t.forEach(function(t){t.div?t.div.point=n:t.element.point=n}))},addSeriesLayout:function(){var t=this.options.layoutAlgorithm,r=this.chart.graphLayoutsStorage,u=this.chart.graphLayoutsLookup,f=h(t,t.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),n=r[t.type+"-series"];n||(r[t.type+"-series"]=n=new i.layouts[t.type],n.init(f),u.splice(n.index,0,n));this.parentNodeLayout=n;this.createParentNodes()},addLayout:function(){var t=this.options.layoutAlgorithm,r=this.chart.graphLayoutsStorage,u=this.chart.graphLayoutsLookup,e=this.chart.options.chart,n;r||(this.chart.graphLayoutsStorage=r={},this.chart.graphLayoutsLookup=u=[]);n=r[t.type];n||(t.enableSimulation=f(e.forExport)?!e.forExport:t.enableSimulation,r[t.type]=n=new i.layouts[t.type],n.init(t),u.splice(n.index,0,n));this.layout=n;this.points.forEach(function(n){n.mass=2;n.degree=1;n.collisionNmb=1});n.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight);n.addElementsToCollection([this],n.series);n.addElementsToCollection(this.points,n.nodes)},deferLayout:function(){var n=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),n.splitSeries&&this.addSeriesLayout())},translate:function(){var n=this.chart,o=this.data,s=this.index,t,e=this.options.useSimulation,i,r,u;for(this.processedXData=this.xData,this.generatePoints(),f(n.allDataPoints)||(n.allDataPoints=this.accumulateAllPoints(this),this.getPointRadius()),e?i=n.allDataPoints:(i=this.placeBubbles(n.allDataPoints),this.options.draggable=!1),t=0;t<i.length;t++)i[t][3]===s&&(r=o[i[t][4]],u=i[t][2],e||(r.plotX=i[t][0]-n.plotLeft+n.diffX,r.plotY=i[t][1]-n.plotTop+n.diffY),r.marker=p(r.marker,{radius:u,width:2*u,height:2*u}),r.radius=u);e&&this.deferLayout();w(this,"afterTranslate")},checkOverlap:function(n,t){var i=n[0]-t[0],r=n[1]-t[1];return-.001>Math.sqrt(i*i+r*r)-Math.abs(n[2]+t[2])},positionBubble:function(n,t,i){var r=Math.sqrt,f=Math.asin,e=Math.acos,u=Math.pow,o=Math.abs;return r=r(u(n[0]-t[0],2)+u(n[1]-t[1],2)),e=e((u(r,2)+u(i[2]+t[2],2)-u(i[2]+n[2],2))/(2*(i[2]+t[2])*r)),f=f(o(n[0]-t[0])/r),n=(0>n[1]-t[1]?0:Math.PI)+e+f*(0>(n[0]-t[0])*(n[1]-t[1])?1:-1),[t[0]+(t[2]+i[2])*Math.sin(n),t[1]-(t[2]+i[2])*Math.cos(n),i[2],i[3],i[4]]},placeBubbles:function(n){var s=this.checkOverlap,o=this.positionBubble,t=[],i=1,u=0,f=0,e=[],r;if(n=n.sort(function(n,t){return t[2]-n[2]}),n.length){if(t.push([[0,0,n[0][2],n[0][3],n[0][4]]]),1<n.length)for(t.push([[0,0-n[1][2]-n[0][2],n[1][2],n[1][3],n[1][4]]]),r=2;r<n.length;r++)n[r][2]=n[r][2]||1,e=o(t[i][u],t[i-1][f],n[r]),s(e,t[i][0])?(t.push([]),f=0,t[i+1].push(o(t[i][u],t[i][0],n[r])),i++,u=0):1<i&&t[i-1][f+1]&&s(e,t[i-1][f+1])?(f++,t[i].push(o(t[i][u],t[i-1][f],n[r])),u++):(u++,t[i].push(e));this.chart.stages=t;this.chart.rawPositions=[].concat.apply([],t);this.resizeRadius();e=this.chart.rawPositions}return e},resizeRadius:function(){for(var i=this.chart,t=i.rawPositions,r=Math.min,h=Math.max,c=i.plotLeft,l=i.plotTop,a=i.plotHeight,v=i.plotWidth,u,f,e=u=Number.POSITIVE_INFINITY,s=f=Number.NEGATIVE_INFINITY,o,n=0;n<t.length;n++)o=t[n][2],e=r(e,t[n][0]-o),s=h(s,t[n][0]+o),u=r(u,t[n][1]-o),f=h(f,t[n][1]+o);if(n=[s-e,f-u],r=r.apply([],[(v-c)/n[0],(a-l)/n[1]]),1e-10<Math.abs(r-1)){for(n=0;n<t.length;n++)t[n][2]*=r;this.placeBubbles(t)}else i.diffY=a/2+l-u-(f-u)/2,i.diffX=v/2+c-e-(s-e)/2},calculateZExtremes:function(){var n=this.options.zMin,t=this.options.zMax,i=Infinity,r=-Infinity;return n&&t?[n,t]:(this.chart.series.forEach(function(n){n.yData.forEach(function(n){f(n)&&(n>r&&(r=n),n<i&&(i=n))})}),n=o(n,i),t=o(t,r),[n,t])},getPointRadius:function(){var n=this,t=n.chart,f=n.options,h=f.useSimulation,v=Math.min(t.plotWidth,t.plotHeight),e={},c=[],i=t.allDataPoints,o,s,a,r,u;["minSize","maxSize"].forEach(function(n){var t=parseInt(f[n],10),r=/%$/.test(f[n]);e[n]=r?v*t/100:t*Math.sqrt(i.length)});t.minRadius=o=e.minSize/Math.sqrt(i.length);t.maxRadius=s=e.maxSize/Math.sqrt(i.length);u=h?n.calculateZExtremes():[o,s];(i||[]).forEach(function(t,f){a=h?l(t[2],u[0],u[1]):t[2];r=n.getRadius(u[0],u[1],o,s,a);0===r&&(r=null);i[f][2]=r;c.push(r)});n.radii=c},redrawHalo:s.redrawHalo,onMouseDown:s.onMouseDown,onMouseMove:s.onMouseMove,onMouseUp:function(n){if(n.fixedPosition&&!n.removed){var i,r,t=this.layout,u=this.parentNodeLayout;u&&t.options.dragBetweenSeries&&u.nodes.forEach(function(u){n&&n.marker&&u!==n.series.parentNode&&(i=t.getDistXY(n,u),r=t.vectorLength(i)-u.marker.radius-n.marker.radius,0>r&&(u.series.addPoint(h(n.options,{plotX:n.plotX,plotY:n.plotY}),!1),t.removeElementFromCollection(n,t.nodes),n.remove()))});s.onMouseUp.apply(this,arguments)}},destroy:function(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(function(n){n.removeElementFromCollection(this,n.series)},this);this.parentNode&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));i.Series.prototype.destroy.apply(this,arguments)},alignDataLabel:i.Series.prototype.alignDataLabel},{destroy:function(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),r.prototype.destroy.apply(this,arguments)},firePointEvent:function(){var n=this.series.options,t;this.isParentNode&&n.parentNode?(t=n.allowPointSelect,n.allowPointSelect=n.parentNode.allowPointSelect,r.prototype.firePointEvent.apply(this,arguments),n.allowPointSelect=t):r.prototype.firePointEvent.apply(this,arguments)},select:function(){var n=this.series.chart;this.isParentNode?(n.getSelectedPoints=n.getSelectedParentNodes,r.prototype.select.apply(this,arguments),n.getSelectedPoints=i.Chart.prototype.getSelectedPoints):r.prototype.select.apply(this,arguments)}});c(n,"beforeRedraw",function(){this.allDataPoints&&delete this.allDataPoints});""});t(n,"parts-more/Polar.js",[n["parts/Chart.js"],n["parts/Globals.js"],n["parts-more/Pane.js"],n["parts/Pointer.js"],n["parts/SVGRenderer.js"],n["parts/Utilities.js"]],function(n,t,i,r,u,f){var h=f.addEvent,y=f.animObject,a=f.defined,p=f.find,w=f.isNumber,c=f.pick,b=f.splat,k=f.uniqueKey,o=f.wrap,l=t.Series,e=t.seriesTypes,s=l.prototype,v;r=r.prototype;s.searchPointByAngle=function(n){var t=this.chart,i=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(n.chartX-i[0]-t.plotLeft,n.chartY-i[1]-t.plotTop)})};s.getConnectors=function(n,t,i,r){var u=r?1:0,f=0<=t&&t<=n.length-1?t:0>t?n.length-1+t:0,o,s,h,c,e,l;return t=0>f-1?n.length-(1+u):f-1,u=f+1>n.length-1?u:f+1,o=n[t],u=n[u],s=o.plotX,o=o.plotY,h=u.plotX,c=u.plotY,u=n[f].plotX,f=n[f].plotY,s=(1.5*u+s)/2.5,o=(1.5*f+o)/2.5,h=(1.5*u+h)/2.5,e=(1.5*f+c)/2.5,c=Math.sqrt(Math.pow(s-u,2)+Math.pow(o-f,2)),l=Math.sqrt(Math.pow(h-u,2)+Math.pow(e-f,2)),s=Math.atan2(o-f,s-u),e=Math.PI/2+(s+Math.atan2(e-f,h-u))/2,Math.abs(s-e)>Math.PI/2&&(e-=Math.PI),s=u+Math.cos(e)*c,o=f+Math.sin(e)*c,h=u+Math.cos(Math.PI+e)*l,e=f+Math.sin(Math.PI+e)*l,u={rightContX:h,rightContY:e,leftContX:s,leftContY:o,plotX:u,plotY:f},i&&(u.prevPointCont=this.getConnectors(n,t,!1,r)),u};s.toXY=function(n){var i=this.chart,o=this.xAxis,t=this.yAxis,r=n.plotX,u=n.plotY,s=n.series,f=i.inverted,h=n.y,e=f?r:t.len-u;f&&s&&!s.isRadialBar&&(n.plotY=u="number"==typeof h?t.translate(h)||0:0);n.rectPlotX=r;n.rectPlotY=u;t.center&&(e+=t.center[3]/2);t=f?t.postTranslate(u,e):o.postTranslate(r,e);n.plotX=n.polarPlotX=t.x-i.plotLeft;n.plotY=n.polarPlotY=t.y-i.plotTop;this.kdByAngle?(i=(r/Math.PI*180+o.pane.options.startAngle)%360,0>i&&(i+=360),n.clientX=i):n.clientX=n.plotX};e.spline&&(o(e.spline.prototype,"getPointSpline",function(n,t,i,r){return this.chart.polar?r?(n=this.getConnectors(t,r,!0,this.connectEnds),n=["C",n.prevPointCont.rightContX,n.prevPointCont.rightContY,n.leftContX,n.leftContY,n.plotX,n.plotY]):n=["M",i.plotX,i.plotY]:n=n.call(this,t,i,r),n}),e.areasplinerange&&(e.areasplinerange.prototype.getPointSpline=e.spline.prototype.getPointSpline));h(l,"afterTranslate",function(){var n=this.chart,i,r;if(n.polar&&this.xAxis){if((this.kdByAngle=n.tooltip&&n.tooltip.shared)?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy",!this.preventPostTranslate)for(i=this.points,r=i.length;r--;)this.toXY(i[r]),!n.hasParallelCoordinates&&!this.yAxis.reversed&&i[r].y<this.yAxis.min&&(i[r].isNull=!0);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(h(this,"afterRender",function(){if(n.polar){var i=this.yAxis.pane.center;this.clipCircle?this.clipCircle.animate({x:i[0],y:i[1],r:i[2]/2,innerR:i[3]/2}):this.clipCircle=n.renderer.clipCircle(i[0],i[1],i[2]/2,i[3]/2);this.group.clip(this.clipCircle);this.setClip=t.noop}})))}},{order:2});o(s,"getGraphPath",function(n,t){var f=this,i,r,u;if(this.chart.polar){for(t=t||this.points,i=0;i<t.length;i++)if(!t[i].isNull){r=i;break}!1!==this.options.connectEnds&&"undefined"!=typeof r&&(this.connectEnds=!0,t.splice(t.length,0,t[r]),u=!0);t.forEach(function(n){"undefined"==typeof n.polarPlotY&&f.toXY(n)})}return i=n.apply(this,[].slice.call(arguments,1)),u&&t.pop(),i});v=function(n,i){var r=this,f=this.chart,e=this.options.animation,a=this.group,o=this.markerGroup,h=this.xAxis.center,v=f.plotLeft,p=f.plotTop,s,u,w,b,l;f.polar?r.isRadialBar?i||(r.startAngleRad=c(r.translatedThreshold,r.xAxis.startAngleRad),t.seriesTypes.pie.prototype.animate.call(r,i)):f.renderer.isSVG&&((e=y(e),r.is("column"))?i||(l=h[3]/2,r.points.forEach(function(n){s=n.graphic;w=(u=n.shapeArgs)&&u.r;b=u&&u.innerR;s&&u&&(s.attr({r:l,innerR:l}),s.animate({r:w,innerR:b},r.options.animation))})):i?(n={translateX:h[0]+v,translateY:h[1]+p,scaleX:.001,scaleY:.001},a.attr(n),o&&o.attr(n)):(n={translateX:v,translateY:p,scaleX:1,scaleY:1},a.animate(n,e),o&&o.animate(n,e))):n.call(this,i)};o(s,"animate",v);e.column&&(l=e.arearange.prototype,e=e.column.prototype,e.polarArc=function(n,t,i,r){var f=this.xAxis.center,e=this.yAxis.len,u=f[3]/2;return t=e-t+u,n=e-c(n,e)+u,this.yAxis.reversed&&(0>t&&(t=u),0>n&&(n=u)),{x:f[0],y:f[1],r:t,innerR:n,start:i,end:r}},o(e,"animate",v),o(e,"translate",function(n){var t=this.options,g=t.stacking,p=this.chart,v=this.xAxis,u=this.yAxis,d=u.reversed,e=u.center,y=v.startAngleRad,b=v.endAngleRad-y,c,l,o,r,i;if(this.preventPostTranslate=!0,n.call(this),v.isRadial)for(n=this.points,v=n.length,c=u.translate(u.min),l=u.translate(u.max),t=t.threshold||0,p.inverted&&w(t)&&(o=u.translate(t),a(o)&&(0>o?o=0:o>b&&(o=b),this.translatedThreshold=o+y));v--;){t=n[v];var s=t.barX,k=t.x,h=t.y;t.shapeType="arc";p.inverted?(t.plotY=u.translate(h),g&&u.stacking?(h=u.stacking.stacks[(0>h?"-":"")+this.stackKey],this.visible&&h&&h[k]&&!t.isNull)&&(r=h[k].points[this.getStackIndicator(void 0,k,this.index).key],i=u.translate(r[0]),r=u.translate(r[1]),a(i)&&(i=f.clamp(i,0,b))):(i=o,r=t.plotY),i>r&&(r=[i,i=r][0]),d?r>c?r=c:i<l?i=l:(i>c||r<l)&&(i=r=b):i<c?i=c:r>l?r=l:(r<c||i>l)&&(i=r=0),u.min>u.max&&(i=r=d?b:0),i+=y,r+=y,e&&(t.barX=s+=e[3]/2),k=Math.max(s,0),h=Math.max(s+t.pointWidth,0),t.shapeArgs={x:e&&e[0],y:e&&e[1],r:h,innerR:k,start:i,end:r},t.opacity=i===r?0:void 0,t.plotY=(a(this.translatedThreshold)&&(i<this.translatedThreshold?i:r))-y):(i=s+y,t.shapeArgs=this.polarArc(t.yBottom,t.plotY,i,i+t.pointWidth));this.toXY(t);p.inverted?(s=u.postTranslate(t.rectPlotY,s+t.pointWidth/2),t.tooltipPos=[s.x-p.plotLeft,s.y-p.plotTop]):t.tooltipPos=[t.plotX,t.plotY];e&&(t.ttBelow=t.plotY>e[1])}}),e.findAlignments=function(n,t){return null===t.align&&(t.align=20<n&&160>n?"left":200<n&&340>n?"right":"center"),null===t.verticalAlign&&(t.verticalAlign=45>n||315<n?"bottom":135<n&&225>n?"top":"middle"),t},l&&(l.findAlignments=e.findAlignments),o(e,"alignDataLabel",function(n,t,i,r,u,f){var e=this.chart,o=c(r.inside,!!this.options.stacking);e.polar?(n=t.rectPlotX/Math.PI*180,e.inverted?(this.forceDL=e.isInsidePlot(t.plotX,Math.round(t.plotY),!1),o&&t.shapeArgs?(u=t.shapeArgs,u=this.yAxis.postTranslate((u.start+u.end)/2-this.xAxis.startAngleRad,t.barX+t.pointWidth/2),u={x:u.x-e.plotLeft,y:u.y-e.plotTop}):t.tooltipPos&&(u={x:t.tooltipPos[0],y:t.tooltipPos[1]}),r.align=c(r.align,"center"),r.verticalAlign=c(r.verticalAlign,"middle")):this.findAlignments&&(r=this.findAlignments(n,r)),s.alignDataLabel.call(this,t,i,r,u,f),this.isRadialBar&&t.shapeArgs&&t.shapeArgs.start===t.shapeArgs.end&&i.hide(!0)):n.call(this,t,i,r,u,f)}));o(r,"getCoordinates",function(n,t){var i=this.chart,r={xAxis:[],yAxis:[]};return i.polar?i.axes.forEach(function(n){var e=n.isXAxis,u=n.center,f;"colorAxis"!==n.coll&&(f=t.chartX-u[0]-i.plotLeft,u=t.chartY-u[1]-i.plotTop,r[e?"xAxis":"yAxis"].push({axis:n,value:n.translate(e?Math.PI-Math.atan2(f,u):Math.sqrt(Math.pow(f,2)+Math.pow(u,2)),!0)}))}):r=n.call(this,t),r});u.prototype.clipCircle=function(n,t,i,r){var f=k(),u=this.createElement("clipPath").attr({id:f}).add(this.defs);return n=r?this.arc(n,t,i,r,0,2*Math.PI).add(u):this.circle(n,t,i).add(u),n.id=f,n.clipPath=u,n};h(n,"getAxes",function(){this.pane||(this.pane=[]);b(this.options.pane).forEach(function(n){new i(n,this)},this)});h(n,"afterDrawChartBox",function(){this.pane.forEach(function(n){n.render()})});h(t.Series,"afterInit",function(){var n=this.chart;n.inverted&&n.polar&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0))});o(n.prototype,"get",function(n,t){return p(this.pane,function(n){return n.options.id===t})||n.call(this,t)})});t(n,"masters/highcharts-more.src.js",[],function(){})})