/* Highcharts JS v9.0.1 (2021-02-15) Boost module (c) 2010-2021 Highsoft AS Author: Torstein Honsi License: www.highcharts.com/license */ (function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/boost",["highcharts"],function(n){b(n);b.Highcharts=n;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function n(b,E,h,x){b.hasOwnProperty(E)||(b[E]=x.apply(null,h))}b=b?b._modules:{};n(b,"Extensions/Boost/Boostables.js",[],function(){return"area arearange column columnrange bar line scatter heatmap bubble treemap".split(" ")}); n(b,"Extensions/Boost/BoostableMap.js",[b["Extensions/Boost/Boostables.js"]],function(b){var I={};b.forEach(function(b){I[b]=1});return I});n(b,"Extensions/Boost/WGLShader.js",[b["Core/Utilities.js"]],function(b){var I=b.clamp,h=b.error,x=b.pick;return function(c){function b(){r.length&&h("[highcharts boost] shader error - "+r.join("\n"))}function u(a,G){var d=c.createShader("vertex"===G?c.VERTEX_SHADER:c.FRAGMENT_SHADER);c.shaderSource(d,a);c.compileShader(d);return c.getShaderParameter(d,c.COMPILE_STATUS)? d:(r.push("when compiling "+G+" shader:\n"+c.getShaderInfoLog(d)),!1)}function m(){function d(a){return c.getUniformLocation(e,a)}var G=u("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}", "vertex"),m=u("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment");if(!G||!m)return e=!1,b(),!1; e=c.createProgram();c.attachShader(e,G);c.attachShader(e,m);c.linkProgram(e);if(!c.getProgramParameter(e,c.LINK_STATUS))return r.push(c.getProgramInfoLog(e)),b(),e=!1;c.useProgram(e);c.bindAttribLocation(e,0,"aVertexPosition");f=d("uPMatrix");l=d("pSize");q=d("fillColor");z=d("isBubble");M=d("bubbleSizeAbs");y=d("bubbleSizeByArea");p=d("uSampler");N=d("skipTranslation");D=d("isCircle");a=d("isInverted");return!0}function t(a,G){c&&e&&(a=v[a]=v[a]||c.getUniformLocation(e,a),c.uniform1f(a,G))}var v= {},e,f,l,q,z,M,y,N,D,a,r=[],p;return c&&!m()?!1:{psUniform:function(){return l},pUniform:function(){return f},fillColorUniform:function(){return q},setBubbleUniforms:function(a,G,p){var d=a.options,f=Number.MAX_VALUE,b=-Number.MAX_VALUE;c&&e&&"bubble"===a.type&&(f=x(d.zMin,I(G,!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE,f)),b=x(d.zMax,Math.max(b,p)),c.uniform1i(z,1),c.uniform1i(D,1),c.uniform1i(y,"width"!==a.options.sizeBy),c.uniform1i(M,a.options.sizeByAbsoluteValue),t("bubbleZMin",f), t("bubbleZMax",b),t("bubbleZThreshold",a.options.zThreshold),t("bubbleMinSize",a.minPxSize),t("bubbleMaxSize",a.maxPxSize))},bind:function(){c&&e&&c.useProgram(e)},program:function(){return e},create:m,setUniform:t,setPMatrix:function(a){c&&e&&c.uniformMatrix4fv(f,!1,a)},setColor:function(a){c&&e&&c.uniform4f(q,a[0]/255,a[1]/255,a[2]/255,a[3])},setPointSize:function(a){c&&e&&c.uniform1f(l,a)},setSkipTranslation:function(a){c&&e&&c.uniform1i(N,!0===a?1:0)},setTexture:function(a){c&&e&&c.uniform1i(p, a)},setDrawAsCircle:function(a){c&&e&&c.uniform1i(D,a?1:0)},reset:function(){c&&e&&(c.uniform1i(z,0),c.uniform1i(D,0))},setInverted:function(d){c&&e&&c.uniform1i(a,d)},destroy:function(){c&&e&&(c.deleteProgram(e),e=!1)}}}});n(b,"Extensions/Boost/WGLVBuffer.js",[],function(){return function(b,E,h){function I(){c&&(b.deleteBuffer(c),k=c=!1);t=0;u=h||2;v=[]}var c=!1,k=!1,u=h||2,m=!1,t=0,v;return{destroy:I,bind:function(){if(!c)return!1;b.vertexAttribPointer(k,u,b.FLOAT,!1,0,0)},data:v,build:function(e, f,l){var q;v=e||[];if(!(v&&0!==v.length||m))return I(),!1;u=l||u;c&&b.deleteBuffer(c);m||(q=new Float32Array(v));c=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,c);b.bufferData(b.ARRAY_BUFFER,m||q,b.STATIC_DRAW);k=b.getAttribLocation(E.program(),f);b.enableVertexAttribArray(k);return!0},render:function(e,f,l){var q=m?m.length:v.length;if(!c||!q)return!1;if(!e||e>q||0>e)e=0;if(!f||f>q)f=q;b.drawArrays(b[(l||"points").toUpperCase()],e/u,(f-e)/u);return!0},allocate:function(b){t=-1;m=new Float32Array(4* b)},push:function(b,f,c,q){m&&(m[++t]=b,m[++t]=f,m[++t]=c,m[++t]=q)}}}});n(b,"Extensions/Boost/WGLRenderer.js",[b["Core/Color/Color.js"],b["Extensions/Boost/WGLShader.js"],b["Extensions/Boost/WGLVBuffer.js"],b["Core/Globals.js"],b["Core/Utilities.js"]],function(b,E,h,x,c){var I=b.parse,u=x.doc,m=c.isNumber,t=c.isObject,v=c.merge,e=c.objectEach,f=c.pick;return function(c){function l(a){if(a.isSeriesBoosting){var d=!!a.options.stacking;var b=a.xData||a.options.xData||a.processedXData;d=(d?a.data:b|| a.options.data).length;"treemap"===a.type?d*=12:"heatmap"===a.type?d*=6:ha[a.type]&&(d*=2);return d}return 0}function z(){g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT)}function M(a,d){function g(a){a&&(d.colorData.push(a[0]),d.colorData.push(a[1]),d.colorData.push(a[2]),d.colorData.push(a[3]))}function c(a,d,b,c,p){g(p);B.usePreallocated?(G.push(a,d,b?1:0,c||1),ma+=4):(S.push(a),S.push(d),S.push(b?1:0),S.push(c||1))}function f(){d.segments.length&&(d.segments[d.segments.length-1].to=S.length||ma)} function p(){d.segments.length&&d.segments[d.segments.length-1].from===(S.length||ma)||(f(),d.segments.push({from:S.length||ma}))}function D(a,d,b,p,f){g(f);c(a+b,d);g(f);c(a,d);g(f);c(a,d+p);g(f);c(a,d+p);g(f);c(a+b,d+p);g(f);c(a+b,d)}function r(a,b){B.useGPUTranslations||(d.skipTranslation=!0,a.x=x.toPixels(a.x,!0),a.y=v.toPixels(a.y,!0));b?S=[a.x,a.y,0,2].concat(S):c(a.x,a.y,0,2)}var l=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),e=a.chart,A=a.options,Y=!!A.stacking,q=A.data,m=a.xAxis.getExtremes(), h=m.min;m=m.max;var z=a.yAxis.getExtremes(),u=z.min;z=z.max;var y=a.xData||A.xData||a.processedXData,M=a.yData||A.yData||a.processedYData,k=a.zData||A.zData||a.processedZData,v=a.yAxis,x=a.xAxis,N=a.chart.plotWidth,R=!y||0===y.length,E=A.connectNulls,w=a.points||!1,n=!1,J=!1,H;y=Y?a.data:y||q;var P={x:Number.MAX_VALUE,y:0},L={x:-Number.MAX_VALUE,y:0},O=0,Ga=!1,K=-1,X=!1,ea=!1,W="undefined"===typeof e.index,ya=!1,Ba=!1;var C=!1;var Oa=ha[a.type],za=!1,Ha=!0,Ca=!0,la=A.zones||!1,fa=!1,Ia=A.threshold, Aa=!1;if(!(A.boostData&&0 d.node.levelDynamic)return 1;if(a.node.levelDynamicd.zMax&&(d.zMax=Q[2]);Q[2]d.zMax&&(d.zMax=k[K]),k[K]=h&&ea<=m&&(ya=!0);X&&X>=h&&X<=m&&(Ba=!0);if(l){R&&(F=Q.slice(1,3));var sa=F[0];F=F[1]}else Y&&(w=Q.x,F=Q.stackY,sa=F-Q.y);null!==u&&"undefined"!==typeof u&&null!==z&&"undefined"!==typeof z&&(Ha=F>=u&&F<=z);w>m&&L.xh&&(P.x=w,P.y=F);if(null!==F||!E)if(null!==F&&(Ha||ya||Ba)){if((ea>=h||w>=h)&&(X<=m||w<=m)&&(za=!0),za||ya||Ba){Aa&&w-X>Aa&&p();la&&(C=fa.rgba,la.some(function(a,d){d=la[d-1];if("undefined"!==typeof a.value&&F<=a.value){if(!d|| F>=d.value)C=I(a.color).rgba;return!0}return!1}),C[0]/=255,C[1]/=255,C[2]/=255);if(!B.useGPUTranslations&&(d.skipTranslation=!0,w=x.toPixels(w,!0),F=v.toPixels(F,!0),w>N&&"points"===d.drawMode))continue;d.hasMarkers&&za&&!1!==n&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(w-n)));if(!B.useGPUTranslations&&!B.usePreallocated&&n&&1>Math.abs(w-n)&&J&&1>Math.abs(F-J))B.debug.showSkipSummary&&++O;else{if(Oa){n=sa;if(!1===sa||"undefined"===typeof sa)n=0>F?F:0;l||Y||(n=Math.max(null=== Ia?u:Ia,u));B.useGPUTranslations||(n=v.toPixels(n,!0));c(w,n,0,0,C)}A.step&&!Ca&&c(w,J,0,2,C);c(w,F,0,"bubble"===a.type?Ja||1:2,C);n=w;J=F;Ga=!0;Ca=!1}}}else p()}else p()}B.debug.showSkipSummary&&console.log("skipped points:",O);Ga||!1===E||"line_strip"!==a.drawMode||(P.x-Number.MAX_VALUE&&r(L))}f()}}function y(){H=[];n.data=S=[];J=[];G&&G.destroy()}function N(a){d&&(d.setUniform("xAxisTrans",a.transA),d.setUniform("xAxisMin",a.min),d.setUniform("xAxisMinPad",a.minPixelPadding), d.setUniform("xAxisPointRange",a.pointRange),d.setUniform("xAxisLen",a.len),d.setUniform("xAxisPos",a.pos),d.setUniform("xAxisCVSCoord",!a.horiz),d.setUniform("xAxisIsLog",!!a.logarithmic),d.setUniform("xAxisReversed",!!a.reversed))}function D(a){d&&(d.setUniform("yAxisTrans",a.transA),d.setUniform("yAxisMin",a.min),d.setUniform("yAxisMinPad",a.minPixelPadding),d.setUniform("yAxisPointRange",a.pointRange),d.setUniform("yAxisLen",a.len),d.setUniform("yAxisPos",a.pos),d.setUniform("yAxisCVSCoord",!a.horiz), d.setUniform("yAxisIsLog",!!a.logarithmic),d.setUniform("yAxisReversed",!!a.reversed))}function a(a,b){d.setUniform("hasThreshold",a);d.setUniform("translatedThreshold",b)}function r(p){if(p)R=p.chartWidth||800,k=p.chartHeight||400;else return!1;if(!(g&&R&&k&&d))return!1;B.debug.timeRendering&&console.time("gl rendering");g.canvas.width=R;g.canvas.height=k;d.bind();g.viewport(0,0,R,k);d.setPMatrix([2/R,0,0,0,0,-(2/k),0,0,0,0,-2,0,-1,1,-1,1]);12*((l.marker?l.marker.radius:10)||10));e=W[e&&e.symbol||c.series.symbol]||W.circle;if(!(0===c.segments.length||c.segmentslength&&c.segments[0].from===c.segments[0].to)){e.isReady&& (g.bindTexture(g.TEXTURE_2D,e.handle),d.setTexture(e.handle));p.styledMode?e=c.series.markerGroup&&c.series.markerGroup.getStyle("fill"):(e="points"===c.drawMode&&c.series.pointAttribs&&c.series.pointAttribs().fill||c.series.color,l.colorByPoint&&(e=c.series.chart.options.colors[r]));c.series.fillOpacity&&l.fillOpacity&&(e=(new b(e)).setOpacity(f(l.fillOpacity,1)).get());e=I(e).rgba;B.useAlpha||(e[3]=1);"lines"===c.drawMode&&B.useAlpha&&1>e[3]&&(e[3]/=10);"add"===l.boostBlending?(g.blendFunc(g.SRC_ALPHA, g.ONE),g.blendEquation(g.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?g.blendFunc(g.DST_COLOR,g.ZERO):"darken"===l.boostBlending?(g.blendFunc(g.ONE,g.ONE),g.blendEquation(g.FUNC_MIN)):g.blendFuncSeparate(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA,g.ONE,g.ONE_MINUS_SRC_ALPHA);d.reset();0=(k.options.boostThreshold||Number.MAX_VALUE)&&++e)}b.boostForceChartBoost=m&&(h===b.series.length&&0=z&&p<=E);if(null!==p&&e>=t&&e<=x&&f)if(a=g.toPixels(e,!0),B){if("undefined"===typeof U||a===L){Z||(c=p);if("undefined"===typeof ca||p>ba)ba=p,ca=b;if("undefined"===typeof U||cplease use a modern browser")});l(c.prototype,{getContext:function(){var a=this.chart,b=a.chartWidth,c=a.chartHeight,d=a.seriesGroup||this.group,e=this,f=function(a,b,c,d,e,f,g){a.call(this,c,b,d,e,f,g)};a.isChartSeriesBoosting()&&(e=a,d=a.seriesGroup);var g=e.ctx;e.canvas||(e.canvas=t.createElement("canvas"),e.renderTarget= a.renderer.image("",0,0,b,c).addClass("highcharts-boost-canvas").add(d),e.ctx=g=e.canvas.getContext("2d"),a.inverted&&["moveTo","lineTo","rect","arc"].forEach(function(a){E(g,a,f)}),e.boostCopy=function(){e.renderTarget.attr({href:e.canvas.toDataURL("image/png")})},e.boostClear=function(){g.clearRect(0,0,e.canvas.width,e.canvas.height);e===this&&e.renderTarget.attr({href:""})},e.boostClipRect=a.renderer.clipRect(),e.renderTarget.clip(e.boostClipRect));e.canvas.width!==b&&(e.canvas.width=b);e.canvas.height!== c&&(e.canvas.height=c);e.renderTarget.attr({x:0,y:0,width:b,height:c,style:"pointer-events: none",href:""});e.boostClipRect.attr(a.getBoostClipRect(e));return g},canvasToSVG:function(){this.chart.isChartSeriesBoosting()?this.boostClear&&this.boostClear():(this.boostCopy||this.chart.boostCopy)&&(this.boostCopy||this.chart.boostCopy)()},cvsLineTo:function(a,b,c){a.lineTo(b,c)},renderCanvas:function(){var a=this,b=a.options,c=a.chart,d=this.xAxis,e=this.yAxis,k=(c.options.boost||{}).timeRendering||!1, g=0,t=a.processedXData,E=a.processedYData,N=b.data,J=d.getExtremes(),M=J.min,P=J.max;J=e.getExtremes();var H=J.min,W=J.max,ha={},L,B=!!a.sampling,A=b.marker&&b.marker.radius,Y=this.cvsDrawPoint,Z=b.lineWidth?this.cvsLineTo:void 0,ia=A&&1>=A?this.cvsMarkerSquare:this.cvsMarkerCircle,na=this.cvsStrokeBatch||1E3,ta=!1!==b.enableMouseTracking,ja;J=b.threshold;var T=e.getThreshold(J),ba=z(J),U=T,ca=this.fill,pa=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),ka=!!b.stacking,da=a.cropStart||0;J= c.options.loading;var qa=a.requireSorting,ra,Ka=b.connectNulls,Da=!t,ua,va,aa,oa,wa,V=ka?a.data:t||N,La=a.fillOpacity?(new n(a.color)).setOpacity(y(b.fillOpacity,.75)).get():a.color,w=function(){ca?(O.fillStyle=La,O.fill()):(O.strokeStyle=a.color,O.lineWidth=b.lineWidth,O.stroke())},Ea=function(b,d,e,f){0===g&&(O.beginPath(),Z&&(O.lineJoin="round"));c.scroller&&"highcharts-navigator-series"===a.options.className?(d+=c.scroller.top,e&&(e+=c.scroller.top)):d+=c.plotTop;b+=c.plotLeft;ra?O.moveTo(b,d): Y?Y(O,b,d,e,ja):Z?Z(O,b,d):ia&&ia.call(a,O,b,d,A,f);g+=1;g===na&&(w(),g=0);ja={clientX:b,plotY:d,yBottom:e}},Ma="x"===b.findNearestPointBy,Fa=this.xData||this.options.xData||this.processedXData||!1,xa=function(a,b,f){wa=Ma?a:a+","+b;ta&&!ha[wa]&&(ha[wa]=!0,c.inverted&&(a=d.len-a,b=e.len-b),Na.push({x:Fa?Fa[da+f]:!1,clientX:a,plotX:a,plotY:b,i:da+f}))};this.renderTarget&&this.renderTarget.attr({href:""});(this.points||this.graph)&&this.destroyGraphics();a.plotGroup("group","series",a.visible?"visible": "hidden",b.zIndex,c.seriesGroup);a.markerGroup=a.group;f(a,"destroy",function(){a.markerGroup=null});var Na=this.points=[];var O=this.getContext();a.buildKDTree=v;this.boostClear&&this.boostClear();this.visible&&(99999=M&&D<=P&&(g=!0);h&&h>=M&&h<=P&&(p=!0);if(pa){Da&&(r=b.slice(1,3));var n=r[0];r=r[1]}else ka&&(k=b.x,r=b.stackY,n=r-b.y);b=null===r;qa||(m=r>=H&&r<=W);if(!b&&(k>=M&&k<=P&&m||g||p))if(k=Math.round(d.toPixels(k,!0)),B){if("undefined"===typeof aa||k===L){pa||(n=r);if("undefined"=== typeof oa||r>va)va=r,oa=f;if("undefined"===typeof aa||n=b.length?(a.y=Math.min(b[0].pos,a.y),a.height=b[0].pos-this.plotTop+b[0].len):a.height=this.plotHeight);return a};h.prototype.getPoint=function(b){var a=b,c=this.xData||this.options.xData||this.processedXData||!1;!b||b instanceof this.pointClass||(a=(new this.pointClass).init(this,this.options.data[b.i],c?c[b.i]:void 0),a.category=q(this.xAxis.categories?this.xAxis.categories[a.x]:a.x,a.x),a.dist=b.dist,a.distX=b.distX,a.plotX=b.plotX,a.plotY=b.plotY,a.index=b.i,a.isInside=this.isPointInside(b)); return a};z(h.prototype,"searchPoint",function(b){return this.getPoint(b.apply(this,[].slice.call(arguments,1)))});z(n.prototype,"haloPath",function(b){var a=this.series,c=this.plotX,e=this.plotY,d=a.chart.inverted;a.isSeriesBoosting&&d&&(this.plotX=a.yAxis.len-e,this.plotY=a.xAxis.len-c);var f=b.apply(this,Array.prototype.slice.call(arguments,1));a.isSeriesBoosting&&d&&(this.plotX=c,this.plotY=e);return f});z(h.prototype,"markerAttribs",function(b,a){var c=a.plotX,e=a.plotY,d=this.chart.inverted; this.isSeriesBoosting&&d&&(a.plotX=this.yAxis.len-e,a.plotY=this.xAxis.len-c);var f=b.apply(this,Array.prototype.slice.call(arguments,1));this.isSeriesBoosting&&d&&(a.plotX=c,a.plotY=e);return f});x(h,"destroy",function(){var b=this,a=b.chart;a.markerGroup===b.markerGroup&&(b.markerGroup=null);a.hoverPoints&&(a.hoverPoints=a.hoverPoints.filter(function(a){return a.series===b}));a.hoverPoint&&a.hoverPoint.series===b&&(a.hoverPoint=null)});z(h.prototype,"getExtremes",function(b){return this.isSeriesBoosting&& this.hasExtremes&&this.hasExtremes()?{}:b.apply(this,Array.prototype.slice.call(arguments,1))});["translate","generatePoints","drawTracker","drawPoints","render"].forEach(function(b){function a(a){var c=this.options.stacking&&("translate"===b||"generatePoints"===b);if(!this.isSeriesBoosting||c||!I(this.chart)||"heatmap"===this.type||"treemap"===this.type||!m[this.type]||0===this.options.boostThreshold)a.call(this);else if(this[b+"Canvas"])this[b+"Canvas"]()}z(h.prototype,b,a);"translate"===b&&"column bar arearange columnrange heatmap treemap".split(" ").forEach(function(c){t[c]&& z(t[c].prototype,b,a)})});z(h.prototype,"processData",function(b){function a(a){return c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,e=this.options.data;I(this.chart)&&m[this.type]?(a(e)&&"heatmap"!==this.type&&"treemap"!==this.type&&!this.options.stacking&&this.hasExtremes&&this.hasExtremes(!0)||(b.apply(this,Array.prototype.slice.call(arguments,1)),e=this.processedXData),(this.isSeriesBoosting=a(e))?(e=this.getFirstValidPoint(this.options.data), l(e)||f(e)||v(12,!1,this.chart),this.enterBoost()):this.exitBoost&&this.exitBoost()):b.apply(this,Array.prototype.slice.call(arguments,1))});x(h,"hide",function(){this.canvas&&this.renderTarget&&(this.ogl&&this.ogl.clear(),this.boostClear())});h.prototype.enterBoost=function(){this.alteredByBoost=[];["allowDG","directTouch","stickyTracking"].forEach(function(b){this.alteredByBoost.push({prop:b,val:this[b],own:Object.hasOwnProperty.call(this,b)})},this);this.directTouch=this.allowDG=!1;this.finishedAnimating= this.stickyTracking=!0;this.labelBySeries&&(this.labelBySeries=this.labelBySeries.destroy())};h.prototype.exitBoost=function(){(this.alteredByBoost||[]).forEach(function(b){b.own?this[b.prop]=b.val:delete this[b.prop]},this);this.boostClear&&this.boostClear()};h.prototype.hasExtremes=function(b){var a=this.options,c=this.xAxis&&this.xAxis.options,e=this.yAxis&&this.yAxis.options,d=this.colorAxis&&this.colorAxis.options;return a.data.length>(a.boostThreshold||Number.MAX_VALUE)&&l(e.min)&&l(e.max)&& (!b||l(c.min)&&l(c.max))&&(!d||l(d.min)&&l(d.max))};h.prototype.destroyGraphics=function(){var b=this,a=this,c=this.points,e,d;if(c)for(d=0;d