dotfiles/vscode/.vscode/extensions/randomfractalsinc.vscode-data-preview-2.3.0/node_modules/highcharts/js/highstock.js
Errol Sancaktar ff17c17e23 vscode
2024-06-14 09:31:58 -06:00

516 lines
254 KiB
JavaScript

/*
Highstock JS v6.1.0 (2018-04-13)
(c) 2009-2016 Torstein Honsi
License: www.highcharts.com/license
*/
(function(U,K){"object"===typeof module&&module.exports?module.exports=U.document?K(U):K:U.Highcharts=K(U)})("undefined"!==typeof window?window:this,function(U){var K=function(){var a="undefined"===typeof U?window:U,F=a.document,G=a.navigator&&a.navigator.userAgent||"",H=F&&F.createElementNS&&!!F.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,r=/(edge|msie|trident)/i.test(G)&&!a.opera,k=-1!==G.indexOf("Firefox"),f=-1!==G.indexOf("Chrome"),u=k&&4>parseInt(G.split("Firefox/")[1],
10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock",version:"6.1.0",deg2rad:2*Math.PI/360,doc:F,hasBidiBug:u,hasTouch:F&&void 0!==F.documentElement.ontouchstart,isMS:r,isWebKit:-1!==G.indexOf("AppleWebKit"),isFirefox:k,isChrome:f,isSafari:!f&&-1!==G.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(G),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:H,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},
charts:[]}}();(function(a){a.timers=[];var F=a.charts,G=a.doc,H=a.win;a.error=function(r,k){r=a.isNumber(r)?"Highcharts error #"+r+": www.highcharts.com/errors/"+r:r;if(k)throw Error(r);H.console&&console.log(r)};a.Fx=function(a,k,f){this.options=k;this.elem=a;this.prop=f};a.Fx.prototype={dSetter:function(){var a=this.paths[0],k=this.paths[1],f=[],u=this.now,y=a.length,v;if(1===u)f=this.toD;else if(y===k.length&&1>u)for(;y--;)v=parseFloat(a[y]),f[y]=isNaN(v)?k[y]:u*parseFloat(k[y]-v)+v;else f=k;this.elem.attr("d",
f,null,!0)},update:function(){var a=this.elem,k=this.prop,f=this.now,u=this.options.step;if(this[k+"Setter"])this[k+"Setter"]();else a.attr?a.element&&a.attr(k,f,null,!0):a.style[k]=f+this.unit;u&&u.call(a,f,this)},run:function(r,k,f){var u=this,y=u.options,v=function(a){return v.stopped?!1:u.step(a)},q=H.requestAnimationFrame||function(a){setTimeout(a,13)},d=function(){for(var c=0;c<a.timers.length;c++)a.timers[c]()||a.timers.splice(c--,1);a.timers.length&&q(d)};r!==k||this.elem["forceAnimate:"+
this.prop]?(this.startTime=+new Date,this.start=r,this.end=k,this.unit=f,this.now=this.start,this.pos=0,v.elem=this.elem,v.prop=this.prop,v()&&1===a.timers.push(v)&&q(d)):(delete y.curAnim[this.prop],y.complete&&0===a.keys(y.curAnim).length&&y.complete.call(this.elem))},step:function(r){var k=+new Date,f,u=this.options,y=this.elem,v=u.complete,q=u.duration,d=u.curAnim;y.attr&&!y.element?r=!1:r||k>=q+this.startTime?(this.now=this.end,this.pos=1,this.update(),f=d[this.prop]=!0,a.objectEach(d,function(a){!0!==
a&&(f=!1)}),f&&v&&v.call(y),r=!1):(this.pos=u.easing((k-this.startTime)/q),this.now=this.start+(this.end-this.start)*this.pos,this.update(),r=!0);return r},initPath:function(r,k,f){function u(a){var b,c;for(l=a.length;l--;)b="M"===a[l]||"L"===a[l],c=/[a-zA-Z]/.test(a[l+3]),b&&c&&a.splice(l+1,0,a[l+1],a[l+2],a[l+1],a[l+2])}function y(a,b){for(;a.length<n;){a[0]=b[n-a.length];var c=a.slice(0,p);[].splice.apply(a,[0,0].concat(c));h&&(c=a.slice(a.length-p),[].splice.apply(a,[a.length,0].concat(c)),l--)}a[0]=
"M"}function v(a,c){for(var l=(n-a.length)/p;0<l&&l--;)b=a.slice().splice(a.length/E-p,p*E),b[0]=c[n-p-l*p],z&&(b[p-6]=b[p-2],b[p-5]=b[p-1]),[].splice.apply(a,[a.length/E,0].concat(b)),h&&l--}k=k||"";var q,d=r.startX,c=r.endX,z=-1<k.indexOf("C"),p=z?7:3,n,b,l;k=k.split(" ");f=f.slice();var h=r.isArea,E=h?2:1,B;z&&(u(k),u(f));if(d&&c){for(l=0;l<d.length;l++)if(d[l]===c[0]){q=l;break}else if(d[0]===c[c.length-d.length+l]){q=l;B=!0;break}void 0===q&&(k=[])}k.length&&a.isNumber(q)&&(n=f.length+q*E*p,
B?(y(k,f),v(f,k)):(y(f,k),v(k,f)));return[k,f]}};a.Fx.prototype.fillSetter=a.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)};a.merge=function(){var r,k=arguments,f,u={},y=function(f,q){"object"!==typeof f&&(f={});a.objectEach(q,function(d,c){!a.isObject(d,!0)||a.isClass(d)||a.isDOMElement(d)?f[c]=q[c]:f[c]=y(f[c]||{},d)});return f};!0===k[0]&&(u=k[1],k=Array.prototype.slice.call(k,2));f=k.length;for(r=0;r<f;r++)u=y(u,
k[r]);return u};a.pInt=function(a,k){return parseInt(a,k||10)};a.isString=function(a){return"string"===typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(r,k){return!!r&&"object"===typeof r&&(!k||!a.isArray(r))};a.isDOMElement=function(r){return a.isObject(r)&&"number"===typeof r.nodeType};a.isClass=function(r){var k=r&&r.constructor;return!(!a.isObject(r,!0)||a.isDOMElement(r)||!k||!k.name||"Object"===
k.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a};a.erase=function(a,k){for(var f=a.length;f--;)if(a[f]===k){a.splice(f,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(r,k,f){var u;a.isString(k)?a.defined(f)?r.setAttribute(k,f):r&&r.getAttribute&&((u=r.getAttribute(k))||"class"!==k||(u=r.getAttribute(k+"Name"))):a.defined(k)&&a.isObject(k)&&a.objectEach(k,function(a,f){r.setAttribute(f,a)});return u};a.splat=function(r){return a.isArray(r)?
r:[r]};a.syncTimeout=function(a,k,f){if(k)return setTimeout(a,k,f);a.call(0,f)};a.clearTimeout=function(r){a.defined(r)&&clearTimeout(r)};a.extend=function(a,k){var f;a||(a={});for(f in k)a[f]=k[f];return a};a.pick=function(){var a=arguments,k,f,u=a.length;for(k=0;k<u;k++)if(f=a[k],void 0!==f&&null!==f)return f};a.css=function(r,k){a.isMS&&!a.svg&&k&&void 0!==k.opacity&&(k.filter="alpha(opacity\x3d"+100*k.opacity+")");a.extend(r.style,k)};a.createElement=function(r,k,f,u,y){r=G.createElement(r);var v=
a.css;k&&a.extend(r,k);y&&v(r,{padding:0,border:"none",margin:0});f&&v(r,f);u&&u.appendChild(r);return r};a.extendClass=function(r,k){var f=function(){};f.prototype=new r;a.extend(f.prototype,k);return f};a.pad=function(a,k,f){return Array((k||2)+1-String(a).replace("-","").length).join(f||0)+a};a.relativeLength=function(a,k,f){return/%$/.test(a)?k*parseFloat(a)/100+(f||0):parseFloat(a)};a.wrap=function(a,k,f){var u=a[k];a[k]=function(){var a=Array.prototype.slice.call(arguments),v=arguments,q=this;
q.proceed=function(){u.apply(q,arguments.length?arguments:v)};a.unshift(u);a=f.apply(this,a);q.proceed=null;return a}};a.formatSingle=function(r,k,f){var u=/\.([0-9])/,y=a.defaultOptions.lang;/f$/.test(r)?(f=(f=r.match(u))?f[1]:-1,null!==k&&(k=a.numberFormat(k,f,y.decimalPoint,-1<r.indexOf(",")?y.thousandsSep:""))):k=(f||a.time).dateFormat(r,k);return k};a.format=function(r,k,f){for(var u="{",y=!1,v,q,d,c,z=[],p;r;){u=r.indexOf(u);if(-1===u)break;v=r.slice(0,u);if(y){v=v.split(":");q=v.shift().split(".");
c=q.length;p=k;for(d=0;d<c;d++)p&&(p=p[q[d]]);v.length&&(p=a.formatSingle(v.join(":"),p,f));z.push(p)}else z.push(v);r=r.slice(u+1);u=(y=!y)?"}":"{"}z.push(r);return z.join("")};a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(r,k,f,u,y){var v,q=r;f=a.pick(f,1);v=r/f;k||(k=y?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===u&&(1===f?k=a.grep(k,function(a){return 0===a%1}):.1>=f&&(k=[1/f])));for(u=0;u<k.length&&!(q=k[u],y&&q*f>=r||
!y&&v<=(k[u]+(k[u+1]||k[u]))/2);u++);return q=a.correctFloat(q*f,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,k){var f=a.length,u,y;for(y=0;y<f;y++)a[y].safeI=y;a.sort(function(a,q){u=k(a,q);return 0===u?a.safeI-q.safeI:u});for(y=0;y<f;y++)delete a[y].safeI};a.arrayMin=function(a){for(var k=a.length,f=a[0];k--;)a[k]<f&&(f=a[k]);return f};a.arrayMax=function(a){for(var k=a.length,f=a[0];k--;)a[k]>f&&(f=a[k]);return f};a.destroyObjectProperties=function(r,k){a.objectEach(r,function(a,
u){a&&a!==k&&a.destroy&&a.destroy();delete r[u]})};a.discardElement=function(r){var k=a.garbageBin;k||(k=a.createElement("div"));r&&k.appendChild(r);k.innerHTML=""};a.correctFloat=function(a,k){return parseFloat(a.toPrecision(k||14))};a.setAnimation=function(r,k){k.renderer.globalAnimation=a.pick(r,k.options.chart.animation,!0)};a.animObject=function(r){return a.isObject(r)?a.merge(r):{duration:r?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,
year:314496E5};a.numberFormat=function(r,k,f,u){r=+r||0;k=+k;var y=a.defaultOptions.lang,v=(r.toString().split(".")[1]||"").split("e")[0].length,q,d,c=r.toString().split("e");-1===k?k=Math.min(v,20):a.isNumber(k)?k&&c[1]&&0>c[1]&&(q=k+ +c[1],0<=q?(c[0]=(+c[0]).toExponential(q).split("e")[0],k=q):(c[0]=c[0].split(".")[0]||0,r=20>k?(c[0]*Math.pow(10,c[1])).toFixed(k):0,c[1]=0)):k=2;d=(Math.abs(c[1]?c[0]:r)+Math.pow(10,-Math.max(k,v)-1)).toFixed(k);v=String(a.pInt(d));q=3<v.length?v.length%3:0;f=a.pick(f,
y.decimalPoint);u=a.pick(u,y.thousandsSep);r=(0>r?"-":"")+(q?v.substr(0,q)+u:"");r+=v.substr(q).replace(/(\d{3})(?=\d)/g,"$1"+u);k&&(r+=f+d.slice(-k));c[1]&&0!==+r&&(r+="e"+c[1]);return r};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(r,k,f){if("width"===k)return Math.min(r.offsetWidth,r.scrollWidth)-a.getStyle(r,"padding-left")-a.getStyle(r,"padding-right");if("height"===k)return Math.min(r.offsetHeight,r.scrollHeight)-a.getStyle(r,"padding-top")-a.getStyle(r,
"padding-bottom");H.getComputedStyle||a.error(27,!0);if(r=H.getComputedStyle(r,void 0))r=r.getPropertyValue(k),a.pick(f,"opacity"!==k)&&(r=a.pInt(r));return r};a.inArray=function(r,k,f){return(a.indexOfPolyfill||Array.prototype.indexOf).call(k,r,f)};a.grep=function(r,k){return(a.filterPolyfill||Array.prototype.filter).call(r,k)};a.find=Array.prototype.find?function(a,k){return a.find(k)}:function(a,k){var f,u=a.length;for(f=0;f<u;f++)if(k(a[f],f))return a[f]};a.some=function(r,k,f){return(a.somePolyfill||
Array.prototype.some).call(r,k,f)};a.map=function(a,k){for(var f=[],u=0,y=a.length;u<y;u++)f[u]=k.call(a[u],a[u],u,a);return f};a.keys=function(r){return(a.keysPolyfill||Object.keys).call(void 0,r)};a.reduce=function(r,k,f){return(a.reducePolyfill||Array.prototype.reduce).call(r,k,f)};a.offset=function(a){var k=G.documentElement;a=a.parentElement?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(H.pageYOffset||k.scrollTop)-(k.clientTop||0),left:a.left+(H.pageXOffset||k.scrollLeft)-(k.clientLeft||
0)}};a.stop=function(r,k){for(var f=a.timers.length;f--;)a.timers[f].elem!==r||k&&k!==a.timers[f].prop||(a.timers[f].stopped=!0)};a.each=function(r,k,f){return(a.forEachPolyfill||Array.prototype.forEach).call(r,k,f)};a.objectEach=function(a,k,f){for(var u in a)a.hasOwnProperty(u)&&k.call(f||a[u],a[u],u,a)};a.addEvent=function(r,k,f){var u,y=r.addEventListener||a.addEventListenerPolyfill;u="function"===typeof r&&r.prototype?r.prototype.protoEvents=r.prototype.protoEvents||{}:r.hcEvents=r.hcEvents||
{};y&&y.call(r,k,f,!1);u[k]||(u[k]=[]);u[k].push(f);return function(){a.removeEvent(r,k,f)}};a.removeEvent=function(r,k,f){function u(d,c){var z=r.removeEventListener||a.removeEventListenerPolyfill;z&&z.call(r,d,c,!1)}function y(d){var c,z;r.nodeName&&(k?(c={},c[k]=!0):c=d,a.objectEach(c,function(a,c){if(d[c])for(z=d[c].length;z--;)u(c,d[c][z])}))}var v,q;a.each(["protoEvents","hcEvents"],function(d){var c=r[d];c&&(k?(v=c[k]||[],f?(q=a.inArray(f,v),-1<q&&(v.splice(q,1),c[k]=v),u(k,f)):(y(c),c[k]=
[])):(y(c),r[d]={}))})};a.fireEvent=function(r,k,f,u){var y,v,q,d,c;f=f||{};G.createEvent&&(r.dispatchEvent||r.fireEvent)?(y=G.createEvent("Events"),y.initEvent(k,!0,!0),a.extend(y,f),r.dispatchEvent?r.dispatchEvent(y):r.fireEvent(k,y)):a.each(["protoEvents","hcEvents"],function(z){if(r[z])for(v=r[z][k]||[],q=v.length,f.target||a.extend(f,{preventDefault:function(){f.defaultPrevented=!0},target:r,type:k}),d=0;d<q;d++)(c=v[d])&&!1===c.call(r,f)&&f.preventDefault()});u&&!f.defaultPrevented&&u.call(r,
f)};a.animate=function(r,k,f){var u,y="",v,q,d;a.isObject(f)||(d=arguments,f={duration:d[2],easing:d[3],complete:d[4]});a.isNumber(f.duration)||(f.duration=400);f.easing="function"===typeof f.easing?f.easing:Math[f.easing]||Math.easeInOutSine;f.curAnim=a.merge(k);a.objectEach(k,function(c,d){a.stop(r,d);q=new a.Fx(r,f,d);v=null;"d"===d?(q.paths=q.initPath(r,r.d,k.d),q.toD=k.d,u=0,v=1):r.attr?u=r.attr(d):(u=parseFloat(a.getStyle(r,d))||0,"opacity"!==d&&(y="px"));v||(v=c);v&&v.match&&v.match("px")&&
(v=v.replace(/px/g,""));q.run(u,v,y)})};a.seriesType=function(r,k,f,u,y){var v=a.getOptions(),q=a.seriesTypes;v.plotOptions[r]=a.merge(v.plotOptions[k],f);q[r]=a.extendClass(q[k]||function(){},u);q[r].prototype.type=r;y&&(q[r].prototype.pointClass=a.extendClass(a.Point,y));return q[r]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),k=0;return function(){return"highcharts-"+a+"-"+k++}}();H.jQuery&&(H.jQuery.fn.highcharts=function(){var r=[].slice.call(arguments);if(this[0])return r[0]?
(new (a[a.isString(r[0])?r.shift():"Chart"])(this[0],r[0],r[1]),this):F[a.attr(this[0],"data-highcharts-chart")]})})(K);(function(a){var F=a.each,G=a.isNumber,H=a.map,r=a.merge,k=a.pInt;a.Color=function(f){if(!(this instanceof a.Color))return new a.Color(f);this.init(f)};a.Color.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[k(a[1]),k(a[2]),k(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
parse:function(a){return[k(a[1]),k(a[2]),k(a[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(f){var k,y,v,q;if((this.input=f=this.names[f&&f.toLowerCase?f.toLowerCase():""]||f)&&f.stops)this.stops=H(f.stops,function(d){return new a.Color(d[1])});else if(f&&f.charAt&&"#"===f.charAt()&&(k=f.length,f=parseInt(f.substr(1),16),7===k?y=[(f&16711680)>>16,(f&65280)>>8,f&255,1]:4===k&&(y=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])),!y)for(v=this.parsers.length;v--&&
!y;)q=this.parsers[v],(k=q.regex.exec(f))&&(y=q.parse(k));this.rgba=y||[]},get:function(a){var f=this.input,k=this.rgba,v;this.stops?(v=r(f),v.stops=[].concat(v.stops),F(this.stops,function(q,d){v.stops[d]=[v.stops[d][0],q.get(a)]})):v=k&&G(k[0])?"rgb"===a||!a&&1===k[3]?"rgb("+k[0]+","+k[1]+","+k[2]+")":"a"===a?k[3]:"rgba("+k.join(",")+")":f;return v},brighten:function(a){var f,y=this.rgba;if(this.stops)F(this.stops,function(f){f.brighten(a)});else if(G(a)&&0!==a)for(f=0;3>f;f++)y[f]+=k(255*a),0>
y[f]&&(y[f]=0),255<y[f]&&(y[f]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,k){var f=this.rgba,v=a.rgba;v.length&&f&&f.length?(a=1!==v[3]||1!==f[3],k=(a?"rgba(":"rgb(")+Math.round(v[0]+(f[0]-v[0])*(1-k))+","+Math.round(v[1]+(f[1]-v[1])*(1-k))+","+Math.round(v[2]+(f[2]-v[2])*(1-k))+(a?","+(v[3]+(f[3]-v[3])*(1-k)):"")+")"):k=a.input||"none";return k}};a.color=function(f){return new a.Color(f)}})(K);(function(a){var F,G,H=a.addEvent,r=a.animate,k=a.attr,f=a.charts,
u=a.color,y=a.css,v=a.createElement,q=a.defined,d=a.deg2rad,c=a.destroyObjectProperties,z=a.doc,p=a.each,n=a.extend,b=a.erase,l=a.grep,h=a.hasTouch,E=a.inArray,B=a.isArray,t=a.isFirefox,I=a.isMS,w=a.isObject,m=a.isString,D=a.isWebKit,e=a.merge,x=a.noop,J=a.objectEach,g=a.pick,C=a.pInt,P=a.removeEvent,A=a.splat,L=a.stop,X=a.svg,V=a.SVG_NS,M=a.symbolSizes,O=a.win;F=a.SVGElement=function(){return this};n(F.prototype,{opacity:1,SVG_NS:V,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),
init:function(a,g){this.element="span"===g?v(g):z.createElementNS(this.SVG_NS,g);this.renderer=a},animate:function(e,b,A){b=a.animObject(g(b,this.renderer.globalAnimation,!0));0!==b.duration?(A&&(b.complete=A),r(this,e,b)):(this.attr(e,null,A),b.step&&b.step.call(this));return this},complexColor:function(g,b,A){var C=this.renderer,m,c,h,x,N,l,d,n,D,t,L,w=[],E;a.fireEvent(this.renderer,"complexColor",{args:arguments},function(){g.radialGradient?c="radialGradient":g.linearGradient&&(c="linearGradient");
c&&(h=g[c],N=C.gradients,d=g.stops,t=A.radialReference,B(h)&&(g[c]=h={x1:h[0],y1:h[1],x2:h[2],y2:h[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===c&&t&&!q(h.gradientUnits)&&(x=h,h=e(h,C.getRadialAttr(t,x),{gradientUnits:"userSpaceOnUse"})),J(h,function(a,g){"id"!==g&&w.push(g,a)}),J(d,function(a){w.push(a)}),w=w.join(","),N[w]?L=N[w].attr("id"):(h.id=L=a.uniqueKey(),N[w]=l=C.createElement(c).attr(h).add(C.defs),l.radAttr=x,l.stops=[],p(d,function(g){0===g[1].indexOf("rgba")?(m=a.color(g[1]),
n=m.get("rgb"),D=m.get("a")):(n=g[1],D=1);g=C.createElement("stop").attr({offset:g[0],"stop-color":n,"stop-opacity":D}).add(l);l.stops.push(g)})),E="url("+C.url+"#"+L+")",A.setAttribute(b,E),A.gradient=w,g.toString=function(){return E})})},applyTextOutline:function(g){var e=this.element,A,C,m,c,h;-1!==g.indexOf("contrast")&&(g=g.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));g=g.split(" ");C=g[g.length-1];if((m=g[0])&&"none"!==m&&a.svg){this.fakeTS=!0;g=[].slice.call(e.getElementsByTagName("tspan"));
this.ySetter=this.xSetter;m=m.replace(/(^[\d\.]+)(.*?)$/g,function(a,g,e){return 2*g+e});for(h=g.length;h--;)A=g[h],"highcharts-text-outline"===A.getAttribute("class")&&b(g,e.removeChild(A));c=e.firstChild;p(g,function(a,g){0===g&&(a.setAttribute("x",e.getAttribute("x")),g=e.getAttribute("y"),a.setAttribute("y",g||0),null===g&&e.setAttribute("y",0));a=a.cloneNode(1);k(a,{"class":"highcharts-text-outline",fill:C,stroke:C,"stroke-width":m,"stroke-linejoin":"round"});e.insertBefore(a,c)})}},attr:function(a,
g,e,b){var A,C=this.element,m,c=this,h,x;"string"===typeof a&&void 0!==g&&(A=a,a={},a[A]=g);"string"===typeof a?c=(this[a+"Getter"]||this._defaultGetter).call(this,a,C):(J(a,function(g,e){h=!1;b||L(this,e);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(e)&&(m||(this.symbolAttr(a),m=!0),h=!0);!this.rotation||"x"!==e&&"y"!==e||(this.doTransform=!0);h||(x=this[e+"Setter"]||this._defaultSetter,x.call(this,g,e,C))},this),this.afterSetters());e&&e.call(this);return c},afterSetters:function(){this.doTransform&&
(this.updateTransform(),this.doTransform=!1)},addClass:function(a,g){var e=this.attr("class")||"";-1===e.indexOf(a)&&(g||(a=(e+(e?" ":"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==E(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var e=this;p("x y r start end width height innerR anchorX anchorY".split(" "),function(b){e[b]=g(a[b],e[b])});e.attr({d:e.renderer.symbols[e.symbolName](e.x,
e.y,e.width,e.height,e)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,g){var e;g=g||a.strokeWidth||0;e=Math.round(g)%2/2;a.x=Math.floor(a.x||this.x||0)+e;a.y=Math.floor(a.y||this.y||0)+e;a.width=Math.floor((a.width||this.width||0)-2*e);a.height=Math.floor((a.height||this.height||0)-2*e);q(a.strokeWidth)&&(a.strokeWidth=g);return a},css:function(a){var g=this.styles,e={},b=this.element,A,m="",c,h=!g,x=["textOutline","textOverflow",
"width"];a&&a.color&&(a.fill=a.color);g&&J(a,function(a,b){a!==g[b]&&(e[b]=a,h=!0)});h&&(g&&(a=n(g,e)),A=this.textWidth=a&&a.width&&"auto"!==a.width&&"text"===b.nodeName.toLowerCase()&&C(a.width),this.styles=a,A&&!X&&this.renderer.forExport&&delete a.width,b.namespaceURI===this.SVG_NS?(c=function(a,g){return"-"+g.toLowerCase()},J(a,function(a,g){-1===E(g,x)&&(m+=g.replace(/([A-Z])/g,c)+":"+a+";")}),m&&k(b,"style",m)):y(b,a),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),
a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},getStyle:function(a){return O.getComputedStyle(this.element||this,"").getPropertyValue(a)},strokeWidth:function(){var a=this.getStyle("stroke-width"),g;a.indexOf("px")===a.length-2?a=C(a):(g=z.createElementNS(V,"rect"),k(g,{width:a,"stroke-width":0}),this.element.parentNode.appendChild(g),a=g.getBBox().width,g.parentNode.removeChild(g));return a},on:function(a,g){var e=this,b=e.element;h&&"click"===a?(b.ontouchstart=function(a){e.touchEventFired=
Date.now();a.preventDefault();g.call(b,a)},b.onclick=function(a){(-1===O.navigator.userAgent.indexOf("Android")||1100<Date.now()-(e.touchEventFired||0))&&g.call(b,a)}):b["on"+a]=g;return this},setRadialReference:function(a){var g=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;g&&g.radAttr&&g.animate(this.renderer.getRadialAttr(a,g.radAttr));return this},translate:function(a,g){return this.attr({translateX:a,translateY:g})},invert:function(a){this.inverted=a;this.updateTransform();
return this},updateTransform:function(){var a=this.translateX||0,e=this.translateY||0,b=this.scaleX,A=this.scaleY,C=this.inverted,m=this.rotation,c=this.matrix,h=this.element;C&&(a+=this.width,e+=this.height);a=["translate("+a+","+e+")"];q(c)&&a.push("matrix("+c.join(",")+")");C?a.push("rotate(90) scale(-1,1)"):m&&a.push("rotate("+m+" "+g(this.rotationOriginX,h.getAttribute("x"),0)+" "+g(this.rotationOriginY,h.getAttribute("y")||0)+")");(q(b)||q(A))&&a.push("scale("+g(b,1)+" "+g(A,1)+")");a.length&&
h.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,e,A){var C,c,h,x,l={};c=this.renderer;h=c.alignedObjects;var d,n;if(a){if(this.alignOptions=a,this.alignByTranslate=e,!A||m(A))this.alignTo=C=A||"renderer",b(h,this),h.push(this),A=null}else a=this.alignOptions,e=this.alignByTranslate,C=this.alignTo;A=g(A,c[C],c);C=a.align;c=a.verticalAlign;h=(A.x||0)+(a.x||0);x=(A.y||0)+(a.y||0);"right"===C?d=1:"center"===C&&(d=
2);d&&(h+=(A.width-(a.width||0))/d);l[e?"translateX":"x"]=Math.round(h);"bottom"===c?n=1:"middle"===c&&(n=2);n&&(x+=(A.height-(a.height||0))/n);l[e?"translateY":"y"]=Math.round(x);this[this.placed?"animate":"attr"](l);this.placed=!0;this.alignAttr=l;return this},getBBox:function(a,e){var b,A=this.renderer,C,m=this.element,c=this.styles,h,x=this.textStr,l,D=A.cache,t=A.cacheKeys,L;e=g(e,this.rotation);C=e*d;h=m&&F.prototype.getStyle.call(m,"font-size");q(x)&&(L=x.toString(),-1===L.indexOf("\x3c")&&
(L=L.replace(/[0-9]/g,"0")),L+=["",e||0,h,this.textWidth,c&&c.textOverflow].join());L&&!a&&(b=D[L]);if(!b){if(m.namespaceURI===this.SVG_NS||A.forExport){try{(l=this.fakeTS&&function(a){p(m.querySelectorAll(".highcharts-text-outline"),function(g){g.style.display=a})})&&l("none"),b=m.getBBox?n({},m.getBBox()):{width:m.offsetWidth,height:m.offsetHeight},l&&l("")}catch(ea){}if(!b||0>b.width)b={width:0,height:0}}else b=this.htmlGetBBox();A.isSVG&&(a=b.width,A=b.height,c&&"11px"===c.fontSize&&17===Math.round(A)&&
(b.height=A=14),e&&(b.width=Math.abs(A*Math.sin(C))+Math.abs(a*Math.cos(C)),b.height=Math.abs(A*Math.cos(C))+Math.abs(a*Math.sin(C))));if(L&&0<b.height){for(;250<t.length;)delete D[t.shift()];D[L]||t.push(L);D[L]=b}}return b},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var g=this;g.animate({opacity:0},{duration:a||150,complete:function(){g.attr({y:-9999})}})},add:function(a){var g=this.renderer,
e=this.element,b;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&g.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)b=this.zIndexSetter();b||(a?a.element:g.box).appendChild(e);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var g=a.parentNode;g&&g.removeChild(a)},destroy:function(){var a=this,g=a.element||{},e=a.renderer.isSVG&&"SPAN"===g.nodeName&&a.parentGroup,A=g.ownerSVGElement,C=a.clipPath;g.onclick=g.onmouseout=g.onmouseover=g.onmousemove=
g.point=null;L(a);C&&A&&(p(A.querySelectorAll("[clip-path],[CLIP-PATH]"),function(a){var g=a.getAttribute("clip-path"),e=C.element.id;(-1<g.indexOf("(#"+e+")")||-1<g.indexOf('("#'+e+'")'))&&a.removeAttribute("clip-path")}),a.clipPath=C.destroy());if(a.stops){for(A=0;A<a.stops.length;A++)a.stops[A]=a.stops[A].destroy();a.stops=null}for(a.safeRemoveChild(g);e&&e.div&&0===e.div.childNodes.length;)g=e.parentGroup,a.safeRemoveChild(e.div),delete e.div,e=g;a.alignTo&&b(a.renderer.alignedObjects,a);J(a,
function(g,e){delete a[e]});return null},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=g(this[a+"Value"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a));return a},dSetter:function(a,g,e){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[g]!==a&&(e.setAttribute(g,a),this[g]=a)},alignSetter:function(a){this.alignValue=a;this.element.setAttribute("text-anchor",
{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,g,e){this[g]=a;e.setAttribute(g,a)},titleSetter:function(a){var e=this.element.getElementsByTagName("title")[0];e||(e=z.createElementNS(this.SVG_NS,"title"),this.element.appendChild(e));e.firstChild&&e.removeChild(e.firstChild);e.appendChild(z.createTextNode(String(g(a),"").replace(/<[^>]*>/g,"").replace(/&lt;/g,"\x3c").replace(/&gt;/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&
this.renderer.buildText(this))},fillSetter:function(a,g,e){"string"===typeof a?e.setAttribute(g,a):a&&this.complexColor(a,g,e)},visibilitySetter:function(a,g,e){"inherit"===a?e.removeAttribute(g):this[g]!==a&&e.setAttribute(g,a);this[g]=a},zIndexSetter:function(a,g){var e=this.renderer,b=this.parentGroup,A=(b||e).element||e.box,m,c=this.element,h,x,e=A===e.box;m=this.added;var l;q(a)&&(c.zIndex=a,a=+a,this[g]===a&&(m=!1),this[g]=a);if(m){(a=this.zIndex)&&b&&(b.handleZ=!0);g=A.childNodes;for(l=g.length-
1;0<=l&&!h;l--)if(b=g[l],m=b.zIndex,x=!q(m),b!==c)if(0>a&&x&&!e&&!l)A.insertBefore(c,g[l]),h=!0;else if(C(m)<=a||x&&(!q(a)||0<=a))A.insertBefore(c,g[l+1]||null),h=!0;h||(A.insertBefore(c,g[e?3:0]||null),h=!0)}return h},_defaultSetter:function(a,g,e){e.setAttribute(g,a)}});F.prototype.yGetter=F.prototype.xGetter;F.prototype.translateXSetter=F.prototype.translateYSetter=F.prototype.rotationSetter=F.prototype.verticalAlignSetter=F.prototype.rotationOriginXSetter=F.prototype.rotationOriginYSetter=F.prototype.scaleXSetter=
F.prototype.scaleYSetter=F.prototype.matrixSetter=function(a,g){this[g]=a;this.doTransform=!0};G=a.SVGRenderer=function(){this.init.apply(this,arguments)};n(G.prototype,{Element:F,SVG_NS:V,init:function(a,g,e,b,A,C){var m;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});m=b.element;a.appendChild(m);k(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&k(m,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=m;this.boxWrapper=b;this.alignedObjects=[];this.url=(t||D)&&z.getElementsByTagName("base").length?
O.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(z.createTextNode("Created with Highstock 6.1.0"));this.defs=this.createElement("defs").add();this.allowHTML=C;this.forExport=A;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(g,e,!1);var c;t&&a.getBoundingClientRect&&(g=function(){y(a,{left:0,top:0});c=a.getBoundingClientRect();y(a,{left:Math.ceil(c.left)-
c.left+"px",top:Math.ceil(c.top)-c.top+"px"})},g(),this.unSubPixelFix=H(O,"resize",g))},definition:function(a){function g(a,b){var C;p(A(a),function(a){var A=e.createElement(a.tagName),m={};J(a,function(a,g){"tagName"!==g&&"children"!==g&&"textContent"!==g&&(m[g]=a)});A.attr(m);A.add(b||e.defs);a.textContent&&A.element.appendChild(z.createTextNode(a.textContent));g(a.children||[],A);C=A});return C}var e=this;return g(a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=
this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();c(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var g=new this.Element;g.init(this,a);return g},draw:x,getRadialAttr:function(a,g){return{cx:a[0]-a[2]/2+g.cx*a[2],cy:a[1]-a[2]/2+g.cy*a[2],r:g.r*a[2]}},getSpanWidth:function(a){return a.getBBox(!0).width},applyEllipsis:function(a,g,e,b){var A=a.rotation,C=e,m,c=0,h=
e.length,x=function(a){g.removeChild(g.firstChild);a&&g.appendChild(z.createTextNode(a))},l;a.rotation=0;C=this.getSpanWidth(a,g);if(l=C>b){for(;c<=h;)m=Math.ceil((c+h)/2),C=e.substring(0,m)+"\u2026",x(C),C=this.getSpanWidth(a,g),c===h?c=h+1:C>b?h=m-1:c=m;0===h&&x("")}a.rotation=A;return l},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var e=a.element,b=this,A=b.forExport,m=g(a.textStr,"").toString(),c=-1!==m.indexOf("\x3c"),h=e.childNodes,
x,d=k(e,"x"),n=a.styles,D=a.textWidth,t=n&&n.lineHeight,L=n&&n.textOutline,w=n&&"ellipsis"===n.textOverflow,P=n&&"nowrap"===n.whiteSpace,I,B=h.length,q=D&&!a.added&&this.box,f=function(a){return t?C(t):b.fontMetrics(void 0,a.getAttribute("style")?a:e).h},v=function(a,g){J(b.escapes,function(e,b){g&&-1!==E(e,g)||(a=a.toString().replace(new RegExp(e,"g"),b))});return a},N=function(a,g){var e;e=a.indexOf("\x3c");a=a.substring(e,a.indexOf("\x3e")-e);e=a.indexOf(g+"\x3d");if(-1!==e&&(e=e+g.length+1,g=
a.charAt(e),'"'===g||"'"===g))return a=a.substring(e+1),a.substring(0,a.indexOf(g))},n=[m,w,P,t,L,n&&n.fontSize,D].join();if(n!==a.textCache){for(a.textCache=n;B--;)e.removeChild(h[B]);c||L||w||D||-1!==m.indexOf(" ")?(q&&q.appendChild(e),m=c?m.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,'\x3cspan class\x3d"highcharts-emphasized"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g):[m],m=l(m,function(a){return""!==
a}),p(m,function(g,C){var m,c=0;g=g.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");m=g.split("|||");p(m,function(g){if(""!==g||1===m.length){var h={},l=z.createElementNS(b.SVG_NS,"tspan"),n,t;(n=N(g,"class"))&&k(l,"class",n);if(n=N(g,"style"))n=n.replace(/(;| |^)color([ :])/,"$1fill$2"),k(l,"style",n);(t=N(g,"href"))&&!A&&(k(l,"onclick",'location.href\x3d"'+t+'"'),k(l,"class","highcharts-anchor"));g=v(g.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==
g){l.appendChild(z.createTextNode(g));c?h.dx=0:C&&null!==d&&(h.x=d);k(l,h);e.appendChild(l);!c&&I&&(!X&&A&&y(l,{display:"block"}),k(l,"dy",f(l)));if(D){h=g.replace(/([^\^])-/g,"$1- ").split(" ");t=1<m.length||C||1<h.length&&!P;var L=[],E,B=f(l),p=a.rotation;for(w&&(x=b.applyEllipsis(a,l,g,D));!w&&t&&(h.length||L.length);)a.rotation=0,E=b.getSpanWidth(a,l),g=E>D,void 0===x&&(x=g),g&&1!==h.length?(l.removeChild(l.firstChild),L.unshift(h.pop())):(h=L,L=[],h.length&&!P&&(l=z.createElementNS(V,"tspan"),
k(l,{dy:B,x:d}),n&&k(l,"style",n),e.appendChild(l)),E>D&&(D=E)),h.length&&l.appendChild(z.createTextNode(h.join(" ").replace(/- /g,"-")));a.rotation=p}c++}}});I=I||e.childNodes.length}),x&&a.attr("title",v(a.textStr,["\x26lt;","\x26gt;"])),q&&q.removeChild(e),L&&a.applyTextOutline&&a.applyTextOutline(L)):e.appendChild(z.createTextNode(v(m)))}},getContrast:function(a){a=u(a).rgba;return 510<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,g,b,A,C,m,c,h,x){var l=this.label(a,g,b,x,null,null,null,
null,"button"),n=0;l.attr(e({padding:8,r:2},C));H(l.element,I?"mouseover":"mouseenter",function(){3!==n&&l.setState(1)});H(l.element,I?"mouseout":"mouseleave",function(){3!==n&&l.setState(n)});l.setState=function(a){1!==a&&(l.state=n=a);l.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0])};return l.on("click",function(a){3!==n&&A.call(l,a)})},crispLine:function(a,g){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-
g%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+g%2/2);return a},path:function(a){var g={};B(a)?g.d=a:w(a)&&n(g,a);return this.createElement("path").attr(g)},circle:function(a,g,e){a=w(a)?a:{x:a,y:g,r:e};g=this.createElement("circle");g.xSetter=g.ySetter=function(a,g,e){e.setAttribute("c"+g,a)};return g.attr(a)},arc:function(a,g,e,b,A,C){w(a)?(b=a,g=b.y,e=b.r,a=b.x):b={innerR:b,start:A,end:C};a=this.symbol("arc",a,g,e,e,b);a.r=e;return a},rect:function(a,g,e,b,A,C){A=w(a)?a.r:A;C=this.createElement("rect");
a=w(a)?a:void 0===a?{}:{x:a,y:g,width:Math.max(e,0),height:Math.max(b,0)};A&&(a.r=A);C.rSetter=function(a,g,e){k(e,{rx:a,ry:a})};return C.attr(a)},setSize:function(a,e,b){var A=this.alignedObjects,C=A.length;this.width=a;this.height=e;for(this.boxWrapper.animate({width:a,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:g(b,!0)?void 0:0});C--;)A[C].align()},g:function(a){var g=this.createElement("g");return a?g.attr({"class":"highcharts-"+
a}):g},image:function(a,g,e,b,A,C){var m={preserveAspectRatio:"none"},c,h=function(a,g){a.setAttributeNS?a.setAttributeNS("http://www.w3.org/1999/xlink","href",g):a.setAttribute("hc-svg-href",g)};1<arguments.length&&n(m,{x:g,y:e,width:b,height:A});c=this.createElement("image").attr(m);C?(h(c.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d"),m=new O.Image,H(m,"load",function(g){h(c.element,a);C.call(c,g)}),m.src=a):h(c.element,a);return c},symbol:function(a,
e,b,A,C,m){var c=this,h,l=/^url\((.*?)\)$/,x=l.test(a),D=!x&&(this.symbols[a]?a:"circle"),d=D&&this.symbols[D],t=q(e)&&d&&d.call(this.symbols,Math.round(e),Math.round(b),A,C,m),L,w;d?(h=this.path(t),n(h,{symbolName:D,x:e,y:b,width:A,height:C}),m&&n(h,m)):x&&(L=a.match(l)[1],h=this.image(L),h.imgwidth=g(M[L]&&M[L].width,m&&m.width),h.imgheight=g(M[L]&&M[L].height,m&&m.height),w=function(){h.attr({width:h.width,height:h.height})},p(["width","height"],function(a){h[a+"Setter"]=function(a,g){var e={},
b=this["img"+g],A="width"===g?"translateX":"translateY";this[g]=a;q(b)&&(this.element&&this.element.setAttribute(g,b),this.alignByTranslate||(e[A]=((this[g]||0)-b)/2,this.attr(e)))}}),q(e)&&h.attr({x:e,y:b}),h.isImg=!0,q(h.imgwidth)&&q(h.imgheight)?w():(h.attr({width:0,height:0}),v("img",{onload:function(){var a=f[c.chartIndex];0===this.width&&(y(this,{position:"absolute",top:"-999em"}),z.body.appendChild(this));M[L]={width:this.width,height:this.height};h.imgwidth=this.width;h.imgheight=this.height;
h.element&&w();this.parentNode&&this.parentNode.removeChild(this);c.imgCount--;if(!c.imgCount&&a&&a.onload)a.onload()},src:L}),this.imgCount++));return h},symbols:{circle:function(a,g,e,b){return this.arc(a+e/2,g+b/2,e/2,b/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,g,e,b){return["M",a,g,"L",a+e,g,a+e,g+b,a,g+b,"Z"]},triangle:function(a,g,e,b){return["M",a+e/2,g,"L",a+e,g+b,a,g+b,"Z"]},"triangle-down":function(a,g,e,b){return["M",a,g,"L",a+e,g,a+e/2,g+b,"Z"]},diamond:function(a,g,e,b){return["M",
a+e/2,g,"L",a+e,g+b/2,a+e/2,g+b,a,g+b/2,"Z"]},arc:function(a,e,b,A,C){var m=C.start,c=C.r||b,h=C.r||A||b,l=C.end-.001;b=C.innerR;A=g(C.open,.001>Math.abs(C.end-C.start-2*Math.PI));var x=Math.cos(m),n=Math.sin(m),D=Math.cos(l),l=Math.sin(l);C=.001>C.end-m-Math.PI?0:1;c=["M",a+c*x,e+h*n,"A",c,h,0,C,1,a+c*D,e+h*l];q(b)&&c.push(A?"M":"L",a+b*D,e+b*l,"A",b,b,0,C,0,a+b*x,e+b*n);c.push(A?"":"Z");return c},callout:function(a,g,e,b,A){var C=Math.min(A&&A.r||0,e,b),m=C+6,c=A&&A.anchorX;A=A&&A.anchorY;var h;
h=["M",a+C,g,"L",a+e-C,g,"C",a+e,g,a+e,g,a+e,g+C,"L",a+e,g+b-C,"C",a+e,g+b,a+e,g+b,a+e-C,g+b,"L",a+C,g+b,"C",a,g+b,a,g+b,a,g+b-C,"L",a,g+C,"C",a,g,a,g,a+C,g];c&&c>e?A>g+m&&A<g+b-m?h.splice(13,3,"L",a+e,A-6,a+e+6,A,a+e,A+6,a+e,g+b-C):h.splice(13,3,"L",a+e,b/2,c,A,a+e,b/2,a+e,g+b-C):c&&0>c?A>g+m&&A<g+b-m?h.splice(33,3,"L",a,A+6,a-6,A,a,A-6,a,g+C):h.splice(33,3,"L",a,b/2,c,A,a,b/2,a,g+C):A&&A>b&&c>a+m&&c<a+e-m?h.splice(23,3,"L",c+6,g+b,c,g+b+6,c-6,g+b,a+C,g+b):A&&0>A&&c>a+m&&c<a+e-m&&h.splice(3,3,"L",
c-6,g,c,g-6,c+6,g,e-C,g);return h}},clipRect:function(g,e,b,A){var C=a.uniqueKey(),m=this.createElement("clipPath").attr({id:C}).add(this.defs);g=this.rect(g,e,b,A,0).add(m);g.id=C;g.clipPath=m;g.count=0;return g},text:function(a,g,e,b){var A={};if(b&&(this.allowHTML||!this.forExport))return this.html(a,g,e);A.x=Math.round(g||0);e&&(A.y=Math.round(e));if(a||0===a)A.text=a;a=this.createElement("text").attr(A);b||(a.xSetter=function(a,g,e){var b=e.getElementsByTagName("tspan"),A,C=e.getAttribute(g),
m;for(m=0;m<b.length;m++)A=b[m],A.getAttribute(g)===C&&A.setAttribute(g,a);e.setAttribute(g,a)});return a},fontMetrics:function(a,g){a=g&&F.prototype.getStyle.call(g,"font-size");a=/px/.test(a)?C(a):/em/.test(a)?parseFloat(a)*(g?this.fontMetrics(null,g.parentNode).f:16):12;g=24>a?a+3:Math.round(1.2*a);return{h:g,b:Math.round(.8*g),f:a}},rotCorr:function(a,g,e){var b=a;g&&e&&(b=Math.max(b*Math.cos(g*d),4));return{x:-a/3*Math.sin(g*d),y:b}},label:function(g,b,A,C,m,c,h,l,x){var D=this,d=D.g("button"!==
x&&"label"),t=d.text=D.text("",0,0,h).attr({zIndex:1}),L,w,E=0,I=3,B=0,z,J,f,X,k,v={},y,V=/^url\((.*?)\)$/.test(C),u=V,r,M,O,N;x&&d.addClass("highcharts-"+x);u=!0;r=function(){return L.strokeWidth()%2/2};M=function(){var a=t.element.style,g={};w=(void 0===z||void 0===J||k)&&q(t.textStr)&&t.getBBox();d.width=(z||w.width||0)+2*I+B;d.height=(J||w.height||0)+2*I;y=I+D.fontMetrics(a&&a.fontSize,t).b;u&&(L||(d.box=L=D.symbols[C]||V?D.symbol(C):D.rect(),L.addClass(("button"===x?"":"highcharts-label-box")+
(x?" highcharts-"+x+"-box":"")),L.add(d),a=r(),g.x=a,g.y=(l?-y:0)+a),g.width=Math.round(d.width),g.height=Math.round(d.height),L.attr(n(g,v)),v={})};O=function(){var a=B+I,g;g=l?0:y;q(z)&&w&&("center"===k||"right"===k)&&(a+={center:.5,right:1}[k]*(z-w.width));if(a!==t.x||g!==t.y)t.attr("x",a),void 0!==g&&t.attr("y",g);t.x=a;t.y=g};N=function(a,g){L?L.attr(a,g):v[a]=g};d.onAdd=function(){t.add(d);d.attr({text:g||0===g?g:"",x:b,y:A});L&&q(m)&&d.attr({anchorX:m,anchorY:c})};d.widthSetter=function(g){z=
a.isNumber(g)?g:null};d.heightSetter=function(a){J=a};d["text-alignSetter"]=function(a){k=a};d.paddingSetter=function(a){q(a)&&a!==I&&(I=d.padding=a,O())};d.paddingLeftSetter=function(a){q(a)&&a!==B&&(B=a,O())};d.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==E&&(E=a,w&&d.attr({x:f}))};d.textSetter=function(a){void 0!==a&&t.textSetter(a);M();O()};d["stroke-widthSetter"]=function(a,g){a&&(u=!0);this["stroke-width"]=a;N(g,a)};d.rSetter=function(a,g){N(g,a)};d.anchorXSetter=function(a,g){m=
d.anchorX=a;N(g,Math.round(a)-r()-f)};d.anchorYSetter=function(a,g){c=d.anchorY=a;N(g,a-X)};d.xSetter=function(a){d.x=a;E&&(a-=E*((z||w.width)+2*I),d["forceAnimate:x"]=!0);f=Math.round(a);d.attr("translateX",f)};d.ySetter=function(a){X=d.y=Math.round(a);d.attr("translateY",X)};var G=d.css;return n(d,{css:function(a){if(a){var g={};a=e(a);p(d.textProps,function(e){void 0!==a[e]&&(g[e]=a[e],delete a[e])});t.css(g);"width"in g&&M()}return G.call(d,a)},getBBox:function(){return{width:w.width+2*I,height:w.height+
2*I,x:w.x-I,y:w.y-I}},destroy:function(){P(d.element,"mouseenter");P(d.element,"mouseleave");t&&(t=t.destroy());L&&(L=L.destroy());F.prototype.destroy.call(d);d=D=M=O=N=null}})}});a.Renderer=G})(K);(function(a){var F=a.attr,G=a.createElement,H=a.css,r=a.defined,k=a.each,f=a.extend,u=a.isFirefox,y=a.isMS,v=a.isWebKit,q=a.pick,d=a.pInt,c=a.SVGRenderer,z=a.win,p=a.wrap;f(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b,
this.htmlUpdateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=f(this.styles,a);H(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,c=this.x||0,h=this.y||0,E=this.textAlign||"left",B={left:0,center:.5,right:1}[E],t=this.styles,I=t&&t.whiteSpace;H(b,{marginLeft:this.translateX||
0,marginTop:this.translateY||0});this.inverted&&k(b.childNodes,function(e){a.invertChild(e,b)});if("SPAN"===b.tagName){var t=this.rotation,w=this.textWidth&&d(this.textWidth),m=[t,E,b.innerHTML,this.textWidth,this.textAlign].join(),D;(D=w!==this.oldTextWidth)&&!(D=w>this.oldTextWidth)&&((D=this.textPxLength)||(H(b,{width:"",whiteSpace:I||"nowrap"}),D=b.offsetWidth),D=D>w);D&&/[ \-]/.test(b.textContent||b.innerText)&&(H(b,{width:w+"px",display:"block",whiteSpace:I||"normal"}),this.oldTextWidth=w);
m!==this.cTT&&(I=a.fontMetrics(b.style.fontSize).b,r(t)&&t!==(this.oldRotation||0)&&this.setSpanRotation(t,B,I),this.getSpanCorrection(!r(t)&&this.textPxLength||b.offsetWidth,I,B,t,E));H(b,{left:c+(this.xCorr||0)+"px",top:h+(this.yCorr||0)+"px"});this.cTT=m;this.oldRotation=t}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var h={},l=this.renderer.getTransformKey();h[l]=h.transform="rotate("+a+"deg)";h[l+(u?"Origin":"-origin")]=h.transformOrigin=100*b+"% "+c+"px";H(this.element,h)},getSpanCorrection:function(a,
b,c){this.xCorr=-a*c;this.yCorr=-b}});f(c.prototype,{getTransformKey:function(){return y&&!/Edge/.test(z.navigator.userAgent)?"-ms-transform":v?"-webkit-transform":u?"MozTransform":z.opera?"-o-transform":""},html:function(a,b,c){var h=this.createElement("span"),l=h.element,d=h.renderer,n=d.isSVG,I=function(a,b){k(["opacity","visibility"],function(m){p(a,m+"Setter",function(a,m,c,g){a.call(this,m,c,g);b[c]=m})});a.addedSetters=!0};h.textSetter=function(a){a!==l.innerHTML&&delete this.bBox;this.textStr=
a;l.innerHTML=q(a,"");h.doTransform=!0};n&&I(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,b){"align"===b&&(b="textAlign");h[b]=a;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:a,x:Math.round(b),y:Math.round(c)}).css({position:"absolute"});l.style.whiteSpace="nowrap";h.css=h.htmlCss;n&&(h.add=function(a){var b,c=d.box.parentNode,e=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)e.push(a),
a=a.parentGroup;k(e.reverse(),function(a){function m(e,b){a[b]=e;"translateX"===b?g.left=e+"px":g.top=e+"px";a.doTransform=!0}var g,C=F(a.element,"class");C&&(C={className:C});b=a.div=a.div||G("div",C,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},b||c);g=b.style;f(a,{classSetter:function(a){return function(g){this.element.setAttribute("class",g);a.className=g}}(b),on:function(){e[0].div&&
h.on.apply({element:e[0].div},arguments);return a},translateXSetter:m,translateYSetter:m});a.addedSetters||I(a,g)})}}else b=c;b.appendChild(l);h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h});return h}})})(K);(function(a){var F=a.defined,G=a.each,H=a.extend,r=a.merge,k=a.pick,f=a.timeUnits,u=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(f){var v=k(f&&f.useUTC,!0),q=this;this.options=f=r(!0,this.options||{},f);this.Date=f.Date||u.Date;this.timezoneOffset=
(this.useUTC=v)&&f.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(v&&!f.getTimezoneOffset&&!f.timezone))||this.timezoneOffset?(this.get=function(a,c){var d=c.getTime(),p=d-q.getTimezoneOffset(c);c.setTime(p);a=c["getUTC"+a]();c.setTime(d);return a},this.set=function(d,c,z){var p;if(-1!==a.inArray(d,["Milliseconds","Seconds","Minutes"]))c["set"+d](z);else p=q.getTimezoneOffset(c),p=c.getTime()-p,c.setTime(p),c["setUTC"+d](z),d=q.getTimezoneOffset(c),p=
c.getTime()+d,c.setTime(p)}):v?(this.get=function(a,c){return c["getUTC"+a]()},this.set=function(a,c,z){return c["setUTC"+a](z)}):(this.get=function(a,c){return c["get"+a]()},this.set=function(a,c,z){return c["set"+a](z)})},makeTime:function(f,v,q,d,c,z){var p,n,b;this.useUTC?(p=this.Date.UTC.apply(0,arguments),n=this.getTimezoneOffset(p),p+=n,b=this.getTimezoneOffset(p),n!==b?p+=b-n:n-36E5!==this.getTimezoneOffset(p-36E5)||a.isSafari||(p-=36E5)):p=(new this.Date(f,v,k(q,1),k(d,0),k(c,0),k(z,0))).getTime();
return p},timezoneOffsetFunction:function(){var f=this,k=this.options,q=u.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(k.timezone){if(q)return function(a){return 6E4*-q.tz(a,k.timezone).utcOffset()};a.error(25)}return this.useUTC&&k.getTimezoneOffset?function(a){return 6E4*k.getTimezoneOffset(a)}:function(){return 6E4*(f.timezoneOffset||0)}},dateFormat:function(f,k,q){if(!a.defined(k)||isNaN(k))return a.defaultOptions.lang.invalidDate||"";f=a.pick(f,"%Y-%m-%d %H:%M:%S");
var d=this,c=new this.Date(k),z=this.get("Hours",c),p=this.get("Day",c),n=this.get("Date",c),b=this.get("Month",c),l=this.get("FullYear",c),h=a.defaultOptions.lang,E=h.weekdays,B=h.shortWeekdays,t=a.pad,c=a.extend({a:B?B[p]:E[p].substr(0,3),A:E[p],d:t(n),e:t(n,2," "),w:p,b:h.shortMonths[b],B:h.months[b],m:t(b+1),y:l.toString().substr(2,2),Y:l,H:t(z),k:z,I:t(z%12||12),l:z%12||12,M:t(d.get("Minutes",c)),p:12>z?"AM":"PM",P:12>z?"am":"pm",S:t(c.getSeconds()),L:t(Math.round(k%1E3),3)},a.dateFormats);a.objectEach(c,
function(a,b){for(;-1!==f.indexOf("%"+b);)f=f.replace("%"+b,"function"===typeof a?a.call(d,k):a)});return q?f.substr(0,1).toUpperCase()+f.substr(1):f},getTimeTicks:function(a,v,q,d){var c=this,z=[],p={},n,b=new c.Date(v),l=a.unitRange,h=a.count||1,E;if(F(v)){c.set("Milliseconds",b,l>=f.second?0:h*Math.floor(c.get("Milliseconds",b)/h));l>=f.second&&c.set("Seconds",b,l>=f.minute?0:h*Math.floor(c.get("Seconds",b)/h));l>=f.minute&&c.set("Minutes",b,l>=f.hour?0:h*Math.floor(c.get("Minutes",b)/h));l>=f.hour&&
c.set("Hours",b,l>=f.day?0:h*Math.floor(c.get("Hours",b)/h));l>=f.day&&c.set("Date",b,l>=f.month?1:h*Math.floor(c.get("Date",b)/h));l>=f.month&&(c.set("Month",b,l>=f.year?0:h*Math.floor(c.get("Month",b)/h)),n=c.get("FullYear",b));l>=f.year&&c.set("FullYear",b,n-n%h);l===f.week&&c.set("Date",b,c.get("Date",b)-c.get("Day",b)+k(d,1));n=c.get("FullYear",b);d=c.get("Month",b);var B=c.get("Date",b),t=c.get("Hours",b);v=b.getTime();c.variableTimezone&&(E=q-v>4*f.month||c.getTimezoneOffset(v)!==c.getTimezoneOffset(q));
b=b.getTime();for(v=1;b<q;)z.push(b),b=l===f.year?c.makeTime(n+v*h,0):l===f.month?c.makeTime(n,d+v*h):!E||l!==f.day&&l!==f.week?E&&l===f.hour&&1<h?c.makeTime(n,d,B,t+v*h):b+l*h:c.makeTime(n,d,B+v*h*(l===f.day?1:7)),v++;z.push(b);l<=f.hour&&1E4>z.length&&G(z,function(a){0===a%18E5&&"000000000"===c.dateFormat("%H%M%S%L",a)&&(p[a]="day")})}z.info=H(a,{higherRanks:p,totalRange:l*h});return z}}})(K);(function(a){var F=a.merge;a.defaultOptions={symbols:["circle","diamond","square","triangle","triangle-down"],
lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{borderRadius:0,colorCount:10,defaultSeriesType:"line",
ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{},itemCheckboxStyle:{position:"absolute",
width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{}},loading:{},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'\x3cspan class\x3d"highcharts-header"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',
pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cspan class\x3d"highcharts-strong"\x3e{point.y}\x3c/span\x3e\x3cbr/\x3e'},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},text:"Highcharts.com"}};a.setOptions=function(G){a.defaultOptions=F(!0,a.defaultOptions,G);a.time.update(F(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};
a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(F(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(G,F,r){return a.time.dateFormat(G,F,r)}})(K);(function(a){var F=a.correctFloat,G=a.defined,H=a.destroyObjectProperties,r=a.fireEvent,k=a.isNumber,f=a.pick,u=a.deg2rad;a.Tick=function(a,f,q,d){this.axis=a;this.pos=f;this.type=q||"";this.isNewLabel=this.isNew=!0;q||d||this.addLabel()};a.Tick.prototype={addLabel:function(){var a=this.axis,k=a.options,q=a.chart,d=
a.categories,c=a.names,z=this.pos,p=k.labels,n=a.tickPositions,b=z===n[0],l=z===n[n.length-1],c=d?f(d[z],c[z],z):z,d=this.label,n=n.info,h;a.isDatetimeAxis&&n&&(h=k.dateTimeLabelFormats[n.higherRanks[z]||n.unitName]);this.isFirst=b;this.isLast=l;k=a.labelFormatter.call({axis:a,chart:q,isFirst:b,isLast:l,dateTimeLabelFormat:h,value:a.isLog?F(a.lin2log(c)):c,pos:z});if(G(d))d&&d.attr({text:k});else{if(this.label=d=G(k)&&p.enabled?q.renderer.text(k,0,0,p.useHTML).add(a.labelGroup):null)d.textPxLength=
d.getBBox().width;this.rotation=0}},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var k=this.axis,q=k.options.labels,d=a.x,c=k.chart.chartWidth,z=k.chart.spacing,p=f(k.labelLeft,Math.min(k.pos,z[3])),z=f(k.labelRight,Math.max(k.isRadial?0:k.pos+k.len,c-z[1])),n=this.label,b=this.rotation,l={left:0,center:.5,right:1}[k.labelAlign||n.attr("align")],h=n.getBBox().width,E=k.getSlotWidth(),B=E,t=1,I,w={};if(b||!1===q.overflow)0>
b&&d-l*h<p?I=Math.round(d/Math.cos(b*u)-p):0<b&&d+l*h>z&&(I=Math.round((c-d)/Math.cos(b*u)));else if(c=d+(1-l)*h,d-l*h<p?B=a.x+B*(1-l)-p:c>z&&(B=z-a.x+B*l,t=-1),B=Math.min(E,B),B<E&&"center"===k.labelAlign&&(a.x+=t*(E-B-l*(E-Math.min(h,B)))),h>B||k.autoRotation&&(n.styles||{}).width)I=B;I&&(w.width=I,(q.style||{}).textOverflow||(w.textOverflow="ellipsis"),n.css(w))},getPosition:function(f,k,q,d){var c=this.axis,z=c.chart,p=d&&z.oldChartHeight||z.chartHeight;f={x:f?a.correctFloat(c.translate(k+q,null,
null,d)+c.transB):c.left+c.offset+(c.opposite?(d&&z.oldChartWidth||z.chartWidth)-c.right-c.left:0),y:f?p-c.bottom+c.offset-(c.opposite?c.height:0):a.correctFloat(p-c.translate(k+q,null,null,d)-c.transB)};r(this,"afterGetPosition",{pos:f});return f},getLabelPosition:function(a,f,q,d,c,z,p,n){var b=this.axis,l=b.transA,h=b.reversed,E=b.staggerLines,B=b.tickRotCorr||{x:0,y:0},t=c.y,I=d||b.reserveSpaceDefault?0:-b.labelOffset*("center"===b.labelAlign?.5:1),w={};G(t)||(t=0===b.side?q.rotation?-8:-q.getBBox().height:
2===b.side?B.y+8:Math.cos(q.rotation*u)*(B.y-q.getBBox(!1,0).height/2));a=a+c.x+I+B.x-(z&&d?z*l*(h?-1:1):0);f=f+t-(z&&!d?z*l*(h?1:-1):0);E&&(q=p/(n||1)%E,b.opposite&&(q=E-q-1),f+=b.labelOffset/E*q);w.x=a;w.y=Math.round(f);r(this,"afterGetLabelPosition",{pos:w});return w},getMarkPath:function(a,f,q,d,c,z){return z.crispLine(["M",a,f,"L",a+(c?0:-q),f+(c?q:0)],d)},renderGridLine:function(a,f,q){var d=this.axis,c=this.gridLine,z={},p=this.pos,n=this.type,b=d.tickmarkOffset,l=d.chart.renderer;c||(n||(z.zIndex=
1),a&&(z.opacity=0),this.gridLine=c=l.path().attr(z).addClass("highcharts-"+(n?n+"-":"")+"grid-line").add(d.gridGroup));if(!a&&c&&(a=d.getPlotLinePath(p+b,c.strokeWidth()*q,a,!0)))c[this.isNew?"attr":"animate"]({d:a,opacity:f})},renderMark:function(a,f,q){var d=this.axis,c=d.chart.renderer,z=this.type,p=d.tickSize(z?z+"Tick":"tick"),n=this.mark,b=!n,l=a.x;a=a.y;p&&(d.opposite&&(p[0]=-p[0]),b&&(this.mark=n=c.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(d.axisGroup)),n[b?"attr":"animate"]({d:this.getMarkPath(l,
a,p[0],n.strokeWidth()*q,d.horiz,c),opacity:f}))},renderLabel:function(a,u,q,d){var c=this.axis,z=c.horiz,p=c.options,n=this.label,b=p.labels,l=b.step,c=c.tickmarkOffset,h=!0,E=a.x;a=a.y;n&&k(E)&&(n.xy=a=this.getLabelPosition(E,a,n,z,b,c,d,l),this.isFirst&&!this.isLast&&!f(p.showFirstLabel,1)||this.isLast&&!this.isFirst&&!f(p.showLastLabel,1)?h=!1:!z||b.step||b.rotation||u||0===q||this.handleOverflow(a),l&&d%l&&(h=!1),h&&k(a.y)?(a.opacity=q,n[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):
(n.attr("y",-9999),this.isNewLabel=!0))},render:function(k,u,q){var d=this.axis,c=d.horiz,z=this.getPosition(c,this.pos,d.tickmarkOffset,u),p=z.x,n=z.y,d=c&&p===d.pos+d.len||!c&&n===d.pos?-1:1;q=f(q,1);this.isActive=!0;this.renderGridLine(u,q,d);this.renderMark(z,q,d);this.renderLabel(z,u,q,k);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){H(this,this.axis)}}})(K);var da=function(a){var F=a.addEvent,G=a.animObject,H=a.arrayMax,r=a.arrayMin,k=a.correctFloat,f=a.defaultOptions,u=
a.defined,y=a.deg2rad,v=a.destroyObjectProperties,q=a.each,d=a.extend,c=a.fireEvent,z=a.format,p=a.getMagnitude,n=a.grep,b=a.inArray,l=a.isArray,h=a.isNumber,E=a.isString,B=a.merge,t=a.normalizeTickInterval,I=a.objectEach,w=a.pick,m=a.removeEvent,D=a.splat,e=a.syncTimeout,x=a.Tick,J=function(){this.init.apply(this,arguments)};a.extend(J.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",
year:"%Y"},endOnTick:!1,labels:{enabled:!0,x:0},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle"},type:"linear"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,
-1)}}},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,e){var g=e.isX,A=this;A.chart=a;A.horiz=a.inverted&&!A.isZAxis?!g:g;A.isXAxis=g;A.coll=A.coll||(g?"xAxis":"yAxis");c(this,"init",{userOptions:e});A.opposite=e.opposite;A.side=e.side||(A.horiz?A.opposite?0:
2:A.opposite?1:3);A.setOptions(e);var C=this.options,m=C.type;A.labelFormatter=C.labels.formatter||A.defaultLabelFormatter;A.userOptions=e;A.minPixelPadding=0;A.reversed=C.reversed;A.visible=!1!==C.visible;A.zoomEnabled=!1!==C.zoomEnabled;A.hasNames="category"===m||!0===C.categories;A.categories=C.categories||A.hasNames;A.names||(A.names=[],A.names.keys={});A.plotLinesAndBandsGroups={};A.isLog="logarithmic"===m;A.isDatetimeAxis="datetime"===m;A.positiveValuesOnly=A.isLog&&!A.allowNegativeLog;A.isLinked=
u(C.linkedTo);A.ticks={};A.labelEdge=[];A.minorTicks={};A.plotLinesAndBands=[];A.alternateBands={};A.len=0;A.minRange=A.userMinRange=C.minRange||C.maxZoom;A.range=C.range;A.offset=C.offset||0;A.stacks={};A.oldStacks={};A.stacksTouched=0;A.max=null;A.min=null;A.crosshair=w(C.crosshair,D(a.options.tooltip.crosshairs)[g?0:1],!1);e=A.options.events;-1===b(A,a.axes)&&(g?a.axes.splice(a.xAxis.length,0,A):a.axes.push(A),a[A.coll].push(A));A.series=A.series||[];a.inverted&&!A.isZAxis&&g&&void 0===A.reversed&&
(A.reversed=!0);I(e,function(a,g){F(A,g,a)});A.lin2log=C.linearToLogConverter||A.lin2log;A.isLog&&(A.val2lin=A.log2lin,A.lin2val=A.lin2log);c(this,"afterInit")},setOptions:function(a){this.options=B(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],B(f[this.coll],a));c(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var g=this.axis,
e=this.value,b=g.chart.time,A=g.categories,m=this.dateTimeLabelFormat,c=f.lang,h=c.numericSymbols,c=c.numericSymbolMagnitude||1E3,l=h&&h.length,x,d=g.options.labels.format,g=g.isLog?Math.abs(e):g.tickInterval;if(d)x=z(d,this,b);else if(A)x=e;else if(m)x=b.dateFormat(m,e);else if(l&&1E3<=g)for(;l--&&void 0===x;)b=Math.pow(c,l+1),g>=b&&0===10*e%b&&null!==h[l]&&0!==e&&(x=a.numberFormat(e/b,-1)+h[l]);void 0===x&&(x=1E4<=Math.abs(e)?a.numberFormat(e,-1):a.numberFormat(e,-1,void 0,""));return x},getSeriesExtremes:function(){var a=
this,e=a.chart;c(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();q(a.series,function(g){if(g.visible||!e.options.chart.ignoreHiddenSeries){var b=g.options,C=b.threshold,c;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=C&&(C=null);if(a.isXAxis)b=g.xData,b.length&&(g=r(b),c=H(b),h(g)||g instanceof Date||(b=n(b,h),g=r(b),c=H(b)),b.length&&(a.dataMin=Math.min(w(a.dataMin,b[0],g),g),a.dataMax=
Math.max(w(a.dataMax,b[0],c),c)));else if(g.getExtremes(),c=g.dataMax,g=g.dataMin,u(g)&&u(c)&&(a.dataMin=Math.min(w(a.dataMin,g),g),a.dataMax=Math.max(w(a.dataMax,c),c)),u(C)&&(a.threshold=C),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});c(this,"afterGetSeriesExtremes")},translate:function(a,e,b,A,c,m){var g=this.linkedParent||this,C=1,l=0,x=A?g.oldTransA:g.transA;A=A?g.oldMin:g.min;var d=g.minPixelPadding;c=(g.isOrdinal||g.isBroken||g.isLog&&c)&&g.lin2val;x||(x=g.transA);b&&(C*=
-1,l=g.len);g.reversed&&(C*=-1,l-=C*(g.sector||g.len));e?(a=(a*C+l-d)/x+A,c&&(a=g.lin2val(a))):(c&&(a=g.val2lin(a)),a=h(A)?C*(a-A)*x+l+C*d+(h(m)?x*m:0):void 0);return a},toPixels:function(a,e){return this.translate(a,!1,!this.horiz,null,!0)+(e?0:this.pos)},toValue:function(a,e){return this.translate(a-(e?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,e,b,A,c){var g=this.chart,C=this.left,m=this.top,l,x,d=b&&g.oldChartHeight||g.chartHeight,D=b&&g.oldChartWidth||g.chartWidth,n;l=this.transB;
var t=function(a,g,e){if(a<g||a>e)A?a=Math.min(Math.max(g,a),e):n=!0;return a};c=w(c,this.translate(a,null,null,b));c=Math.min(Math.max(-1E5,c),1E5);a=b=Math.round(c+l);l=x=Math.round(d-c-l);h(c)?this.horiz?(l=m,x=d-this.bottom,a=b=t(a,C,C+this.width)):(a=C,b=D-this.right,l=x=t(l,m,m+this.height)):(n=!0,A=!1);return n&&!A?null:g.renderer.crispLine(["M",a,l,"L",b,x],e||1)},getLinearTickPositions:function(a,e,b){var g,c=k(Math.floor(e/a)*a);b=k(Math.ceil(b/a)*a);var C=[],m;k(c+a)===c&&(m=20);if(this.single)return[e];
for(e=c;e<=b;){C.push(e);e=k(e+a,m);if(e===g)break;g=e}return C},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?w(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,e=a.options,b=a.tickPositions,A=a.minorTickInterval,c=[],m=a.pointRangePadding||0,h=a.min-m,m=a.max+m,l=m-h;if(l&&l/A<a.len/3)if(a.isLog)q(this.paddedTicks,function(g,e,b){e&&c.push.apply(c,a.getLogTickPositions(A,b[e-1],b[e],!0))});else if(a.isDatetimeAxis&&
"auto"===this.getMinorTickInterval())c=c.concat(a.getTimeTicks(a.normalizeTimeTickInterval(A),h,m,e.startOfWeek));else for(e=h+(b[0]-h)%A;e<=m&&e!==c[0];e+=A)c.push(e);0!==c.length&&a.trimTicks(c);return c},adjustForMinRange:function(){var a=this.options,e=this.min,b=this.max,A,c,m,h,l,x,d,D;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(u(a.min)||u(a.max)?this.minRange=null:(q(this.series,function(a){x=a.xData;for(h=d=a.xIncrement?1:x.length-1;0<h;h--)if(l=x[h]-x[h-1],void 0===m||l<m)m=l}),
this.minRange=Math.min(5*m,this.dataMax-this.dataMin)));b-e<this.minRange&&(c=this.dataMax-this.dataMin>=this.minRange,D=this.minRange,A=(D-b+e)/2,A=[e-A,w(a.min,e-A)],c&&(A[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),e=H(A),b=[e+D,w(a.max,e+D)],c&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=r(b),b-e<D&&(A[0]=b-D,A[1]=w(a.min,b-D),e=H(A)));this.min=e;this.max=b},getClosest:function(){var a;this.categories?a=1:q(this.series,function(g){var e=g.closestPointRange,b=g.visible||
!g.chart.options.chart.ignoreHiddenSeries;!g.noSharedTooltip&&u(e)&&b&&(a=u(a)?Math.min(a,e):e)});return a},nameToX:function(a){var g=l(this.categories),e=g?this.categories:this.names,A=a.options.x,c;a.series.requireSorting=!1;u(A)||(A=!1===this.options.uniqueNames?a.series.autoIncrement():g?b(a.name,e):w(e.keys[a.name],-1));-1===A?g||(c=e.length):c=A;void 0!==c&&(this.names[c]=a.name,this.names.keys[a.name]=c);return c},updateNames:function(){var g=this,e=this.names;0<e.length&&(q(a.keys(e.keys),
function(a){delete e.keys[a]}),e.length=0,this.minRange=this.userMinRange,q(this.series||[],function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)a.processData(),a.generatePoints();q(a.points,function(e,b){var c;e.options&&(c=g.nameToX(e),void 0!==c&&c!==e.x&&(e.x=c,a.xData[b]=c))})}))},setAxisTranslation:function(a){var g=this,e=g.max-g.min,b=g.axisPointRange||0,m,h=0,l=0,x=g.linkedParent,d=!!g.categories,D=g.transA,n=g.isXAxis;if(n||d||b)m=g.getClosest(),x?(h=x.minPointOffset,l=x.pointRangePadding):
q(g.series,function(a){var e=d?1:n?w(a.options.pointRange,m,0):g.axisPointRange||0;a=a.options.pointPlacement;b=Math.max(b,e);g.single||(h=Math.max(h,E(a)?0:e/2),l=Math.max(l,"on"===a?0:e))}),x=g.ordinalSlope&&m?g.ordinalSlope/m:1,g.minPointOffset=h*=x,g.pointRangePadding=l*=x,g.pointRange=Math.min(b,e),n&&(g.closestPointRange=m);a&&(g.oldTransA=D);g.translationSlope=g.transA=D=g.options.staticScale||g.len/(e+l||1);g.transB=g.horiz?g.left:g.bottom;g.minPixelPadding=D*h;c(this,"afterSetAxisTranslation")},
minFromRange:function(){return this.max-this.range},setTickInterval:function(g){var e=this,b=e.chart,A=e.options,m=e.isLog,l=e.isDatetimeAxis,x=e.isXAxis,d=e.isLinked,D=A.maxPadding,n=A.minPadding,E=A.tickInterval,I=A.tickPixelInterval,B=e.categories,f=h(e.threshold)?e.threshold:null,z=e.softThreshold,J,v,r,y;l||B||d||this.getTickAmount();r=w(e.userMin,A.min);y=w(e.userMax,A.max);d?(e.linkedParent=b[e.coll][A.linkedTo],b=e.linkedParent.getExtremes(),e.min=w(b.min,b.dataMin),e.max=w(b.max,b.dataMax),
A.type!==e.linkedParent.options.type&&a.error(11,1)):(!z&&u(f)&&(e.dataMin>=f?(J=f,n=0):e.dataMax<=f&&(v=f,D=0)),e.min=w(r,J,e.dataMin),e.max=w(y,v,e.dataMax));m&&(e.positiveValuesOnly&&!g&&0>=Math.min(e.min,w(e.dataMin,e.min))&&a.error(10,1),e.min=k(e.log2lin(e.min),15),e.max=k(e.log2lin(e.max),15));e.range&&u(e.max)&&(e.userMin=e.min=r=Math.max(e.dataMin,e.minFromRange()),e.userMax=y=e.max,e.range=null);c(e,"foundExtremes");e.beforePadding&&e.beforePadding();e.adjustForMinRange();!(B||e.axisPointRange||
e.usePercentage||d)&&u(e.min)&&u(e.max)&&(b=e.max-e.min)&&(!u(r)&&n&&(e.min-=b*n),!u(y)&&D&&(e.max+=b*D));h(A.softMin)&&!h(e.userMin)&&(e.min=Math.min(e.min,A.softMin));h(A.softMax)&&!h(e.userMax)&&(e.max=Math.max(e.max,A.softMax));h(A.floor)&&(e.min=Math.max(e.min,A.floor));h(A.ceiling)&&(e.max=Math.min(e.max,A.ceiling));z&&u(e.dataMin)&&(f=f||0,!u(r)&&e.min<f&&e.dataMin>=f?e.min=f:!u(y)&&e.max>f&&e.dataMax<=f&&(e.max=f));e.tickInterval=e.min===e.max||void 0===e.min||void 0===e.max?1:d&&!E&&I===
e.linkedParent.options.tickPixelInterval?E=e.linkedParent.tickInterval:w(E,this.tickAmount?(e.max-e.min)/Math.max(this.tickAmount-1,1):void 0,B?1:(e.max-e.min)*I/Math.max(e.len,I));x&&!g&&q(e.series,function(a){a.processData(e.min!==e.oldMin||e.max!==e.oldMax)});e.setAxisTranslation(!0);e.beforeSetTickPositions&&e.beforeSetTickPositions();e.postProcessTickInterval&&(e.tickInterval=e.postProcessTickInterval(e.tickInterval));e.pointRange&&!E&&(e.tickInterval=Math.max(e.pointRange,e.tickInterval));g=
w(A.minTickInterval,e.isDatetimeAxis&&e.closestPointRange);!E&&e.tickInterval<g&&(e.tickInterval=g);l||m||E||(e.tickInterval=t(e.tickInterval,null,p(e.tickInterval),w(A.allowDecimals,!(.5<e.tickInterval&&5>e.tickInterval&&1E3<e.max&&9999>e.max)),!!this.tickAmount));this.tickAmount||(e.tickInterval=e.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,e,b=a.tickPositions;e=this.getMinorTickInterval();var A=a.tickPositioner,m=a.startOnTick,h=a.endOnTick;this.tickmarkOffset=
this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===e&&this.tickInterval?this.tickInterval/5:e;this.single=this.min===this.max&&u(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=e=b&&b.slice();!e&&(e=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?
this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),e.length>this.len&&(e=[e[0],e.pop()],e[0]===e[1]&&(e.length=1)),this.tickPositions=e,A&&(A=A.apply(this,[this.min,this.max])))&&(this.tickPositions=e=A);this.paddedTicks=e.slice(0);this.trimTicks(e,m,h);this.isLinked||(this.single&&2>e.length&&(this.min-=.5,this.max+=.5),b||A||this.adjustTickAmount());c(this,"afterSetTickPositions")},trimTicks:function(a,e,b){var g=a[0],c=
a[a.length-1],m=this.minPointOffset||0;if(!this.isLinked){if(e&&-Infinity!==g)this.min=g;else for(;this.min-m>a[0];)a.shift();if(b)this.max=c;else for(;this.max+m<a[a.length-1];)a.pop();0===a.length&&u(g)&&!this.options.tickPositions&&a.push((c+g)/2)}},alignToOthers:function(){var a={},e,b=this.options;!1===this.chart.options.chart.alignTicks||!1===b.alignTicks||!1===b.startOnTick||!1===b.endOnTick||this.isLog||q(this.chart[this.coll],function(g){var b=g.options,b=[g.horiz?b.left:b.top,b.width,b.height,
b.pane].join();g.series.length&&(a[b]?e=!0:a[b]=1)});return e},getTickAmount:function(){var a=this.options,e=a.tickAmount,b=a.tickPixelInterval;!u(a.tickInterval)&&this.len<b&&!this.isRadial&&!this.isLog&&a.startOnTick&&a.endOnTick&&(e=2);!e&&this.alignToOthers()&&(e=Math.ceil(this.len/b)+1);4>e&&(this.finalTickAmt=e,e=5);this.tickAmount=e},adjustTickAmount:function(){var a=this.tickInterval,e=this.tickPositions,b=this.tickAmount,c=this.finalTickAmt,m=e&&e.length,h=w(this.threshold,this.softThreshold?
0:null);if(this.hasData()){if(m<b){for(;e.length<b;)e.length%2||this.min===h?e.push(k(e[e.length-1]+a)):e.unshift(k(e[0]-a));this.transA*=(m-1)/(b-1);this.min=e[0];this.max=e[e.length-1]}else m>b&&(this.tickInterval*=2,this.setTickPositions());if(u(c)){for(a=b=e.length;a--;)(3===c&&1===a%2||2>=c&&0<a&&a<b-1)&&e.splice(a,1);this.finalTickAmt=void 0}}},setScale:function(){var a,e;this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();e=this.len!==this.oldAxisLength;
q(this.series,function(e){if(e.isDirtyData||e.isDirty||e.xAxis.isDirty)a=!0});e||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=e||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks();c(this,"afterSetScale")},
setExtremes:function(a,e,b,m,h){var g=this,A=g.chart;b=w(b,!0);q(g.series,function(a){delete a.kdTree});h=d(h,{min:a,max:e});c(g,"setExtremes",h,function(){g.userMin=a;g.userMax=e;g.eventArgs=h;b&&A.redraw(m)})},zoom:function(a,e){var g=this.dataMin,b=this.dataMax,c=this.options,m=Math.min(g,w(c.min,g)),c=Math.max(b,w(c.max,b));if(a!==this.min||e!==this.max)this.allowZoomOutside||(u(g)&&(a<m&&(a=m),a>c&&(a=c)),u(b)&&(e<m&&(e=m),e>c&&(e=c))),this.displayBtn=void 0!==a||void 0!==e,this.setExtremes(a,
e,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var e=this.chart,b=this.options,c=b.offsets||[0,0,0,0],m=this.horiz,h=this.width=Math.round(a.relativeLength(w(b.width,e.plotWidth-c[3]+c[1]),e.plotWidth)),l=this.height=Math.round(a.relativeLength(w(b.height,e.plotHeight-c[0]+c[2]),e.plotHeight)),x=this.top=Math.round(a.relativeLength(w(b.top,e.plotTop+c[0]),e.plotHeight,e.plotTop)),b=this.left=Math.round(a.relativeLength(w(b.left,e.plotLeft+c[3]),e.plotWidth,e.plotLeft));this.bottom=
e.chartHeight-l-x;this.right=e.chartWidth-h-b;this.len=Math.max(m?h:l,0);this.pos=m?b:x},getExtremes:function(){var a=this.isLog;return{min:a?k(this.lin2log(this.min)):this.min,max:a?k(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var e=this.isLog,g=e?this.lin2log(this.min):this.min,e=e?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=g:Infinity===a?a=e:g>a?a=g:e<a&&(a=e);return this.translate(a,
0,1,0,1)},autoLabelAlign:function(a){a=(w(a,0)-90*this.side+720)%360;return 15<a&&165>a?"right":195<a&&345>a?"left":"center"},tickSize:function(a){var e=this.options,g=e[a+"Length"],b=w(e[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(b&&g)return"inside"===e[a+"Position"]&&(g=-g),[g,b]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=
this.options.labels,e=this.horiz,b=this.tickInterval,c=b,m=this.len/(((this.categories?1:0)+this.max-this.min)/b),h,l=a.rotation,x=this.labelMetrics(),d,D=Number.MAX_VALUE,n,t=function(a){a/=m||1;a=1<a?Math.ceil(a):1;return k(a*b)};e?(n=!a.staggerLines&&!a.step&&(u(l)?[l]:m<w(a.autoRotationLimit,80)&&a.autoRotation))&&q(n,function(a){var e;if(a===l||a&&-90<=a&&90>=a)d=t(Math.abs(x.h/Math.sin(y*a))),e=d+Math.abs(a/360),e<D&&(D=e,h=a,c=d)}):a.step||(c=t(x.h));this.autoRotation=n;this.labelRotation=
w(h,l);return c},getSlotWidth:function(){var a=this.chart,e=this.horiz,b=this.options.labels,c=Math.max(this.tickPositions.length-(this.categories?0:1),1),m=a.margin[3];return e&&2>(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/c||!e&&(b.style&&parseInt(b.style.width,10)||m&&m-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,e=a.renderer,b=this.tickPositions,c=this.ticks,m=this.options.labels,h=this.horiz,l=this.getSlotWidth(),x=Math.max(1,Math.round(l-2*(m.padding||
5))),d={},D=this.labelMetrics(),n=m.style&&m.style.textOverflow,t,w,I=0,B;E(m.rotation)||(d.rotation=m.rotation||0);q(b,function(a){(a=c[a])&&a.label&&a.label.textPxLength>I&&(I=a.label.textPxLength)});this.maxLabelLength=I;if(this.autoRotation)I>x&&I>D.h?d.rotation=this.labelRotation:this.labelRotation=0;else if(l&&(t=x,!n))for(w="clip",x=b.length;!h&&x--;)if(B=b[x],B=c[B].label)B.styles&&"ellipsis"===B.styles.textOverflow?B.css({textOverflow:"clip"}):B.textPxLength>l&&B.css({width:l+"px"}),B.getBBox().height>
this.len/b.length-(D.h-D.f)&&(B.specificTextOverflow="ellipsis");d.rotation&&(t=I>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight,n||(w="ellipsis"));if(this.labelAlign=m.align||this.autoLabelAlign(this.labelRotation))d.align=this.labelAlign;q(b,function(a){var e=(a=c[a])&&a.label,b={};e&&(e.attr(d),!t||m.style&&m.style.width||!(t<e.textPxLength||"SPAN"===e.element.tagName)||(b.width=t,n||(b.textOverflow=e.specificTextOverflow||w),e.css(b)),delete e.specificTextOverflow,a.rotation=d.rotation)});this.tickRotCorr=
e.rotCorr(D.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||u(this.min)&&u(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(a){var e=this.chart.renderer,b=this.horiz,g=this.opposite,c=this.options.title,m;this.axisTitle||((m=c.textAlign)||(m=(b?{low:"left",middle:"center",high:"right"}:{low:g?"right":"left",middle:"center",high:g?"left":"right"})[c.align]),this.axisTitle=e.text(c.text,0,0,c.useHTML).attr({zIndex:7,rotation:c.rotation||
0,align:m}).addClass("highcharts-axis-title").add(this.axisGroup),this.axisTitle.isNew=!0);this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var e=this.ticks;e[a]?e[a].addLabel():e[a]=new x(this,a)},getOffset:function(){var a=this,e=a.chart,b=e.renderer,c=a.options,m=a.tickPositions,h=a.ticks,l=a.horiz,x=a.side,d=e.inverted&&!a.isZAxis?[1,0,3,2][x]:x,D,n,t=0,E,B=0,f=c.title,p=c.labels,z=0,J=e.axisOffset,e=e.clipOffset,k=[-1,1,1,-1][x],v=c.className,
r=a.axisParent,y=this.tickSize("tick");D=a.hasData();a.showAxis=n=D||w(c.showEmpty,!0);a.staggerLines=a.horiz&&p.staggerLines;a.axisGroup||(a.gridGroup=b.g("grid").attr({zIndex:c.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(v||"")).add(r),a.axisGroup=b.g("axis").attr({zIndex:c.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(v||"")).add(r),a.labelGroup=b.g("axis-labels").attr({zIndex:p.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(v||
"")).add(r));D||a.isLinked?(q(m,function(e,b){a.generateTick(e,b)}),a.renderUnsquish(),a.reserveSpaceDefault=0===x||2===x||{1:"left",3:"right"}[x]===a.labelAlign,w(p.reserveSpace,"center"===a.labelAlign?!0:null,a.reserveSpaceDefault)&&q(m,function(a){z=Math.max(h[a].getLabelSize(),z)}),a.staggerLines&&(z*=a.staggerLines),a.labelOffset=z*(a.opposite?-1:1)):I(h,function(a,e){a.destroy();delete h[e]});f&&f.text&&!1!==f.enabled&&(a.addTitle(n),n&&!1!==f.reserveSpace&&(a.titleOffset=t=a.axisTitle.getBBox()[l?
"height":"width"],E=f.offset,B=u(E)?0:w(f.margin,l?5:10)));a.renderLine();a.offset=k*w(c.offset,J[x]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};b=0===x?-a.labelMetrics().h:2===x?a.tickRotCorr.y:0;B=Math.abs(z)+B;z&&(B=B-b+k*(l?w(p.y,a.tickRotCorr.y+8*k):p.x));a.axisTitleMargin=w(E,B);J[x]=Math.max(J[x],a.axisTitleMargin+t+k*a.offset,B,D&&m.length&&y?y[0]+k*a.offset:0);c=c.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);e[d]=Math.max(e[d],c)},getLinePath:function(a){var e=this.chart,b=this.opposite,
g=this.offset,c=this.horiz,m=this.left+(b?this.width:0)+g,g=e.chartHeight-this.bottom-(b?this.height:0)+g;b&&(a*=-1);return e.renderer.crispLine(["M",c?this.left:m,c?g:this.top,"L",c?e.chartWidth-this.right:m,c?g:e.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup))},getTitlePosition:function(){var a=this.horiz,e=this.left,b=this.top,c=this.len,m=this.options.title,h=a?e:b,l=this.opposite,
x=this.offset,d=m.x||0,D=m.y||0,n=this.axisTitle,t=this.chart.renderer.fontMetrics(m.style&&m.style.fontSize,n),n=Math.max(n.getBBox(null,0).height-t.h-1,0),c={low:h+(a?0:c),middle:h+c/2,high:h+(a?c:0)}[m.align],e=(a?b+this.height:e)+(a?1:-1)*(l?-1:1)*this.axisTitleMargin+[-n,n,t.f,-n][this.side];return{x:a?c+d:e+(l?this.width:0)+x+d,y:a?e+D-(l?this.height:0)+x:c+D}},renderMinorTick:function(a){var e=this.chart.hasRendered&&h(this.oldMin),b=this.minorTicks;b[a]||(b[a]=new x(this,a,"minor"));e&&b[a].isNew&&
b[a].render(null,!0);b[a].render(null,!1,1)},renderTick:function(a,e){var b=this.isLinked,g=this.ticks,c=this.chart.hasRendered&&h(this.oldMin);if(!b||a>=this.min&&a<=this.max)g[a]||(g[a]=new x(this,a)),c&&g[a].isNew&&g[a].render(e,!0,.1),g[a].render(e)},render:function(){var b=this,m=b.chart,l=b.options,A=b.isLog,d=b.isLinked,D=b.tickPositions,n=b.axisTitle,t=b.ticks,w=b.minorTicks,E=b.alternateBands,B=l.stackLabels,f=l.alternateGridColor,p=b.tickmarkOffset,z=b.axisLine,J=b.showAxis,k=G(m.renderer.globalAnimation),
u,v;b.labelEdge.length=0;b.overlap=!1;q([t,w,E],function(a){I(a,function(a){a.isActive=!1})});if(b.hasData()||d)b.minorTickInterval&&!b.categories&&q(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),D.length&&(q(D,function(a,e){b.renderTick(a,e)}),p&&(0===b.min||b.single)&&(t[-1]||(t[-1]=new x(b,-1,null,!0)),t[-1].render(-1))),f&&q(D,function(e,g){v=void 0!==D[g+1]?D[g+1]+p:b.max-p;0===g%2&&e<b.max&&v<=b.max+(m.polar?-p:p)&&(E[e]||(E[e]=new a.PlotLineOrBand(b)),u=e+p,E[e].options={from:A?
b.lin2log(u):u,to:A?b.lin2log(v):v,color:f},E[e].render(),E[e].isActive=!0)}),b._addedPlotLB||(q((l.plotLines||[]).concat(l.plotBands||[]),function(a){b.addPlotBandOrLine(a)}),b._addedPlotLB=!0);q([t,w,E],function(a){var b,g=[],c=k.duration;I(a,function(a,e){a.isActive||(a.render(e,!1,0),a.isActive=!1,g.push(e))});e(function(){for(b=g.length;b--;)a[g[b]]&&!a[g[b]].isActive&&(a[g[b]].destroy(),delete a[g[b]])},a!==E&&m.hasRendered&&c?c:0)});z&&(z[z.isPlaced?"animate":"attr"]({d:this.getLinePath(z.strokeWidth())}),
z.isPlaced=!0,z[J?"show":"hide"](!0));n&&J&&(l=b.getTitlePosition(),h(l.y)?(n[n.isNew?"attr":"animate"](l),n.isNew=!1):(n.attr("y",-9999),n.isNew=!0));B&&B.enabled&&b.renderStackTotals();b.isDirty=!1;c(this,"afterRender")},redraw:function(){this.visible&&(this.render(),q(this.plotLinesAndBands,function(a){a.render()}));q(this.series,function(a){a.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var e=this,g=e.stacks,h=e.plotLinesAndBands,l;c(this,
"destroy",{keepEvents:a});a||m(e);I(g,function(a,e){v(a);g[e]=null});q([e.ticks,e.minorTicks,e.alternateBands],function(a){v(a)});if(h)for(a=h.length;a--;)h[a].destroy();q("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(a){e[a]&&(e[a]=e[a].destroy())});for(l in e.plotLinesAndBandsGroups)e.plotLinesAndBandsGroups[l]=e.plotLinesAndBandsGroups[l].destroy();I(e,function(a,g){-1===b(g,e.keepProps)&&delete e[g]})},drawCrosshair:function(a,e){var b,g=this.crosshair,
m=w(g.snap,!0),h,l=this.cross;c(this,"drawCrosshair",{e:a,point:e});a||(a=this.cross&&this.cross.e);if(this.crosshair&&!1!==(u(e)||!m)){m?u(e)&&(h=w(e.crosshairPos,this.isXAxis?e.plotX:this.len-e.plotY)):h=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+this.pos);u(h)&&(b=this.getPlotLinePath(e&&(this.isXAxis?e.x:w(e.stackY,e.y)),null,null,null,h)||null);if(!u(b)){this.hideCrosshair();return}m=this.categories&&!this.isRadial;l||(this.cross=l=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+
(m?"category ":"thin ")+g.className).attr({zIndex:w(g.zIndex,2)}).add());l.show().attr({d:b});m&&!g.width&&l.attr({"stroke-width":this.transA});this.cross.e=a}else this.hideCrosshair();c(this,"afterDrawCrosshair",{e:a,point:e})},hideCrosshair:function(){this.cross&&this.cross.hide()}});return a.Axis=J}(K);(function(a){var F=a.Axis,G=a.getMagnitude,H=a.normalizeTickInterval,r=a.timeUnits;F.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};F.prototype.normalizeTimeTickInterval=
function(a,f){var k=f||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];f=k[k.length-1];var y=r[f[0]],v=f[1],q;for(q=0;q<k.length&&!(f=k[q],y=r[f[0]],v=f[1],k[q+1]&&a<=(y*v[v.length-1]+r[k[q+1][0]])/2);q++);y===r.year&&a<5*y&&(v=[1,2,5]);a=H(a/y,v,"year"===f[0]?Math.max(G(a/y),1):1);return{unitRange:y,count:a,unitName:f[0]}}})(K);(function(a){var F=a.Axis,
G=a.getMagnitude,H=a.map,r=a.normalizeTickInterval,k=a.pick;F.prototype.getLogTickPositions=function(a,u,y,v){var f=this.options,d=this.len,c=[];v||(this._minorAutoInterval=null);if(.5<=a)a=Math.round(a),c=this.getLinearTickPositions(a,u,y);else if(.08<=a)for(var d=Math.floor(u),z,p,n,b,l,f=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];d<y+1&&!l;d++)for(p=f.length,z=0;z<p&&!l;z++)n=this.log2lin(this.lin2log(d)*f[z]),n>u&&(!v||b<=y)&&void 0!==b&&c.push(b),b>y&&(l=!0),b=n;else u=this.lin2log(u),
y=this.lin2log(y),a=v?this.getMinorTickInterval():f.tickInterval,a=k("auto"===a?null:a,this._minorAutoInterval,f.tickPixelInterval/(v?5:1)*(y-u)/((v?d/this.tickPositions.length:d)||1)),a=r(a,null,G(a)),c=H(this.getLinearTickPositions(a,u,y),this.log2lin),v||(this._minorAutoInterval=a/5);v||(this.tickInterval=a);return c};F.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};F.prototype.lin2log=function(a){return Math.pow(10,a)}})(K);(function(a,F){var G=a.arrayMax,H=a.arrayMin,r=a.defined,
k=a.destroyObjectProperties,f=a.each,u=a.erase,y=a.merge,v=a.pick;a.PlotLineOrBand=function(a,d){this.axis=a;d&&(this.options=d,this.id=d.id)};a.PlotLineOrBand.prototype={render:function(){var f=this,d=f.axis,c=d.horiz,z=f.options,p=z.label,n=f.label,b=z.to,l=z.from,h=z.value,E=r(l)&&r(b),B=r(h),t=f.svgElem,I=!t,w=[],m=v(z.zIndex,0),D=z.events,w={"class":"highcharts-plot-"+(E?"band ":"line ")+(z.className||"")},e={},x=d.chart.renderer,J=E?"bands":"lines",g;d.isLog&&(l=d.log2lin(l),b=d.log2lin(b),
h=d.log2lin(h));e.zIndex=m;J+="-"+m;(g=d.plotLinesAndBandsGroups[J])||(d.plotLinesAndBandsGroups[J]=g=x.g("plot-"+J).attr(e).add());I&&(f.svgElem=t=x.path().attr(w).add(g));if(B)w=d.getPlotLinePath(h,t.strokeWidth());else if(E)w=d.getPlotBandPath(l,b,z);else return;I&&w&&w.length?(t.attr({d:w}),D&&a.objectEach(D,function(a,e){t.on(e,function(a){D[e].apply(f,[a])})})):t&&(w?(t.show(),t.animate({d:w})):(t.hide(),n&&(f.label=n=n.destroy())));p&&r(p.text)&&w&&w.length&&0<d.width&&0<d.height&&!w.flat?
(p=y({align:c&&E&&"center",x:c?!E&&4:10,verticalAlign:!c&&E&&"middle",y:c?E?16:10:E?6:-4,rotation:c&&!E&&90},p),this.renderLabel(p,w,E,m)):n&&n.hide();return f},renderLabel:function(a,d,c,f){var p=this.label,n=this.axis.chart.renderer;p||(p={align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(c?"band":"line")+"-label "+(a.className||"")},p.zIndex=f,this.label=p=n.text(a.text,0,0,a.useHTML).attr(p).add());f=d.xBounds||[d[1],d[4],c?d[6]:d[1]];d=d.yBounds||[d[2],d[5],c?d[7]:d[2]];
c=H(f);n=H(d);p.align(a,!1,{x:c,y:n,width:G(f)-c,height:G(d)-n});p.show()},destroy:function(){u(this.axis.plotLinesAndBands,this);delete this.axis;k(this)}};a.extend(F.prototype,{getPlotBandPath:function(a,d){var c=this.getPlotLinePath(d,null,null,!0),f=this.getPlotLinePath(a,null,null,!0),p=[],n=this.horiz,b=1,l;a=a<this.min&&d<this.min||a>this.max&&d>this.max;if(f&&c)for(a&&(l=f.toString()===c.toString(),b=0),a=0;a<f.length;a+=6)n&&c[a+1]===f[a+1]?(c[a+1]+=b,c[a+4]+=b):n||c[a+2]!==f[a+2]||(c[a+
2]+=b,c[a+5]+=b),p.push("M",f[a+1],f[a+2],"L",f[a+4],f[a+5],c[a+4],c[a+5],c[a+1],c[a+2],"z"),p.flat=l;return p},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(f,d){var c=(new a.PlotLineOrBand(this,f)).render(),z=this.userOptions;c&&(d&&(z[d]=z[d]||[],z[d].push(f)),this.plotLinesAndBands.push(c));return c},removePlotBandOrLine:function(a){for(var d=this.plotLinesAndBands,c=this.options,
z=this.userOptions,p=d.length;p--;)d[p].id===a&&d[p].destroy();f([c.plotLines||[],z.plotLines||[],c.plotBands||[],z.plotBands||[]],function(c){for(p=c.length;p--;)c[p].id===a&&u(c,c[p])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(K,da);(function(a){var F=a.each,G=a.extend,H=a.format,r=a.isNumber,k=a.map,f=a.merge,u=a.pick,y=a.splat,v=a.syncTimeout,q=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype=
{init:function(a,c){this.chart=a;this.options=c;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=c.split&&!a.inverted;this.shared=c.shared||this.split},cleanSplit:function(a){F(this.chart.series,function(c){var d=c&&c.tt;d&&(!d.isActive||a?c.tt=d.destroy():d.isActive=!1)})},applyFilter:function(){var a=this.chart;a.renderer.definition({tagName:"filter",id:"drop-shadow-"+a.index,opacity:.5,children:[{tagName:"feGaussianBlur",in:"SourceAlpha",stdDeviation:1},{tagName:"feOffset",dx:1,
dy:1},{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",type:"linear",slope:.3}]},{tagName:"feMerge",children:[{tagName:"feMergeNode"},{tagName:"feMergeNode",in:"SourceGraphic"}]}]});a.renderer.definition({tagName:"style",textContent:".highcharts-tooltip-"+a.index+"{filter:url(#drop-shadow-"+a.index+")}"})},getLabel:function(){var a=this.chart.renderer,c=this.options;this.label||(this.label=this.split?a.g("tooltip"):a.label("",0,0,c.shape||"callout",null,null,c.useHTML,null,"tooltip").attr({padding:c.padding,
r:c.borderRadius}),this.applyFilter(),this.label.addClass("highcharts-tooltip-"+this.chart.index),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();f(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,f(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());a.clearTimeout(this.hideTimer);a.clearTimeout(this.tooltipTimeout)},move:function(d,
c,f,p){var n=this,b=n.now,l=!1!==n.options.animation&&!n.isHidden&&(1<Math.abs(d-b.x)||1<Math.abs(c-b.y)),h=n.followPointer||1<n.len;G(b,{x:l?(2*b.x+d)/3:d,y:l?(b.y+c)/2:c,anchorX:h?void 0:l?(2*b.anchorX+f)/3:f,anchorY:h?void 0:l?(b.anchorY+p)/2:p});n.getLabel().attr(b);l&&(a.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){n&&n.move(d,c,f,p)},32))},hide:function(d){var c=this;a.clearTimeout(this.hideTimer);d=u(d,this.options.hideDelay,500);this.isHidden||(this.hideTimer=
v(function(){c.getLabel()[d?"fadeOut":"hide"]();c.isHidden=!0},d))},getAnchor:function(a,c){var d,f=this.chart,n=f.inverted,b=f.plotTop,l=f.plotLeft,h=0,E=0,B,t;a=y(a);d=a[0].tooltipPos;this.followPointer&&c&&(void 0===c.chartX&&(c=f.pointer.normalize(c)),d=[c.chartX-f.plotLeft,c.chartY-b]);d||(F(a,function(a){B=a.series.yAxis;t=a.series.xAxis;h+=a.plotX+(!n&&t?t.left-l:0);E+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!n&&B?B.top-b:0)}),h/=a.length,E/=a.length,d=[n?f.plotWidth-E:h,this.shared&&
!n&&1<a.length&&c?c.chartY-b:n?f.plotHeight-h:E]);return k(d,Math.round)},getPosition:function(a,c,f){var d=this.chart,n=this.distance,b={},l=d.inverted&&f.h||0,h,E=["y",d.chartHeight,c,f.plotY+d.plotTop,d.plotTop,d.plotTop+d.plotHeight],B=["x",d.chartWidth,a,f.plotX+d.plotLeft,d.plotLeft,d.plotLeft+d.plotWidth],t=!this.followPointer&&u(f.ttBelow,!d.inverted===!!f.negative),I=function(a,c,m,g,h,d){var e=m<g-n,x=g+n+m<c,D=g-n-m;g+=n;if(t&&x)b[a]=g;else if(!t&&e)b[a]=D;else if(e)b[a]=Math.min(d-m,0>
D-l?D:D-l);else if(x)b[a]=Math.max(h,g+l+m>c?g:g+l);else return!1},w=function(a,c,m,g){var e;g<n||g>c-n?e=!1:b[a]=g<m/2?1:g>c-m/2?c-m-2:g-m/2;return e},m=function(a){var e=E;E=B;B=e;h=a},D=function(){!1!==I.apply(0,E)?!1!==w.apply(0,B)||h||(m(!0),D()):h?b.x=b.y=0:(m(!0),D())};(d.inverted||1<this.len)&&m();D();return b},defaultFormatter:function(a){var c=this.points||y(this),d;d=[a.tooltipFooterHeaderFormatter(c[0])];d=d.concat(a.bodyFormatter(c));d.push(a.tooltipFooterHeaderFormatter(c[0],!0));return d},
refresh:function(d,c){var f,p=this.options,n=d,b,l={},h=[];f=p.formatter||this.defaultFormatter;var l=this.shared,E;p.enabled&&(a.clearTimeout(this.hideTimer),this.followPointer=y(n)[0].series.tooltipOptions.followPointer,b=this.getAnchor(n,c),c=b[0],p=b[1],!l||n.series&&n.series.noSharedTooltip?l=n.getLabelConfig():(F(n,function(a){a.setState("hover");h.push(a.getLabelConfig())}),l={x:n[0].category,y:n[0].y},l.points=h,n=n[0]),this.len=h.length,l=f.call(l,this),E=n.series,this.distance=u(E.tooltipOptions.distance,
16),!1===l?this.hide():(f=this.getLabel(),this.isHidden&&f.attr({opacity:1}).show(),this.split?this.renderSplit(l,y(d)):(f.css({width:this.chart.spacingBox.width}),f.attr({text:l&&l.join?l.join(""):l}),f.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+u(n.colorIndex,E.colorIndex)),this.updatePosition({plotX:c,plotY:p,negative:n.negative,ttBelow:n.ttBelow,h:b[2]||0})),this.isHidden=!1))},renderSplit:function(d,c){var f=this,p=[],n=this.chart,b=n.renderer,l=!0,h=this.options,E=0,
B=this.getLabel();a.isString(d)&&(d=[!1,d]);F(d.slice(0,c.length+1),function(a,d){if(!1!==a){d=c[d-1]||{isHeader:!0,plotX:c[0].plotX};var t=d.series||f,m=t.tt,D="highcharts-color-"+u(d.colorIndex,(d.series||{}).colorIndex,"none");m||(t.tt=m=b.label(null,null,null,"callout",null,null,h.useHTML).addClass("highcharts-tooltip-box "+D).attr({padding:h.padding,r:h.borderRadius}).add(B));m.isActive=!0;m.attr({text:a});a=m.getBBox();D=a.width+m.strokeWidth();d.isHeader?(E=a.height,D=Math.max(0,Math.min(d.plotX+
n.plotLeft-D/2,n.chartWidth-D))):D=d.plotX+n.plotLeft-u(h.distance,16)-D;0>D&&(l=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=n.plotTop;p.push({target:d.isHeader?n.plotHeight+E:a,rank:d.isHeader?1:0,size:t.tt.getBBox().height+1,point:d,x:D,tt:m})}});this.cleanSplit();a.distribute(p,n.plotHeight+E);F(p,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:l||b.isHeader?a.x:b.plotX+n.plotLeft+u(h.distance,16),y:a.pos+n.plotTop,anchorX:b.isHeader?
b.plotX+n.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+n.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var c=this.chart,d=this.getLabel(),d=(this.options.positioner||this.getPosition).call(this,d.width,d.height,a);this.move(Math.round(d.x),Math.round(d.y||0),a.plotX+c.plotLeft,a.plotY+c.plotTop)},getDateFormat:function(a,c,f,p){var d=this.chart.time,b=d.dateFormat("%m-%d %H:%M:%S.%L",c),l,h,E={millisecond:15,second:12,minute:9,hour:6,day:3},B="millisecond";for(h in q){if(a===
q.week&&+d.dateFormat("%w",c)===f&&"00:00:00.000"===b.substr(6)){h="week";break}if(q[h]>a){h=B;break}if(E[h]&&b.substr(E[h])!=="01-01 00:00:00.000".substr(E[h]))break;"week"!==h&&(B=h)}h&&(l=p[h]);return l},getXDateFormat:function(a,c,f){c=c.dateTimeLabelFormats;var d=f&&f.closestPointRange;return(d?this.getDateFormat(d,a.x,f.options.startOfWeek,c):c.day)||c.year},tooltipFooterHeaderFormatter:function(a,c){c=c?"footer":"header";var d=a.series,f=d.tooltipOptions,n=f.xDateFormat,b=d.xAxis,l=b&&"datetime"===
b.options.type&&r(a.key),h=f[c+"Format"];l&&!n&&(n=this.getXDateFormat(a,f,b));l&&n&&F(a.point&&a.point.tooltipDateKeys||["key"],function(a){h=h.replace("{point."+a+"}","{point."+a+":"+n+"}")});return H(h,{point:a,series:d},this.chart.time)},bodyFormatter:function(a){return k(a,function(a){var c=a.series.tooltipOptions;return(c[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,c[(a.point.formatPrefix||"point")+"Format"])})}}})(K);(function(a){var F=a.addEvent,G=
a.attr,H=a.charts,r=a.css,k=a.defined,f=a.each,u=a.extend,y=a.find,v=a.fireEvent,q=a.isNumber,d=a.isObject,c=a.offset,z=a.pick,p=a.splat,n=a.Tooltip;a.Pointer=function(a,c){this.init(a,c)};a.Pointer.prototype={init:function(a,c){this.options=c;this.chart=a;this.runChartClick=c.chart.events&&!!c.chart.events.click;this.pinchDown=[];this.lastValidTouch={};n&&(a.tooltip=new n(a,c.tooltip),this.followTouchMove=z(c.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,
c=b.options.chart,d=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(d=z(c.pinchType,d));this.zoomX=a=/x/.test(d);this.zoomY=d=/y/.test(d);this.zoomHor=a&&!b||d&&b;this.zoomVert=d&&!b||a&&b;this.hasZoom=a||d},normalize:function(a,l){var b;b=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;l||(this.chartPosition=l=c(this.chart.container));return u(a,{chartX:Math.round(b.pageX-l.left),chartY:Math.round(b.pageY-l.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};f(this.chart.axes,
function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,c,h){var b;f(a,function(a){var l=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(h,l);if((l=d(a,!0))&&!(l=!d(b,!0)))var l=b.distX-a.distX,n=b.dist-a.dist,f=(a.series.group&&a.series.group.zIndex)-(b.series.group&&b.series.group.zIndex),l=0<(0!==l&&c?l:0!==n?n:0!==f?f:b.series.index>a.series.index?-1:1);l&&(b=a)});return b},
getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,c){var b=a.series,l=b.xAxis,b=b.yAxis,d=z(a.clientX,a.plotX),n=a.shapeArgs;if(l&&b)return c?{chartX:l.len+l.pos-d,chartY:b.len+b.pos-a.plotY}:{chartX:d+l.pos,chartY:a.plotY+b.pos};if(n&&n.x&&n.y)return{chartX:n.x,chartY:n.y}},getHoverData:function(b,c,h,n,B,t,p){var l,m=[],D=p&&p.isBoosting;n=!(!n||!b);p=c&&!c.stickyTracking?[c]:a.grep(h,function(a){return a.visible&&
!(!B&&a.directTouch)&&z(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(l=n?b:this.findNearestKDPoint(p,B,t))&&l.series;l&&(B&&!c.noSharedTooltip?(p=a.grep(h,function(a){return a.visible&&!(!B&&a.directTouch)&&z(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),f(p,function(a){var e=y(a.points,function(a){return a.x===l.x&&!a.isNull});d(e)&&(D&&(e=a.getPoint(e)),m.push(e))})):m.push(l));return{hoverPoint:l,hoverSeries:c,hoverPoints:m}},runPointActions:function(b,c){var h=this.chart,
l=h.tooltip&&h.tooltip.options.enabled?h.tooltip:void 0,d=l?l.shared:!1,n=c||h.hoverPoint,p=n&&n.series||h.hoverSeries,p=this.getHoverData(n,p,h.series,!!c||p&&p.directTouch&&this.isDirectTouch,d,b,{isBoosting:h.isBoosting}),w,n=p.hoverPoint;w=p.hoverPoints;c=(p=p.hoverSeries)&&p.tooltipOptions.followPointer;d=d&&p&&!p.noSharedTooltip;if(n&&(n!==h.hoverPoint||l&&l.isHidden)){f(h.hoverPoints||[],function(b){-1===a.inArray(b,w)&&b.setState()});f(w||[],function(a){a.setState("hover")});if(h.hoverSeries!==
p)p.onMouseOver();h.hoverPoint&&h.hoverPoint.firePointEvent("mouseOut");if(!n.series)return;n.firePointEvent("mouseOver");h.hoverPoints=w;h.hoverPoint=n;l&&l.refresh(d?w:n,b)}else c&&l&&!l.isHidden&&(n=l.getAnchor([{}],b),l.updatePosition({plotX:n[0],plotY:n[1]}));this.unDocMouseMove||(this.unDocMouseMove=F(h.container.ownerDocument,"mousemove",function(b){var c=H[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));f(h.axes,function(c){var m=z(c.crosshair.snap,!0),e=m?a.find(w,function(a){return a.series[c.coll]===
c}):void 0;e||!m?c.drawCrosshair(b,e):c.hideCrosshair()})},reset:function(a,c){var b=this.chart,l=b.hoverSeries,d=b.hoverPoint,n=b.hoverPoints,I=b.tooltip,w=I&&I.shared?n:d;a&&w&&f(p(w),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)I&&w&&(I.refresh(w),d&&(d.setState(d.state,!0),f(b.axes,function(a){a.crosshair&&a.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();n&&f(n,function(a){a.setState()});if(l)l.onMouseOut();I&&I.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());
f(b.axes,function(a){a.hideCrosshair()});this.hoverX=b.hoverPoints=b.hoverPoint=null}},scaleGroups:function(a,c){var b=this.chart,l;f(b.series,function(h){l=a||h.getPlotBox();h.xAxis&&h.xAxis.zoomEnabled&&h.group&&(h.group.attr(l),h.markerGroup&&(h.markerGroup.attr(l),h.markerGroup.clip(c?b.clipRect:null)),h.dataLabelsGroup&&h.dataLabelsGroup.attr(l))});b.clipRect.attr(c||b.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;
b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,n=a.chartY,f=this.zoomHor,p=this.zoomVert,w=b.plotLeft,m=b.plotTop,D=b.plotWidth,e=b.plotHeight,x,J=this.selectionMarker,g=this.mouseDownX,C=this.mouseDownY,k=c.panKey&&a[c.panKey+"Key"];J&&J.touch||(d<w?d=w:d>w+D&&(d=w+D),n<m?n=m:n>m+e&&(n=m+e),this.hasDragged=Math.sqrt(Math.pow(g-d,2)+Math.pow(C-n,2)),10<this.hasDragged&&(x=b.isInsidePlot(g-w,C-m),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&
x&&!k&&!J&&(this.selectionMarker=J=b.renderer.rect(w,m,f?1:D,p?1:e,0).attr({"class":"highcharts-selection-marker",zIndex:7}).add()),J&&f&&(d-=g,J.attr({width:Math.abs(d),x:(0<d?0:d)+g})),J&&p&&(d=n-C,J.attr({height:Math.abs(d),y:(0<d?0:d)+C})),x&&!J&&c.panning&&b.pan(a,c.panning)))},drop:function(a){var b=this,c=this.chart,d=this.hasPinched;if(this.selectionMarker){var n={originalEvent:a,xAxis:[],yAxis:[]},t=this.selectionMarker,p=t.attr?t.attr("x"):t.x,w=t.attr?t.attr("y"):t.y,m=t.attr?t.attr("width"):
t.width,D=t.attr?t.attr("height"):t.height,e;if(this.hasDragged||d)f(c.axes,function(c){if(c.zoomEnabled&&k(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var h=c.horiz,g="touchend"===a.type?c.minPixelPadding:0,l=c.toValue((h?p:w)+g),h=c.toValue((h?p+m:w+D)-g);n[c.coll].push({axis:c,min:Math.min(l,h),max:Math.max(l,h)});e=!0}}),e&&v(c,"selection",n,function(a){c.zoom(u(a,d?{animation:!1}:null))});q(c.index)&&(this.selectionMarker=this.selectionMarker.destroy());d&&this.scaleGroups()}c&&q(c.index)&&
(r(c.container,{cursor:c._cursor}),c.cancelClick=10<this.hasDragged,c.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){a=this.normalize(a);2!==a.button&&(this.zoomOption(a),a.preventDefault&&a.preventDefault(),this.dragStart(a))},onDocumentMouseUp:function(b){H[a.hoverChartIndex]&&H[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition;a=this.normalize(a,c);!c||this.inClass(a.target,"highcharts-tracker")||
b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var c=H[a.hoverChartIndex];c&&(b.relatedTarget||b.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=null)},onContainerMouseMove:function(b){var c=this.chart;k(a.hoverChartIndex)&&H[a.hoverChartIndex]&&H[a.hoverChartIndex].mouseIsDown||(a.hoverChartIndex=c.index);b=this.normalize(b);b.returnValue=!1;"mousedown"===c.mouseIsDown&&this.drag(b);!this.inClass(b.target,"highcharts-tracker")&&!c.isInsidePlot(b.chartX-
c.plotLeft,b.chartY-c.plotTop)||c.openMenu||this.runPointActions(b)},inClass:function(a,c){for(var b;a;){if(b=G(a,"class")){if(-1!==b.indexOf(c))return!0;if(-1!==b.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;a=a.relatedTarget||a.toElement;this.isDirectTouch=!1;if(!(!b||!a||b.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+b.index)&&this.inClass(a,"highcharts-tracker")))b.onMouseOut()},
onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,n=b.plotTop;a=this.normalize(a);b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(v(c.series,"click",u(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(u(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-n)&&v(b,"click",a)))},setDOMEvents:function(){var b=this,c=b.chart.container,h=c.ownerDocument;c.onmousedown=function(a){b.onContainerMouseDown(a)};c.onmousemove=function(a){b.onContainerMouseMove(a)};
c.onclick=function(a){b.onContainerClick(a)};this.unbindContainerMouseLeave=F(c,"mouseleave",b.onContainerMouseLeave);a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=F(h,"mouseup",b.onDocumentMouseUp));a.hasTouch&&(c.ontouchstart=function(a){b.onContainerTouchStart(a)},c.ontouchmove=function(a){b.onContainerTouchMove(a)},a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=F(h,"touchend",b.onDocumentTouchEnd)))},destroy:function(){var b=this;b.unDocMouseMove&&b.unDocMouseMove();this.unbindContainerMouseLeave();
a.chartCount||(a.unbindDocumentMouseUp&&(a.unbindDocumentMouseUp=a.unbindDocumentMouseUp()),a.unbindDocumentTouchEnd&&(a.unbindDocumentTouchEnd=a.unbindDocumentTouchEnd()));clearInterval(b.tooltipTimeout);a.objectEach(b,function(a,c){b[c]=null})}}})(K);(function(a){var F=a.charts,G=a.each,H=a.extend,r=a.map,k=a.noop,f=a.pick;H(a.Pointer.prototype,{pinchTranslate:function(a,f,k,q,d,c){this.zoomHor&&this.pinchTranslateDirection(!0,a,f,k,q,d,c);this.zoomVert&&this.pinchTranslateDirection(!1,a,f,k,q,
d,c)},pinchTranslateDirection:function(a,f,k,q,d,c,z,p){var n=this.chart,b=a?"x":"y",l=a?"X":"Y",h="chart"+l,E=a?"width":"height",B=n["plot"+(a?"Left":"Top")],t,I,w=p||1,m=n.inverted,D=n.bounds[a?"h":"v"],e=1===f.length,x=f[0][h],J=k[0][h],g=!e&&f[1][h],C=!e&&k[1][h],P;k=function(){!e&&20<Math.abs(x-g)&&(w=p||Math.abs(J-C)/Math.abs(x-g));I=(B-J)/w+x;t=n["plot"+(a?"Width":"Height")]/w};k();f=I;f<D.min?(f=D.min,P=!0):f+t>D.max&&(f=D.max-t,P=!0);P?(J-=.8*(J-z[b][0]),e||(C-=.8*(C-z[b][1])),k()):z[b]=
[J,C];m||(c[b]=I-B,c[E]=t);c=m?1/w:w;d[E]=t;d[b]=f;q[m?a?"scaleY":"scaleX":"scale"+l]=w;q["translate"+l]=c*B+(J-c*x)},pinch:function(a){var u=this,v=u.chart,q=u.pinchDown,d=a.touches,c=d.length,z=u.lastValidTouch,p=u.hasZoom,n=u.selectionMarker,b={},l=1===c&&(u.inClass(a.target,"highcharts-tracker")&&v.runTrackerClick||u.runChartClick),h={};1<c&&(u.initiated=!0);p&&u.initiated&&!l&&a.preventDefault();r(d,function(a){return u.normalize(a)});"touchstart"===a.type?(G(d,function(a,b){q[b]={chartX:a.chartX,
chartY:a.chartY}}),z.x=[q[0].chartX,q[1]&&q[1].chartX],z.y=[q[0].chartY,q[1]&&q[1].chartY],G(v.axes,function(a){if(a.zoomEnabled){var b=v.bounds[a.horiz?"h":"v"],c=a.minPixelPadding,h=a.toPixels(f(a.options.min,a.dataMin)),d=a.toPixels(f(a.options.max,a.dataMax)),m=Math.max(h,d);b.min=Math.min(a.pos,Math.min(h,d)-c);b.max=Math.max(a.pos+a.len,m+c)}}),u.res=!0):u.followTouchMove&&1===c?this.runPointActions(u.normalize(a)):q.length&&(n||(u.selectionMarker=n=H({destroy:k,touch:!0},v.plotBox)),u.pinchTranslate(q,
d,b,n,h,z),u.hasPinched=p,u.scaleGroups(b,h),u.res&&(u.res=!1,this.reset(!1,0)))},touch:function(k,r){var u=this.chart,q,d;if(u.index!==a.hoverChartIndex)this.onContainerMouseLeave({relatedTarget:!0});a.hoverChartIndex=u.index;1===k.touches.length?(k=this.normalize(k),(d=u.isInsidePlot(k.chartX-u.plotLeft,k.chartY-u.plotTop))&&!u.openMenu?(r&&this.runPointActions(k),"touchmove"===k.type&&(r=this.pinchDown,q=r[0]?4<=Math.sqrt(Math.pow(r[0].chartX-k.chartX,2)+Math.pow(r[0].chartY-k.chartY,2)):!1),f(q,
!0)&&this.pinch(k)):r&&this.reset()):2===k.touches.length&&this.pinch(k)},onContainerTouchStart:function(a){this.zoomOption(a);this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(f){F[a.hoverChartIndex]&&F[a.hoverChartIndex].pointer.drop(f)}})})(K);(function(a){var F=a.addEvent,G=a.charts,H=a.css,r=a.doc,k=a.extend,f=a.noop,u=a.Pointer,y=a.removeEvent,v=a.win,q=a.wrap;if(!a.hasTouch&&(v.PointerEvent||v.MSPointerEvent)){var d={},c=!!v.PointerEvent,z=function(){var c=
[];c.item=function(a){return this[a]};a.objectEach(d,function(a){c.push({pageX:a.pageX,pageY:a.pageY,target:a.target})});return c},p=function(c,b,d,h){"touch"!==c.pointerType&&c.pointerType!==c.MSPOINTER_TYPE_TOUCH||!G[a.hoverChartIndex]||(h(c),h=G[a.hoverChartIndex].pointer,h[b]({type:d,target:c.currentTarget,preventDefault:f,touches:z()}))};k(u.prototype,{onContainerPointerDown:function(a){p(a,"onContainerTouchStart","touchstart",function(a){d[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},
onContainerPointerMove:function(a){p(a,"onContainerTouchMove","touchmove",function(a){d[a.pointerId]={pageX:a.pageX,pageY:a.pageY};d[a.pointerId].target||(d[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){p(a,"onDocumentTouchEnd","touchend",function(a){delete d[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,c?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,c?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(r,c?
"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});q(u.prototype,"init",function(a,b,c){a.call(this,b,c);this.hasZoom&&H(b.container,{"-ms-touch-action":"none","touch-action":"none"})});q(u.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(F)});q(u.prototype,"destroy",function(a){this.batchMSEvents(y);a.call(this)})}})(K);(function(a){var F=a.addEvent,G=a.css,H=a.discardElement,r=a.defined,k=a.each,f=a.fireEvent,u=a.isFirefox,y=a.marginNames,
v=a.merge,q=a.pick,d=a.setAnimation,c=a.stableSort,z=a.win,p=a.wrap;a.Legend=function(a,b){this.init(a,b)};a.Legend.prototype={init:function(a,b){this.chart=a;this.setOptions(b);b.enabled&&(this.render(),F(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(a){var b=q(a.padding,8);this.options=a;this.itemMarginTop=a.itemMarginTop||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=q(a.symbolWidth,16);this.pages=[]},update:function(a,b){var c=this.chart;
this.setOptions(v(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=!0;q(b,!0)&&c.redraw();f(this,"afterUpdate")},colorizeItem:function(a,b){a.legendGroup[b?"removeClass":"addClass"]("highcharts-legend-item-hidden");f(this,"afterColorizeItem",{item:a,visible:b})},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,h=a._legendItemPos,d=h[0],h=h[1],n=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?d:this.legendWidth-d-2*c-4,h);n&&(n.x=d,n.y=h)},destroyItem:function(a){var b=
a.checkbox;k(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&H(a.checkbox)},destroy:function(){function a(a){this[a]&&(this[a]=this[a].destroy())}k(this.getAllItems(),function(b){k(["legendItem","legendGroup"],a,b)});k("clipRect up down pager nav box title group".split(" "),a,this);this.display=null},positionCheckboxes:function(){var a=this.group&&this.group.alignAttr,b,c=this.clipHeight||this.legendHeight,h=this.titleHeight;a&&(b=a.translateY,
k(this.allItems,function(d){var l=d.checkbox,n;l&&(n=b+h+l.y+(this.scrollOffset||0)+3,G(l,{left:a.translateX+d.checkboxOffset+l.x-20+"px",top:n+"px",display:n>b-6&&n<b+c-6?"":"none"}))},this))},renderTitle:function(){var a=this.options,b=this.padding,c=a.title,h=0;c.text&&(this.title||(this.title=this.chart.renderer.label(c.text,b-3,b-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}).add(this.group)),a=this.title.getBBox(),h=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:h}));
this.titleHeight=h},setText:function(c){var b=this.options;c.legendItem.attr({text:b.labelFormat?a.format(b.labelFormat,c,this.chart.time):b.labelFormatter.call(c)})},renderItem:function(a){var b=this.chart,c=b.renderer,h=this.options,d=this.symbolWidth,f=h.symbolPadding,n="horizontal"===h.layout?q(h.itemDistance,20):0,p=!h.rtl,w=a.legendItem,m=!a.series,D=!m&&a.series.drawLegendSymbol?a.series:a,e=D.options,e=this.createCheckboxForItem&&e&&e.showCheckbox,n=d+f+n+(e?20:0),x=h.useHTML,k=a.options.className;
w||(a.legendGroup=c.g("legend-item").addClass("highcharts-"+D.type+"-series highcharts-color-"+a.colorIndex+(k?" "+k:"")+(m?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=w=c.text("",p?d+f:-f,this.baseline||0,x).attr({align:p?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=c.fontMetrics(12,w),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,w.attr("y",this.baseline)),this.symbolHeight=h.symbolHeight||this.fontMetrics.f,D.drawLegendSymbol(this,
a),this.setItemEvents&&this.setItemEvents(a,w,x),e&&this.createCheckboxForItem(a));this.colorizeItem(a,a.visible);w.css({width:(h.itemWidth||h.width||b.spacingBox.width)-n});this.setText(a);b=w.getBBox();a.itemWidth=a.checkboxOffset=h.itemWidth||a.legendItemWidth||b.width+n;this.maxItemWidth=Math.max(this.maxItemWidth,a.itemWidth);this.totalItemWidth+=a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||b.height||this.symbolHeight)},layoutItem:function(a){var b=this.options,c=this.padding,
h="horizontal"===b.layout,d=a.itemHeight,f=b.itemMarginBottom||0,n=this.itemMarginTop,p=h?q(b.itemDistance,20):0,w=b.width,m=w||this.chart.spacingBox.width-2*c-b.x,b=b.alignColumns&&this.totalItemWidth>m?this.maxItemWidth:a.itemWidth;h&&this.itemX-c+b>m&&(this.itemX=c,this.itemY+=n+this.lastLineHeight+f,this.lastLineHeight=0);this.lastItemY=n+this.itemY+f;this.lastLineHeight=Math.max(d,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];h?this.itemX+=b:(this.itemY+=n+d+f,this.lastLineHeight=
d);this.offsetWidth=w||Math.max((h?this.itemX-c-(a.checkbox?0:p):b)+c,this.offsetWidth)},getAllItems:function(){var a=[];k(this.chart.series,function(b){var c=b&&b.options;b&&q(c.showInLegend,r(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))});f(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var c=this.chart,
d=this.options,f=this.getAlignment();f&&k([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(h,l){h.test(f)&&!r(a[l])&&(c[y[l]]=Math.max(c[y[l]],c.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*d[l%2?"x":"y"]+q(d.margin,12)+b[l]+(0===l&&void 0!==c.options.title.margin?c.titleOffset+c.options.title.margin:0)))})},render:function(){var a=this.chart,b=a.renderer,d=this.group,h,f,p,t,I=this.box,w=this.options,m=this.padding;this.itemX=m;this.itemY=this.initialItemY;this.lastItemY=
this.offsetWidth=0;d||(this.group=d=b.g("legend").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(d),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();h=this.getAllItems();c(h,function(a,e){return(a.options&&a.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)});w.reversed&&h.reverse();this.allItems=h;this.display=f=!!h.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;k(h,this.renderItem,this);k(h,this.layoutItem,this);
p=(w.width||this.offsetWidth)+m;t=this.lastItemY+this.lastLineHeight+this.titleHeight;t=this.handleOverflow(t);t+=m;I||(this.box=I=b.rect().addClass("highcharts-legend-box").attr({r:w.borderRadius}).add(d),I.isNew=!0);0<p&&0<t&&(I[I.isNew?"attr":"animate"](I.crisp.call({},{x:0,y:0,width:p,height:t},I.strokeWidth())),I.isNew=!1);I[f?"show":"hide"]();"none"===d.getStyle("display")&&(p=t=0);this.legendWidth=p;this.legendHeight=t;k(h,this.positionItem,this);f&&(b=a.spacingBox,/(lth|ct|rth)/.test(this.getAlignment())&&
(b=v(b,{y:b.y+a.titleOffset+a.options.title.margin})),d.align(v(w,{width:p,height:t}),!0,b));a.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,f=this.options,n=f.y,t=this.padding,c=c.spacingBox.height+("top"===f.verticalAlign?-n:n)-t,n=f.maxHeight,p,w=this.clipRect,m=f.navigation,D=q(m.animation,!0),e=m.arrowSize||12,x=this.nav,J=this.pages,g,C=this.allItems,z=function(a){"number"===typeof a?w.attr({height:a}):w&&(b.clipRect=w.destroy(),b.contentGroup.clip());
b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+t+"px,9999px,"+(t+a)+"px,0)":"auto")};"horizontal"!==f.layout||"middle"===f.verticalAlign||f.floating||(c/=2);n&&(c=Math.min(c,n));J.length=0;a>c&&!1!==m.enabled?(this.clipHeight=p=Math.max(c-20-this.titleHeight-t,0),this.currentPage=q(this.currentPage,1),this.fullHeight=a,k(C,function(a,e){var b=a._legendItemPos[1],c=Math.round(a.legendItem.getBBox().height),m=J.length;if(!m||b-J[m-1]>p&&(g||b)!==J[m-1])J.push(g||b),m++;a.pageIx=m-1;g&&
(C[e-1].pageIx=m-1);e===C.length-1&&b+c-J[m-1]>p&&(J.push(b),a.pageIx=m);b!==g&&(g=b)}),w||(w=b.clipRect=d.clipRect(0,t,9999,0),b.contentGroup.clip(w)),z(p),x||(this.nav=x=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,e,e).on("click",function(){b.scroll(-1,D)}).add(x),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation").add(x),this.down=d.symbol("triangle-down",0,0,e,e).on("click",function(){b.scroll(1,D)}).add(x)),b.scroll(0),a=c):x&&(z(),this.nav=x.destroy(),
this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var c=this.pages,h=c.length;a=this.currentPage+a;var f=this.clipHeight,n=this.pager,p=this.padding;a>h&&(a=h);0<a&&(void 0!==b&&d(b,this.chart),this.nav.attr({translateX:p,translateY:f+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),n.attr({text:a+"/"+h}),this.down.attr({x:18+this.pager.getBBox().width,"class":a===
h?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.scrollOffset=-c[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=a,this.positionCheckboxes())}};a.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.symbolHeight,d=a.options.squareSymbol;b.legendSymbol=this.chart.renderer.rect(d?(a.symbolWidth-c)/2:0,a.baseline-c+1,d?c:a.symbolWidth,c,q(a.options.symbolRadius,c/2)).addClass("highcharts-point").attr({zIndex:3}).add(b.legendGroup)},
drawLineMarker:function(a){var b=this.options.marker,c,d=a.symbolWidth,f=a.symbolHeight;c=f/2;var n=this.chart.renderer,p=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);this.legendLine=n.path(["M",0,a,"L",d,a]).addClass("highcharts-graph").attr({}).add(p);b&&!1!==b.enabled&&(c=Math.min(q(b.radius,c),c),0===this.symbol.indexOf("url")&&(b=v(b,{width:f,height:f}),c=0),this.legendSymbol=b=n.symbol(this.symbol,d/2-c,a-c,2*c,2*c,b).addClass("highcharts-point").add(p),b.isMarker=!0)}};(/Trident\/7\.0/.test(z.navigator.userAgent)||
u)&&p(a.Legend.prototype,"positionItem",function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d();setTimeout(d)})})(K);(function(a){var F=a.addEvent,G=a.animObject,H=a.attr,r=a.doc,k=a.Axis,f=a.createElement,u=a.defaultOptions,y=a.discardElement,v=a.charts,q=a.defined,d=a.each,c=a.extend,z=a.find,p=a.fireEvent,n=a.grep,b=a.isNumber,l=a.isObject,h=a.isString,E=a.Legend,B=a.marginNames,t=a.merge,I=a.objectEach,w=a.Pointer,m=a.pick,D=a.pInt,e=a.removeEvent,x=a.seriesTypes,J=a.splat,g=
a.syncTimeout,C=a.win,P=a.Chart=function(){this.getArgs.apply(this,arguments)};a.chart=function(a,e,b){return new P(a,e,b)};c(P.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(h(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(e,b){var c,g,m=e.series,d=e.plotOptions||{};p(this,"init",{args:arguments},function(){e.series=null;c=t(u,e);for(g in c.plotOptions)c.plotOptions[g].tooltip=d[g]&&t(d[g].tooltip)||void 0;c.tooltip.userOptions=e.chart&&
e.chart.forExport&&e.tooltip.userOptions||e.tooltip;c.series=e.series=m;this.userOptions=e;var h=c.chart,A=h.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.time=e.time&&a.keys(e.time).length?new a.Time(e.time):a.time;this.hasCartesianSeries=h.showAxes;var x=this;x.index=v.length;v.push(x);a.chartCount++;A&&I(A,function(a,e){F(x,e,a)});x.xAxis=[];x.yAxis=[];x.pointCount=x.colorCounter=
x.symbolCounter=0;p(x,"afterInit");x.firstRender()})},initSeries:function(e){var b=this.options.chart;(b=x[e.type||b.type||b.defaultSeriesType])||a.error(17,!0);b=new b;b.init(this,e);return b},orderSeries:function(a){var e=this.series;for(a=a||0;a<e.length;a++)e[a]&&(e[a].index=a,e[a].name=e[a].getName())},isInsidePlot:function(a,e,b){var c=b?e:a;a=b?a:e;return 0<=c&&c<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(e){p(this,"beforeRedraw");var b=this.axes,g=this.series,m=this.pointer,
h=this.legend,x=this.isDirtyLegend,A,D,f=this.hasCartesianSeries,l=this.isDirtyBox,n,t=this.renderer,w=t.isHidden(),k=[];this.setResponsive&&this.setResponsive(!1);a.setAnimation(e,this);w&&this.temporaryDisplay();this.layOutTitles();for(e=g.length;e--;)if(n=g[e],n.options.stacking&&(A=!0,n.isDirty)){D=!0;break}if(D)for(e=g.length;e--;)n=g[e],n.options.stacking&&(n.isDirty=!0);d(g,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),x=!0);a.isDirtyData&&p(a,"updatedData")});
x&&h.options.enabled&&(h.render(),this.isDirtyLegend=!1);A&&this.getStacks();f&&d(b,function(a){a.updateNames();a.setScale()});this.getMargins();f&&(d(b,function(a){a.isDirty&&(l=!0)}),d(b,function(a){var e=a.min+","+a.max;a.extKey!==e&&(a.extKey=e,k.push(function(){p(a,"afterSetExtremes",c(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(l||A)&&a.redraw()}));l&&this.drawChartBox();p(this,"predraw");d(g,function(a){(l||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});m&&m.reset(!0);t.draw();
p(this,"redraw");p(this,"render");w&&this.temporaryDisplay(!0);d(k,function(a){a.call()})},get:function(a){function e(e){return e.id===a||e.options&&e.options.id===a}var b,c=this.series,g;b=z(this.axes,e)||z(this.series,e);for(g=0;!b&&g<c.length;g++)b=z(c[g].points||[],e);return b},getAxes:function(){var a=this,e=this.options,b=e.xAxis=J(e.xAxis||{}),e=e.yAxis=J(e.yAxis||{});p(this,"getAxes");d(b,function(a,e){a.index=e;a.isX=!0});d(e,function(a,e){a.index=e});b=b.concat(e);d(b,function(e){new k(a,
e)});p(this,"afterGetAxes")},getSelectedPoints:function(){var a=[];d(this.series,function(e){a=a.concat(n(e.data||[],function(a){return a.selected}))});return a},getSelectedSeries:function(){return n(this.series,function(a){return a.selected})},setTitle:function(a,e,b){var c=this,g=c.options,m;m=g.title=t(g.title,a);g=g.subtitle=t(g.subtitle,e);d([["title",a,m],["subtitle",e,g]],function(a,e){var b=a[0],g=c[b],m=a[1];a=a[2];g&&m&&(c[b]=g=g.destroy());a&&!g&&(c[b]=c.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,
"class":"highcharts-"+b,zIndex:a.zIndex||4}).add(),c[b].update=function(a){c.setTitle(!e&&a,e&&a)})});c.layOutTitles(b)},layOutTitles:function(a){var e=0,b,g=this.renderer,h=this.spacingBox;d(["title","subtitle"],function(a){var b=this[a],m=this.options[a];a="title"===a?-3:m.verticalAlign?0:e+2;var d;b&&(d=g.fontMetrics(d,b).b,b.css({width:(m.width||h.width+m.widthAdjust)+"px"}).align(c({y:a+d},m),!1,"spacingBox"),m.floating||m.verticalAlign||(e=Math.ceil(e+b.getBBox(m.useHTML).height)))},this);b=
this.titleOffset!==e;this.titleOffset=e;!this.isDirtyBox&&b&&(this.isDirtyBox=this.isDirtyLegend=b,this.hasRendered&&m(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var e=this.options.chart,b=e.width,e=e.height,c=this.renderTo;q(b)||(this.containerWidth=a.getStyle(c,"width"));q(e)||(this.containerHeight=a.getStyle(c,"height"));this.chartWidth=Math.max(0,b||this.containerWidth||600);this.chartHeight=Math.max(0,a.relativeLength(e,this.chartWidth)||(1<this.containerHeight?this.containerHeight:
400))},temporaryDisplay:function(e){var b=this.renderTo;if(e)for(;b&&b.style;)b.hcOrigStyle&&(a.css(b,b.hcOrigStyle),delete b.hcOrigStyle),b.hcOrigDetached&&(r.body.removeChild(b),b.hcOrigDetached=!1),b=b.parentNode;else for(;b&&b.style;){r.body.contains(b)||b.parentNode||(b.hcOrigDetached=!0,r.body.appendChild(b));if("none"===a.getStyle(b,"display",!1)||b.hcOricDetached)b.hcOrigStyle={display:b.style.display,height:b.style.height,overflow:b.style.overflow},e={display:"block",overflow:"hidden"},b!==
this.renderTo&&(e.height=0),a.css(b,e),b.offsetWidth||b.style.setProperty("display","block","important");b=b.parentNode;if(b===r.body)break}},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var e,c=this.options,g=c.chart,m,d;e=this.renderTo;var x=a.uniqueKey(),l;e||(this.renderTo=e=g.renderTo);h(e)&&(this.renderTo=e=r.getElementById(e));e||a.error(13,!0);m=D(H(e,"data-highcharts-chart"));b(m)&&v[m]&&v[m].hasRendered&&v[m].destroy();H(e,"data-highcharts-chart",
this.index);e.innerHTML="";g.skipClone||e.offsetWidth||this.temporaryDisplay();this.getChartSize();m=this.chartWidth;d=this.chartHeight;this.container=e=f("div",{id:x},void 0,e);this._cursor=e.style.cursor;this.renderer=new (a[g.renderer]||a.Renderer)(e,m,d,null,g.forExport,c.exporting&&c.exporting.allowHTML);this.setClassName(g.className);for(l in c.defs)this.renderer.definition(c.defs[l]);this.renderer.chartIndex=this.index;p(this,"afterGetContainer")},getMargins:function(a){var e=this.spacing,
b=this.margin,c=this.titleOffset;this.resetMargins();c&&!q(b[0])&&(this.plotTop=Math.max(this.plotTop,c+this.options.title.margin+e[0]));this.legend&&this.legend.display&&this.legend.adjustMargins(b,e);this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value);this.adjustPlotArea&&this.adjustPlotArea();a||this.getAxisMargins()},getAxisMargins:function(){var a=this,e=a.axisOffset=[0,0,0,0],b=a.margin;a.hasCartesianSeries&&d(a.axes,function(a){a.visible&&
a.getOffset()});d(B,function(c,g){q(b[g])||(a[c]+=e[g])});a.setChartSize()},reflow:function(e){var b=this,c=b.options.chart,m=b.renderTo,d=q(c.width)&&q(c.height),h=c.width||a.getStyle(m,"width"),c=c.height||a.getStyle(m,"height"),m=e?e.target:C;if(!d&&!b.isPrinting&&h&&c&&(m===C||m===r)){if(h!==b.containerWidth||c!==b.containerHeight)a.clearTimeout(b.reflowTimeout),b.reflowTimeout=g(function(){b.container&&b.setSize(void 0,void 0,!1)},e?100:0);b.containerWidth=h;b.containerHeight=c}},setReflow:function(a){var e=
this;!1===a||this.unbindReflow?!1===a&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=F(C,"resize",function(a){e.reflow(a)}),F(this,"destroy",this.unbindReflow))},setSize:function(e,b,c){var m=this,h=m.renderer;m.isResizing+=1;a.setAnimation(c,m);m.oldChartHeight=m.chartHeight;m.oldChartWidth=m.chartWidth;void 0!==e&&(m.options.chart.width=e);void 0!==b&&(m.options.chart.height=b);m.getChartSize();m.setChartSize(!0);h.setSize(m.chartWidth,m.chartHeight,c);d(m.axes,function(a){a.isDirty=
!0;a.setScale()});m.isDirtyLegend=!0;m.isDirtyBox=!0;m.layOutTitles();m.getMargins();m.redraw(c);m.oldChartHeight=null;p(m,"resize");g(function(){m&&p(m,"endResize",null,function(){--m.isResizing})},G(void 0).duration)},setChartSize:function(a){var e=this.inverted,b=this.renderer,c=this.chartWidth,g=this.chartHeight,m=this.options.chart,h=this.spacing,x=this.clipOffset,D,f,l,A;this.plotLeft=D=Math.round(this.plotLeft);this.plotTop=f=Math.round(this.plotTop);this.plotWidth=l=Math.max(0,Math.round(c-
D-this.marginRight));this.plotHeight=A=Math.max(0,Math.round(g-f-this.marginBottom));this.plotSizeX=e?A:l;this.plotSizeY=e?l:A;this.plotBorderWidth=m.plotBorderWidth||0;this.spacingBox=b.spacingBox={x:h[3],y:h[0],width:c-h[3]-h[1],height:g-h[0]-h[2]};this.plotBox=b.plotBox={x:D,y:f,width:l,height:A};c=2*Math.floor(this.plotBorderWidth/2);e=Math.ceil(Math.max(c,x[3])/2);b=Math.ceil(Math.max(c,x[0])/2);this.clipBox={x:e,y:b,width:Math.floor(this.plotSizeX-Math.max(c,x[1])/2-e),height:Math.max(0,Math.floor(this.plotSizeY-
Math.max(c,x[2])/2-b))};a||d(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()});p(this,"afterSetChartSize",{skipAxes:a})},resetMargins:function(){var a=this,e=a.options.chart;d(["margin","spacing"],function(b){var c=e[b],g=l(c)?c:[c,c,c,c];d(["Top","Right","Bottom","Left"],function(c,d){a[b][d]=m(e[b+c],g[d])})});d(B,function(e,b){a[e]=m(a.margin[b],a.spacing[b])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,e=this.renderer,b=this.chartWidth,
c=this.chartHeight,g=this.chartBackground,m=this.plotBackground,d=this.plotBorder,h,x,D=this.plotLeft,f=this.plotTop,l=this.plotWidth,n=this.plotHeight,t=this.plotBox,w=this.clipRect,k=this.clipBox,C="animate";g||(this.chartBackground=g=e.rect().addClass("highcharts-background").add(),C="attr");h=x=g.strokeWidth();g[C]({x:x/2,y:x/2,width:b-x-h%2,height:c-x-h%2,r:a.borderRadius});C="animate";m||(C="attr",this.plotBackground=m=e.rect().addClass("highcharts-plot-background").add());m[C](t);w?w.animate({width:k.width,
height:k.height}):this.clipRect=e.clipRect(k);C="animate";d||(C="attr",this.plotBorder=d=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());d[C](d.crisp({x:D,y:f,width:l,height:n},-d.strokeWidth()));this.isDirtyBox=!1;p(this,"afterDrawChartBox")},propFromSeries:function(){var a=this,e=a.options.chart,b,c=a.options.series,g,m;d(["inverted","angular","polar"],function(d){b=x[e.type||e.defaultSeriesType];m=e[d]||b&&b.prototype[d];for(g=c&&c.length;!m&&g--;)(b=x[c[g].type])&&b.prototype[d]&&
(m=!0);a[d]=m})},linkSeries:function(){var a=this,e=a.series;d(e,function(a){a.linkedSeries.length=0});d(e,function(e){var b=e.options.linkedTo;h(b)&&(b=":previous"===b?a.series[e.index-1]:a.get(b))&&b.linkedParent!==e&&(b.linkedSeries.push(e),e.linkedParent=b,e.visible=m(e.options.visible,b.options.visible,e.visible))});p(this,"afterLinkSeries")},renderSeries:function(){d(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,e=a.options.labels;e.items&&d(e.items,
function(b){var g=c(e.style,b.style),m=D(g.left)+a.plotLeft,d=D(g.top)+a.plotTop+12;delete g.left;delete g.top;a.renderer.text(b.html,m,d).attr({zIndex:2}).css(g).add()})},render:function(){var a=this.axes,e=this.renderer,b=this.options,c,g,m;this.setTitle();this.legend=new E(this,b.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();b=this.plotWidth;c=this.plotHeight=Math.max(this.plotHeight-21,0);d(a,function(a){a.setScale()});this.getAxisMargins();g=1.1<b/this.plotWidth;
m=1.05<c/this.plotHeight;if(g||m)d(a,function(a){(a.horiz&&g||!a.horiz&&m)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&d(a,function(a){a.visible&&a.render()});this.seriesGroup||(this.seriesGroup=e.g("series-group").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.hasRendered=!0},addCredits:function(a){var e=this;a=t(!0,this.options.credits,a);a.enabled&&!this.credits&&(this.credits=
this.renderer.text(a.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){a.href&&(C.location.href=a.href)}).attr({align:a.position.align,zIndex:8}).add().align(a.position),this.credits.update=function(a){e.credits=e.credits.destroy();e.addCredits(a)})},destroy:function(){var b=this,c=b.axes,g=b.series,m=b.container,h,x=m&&m.parentNode;p(b,"destroy");b.renderer.forExport?a.erase(v,b):v[b.index]=void 0;a.chartCount--;b.renderTo.removeAttribute("data-highcharts-chart");
e(b);for(h=c.length;h--;)c[h]=c[h].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(h=g.length;h--;)g[h]=g[h].destroy();d("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),function(a){var e=b[a];e&&e.destroy&&(b[a]=e.destroy())});m&&(m.innerHTML="",e(m),x&&y(m));I(b,function(a,e){delete b[e]})},firstRender:function(){var a=this,e=a.options;if(!a.isReadyToRender||
a.isReadyToRender()){a.getContainer();a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();d(e.series||[],function(e){a.initSeries(e)});a.linkSeries();p(a,"beforeRender");w&&(a.pointer=new w(a,e));a.render();if(!a.renderer.imgCount&&a.onload)a.onload();a.temporaryDisplay(!0)}},onload:function(){d([this.callback].concat(this.callbacks),function(a){a&&void 0!==this.index&&a.apply(this,[this])},this);p(this,"load");p(this,"render");q(this.index)&&this.setReflow(this.options.chart.reflow);
this.onload=null}})})(K);(function(a){var F=a.addEvent,G=a.Chart,H=a.each;F(G,"afterSetChartSize",function(r){var k=this.options.chart.scrollablePlotArea;if(k=k&&k.minWidth)if(this.scrollablePixels=k=Math.max(0,k-this.chartWidth))this.plotWidth+=k,this.clipBox.width+=k,r.skipAxes||H(this.axes,function(f){1===f.side?f.getPlotLinePath=function(){var k=this.right,r;this.right=k-f.chart.scrollablePixels;r=a.Axis.prototype.getPlotLinePath.apply(this,arguments);this.right=k;return r}:(f.setAxisSize(),f.setAxisTranslation())})});
F(G,"render",function(){this.scrollablePixels?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});G.prototype.setUpScrolling=function(){this.scrollingContainer=a.createElement("div",{className:"highcharts-scrolling"},{overflowX:"auto",WebkitOverflowScrolling:"touch"},this.renderTo);this.innerContainer=a.createElement("div",{className:"highcharts-inner-container"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=
null};G.prototype.applyFixed=function(){var r=this.container,k,f;this.fixedDiv||(this.fixedDiv=a.createElement("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:2},null,!0),this.renderTo.insertBefore(this.fixedDiv,this.renderTo.firstChild),this.fixedRenderer=k=new a.Renderer(this.fixedDiv,0,0),this.scrollableMask=k.path().attr({fill:a.color(this.options.chart.backgroundColor||"#fff").setOpacity(.85).get(),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),
a.each([this.inverted?".highcharts-xaxis":".highcharts-yaxis",this.inverted?".highcharts-xaxis-labels":".highcharts-yaxis-labels",".highcharts-contextbutton",".highcharts-credits",".highcharts-legend",".highcharts-subtitle",".highcharts-title"],function(f){a.each(r.querySelectorAll(f),function(a){k.box.appendChild(a);a.style.pointerEvents="auto"})}));this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);f=this.chartWidth+this.scrollablePixels;this.container.style.width=f+"px";this.renderer.boxWrapper.attr({width:f,
height:this.chartHeight,viewBox:[0,0,f,this.chartHeight].join(" ")});f=this.options.chart.scrollablePlotArea;f.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixels*f.scrollPositionX);var u=this.axisOffset;f=this.plotTop-u[0]-1;var u=this.plotTop+this.plotHeight+u[2],y=this.plotLeft+this.plotWidth-this.scrollablePixels;this.scrollableMask.attr({d:this.scrollablePixels?["M",0,f,"L",this.plotLeft-1,f,"L",this.plotLeft-1,u,"L",0,u,"Z","M",y,f,"L",this.chartWidth,f,"L",this.chartWidth,
u,"L",y,u,"Z"]:["M",0,0]})}})(K);(function(a){var F,G=a.each,H=a.extend,r=a.erase,k=a.fireEvent,f=a.format,u=a.isArray,y=a.isNumber,v=a.pick,q=a.removeEvent;a.Point=F=function(){};a.Point.prototype={init:function(a,c,f){var d=a.chart.options.chart.colorCount;this.series=a;this.applyOptions(c,f);a.options.colorByPoint?(c=a.colorCounter,a.colorCounter++,a.colorCounter===d&&(a.colorCounter=0)):c=a.colorIndex;this.colorIndex=v(this.colorIndex,c);a.chart.pointCount++;k(this,"afterInit");return this},applyOptions:function(a,
c){var d=this.series,f=d.options.pointValKey||d.pointValKey;a=F.prototype.optionsToObject.call(this,a);H(this,a);this.options=this.options?H(this.options,a):a;a.group&&delete this.group;f&&(this.y=this[f]);this.isNull=v(this.isValid&&!this.isValid(),null===this.x||!y(this.y,!0));this.selected&&(this.state="select");"name"in this&&void 0===c&&d.xAxis&&d.xAxis.hasNames&&(this.x=d.xAxis.nameToX(this));void 0===this.x&&d&&(this.x=void 0===c?d.autoIncrement(this):c);return this},setNestedProperty:function(d,
c,f){f=f.split(".");a.reduce(f,function(d,f,b,l){d[f]=l.length-1===b?c:a.isObject(d[f],!0)?d[f]:{};return d[f]},d);return d},optionsToObject:function(d){var c={},f=this.series,p=f.options.keys,n=p||f.pointArrayMap||["y"],b=n.length,l=0,h=0;if(y(d)||null===d)c[n[0]]=d;else if(u(d))for(!p&&d.length>b&&(f=typeof d[0],"string"===f?c.name=d[0]:"number"===f&&(c.x=d[0]),l++);h<b;)p&&void 0===d[l]||(0<n[h].indexOf(".")?a.Point.prototype.setNestedProperty(c,d[l],n[h]):c[n[h]]=d[l]),l++,h++;else"object"===
typeof d&&(c=d,d.dataLabels&&(f._hasPointLabels=!0),d.marker&&(f._hasPointMarkers=!0));return c},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},getZone:function(){var a=
this.series,c=a.zones,a=a.zoneAxis||"y",f=0,p;for(p=c[f];this[a]>=p.value;)p=c[++f];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=p&&p.color&&!this.options.color?p.color:this.nonZonedColor;return p},destroy:function(){var a=this.series.chart,c=a.hoverPoints,f;a.pointCount--;c&&(this.setState(),r(c,this),c.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)q(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);
for(f in this)this[f]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],c,f=6;f--;)c=a[f],this[c]&&(this[c]=this[c].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var c=this.series,d=c.tooltipOptions,p=v(d.valueDecimals,""),
n=d.valuePrefix||"",b=d.valueSuffix||"";G(c.pointArrayMap||["y"],function(c){c="{point."+c;if(n||b)a=a.replace(RegExp(c+"}","g"),n+c+"}"+b);a=a.replace(RegExp(c+"}","g"),c+":,."+p+"f}")});return f(a,{point:this,series:this.series},c.chart.time)},firePointEvent:function(a,c,f){var d=this,n=this.series.options;(n.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents();"click"===a&&n.allowPointSelect&&(f=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});
k(this,a,c,f)},visible:!0}})(K);(function(a){var F=a.addEvent,G=a.animObject,H=a.arrayMax,r=a.arrayMin,k=a.correctFloat,f=a.defaultOptions,u=a.defined,y=a.each,v=a.erase,q=a.extend,d=a.fireEvent,c=a.grep,z=a.isArray,p=a.isNumber,n=a.isString,b=a.merge,l=a.objectEach,h=a.pick,E=a.removeEvent,B=a.splat,t=a.SVGElement,I=a.syncTimeout,w=a.win;a.Series=a.seriesType("line",null,{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,radius:4,states:{normal:{animation:!0},
hover:{animation:{duration:50},enabled:!0,radiusPlus:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,
directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var e=this,c,m=a.series,g;e.chart=a;e.options=b=e.setOptions(b);e.linkedSeries=[];e.bindAxes();q(e,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});c=b.events;l(c,function(a,b){F(e,b,a)});if(c&&c.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;e.getColor();e.getSymbol();y(e.parallelArrays,function(a){e[a+"Data"]=[]});
e.setData(b.data,!1);e.isCartesian&&(a.hasCartesianSeries=!0);m.length&&(g=m[m.length-1]);e._i=h(g&&g._i,-1)+1;a.orderSeries(this.insert(m));d(this,"afterInit")},insert:function(a){var b=this.options.index,e;if(p(b)){for(e=a.length;e--;)if(b>=h(a[e].options.index,a[e]._i)){a.splice(e+1,0,this);break}-1===e&&a.unshift(this);e+=1}else a.push(this);return h(e,a.length-1)},bindAxes:function(){var b=this,c=b.options,e=b.chart,d;y(b.axisTypes||[],function(m){y(e[m],function(a){d=a.options;if(c[m]===d.index||
void 0!==c[m]&&c[m]===d.id||void 0===c[m]&&0===d.index)b.insert(a.series),b[m]=a,a.isDirty=!0});b[m]||b.optionalAxis===m||a.error(18,!0)})},updateParallelArrays:function(a,b){var e=a.series,c=arguments,m=p(b)?function(c){var g="y"===c&&e.toYData?e.toYData(a):a[c];e[c+"Data"][b]=g}:function(a){Array.prototype[b].apply(e[a+"Data"],Array.prototype.slice.call(c,2))};y(e.parallelArrays,m)},autoIncrement:function(){var a=this.options,b=this.xIncrement,e,c=a.pointIntervalUnit,d=this.chart.time,b=h(b,a.pointStart,
0);this.pointInterval=e=h(this.pointInterval,a.pointInterval,1);c&&(a=new d.Date(b),"day"===c?d.set("Date",a,d.get("Date",a)+e):"month"===c?d.set("Month",a,d.get("Month",a)+e):"year"===c&&d.set("FullYear",a,d.get("FullYear",a)+e),e=a.getTime()-b);this.xIncrement=b+e;return b},setOptions:function(a){var c=this.chart,e=c.options,m=e.plotOptions,l=(c.userOptions||{}).plotOptions||{},g=m[this.type];this.userOptions=a;c=b(g,m.series,a);this.tooltipOptions=b(f.tooltip,f.plotOptions.series&&f.plotOptions.series.tooltip,
f.plotOptions[this.type].tooltip,e.tooltip.userOptions,m.series&&m.series.tooltip,m[this.type].tooltip,a.tooltip);this.stickyTracking=h(a.stickyTracking,l[this.type]&&l[this.type].stickyTracking,l.series&&l.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:c.stickyTracking);null===g.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,
className:"highcharts-negative"});a.length&&u(a[a.length-1].value)&&a.push({});d(this,"afterSetOptions",{options:c});return c},getName:function(){return this.name||"Series "+(this.index+1)},getCyclic:function(a,b,e){var c,m=this.chart,g=this.userOptions,d=a+"Index",f=a+"Counter",l=e?e.length:h(m.options.chart[a+"Count"],m[a+"Count"]);b||(c=h(g[d],g["_"+d]),u(c)||(m.series.length||(m[f]=0),g["_"+d]=c=m[f]%l,m[f]+=1),e&&(b=e[c]));void 0!==c&&(this[d]=c);this[a]=b},getColor:function(){this.getCyclic("color")},
getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(b){var c=this.options,e=this.points,m=[],d,g,h,f=this.requireSorting;y(b,function(b){var g;g=a.defined(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b).x;p(g)&&(g=a.inArray(g,this.xData,h),-1===g?m.push(b):b!==c.data[g]?(e[g].update(b,!1,null,!1),e[g].touched=!0,f&&(h=g)):e[g]&&(e[g].touched=!0),d=!0)},this);
if(d)for(b=e.length;b--;)g=e[b],g.touched||g.remove(!1),g.touched=!1;else if(b.length===e.length)y(b,function(a,b){e[b].update&&a!==c.data[b]&&e[b].update(a,!1,null,!1)});else return!1;y(m,function(a){this.addPoint(a,!1)},this);return!0},setData:function(b,c,e,d){var m=this,g=m.points,f=g&&g.length||0,x,l=m.options,D=m.chart,t=null,w=m.xAxis,k=l.turboThreshold,I=this.xData,B=this.yData,E=(x=m.pointArrayMap)&&x.length,q;b=b||[];x=b.length;c=h(c,!0);!1!==d&&x&&f&&!m.cropped&&!m.hasGroupedData&&m.visible&&
(q=this.updateData(b));if(!q){m.xIncrement=null;m.colorCounter=0;y(this.parallelArrays,function(a){m[a+"Data"].length=0});if(k&&x>k){for(e=0;null===t&&e<x;)t=b[e],e++;if(p(t))for(e=0;e<x;e++)I[e]=this.autoIncrement(),B[e]=b[e];else if(z(t))if(E)for(e=0;e<x;e++)t=b[e],I[e]=t[0],B[e]=t.slice(1,E+1);else for(e=0;e<x;e++)t=b[e],I[e]=t[0],B[e]=t[1];else a.error(12)}else for(e=0;e<x;e++)void 0!==b[e]&&(t={series:m},m.pointClass.prototype.applyOptions.apply(t,[b[e]]),m.updateParallelArrays(t,e));B&&n(B[0])&&
a.error(14,!0);m.data=[];m.options.data=m.userOptions.data=b;for(e=f;e--;)g[e]&&g[e].destroy&&g[e].destroy();w&&(w.minRange=w.userMinRange);m.isDirty=D.isDirtyBox=!0;m.isDirtyData=!!g;e=!1}"point"===l.legendType&&(this.processData(),this.generatePoints());c&&D.redraw(e)},processData:function(b){var c=this.xData,e=this.yData,m=c.length,d;d=0;var g,h,f=this.xAxis,l,n=this.options;l=n.cropThreshold;var t=this.getExtremesFromAll||n.getExtremesFromAll,w=this.isCartesian,n=f&&f.val2lin,p=f&&f.isLog,k=this.requireSorting,
I,B;if(w&&!this.isDirty&&!f.isDirty&&!this.yAxis.isDirty&&!b)return!1;f&&(b=f.getExtremes(),I=b.min,B=b.max);if(w&&this.sorted&&!t&&(!l||m>l||this.forceCrop))if(c[m-1]<I||c[0]>B)c=[],e=[];else if(c[0]<I||c[m-1]>B)d=this.cropData(this.xData,this.yData,I,B),c=d.xData,e=d.yData,d=d.start,g=!0;for(l=c.length||1;--l;)m=p?n(c[l])-n(c[l-1]):c[l]-c[l-1],0<m&&(void 0===h||m<h)?h=m:0>m&&k&&(a.error(15),k=!1);this.cropped=g;this.cropStart=d;this.processedXData=c;this.processedYData=e;this.closestPointRange=
h},cropData:function(a,b,e,c,d){var g=a.length,m=0,f=g,x;d=h(d,this.cropShoulder,1);for(x=0;x<g;x++)if(a[x]>=e){m=Math.max(0,x-d);break}for(e=x;e<g;e++)if(a[e]>c){f=e+d;break}return{xData:a.slice(m,f),yData:b.slice(m,f),start:m,end:f}},generatePoints:function(){var a=this.options,b=a.data,e=this.data,c,d=this.processedXData,g=this.processedYData,h=this.pointClass,f=d.length,l=this.cropStart||0,n,t=this.hasGroupedData,a=a.keys,w,p=[],k;e||t||(e=[],e.length=b.length,e=this.data=e);a&&t&&(this.options.keys=
!1);for(k=0;k<f;k++)n=l+k,t?(w=(new h).init(this,[d[k]].concat(B(g[k]))),w.dataGroup=this.groupMap[k]):(w=e[n])||void 0===b[n]||(e[n]=w=(new h).init(this,b[n],d[k])),w&&(w.index=n,p[k]=w);this.options.keys=a;if(e&&(f!==(c=e.length)||t))for(k=0;k<c;k++)k!==l||t||(k+=f),e[k]&&(e[k].destroyElements(),e[k].plotX=void 0);this.data=e;this.points=p},getExtremes:function(a){var b=this.yAxis,e=this.processedXData,c,m=[],g=0;c=this.xAxis.getExtremes();var d=c.min,h=c.max,f,l,n=this.requireSorting?1:0,t,w;a=
a||this.stackedYData||this.processedYData||[];c=a.length;for(w=0;w<c;w++)if(l=e[w],t=a[w],f=(p(t,!0)||z(t))&&(!b.positiveValuesOnly||t.length||0<t),l=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(e[w+n]||l)>=d&&(e[w-n]||l)<=h,f&&l)if(f=t.length)for(;f--;)"number"===typeof t[f]&&(m[g++]=t[f]);else m[g++]=t;this.dataMin=r(m);this.dataMax=H(m)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,e=this.xAxis,c=
e.categories,f=this.yAxis,g=this.points,l=g.length,n=!!this.modifyValue,t=a.pointPlacement,w="between"===t||p(t),I=a.threshold,B=a.startFromThreshold?I:0,E,q,z,v,r=Number.MAX_VALUE;"between"===t&&(t=.5);p(t)&&(t*=h(a.pointRange||e.pointRange));for(a=0;a<l;a++){var y=g[a],F=y.x,G=y.y;q=y.low;var H=b&&f.stacks[(this.negStacks&&G<(B?0:I)?"-":"")+this.stackKey],Q;f.positiveValuesOnly&&null!==G&&0>=G&&(y.isNull=!0);y.plotX=E=k(Math.min(Math.max(-1E5,e.translate(F,0,0,0,1,t,"flags"===this.type)),1E5));
b&&this.visible&&!y.isNull&&H&&H[F]&&(v=this.getStackIndicator(v,F,this.index),Q=H[F],G=Q.points[v.key],q=G[0],G=G[1],q===B&&v.key===H[F].base&&(q=h(p(I)&&I,f.min)),f.positiveValuesOnly&&0>=q&&(q=null),y.total=y.stackTotal=Q.total,y.percentage=Q.total&&y.y/Q.total*100,y.stackY=G,Q.setOffset(this.pointXOffset||0,this.barW||0));y.yBottom=u(q)?Math.min(Math.max(-1E5,f.translate(q,0,1,0,1)),1E5):null;n&&(G=this.modifyValue(G,y));y.plotY=q="number"===typeof G&&Infinity!==G?Math.min(Math.max(-1E5,f.translate(G,
0,1,0,1)),1E5):void 0;y.isInside=void 0!==q&&0<=q&&q<=f.len&&0<=E&&E<=e.len;y.clientX=w?k(e.translate(F,0,0,0,1,t)):E;y.negative=y.y<(I||0);y.category=c&&void 0!==c[y.x]?c[y.x]:y.x;y.isNull||(void 0!==z&&(r=Math.min(r,Math.abs(E-z))),z=E);y.zone=this.zones.length&&y.getZone()}this.closestPointRangePx=r;d(this,"afterTranslate")},getValidPoints:function(a,b){var e=this.chart;return c(a||this.points||[],function(a){return b&&!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!a.isNull})},setClip:function(a){var b=
this.chart,e=this.options,c=b.renderer,m=b.inverted,g=this.clipBox,d=g||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,d.height,e.xAxis,e.yAxis].join(),f=b[h],l=b[h+"m"];f||(a&&(d.width=0,m&&(d.x=b.plotSizeX),b[h+"m"]=l=c.clipRect(m?b.plotSizeX+99:-99,m?-b.plotLeft:-b.plotTop,99,m?b.chartWidth:b.chartHeight)),b[h]=f=c.clipRect(d),f.count={length:0});a&&!f.count[this.index]&&(f.count[this.index]=!0,f.count.length+=1);!1!==e.clip&&(this.group.clip(a||g?f:b.clipRect),this.markerGroup.clip(l),
this.sharedClipKey=h);a||(f.count[this.index]&&(delete f.count[this.index],--f.count.length),0===f.count.length&&h&&b[h]&&(g||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var b=this.chart,e=G(this.options.animation),c;a?this.setClip(e):(c=this.sharedClipKey,(a=b[c])&&a.animate({width:b.plotSizeX,x:0},e),b[c+"m"]&&b[c+"m"].animate({width:b.plotSizeX+99,x:0},e),this.animate=null)},afterAnimate:function(){this.setClip();d(this,"afterAnimate");this.finishedAnimating=
!0},drawPoints:function(){var a=this.points,b=this.chart,e,c,d,g,f=this.options.marker,l,t,n,w=this[this.specialGroup]||this.markerGroup,p,k=h(f.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=f.enabledThreshold*f.radius);if(!1!==f.enabled||this._hasPointMarkers)for(e=0;e<a.length;e++)c=a[e],g=c.graphic,l=c.marker||{},t=!!c.marker,d=k&&void 0===l.enabled||l.enabled,n=c.isInside,d&&!c.isNull?(d=h(l.symbol,this.symbol),p=this.markerAttribs(c,c.selected&&"select"),g?g[n?"show":"hide"](!0).animate(p):
n&&(0<p.width||c.hasImage)&&(c.graphic=g=b.renderer.symbol(d,p.x,p.y,p.width,p.height,t?l:f).add(w)),g&&g.addClass(c.getClassName(),!0)):g&&(c.graphic=g.destroy())},markerAttribs:function(a,b){var e=this.options.marker,c=a.marker||{},m=c.symbol||e.symbol,g=h(c.radius,e.radius);b&&(e=e.states[b],b=c.states&&c.states[b],g=h(b&&b.radius,e&&e.radius,g+(e&&e.radiusPlus||0)));a.hasImage=m&&0===m.indexOf("url");a.hasImage&&(g=0);a={x:Math.floor(a.plotX)-g,y:a.plotY-g};g&&(a.width=a.height=2*g);return a},
destroy:function(){var b=this,c=b.chart,e=/AppleWebKit\/533/.test(w.navigator.userAgent),h,f,g=b.data||[],n,p;d(b,"destroy");E(b);y(b.axisTypes||[],function(a){(p=b[a])&&p.series&&(v(p.series,b),p.isDirty=p.forceRedraw=!0)});b.legendItem&&b.chart.legend.destroyItem(b);for(f=g.length;f--;)(n=g[f])&&n.destroy&&n.destroy();b.points=null;a.clearTimeout(b.animationTimeout);l(b,function(a,b){a instanceof t&&!a.survive&&(h=e&&"group"===b?"hide":"destroy",a[h]())});c.hoverSeries===b&&(c.hoverSeries=null);
v(c.series,b);c.orderSeries();l(b,function(a,e){delete b[e]})},getGraphPath:function(a,b,e){var c=this,m=c.options,g=m.step,d,h=[],f=[],l;a=a||c.points;(d=a.reversed)&&a.reverse();(g={right:1,center:2}[g]||g&&3)&&d&&(g=4-g);!m.connectNulls||b||e||(a=this.getValidPoints(a));y(a,function(d,x){var t=d.plotX,n=d.plotY,w=a[x-1];(d.leftCliff||w&&w.rightCliff)&&!e&&(l=!0);d.isNull&&!u(b)&&0<x?l=!m.connectNulls:d.isNull&&!b?l=!0:(0===x||l?x=["M",d.plotX,d.plotY]:c.getPointSpline?x=c.getPointSpline(a,d,x):
g?(x=1===g?["L",w.plotX,n]:2===g?["L",(w.plotX+t)/2,w.plotY,"L",(w.plotX+t)/2,n]:["L",t,w.plotY],x.push("L",t,n)):x=["L",t,n],f.push(d.x),g&&(f.push(d.x),2===g&&f.push(d.x)),h.push.apply(h,x),l=!1)});h.xMap=f;return c.graphPath=h},drawGraph:function(){var a=this,b=(this.gappedPath||this.getGraphPath).call(this),e=[["graph","highcharts-graph"]],e=a.getZonesGraphs(e);y(e,function(e,c){c=e[0];var g=a[c];g?(g.endX=a.preventGraphAnimation?null:b.xMap,g.animate({d:b})):b.length&&(a[c]=a.chart.renderer.path(b).addClass(e[1]).attr({zIndex:1}).add(a.group));
g&&(g.startX=b.xMap,g.isArea=b.isArea)})},getZonesGraphs:function(a){y(this.zones,function(b,e){a.push(["zone-graph-"+e,"highcharts-graph highcharts-zone-graph-"+e+" "+(b.className||"")])},this);return a},applyZones:function(){var a=this,b=this.chart,e=b.renderer,c=this.zones,d,g,f=this.clips||[],l,t=this.graph,n=this.area,w=Math.max(b.chartWidth,b.chartHeight),p=this[(this.zoneAxis||"y")+"Axis"],k,I,B=b.inverted,E,q,z,u,v=!1;c.length&&(t||n)&&p&&void 0!==p.min&&(I=p.reversed,E=p.horiz,t&&!this.showLine&&
t.hide(),n&&n.hide(),k=p.getExtremes(),y(c,function(c,m){d=I?E?b.plotWidth:0:E?0:p.toPixels(k.min);d=Math.min(Math.max(h(g,d),0),w);g=Math.min(Math.max(Math.round(p.toPixels(h(c.value,k.max),!0)),0),w);v&&(d=g=p.toPixels(k.max));q=Math.abs(d-g);z=Math.min(d,g);u=Math.max(d,g);p.isXAxis?(l={x:B?u:z,y:0,width:q,height:w},E||(l.x=b.plotHeight-l.x)):(l={x:0,y:B?u:z,width:w,height:q},E&&(l.y=b.plotWidth-l.y));f[m]?f[m].animate(l):(f[m]=e.clipRect(l),t&&a["zone-graph-"+m].clip(f[m]),n&&a["zone-area-"+m].clip(f[m]));
v=c.value>k.max;a.resetZones&&0===g&&(g=void 0)}),this.clips=f)},invertGroups:function(a){function b(){y(["group","markerGroup"],function(b){e[b]&&(c.renderer.isVML&&e[b].attr({width:e.yAxis.len,height:e.xAxis.len}),e[b].width=e.yAxis.len,e[b].height=e.xAxis.len,e[b].invert(a))})}var e=this,c=e.chart,d;e.xAxis&&(d=F(c,"resize",b),F(e,"destroy",d),b(a),e.invertGroups=b)},plotGroup:function(a,b,e,c,d){var g=this[a],m=!g;m&&(this[a]=g=this.chart.renderer.g().attr({zIndex:c||.1}).add(d));g.addClass("highcharts-"+
b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(u(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(g.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);g.attr({visibility:e})[m?"attr":"animate"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,b=this.xAxis,e=this.yAxis;a.inverted&&(b=e,e=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:e?e.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=
this,b=a.chart,e,c=a.options,h=!!a.animate&&b.renderer.isSVG&&G(c.animation).duration,g=a.visible?"inherit":"hidden",f=c.zIndex,l=a.hasRendered,t=b.seriesGroup,n=b.inverted;e=a.plotGroup("group","series",g,f,t);a.markerGroup=a.plotGroup("markerGroup","markers",g,f,t);h&&a.animate(!0);e.inverted=a.isCartesian?n:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(n);
!1===c.clip||a.sharedClipKey||l||e.clip(b.clipRect);h&&a.animate();l||(a.animationTimeout=I(function(){a.afterAnimate()},h));a.isDirty=!1;a.hasRendered=!0;d(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,e=this.group,c=this.xAxis,d=this.yAxis;e&&(a.inverted&&e.attr({width:a.plotWidth,height:a.plotHeight}),e.animate({translateX:h(c&&c.left,a.plotLeft),translateY:h(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX",
"plotY"],searchPoint:function(a,b){var e=this.xAxis,c=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?e.len-a.chartY+e.pos:a.chartX-e.pos,plotY:d?c.len-a.chartX+c.pos:a.chartY-c.pos},b)},buildKDTree:function(){function a(e,c,g){var d,m;if(m=e&&e.length)return d=b.kdAxisArray[c%g],e.sort(function(a,e){return a[d]-e[d]}),m=Math.floor(m/2),{point:e[m],left:a(e.slice(0,m),c+1,g),right:a(e.slice(m+1),c+1,g)}}this.buildingKdTree=!0;var b=this,e=-1<b.options.findNearestPointBy.indexOf("y")?
2:1;delete b.kdTree;I(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),e,e);b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a,b){function e(a,b,h,f){var l=b.point,t=c.kdAxisArray[h%f],x,n,w=l;n=u(a[d])&&u(l[d])?Math.pow(a[d]-l[d],2):null;x=u(a[g])&&u(l[g])?Math.pow(a[g]-l[g],2):null;x=(n||0)+(x||0);l.dist=u(x)?Math.sqrt(x):Number.MAX_VALUE;l.distX=u(n)?Math.sqrt(n):Number.MAX_VALUE;t=a[t]-l[t];x=0>t?"left":"right";n=0>t?"right":"left";b[x]&&(x=e(a,b[x],h+1,f),w=x[m]<w[m]?
x:l);b[n]&&Math.sqrt(t*t)<w[m]&&(a=e(a,b[n],h+1,f),w=a[m]<w[m]?a:w);return w}var c=this,d=this.kdAxisArray[0],g=this.kdAxisArray[1],m=b?"distX":"dist";b=-1<c.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree();if(this.kdTree)return e(a,this.kdTree,b,b)}})})(K);(function(a){var F=a.Axis,G=a.Chart,H=a.correctFloat,r=a.defined,k=a.destroyObjectProperties,f=a.each,u=a.format,y=a.objectEach,v=a.pick,q=a.Series;a.StackItem=function(a,c,f,p,n){var b=a.chart.inverted;
this.axis=a;this.isNegative=f;this.options=c;this.x=p;this.total=null;this.points={};this.stack=n;this.rightCliff=this.leftCliff=0;this.alignOptions={align:c.align||(b?f?"left":"right":"center"),verticalAlign:c.verticalAlign||(b?"middle":f?"bottom":"top"),y:v(c.y,b?4:f?14:-6),x:v(c.x,b?f?-6:6:0)};this.textAlign=c.textAlign||(b?f?"right":"left":"center")};a.StackItem.prototype={destroy:function(){k(this,this.axis)},render:function(a){var c=this.axis.chart,d=this.options,f=d.format,f=f?u(f,this,c.time):
d.formatter.call(this);this.label?this.label.attr({text:f,visibility:"hidden"}):this.label=c.renderer.text(f,null,null,d.useHTML).css(d.style).attr({align:this.textAlign,rotation:d.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,c){var d=this.axis,f=d.chart,n=d.translate(d.usePercentage?100:this.total,0,0,0,1),b=d.translate(0),b=Math.abs(n-b);a=f.xAxis[0].translate(this.x)+a;d=this.getStackBox(f,this,a,n,c,b,d);if(c=this.label)c.align(this.alignOptions,null,d),d=c.alignAttr,c[!1===this.options.crop||
f.isInsidePlot(d.x,d.y)?"show":"hide"](!0)},getStackBox:function(a,c,f,p,n,b,l){var d=c.axis.reversed,k=a.inverted;a=l.height+l.pos-a.plotTop;c=c.isNegative&&!d||!c.isNegative&&d;return{x:k?c?p:p-b:f,y:k?a-f-n:c?a-p-b:a-p,width:k?b:n,height:k?n:b}}};G.prototype.getStacks=function(){var a=this;f(a.yAxis,function(a){a.stacks&&a.hasVisibleSeries&&(a.oldStacks=a.stacks)});f(a.series,function(c){!c.options.stacking||!0!==c.visible&&!1!==a.options.chart.ignoreHiddenSeries||(c.stackKey=c.type+v(c.options.stack,
""))})};F.prototype.buildStacks=function(){var a=this.series,c=v(this.options.reversedStacks,!0),f=a.length,p;if(!this.isXAxis){this.usePercentage=!1;for(p=f;p--;)a[c?p:f-p-1].setStackedPoints();for(p=0;p<f;p++)a[p].modifyStacks()}};F.prototype.renderStackTotals=function(){var a=this.chart,c=a.renderer,f=this.stacks,p=this.stackTotalGroup;p||(this.stackTotalGroup=p=c.g("stack-labels").attr({visibility:"visible",zIndex:6}).add());p.translate(a.plotLeft,a.plotTop);y(f,function(a){y(a,function(a){a.render(p)})})};
F.prototype.resetStacks=function(){var a=this,c=a.stacks;a.isXAxis||y(c,function(c){y(c,function(d,f){d.touched<a.stacksTouched?(d.destroy(),delete c[f]):(d.total=null,d.cumulative=null)})})};F.prototype.cleanStacks=function(){var a;this.isXAxis||(this.oldStacks&&(a=this.stacks=this.oldStacks),y(a,function(a){y(a,function(a){a.cumulative=a.total})}))};q.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var d=this.processedXData,
c=this.processedYData,f=[],p=c.length,n=this.options,b=n.threshold,l=v(n.startFromThreshold&&b,0),h=n.stack,n=n.stacking,k=this.stackKey,B="-"+k,t=this.negStacks,I=this.yAxis,w=I.stacks,m=I.oldStacks,D,e,x,q,g,C,u;I.stacksTouched+=1;for(g=0;g<p;g++)C=d[g],u=c[g],D=this.getStackIndicator(D,C,this.index),q=D.key,x=(e=t&&u<(l?0:b))?B:k,w[x]||(w[x]={}),w[x][C]||(m[x]&&m[x][C]?(w[x][C]=m[x][C],w[x][C].total=null):w[x][C]=new a.StackItem(I,I.options.stackLabels,e,C,h)),x=w[x][C],null!==u?(x.points[q]=x.points[this.index]=
[v(x.cumulative,l)],r(x.cumulative)||(x.base=q),x.touched=I.stacksTouched,0<D.index&&!1===this.singleStacks&&(x.points[q][0]=x.points[this.index+","+C+",0"][0])):x.points[q]=x.points[this.index]=null,"percent"===n?(e=e?k:B,t&&w[e]&&w[e][C]?(e=w[e][C],x.total=e.total=Math.max(e.total,x.total)+Math.abs(u)||0):x.total=H(x.total+(Math.abs(u)||0))):x.total=H(x.total+(u||0)),x.cumulative=v(x.cumulative,l)+(u||0),null!==u&&(x.points[q].push(x.cumulative),f[g]=x.cumulative);"percent"===n&&(I.usePercentage=
!0);this.stackedYData=f;I.oldStacks={}}};q.prototype.modifyStacks=function(){var a=this,c=a.stackKey,k=a.yAxis.stacks,p=a.processedXData,n,b=a.options.stacking;a[b+"Stacker"]&&f([c,"-"+c],function(c){for(var d=p.length,f,l;d--;)if(f=p[d],n=a.getStackIndicator(n,f,a.index,c),l=(f=k[c]&&k[c][f])&&f.points[n.key])a[b+"Stacker"](l,f,d)})};q.prototype.percentStacker=function(a,c,f){c=c.total?100/c.total:0;a[0]=H(a[0]*c);a[1]=H(a[1]*c);this.stackedYData[f]=a[1]};q.prototype.getStackIndicator=function(a,
c,f,p){!r(a)||a.x!==c||p&&a.key!==p?a={x:c,index:0,key:p}:a.index++;a.key=[f,c,a.index].join();return a}})(K);(function(a){var F=a.addEvent,G=a.Axis,H=a.createElement,r=a.css,k=a.defined,f=a.each,u=a.erase,y=a.extend,v=a.fireEvent,q=a.inArray,d=a.isNumber,c=a.isObject,z=a.isArray,p=a.merge,n=a.objectEach,b=a.pick,l=a.Point,h=a.Series,E=a.seriesTypes,B=a.setAnimation,t=a.splat;y(a.Chart.prototype,{addSeries:function(a,c,d){var m,e=this;a&&(c=b(c,!0),v(e,"addSeries",{options:a},function(){m=e.initSeries(a);
e.isDirtyLegend=!0;e.linkSeries();v(e,"afterAddSeries");c&&e.redraw(d)}));return m},addAxis:function(a,c,d,h){var e=c?"xAxis":"yAxis",m=this.options;a=p(a,{index:this[e].length,isX:c});c=new G(this,a);m[e]=t(m[e]||{});m[e].push(a);b(d,!0)&&this.redraw(h);return c},showLoading:function(a){var b=this,c=b.options,d=b.loadingDiv,e=function(){d&&r(d,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};d||(b.loadingDiv=d=H("div",{className:"highcharts-loading highcharts-loading-hidden"},
null,b.container),b.loadingSpan=H("span",{className:"highcharts-loading-inner"},null,d),F(b,"redraw",e));d.className="highcharts-loading";b.loadingSpan.innerHTML=a||c.lang.loading;b.loadingShown=!0;e()},hideLoading:function(){var a=this.loadingDiv;a&&(a.className="highcharts-loading highcharts-loading-hidden");this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),
propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" "),update:function(a,c,m,h){var e=this,l={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},w=a.chart,g,D,B=[];v(e,"update",{options:a});if(w){p(!0,e.options.chart,w);"className"in w&&e.setClassName(w.className);"reflow"in w&&e.setReflow(w.reflow);if("inverted"in w||"polar"in w)e.propFromSeries(),g=!0;"alignTicks"in w&&(g=!0);n(w,function(a,b){-1!==q("chart."+
b,e.propsRequireUpdateSeries)&&(D=!0);-1!==q(b,e.propsRequireDirtyBox)&&(e.isDirtyBox=!0)})}a.plotOptions&&p(!0,this.options.plotOptions,a.plotOptions);n(a,function(a,b){if(e[b]&&"function"===typeof e[b].update)e[b].update(a,!1);else if("function"===typeof e[l[b]])e[l[b]](a);"chart"!==b&&-1!==q(b,e.propsRequireUpdateSeries)&&(D=!0)});f("xAxis yAxis zAxis series colorAxis pane".split(" "),function(b){a[b]&&(f(t(a[b]),function(a,c){(c=k(a.id)&&e.get(a.id)||e[b][c])&&c.coll===b&&(c.update(a,!1),m&&(c.touched=
!0));if(!c&&m)if("series"===b)e.addSeries(a,!1).touched=!0;else if("xAxis"===b||"yAxis"===b)e.addAxis(a,"xAxis"===b,!1).touched=!0}),m&&f(e[b],function(a){a.touched?delete a.touched:B.push(a)}))});f(B,function(a){a.remove(!1)});g&&f(e.axes,function(a){a.update({},!1)});D&&f(e.series,function(a){a.update({},!1)});a.loading&&p(!0,e.options.loading,a.loading);g=w&&w.width;w=w&&w.height;d(g)&&g!==e.chartWidth||d(w)&&w!==e.chartHeight?e.setSize(g,w,h):b(c,!0)&&e.redraw(h)},setSubtitle:function(a){this.setTitle(void 0,
a)}});y(l.prototype,{update:function(a,d,m,h){function e(){f.applyOptions(a);null===f.y&&g&&(f.graphic=g.destroy());c(a,!0)&&(g&&g.element&&a&&a.marker&&void 0!==a.marker.symbol&&(f.graphic=g.destroy()),a&&a.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy()),f.connector&&(f.connector=f.connector.destroy()));t=f.index;l.updateParallelArrays(f,t);w.data[t]=c(w.data[t],!0)||c(a,!0)?f.options:b(a,w.data[t]);l.isDirty=l.isDirtyData=!0;!l.fixedBox&&l.hasCartesianSeries&&(n.isDirtyBox=!0);"point"===
w.legendType&&(n.isDirtyLegend=!0);d&&n.redraw(m)}var f=this,l=f.series,g=f.graphic,t,n=l.chart,w=l.options;d=b(d,!0);!1===h?e():f.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(q(this,this.series.data),a,b)}});y(h.prototype,{addPoint:function(a,c,d,f){var e=this.options,m=this.data,h=this.chart,g=this.xAxis,g=g&&g.hasNames&&g.names,l=e.data,t,n,w=this.xData,p,k;c=b(c,!0);t={series:this};this.pointClass.prototype.applyOptions.apply(t,[a]);k=t.x;p=w.length;if(this.requireSorting&&
k<w[p-1])for(n=!0;p&&w[p-1]>k;)p--;this.updateParallelArrays(t,"splice",p,0,0);this.updateParallelArrays(t,p);g&&t.name&&(g[k]=t.name);l.splice(p,0,a);n&&(this.data.splice(p,0,null),this.processData());"point"===e.legendType&&this.generatePoints();d&&(m[0]&&m[0].remove?m[0].remove(!1):(m.shift(),this.updateParallelArrays(t,"shift"),l.shift()));this.isDirtyData=this.isDirty=!0;c&&h.redraw(f)},removePoint:function(a,c,d){var m=this,e=m.data,f=e[a],h=m.points,g=m.chart,l=function(){h&&h.length===e.length&&
h.splice(a,1);e.splice(a,1);m.options.data.splice(a,1);m.updateParallelArrays(f||{series:m},"splice",a,1);f&&f.destroy();m.isDirty=!0;m.isDirtyData=!0;c&&g.redraw()};B(d,g);c=b(c,!0);f?f.firePointEvent("remove",null,l):l()},remove:function(a,c,d){function m(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();b(a,!0)&&f.redraw(c)}var e=this,f=e.chart;!1!==d?v(e,"remove",null,m):m()},update:function(c,d){var m=this,h=m.chart,e=m.userOptions,l=m.oldType||m.type,t=c.type||e.type||h.options.chart.type,
g=E[l].prototype,n,w=["group","markerGroup","dataLabelsGroup"],k=["navigatorSeries","baseSeries"],B=m.finishedAnimating&&{animation:!1},I=["data","name","turboThreshold"],z=a.keys(c),u=0<z.length;f(z,function(a){-1===q(a,I)&&(u=!1)});if(u)c.data&&this.setData(c.data,!1),c.name&&this.setName(c.name,!1);else{k=w.concat(k);f(k,function(a){k[a]=m[a];delete m[a]});c=p(e,B,{index:m.index,pointStart:b(e.pointStart,m.xData[0])},{data:m.options.data},c);m.remove(!1,null,!1);for(n in g)m[n]=void 0;E[t||l]?
y(m,E[t||l].prototype):a.error(17,!0);f(k,function(a){m[a]=k[a]});m.init(h,c);c.zIndex!==e.zIndex&&f(w,function(a){m[a]&&m[a].attr({zIndex:c.zIndex})});m.oldType=l;h.linkSeries()}v(this,"afterUpdate");b(d,!0)&&h.redraw(!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});y(G.prototype,{update:function(a,c){var d=this.chart;a=p(this.userOptions,a);d.options[this.coll].indexOf&&(d.options[this.coll][d.options[this.coll].indexOf(this.userOptions)]=
a);this.destroy(!0);this.init(d,y(a,{events:void 0}));d.isDirtyBox=!0;b(c,!0)&&d.redraw()},remove:function(a){for(var c=this.chart,d=this.coll,h=this.series,e=h.length;e--;)h[e]&&h[e].remove(!1);u(c.axes,this);u(c[d],this);z(c.options[d])?c.options[d].splice(this.options.index,1):delete c.options[d];f(c[d],function(a,e){a.options.index=a.userOptions.index=e});this.destroy();c.isDirtyBox=!0;b(a,!0)&&c.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},
b)}})})(K);(function(a){var F=a.each,G=a.map,H=a.pick,r=a.Series,k=a.seriesType;k("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(f){var k=[],r=[],v=this.xAxis,q=this.yAxis,d=q.stacks[this.stackKey],c={},z=this.index,p=q.series,n=p.length,b,l=H(q.options.reversedStacks,!0)?1:-1,h;f=f||this.points;if(this.options.stacking){for(h=0;h<f.length;h++)f[h].leftNull=f[h].rightNull=null,c[f[h].x]=f[h];a.objectEach(d,function(a,b){null!==a.total&&r.push(b)});r.sort(function(a,
b){return a-b});b=G(p,function(){return this.visible});F(r,function(a,f){var t=0,p,w;if(c[a]&&!c[a].isNull)k.push(c[a]),F([-1,1],function(m){var t=1===m?"rightNull":"leftNull",e=0,x=d[r[f+m]];if(x)for(h=z;0<=h&&h<n;)p=x.points[h],p||(h===z?c[a][t]=!0:b[h]&&(w=d[a].points[h])&&(e-=w[1]-w[0])),h+=l;c[a][1===m?"rightCliff":"leftCliff"]=e});else{for(h=z;0<=h&&h<n;){if(p=d[a].points[h]){t=p[1];break}h+=l}t=q.translate(t,0,1,0,1);k.push({isNull:!0,plotX:v.translate(a,0,0,0,1),x:a,plotY:t,yBottom:t})}})}return k},
getGraphPath:function(a){var f=r.prototype.getGraphPath,k=this.options,v=k.stacking,q=this.yAxis,d,c,z=[],p=[],n=this.index,b,l=q.stacks[this.stackKey],h=k.threshold,E=q.getThreshold(k.threshold),B,k=k.connectNulls||"percent"===v,t=function(c,d,m){var f=a[c];c=v&&l[f.x].points[n];var e=f[m+"Null"]||0;m=f[m+"Cliff"]||0;var t,w,f=!0;m||e?(t=(e?c[0]:c[1])+m,w=c[0]+m,f=!!e):!v&&a[d]&&a[d].isNull&&(t=w=h);void 0!==t&&(p.push({plotX:b,plotY:null===t?E:q.getThreshold(t),isNull:f,isCliff:!0}),z.push({plotX:b,
plotY:null===w?E:q.getThreshold(w),doCurve:!1}))};a=a||this.points;v&&(a=this.getStackPoints(a));for(d=0;d<a.length;d++)if(c=a[d].isNull,b=H(a[d].rectPlotX,a[d].plotX),B=H(a[d].yBottom,E),!c||k)k||t(d,d-1,"left"),c&&!v&&k||(p.push(a[d]),z.push({x:d,plotX:b,plotY:B})),k||t(d,d+1,"right");d=f.call(this,p,!0,!0);z.reversed=!0;c=f.call(this,z,!0,!0);c.length&&(c[0]="L");c=d.concat(c);f=f.call(this,p,!1,k);c.xMap=d.xMap;this.areaPath=c;return f},drawGraph:function(){this.areaPath=[];r.prototype.drawGraph.apply(this);
var a=this,k=this.areaPath,y=this.options,v=[["area","highcharts-area"]];F(this.zones,function(a,d){v.push(["zone-area-"+d,"highcharts-area highcharts-zone-area-"+d+" "+a.className])});F(v,function(f){var d=f[0],c=a[d];c?(c.endX=a.preventGraphAnimation?null:k.xMap,c.animate({d:k})):(c=a[d]=a.chart.renderer.path(k).addClass(f[1]).attr({zIndex:0}).add(a.group),c.isArea=!0);c.startX=k.xMap;c.shiftUnit=y.step?2:1})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})})(K);(function(a){var F=a.pick;a=
a.seriesType;a("spline","line",{},{getPointSpline:function(a,H,r){var k=H.plotX,f=H.plotY,u=a[r-1];r=a[r+1];var y,v,q,d;if(u&&!u.isNull&&!1!==u.doCurve&&!H.isCliff&&r&&!r.isNull&&!1!==r.doCurve&&!H.isCliff){a=u.plotY;q=r.plotX;r=r.plotY;var c=0;y=(1.5*k+u.plotX)/2.5;v=(1.5*f+a)/2.5;q=(1.5*k+q)/2.5;d=(1.5*f+r)/2.5;q!==y&&(c=(d-v)*(q-k)/(q-y)+f-d);v+=c;d+=c;v>a&&v>f?(v=Math.max(a,f),d=2*f-v):v<a&&v<f&&(v=Math.min(a,f),d=2*f-v);d>r&&d>f?(d=Math.max(r,f),v=2*f-d):d<r&&d<f&&(d=Math.min(r,f),v=2*f-d);H.rightContX=
q;H.rightContY=d}H=["C",F(u.rightContX,u.plotX),F(u.rightContY,u.plotY),F(y,k),F(v,f),k,f];u.rightContX=u.rightContY=null;return H}})})(K);(function(a){var F=a.seriesTypes.area.prototype,G=a.seriesType;G("areaspline","spline",a.defaultPlotOptions.area,{getStackPoints:F.getStackPoints,getGraphPath:F.getGraphPath,drawGraph:F.drawGraph,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})})(K);(function(a){var F=a.animObject,G=a.each,H=a.extend,r=a.isNumber,k=a.merge,f=a.pick,u=a.Series,y=a.seriesType,
v=a.svg;y("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){u.prototype.init.apply(this,arguments);var a=this,d=a.chart;d.hasRendered&&G(d.series,function(c){c.type===
a.type&&(c.isDirty=!0)})},getColumnMetrics:function(){var a=this,d=a.options,c=a.xAxis,k=a.yAxis,p=c.reversed,n,b={},l=0;!1===d.grouping?l=1:G(a.chart.series,function(c){var d=c.options,f=c.yAxis,m;c.type!==a.type||!c.visible&&a.chart.options.chart.ignoreHiddenSeries||k.len!==f.len||k.pos!==f.pos||(d.stacking?(n=c.stackKey,void 0===b[n]&&(b[n]=l++),m=b[n]):!1!==d.grouping&&(m=l++),c.columnIndex=m)});var h=Math.min(Math.abs(c.transA)*(c.ordinalSlope||d.pointRange||c.closestPointRange||c.tickInterval||
1),c.len),E=h*d.groupPadding,B=(h-2*E)/(l||1),d=Math.min(d.maxPointWidth||c.len,f(d.pointWidth,B*(1-2*d.pointPadding)));a.columnMetrics={width:d,offset:(B-d)/2+(E+((a.columnIndex||0)+(p?1:0))*B-h/2)*(p?-1:1)};return a.columnMetrics},crispCol:function(a,d,c,f){var k=this.chart,n=this.borderWidth,b=-(n%2?.5:0),n=n%2?.5:1;k.inverted&&k.renderer.isVML&&(n+=1);this.options.crisp&&(c=Math.round(a+c)+b,a=Math.round(a)+b,c-=a);f=Math.round(d+f)+n;b=.5>=Math.abs(d)&&.5<f;d=Math.round(d)+n;f-=d;b&&f&&(--d,
f+=1);return{x:a,y:d,width:c,height:f}},translate:function(){var a=this,d=a.chart,c=a.options,k=a.dense=2>a.closestPointRange*a.xAxis.transA,k=a.borderWidth=f(c.borderWidth,k?0:1),p=a.yAxis,n=c.threshold,b=a.translatedThreshold=p.getThreshold(n),l=f(c.minPointLength,5),h=a.getColumnMetrics(),E=h.width,B=a.barW=Math.max(E,1+2*k),t=a.pointXOffset=h.offset;d.inverted&&(b-=.5);c.pointPadding&&(B=Math.ceil(B));u.prototype.translate.apply(a);G(a.points,function(c){var h=f(c.yBottom,b),m=999+Math.abs(h),
m=Math.min(Math.max(-m,c.plotY),p.len+m),k=c.plotX+t,e=B,x=Math.min(m,h),q,g=Math.max(m,h)-x;l&&Math.abs(g)<l&&(g=l,q=!p.reversed&&!c.negative||p.reversed&&c.negative,c.y===n&&a.dataMax<=n&&p.min<n&&(q=!q),x=Math.abs(x-b)>l?h-l:b-(q?l:0));c.barX=k;c.pointWidth=E;c.tooltipPos=d.inverted?[p.len+p.pos-d.plotLeft-m,a.xAxis.len-k-e/2,g]:[k+e/2,m+p.pos-d.plotTop,g];c.shapeType="rect";c.shapeArgs=a.crispCol.apply(a,c.isNull?[k,b,e,0]:[k,x,e,g])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,
drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},drawPoints:function(){var a=this,d=this.chart,c=a.options,f=d.renderer,p=c.animationLimit||250,n;G(a.points,function(b){var l=b.graphic,h=l&&d.pointCount<p?"animate":"attr";if(r(b.plotY)&&null!==b.y){n=b.shapeArgs;if(l)l[h](k(n));else b.graphic=l=f[b.shapeType](n).add(b.group||a.group);c.borderRadius&&l.attr({r:c.borderRadius});l.addClass(b.getClassName(),!0)}else l&&(b.graphic=l.destroy())})},animate:function(a){var d=
this,c=this.yAxis,f=d.options,k=this.chart.inverted,n={},b=k?"translateX":"translateY",l;v&&(a?(n.scaleY=.001,a=Math.min(c.pos+c.len,Math.max(c.pos,c.toPixels(f.threshold))),k?n.translateX=a-c.len:n.translateY=a,d.group.attr(n)):(l=d.group.attr(b),d.group.animate({scaleY:1},H(F(d.options.animation),{step:function(a,f){n[b]=l+f.pos*(c.pos-l);d.group.attr(n)}})),d.animate=null))},remove:function(){var a=this,d=a.chart;d.hasRendered&&G(d.series,function(c){c.type===a.type&&(c.isDirty=!0)});u.prototype.remove.apply(a,
arguments)}})})(K);(function(a){a=a.seriesType;a("bar","column",null,{inverted:!0})})(K);(function(a){var F=a.Series;a=a.seriesType;a("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cspan class\x3d"highcharts-header"\x3e {series.name}\x3c/span\x3e\x3cbr/\x3e',pointFormat:"x: \x3cb\x3e{point.x}\x3c/b\x3e\x3cbr/\x3ey: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e"}},{sorted:!1,
requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&F.prototype.drawGraph.call(this)}})})(K);(function(a){var F=a.deg2rad,G=a.isNumber,H=a.pick,r=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var a=this.options,f=this.chart,u=2*(a.slicedOffset||0),y=f.plotWidth-2*u,f=f.plotHeight-2*u,v=a.center,v=[H(v[0],"50%"),H(v[1],"50%"),a.size||"100%",a.innerSize||0],q=Math.min(y,f),d,c;
for(d=0;4>d;++d)c=v[d],a=2>d||2===d&&/%$/.test(c),v[d]=r(c,[y,f,q,v[2]][d])+(a?u:0);v[3]>v[2]&&(v[3]=v[2]);return v},getStartAndEndRadians:function(a,f){a=G(a)?a:0;f=G(f)&&f>a&&360>f-a?f:a+360;return{start:F*(a+-90),end:F*(f+-90)}}}})(K);(function(a){var F=a.addEvent,G=a.CenteredSeriesMixin,H=a.defined,r=a.each,k=a.extend,f=G.getStartAndEndRadians,u=a.inArray,y=a.noop,v=a.pick,q=a.Point,d=a.Series,c=a.seriesType,z=a.setAnimation;c("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,
enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var c=this,b=c.points,d=c.startAngleRad;a||(r(b,function(a){var b=a.graphic,
f=a.shapeArgs;b&&(b.attr({r:a.startR||c.center[3]/2,start:d,end:d}),b.animate({r:f.r,start:f.start,end:f.end},c.options.animation))}),c.animate=null)},updateTotals:function(){var a,c=0,b=this.points,d=b.length,f,k=this.options.ignoreHiddenPoint;for(a=0;a<d;a++)f=b[a],c+=k&&!f.visible?0:f.isNull?0:f.y;this.total=c;for(a=0;a<d;a++)f=b[a],f.percentage=0<c&&(f.visible||!k)?f.y/c*100:0,f.total=c},generatePoints:function(){d.prototype.generatePoints.call(this);this.updateTotals()},translate:function(a){this.generatePoints();
var c=0,b=this.options,d=b.slicedOffset,h=d+(b.borderWidth||0),k,p,t,q=f(b.startAngle,b.endAngle),w=this.startAngleRad=q.start,q=(this.endAngleRad=q.end)-w,m=this.points,D,e=b.dataLabels.distance,b=b.ignoreHiddenPoint,x,z=m.length,g;a||(this.center=a=this.getCenter());this.getX=function(e,b,c){t=Math.asin(Math.min((e-a[1])/(a[2]/2+c.labelDistance),1));return a[0]+(b?-1:1)*Math.cos(t)*(a[2]/2+c.labelDistance)};for(x=0;x<z;x++){g=m[x];g.labelDistance=v(g.options.dataLabels&&g.options.dataLabels.distance,
e);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,g.labelDistance);k=w+c*q;if(!b||g.visible)c+=g.percentage/100;p=w+c*q;g.shapeType="arc";g.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1E3*k)/1E3,end:Math.round(1E3*p)/1E3};t=(p+k)/2;t>1.5*Math.PI?t-=2*Math.PI:t<-Math.PI/2&&(t+=2*Math.PI);g.slicedTranslation={translateX:Math.round(Math.cos(t)*d),translateY:Math.round(Math.sin(t)*d)};p=Math.cos(t)*a[2]/2;D=Math.sin(t)*a[2]/2;g.tooltipPos=[a[0]+.7*p,a[1]+.7*D];g.half=t<-Math.PI/
2||t>Math.PI/2?1:0;g.angle=t;k=Math.min(h,g.labelDistance/5);g.labelPos=[a[0]+p+Math.cos(t)*g.labelDistance,a[1]+D+Math.sin(t)*g.labelDistance,a[0]+p+Math.cos(t)*k,a[1]+D+Math.sin(t)*k,a[0]+p,a[1]+D,0>g.labelDistance?"center":g.half?"right":"left",t]}},drawGraph:null,drawPoints:function(){var a=this,c=a.chart.renderer,b,d,f;r(a.points,function(h){d=h.graphic;h.isNull?d&&(h.graphic=d.destroy()):(f=h.shapeArgs,b=h.getTranslate(),d?d.setRadialReference(a.center).animate(k(f,b)):(h.graphic=d=c[h.shapeType](f).setRadialReference(a.center).attr(b).add(a.group),
h.visible||d.attr({visibility:"hidden"})),d.addClass(h.getClassName()))})},searchPoint:y,sortByAngle:function(a,c){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*c})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:G.getCenter,getSymbol:y},{init:function(){q.prototype.init.apply(this,arguments);var a=this,c;a.name=v(a.name,"Slice");c=function(b){a.slice("select"===b.type)};F(a,"select",c);F(a,"unselect",c);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=
this.y},setVisible:function(a,c){var b=this,d=b.series,f=d.chart,n=d.options.ignoreHiddenPoint;c=v(c,n);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,d.options.data[u(b,d.data)]=b.options,r(["graphic","dataLabel","connector","shadowGroup"],function(c){if(b[c])b[c][a?"show":"hide"](!0)}),b.legendItem&&f.legend.colorizeItem(b,a),a||"hover"!==b.state||b.setState(""),n&&(d.isDirty=!0),c&&f.redraw())},slice:function(a,c,b){var d=this.series;z(b,d.chart);v(c,!0);this.sliced=this.options.sliced=
H(a)?a:!this.sliced;d.options.data[u(this,d.data)]=this.options;this.graphic.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:this.shapeArgs.r-1,start:c.start,end:c.end})}})})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.defined,r=a.each,k=a.extend,f=a.format,u=a.map,y=a.merge,
v=a.noop,q=a.pick,d=a.relativeLength,c=a.Series,z=a.seriesTypes,p=a.some,n=a.stableSort;a.distribute=function(b,c,d){function f(a,b){return a.target-b.target}var h,l=!0,k=b,w=[],m;m=0;var D=k.reducedLen||c;for(h=b.length;h--;)m+=b[h].size;if(m>D){n(b,function(a,b){return(b.rank||0)-(a.rank||0)});for(m=h=0;m<=D;)m+=b[h].size,h++;w=b.splice(h-1,b.length)}n(b,f);for(b=u(b,function(a){return{size:a.size,targets:[a.target],align:q(a.align,.5)}});l;){for(h=b.length;h--;)l=b[h],m=(Math.min.apply(0,l.targets)+
Math.max.apply(0,l.targets))/2,l.pos=Math.min(Math.max(0,m-l.size*l.align),c-l.size);h=b.length;for(l=!1;h--;)0<h&&b[h-1].pos+b[h-1].size>b[h].pos&&(b[h-1].size+=b[h].size,b[h-1].targets=b[h-1].targets.concat(b[h].targets),b[h-1].align=.5,b[h-1].pos+b[h-1].size>c&&(b[h-1].pos=c-b[h-1].size),b.splice(h,1),l=!0)}k.push.apply(k,w);h=0;p(b,function(e){var b=0;if(p(e.targets,function(){k[h].pos=e.pos+b;if(Math.abs(k[h].pos-k[h].target)>d)return r(k.slice(0,h+1),function(a){delete a.pos}),k.reducedLen=
(k.reducedLen||c)-.1*c,k.reducedLen>.1*c&&a.distribute(k,c,d),!0;b+=k[h].size;h++}))return!0});n(k,f)};c.prototype.drawDataLabels=function(){function b(a,e){var b=e.filter;return b?(e=b.operator,a=a[b.property],b=b.value,"\x3e"===e&&a>b||"\x3c"===e&&a<b||"\x3e\x3d"===e&&a>=b||"\x3c\x3d"===e&&a<=b||"\x3d\x3d"===e&&a==b||"\x3d\x3d\x3d"===e&&a===b?!0:!1):!0}var c=this,d=c.chart,k=c.options,n=k.dataLabels,t=c.points,p,w,m=c.hasRendered||0,D,e,x=q(n.defer,!!k.animation),z=d.renderer;if(n.enabled||c._hasPointLabels)c.dlProcessOptions&&
c.dlProcessOptions(n),e=c.plotGroup("dataLabelsGroup","data-labels",x&&!m?"hidden":"visible",n.zIndex||6),x&&(e.attr({opacity:+m}),m||F(c,"afterAnimate",function(){c.visible&&e.show(!0);e[k.animation?"animate":"attr"]({opacity:1},{duration:200})})),w=n,r(t,function(g){var h,m=g.dataLabel,l,t,k=g.connector,x=!m,B;p=g.dlOptions||g.options&&g.options.dataLabels;(h=q(p&&p.enabled,w.enabled)&&!g.isNull)&&(h=!0===b(g,p||n));h&&(n=y(w,p),l=g.getLabelConfig(),B=n[g.formatPrefix+"Format"]||n.format,D=H(B)?
f(B,l,d.time):(n[g.formatPrefix+"Formatter"]||n.formatter).call(l,n),l=n.rotation,t={r:n.borderRadius||0,rotation:l,padding:n.padding,zIndex:1},a.objectEach(t,function(a,e){void 0===a&&delete t[e]}));!m||h&&H(D)?h&&H(D)&&(m?t.text=D:(m=g.dataLabel=l?z.text(D,0,-9999).addClass("highcharts-data-label"):z.label(D,0,-9999,n.shape,null,null,n.useHTML,null,"data-label"),m.addClass(" highcharts-data-label-color-"+g.colorIndex+" "+(n.className||"")+(n.useHTML?"highcharts-tracker":""))),m.attr(t),m.added||
m.add(e),c.alignDataLabel(g,m,n,null,x)):(g.dataLabel=m=m.destroy(),k&&(g.connector=k.destroy()))});a.fireEvent(this,"afterDrawDataLabels")};c.prototype.alignDataLabel=function(a,c,d,f,n){var b=this.chart,h=b.inverted,l=q(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),m=q(a.plotY,-9999),p=c.getBBox(),e,x=d.rotation,B=d.align,g=this.visible&&(a.series.forceDL||b.isInsidePlot(l,Math.round(m),h)||f&&b.isInsidePlot(l,h?f.x+1:f.y+f.height-1,h)),C="justify"===q(d.overflow,"justify");if(g&&(e=b.renderer.fontMetrics(void 0,
c).b,f=k({x:h?this.yAxis.len-m:l,y:Math.round(h?this.xAxis.len-l:m),width:0,height:0},f),k(d,{width:p.width,height:p.height}),x?(C=!1,l=b.renderer.rotCorr(e,x),l={x:f.x+d.x+f.width/2+l.x,y:f.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*f.height},c[n?"attr":"animate"](l).attr({align:B}),m=(x+720)%360,m=180<m&&360>m,"left"===B?l.y-=m?p.height:0:"center"===B?(l.x-=p.width/2,l.y-=p.height/2):"right"===B&&(l.x-=p.width,l.y-=m?0:p.height),c.placed=!0,c.alignAttr=l):(c.align(d,null,f),l=c.alignAttr),
C?a.isLabelJustified=this.justifyDataLabel(c,d,l,p,f,n):q(d.crop,!0)&&(g=b.isInsidePlot(l.x,l.y)&&b.isInsidePlot(l.x+p.width,l.y+p.height)),d.shape&&!x))c[n?"attr":"animate"]({anchorX:h?b.plotWidth-a.plotY:a.plotX,anchorY:h?b.plotHeight-a.plotX:a.plotY});g||(c.attr({y:-9999}),c.placed=!1)};c.prototype.justifyDataLabel=function(a,c,d,f,n,t){var b=this.chart,h=c.align,m=c.verticalAlign,l,e,k=a.box?0:a.padding||0;l=d.x+k;0>l&&("right"===h?c.align="left":c.x=-l,e=!0);l=d.x+f.width-k;l>b.plotWidth&&("left"===
h?c.align="right":c.x=b.plotWidth-l,e=!0);l=d.y+k;0>l&&("bottom"===m?c.verticalAlign="top":c.y=-l,e=!0);l=d.y+f.height-k;l>b.plotHeight&&("top"===m?c.verticalAlign="bottom":c.y=b.plotHeight-l,e=!0);e&&(a.placed=!t,a.align(c,null,n));return e};z.pie&&(z.pie.prototype.drawDataLabels=function(){var b=this,d=b.data,f,n=b.chart,k=b.options.dataLabels,t=q(k.connectorPadding,10),p=q(k.connectorWidth,1),w=n.plotWidth,m=n.plotHeight,D=Math.round(n.chartWidth/3),e,x=b.center,z=x[2]/2,g=x[1],C,u,A,v,y=[[],[]],
F,M,O,N,R=[0,0,0,0];b.visible&&(k.enabled||b._hasPointLabels)&&(r(d,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),c.prototype.drawDataLabels.apply(b),r(d,function(a){a.dataLabel&&a.visible&&(y[a.half].push(a),a.dataLabel._pos=null,a.dataLabel.getBBox().width>D&&(a.dataLabel.css({width:.7*D}),a.dataLabel.shortened=!0))}),r(y,function(e,c){var d,h,l=e.length,p=[],D;if(l)for(b.sortByAngle(e,
c-.5),0<b.maxLabelDistance&&(d=Math.max(0,g-z-b.maxLabelDistance),h=Math.min(g+z+b.maxLabelDistance,n.plotHeight),r(e,function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,g-z-a.labelDistance),a.bottom=Math.min(g+z+a.labelDistance,n.plotHeight),D=a.dataLabel.getBBox().height||21,a.positionsIndex=p.push({target:a.labelPos[1]-a.top+D/2,size:D,rank:a.y})-1)}),d=h+D-d,a.distribute(p,d,d/5)),N=0;N<l;N++)f=e[N],h=f.positionsIndex,A=f.labelPos,C=f.dataLabel,O=!1===f.visible?"hidden":"inherit",M=
d=A[1],p&&H(p[h])&&(void 0===p[h].pos?O="hidden":(v=p[h].size,M=f.top+p[h].pos)),delete f.positionIndex,F=k.justify?x[0]+(c?-1:1)*(z+f.labelDistance):b.getX(M<f.top+2||M>f.bottom-2?d:M,c,f),C._attr={visibility:O,align:A[6]},C._pos={x:F+k.x+({left:t,right:-t}[A[6]]||0),y:M+k.y-10},A.x=F,A.y=M,q(k.crop,!0)&&(u=C.getBBox().width,d=null,F-u<t&&1===c?(d=Math.round(u-F+t),R[3]=Math.max(d,R[3])):F+u>w-t&&0===c&&(d=Math.round(F+u-w+t),R[1]=Math.max(d,R[1])),0>M-v/2?R[0]=Math.max(Math.round(-M+v/2),R[0]):
M+v/2>m&&(R[2]=Math.max(Math.round(M+v/2-m),R[2])),C.sideOverflow=d)}),0===G(R)||this.verifyDataLabelOverflow(R))&&(this.placeDataLabels(),p&&r(this.points,function(a){var c;e=a.connector;if((C=a.dataLabel)&&C._pos&&a.visible&&0<a.labelDistance){O=C._attr.visibility;if(c=!e)a.connector=e=n.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex+(a.className?" "+a.className:"")).add(b.dataLabelsGroup);e[c?"attr":"animate"]({d:b.connectorPath(a.labelPos)});e.attr("visibility",
O)}else e&&(a.connector=e.destroy())}))},z.pie.prototype.connectorPath=function(a){var b=a.x,c=a.y;return q(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),c,"C",b,c,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",b+("left"===a[6]?5:-5),c,"L",a[2],a[3],"L",a[4],a[5]]},z.pie.prototype.placeDataLabels=function(){r(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.sideOverflow&&(b._attr.width=b.getBBox().width-b.sideOverflow,b.css({width:b._attr.width+
"px",textOverflow:this.options.dataLabels.style.textOverflow||"ellipsis"}),b.shortened=!0),b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))},this)},z.pie.prototype.alignDataLabel=v,z.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,c=this.options,f=c.center,n=c.minSize||80,t,k=null!==c.size;k||(null!==f[0]?t=Math.max(b[2]-Math.max(a[1],a[3]),n):(t=Math.max(b[2]-a[1]-a[3],n),b[0]+=(a[3]-a[1])/2),null!==f[1]?t=Math.max(Math.min(t,b[2]-Math.max(a[0],
a[2])),n):(t=Math.max(Math.min(t,b[2]-a[0]-a[2]),n),b[1]+=(a[0]-a[2])/2),t<b[2]?(b[2]=t,b[3]=Math.min(d(c.innerSize||0,t),t),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):k=!0);return k});z.column&&(z.column.prototype.alignDataLabel=function(a,d,f,n,k){var b=this.chart.inverted,h=a.series,l=a.dlBox||a.shapeArgs,m=q(a.below,a.plotY>q(this.translatedThreshold,h.yAxis.len)),p=q(f.inside,!!this.options.stacking);l&&(n=y(l),0>n.y&&(n.height+=n.y,n.y=0),l=n.y+n.height-h.yAxis.len,0<l&&(n.height-=
l),b&&(n={x:h.yAxis.len-n.y-n.height,y:h.xAxis.len-n.x-n.width,width:n.height,height:n.width}),p||(b?(n.x+=m?0:n.width,n.width=0):(n.y+=m?n.height:0,n.height=0)));f.align=q(f.align,!b||p?"center":m?"right":"left");f.verticalAlign=q(f.verticalAlign,b||p?"middle":m?"top":"bottom");c.prototype.alignDataLabel.call(this,a,d,f,n,k);a.isLabelJustified&&a.contrastColor&&a.dataLabel.css({color:a.contrastColor})})})(K);(function(a){var F=a.Chart,G=a.each,H=a.objectEach,r=a.pick;a=a.addEvent;a(F,"render",function(){var a=
[];G(this.labelCollectors||[],function(f){a=a.concat(f())});G(this.yAxis||[],function(f){f.options.stackLabels&&!f.options.stackLabels.allowOverlap&&H(f.stacks,function(f){H(f,function(f){a.push(f.label)})})});G(this.series||[],function(f){var k=f.options.dataLabels,y=f.dataLabelCollections||["dataLabel"];(k.enabled||f._hasPointLabels)&&!k.allowOverlap&&f.visible&&G(y,function(k){G(f.points,function(f){f[k]&&(f[k].labelrank=r(f.labelrank,f.shapeArgs&&f.shapeArgs.height),a.push(f[k]))})})});this.hideOverlappingLabels(a)});
F.prototype.hideOverlappingLabels=function(a){var f=a.length,k,r,v,q,d,c,z,p,n,b=function(a,b,c,d,f,n,k,m){return!(f>a+c||f+k<a||n>b+d||n+m<b)};for(r=0;r<f;r++)if(k=a[r])k.oldOpacity=k.opacity,k.newOpacity=1,k.width||(v=k.getBBox(),k.width=v.width,k.height=v.height);a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)});for(r=0;r<f;r++)for(v=a[r],k=r+1;k<f;++k)if(q=a[k],v&&q&&v!==q&&v.placed&&q.placed&&0!==v.newOpacity&&0!==q.newOpacity&&(d=v.alignAttr,c=q.alignAttr,z=v.parentGroup,p=q.parentGroup,
n=2*(v.box?0:v.padding||0),d=b(d.x+z.translateX,d.y+z.translateY,v.width-n,v.height-n,c.x+p.translateX,c.y+p.translateY,q.width-n,q.height-n)))(v.labelrank<q.labelrank?v:q).newOpacity=0;G(a,function(a){var b,c;a&&(c=a.newOpacity,a.oldOpacity!==c&&a.placed&&(c?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=c,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)),a.isOld=!0)})}})(K);(function(a){var F=a.addEvent,G=a.Chart,H=a.createElement,r=a.css,k=a.defaultOptions,f=a.defaultPlotOptions,u=a.each,
y=a.extend,v=a.fireEvent,q=a.hasTouch,d=a.inArray,c=a.isObject,z=a.Legend,p=a.merge,n=a.pick,b=a.Point,l=a.Series,h=a.seriesTypes,E=a.svg,B;B=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart.pointer,c=function(a){var c=b.getPointFromEvent(a);void 0!==c&&(b.isDirectTouch=!0,c.onMouseOver(a))};u(a.points,function(a){a.graphic&&(a.graphic.element.point=a);a.dataLabel&&(a.dataLabel.div?a.dataLabel.div.point=a:a.dataLabel.element.point=a)});a._hasTracking||(u(a.trackerGroups,function(d){if(a[d]&&
(a[d].addClass("highcharts-tracker").on("mouseover",c).on("mouseout",function(a){b.onTrackerMouseOut(a)}),q))a[d].on("touchstart",c)}),a._hasTracking=!0);v(this,"afterDrawTracker")},drawTrackerGraph:function(){var a=this,b=a.options.trackByArea,c=[].concat(b?a.areaPath:a.graphPath),d=c.length,f=a.chart,e=f.pointer,h=f.renderer,n=f.options.tooltip.snap,g=a.tracker,l,k=function(){if(f.hoverSeries!==a)a.onMouseOver()},p="rgba(192,192,192,"+(E?.0001:.002)+")";if(d&&!b)for(l=d+1;l--;)"M"===c[l]&&c.splice(l+
1,0,c[l+1]-n,c[l+2],"L"),(l&&"M"===c[l]||l===d)&&c.splice(l,0,"L",c[l-2]+n,c[l-1]);g?g.attr({d:c}):a.graph&&(a.tracker=h.path(c).attr({"stroke-linejoin":"round",visibility:a.visible?"visible":"hidden",stroke:p,fill:b?p:"none","stroke-width":a.graph.strokeWidth()+(b?0:2*n),zIndex:2}).add(a.group),u([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",k).on("mouseout",function(a){e.onTrackerMouseOut(a)});if(q)a.on("touchstart",k)}));v(this,"afterDrawTracker")}};h.column&&
(h.column.prototype.drawTracker=B.drawTrackerPoint);h.pie&&(h.pie.prototype.drawTracker=B.drawTrackerPoint);h.scatter&&(h.scatter.prototype.drawTracker=B.drawTrackerPoint);y(z.prototype,{setItemEvents:function(a,c,d){var f=this.chart.renderer.boxWrapper,h="highcharts-legend-"+(a instanceof b?"point":"series")+"-active";(d?c:a.legendGroup).on("mouseover",function(){a.setState("hover");f.addClass(h)}).on("mouseout",function(){f.removeClass(h);a.setState()}).on("click",function(e){var b=function(){a.setVisible&&
a.setVisible()};f.removeClass(h);e={browserEvent:e};a.firePointEvent?a.firePointEvent("legendItemClick",e,b):v(a,"legendItemClick",e,b)})},createCheckboxForItem:function(a){a.checkbox=H("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);F(a.checkbox,"click",function(b){v(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}});y(G.prototype,{showResetZoom:function(){function a(){b.zoomOut()}
var b=this,c=k.lang,d=b.options.chart.resetZoomButton,f=d.theme,e=f.states,h="chart"===d.relativeTo?null:"plotBox";v(this,"beforeShowResetZoom",null,function(){b.resetZoomButton=b.renderer.button(c.resetZoom,null,null,a,f,e&&e.hover).attr({align:d.position.align,title:c.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(d.position,!1,h)})},zoomOut:function(){v(this,"selection",{resetSelection:!0},this.zoom)},zoom:function(a){var b,d=this.pointer,f=!1,h;!a||a.resetSelection?(u(this.axes,
function(a){b=a.zoom()}),d.initiated=!1):u(a.xAxis.concat(a.yAxis),function(a){var e=a.axis;d[e.isXAxis?"zoomX":"zoomY"]&&(b=e.zoom(a.min,a.max),e.displayBtn&&(f=!0))});h=this.resetZoomButton;f&&!h?this.showResetZoom():!f&&c(h)&&(this.resetZoomButton=h.destroy());b&&this.redraw(n(this.options.chart.animation,a&&a.animation,100>this.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,f;d&&u(d,function(a){a.setState()});u("xy"===b?[1,0]:[1],function(e){e=c[e?"xAxis":"yAxis"][0];var b=e.horiz,
d=a[b?"chartX":"chartY"],b=b?"mouseDownX":"mouseDownY",g=c[b],h=(e.pointRange||0)/2,m=e.reversed&&!c.inverted||!e.reversed&&c.inverted?-1:1,l=e.getExtremes(),n=e.toValue(g-d,!0)+h*m,m=e.toValue(g+e.len-d,!0)-h*m,k=m<n,g=k?m:n,n=k?n:m,m=Math.min(l.dataMin,h?l.min:e.toValue(e.toPixels(l.min)-e.minPixelPadding)),h=Math.max(l.dataMax,h?l.max:e.toValue(e.toPixels(l.max)+e.minPixelPadding)),k=m-g;0<k&&(n+=k,g=m);k=n-h;0<k&&(n=h,g-=k);e.series.length&&g!==l.min&&n!==l.max&&(e.setExtremes(g,n,!1,!1,{trigger:"pan"}),
f=!0);c[b]=d});f&&c.redraw(!1);r(c.container,{cursor:"move"})}});y(b.prototype,{select:function(a,b){var c=this,f=c.series,h=f.chart;a=n(a,!c.selected);c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=c.options.selected=a;f.options.data[d(c,f.data)]=c.options;c.setState(a&&"select");b||u(h.getSelectedPoints(),function(a){a.selected&&a!==c&&(a.selected=a.options.selected=!1,f.options.data[d(a,f.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a){var b=
this.series.chart,c=b.pointer;a=a?c.normalize(a):c.getChartCoordinatesFromPoint(this,b.inverted);c.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent("mouseOut");u(a.hoverPoints||[],function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var b=this,c=p(b.series.options.point,b.options).events;b.events=c;a.objectEach(c,function(a,c){F(b,c,a)});this.hasImportedEvents=!0}},setState:function(a,b){var c=Math.floor(this.plotX),
d=this.plotY,h=this.series,e=h.options.states[a||"normal"]||{},l=f[h.type].marker&&h.options.marker,k=l&&!1===l.enabled,g=l&&l.states&&l.states[a||"normal"]||{},p=!1===g.enabled,t=h.stateMarkerGraphic,A=this.marker||{},q=h.chart,B=h.halo,z,r=l&&h.markerAttribs;a=a||"";if(!(a===this.state&&!b||this.selected&&"select"!==a||!1===e.enabled||a&&(p||k&&!1===g.enabled)||a&&A.states&&A.states[a]&&!1===A.states[a].enabled)){r&&(z=h.markerAttribs(this,a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+
this.state),a&&this.graphic.addClass("highcharts-point-"+a),z&&this.graphic.animate(z,n(q.options.chart.animation,g.animation,l.animation)),t&&t.hide();else{if(a&&g)if(l=A.symbol||h.symbol,t&&t.currentSymbol!==l&&(t=t.destroy()),t)t[b?"animate":"attr"]({x:z.x,y:z.y});else l&&(h.stateMarkerGraphic=t=q.renderer.symbol(l,z.x,z.y,z.width,z.height).add(h.markerGroup),t.currentSymbol=l);t&&(t[a&&q.isInsidePlot(c,d,q.inverted)?"show":"hide"](),t.element.point=this)}(c=e.halo)&&c.size?(B||(h.halo=B=q.renderer.path().add((this.graphic||
t).parentGroup)),B.show()[b?"animate":"attr"]({d:this.haloPath(c.size)}),B.attr({"class":"highcharts-halo highcharts-color-"+n(this.colorIndex,h.colorIndex)+(this.className?" "+this.className:"")}),B.point=this):B&&B.point&&B.point.haloPath&&B.animate({d:B.point.haloPath(0)},null,B.hide);this.state=a;v(this,"afterSetState")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});y(l.prototype,{onMouseOver:function(){var a=this.chart,
b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&v(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;b.hoverSeries=null;if(d)d.onMouseOut();this&&a.events.mouseOut&&v(this,"mouseOut");!c||this.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();this.setState()},setState:function(a){var b=this;a=a||"";b.state!==a&&(u([b.group,b.markerGroup,b.dataLabelsGroup],function(c){c&&
(b.state&&c.removeClass("highcharts-series-"+b.state),a&&c.addClass("highcharts-series-"+a))}),b.state=a)},setVisible:function(a,b){var c=this,d=c.chart,f=c.legendItem,e,h=d.options.chart.ignoreHiddenSeries,l=c.visible;e=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!l:a)?"show":"hide";u(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(a){if(c[a])c[a][e]()});if(d.hoverSeries===c||(d.hoverPoint&&d.hoverPoint.series)===c)c.onMouseOut();f&&d.legend.colorizeItem(c,a);
c.isDirty=!0;c.options.stacking&&u(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});u(c.linkedSeries,function(b){b.setVisible(a,!1)});h&&(d.isDirtyBox=!0);!1!==b&&d.redraw();v(c,e)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=void 0===a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);v(this,a?"select":"unselect")},drawTracker:B.drawTrackerGraph})})(K);(function(a){var F=a.Chart,G=a.each,H=a.inArray,r=a.isArray,
k=a.isObject,f=a.pick,u=a.splat;F.prototype.setResponsive=function(f){var k=this.options.responsive,q=[],d=this.currentResponsive;k&&k.rules&&G(k.rules,function(c){void 0===c._id&&(c._id=a.uniqueKey());this.matchResponsiveRule(c,q,f)},this);var c=a.merge.apply(0,a.map(q,function(c){return a.find(k.rules,function(a){return a._id===c}).chartOptions})),q=q.toString()||void 0;q!==(d&&d.ruleIds)&&(d&&this.update(d.undoOptions,f),q?(this.currentResponsive={ruleIds:q,mergedOptions:c,undoOptions:this.currentOptions(c)},
this.update(c,f)):this.currentResponsive=void 0)};F.prototype.matchResponsiveRule=function(a,k){var q=a.condition;(q.callback||function(){return this.chartWidth<=f(q.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=f(q.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=f(q.minWidth,0)&&this.chartHeight>=f(q.minHeight,0)}).call(this)&&k.push(a._id)};F.prototype.currentOptions=function(f){function v(d,c,f,p){var n;a.objectEach(d,function(a,d){if(!p&&-1<H(d,["series","xAxis","yAxis"]))for(a=u(a),f[d]=[],n=0;n<
a.length;n++)c[d][n]&&(f[d][n]={},v(a[n],c[d][n],f[d][n],p+1));else k(a)?(f[d]=r(a)?[]:{},v(a,c[d]||{},f[d],p+1)):f[d]=c[d]||null})}var q={};v(f,this.options,q,0);return q}})(K);(function(a){var F=a.addEvent,G=a.Axis,H=a.Chart,r=a.css,k=a.defined,f=a.each,u=a.extend,y=a.noop,v=a.pick,q=a.timeUnits,d=a.wrap;d(a.Series.prototype,"init",function(a){var c;a.apply(this,Array.prototype.slice.call(arguments,1));(c=this.xAxis)&&c.options.ordinal&&F(this,"updatedData",function(){delete c.ordinalIndex})});
d(G.prototype,"getTimeTicks",function(a,d,f,n,b,l,h,r){var c=0,p,z,w={},m,D,e,x=[],v=-Number.MAX_VALUE,g=this.options.tickPixelInterval,C=this.chart.time;if(!this.options.ordinal&&!this.options.breaks||!l||3>l.length||void 0===f)return a.call(this,d,f,n,b);D=l.length;for(p=0;p<D;p++){e=p&&l[p-1]>n;l[p]<f&&(c=p);if(p===D-1||l[p+1]-l[p]>5*h||e){if(l[p]>v){for(z=a.call(this,d,l[c],l[p],b);z.length&&z[0]<=v;)z.shift();z.length&&(v=z[z.length-1]);x=x.concat(z)}c=p+1}if(e)break}a=z.info;if(r&&a.unitRange<=
q.hour){p=x.length-1;for(c=1;c<p;c++)C.dateFormat("%d",x[c])!==C.dateFormat("%d",x[c-1])&&(w[x[c]]="day",m=!0);m&&(w[x[0]]="day");a.higherRanks=w}x.info=a;if(r&&k(g)){r=C=x.length;p=[];var u;for(m=[];r--;)c=this.translate(x[r]),u&&(m[r]=u-c),p[r]=u=c;m.sort();m=m[Math.floor(m.length/2)];m<.6*g&&(m=null);r=x[C-1]>n?C-1:C;for(u=void 0;r--;)c=p[r],n=Math.abs(u-c),u&&n<.8*g&&(null===m||n<.8*m)?(w[x[r]]&&!w[x[r+1]]?(n=r+1,u=c):n=r,x.splice(n,1)):u=c}return x});u(G.prototype,{beforeSetTickPositions:function(){var a,
d=[],p=!1,n,b=this.getExtremes(),l=b.min,h=b.max,q,B=this.isXAxis&&!!this.options.breaks,b=this.options.ordinal,t=Number.MAX_VALUE,r=this.chart.options.chart.ignoreHiddenSeries;n="highcharts-navigator-xaxis"===this.options.className;!this.options.overscroll||this.max!==this.dataMax||this.chart.mouseIsDown&&!n||this.eventArgs&&(!this.eventArgs||"navigator"===this.eventArgs.trigger)||(this.max+=this.options.overscroll,!n&&k(this.userMin)&&(this.min+=this.options.overscroll));if(b||B){f(this.series,
function(b,c){if(!(r&&!1===b.visible||!1===b.takeOrdinalPosition&&!B)&&(d=d.concat(b.processedXData),a=d.length,d.sort(function(a,b){return a-b}),t=Math.min(t,v(b.closestPointRange,t)),a))for(c=a-1;c--;)d[c]===d[c+1]&&d.splice(c,1)});a=d.length;if(2<a){n=d[1]-d[0];for(q=a-1;q--&&!p;)d[q+1]-d[q]!==n&&(p=!0);!this.options.keepOrdinalPadding&&(d[0]-l>n||h-d[d.length-1]>n)&&(p=!0)}else this.options.overscroll&&(2===a?t=d[1]-d[0]:1===a?(t=this.options.overscroll,d=[d[0],d[0]+t]):t=this.overscrollPointsRange);
p?(this.options.overscroll&&(this.overscrollPointsRange=t,d=d.concat(this.getOverscrollPositions())),this.ordinalPositions=d,n=this.ordinal2lin(Math.max(l,d[0]),!0),q=Math.max(this.ordinal2lin(Math.min(h,d[d.length-1]),!0),1),this.ordinalSlope=h=(h-l)/(q-n),this.ordinalOffset=l-n*h):(this.overscrollPointsRange=v(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=b&&p;this.groupIntervalFactor=null},val2lin:function(a,
d){var c=this.ordinalPositions;if(c){var f=c.length,b,l;for(b=f;b--;)if(c[b]===a){l=b;break}for(b=f-1;b--;)if(a>c[b]||0===b){a=(a-c[b])/(c[b+1]-c[b]);l=b+a;break}d=d?l:this.ordinalSlope*(l||0)+this.ordinalOffset}else d=a;return d},lin2val:function(a,d){var c=this.ordinalPositions;if(c){var f=this.ordinalSlope,b=this.ordinalOffset,l=c.length-1,h;if(d)0>a?a=c[0]:a>l?a=c[l]:(l=Math.floor(a),h=a-l);else for(;l--;)if(d=f*l+b,a>=d){f=f*(l+1)+b;h=(a-d)/(f-d);break}return void 0!==h&&void 0!==c[l]?c[l]+(h?
h*(c[l+1]-c[l]):0):a}return a},getExtendedPositions:function(){var a=this,d=a.chart,k=a.series[0].currentDataGrouping,n=a.ordinalIndex,b=k?k.count+k.unitName:"raw",l=a.options.overscroll,h=a.getExtremes(),q,B;n||(n=a.ordinalIndex={});n[b]||(q={series:[],chart:d,getExtremes:function(){return{min:h.dataMin,max:h.dataMax+l}},options:{ordinal:!0},val2lin:G.prototype.val2lin,ordinal2lin:G.prototype.ordinal2lin},f(a.series,function(b){B={xAxis:q,xData:b.xData.slice(),chart:d,destroyGroupedData:y};B.xData=
B.xData.concat(a.getOverscrollPositions());B.options={dataGrouping:k?{enabled:!0,forced:!0,approximation:"open",units:[[k.unitName,[k.count]]]}:{enabled:!1}};b.processData.apply(B);q.series.push(B)}),a.beforeSetTickPositions.apply(q),n[b]=q.ordinalPositions);return n[b]},getOverscrollPositions:function(){var c=this.options.overscroll,d=this.overscrollPointsRange,f=[],n=this.dataMax;if(a.defined(d))for(f.push(n);n<=this.dataMax+c;)n+=d,f.push(n);return f},getGroupIntervalFactor:function(a,d,f){var c;
f=f.processedXData;var b=f.length,l=[];c=this.groupIntervalFactor;if(!c){for(c=0;c<b-1;c++)l[c]=f[c+1]-f[c];l.sort(function(a,b){return a-b});l=l[Math.floor(b/2)];a=Math.max(a,f[0]);d=Math.min(d,f[b-1]);this.groupIntervalFactor=c=b*l/(d-a)}return c},postProcessTickInterval:function(a){var c=this.ordinalSlope;return c?this.options.breaks?this.closestPointRange||a:a/(c/this.closestPointRange):a}});G.prototype.ordinal2lin=G.prototype.val2lin;d(H.prototype,"pan",function(a,d){var c=this.xAxis[0],k=c.options.overscroll,
b=d.chartX,l=!1;if(c.options.ordinal&&c.series.length){var h=this.mouseDownX,q=c.getExtremes(),B=q.dataMax,t=q.min,v=q.max,w=this.hoverPoints,m=c.closestPointRange||c.overscrollPointsRange,h=(h-b)/(c.translationSlope*(c.ordinalSlope||m)),D={ordinalPositions:c.getExtendedPositions()},m=c.lin2val,e=c.val2lin,x;D.ordinalPositions?1<Math.abs(h)&&(w&&f(w,function(a){a.setState()}),0>h?(w=D,x=c.ordinalPositions?c:D):(w=c.ordinalPositions?c:D,x=D),D=x.ordinalPositions,B>D[D.length-1]&&D.push(B),this.fixedRange=
v-t,h=c.toFixedRange(null,null,m.apply(w,[e.apply(w,[t,!0])+h,!0]),m.apply(x,[e.apply(x,[v,!0])+h,!0])),h.min>=Math.min(q.dataMin,t)&&h.max<=Math.max(B,v)+k&&c.setExtremes(h.min,h.max,!0,!1,{trigger:"pan"}),this.mouseDownX=b,r(this.container,{cursor:"move"})):l=!0}else l=!0;l&&(k&&(c.max=c.dataMax+k),a.apply(this,Array.prototype.slice.call(arguments,1)))})})(K);(function(a){function F(){return Array.prototype.slice.call(arguments,1)}function G(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,
r(this.pointArrayMap,["y"]))}var H=a.addEvent,r=a.pick,k=a.wrap,f=a.each,u=a.extend,y=a.isArray,v=a.fireEvent,q=a.Axis,d=a.Series;u(q.prototype,{isInBreak:function(a,d){var c=a.repeat||Infinity,f=a.from,b=a.to-a.from;d=d>=f?(d-f)%c:c-(f-d)%c;return a.inclusive?d<=b:d<b&&0!==d},isInAnyBreak:function(a,d){var c=this.options.breaks,f=c&&c.length,b,l,h;if(f){for(;f--;)this.isInBreak(c[f],a)&&(b=!0,l||(l=r(c[f].showPoints,this.isXAxis?!1:!0)));h=b&&d?b&&!l:b}return h}});H(q,"afterSetTickPositions",function(){if(this.options.breaks){var a=
this.tickPositions,d=this.tickPositions.info,f=[],k;for(k=0;k<a.length;k++)this.isInAnyBreak(a[k])||f.push(a[k]);this.tickPositions=f;this.tickPositions.info=d}});H(q,"afterSetOptions",function(){this.options.breaks&&this.options.breaks.length&&(this.options.ordinal=!1)});H(q,"afterInit",function(){var a=this,d;d=this.options.breaks;a.isBroken=y(d)&&!!d.length;a.isBroken&&(a.val2lin=function(c){var d=c,b,f;for(f=0;f<a.breakArray.length;f++)if(b=a.breakArray[f],b.to<=c)d-=b.len;else if(b.from>=c)break;
else if(a.isInBreak(b,c)){d-=c-b.from;break}return d},a.lin2val=function(c){var d,b;for(b=0;b<a.breakArray.length&&!(d=a.breakArray[b],d.from>=c);b++)d.to<c?c+=d.len:a.isInBreak(d,c)&&(c+=d.len);return c},a.setExtremes=function(a,c,b,d,f){for(;this.isInAnyBreak(a);)a-=this.closestPointRange;for(;this.isInAnyBreak(c);)c-=this.closestPointRange;q.prototype.setExtremes.call(this,a,c,b,d,f)},a.setAxisTranslation=function(c){q.prototype.setAxisTranslation.call(this,c);c=a.options.breaks;var d=[],b=[],
l=0,h,k,p=a.userMin||a.min,t=a.userMax||a.max,u=r(a.pointRangePadding,0),w,m;f(c,function(b){k=b.repeat||Infinity;a.isInBreak(b,p)&&(p+=b.to%k-p%k);a.isInBreak(b,t)&&(t-=t%k-b.from%k)});f(c,function(a){w=a.from;for(k=a.repeat||Infinity;w-k>p;)w-=k;for(;w<p;)w+=k;for(m=w;m<t;m+=k)d.push({value:m,move:"in"}),d.push({value:m+(a.to-a.from),move:"out",size:a.breakSize})});d.sort(function(a,b){return a.value===b.value?("in"===a.move?0:1)-("in"===b.move?0:1):a.value-b.value});h=0;w=p;f(d,function(a){h+=
"in"===a.move?1:-1;1===h&&"in"===a.move&&(w=a.value);0===h&&(b.push({from:w,to:a.value,len:a.value-w-(a.size||0)}),l+=a.value-w-(a.size||0))});a.breakArray=b;a.unitLength=t-p-l+u;v(a,"afterBreaks");a.options.staticScale?a.transA=a.options.staticScale:a.unitLength&&(a.transA*=(t-a.min+u)/a.unitLength);u&&(a.minPixelPadding=a.transA*a.minPointOffset);a.min=p;a.max=t})});k(d.prototype,"generatePoints",function(a){a.apply(this,F(arguments));var c=this.xAxis,d=this.yAxis,f=this.points,b,k=f.length,h=this.options.connectNulls,
q;if(c&&d&&(c.options.breaks||d.options.breaks))for(;k--;)b=f[k],q=null===b.y&&!1===h,q||!c.isInAnyBreak(b.x,!0)&&!d.isInAnyBreak(b.y,!0)||(f.splice(k,1),this.data[k]&&this.data[k].destroyElements())});a.Series.prototype.drawBreaks=function(a,d){var c=this,k=c.points,b,l,h,q;a&&f(d,function(d){b=a.breakArray||[];l=a.isXAxis?a.min:r(c.options.threshold,a.min);f(k,function(c){q=r(c["stack"+d.toUpperCase()],c[d]);f(b,function(b){h=!1;if(l<b.from&&q>b.to||l>b.from&&q<b.from)h="pointBreak";else if(l<b.from&&
q>b.from&&q<b.to||l>b.from&&q>b.to&&q<b.from)h="pointInBreak";h&&v(a,h,{point:c,brk:b})})})})};a.Series.prototype.gappedPath=function(){var c=this.currentDataGrouping,d=c&&c.totalRange,c=this.options.gapSize,f=this.points.slice(),k=f.length-1,b=this.yAxis;if(c&&0<k)for("value"!==this.options.gapUnit&&(c*=this.closestPointRange),d&&d>c&&(c=d);k--;)f[k+1].x-f[k].x>c&&(d=(f[k].x+f[k+1].x)/2,f.splice(k+1,0,{isNull:!0,x:d}),this.options.stacking&&(d=b.stacks[this.stackKey][d]=new a.StackItem(b,b.options.stackLabels,
!1,d,this.stack),d.total=0));return this.getGraphPath(f)};k(a.seriesTypes.column.prototype,"drawPoints",G);k(a.Series.prototype,"drawPoints",G)})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.arrayMin,r=a.Axis,k=a.defaultPlotOptions,f=a.defined,u=a.each,y=a.extend,v=a.format,q=a.isNumber,d=a.merge,c=a.pick,z=a.Point,p=a.Series,n=a.Tooltip,b=a.wrap,l=p.prototype,h=l.processData,E=l.generatePoints,B={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L",
"%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},t={line:{},spline:{},area:{},areaspline:{},column:{approximation:"sum",groupPixelWidth:10},arearange:{approximation:"range"},
areasplinerange:{approximation:"range"},columnrange:{approximation:"range",groupPixelWidth:10},candlestick:{approximation:"ohlc",groupPixelWidth:10},ohlc:{approximation:"ohlc",groupPixelWidth:5}},I=a.defaultDataGroupingUnits=[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]],w=a.approximations={sum:function(a){var b=a.length,c;if(!b&&a.hasNulls)c=null;else if(b)for(c=
0;b--;)c+=a[b];return c},average:function(a){var b=a.length;a=w.sum(a);q(a)&&b&&(a/=b);return a},averages:function(){var a=[];u(arguments,function(b){a.push(w.average(b))});return void 0===a[0]?void 0:a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?G(a):a.hasNulls?null:void 0},low:function(a){return a.length?H(a):a.hasNulls?null:void 0},close:function(a){return a.length?a[a.length-1]:a.hasNulls?null:void 0},ohlc:function(a,b,c,d){a=w.open(a);b=w.high(b);
c=w.low(c);d=w.close(d);if(q(a)||q(b)||q(c)||q(d))return[a,b,c,d]},range:function(a,b){a=w.low(a);b=w.high(b);if(q(a)||q(b))return[a,b];if(null===a&&null===b)return null}};l.groupData=function(a,b,c,d){var e=this.data,f=this.options.data,h=[],m=[],k=[],l=a.length,n,x,p=!!b,r=[];d="function"===typeof d?d:w[d]||t[this.type]&&w[t[this.type].approximation]||w[B.approximation];var v=this.pointArrayMap,D=v&&v.length,z=0;x=0;var E,y;D?u(v,function(){r.push([])}):r.push([]);E=D||1;for(y=0;y<=l&&!(a[y]>=c[0]);y++);
for(y;y<=l;y++){for(;void 0!==c[z+1]&&a[y]>=c[z+1]||y===l;){n=c[z];this.dataGroupInfo={start:x,length:r[0].length};x=d.apply(this,r);void 0!==x&&(h.push(n),m.push(x),k.push(this.dataGroupInfo));x=y;for(n=0;n<E;n++)r[n].length=0,r[n].hasNulls=!1;z+=1;if(y===l)break}if(y===l)break;if(v){n=this.cropStart+y;var I=e&&e[n]||this.pointClass.prototype.applyOptions.apply({series:this},[f[n]]),F;for(n=0;n<D;n++)F=I[v[n]],q(F)?r[n].push(F):null===F&&(r[n].hasNulls=!0)}else n=p?b[y]:null,q(n)?r[0].push(n):null===
n&&(r[0].hasNulls=!0)}return[h,m,k]};l.processData=function(){var a=this.chart,b=this.options.dataGrouping,e=!1!==this.allowDG&&b&&c(b.enabled,a.options.isStock),d=this.visible||!a.options.chart.ignoreHiddenSeries,k,g=this.currentDataGrouping,n;this.forceCrop=e;this.groupPixelWidth=null;this.hasProcessed=!0;if(!1!==h.apply(this,arguments)&&e){this.destroyGroupedData();var t,p=b.groupAll?this.xData:this.processedXData,w=b.groupAll?this.yData:this.processedYData,q=a.plotSizeX,a=this.xAxis,r=a.options.ordinal,
B=this.groupPixelWidth=a.getGroupPixelWidth&&a.getGroupPixelWidth();if(B){this.isDirty=k=!0;this.points=null;e=a.getExtremes();n=e.min;e=e.max;r=r&&a.getGroupIntervalFactor(n,e,this)||1;B=B*(e-n)/q*r;q=a.getTimeTicks(a.normalizeTimeTickInterval(B,b.units||I),Math.min(n,p[0]),Math.max(e,p[p.length-1]),a.options.startOfWeek,p,this.closestPointRange);w=l.groupData.apply(this,[p,w,q,b.approximation]);p=w[0];r=w[1];if(b.smoothed&&p.length){t=p.length-1;for(p[t]=Math.min(p[t],e);t--&&0<t;)p[t]+=B/2;p[0]=
Math.max(p[0],n)}n=q.info;this.closestPointRange=q.info.totalRange;this.groupMap=w[2];f(p[0])&&p[0]<a.dataMin&&d&&(a.min<=a.dataMin&&(a.min=p[0]),a.dataMin=p[0]);b.groupAll&&(b=this.cropData(p,r,a.min,a.max,1),p=b.xData,r=b.yData);this.processedXData=p;this.processedYData=r}else this.groupMap=null;this.hasGroupedData=k;this.currentDataGrouping=n;this.preventGraphAnimation=(g&&g.totalRange)!==(n&&n.totalRange)}};l.destroyGroupedData=function(){var a=this.groupedData;u(a||[],function(b,c){b&&(a[c]=
b.destroy?b.destroy():null)});this.groupedData=null};l.generatePoints=function(){E.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};F(z,"update",function(){if(this.dataGroup)return a.error(24),!1});b(n.prototype,"tooltipFooterHeaderFormatter",function(a,b,c){var e=this.chart.time,d=b.series,f=d.tooltipOptions,h=d.options.dataGrouping,m=f.xDateFormat,k,l=d.xAxis;return l&&"datetime"===l.options.type&&h&&q(b.key)?(a=d.currentDataGrouping,h=h.dateTimeLabelFormats,
a?(l=h[a.unitName],1===a.count?m=l[0]:(m=l[1],k=l[2])):!m&&h&&(m=this.getXDateFormat(b,f,l)),m=e.dateFormat(m,b.key),k&&(m+=e.dateFormat(k,b.key+a.totalRange-1)),v(f[(c?"footer":"header")+"Format"],{point:y(b.point,{key:m}),series:d},e)):a.call(this,b,c)});F(p,"destroy",l.destroyGroupedData);F(p,"afterSetOptions",function(a){a=a.options;var b=this.type,c=this.chart.options.plotOptions,f=k[b].dataGrouping,h=this.useCommonDataGrouping&&B;if(t[b]||h)f||(f=d(B,t[b])),a.dataGrouping=d(h,f,c.series&&c.series.dataGrouping,
c[b].dataGrouping,this.userOptions.dataGrouping);this.chart.options.isStock&&(this.requireSorting=!0)});F(r,"afterSetScale",function(){u(this.series,function(a){a.hasProcessed=!1})});r.prototype.getGroupPixelWidth=function(){var a=this.series,b=a.length,c,d=0,f=!1,g;for(c=b;c--;)(g=a[c].options.dataGrouping)&&(d=Math.max(d,g.groupPixelWidth));for(c=b;c--;)(g=a[c].options.dataGrouping)&&a[c].hasProcessed&&(b=(a[c].processedXData||a[c].data).length,a[c].groupPixelWidth||b>this.chart.plotSizeX/d||b&&
g.forced)&&(f=!0);return f?d:0};r.prototype.setDataGrouping=function(a,b){var e;b=c(b,!0);a||(a={forced:!1,units:null});if(this instanceof r)for(e=this.series.length;e--;)this.series[e].update({dataGrouping:a},!1);else u(this.chart.options.series,function(b){b.dataGrouping=a},!1);this.ordinalSlope=null;b&&this.chart.redraw()}})(K);(function(a){var F=a.each,G=a.Point,H=a.seriesType,r=a.seriesTypes;H("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'},
threshold:null,stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",translate:function(){var a=this,f=a.yAxis,u=!!a.modifyValue,y=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];r.column.prototype.translate.apply(a);F(a.points,function(k){F([k.open,k.high,k.low,k.close,k.low],function(q,d){null!==q&&(u&&(q=a.modifyValue(q)),k[y[d]]=f.toPixels(q,!0))});k.tooltipPos[1]=k.plotHigh+f.pos-a.chart.plotTop})},
drawPoints:function(){var a=this,f=a.chart;F(a.points,function(k){var r,v,q,d,c=k.graphic,u,p=!c;void 0!==k.plotY&&(c||(k.graphic=c=f.renderer.path().add(a.group)),v=c.strokeWidth()%2/2,u=Math.round(k.plotX)-v,q=Math.round(k.shapeArgs.width/2),d=["M",u,Math.round(k.yBottom),"L",u,Math.round(k.plotHigh)],null!==k.open&&(r=Math.round(k.plotOpen)+v,d.push("M",u,r,"L",u-q,r)),null!==k.close&&(r=Math.round(k.plotClose)+v,d.push("M",u,r,"L",u+q,r)),c[p?"attr":"animate"]({d:d}).addClass(k.getClassName(),
!0))})},animate:null},{getClassName:function(){return G.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}})})(K);(function(a){var F=a.defaultPlotOptions,G=a.each,H=a.merge;a=a.seriesType;a("candlestick","ohlc",H(F.column,{states:{hover:{lineWidth:2}},tooltip:F.ohlc.tooltip,threshold:null,stickyTracking:!0}),{drawPoints:function(){var a=this,k=a.chart;G(a.points,function(f){var r=f.graphic,y,v,q,d,c,z,p,n=!r;void 0!==f.plotY&&(r||(f.graphic=r=
k.renderer.path().add(a.group)),c=r.strokeWidth()%2/2,z=Math.round(f.plotX)-c,y=f.plotOpen,v=f.plotClose,q=Math.min(y,v),y=Math.max(y,v),p=Math.round(f.shapeArgs.width/2),v=Math.round(q)!==Math.round(f.plotHigh),d=y!==f.yBottom,q=Math.round(q)+c,y=Math.round(y)+c,c=[],c.push("M",z-p,y,"L",z-p,q,"L",z+p,q,"L",z+p,y,"Z","M",z,q,"L",z,v?Math.round(f.plotHigh):q,"M",z,y,"L",z,d?Math.round(f.yBottom):y),r[n?"attr":"animate"]({d:c}).addClass(f.getClassName(),!0))})}})})(K);da=function(a){var F=a.each,G=
a.defined,H=a.seriesTypes,r=a.stableSort;return{getPlotBox:function(){return a.Series.prototype.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this)},translate:function(){H.column.prototype.translate.apply(this);var a=this.options,f=this.chart,u=this.points,y=u.length-1,v,q,d=a.onSeries,d=d&&f.get(d),a=a.onKey||"y",c=d&&d.options.step,z=d&&d.points,p=z&&z.length,n=f.inverted,b=this.xAxis,l=this.yAxis,h=0,E,B,t,I;if(d&&d.visible&&p)for(h=(d.pointXOffset||0)+(d.barW||
0)/2,v=d.currentDataGrouping,B=z[p-1].x+(v?v.totalRange:0),r(u,function(a,b){return a.x-b.x}),a="plot"+a[0].toUpperCase()+a.substr(1);p--&&u[y]&&!(E=z[p],v=u[y],v.y=E.y,E.x<=v.x&&void 0!==E[a]&&(v.x<=B&&(v.plotY=E[a],E.x<v.x&&!c&&(t=z[p+1])&&void 0!==t[a]&&(I=(v.x-E.x)/(t.x-E.x),v.plotY+=I*(t[a]-E[a]),v.y+=I*(t.y-E.y))),y--,p++,0>y)););F(u,function(a,c){var d;a.plotX+=h;if(void 0===a.plotY||n)0<=a.plotX&&a.plotX<=b.len?n?(a.plotY=b.translate(a.x,0,1,0,1),a.plotX=G(a.y)?l.translate(a.y,0,0,0,1):0):
a.plotY=f.chartHeight-b.bottom-(b.opposite?b.height:0)+b.offset-l.top:a.shapeArgs={};(q=u[c-1])&&q.plotX===a.plotX&&(void 0===q.stackIndex&&(q.stackIndex=0),d=q.stackIndex+1);a.stackIndex=d});this.onSeries=d}}}(K);(function(a,F){function G(a){y[a+"pin"]=function(f,d,c,k,p){var n=p&&p.anchorX;p=p&&p.anchorY;"circle"===a&&k>c&&(f-=Math.round((k-c)/2),c=k);f=y[a](f,d,c,k);n&&p&&(f.push("M","circle"===a?f[1]-f[4]:f[1]+f[4]/2,d>p?d:d+k,"L",n,p),f=f.concat(y.circle(n-1,p-1,2,2)));return f}}var H=a.addEvent,
r=a.each,k=a.noop,f=a.seriesType,u=a.TrackerMixin,y=a.SVGRenderer.prototype.symbols;f("flags","column",{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}\x3cbr/\x3e"},threshold:null,y:-30},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:a.Series.prototype.init,translate:F.translate,getPlotBox:F.getPlotBox,drawPoints:function(){var f=this.points,k=this.chart,d=k.renderer,
c,u,p=k.inverted,n=this.options,b=n.y,l,h,E,B,t,y,w=this.yAxis,m={},D=[];for(h=f.length;h--;)E=f[h],y=(p?E.plotY:E.plotX)>this.xAxis.len,c=E.plotX,B=E.stackIndex,l=E.options.shape||n.shape,u=E.plotY,void 0!==u&&(u=E.plotY+b-(void 0!==B&&B*n.stackDistance)),E.anchorX=B?void 0:E.plotX,t=B?void 0:E.plotY,B=E.graphic,void 0!==u&&0<=c&&!y?(B||(B=E.graphic=d.label("",null,null,l,null,null,n.useHTML).attr({align:"flag"===l?"left":"center",width:n.width,height:n.height,"text-align":n.textAlign}).addClass("highcharts-point").add(this.markerGroup),
E.graphic.div&&(E.graphic.div.point=E),B.isNew=!0),0<c&&(c-=B.strokeWidth()%2),l={y:u,anchorY:t},n.allowOverlapX&&(l.x=c,l.anchorX=E.anchorX),B.attr({text:E.options.title||n.title||"A"})[B.isNew?"attr":"animate"](l),n.allowOverlapX||(m[E.plotX]?m[E.plotX].size=Math.max(m[E.plotX].size,B.width):m[E.plotX]={align:0,size:B.width,target:c,anchorX:c}),E.tooltipPos=[c,u+w.pos-k.plotTop]):B&&(E.graphic=B.destroy());n.allowOverlapX||(a.objectEach(m,function(a){a.plotX=a.anchorX;D.push(a)}),a.distribute(D,
p?w.len:this.xAxis.len,100),r(f,function(a){var b=a.graphic&&m[a.plotX];b&&(a.graphic[a.graphic.isNew?"attr":"animate"]({x:b.pos,anchorX:a.anchorX}),a.graphic.isNew=!1)}));n.useHTML&&a.wrap(this.markerGroup,"on",function(b){return a.SVGElement.prototype.on.apply(b.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var a=this.points;u.drawTrackerPoint.apply(this);r(a,function(f){var d=f.graphic;d&&H(d.element,"mouseover",function(){0<f.stackIndex&&!f.raised&&
(f._y=d.y,d.attr({y:f._y-8}),f.raised=!0);r(a,function(a){a!==f&&a.raised&&a.graphic&&(a.graphic.attr({y:a._y}),a.raised=!1)})})})},animate:k,buildKDTree:k,setClip:k,invertGroups:k});y.flag=function(a,f,d,c,k){var p=k&&k.anchorX||a;k=k&&k.anchorY||f;return y.circle(p-1,k-1,2,2).concat(["M",p,k,"L",a,f+c,a,f,a+d,f,a+d,f+c,a,f+c,"Z"])};G("circle");G("square")})(K,da);(function(a){function F(a,b,c){this.init(a,b,c)}var G=a.addEvent,H=a.Axis,r=a.correctFloat,k=a.defaultOptions,f=a.defined,u=a.destroyObjectProperties,
y=a.each,v=a.fireEvent,q=a.hasTouch,d=a.isTouchDevice,c=a.merge,z=a.pick,p=a.removeEvent,n=a.wrap,b,l={height:d?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!d,margin:10,minWidth:6,step:.2,zIndex:3};k.scrollbar=c(!0,l,k.scrollbar);a.swapXY=b=function(a,b){var c=a.length,d;if(b)for(b=0;b<c;b+=3)d=a[b+1],a[b+1]=a[b+2],a[b+2]=d;return a};F.prototype={init:function(a,b,d){this.scrollbarButtons=[];this.renderer=a;this.userOptions=b;this.options=c(l,b);this.chart=d;this.size=z(this.options.size,
this.options.height);b.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,c=this.options,d=this.size,f;this.group=f=a.g("scrollbar").attr({zIndex:c.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0,r:c.trackBorderRadius||0,height:d,width:d}).add(f);this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(f);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:d,
width:d,r:c.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(b(["M",-3,d/4,"L",-3,2*d/3,"M",0,d/4,"L",0,2*d/3,"M",3,d/4,"L",3,2*d/3],c.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a,b,c,d){var f=this.options.vertical,h=0,k=
this.rendered?"animate":"attr";this.x=a;this.y=b+this.trackBorderWidth;this.width=c;this.xOffset=this.height=d;this.yOffset=h;f?(this.width=this.yOffset=c=h=this.size,this.xOffset=b=0,this.barWidth=d-2*c,this.x=a+=this.options.margin):(this.height=this.xOffset=d=b=this.size,this.barWidth=c-2*d,this.y+=this.options.margin);this.group[k]({translateX:a,translateY:this.y});this.track[k]({width:c,height:d});this.scrollbarButtons[1][k]({translateX:f?0:c-b,translateY:f?d-h:0})},drawScrollbarButton:function(a){var c=
this.renderer,d=this.scrollbarButtons,f=this.options,h=this.size,k;k=c.g().add(this.group);d.push(k);k=c.rect().addClass("highcharts-scrollbar-button").add(k);k.attr(k.crisp({x:-.5,y:-.5,width:h+1,height:h+1,r:f.buttonBorderRadius},k.strokeWidth()));c.path(b(["M",h/2+(a?-1:1),h/2-3,"L",h/2+(a?-1:1),h/2+3,"L",h/2+(a?2:-2),h/2],f.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a])},setRange:function(a,b){var c=this.options,d=c.vertical,h=c.minWidth,k=this.barWidth,m,l,e=this.rendered&&!this.hasDragged?
"animate":"attr";f(k)&&(a=Math.max(a,0),m=Math.ceil(k*a),this.calculatedWidth=l=r(k*Math.min(b,1)-m),l<h&&(m=(k-h+l)*a,l=h),h=Math.floor(m+this.xOffset+this.yOffset),k=l/2-.5,this.from=a,this.to=b,d?(this.scrollbarGroup[e]({translateY:h}),this.scrollbar[e]({height:l}),this.scrollbarRifles[e]({translateY:k}),this.scrollbarTop=h,this.scrollbarLeft=0):(this.scrollbarGroup[e]({translateX:h}),this.scrollbar[e]({width:l}),this.scrollbarRifles[e]({translateX:k}),this.scrollbarLeft=h,this.scrollbarTop=0),
12>=l?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===c.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var c=a.chart.pointer.normalize(b),d=a.options.vertical?"chartY":"chartX",f=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][d]||(c=a.cursorToScrollbarPosition(c)[d],d=a[d],d=c-d,a.hasDragged=!0,a.updatePosition(f[0]+d,f[1]+d),a.hasDragged&&v(a,"changed",{from:a.from,to:a.to,
trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b);b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var c=r(a.to-a.from)*a.options.step;a.updatePosition(r(a.from-
c),r(a.to-c));v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var c=(a.to-a.from)*a.options.step;a.updatePosition(a.from+c,a.to+c);v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var c=a.chart.pointer.normalize(b),d=a.to-a.from,f=a.y+a.scrollbarTop,h=a.x+a.scrollbarLeft;a.options.vertical&&c.chartY>f||!a.options.vertical&&c.chartX>h?a.updatePosition(a.from+d,a.to+d):a.updatePosition(a.from-d,a.to-d);
v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a,b){1<b&&(a=r(1-r(b-a)),b=1);0>a&&(b=r(b-a),a=0);this.from=a;this.to=b},update:function(a){this.destroy();this.init(this.chart.renderer,c(!0,this.options,a),this.chart)},addEvents:function(){var a=
this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,c=this.scrollbarGroup.element,d=this.mouseDownHandler,f=this.mouseMoveHandler,k=this.mouseUpHandler,a=[[b[a[0]].element,"click",this.buttonToMinClick],[b[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[c,"mousedown",d],[c.ownerDocument,"mousemove",f],[c.ownerDocument,"mouseup",k]];q&&a.push([c,"touchstart",d],[c.ownerDocument,"touchmove",f],[c.ownerDocument,"touchend",k]);y(a,function(a){G.apply(null,
a)});this._events=a},removeEvents:function(){y(this._events,function(a){p.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();y(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,u(a.scrollbarButtons))}};n(H.prototype,"init",function(a){var b=this;a.apply(b,Array.prototype.slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&
(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new F(b.chart.renderer,b.options.scrollbar,b.chart),G(b.scrollbar,"changed",function(a){var c=Math.min(z(b.options.min,b.min),b.min,b.dataMin),d=Math.max(z(b.options.max,b.max),b.max,b.dataMax)-c,f;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(f=c+d*this.to,c+=d*this.from):(f=c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,f,!0,!1,a)}))});n(H.prototype,"render",function(a){var b=Math.min(z(this.options.min,
this.min),this.min,z(this.dataMin,this.min)),c=Math.max(z(this.options.max,this.max),this.max,z(this.dataMax,this.max)),d=this.scrollbar,h=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(d){this.horiz?(d.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:h+this.axisTitleMargin+this.offset),this.width,this.height),h=1):(d.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?h+this.axisTitleMargin+this.offset:
0),this.top,this.width,this.height),h=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[h]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(b)||isNaN(c)||!f(this.min)||!f(this.max)?d.setRange(0,0):(h=(this.min-b)/(c-b),b=(this.max-b)/(c-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?d.setRange(h,b):d.setRange(1-b,1-h))}});n(H.prototype,"getOffset",function(a){var b=this.horiz?2:1,c=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments,
1));c&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=c.size+c.options.margin)});n(H.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=F})(K);(function(a){function F(a){this.init(a)}var G=a.addEvent,H=a.Axis,r=a.Chart,k=a.defaultOptions,f=a.defined,u=a.destroyObjectProperties,y=a.each,v=a.erase,q=a.error,d=a.extend,c=a.grep,z=a.hasTouch,p=a.isArray,n=a.isNumber,b=a.isObject,l=
a.merge,h=a.pick,E=a.removeEvent,B=a.Scrollbar,t=a.Series,I=a.seriesTypes,w=a.wrap,m=[].concat(a.defaultDataGroupingUnits),D=function(a){var b=c(arguments,n);if(b.length)return Math[a].apply(0,b)};m[4]=["day",[1,2,3,4]];m[5]=["week",[1,2,3]];d(k,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0},series:{type:void 0===I.areaspline?"line":"areaspline",compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,
smoothed:!0,units:m},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,tickPixelInterval:200,labels:{align:"left",x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});
a.Renderer.prototype.symbols["navigator-handle"]=function(a,b,c,d,f){a=f.width/2;b=Math.round(a/3)+.5;f=f.height;return["M",-a-1,.5,"L",a,.5,"L",a,f+.5,"L",-a-1,f+.5,"L",-a-1,.5,"M",-b,4,"L",-b,f-3,"M",b-1,4,"L",b-1,f-3]};F.prototype={drawHandle:function(a,b,c,d){var e=this.navigatorOptions.handles.height;this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(a,10)+.5-e)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+
this.height/2-e/2-1)})},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,f=this.outline.strokeWidth(),g=f/2,f=f%2/2,h=this.outlineHeight,k=this.scrollbarHeight,m=this.size,l=this.left-k,n=this.top;c?(l-=g,c=n+b+f,b=n+a+f,a=["M",l+h,n-k-f,"L",l+h,c,"L",l,c,"L",l,b,"L",l+h,b,"L",l+h,n+m+k].concat(e?["M",l+h,c-g,"L",l+h,b+g]:[])):(a+=l+k-f,b+=l+k-f,n+=g,a=["M",l,n,"L",a,n,"L",a,n+h,"L",b,n+h,"L",b,n,"L",l+m+2*k,n].concat(e?["M",a-g,n,"L",b+g,n]:[]));this.outline[d]({d:a})},drawMasks:function(a,
b,c,d){var e=this.left,f=this.top,g=this.height,h,k,l,m;c?(l=[e,e,e],m=[f,f+a,f+b],k=[g,g,g],h=[a,b-a,this.size-b]):(l=[e,e+a,e+b],m=[f,f,f],k=[a,b-a,this.size-b],h=[g,g,g]);y(this.shades,function(a,b){a[d]({x:l[b],y:m[b],width:k[b],height:h[b]})})},renderElements:function(){var a=this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,f=d.renderer,h;a.navigatorGroup=h=f.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();y([!c,c,!c],function(b,c){a.shades[c]=f.rect().addClass("highcharts-navigator-mask"+
(1===c?"-inside":"-outside")).add(h)});a.outline=f.path().addClass("highcharts-navigator-outline").add(h);b.handles.enabled&&y([0,1],function(c){b.handles.inverted=d.inverted;a.handles[c]=f.symbol(b.handles.symbols[c],-b.handles.width/2-1,0,b.handles.width,b.handles.height,b.handles);a.handles[c].attr({zIndex:7-c}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][c]).add(h)})},update:function(a){y(this.series||[],function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries});
this.destroy();l(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(b,c,d,g){var e=this.chart,k,l,m=this.scrollbarHeight,p,x=this.xAxis;k=x.fake?e.xAxis[0]:x;var t=this.navigatorEnabled,q,w=this.rendered;l=e.inverted;var r,u=e.xAxis[0].minRange,v=e.xAxis[0].options.maxRange;if(!this.hasDragged||f(d)){if(!n(b)||!n(c))if(w)d=0,g=h(x.width,k.width);else return;this.left=h(x.left,e.plotLeft+m+(l?e.plotWidth:0));this.size=q=p=h(x.len,(l?e.plotHeight:e.plotWidth)-2*m);
e=l?m:p+2*m;d=h(d,x.toPixels(b,!0));g=h(g,x.toPixels(c,!0));n(d)&&Infinity!==Math.abs(d)||(d=0,g=e);b=x.toValue(d,!0);c=x.toValue(g,!0);r=Math.abs(a.correctFloat(c-b));r<u?this.grabbedLeft?d=x.toPixels(c-u,!0):this.grabbedRight&&(g=x.toPixels(b+u,!0)):f(v)&&r>v&&(this.grabbedLeft?d=x.toPixels(c-v,!0):this.grabbedRight&&(g=x.toPixels(b+v,!0)));this.zoomedMax=Math.min(Math.max(d,g,0),q);this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,g),0),q);this.range=this.zoomedMax-
this.zoomedMin;q=Math.round(this.zoomedMax);d=Math.round(this.zoomedMin);t&&(this.navigatorGroup.attr({visibility:"visible"}),w=w&&!this.hasDragged?"animate":"attr",this.drawMasks(d,q,l,w),this.drawOutline(d,q,l,w),this.navigatorOptions.handles.enabled&&(this.drawHandle(d,0,l,w),this.drawHandle(q,1,l,w)));this.scrollbar&&(l?(l=this.top-m,k=this.left-m+(t||!k.opposite?0:(k.titleOffset||0)+k.axisTitleMargin),m=p+2*m):(l=this.top+(t?this.height:-m),k=this.left-m),this.scrollbar.position(k,l,e,m),this.scrollbar.setRange(this.zoomedMin/
p,this.zoomedMax/p));this.rendered=!0}},addMouseEvents:function(){var a=this,b=a.chart,c=b.container,d=[],f,h;a.mouseMoveHandler=f=function(b){a.onMouseMove(b)};a.mouseUpHandler=h=function(b){a.onMouseUp(b)};d=a.getPartsEvents("mousedown");d.push(G(c,"mousemove",f),G(c.ownerDocument,"mouseup",h));z&&(d.push(G(c,"touchmove",f),G(c.ownerDocument,"touchend",h)),d.concat(a.getPartsEvents("touchstart")));a.eventsToUnbind=d;a.series&&a.series[0]&&d.push(G(a.series[0].xAxis,"foundExtremes",function(){b.navigator.modifyNavigatorAxisExtremes()}))},
getPartsEvents:function(a){var b=this,c=[];y(["shades","handles"],function(e){y(b[e],function(d,f){c.push(G(d.element,a,function(a){b[e+"Mousedown"](a,f)}))})});return c},shadesMousedown:function(a,b){a=this.chart.pointer.normalize(a);var c=this.chart,e=this.xAxis,d=this.zoomedMin,h=this.left,k=this.size,l=this.range,m=a.chartX,n,p;c.inverted&&(m=a.chartY,h=this.top);1===b?(this.grabbedCenter=m,this.fixedWidth=l,this.dragOffset=m-d):(a=m-h-l/2,0===b?a=Math.max(0,a):2===b&&a+l>=k&&(a=k-l,e.reversed?
(a-=l,p=this.getUnionExtremes().dataMin):n=this.getUnionExtremes().dataMax),a!==d&&(this.fixedWidth=l,b=e.toFixedRange(a,a+l,p,n),f(b.min)&&c.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a);a=this.chart;var c=a.xAxis[0],e=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=e?c.min:c.max):(this.grabbedRight=!0,
this.otherHandlePos=this.zoomedMin,this.fixedExtreme=e?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,e=b.left,d=b.navigatorSize,f=b.range,h=b.dragOffset,k=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,k&&(e=b.top,c=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,c-e,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-e)):b.grabbedCenter&&(b.hasDragged=!0,c<h?c=h:c>d+h-f&&(c=d+h-f),b.render(0,0,
c-h,c-h+f)),b.hasDragged&&b.scrollbar&&b.scrollbar.options.liveRedraw&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))},onMouseUp:function(a){var b=this.chart,c=this.xAxis,e=c&&c.reversed,d=this.scrollbar,h,k,l=a.DOMEvent||a;(!this.hasDragged||d&&d.hasDragged)&&"scrollbar"!==a.trigger||(d=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?h=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(k=this.fixedExtreme),this.zoomedMax===this.size&&(k=e?d.dataMin:d.dataMax),0===
this.zoomedMin&&(h=e?d.dataMax:d.dataMin),c=c.toFixedRange(this.zoomedMin,this.zoomedMax,h,k),f(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:l}));"mousemove"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(y(this.eventsToUnbind,
function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&y(a,function(a){E(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&E(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,c=b.navigator,e=c.enabled,d=b.scrollbar,f=d.enabled,b=e?c.height:0,k=f?d.height:0;this.handles=[];this.shades=[];this.chart=
a;this.setBaseSeries();this.height=b;this.scrollbarHeight=k;this.scrollbarEnabled=f;this.navigatorEnabled=e;this.navigatorOptions=c;this.scrollbarOptions=d;this.outlineHeight=b+k;this.opposite=h(c.opposite,!e&&a.inverted);var m=this,d=m.baseSeries,f=a.xAxis.length,n=a.yAxis.length,p=d&&d[0]&&d[0].xAxis||a.xAxis[0]||{options:{}};a.extraMargin={type:m.opposite?"plotTop":"marginBottom",value:(e||!a.inverted?m.outlineHeight:0)+c.margin};a.inverted&&(a.extraMargin.type=m.opposite?"marginRight":"plotLeft");
a.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis=new H(a,l({breaks:p.options.breaks,ordinal:p.options.ordinal},c.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:f,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[k,0,-k,0],width:b}:{offsets:[0,-k,0,k],height:b})),m.yAxis=new H(a,l(c.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:n,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),d||c.series.data?
m.updateNavigatorSeries(!1):0===a.series.length&&(m.unbindRedraw=G(a,"beforeRedraw",function(){0<a.series.length&&!m.series&&(m.setBaseSeries(),m.unbindRedraw())})),m.renderElements(),m.addMouseEvents()):m.xAxis={translate:function(b,c){var e=a.xAxis[0],d=e.getExtremes(),f=e.len-2*k,g=D("min",e.options.min,d.dataMin),e=D("max",e.options.max,d.dataMax)-g;return c?b*e/f+g:f*(b-g)/e},toPixels:function(a){return this.translate(a)},toValue:function(a){return this.translate(a,!0)},toFixedRange:H.prototype.toFixedRange,
fake:!0};a.options.scrollbar.enabled&&(a.scrollbar=m.scrollbar=new B(a.renderer,l(a.options.scrollbar,{margin:m.navigatorEnabled?0:10,vertical:a.inverted}),a),G(m.scrollbar,"changed",function(b){var c=m.size,e=c*this.to,c=c*this.from;m.hasDragged=m.scrollbar.hasDragged;m.render(0,0,c,e);(a.options.scrollbar.liveRedraw||"mousemove"!==b.DOMType&&"touchmove"!==b.DOMType)&&setTimeout(function(){m.onMouseUp(b)})}));m.addBaseSeriesEvents();m.addChartEvents()},getUnionExtremes:function(a){var b=this.chart.xAxis[0],
c=this.xAxis,e=c.options,d=b.options,f;a&&null===b.dataMin||(f={dataMin:h(e&&e.min,D("min",d.min,b.dataMin,c.dataMin,c.min)),dataMax:h(e&&e.max,D("max",d.max,b.dataMax,c.dataMax,c.max))});return f},setBaseSeries:function(a,b){var c=this.chart,e=this.baseSeries=[];a=a||c.options&&c.options.navigator.baseSeries||0;y(c.series||[],function(b,c){b.options.isInternal||!b.options.showInNavigator&&(c!==a&&b.options.id!==a||!1===b.options.showInNavigator)||e.push(b)});this.xAxis&&!this.xAxis.fake&&this.updateNavigatorSeries(!0,
b)},updateNavigatorSeries:function(b,c){var e=this,f=e.chart,h=e.baseSeries,m,n,t=e.navigatorOptions.series,q,w={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:!1,isInternal:!0,visible:!0},x=e.series=a.grep(e.series||[],function(b){var c=b.baseSeries;return 0>a.inArray(c,h)?(c&&(E(c,"updatedData",e.updatedDataHandler),delete c.navigatorSeries),b.destroy(),!1):!0});h&&h.length&&y(h,function(a){var b=
a.navigatorSeries,g=d({color:a.color},p(t)?k.navigator.series:t);b&&!1===e.navigatorOptions.adaptToUpdatedData||(w.name="Navigator "+h.length,m=a.options||{},q=m.navigatorOptions||{},n=l(m,w,g,q),g=q.data||g.data,e.hasNavigatorData=e.hasNavigatorData||!!g,n.data=g||m.data&&m.data.slice(0),b&&b.options?b.update(n,c):(a.navigatorSeries=f.initSeries(n),a.navigatorSeries.baseSeries=a,x.push(a.navigatorSeries)))});if(t.data&&(!h||!h.length)||p(t))e.hasNavigatorData=!1,t=a.splat(t),y(t,function(a,b){w.name=
"Navigator "+(x.length+1);n=l(k.navigator.series,{color:f.series[b]&&!f.series[b].options.isInternal&&f.series[b].color||f.options.colors[b]||f.options.colors[0]},w,a);n.data=a.data;n.data&&(e.hasNavigatorData=!0,x.push(f.initSeries(n)))});b&&this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var a=this,b=a.baseSeries||[];b[0]&&b[0].xAxis&&G(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);y(b,function(b){G(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,
!1)});G(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&b.xAxis&&G(b,"updatedData",this.updatedDataHandler);G(b,"remove",function(){this.navigatorSeries&&(v(a.series,this.navigatorSeries),f(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},modifyNavigatorAxisExtremes:function(){var a=this.xAxis,b;a.getExtremes&&(!(b=this.getUnionExtremes(!0))||b.dataMin===a.min&&b.dataMax===
a.max||(a.min=b.dataMin,a.max=b.dataMax))},modifyBaseAxisExtremes:function(){var a=this.chart.navigator,b=this.getExtremes(),c=b.dataMin,d=b.dataMax,b=b.max-b.min,f=a.stickToMin,k=a.stickToMax,m=h(this.options.overscroll,0),l,p,t=a.series&&a.series[0],q=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(f&&(p=c,l=p+b),k&&(l=d+m,f||(p=Math.max(l-b,t&&t.xData?t.xData[0]:-Number.MAX_VALUE))),q&&(f||k)&&n(p)&&(this.min=this.userMin=p,this.max=this.userMax=l));a.stickToMin=
a.stickToMax=null},updatedDataHandler:function(){var a=this.chart.navigator,b=this.navigatorSeries;a.stickToMax=a.xAxis.reversed?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=n(this.xAxis.min)&&this.xAxis.min<=this.xData[0]&&(!this.chart.fixedRange||!a.stickToMax);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){G(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&&
a.baseSeries[0]&&a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(v(this.chart.xAxis,this.xAxis),v(this.chart.axes,this.xAxis));this.yAxis&&(v(this.chart.yAxis,this.yAxis),v(this.chart.axes,this.yAxis));y(this.series||[],function(a){a.destroy&&a.destroy()});y("series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "),function(a){this[a]&&this[a].destroy&&
this[a].destroy();this[a]=null},this);y([this.handles],function(a){u(a)},this)}};a.Navigator=F;w(H.prototype,"zoom",function(a,b,c){var e=this.chart,d=e.options,h=d.chart.zoomType,k=d.chart.pinchType,m=d.navigator,d=d.rangeSelector,l;this.isXAxis&&(m&&m.enabled||d&&d.enabled)&&("x"===h||"x"===k?e.resetZoomButton="blocked":"y"===h?l=!1:"xy"!==h&&"xy"!==k||!this.options.range||(e=this.previousZoom,f(b)?this.previousZoom=[this.min,this.max]:e&&(b=e[0],c=e[1],delete this.previousZoom)));return void 0!==
l?l:a.call(this,b,c)});G(r,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new F(this)});G(r,"afterSetChartSize",function(){var a=this.legend,b=this.navigator,c,d,f,k;b&&(d=a&&a.options,f=b.xAxis,k=b.yAxis,c=b.scrollbarHeight,this.inverted?(b.left=b.opposite?this.chartWidth-c-b.height:this.spacing[3]+c,b.top=this.plotTop+c):(b.left=this.plotLeft+c,b.top=b.navigatorOptions.top||this.chartHeight-b.height-c-this.spacing[2]-(this.rangeSelector&&
this.extraBottomMargin?this.rangeSelector.getHeight():0)-(d&&"bottom"===d.verticalAlign&&d.enabled&&!d.floating?a.legendHeight+h(d.margin,10):0)),f&&k&&(this.inverted?f.options.left=k.options.left=b.left:f.options.top=k.options.top=b.top,f.setAxisSize(),k.setAxisSize()))});w(t.prototype,"addPoint",function(a,c,d,f,h){var e=this.options.turboThreshold;e&&this.xData.length>e&&b(c,!0)&&this.chart.navigator&&q(20,!0);a.call(this,c,d,f,h)});G(r,"afterAddSeries",function(){this.navigator&&this.navigator.setBaseSeries(null,
!1)});G(t,"afterUpdate",function(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)});r.prototype.callbacks.push(function(a){var b=a.navigator;b&&a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(K);(function(a){function F(a){this.init(a)}var G=a.addEvent,H=a.Axis,r=a.Chart,k=a.css,f=a.createElement,u=a.defaultOptions,y=a.defined,v=a.destroyObjectProperties,q=a.discardElement,d=a.each,c=a.extend,z=a.fireEvent,p=a.isNumber,n=a.merge,b=a.pick,
l=a.pInt,h=a.splat,E=a.wrap;c(u,{rangeSelector:{verticalAlign:"top",buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:"right",x:0,y:0},buttonPosition:{align:"left",x:0,y:0}}});u.lang=n(u.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});F.prototype={clickButton:function(a,c){var f=this,k=f.chart,m=f.buttonOptions[a],l=k.xAxis[0],e=k.scroller&&k.scroller.getUnionExtremes()||l||{},n=e.dataMin,t=e.dataMax,
g,q=l&&Math.round(Math.min(l.max,b(t,l.max))),r=m.type,u,e=m._range,v,B,y,z=m.dataGrouping;if(null!==n&&null!==t){k.fixedRange=e;z&&(this.forcedDataGrouping=!0,H.prototype.setDataGrouping.call(l||{chart:this.chart},z,!1));if("month"===r||"year"===r)l?(r={range:m,max:q,chart:k,dataMin:n,dataMax:t},g=l.minFromRange.call(r),p(r.newMax)&&(q=r.newMax)):e=m;else if(e)g=Math.max(q-e,n),q=Math.min(g+e,t);else if("ytd"===r)if(l)void 0===t&&(n=Number.MAX_VALUE,t=Number.MIN_VALUE,d(k.series,function(a){a=a.xData;
n=Math.min(a[0],n);t=Math.max(a[a.length-1],t)}),c=!1),q=f.getYTDExtremes(t,n,k.time.useUTC),g=v=q.min,q=q.max;else{G(k,"beforeRender",function(){f.clickButton(a)});return}else"all"===r&&l&&(g=n,q=t);g+=m._offsetMin;q+=m._offsetMax;f.setSelected(a);l?l.setExtremes(g,q,b(c,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:m}):(u=h(k.options.xAxis)[0],y=u.range,u.range=e,B=u.min,u.min=v,G(k,"load",function(){u.range=y;u.min=B}))}},setSelected:function(a){this.selected=this.options.selected=
a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,f=c.buttons||[].concat(b.defaultButtons),h=c.selected,k=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&z(a,"blur");c&&c.blur&&z(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=f;this.unMouseDown=G(a.container,
"mousedown",k);this.unResize=G(a,"resize",k);d(f,b.computeButtonRange);void 0!==h&&f[h]&&this.clickButton(h,!1);G(a,"load",function(){a.xAxis&&a.xAxis[0]&&G(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&&b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),f=!b.hasVisibleSeries,h=a.scroller&&a.scroller.getUnionExtremes()||b,k=
h.dataMin,e=h.dataMax,a=this.getYTDExtremes(e,k,a.time.useUTC),l=a.min,n=a.max,g=this.selected,q=p(g),r=this.options.allButtonsEnabled,u=this.buttons;d(this.buttonOptions,function(a,d){var h=a._range,m=a.type,p=a.count||1,t=u[d],w=0;a=a._offsetMax-a._offsetMin;d=d===g;var x=h>e-k,v=h<b.minRange,A=!1,B=!1,h=h===c;("month"===m||"year"===m)&&c+36E5>=864E5*{month:28,year:365}[m]*p-a&&c-36E5<=864E5*{month:31,year:366}[m]*p+a?h=!0:"ytd"===m?(h=n-l+a===c,A=!d):"all"===m&&(h=b.max-b.min>=e-k,B=!d&&q&&h);
m=!r&&(x||v||B||f);p=d&&h||h&&!q&&!A;m?w=3:p&&(q=!0,w=2);t.state!==w&&t.setState(w)})},computeButtonRange:function(a){var c=a.type,d=a.count||1,f={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(f[c])a._range=f[c]*d;else if("month"===c||"year"===c)a._range=864E5*{month:30,year:365}[c]*d;a._offsetMin=b(a.offsetMin,0);a._offsetMax=b(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this.chart.time,f=this[a+
"Input"];y(b)&&(f.previousValue=f.HCTime,f.HCTime=b);f.value=d.dateFormat(c.inputEditDateFormat||"%Y-%m-%d",f.HCTime);this[a+"DateBox"].attr({text:d.dateFormat(c.inputDateFormat||"%b %e, %Y",f.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];k(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){k(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)},
drawInput:function(a){function b(){var a=q.value,b=(k.inputDateParser||Date.parse)(a),e=d.xAxis[0],f=d.scroller&&d.scroller.xAxis?d.scroller.xAxis:e,g=f.dataMin,f=f.dataMax;b!==q.previousValue&&(q.previousValue=b,p(b)||(b=a.split("-"),b=Date.UTC(l(b[0]),l(b[1])-1,l(b[2]))),p(b)&&(d.time.useUTC||(b+=6E4*(new Date).getTimezoneOffset()),n?b>c.maxInput.HCTime?b=void 0:b<g&&(b=g):b<c.minInput.HCTime?b=void 0:b>f&&(b=f),void 0!==b&&e.setExtremes(n?b:e.min,n?e.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))}
var c=this,d=c.chart,h=d.renderer,k=d.options.rangeSelector,e=c.div,n="min"===a,q,g,r=this.inputGroup;this[a+"Label"]=g=h.label(u.lang[n?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(r);r.offset+=g.width+5;this[a+"DateBox"]=h=h.label("",r.offset).addClass("highcharts-range-input").attr({padding:2,width:k.inputBoxWidth||90,height:k.inputBoxHeight||17,stroke:k.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click",
function(){c.showInput(a);c[a+"Input"].focus()}).add(r);r.offset+=h.width+(n?10:0);this[a+"Input"]=q=f("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:d.plotTop+"px"},e);q.onfocus=function(){c.showInput(a)};q.onblur=function(){c.hideInput(a)};q.onchange=b;q.onkeypress=function(a){13===a.keyCode&&b()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a="top"===b.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+b.buttonPosition.y,inputTop:a+b.inputPosition.y-
10}},getYTDExtremes:function(a,b,c){var d=this.chart.time,f=new d.Date(a),h=d.get("FullYear",f);c=c?d.Date.UTC(h,0,1):+new d.Date(h,0,1);b=Math.max(b||0,c);f=f.getTime();return{max:Math.min(a||f,f),min:b}},render:function(a,c){var h=this,k=h.chart,l=k.renderer,n=k.container,e=k.options,p=e.exporting&&!1!==e.exporting.enabled&&e.navigation&&e.navigation.buttonOptions,q=u.lang,g=h.div,t=e.rangeSelector,e=t.floating,r=h.buttons,g=h.inputGroup,v=t.buttonTheme,y=t.buttonPosition,z=t.inputPosition,B=t.inputEnabled,
E=v&&v.states,F=k.plotLeft,G,H=h.buttonGroup,K;K=h.rendered;var Y=h.options.verticalAlign,Z=k.legend,aa=Z&&Z.options,ba=y.y,Q=z.y,ca=K||!1,W=0,S=0,T;if(!1!==t.enabled){K||(h.group=K=l.g("range-selector-group").attr({zIndex:7}).add(),h.buttonGroup=H=l.g("range-selector-buttons").add(K),h.zoomText=l.text(q.rangeSelectorZoom,b(F+y.x,F),15).css(t.labelStyle).add(H),G=b(F+y.x,F)+h.zoomText.getBBox().width+5,d(h.buttonOptions,function(a,c){r[c]=l.button(a.text,G,0,function(){var b=a.events&&a.events.click,
e;b&&(e=b.call(a));!1!==e&&h.clickButton(c);h.isActive=!0},v,E&&E.hover,E&&E.select,E&&E.disabled).attr({"text-align":"center"}).add(H);G+=r[c].width+b(t.buttonSpacing,5)}),!1!==B&&(h.div=g=f("div",null,{position:"relative",height:0,zIndex:1}),n.parentNode.insertBefore(g,n),h.inputGroup=g=l.g("input-group").add(K),g.offset=0,h.drawInput("min"),h.drawInput("max")));F=k.plotLeft-k.spacing[3];h.updateButtonStates();p&&this.titleCollision(k)&&"top"===Y&&"right"===y.align&&y.y+H.getBBox().height-12<(p.y||
0)+p.height&&(W=-40);"left"===y.align?T=y.x-k.spacing[3]:"right"===y.align&&(T=y.x+W-k.spacing[1]);H.align({y:y.y,width:H.getBBox().width,align:y.align,x:T},!0,k.spacingBox);h.group.placed=ca;h.buttonGroup.placed=ca;!1!==B&&(W=p&&this.titleCollision(k)&&"top"===Y&&"right"===z.align&&z.y-g.getBBox().height-12<(p.y||0)+p.height+k.spacing[0]?-40:0,"left"===z.align?T=F:"right"===z.align&&(T=-Math.max(k.axisOffset[1],-W)),g.align({y:z.y,width:g.getBBox().width,align:z.align,x:z.x+T-2},!0,k.spacingBox),
n=g.alignAttr.translateX+g.alignOptions.x-W+g.getBBox().x+2,p=g.alignOptions.width,q=H.alignAttr.translateX+H.getBBox().x,T=H.getBBox().width+20,(z.align===y.align||q+T>n&&n+p>q&&ba<Q+g.getBBox().height)&&g.attr({translateX:g.alignAttr.translateX+(k.axisOffset[1]>=-W?0:-W),translateY:g.alignAttr.translateY+H.getBBox().height+10}),h.setInputValue("min",a),h.setInputValue("max",c),h.inputGroup.placed=ca);h.group.align({verticalAlign:Y},!0,k.spacingBox);a=h.group.getBBox().height+20;c=h.group.alignAttr.translateY;
"bottom"===Y&&(Z=aa&&"bottom"===aa.verticalAlign&&aa.enabled&&!aa.floating?Z.legendHeight+b(aa.margin,10):0,a=a+Z-20,S=c-a-(e?0:t.y)-10);if("top"===Y)e&&(S=0),k.titleOffset&&(S=k.titleOffset+k.options.title.margin),S+=k.margin[0]-k.spacing[0]||0;else if("middle"===Y)if(Q===ba)S=0>Q?c+void 0:c;else if(Q||ba)S=0>Q||0>ba?S-Math.min(Q,ba):c-a+NaN;h.group.translate(t.x,t.y+Math.floor(S));!1!==B&&(h.minInput.style.marginTop=h.group.translateY+"px",h.maxInput.style.marginTop=h.group.translateY+"px");h.rendered=
!0}},getHeight:function(){var a=this.options,b=this.group,c=a.y,d=a.buttonPosition.y,a=a.inputPosition.y,b=b?b.getBBox(!0).height+13+c:0,c=Math.min(a,d);if(0>a&&0>d||0<a&&0<d)b+=Math.abs(c);return b},titleCollision:function(a){return!(a.options.title.text||a.options.subtitle.text)},update:function(a){var b=this.chart;n(!0,b.options.rangeSelector,a);this.destroy();this.init(b);b.rangeSelector.render()},destroy:function(){var b=this,c=b.minInput,d=b.maxInput;b.unMouseDown();b.unResize();v(b.buttons);
c&&(c.onfocus=c.onblur=c.onchange=null);d&&(d.onfocus=d.onblur=d.onchange=null);a.objectEach(b,function(a,c){a&&"chart"!==c&&(a.destroy?a.destroy():a.nodeType&&q(this[c]));a!==F.prototype[c]&&(b[c]=null)},this)}};H.prototype.toFixedRange=function(a,c,d,f){var h=this.chart&&this.chart.fixedRange;a=b(d,this.translate(a,!0,!this.horiz));c=b(f,this.translate(c,!0,!this.horiz));d=h&&(c-a)/h;.7<d&&1.3>d&&(f?a=c-h:c=a+h);p(a)&&p(c)||(a=c=void 0);return{min:a,max:c}};H.prototype.minFromRange=function(){var a=
this.range,c={month:"Month",year:"FullYear"}[a.type],d,f=this.max,h,k,e=function(a,b){var e=new Date(a),d=e["get"+c]();e["set"+c](d+b);d===e["get"+c]()&&e.setDate(0);return e.getTime()-a};p(a)?(d=f-a,k=a):(d=f+e(f,-a.count),this.chart&&(this.chart.fixedRange=f-d));h=b(this.dataMin,Number.MIN_VALUE);p(d)||(d=h);d<=h&&(d=h,void 0===k&&(k=e(d,a.count)),this.newMax=Math.min(d+k,this.dataMax));p(f)||(d=void 0);return d};G(r,"afterGetContainer",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=
new F(this))});E(r.prototype,"render",function(a,b,c){var f=this.axes,h=this.rangeSelector;h&&(d(f,function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),h.render(),f=h.options.verticalAlign,h.options.floating||("bottom"===f?this.extraBottomMargin=!0:"middle"!==f&&(this.extraTopMargin=!0)));a.call(this,b,c)});G(r,"update",function(a){var b=a.options;a=this.rangeSelector;this.extraTopMargin=this.extraBottomMargin=!1;this.isDirtyBox=!0;a&&(a.render(),b=b.rangeSelector&&b.rangeSelector.verticalAlign||
a.options&&a.options.verticalAlign,a.options.floating||("bottom"===b?this.extraBottomMargin=!0:"middle"!==b&&(this.extraTopMargin=!0)))});E(r.prototype,"redraw",function(a,b,c){var d=this.rangeSelector;d&&!d.options.floating&&(d.render(),d=d.options.verticalAlign,"bottom"===d?this.extraBottomMargin=!0:"middle"!==d&&(this.extraTopMargin=!0));a.call(this,b,c)});r.prototype.adjustPlotArea=function(){var a=this.rangeSelector;this.rangeSelector&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+=a),
this.extraBottomMargin&&(this.marginBottom+=a))};r.prototype.callbacks.push(function(a){function b(){c=a.xAxis[0].getExtremes();p(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,f,h;d&&(h=G(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),f=G(a,"redraw",b),b());G(a,"destroy",function(){d&&(f(),h())})});a.RangeSelector=F})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.arrayMin,r=a.Axis,k=a.Chart,f=a.defined,u=a.each,y=a.format,v=a.grep,q=a.inArray,d=a.isNumber,c=a.isString,
z=a.map,p=a.merge,n=a.pick,b=a.Point,l=a.Series,h=a.splat,E=a.SVGRenderer,B=a.wrap,t=l.prototype,I=t.init,w=t.processData,m=b.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,e,d){var f=c(b)||b.nodeName,g=arguments[f?1:0],l=g.series,m=a.getOptions(),q,r=n(g.navigator&&g.navigator.enabled,m.navigator.enabled,!0),t=r?{startOnTick:!1,endOnTick:!1}:null,u={marker:{enabled:!1,radius:2}},v={shadow:!1,borderWidth:0};g.xAxis=z(h(g.xAxis||{}),function(a,b){return p({minPadding:0,maxPadding:0,
overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},m.xAxis,m.xAxis&&m.xAxis[b],a,{type:"datetime",categories:null},t)});g.yAxis=z(h(g.yAxis||{}),function(a,b){q=n(a.opposite,!0);return p({labels:{y:-2},opposite:q,showLastLabel:!(!a.categories&&"category"!==a.type),title:{text:null}},m.yAxis,m.yAxis&&m.yAxis[b],a)});g.series=null;g=p({chart:{panning:!0,pinchType:"x"},navigator:{enabled:r},scrollbar:{enabled:n(m.scrollbar.enabled,!0)},rangeSelector:{enabled:n(m.rangeSelector.enabled,
!0)},title:{text:null},tooltip:{split:n(m.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1},plotOptions:{line:u,spline:u,area:u,areaspline:u,arearange:u,areasplinerange:u,column:v,columnrange:v,candlestick:v,ohlc:v}},g,{isStock:!0});g.series=l;return f?new k(b,g,d):new k(g,e)};B(r.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?
(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=this,"right"):a.apply(this,[].slice.call(arguments,1))});F(r,"destroy",function(){var a=this.chart,b=this.options&&this.options.top+","+this.options.height;b&&a._labelPanes&&a._labelPanes[b]===this&&delete a._labelPanes[b]});B(r.prototype,"getPlotLinePath",function(b,e,h,k,g,l){var m=this,p=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=m.chart,t=r.renderer,v=m.left,w=m.top,x,y,D,B,C=[],E=[],F,G;if("xAxis"!==m.coll&&"yAxis"!==
m.coll)return b.apply(this,[].slice.call(arguments,1));E=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=m.options[b];return d(a)?[r[b][a]]:c(a)?[r.get(a)]:z(p,function(a){return a[b]})}(m.coll);u(m.isXAxis?r.yAxis:r.xAxis,function(a){if(f(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=f(a.options[b])?r[b][a.options[b]]:r[b][0];m===b&&E.push(a)}});F=E.length?[]:[m.isXAxis?r.yAxis[0]:r.xAxis[0]];u(E,function(b){-1!==q(b,F)||a.find(F,function(a){return a.pos===
b.pos&&a.len&&b.len})||F.push(b)});G=n(l,m.translate(e,null,null,k));d(G)&&(m.horiz?u(F,function(a){var b;y=a.pos;B=y+a.len;x=D=Math.round(G+m.transB);if(x<v||x>v+m.width)g?x=D=Math.min(Math.max(v,x),v+m.width):b=!0;b||C.push("M",x,y,"L",D,B)}):u(F,function(a){var b;x=a.pos;D=x+a.len;y=B=Math.round(w+m.height-G);if(y<w||y>w+m.height)g?y=B=Math.min(Math.max(w,y),m.top+m.height):b=!0;b||C.push("M",x,y,"L",D,B)}));return 0<C.length?t.crispPolyLine(C,h||1):null});E.prototype.crispPolyLine=function(a,
b){var c;for(c=0;c<a.length;c+=6)a[c+1]===a[c+4]&&(a[c+1]=a[c+4]=Math.round(a[c+1])-b%2/2),a[c+2]===a[c+5]&&(a[c+2]=a[c+5]=Math.round(a[c+2])+b%2/2);return a};B(r.prototype,"hideCrosshair",function(a,b){a.call(this,b);this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});F(r,"afterDrawCrosshair",function(a){var b,c;if(f(this.crosshair.label)&&this.crosshair.label.enabled&&this.cross){var d=this.chart,g=this.options.crosshair.label,h=this.horiz;b=this.opposite;c=this.left;var k=this.top,l=this.crossLabel,
m=g.format,p="",q="inside"===this.options.tickPosition,r=!1!==this.crosshair.snap,t=0,u=a.e||this.cross&&this.cross.e,v=a.point;a=h?"center":b?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";l||(l=this.crossLabel=d.renderer.label(null,null,null,g.shape||"callout").addClass("highcharts-crosshair-label"+(this.series[0]&&" highcharts-color-"+this.series[0].colorIndex)).attr({align:g.align||a,padding:n(g.padding,8),r:n(g.borderRadius,3),zIndex:2}).add(this.labelGroup));
h?(a=r?v.plotX+c:u.chartX,k+=b?0:this.height):(a=b?this.width+c:0,k=r?v.plotY+k:u.chartY);m||g.formatter||(this.isDatetimeAxis&&(p="%b %d, %Y"),m="{value"+(p?":"+p:"")+"}");p=r?v[this.isXAxis?"x":"y"]:this.toValue(h?u.chartX:u.chartY);l.attr({text:m?y(m,{value:p},d.time):g.formatter.call(this,p),x:a,y:k,visibility:p<this.min||p>this.max?"hidden":"visible"});g=l.getBBox();if(h){if(q&&!b||!q&&b)k=l.y-g.height}else k=l.y-g.height/2;h?(b=c-g.x,c=c+this.width-g.x):(b="left"===this.labelAlign?c:0,c="right"===
this.labelAlign?c+this.width:d.chartWidth);l.translateX<b&&(t=b-l.translateX);l.translateX+g.width>=c&&(t=-(l.translateX+g.width-c));l.attr({x:a+t,y:k,anchorX:h?a:this.opposite?0:d.chartWidth,anchorY:h?this.opposite?d.chartHeight:0:k+g.height/2})}});t.init=function(){I.apply(this,arguments);this.setCompare(this.options.compare)};t.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var e=this.compareValue;if(void 0!==b&&void 0!==e)return b="value"===a?b-e:b/e*100-(100===
this.options.compareBase?0:100),c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};t.processData=function(){var a,b=-1,c,f,g=!0===this.options.compareStart?0:1,h,k;w.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,f=this.processedYData,h=f.length,this.pointArrayMap&&(b=q("close",this.pointArrayMap),-1===b&&(b=q(this.pointValKey||"y",this.pointArrayMap))),a=0;a<h-g;a++)if(k=f[a]&&-1<b?f[a][b]:f[a],d(k)&&c[a+g]>=this.xAxis.min&&
0!==k){this.compareValue=k;break}};B(t,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=H(b),this.dataMax=G(b))});r.prototype.setCompare=function(a,b){this.isXAxis||(u(this.series,function(b){b.setCompare(a)}),n(b,!0)&&this.chart.redraw())};b.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0<this.change?"+":"")+a.numberFormat(this.change,n(this.series.tooltipOptions.changeDecimals,
2)));return m.apply(this,[b])};B(l.prototype,"render",function(a){this.chart.is3d&&this.chart.is3d()||this.chart.polar||!this.xAxis||this.xAxis.isRadial||(!this.clipBox&&this.animate?(this.clipBox=p(this.chart.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len):this.chart[this.sharedClipKey]?this.chart[this.sharedClipKey].attr({width:this.xAxis.len,height:this.yAxis.len}):this.clipBox&&(this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len));a.call(this)});
B(k.prototype,"getSelectedPoints",function(a){var b=a.call(this);u(this.series,function(a){a.hasGroupedData&&(b=b.concat(v(a.points||[],function(a){return a.selected})))});return b});F(k,"update",function(a){a=a.options;"scrollbar"in a&&this.navigator&&(p(!0,this.options.scrollbar,a.scrollbar),this.navigator.update({},!1),delete a.scrollbar)})})(K);return K});