/* Highmaps JS v5.0.7 (2017-01-17) (c) 2011-2016 Torstein Honsi License: www.highcharts.com/license */ (function(J,a){"object"===typeof module&&module.exports?module.exports=J.document?a(J):a:J.Highcharts=a(J)})("undefined"!==typeof window?window:this,function(J){J=function(){var a=window,w=a.document,A=a.navigator&&a.navigator.userAgent||"",y=w&&w.createElementNS&&!!w.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,x=/(edge|msie|trident)/i.test(A)&&!window.opera,g=!y,h=/Firefox/.test(A),r=h&&4>parseInt(A.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highmaps", version:"5.0.7",deg2rad:2*Math.PI/360,doc:w,hasBidiBug:r,hasTouch:w&&void 0!==w.documentElement.ontouchstart,isMS:x,isWebKit:/AppleWebKit/.test(A),isFirefox:h,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(A),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:y,vml:g,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var w=[],A=a.charts,y=a.doc,x=a.win;a.error=function(g,h){g=a.isNumber(g)?"Highcharts error #"+ g+": www.highcharts.com/errors/"+g:g;if(h)throw Error(g);x.console&&console.log(g)};a.Fx=function(a,h,r){this.options=h;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],h=this.paths[1],r=[],n=this.now,l=a.length,e;if(1===n)r=this.toD;else if(l===h.length&&1>n)for(;l--;)e=parseFloat(a[l]),r[l]=isNaN(e)?a[l]:n*parseFloat(h[l]-e)+e;else r=h;this.elem.attr("d",r,null,!0)},update:function(){var a=this.elem,h=this.prop,r=this.now,n=this.options.step;if(this[h+"Setter"])this[h+ "Setter"]();else a.attr?a.element&&a.attr(h,r,null,!0):a.style[h]=r+this.unit;n&&n.call(a,r,this)},run:function(a,h,r){var g=this,l=function(a){return l.stopped?!1:g.step(a)},e;this.startTime=+new Date;this.start=a;this.end=h;this.unit=r;this.now=this.start;this.pos=0;l.elem=this.elem;l.prop=this.prop;l()&&1===w.push(l)&&(l.timerId=setInterval(function(){for(e=0;e=e+this.startTime){this.now=this.end;this.pos=1;this.update();a=d[this.prop]=!0;for(q in d)!0!==d[q]&&(a=!1);a&&l&&l.call(r);r=!1}else this.pos=n.easing((g-this.startTime)/e),this.now=this.start+(this.end-this.start)*this.pos,this.update(),r=!0;return r},initPath:function(g,h,r){function n(a){var b,k;for(p=a.length;p--;)b="M"===a[p]||"L"===a[p],k=/[a-zA-Z]/.test(a[p+3]),b&&k&&a.splice(p+1,0,a[p+1],a[p+2],a[p+1],a[p+ 2])}function l(a,f){for(;a.lengthd?"AM":"PM",P:12>d?"am":"pm",S:I(l.getSeconds()),L:I(Math.round(h% 1E3),3)},a.dateFormats);for(e in n)for(;-1!==g.indexOf("%"+e);)g=g.replace("%"+e,"function"===typeof n[e]?n[e](h):n[e]);return r?g.substr(0,1).toUpperCase()+g.substr(1):g};a.formatSingle=function(g,h){var r=/\.([0-9])/,n=a.defaultOptions.lang;/f$/.test(g)?(r=(r=g.match(r))?r[1]:-1,null!==h&&(h=a.numberFormat(h,r,n.decimalPoint,-1=r&&(h=[1/r]))); for(n=0;n=g||!l&&e<=(h[n]+(h[n+1]||h[n]))/2);n++);return d=a.correctFloat(d*r,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,h){var g=a.length,n,l;for(l=0;lg&&(g=a[h]);return g};a.destroyObjectProperties= function(a,h){for(var g in a)a[g]&&a[g]!==h&&a[g].destroy&&a[g].destroy(),delete a[g]};a.discardElement=function(g){var h=a.garbageBin;h||(h=a.createElement("div"));g&&h.appendChild(g);h.innerHTML=""};a.correctFloat=function(a,h){return parseFloat(a.toPrecision(h||14))};a.setAnimation=function(g,h){h.renderer.globalAnimation=a.pick(g,h.options.chart.animation,!0)};a.animObject=function(g){return a.isObject(g)?a.merge(g):{duration:g?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5, day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(g,h,r,n){g=+g||0;h=+h;var l=a.defaultOptions.lang,e=(g.toString().split(".")[1]||"").length,d,q;-1===h?h=Math.min(e,20):a.isNumber(h)||(h=2);q=(Math.abs(g)+Math.pow(10,-Math.max(h,e)-1)).toFixed(h);e=String(a.pInt(q));d=3g?"-":"")+(d?e.substr(0,d)+n:"");g+=e.substr(d).replace(/(\d{3})(?=\d)/g,"$1"+n);h&&(g+=r+q.slice(-h));return g};Math.easeInOutSine= function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(g,h){return"width"===h?Math.min(g.offsetWidth,g.scrollWidth)-a.getStyle(g,"padding-left")-a.getStyle(g,"padding-right"):"height"===h?Math.min(g.offsetHeight,g.scrollHeight)-a.getStyle(g,"padding-top")-a.getStyle(g,"padding-bottom"):(g=x.getComputedStyle(g,void 0))&&a.pInt(g.getPropertyValue(h))};a.inArray=function(a,h){return h.indexOf?h.indexOf(a):[].indexOf.call(h,a)};a.grep=function(a,h){return[].filter.call(a,h)};a.find=function(a, h){return[].find.call(a,h)};a.map=function(a,h){for(var g=[],n=0,l=a.length;nh;h++)n[h]+=g(255*a),0>n[h]&&(n[h]=0),255m.width)m={width:0,height:0}}else m=this.htmlGetBBox();u.isSVG&&(a=m.width,u=m.height,p&&"11px"===p.fontSize&&17===Math.round(u)&&(m.height=u=14),b&&(m.width=Math.abs(u*Math.sin(f))+Math.abs(a*Math.cos(f)),m.height=Math.abs(u*Math.cos(f))+Math.abs(a*Math.sin(f))));if(l&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,b,m){"string"===typeof a?m.setAttribute(b, a):a&&this.colorGradient(a,b,m)},visibilitySetter:function(a,b,m){"inherit"===a?m.removeAttribute(b):m.setAttribute(b,a)},zIndexSetter:function(a,b){var u=this.renderer,f=this.parentGroup,c=(f||u).element||u.box,k,p=this.element,d;k=this.added;var E;e(a)&&(p.zIndex=a,a=+a,this[b]===a&&(k=!1),this[b]=a);if(k){(a=this.zIndex)&&f&&(f.handleZ=!0);b=c.childNodes;for(E=0;Ea||!e(a)&&e(k)||0>a&&!e(k)&&c!==u.box)&&(c.insertBefore(p,f),d=!0);d||c.appendChild(p)}return d}, _defaultSetter:function(a,b,m){m.setAttribute(b,a)}};w.prototype.yGetter=w.prototype.xGetter;w.prototype.translateXSetter=w.prototype.translateYSetter=w.prototype.rotationSetter=w.prototype.verticalAlignSetter=w.prototype.scaleXSetter=w.prototype.scaleYSetter=function(a,b){this[b]=a;this.doTransform=!0};A=a.SVGRenderer=function(){this.init.apply(this,arguments)};A.prototype={Element:w,SVG_NS:Q,init:function(a,b,m,u,f,k){var c;u=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}); c=u.element;a.appendChild(c);-1===a.innerHTML.indexOf("xmlns")&&g(c,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=c;this.boxWrapper=u;this.alignedObjects=[];this.url=(H||z)&&B.getElementsByTagName("base").length?P.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(B.createTextNode("Created with Highmaps 5.0.7"));this.defs=this.createElement("defs").add();this.allowHTML=k;this.forExport=f;this.gradients= {};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,m,!1);var p;H&&a.getBoundingClientRect&&(b=function(){n(a,{left:0,top:0});p=a.getBoundingClientRect();n(a,{left:Math.ceil(p.left)-p.left+"px",top:Math.ceil(p.top)-p.top+"px"})},b(),this.unSubPixelFix=y(P,"resize",b))},definition:function(a){function b(a,u){var f;t(M(a),function(a){var c=m.createElement(a.tagName),k,p={};for(k in a)"tagName"!==k&&"children"!==k&&"textContent"!==k&&(p[k]=a[k]);c.attr(p);c.add(u||m.defs);a.textContent&& c.element.appendChild(B.createTextNode(a.textContent));b(a.children||[],c);f=c});return f}var m=this;return b(a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();q(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:L,getRadialAttr:function(a, b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},buildText:function(a){var b=a.element,u=this,c=u.forExport,k=F(a.textStr,"").toString(),p=-1!==k.indexOf("\x3c"),e=b.childNodes,d,v,q,h,l=g(b,"x"),E=a.styles,C=a.textWidth,z=E&&E.lineHeight,K=E&&E.textOutline,M=E&&"ellipsis"===E.textOverflow,O=E&&"nowrap"===E.whiteSpace,D=e.length,H=C&&!a.added&&this.box,r=function(a){return z?m(z):u.fontMetrics(void 0,a.getAttribute("style")?a:b).h},E=[k,M,O,z,K,E&&E.fontSize,C].join();if(E!== a.textCache){for(a.textCache=E;D--;)b.removeChild(e[D]);p||K||M||C||-1!==k.indexOf(" ")?(d=/<.*class="([^"]+)".*>/,v=/<.*style="([^"]+)".*>/,q=/<.*href="(http[^"]+)".*>/,H&&H.appendChild(b),k=p?k.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[k],k=f(k,function(a){return""!==a}),t(k,function(m,k){var f,p=0;m=m.replace(/^\s+|\s+$/g, "").replace(//g,"\x3c/span\x3e|||");f=m.split("|||");t(f,function(m){if(""!==m||1===f.length){var e={},E=B.createElementNS(u.SVG_NS,"tspan"),t,z;d.test(m)&&(t=m.match(d)[1],g(E,"class",t));v.test(m)&&(z=m.match(v)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),g(E,"style",z));q.test(m)&&!c&&(g(E,"onclick",'location.href\x3d"'+m.match(q)[1]+'"'),n(E,{cursor:"pointer"}));m=(m.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!== m){E.appendChild(B.createTextNode(m));p?e.dx=0:k&&null!==l&&(e.x=l);g(E,e);b.appendChild(E);!p&&k&&(!R&&c&&n(E,{display:"block"}),g(E,"dy",r(E)));if(C){e=m.replace(/([^\^])-/g,"$1- ").split(" ");t=1C,void 0===h&&(h=K),M&&h?(L/=2,""===N||!K&&.5>L?e=[]:(N=m.substring(0,N.length+(K? -1:1)*Math.ceil(L)),e=[N+(3C&&(C=D)),e.length&&E.appendChild(B.createTextNode(e.join(" ").replace(/- /g,"-")));a.rotation=F}p++}}})}),h&&a.attr("title",a.textStr),H&&H.removeChild(b),K&&a.applyTextOutline&&a.applyTextOutline(K)):b.appendChild(B.createTextNode(k.replace(/</g,"\x3c").replace(/>/g, "\x3e")))}},getContrast:function(a){a=r(a).rgba;return 510m?f>b+c&&fp?f>b+c&&fu&&p>a+c&&pf&&p>a+c&&pa?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,b,m){var u=a;b&&m&&(u=Math.max(u*Math.cos(b*d),4));return{x:-a/3*Math.sin(b*d),y:u}},label:function(a,b,m,f,k,p,d,v,q){var h=this,l=h.g("button"!== q&&"label"),g=l.text=h.text("",0,0,d).attr({zIndex:1}),z,n,K=0,M=3,D=0,H,O,r,G,F,L={},I,B=/^url\((.*?)\)$/.test(f),E=B,P,R,N,Q;q&&l.addClass("highcharts-"+q);E=!0;P=function(){return z.strokeWidth()%2/2};R=function(){var a=g.element.style,b={};n=(void 0===H||void 0===O||F)&&e(g.textStr)&&g.getBBox();l.width=(H||n.width||0)+2*M+D;l.height=(O||n.height||0)+2*M;I=M+h.fontMetrics(a&&a.fontSize,g).b;E&&(z||(l.box=z=h.symbols[f]||B?h.symbol(f):h.rect(),z.addClass(("button"===q?"":"highcharts-label-box")+ (q?" highcharts-"+q+"-box":"")),z.add(l),a=P(),b.x=a,b.y=(v?-I:0)+a),b.width=Math.round(l.width),b.height=Math.round(l.height),z.attr(c(b,L)),L={})};N=function(){var a=D+M,b;b=v?0:I;e(H)&&n&&("center"===F||"right"===F)&&(a+={center:.5,right:1}[F]*(H-n.width));if(a!==g.x||b!==g.y)g.attr("x",a),void 0!==b&&g.attr("y",b);g.x=a;g.y=b};Q=function(a,b){z?z.attr(a,b):L[a]=b};l.onAdd=function(){g.add(l);l.attr({text:a||0===a?a:"",x:b,y:m});z&&e(k)&&l.attr({anchorX:k,anchorY:p})};l.widthSetter=function(a){H= a};l.heightSetter=function(a){O=a};l["text-alignSetter"]=function(a){F=a};l.paddingSetter=function(a){e(a)&&a!==M&&(M=l.padding=a,N())};l.paddingLeftSetter=function(a){e(a)&&a!==D&&(D=a,N())};l.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==K&&(K=a,n&&l.attr({x:r}))};l.textSetter=function(a){void 0!==a&&g.textSetter(a);R();N()};l["stroke-widthSetter"]=function(a,b){a&&(E=!0);this["stroke-width"]=a;Q(b,a)};l.rSetter=function(a,b){Q(b,a)};l.anchorXSetter=function(a,b){k=a;Q(b,Math.round(a)- P()-r)};l.anchorYSetter=function(a,b){p=a;Q(b,a-G)};l.xSetter=function(a){l.x=a;K&&(a-=K*((H||n.width)+2*M));r=Math.round(a);l.attr("translateX",r)};l.ySetter=function(a){G=l.y=Math.round(a);l.attr("translateY",G)};var x=l.css;return c(l,{css:function(a){if(a){var b={};a=C(a);t(l.textProps,function(m){void 0!==a[m]&&(b[m]=a[m],delete a[m])});g.css(b)}return x.call(l,a)},getBBox:function(){return{width:n.width+2*M,height:n.height+2*M,x:n.x-M,y:n.y-M}},destroy:function(){u(l.element,"mouseenter");u(l.element, "mouseleave");g&&(g=g.destroy());z&&(z=z.destroy());w.prototype.destroy.call(l);l=h=R=N=Q=null}})}};a.Renderer=A})(J);(function(a){var w=a.attr,A=a.createElement,y=a.css,x=a.defined,g=a.each,h=a.extend,r=a.isFirefox,n=a.isMS,l=a.isWebKit,e=a.pInt,d=a.SVGRenderer,q=a.win,B=a.wrap;h(a.SVGElement.prototype,{htmlCss:function(a){var c=this.element;if(c=a&&"SPAN"===c.tagName&&a.width)delete a.width,this.textWidth=c,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow= "hidden");this.styles=h(this.styles,a);y(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,c=this.element,b=this.x||0,f=this.y||0,p=this.textAlign||"left",d={left:0,center:.5,right:1}[p],v=this.styles;y(c,{marginLeft:this.translateX||0,marginTop:this.translateY||0});this.inverted&&g(c.childNodes, function(b){a.invertChild(b,c)});if("SPAN"===c.tagName){var q=this.rotation,h=e(this.textWidth),n=v&&v.whiteSpace,k=[q,p,c.innerHTML,this.textWidth,this.textAlign].join();k!==this.cTT&&(v=a.fontMetrics(c.style.fontSize).b,x(q)&&this.setSpanRotation(q,d,v),y(c,{width:"",whiteSpace:n||"nowrap"}),c.offsetWidth>h&&/[ \-]/.test(c.textContent||c.innerText)&&y(c,{width:h+"px",display:"block",whiteSpace:n||"normal"}),this.getSpanCorrection(c.offsetWidth,v,d,q,p));y(c,{left:b+(this.xCorr||0)+"px",top:f+(this.yCorr|| 0)+"px"});l&&(v=c.offsetHeight);this.cTT=k}}else this.alignOnAdd=!0},setSpanRotation:function(a,c,b){var f={},p=n?"-ms-transform":l?"-webkit-transform":r?"MozTransform":q.opera?"-o-transform":"";f[p]=f.transform="rotate("+a+"deg)";f[p+(r?"Origin":"-origin")]=f.transformOrigin=100*c+"% "+b+"px";y(this.element,f)},getSpanCorrection:function(a,c,b){this.xCorr=-a*b;this.yCorr=-c}});h(d.prototype,{html:function(a,c,b){var f=this.createElement("span"),p=f.element,d=f.renderer,e=d.isSVG,l=function(a,b){g(["opacity", "visibility"],function(f){B(a,f+"Setter",function(a,f,k,c){a.call(this,f,k,c);b[k]=f})})};f.textSetter=function(a){a!==p.innerHTML&&delete this.bBox;p.innerHTML=this.textStr=a;f.htmlUpdateTransform()};e&&l(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(a,b){"align"===b&&(b="textAlign");f[b]=a;f.htmlUpdateTransform()};f.attr({text:a,x:Math.round(c),y:Math.round(b)}).css({position:"absolute"});p.style.whiteSpace="nowrap";f.css=f.htmlCss;e&&(f.add=function(a){var b,k= d.box.parentNode,c=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)c.push(a),a=a.parentGroup;g(c.reverse(),function(a){var p,d=w(a.element,"class");d&&(d={className:d});b=a.div=a.div||A("div",d,{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||k);p=b.style;h(a,{on:function(){f.on.apply({element:c[0].div},arguments);return a},translateXSetter:function(b,u){p.left=b+"px";a[u]=b;a.doTransform= !0},translateYSetter:function(b,u){p.top=b+"px";a[u]=b;a.doTransform=!0}});l(a,p)})}}else b=k;b.appendChild(p);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f}})})(J);(function(a){var w=a.correctFloat,A=a.defined,y=a.destroyObjectProperties,x=a.isNumber,g=a.pick,h=a.deg2rad;a.Tick=function(a,h,l,e){this.axis=a;this.pos=h;this.type=l||"";this.isNew=!0;l||e||this.addLabel()};a.Tick.prototype={addLabel:function(){var a=this.axis,h=a.options,l=a.chart,e=a.categories,d=a.names,q=this.pos, B=h.labels,t=a.tickPositions,c=q===t[0],b=q===t[t.length-1],d=e?g(e[q],d[q],q):q,e=this.label,t=t.info,f;a.isDatetimeAxis&&t&&(f=h.dateTimeLabelFormats[t.higherRanks[q]||t.unitName]);this.isFirst=c;this.isLast=b;h=a.labelFormatter.call({axis:a,chart:l,isFirst:c,isLast:b,dateTimeLabelFormat:f,value:a.isLog?w(a.lin2log(d)):d});A(e)?e&&e.attr({text:h}):(this.labelLength=(this.label=e=A(h)&&B.enabled?l.renderer.text(h,0,0,B.useHTML).add(a.labelGroup):null)&&e.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label? this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var n=this.axis,l=a.x,e=n.chart.chartWidth,d=n.chart.spacing,q=g(n.labelLeft,Math.min(n.pos,d[3])),d=g(n.labelRight,Math.max(n.pos+n.len,e-d[1])),r=this.label,t=this.rotation,c={left:0,center:.5,right:1}[n.labelAlign],b=r.getBBox().width,f=n.getSlotWidth(),p=f,I=1,v,H={};if(t)0>t&&l-c*bd&&(v=Math.round((e-l)/Math.cos(t*h)));else if(e=l+(1-c)*b,l-c*bd&&(p=d-a.x+p*c,I=-1),p=Math.min(f,p),pp||n.autoRotation&&(r.styles||{}).width)v=p;v&&(H.width=v,(n.options.labels.style||{}).textOverflow||(H.textOverflow="ellipsis"),r.css(H))},getPosition:function(a,h,l,e){var d=this.axis,q=d.chart,g=e&&q.oldChartHeight||q.chartHeight;return{x:a?d.translate(h+l,null,null,e)+d.transB:d.left+d.offset+(d.opposite?(e&&q.oldChartWidth||q.chartWidth)-d.right-d.left:0),y:a?g-d.bottom+d.offset-(d.opposite? d.height:0):g-d.translate(h+l,null,null,e)-d.transB}},getLabelPosition:function(a,g,l,e,d,q,B,t){var c=this.axis,b=c.transA,f=c.reversed,p=c.staggerLines,n=c.tickRotCorr||{x:0,y:0},v=d.y;A(v)||(v=0===c.side?l.rotation?-8:-l.getBBox().height:2===c.side?n.y+8:Math.cos(l.rotation*h)*(n.y-l.getBBox(!1,0).height/2));a=a+d.x+n.x-(q&&e?q*b*(f?-1:1):0);g=g+v-(q&&!e?q*b*(f?1:-1):0);p&&(l=B/(t||1)%p,c.opposite&&(l=p-l-1),g+=c.labelOffset/p*l);return{x:a,y:Math.round(g)}},getMarkPath:function(a,h,l,e,d,q){return q.crispLine(["M", a,h,"L",a+(d?0:-l),h+(d?l:0)],e)},render:function(a,h,l){var e=this.axis,d=e.options,q=e.chart.renderer,n=e.horiz,t=this.type,c=this.label,b=this.pos,f=d.labels,p=this.gridLine,r=e.tickSize(t?t+"Tick":"tick"),v=this.mark,H=!v,G=f.step,D={},k=!0,z=e.tickmarkOffset,C=this.getPosition(n,b,z,h),L=C.x,C=C.y,F=n&&L===e.pos+e.len||!n&&C===e.pos?-1:1;l=g(l,1);this.isActive=!0;p||(t||(D.zIndex=1),h&&(D.opacity=0),this.gridLine=p=q.path().attr(D).addClass("highcharts-"+(t?t+"-":"")+"grid-line").add(e.gridGroup)); if(!h&&p&&(b=e.getPlotLinePath(b+z,p.strokeWidth()*F,h,!0)))p[this.isNew?"attr":"animate"]({d:b,opacity:l});r&&(e.opposite&&(r[0]=-r[0]),H&&(this.mark=v=q.path().addClass("highcharts-"+(t?t+"-":"")+"tick").add(e.axisGroup)),v[H?"attr":"animate"]({d:this.getMarkPath(L,C,r[0],v.strokeWidth()*F,n,q),opacity:l}));c&&x(L)&&(c.xy=C=this.getLabelPosition(L,C,c,n,f,z,a,G),this.isFirst&&!this.isLast&&!g(d.showFirstLabel,1)||this.isLast&&!this.isFirst&&!g(d.showLastLabel,1)?k=!1:!n||e.isRadial||f.step||f.rotation|| h||0===l||this.handleOverflow(C),G&&a%G&&(k=!1),k&&x(C.y)?(C.opacity=l,c[this.isNew?"attr":"animate"](C)):c.attr("y",-9999),this.isNew=!1)},destroy:function(){y(this,this.axis)}}})(J);(function(a){var w=a.arrayMax,A=a.arrayMin,y=a.defined,x=a.destroyObjectProperties,g=a.each,h=a.erase,r=a.merge,n=a.pick;a.PlotLineOrBand=function(a,e){this.axis=a;e&&(this.options=e,this.id=e.id)};a.PlotLineOrBand.prototype={render:function(){var a=this,e=a.axis,d=e.horiz,h=a.options,g=h.label,t=a.label,c=h.to,b=h.from, f=h.value,p=y(b)&&y(c),I=y(f),v=a.svgElem,H=!v,G=[],D,k=n(h.zIndex,0),z=h.events,G={"class":"highcharts-plot-"+(p?"band ":"line ")+(h.className||"")},C={},L=e.chart.renderer,F=p?"bands":"lines",m;m=e.log2lin;e.isLog&&(b=m(b),c=m(c),f=m(f));C.zIndex=k;F+="-"+k;(m=e[F])||(e[F]=m=L.g("plot-"+F).attr(C).add());H&&(a.svgElem=v=L.path().attr(G).add(m));if(I)G=e.getPlotLinePath(f,v.strokeWidth());else if(p)G=e.getPlotBandPath(b,c,h);else return;if(H&&G&&G.length){if(v.attr({d:G}),z)for(D in h=function(b){v.on(b, function(m){z[b].apply(a,[m])})},z)h(D)}else v&&(G?(v.show(),v.animate({d:G})):(v.hide(),t&&(a.label=t=t.destroy())));g&&y(g.text)&&G&&G.length&&0= f&&0===10*u%f&&null!==p[d]&&0!==u&&(e=a.numberFormat(u/f,-1)+p[d]);void 0===e&&(e=1E4<=Math.abs(u)?a.numberFormat(u,-1):a.numberFormat(u,-1,void 0,""));return e},getSeriesExtremes:function(){var a=this,u=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();d(a.series,function(m){if(m.visible||!u.options.chart.ignoreHiddenSeries){var f=m.options,k=f.threshold,c;a.hasVisibleSeries=!0;a.isLog&&0>=k&&(k=null);if(a.isXAxis)f=m.xData, f.length&&(m=x(f),I(m)||m instanceof Date||(f=b(f,function(a){return I(a)}),m=x(f)),a.dataMin=Math.min(D(a.dataMin,f[0]),m),a.dataMax=Math.max(D(a.dataMax,f[0]),y(f)));else if(m.getExtremes(),c=m.dataMax,m=m.dataMin,n(m)&&n(c)&&(a.dataMin=Math.min(D(a.dataMin,m),m),a.dataMax=Math.max(D(a.dataMax,c),c)),n(k)&&(a.threshold=k),!f.softThreshold||a.isLog)a.softThreshold=!1}})},translate:function(a,b,f,k,c,p){var m=this.linkedParent||this,u=1,d=0,e=k?m.oldTransA:m.transA;k=k?m.oldMin:m.min;var h=m.minPixelPadding; c=(m.isOrdinal||m.isBroken||m.isLog&&c)&&m.lin2val;e||(e=m.transA);f&&(u*=-1,d=m.len);m.reversed&&(u*=-1,d-=u*(m.sector||m.len));b?(a=(a*u+d-h)/e+k,c&&(a=m.lin2val(a))):(c&&(a=m.val2lin(a)),a=u*(a-k)*e+d+u*h+(I(p)?e*p:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,f,k,c){var m=this.chart,u=this.left,p=this.top,d,e,h=f&&m.oldChartHeight|| m.chartHeight,v=f&&m.oldChartWidth||m.chartWidth,g;d=this.transB;var l=function(a,b,m){if(am)k?a=Math.min(Math.max(b,a),m):g=!0;return a};c=D(c,this.translate(a,null,null,f));a=f=Math.round(c+d);d=e=Math.round(h-c-d);I(c)?this.horiz?(d=p,e=h-this.bottom,a=f=l(a,u,u+this.width)):(a=u,f=v-this.right,d=e=l(d,p,p+this.height)):g=!0;return g&&!k?null:m.renderer.crispLine(["M",a,d,"L",f,e],b||1)},getLinearTickPositions:function(a,b,f){var m,u=h(Math.floor(b/a)*a),k=h(Math.ceil(f/a)*a),c=[];if(b=== f&&I(b))return[b];for(b=u;b<=k;){c.push(b);b=h(b+a);if(b===m)break;m=b}return c},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,f=this.minorTickInterval,k=[],c,p=this.pointRangePadding||0;c=this.min-p;var p=this.max+p,d=p-c;if(d&&d/f=this.minRange,p,e,h,v,g,l;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(n(a.min)||n(a.max)?this.minRange=null:(d(this.series,function(a){v=a.xData;for(e=g=a.xIncrement?1:v.length-1;0=F?(L=F,C=0):m.dataMax<=F&&(x=F,q=0)),m.min=D(w,L,m.dataMin),m.max=D(y,x,m.dataMax));p&&(!b&&0>=Math.min(m.min,D(m.dataMin,m.min))&&a.error(10,1),m.min=h(e(m.min),15),m.max=h(e(m.max),15));m.range&&n(m.max)&& (m.userMin=m.min=w=Math.max(m.min,m.minFromRange()),m.userMax=y=m.max,m.range=null);B(m,"foundExtremes");m.beforePadding&&m.beforePadding();m.adjustForMinRange();!(H||m.axisPointRange||m.usePercentage||l)&&n(m.min)&&n(m.max)&&(e=m.max-m.min)&&(!n(w)&&C&&(m.min-=e*C),!n(y)&&q&&(m.max+=e*q));I(k.floor)?m.min=Math.max(m.min,k.floor):I(k.softMin)&&(m.min=Math.min(m.min,k.softMin));I(k.ceiling)?m.max=Math.min(m.max,k.ceiling):I(k.softMax)&&(m.max=Math.max(m.max,k.softMax));r&&n(m.dataMin)&&(F=F||0,!n(w)&& m.min=F?m.min=F:!n(y)&&m.max>F&&m.dataMax<=F&&(m.max=F));m.tickInterval=m.min===m.max||void 0===m.min||void 0===m.max?1:l&&!z&&t===m.linkedParent.options.tickPixelInterval?z=m.linkedParent.tickInterval:D(z,this.tickAmount?(m.max-m.min)/Math.max(this.tickAmount-1,1):void 0,H?1:(m.max-m.min)*t/Math.max(m.len,t));g&&!b&&d(m.series,function(a){a.processData(m.min!==m.oldMin||m.max!==m.oldMax)});m.setAxisTranslation(!0);m.beforeSetTickPositions&&m.beforeSetTickPositions();m.postProcessTickInterval&& (m.tickInterval=m.postProcessTickInterval(m.tickInterval));m.pointRange&&!z&&(m.tickInterval=Math.max(m.pointRange,m.tickInterval));b=D(k.minTickInterval,m.isDatetimeAxis&&m.closestPointRange);!z&&m.tickIntervalm.tickInterval&&1E3m.max)),!!this.tickAmount));this.tickAmount||(m.tickInterval=m.unsquish());this.setTickPositions()},setTickPositions:function(){var a= this.options,b,f=a.tickPositions,k=a.tickPositioner,c=a.startOnTick,p=a.endOnTick,d;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=f&&f.slice();!b&&(b=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),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,k&&(k=k.apply(this,[this.min,this.max])))&&(this.tickPositions=b=k);this.trimTicks(b,c,p);this.isLinked||(this.min===this.max&&n(this.min)&&!this.tickAmount&&(d=!0,this.min-=.5,this.max+=.5),this.single=d,f||k||this.adjustTickAmount())},trimTicks:function(a,b,f){var m=a[0],k=a[a.length-1],c=this.minPointOffset|| 0;if(!this.isLinked){if(b)this.min=m;else for(;this.min-c>a[0];)a.shift();if(f)this.max=k;else for(;this.max+cb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,f=this.tickAmount,k=this.finalTickAmt,c=b&&b.length;if(cf&&(this.tickInterval*=2,this.setTickPositions()); if(n(k)){for(a=f=b.length;a--;)(3===k&&1===a%2||2>=k&&0k&&(a=k)),n(f)&&(bk&&(b=k))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,f=b.offsets||[0,0,0,0],k=this.horiz,c=D(b.width,a.plotWidth-f[3]+f[1]),p=D(b.height,a.plotHeight-f[0]+f[2]),d=D(b.top,a.plotTop+f[0]),b=D(b.left,a.plotLeft+f[3]),f=/%$/;f.test(p)&&(p= Math.round(parseFloat(p)/100*a.plotHeight));f.test(d)&&(d=Math.round(parseFloat(d)/100*a.plotHeight+a.plotTop));this.left=b;this.top=d;this.width=c;this.height=p;this.bottom=a.chartHeight-p-d;this.right=a.chartWidth-c-b;this.len=Math.max(k?c:p,0);this.pos=k?b:d},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?h(b(this.min)):this.min,max:a?h(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b= this.isLog,m=this.lin2log,f=b?m(this.min):this.min,b=b?m(this.max):this.max;null===a?a=f:f>a?a=f:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,m=b[a+"Length"],f=D(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(f&&m)return"inside"===b[a+"Position"]&&(m=-m),[m,f]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&& this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,f=this.tickInterval,k=f,c=this.len/(((this.categories?1:0)+this.max-this.min)/f),p,e=a.rotation,h=this.labelMetrics(),v,g=Number.MAX_VALUE,q,z=function(a){a/=c||1;a=1=a)v=z(Math.abs(h.h/Math.sin(l*a))),b=v+ Math.abs(a/360),b(f.step||0)&&!f.rotation&&(this.staggerLines||1)*this.len/k||!b&&(c&&c-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,f=this.tickPositions,k=this.ticks,c=this.options.labels,p=this.horiz, e=this.getSlotWidth(),h=Math.max(1,Math.round(e-2*(c.padding||5))),g={},l=this.labelMetrics(),q=c.style&&c.style.textOverflow,z,C=0,t,n;v(c.rotation)||(g.rotation=c.rotation||0);d(f,function(a){(a=k[a])&&a.labelLength>C&&(C=a.labelLength)});this.maxLabelLength=C;if(this.autoRotation)C>h&&C>l.h?g.rotation=this.labelRotation:this.labelRotation=0;else if(e&&(z={width:h+"px"},!q))for(z.textOverflow="clip",t=f.length;!p&&t--;)if(n=f[t],h=k[n].label)h.styles&&"ellipsis"===h.styles.textOverflow?h.css({textOverflow:"clip"}): k[n].labelLength>e&&h.css({width:e+"px"}),h.getBBox().height>this.len/f.length-(l.h-l.f)&&(h.specCss={textOverflow:"ellipsis"});g.rotation&&(z={width:(C>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},q||(z.textOverflow="ellipsis"));if(this.labelAlign=c.align||this.autoLabelAlign(this.labelRotation))g.align=this.labelAlign;d(f,function(a){var b=(a=k[a])&&a.label;b&&(b.attr(g),z&&b.css(H(z,b.specCss)),delete b.specCss,a.rotation=g.rotation)});this.tickRotCorr=b.rotCorr(l.b,this.labelRotation|| 0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||n(this.min)&&n(this.max)&&!!this.tickPositions},addTitle:function(a){var b=this.chart.renderer,f=this.horiz,m=this.opposite,k=this.options.title,c;this.axisTitle||((c=k.textAlign)||(c=(f?{low:"left",middle:"center",high:"right"}:{low:m?"right":"left",middle:"center",high:m?"left":"right"})[k.align]),this.axisTitle=b.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:c}).addClass("highcharts-axis-title").add(this.axisGroup), this.axisTitle.isNew=!0);this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new F(this,a)},getOffset:function(){var a=this,b=a.chart,f=b.renderer,k=a.options,c=a.tickPositions,p=a.ticks,e=a.horiz,h=a.side,v=b.inverted?[1,0,3,2][h]:h,g,l,q=0,z,C=0,t=k.title,H=k.labels,F=0,G=b.axisOffset,b=b.clipOffset,r=[-1,1,1,-1][h],L,I=k.className,B=a.axisParent,x=this.tickSize("tick");g=a.hasData();a.showAxis=l=g||D(k.showEmpty,!0);a.staggerLines=a.horiz&&H.staggerLines; a.axisGroup||(a.gridGroup=f.g("grid").attr({zIndex:k.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(I||"")).add(B),a.axisGroup=f.g("axis").attr({zIndex:k.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(I||"")).add(B),a.labelGroup=f.g("axis-labels").attr({zIndex:H.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(I||"")).add(B));if(g||a.isLinked)d(c,function(b,f){a.generateTick(b,f)}),a.renderUnsquish(),!1===H.reserveSpace||0!==h&&2!==h&& {1:"left",3:"right"}[h]!==a.labelAlign&&"center"!==a.labelAlign||d(c,function(a){F=Math.max(p[a].getLabelSize(),F)}),a.staggerLines&&(F*=a.staggerLines,a.labelOffset=F*(a.opposite?-1:1));else for(L in p)p[L].destroy(),delete p[L];t&&t.text&&!1!==t.enabled&&(a.addTitle(l),l&&(q=a.axisTitle.getBBox()[e?"height":"width"],z=t.offset,C=n(z)?0:D(t.margin,e?5:10)));a.renderLine();a.offset=r*D(k.offset,G[h]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};f=0===h?-a.labelMetrics().h:2===h?a.tickRotCorr.y:0;C=Math.abs(F)+ C;F&&(C=C-f+r*(e?D(H.y,a.tickRotCorr.y+8*r):H.x));a.axisTitleMargin=D(z,C);G[h]=Math.max(G[h],a.axisTitleMargin+q+r*a.offset,C,g&&c.length&&x?x[0]:0);k=k.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[v]=Math.max(b[v],k)},getLinePath:function(a){var b=this.chart,f=this.opposite,k=this.offset,m=this.horiz,c=this.left+(f?this.width:0)+k,k=b.chartHeight-this.bottom-(f?this.height:0)+k;f&&(a*=-1);return b.renderer.crispLine(["M",m?this.left:c,m?k:this.top,"L",m?b.chartWidth-this.right:c,m?k:b.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,b=this.left,f=this.top,k=this.len,c=this.options.title,p=a?b:f,d=this.opposite,e=this.offset,h=c.x||0,v=c.y||0,g=this.chart.renderer.fontMetrics(c.style&&c.style.fontSize,this.axisTitle).f,k={low:p+(a?0:k),middle:p+k/2,high:p+(a?k:0)}[c.align],b=(a?f+this.height:b)+(a?1:-1)*(d?-1:1)*this.axisTitleMargin+ (2===this.side?g:0);return{x:a?k+h:b+(d?this.width:0)+e+h,y:a?b+v-(d?this.height:0)+e:k+v}},renderMinorTick:function(a){var b=this.chart.hasRendered&&I(this.oldMin),f=this.minorTicks;f[a]||(f[a]=new F(this,a,"minor"));b&&f[a].isNew&&f[a].render(null,!0);f[a].render(null,!1,1)},renderTick:function(a,b){var f=this.isLinked,k=this.ticks,c=this.chart.hasRendered&&I(this.oldMin);if(!f||a>=this.min&&a<=this.max)k[a]||(k[a]=new F(this,a)),c&&k[a].isNew&&k[a].render(b,!0,.1),k[a].render(b)},render:function(){var a= this,b=a.chart,f=a.options,c=a.isLog,p=a.lin2log,e=a.isLinked,h=a.tickPositions,v=a.axisTitle,g=a.ticks,l=a.minorTicks,q=a.alternateBands,z=f.stackLabels,C=f.alternateGridColor,t=a.tickmarkOffset,n=a.axisLine,H=a.showAxis,D=A(b.renderer.globalAnimation),G,r;a.labelEdge.length=0;a.overlap=!1;d([g,l,q],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||e)a.minorTickInterval&&!a.categories&&d(a.getMinorTickPositions(),function(b){a.renderMinorTick(b)}),h.length&&(d(h,function(b,f){a.renderTick(b, f)}),t&&(0===a.min||a.single)&&(g[-1]||(g[-1]=new F(a,-1,null,!0)),g[-1].render(-1))),C&&d(h,function(f,m){r=void 0!==h[m+1]?h[m+1]+t:a.max-t;0===m%2&&fr&&(!l||p<=n)&&void 0!==p&&t.push(p),p>n&&(I=!0),p=f;else r=h(r),n=h(n),a=e[l?"minorTickInterval":"tickInterval"],a=g("auto"===a?null:a,this._minorAutoInterval,e.tickPixelInterval/(l?5:1)*(n-r)/((l?d/this.tickPositions.length:d)||1)),a=x(a,null,A(a)),t=y(this.getLinearTickPositions(a,r,n),B),l||(this._minorAutoInterval=a/5);l||(this.tickInterval= a);return t};w.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};w.prototype.lin2log=function(a){return Math.pow(10,a)}})(J);(function(a){var w=a.dateFormat,A=a.each,y=a.extend,x=a.format,g=a.isNumber,h=a.map,r=a.merge,n=a.pick,l=a.splat,e=a.syncTimeout,d=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,d){this.chart=a;this.options=d;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=d.split&&!a.inverted;this.shared=d.shared|| this.split},cleanSplit:function(a){A(this.chart.series,function(d){var e=d&&d.tt;e&&(!e.isActive||a?d.tt=e.destroy():e.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,d=this.options;this.label||(this.label=this.split?a.g("tooltip"):a.label("",0,0,d.shape||"callout",null,null,d.useHTML,null,"tooltip").attr({padding:d.padding,r:d.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();this.init(this.chart,r(!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());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,d,e,c){var b=this,f=b.now,p=!1!==b.options.animation&&!b.isHidden&&(1v-p?v:v-p);else if(g)f[a]=Math.max(e,d+p+c>k?d:d+p);else return!1},k=function(a,k,c,p){var m;pk-b?m=!1:f[a]=pk-c/2?k-c-2:p-c/2;return m},z=function(a){var b=v;v=g;g=b;h=a},C=function(){!1!==q.apply(0,v)?!1!== k.apply(0,g)||h||(z(!0),C()):h?f.x=f.y=0:(z(!0),C())};(c.inverted||1C&&(p=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=b.plotTop;c.push({target:d.isHeader?b.plotHeight+v:a,rank:d.isHeader?1:0,size:k.tt.getBBox().height+ 1,point:d,x:C,tt:z})});this.cleanSplit();a.distribute(c,b.plotHeight+v);A(c,function(a){var f=a.point,k=f.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:p||f.isHeader?a.x:f.plotX+b.plotLeft+n(g.distance,16),y:a.pos+b.plotTop,anchorX:f.isHeader?f.plotX+b.plotLeft:f.plotX+k.xAxis.pos,anchorY:f.isHeader?a.pos+b.plotTop-15:f.plotY+k.yAxis.pos})})},updatePosition:function(a){var d=this.chart,e=this.getLabel(),e=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a); this.move(Math.round(e.x),Math.round(e.y||0),a.plotX+d.plotLeft,a.plotY+d.plotTop)},getDateFormat:function(a,e,h,c){var b=w("%m-%d %H:%M:%S.%L",e),f,p,g={millisecond:15,second:12,minute:9,hour:6,day:3},v="millisecond";for(p in d){if(a===d.week&&+w("%w",e)===h&&"00:00:00.000"===b.substr(6)){p="week";break}if(d[p]>a){p=v;break}if(g[p]&&b.substr(g[p])!=="01-01 00:00:00.000".substr(g[p]))break;"week"!==p&&(v=p)}p&&(f=c[p]);return f},getXDateFormat:function(a,d,e){d=d.dateTimeLabelFormats;var c=e&&e.closestPointRange; return(c?this.getDateFormat(c,a.x,e.options.startOfWeek,d):d.day)||d.year},tooltipFooterHeaderFormatter:function(a,d){var e=d?"footer":"header";d=a.series;var c=d.tooltipOptions,b=c.xDateFormat,f=d.xAxis,p=f&&"datetime"===f.options.type&&g(a.key),e=c[e+"Format"];p&&!b&&(b=this.getXDateFormat(a,c,f));p&&b&&(e=e.replace("{point.key}","{point.key:"+b+"}"));return x(e,{point:a,series:d})},bodyFormatter:function(a){return h(a,function(a){var d=a.series.tooltipOptions;return(d.pointFormatter||a.point.tooltipFormatter).call(a.point, d.pointFormat)})}}})(J);(function(a){var w=a.addEvent,A=a.attr,y=a.charts,x=a.css,g=a.defined,h=a.doc,r=a.each,n=a.extend,l=a.fireEvent,e=a.offset,d=a.pick,q=a.removeEvent,B=a.splat,t=a.Tooltip,c=a.win;a.Pointer=function(a,f){this.init(a,f)};a.Pointer.prototype={init:function(a,f){this.options=f;this.chart=a;this.runChartClick=f.chart.events&&!!f.chart.events.click;this.pinchDown=[];this.lastValidTouch={};t&&f.tooltip.enabled&&(a.tooltip=new t(a,f.tooltip),this.followTouchMove=d(f.tooltip.followTouchMove, !0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,e=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(e=d(c.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!b||e&&b;this.zoomVert=e&&!b||a&&b;this.hasZoom=a||e},normalize:function(a,f){var b,d;a=a||c.event;a.target||(a.target=a.srcElement);d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;f||(this.chartPosition=f=e(this.chart.container));void 0===d.pageX?(b=Math.max(a.x, a.clientX-f.left),f=a.y):(b=d.pageX-f.left,f=d.pageY-f.top);return n(a,{chartX:Math.round(b),chartY:Math.round(f)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};r(this.chart.axes,function(f){b[f.isXAxis?"xAxis":"yAxis"].push({axis:f,value:f.toValue(a[f.horiz?"chartX":"chartY"])})});return b},runPointActions:function(b){var f=this.chart,c=f.series,e=f.tooltip,g=e?e.shared:!1,l=!0,n=f.hoverPoint,q=f.hoverSeries,k,z,C,t=[],F;if(!g&&!q)for(k=0;kb.series.index?-1:1}));if(g)for(k=t.length;k--;)(t[k].x!== t[0].x||t[k].series.noSharedTooltip)&&t.splice(k,1);if(t[0]&&(t[0]!==this.prevKDPoint||e&&e.isHidden)){if(g&&!t[0].series.noSharedTooltip){for(k=0;kl+z&&(d=l+z),ek+C&&(e=k+C),this.hasDragged=Math.sqrt(Math.pow(m-d,2)+Math.pow(t-e,2)),10z.max&&(h=z.max-n,M=!0);M?(F-=.8*(F-B[b][0]),C||(u-=.8*(u-B[b][1])),g()):B[b]=[F,u];k||(q[b]=r-v,q[l]=n);q=k?1/D:D;d[l]=n;d[b]=h;e[k?a?"scaleY": "scaleX":"scale"+f]=D;e["translate"+f]=q*v+(F-q*L)},pinch:function(a){var n=this,l=n.chart,e=n.pinchDown,d=a.touches,q=d.length,r=n.lastValidTouch,t=n.hasZoom,c=n.selectionMarker,b={},f=1===q&&(n.inClass(a.target,"highcharts-tracker")&&l.runTrackerClick||n.runChartClick),p={};1c-6&&h(C||b.chartWidth-2*q-m-e.x)&&(this.itemX=m,this.itemY+=t+this.lastLineHeight+n,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,g);this.lastItemY=t+this.itemY+n;this.lastLineHeight=Math.max(l,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];h?this.itemX+=g: (this.itemY+=t+l+n,this.lastLineHeight=l);this.offsetWidth=C||Math.max((h?this.itemX-m-k:g)+q,this.offsetWidth)},getAllItems:function(){var a=[];h(this.chart.series,function(b){var f=b&&b.options;b&&d(f.showInLegend,g(f.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===f.legendType?b.data:b)))});return a},adjustMargins:function(a,f){var b=this.chart,c=this.options,e=c.align.charAt(0)+c.verticalAlign.charAt(0)+c.layout.charAt(0);c.floating||h([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/, /(lbv|lm|ltv)/],function(h,p){h.test(e)&&!g(a[p])&&(b[l[p]]=Math.max(b[l[p]],b.legend[(p+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][p]*c[p%2?"x":"y"]+d(c.margin,12)+f[p]))})},render:function(){var a=this,f=a.chart,c=f.renderer,d=a.group,e,g,l,q,k=a.box,z=a.options,C=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;d||(a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup));a.renderTitle(); e=a.getAllItems();B(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});z.reversed&&e.reverse();a.allItems=e;a.display=g=!!e.length;a.lastLineHeight=0;h(e,function(b){a.renderItem(b)});l=(z.width||a.offsetWidth)+C;q=a.lastItemY+a.lastLineHeight+a.titleHeight;q=a.handleOverflow(q);q+=C;k||(a.box=k=c.rect().addClass("highcharts-legend-box").attr({r:z.borderRadius}).add(d),k.isNew=!0);0c&&!1!==k.enabled?(this.clipHeight=q=Math.max(c-20-this.titleHeight-m,0),this.currentPage=d(this.currentPage,1),this.fullHeight=a,h(r,function(a,b){var c=a._legendItemPos[1]; a=Math.round(a.legendItem.getBBox().height);var k=F.length;if(!k||c-F[k-1]>q&&(u||c)!==F[k-1])F.push(u||c),k++;b===r.length-1&&c+a-F[k-1]>q&&F.push(c);c!==u&&(u=c)}),n||(n=b.clipRect=e.clipRect(0,m,9999,0),b.contentGroup.clip(n)),B(q),t||(this.nav=t=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,C,C).on("click",function(){b.scroll(-1,z)}).add(t),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").add(t),this.down=e.symbol("triangle-down",0,0,C,C).on("click", function(){b.scroll(1,z)}).add(t)),b.scroll(0),a=c):t&&(B(),t.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,c){var b=this.pages,f=b.length;a=this.currentPage+a;var d=this.clipHeight,e=this.pager,h=this.padding;a>f&&(a=f);0b&&(e=typeof a[0],"string"===e?d.name=a[0]:"number"===e&&(d.x=a[0]),f++);g=g.value;)g=e[++h];g&&g.color&&!this.options.color&&(this.color=g.color);return g},destroy:function(){var a=this.series.chart,h=a.hoverPoints,g;a.pointCount--;h&&(this.setState(),x(h,this),h.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)e(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a= ["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,h=6;h--;)e=a[h],this[e]&&(this[e]=this[e].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 d=this.series,e=d.tooltipOptions,g=l(e.valueDecimals,""),c=e.valuePrefix||"",b=e.valueSuffix||"";A(d.pointArrayMap||["y"], function(f){f="{point."+f;if(c||b)a=a.replace(f+"}",c+f+"}"+b);a=a.replace(f+"}",f+":,."+g+"f}")});return h(a,{point:this,series:this.series})},firePointEvent:function(a,e,h){var d=this,c=this.series.options;(c.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents();"click"===a&&c.allowPointSelect&&(h=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});g(this,a,e,h)},visible:!0}})(J);(function(a){var w=a.addEvent,A=a.animObject,y=a.arrayMax,x=a.arrayMin, g=a.correctFloat,h=a.Date,r=a.defaultOptions,n=a.defined,l=a.each,e=a.erase,d=a.extend,q=a.fireEvent,B=a.grep,t=a.isArray,c=a.isNumber,b=a.isString,f=a.merge,p=a.pick,I=a.removeEvent,v=a.splat,H=a.SVGElement,G=a.syncTimeout,D=a.win;a.Series=a.seriesType("line",null,{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{radius:4,states:{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:{hover:{lineWidthPlus:1,marker:{},halo:{size:10}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{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 c=this,k,f,e=a.series,h;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries= [];c.bindAxes();d(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});f=b.events;for(k in f)w(c,k,f[k]);if(f&&f.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();l(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);e.length&&(h=e[e.length-1]);c._i=p(h&&h._i,-1)+1;a.orderSeries(this.insert(e))},insert:function(a){var b=this.options.index,k;if(c(b)){for(k= a.length;k--;)if(b>=p(a[k].options.index,a[k]._i)){a.splice(k+1,0,this);break}-1===k&&a.unshift(this);k+=1}else a.push(this);return p(k,a.length-1)},bindAxes:function(){var b=this,c=b.options,f=b.chart,d;l(b.axisTypes||[],function(k){l(f[k],function(a){d=a.options;if(c[k]===d.index||void 0!==c[k]&&c[k]===d.id||void 0===c[k]&&0===d.index)b.insert(a.series),b[k]=a,a.isDirty=!0});b[k]||b.optionalAxis===k||a.error(18,!0)})},updateParallelArrays:function(a,b){var k=a.series,f=arguments,d=c(b)?function(c){var f= "y"===c&&k.toYData?k.toYData(a):a[c];k[c+"Data"][b]=f}:function(a){Array.prototype[b].apply(k[a+"Data"],Array.prototype.slice.call(f,2))};l(k.parallelArrays,d)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,f=a.pointIntervalUnit,b=p(b,a.pointStart,0);this.pointInterval=c=p(this.pointInterval,a.pointInterval,1);f&&(a=new h(b),"day"===f?a=+a[h.hcSetDate](a[h.hcGetDate]()+c):"month"===f?a=+a[h.hcSetMonth](a[h.hcGetMonth]()+c):"year"===f&&(a=+a[h.hcSetFullYear](a[h.hcGetFullYear]()+ c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},k=b.plotOptions||{},d=c[this.type];this.userOptions=a;c=f(d,c.series,a);this.tooltipOptions=f(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,k.series&&k.series.tooltip,k[this.type]&&k[this.type].tooltip,a.tooltip);null===d.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&&n(a[a.length-1].value)&&a.push({});return c},getCyclic:function(a,b,c){var f,k=this.chart,d=this.userOptions,e=a+"Index",h=a+"Counter",g=c?c.length:p(k.options.chart[a+"Count"],k[a+"Count"]);b||(f=p(d[e],d["_"+e]),n(f)||(k.series.length||(k[h]=0),d["_"+e]=f=k[h]%g,k[h]+=1),c&&(b=c[f]));void 0!==f&&(this[e]=f);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,setData:function(f,d,e,h){var k=this,m=k.points,g=m&&m.length||0,n,v=k.options,q=k.chart,z=null,C=k.xAxis,r=v.turboThreshold,H=this.xData,D=this.yData,G=(n=k.pointArrayMap)&&n.length;f=f||[];n=f.length;d=p(d,!0);if(!1!==h&&n&&g===n&&!k.cropped&&!k.hasGroupedData&&k.visible)l(f,function(a,b){m[b].update&&a!==v.data[b]&&m[b].update(a,!1,null,!1)});else{k.xIncrement=null;k.colorCounter=0;l(this.parallelArrays,function(a){k[a+ "Data"].length=0});if(r&&n>r){for(e=0;null===z&&ep||this.forceCrop))if(c[k-1]r)c=[],f=[];else if(c[0]r)e=this.cropData(this.xData,this.yData,t,r),c=e.xData,f=e.yData,e=e.start,d=!0;for(p=c.length||1;--p;)k=q?l(c[p])-l(c[p-1]):c[p]-c[p-1],0k&&this.requireSorting&&a.error(15);this.cropped=d;this.cropStart=e;this.processedXData=c;this.processedYData=f;this.closestPointRange=h},cropData:function(a,b,c,f){var k=a.length,e=0,d=k,h=p(this.cropShoulder,1),g;for(g=0;g= c){e=Math.max(0,g-h);break}for(c=g;cf){d=c+h;break}return{xData:a.slice(e,d),yData:b.slice(e,d),start:e,end:d}},generatePoints:function(){var a=this.options.data,b=this.data,c,f=this.processedXData,e=this.processedYData,d=this.pointClass,h=f.length,g=this.cropStart||0,p,l=this.hasGroupedData,n,q=[],t;b||l||(b=[],b.length=a.length,b=this.data=b);for(t=0;t=h&&(f[v-1]||l)<=g,p&&l)if(p=n.length)for(;p--;)null!==n[p]&&(e[d++]=n[p]);else e[d++]=n;this.dataMin=x(e);this.dataMax=y(e)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,f=this.xAxis,e=f.categories,d=this.yAxis,h=this.points,l=h.length,v=!!this.modifyValue,q=a.pointPlacement,t="between"===q||c(q),r=a.threshold,H=a.startFromThreshold?r:0,D,G,B,x,I=Number.MAX_VALUE;"between"===q&&(q=.5);c(q)&&(q*=p(a.pointRange||f.pointRange)); for(a=0;a=A&&(w.isNull=!0);w.plotX=D=g(Math.min(Math.max(-1E5,f.translate(y,0,0,0,1,q,"flags"===this.type)),1E5));b&&this.visible&&!w.isNull&&J&&J[y]&&(x=this.getStackIndicator(x,y,this.index),T=J[y],A=T.points[x.key],G=A[0],A=A[1],G===H&&x.key===J[y].base&&(G=p(r,d.min)),d.isLog&&0>=G&&(G=null),w.total=w.stackTotal=T.total,w.percentage=T.total&&w.y/T.total*100,w.stackY= A,T.setOffset(this.pointXOffset||0,this.barW||0));w.yBottom=n(G)?d.translate(G,0,1,0,1):null;v&&(A=this.modifyValue(A,w));w.plotY=G="number"===typeof A&&Infinity!==A?Math.min(Math.max(-1E5,d.translate(A,0,1,0,1)),1E5):void 0;w.isInside=void 0!==G&&0<=G&&G<=d.len&&0<=D&&D<=f.len;w.clientX=t?g(f.translate(y,0,0,0,1,q)):D;w.negative=w.y<(r||0);w.category=e&&void 0!==e[w.x]?e[w.x]:w.x;w.isNull||(void 0!==B&&(I=Math.min(I,Math.abs(D-B))),B=D);w.zone=this.zones.length&&w.getZone()}this.closestPointRangePx= I},getValidPoints:function(a,b){var c=this.chart;return B(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,f=b.renderer,k=b.inverted,e=this.clipBox,d=e||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,d.height,c.xAxis,c.yAxis].join(),g=b[h],p=b[h+"m"];g||(a&&(d.width=0,b[h+"m"]=p=f.clipRect(-99,k?-b.plotLeft:-b.plotTop,99,k?b.chartWidth:b.chartHeight)),b[h]=g=f.clipRect(d), g.count={length:0});a&&!g.count[this.index]&&(g.count[this.index]=!0,g.count.length+=1);!1!==c.clip&&(this.group.clip(a||e?g:b.clipRect),this.markerGroup.clip(p),this.sharedClipKey=h);a||(g.count[this.index]&&(delete g.count[this.index],--g.count.length),0===g.count.length&&h&&b[h]&&(e||(b[h]=b[h].destroy()),b[h+"m"]&&(this.markerGroup.clip(),b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var b=this.chart,c=A(this.options.animation),f;a?this.setClip(c):(f=this.sharedClipKey,(a=b[f])&&a.animate({width:b.plotSizeX}, c),b[f+"m"]&&b[f+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip();q(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,f,e,d,h,g=this.options.marker,l,n,v,q,t=this.markerGroup,r=p(g.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(e=0;er.max}),this.clips=h)},invertGroups:function(a){function b(){l(["group","markerGroup"],function(b){c[b]&&(c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,f;c.xAxis&&(f=w(c.chart,"resize",b),w(c,"destroy",f),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,f,e){var d=this[a],k=!d;k&&(this[a]=d=this.chart.renderer.g(b).attr({zIndex:f||.1}).add(e),d.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+ " "+(this.options.className||"")));d.attr({visibility:c})[k?"attr":"animate"](this.getPlotBox());return d},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,f=a.options,e=!!a.animate&&b.renderer.isSVG&&A(f.animation).duration,d=a.visible?"inherit":"hidden",h=f.zIndex,g=a.hasRendered,p=b.seriesGroup,l=b.inverted;c=a.plotGroup("group", "series",d,h,p);a.markerGroup=a.plotGroup("markerGroup","markers",d,h,p);e&&a.animate(!0);c.inverted=a.isCartesian?l:!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(l);!1===f.clip||a.sharedClipKey||g||c.clip(b.clipRect);e&&a.animate();g||(a.animationTimeout=G(function(){a.afterAnimate()},e));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart, b=this.isDirty||this.isDirtyData,c=this.group,f=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:p(f&&f.left,a.plotLeft),translateY:p(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,f=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?f.len-a.chartX+f.pos:a.chartY- f.pos},b)},buildKDTree:function(){function a(c,f,e){var d,k;if(k=c&&c.length)return d=b.kdAxisArray[f%e],c.sort(function(a,b){return a[d]-b[d]}),k=Math.floor(k/2),{point:c[k],left:a(c.slice(0,k),f+1,e),right:a(c.slice(k+1),f+1,e)}}this.buildingKdTree=!0;var b=this,c=b.kdDimensions;delete b.kdTree;G(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c);b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,h,g){var p=b.point,m=f.kdAxisArray[h%g],l,v,q=p;v=n(a[e])&& n(p[e])?Math.pow(a[e]-p[e],2):null;l=n(a[d])&&n(p[d])?Math.pow(a[d]-p[d],2):null;l=(v||0)+(l||0);p.dist=n(l)?Math.sqrt(l):Number.MAX_VALUE;p.distX=n(v)?Math.sqrt(v):Number.MAX_VALUE;m=a[m]-p[m];l=0>m?"left":"right";v=0>m?"right":"left";b[l]&&(l=c(a,b[l],h+1,g),q=l[k]v;)q--;this.updateParallelArrays(m,"splice",q,0,0);this.updateParallelArrays(m,q);g&&m.name&&(g[v]=m.name);p.splice(q,0,a);l&&(this.data.splice(q,0,null),this.processData());"point"===e.legendType&&this.generatePoints();c&&(d[0]&&d[0].remove?d[0].remove(!1):(d.shift(),this.updateParallelArrays(m,"shift"),p.shift()));this.isDirtyData= this.isDirty=!0;b&&h.redraw(f)},removePoint:function(a,b,c){var f=this,e=f.data,d=e[a],h=f.points,g=f.chart,l=function(){h&&h.length===e.length&&h.splice(a,1);e.splice(a,1);f.options.data.splice(a,1);f.updateParallelArrays(d||{series:f},"splice",a,1);d&&d.destroy();f.isDirty=!0;f.isDirtyData=!0;b&&g.redraw()};p(c,g);b=t(b,!0);d?d.firePointEvent("remove",null,l):l()},remove:function(a,b,c){function f(){e.destroy();d.isDirtyLegend=d.isDirtyBox=!0;d.linkSeries();t(a,!0)&&d.redraw(b)}var e=this,d=e.chart; !1!==c?l(e,"remove",null,f):f()},update:function(a,b){var c=this,e=this.chart,d=this.userOptions,g=this.type,p=a.type||d.type||e.options.chart.type,l=f[g].prototype,q=["group","markerGroup","dataLabelsGroup"],m;if(p&&p!==g||void 0!==a.zIndex)q.length=0;h(q,function(a){q[a]=c[a];delete c[a]});a=B(d,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(m in l)this[m]=void 0;n(this,f[p||g].prototype);h(q,function(a){c[a]=q[a]});this.init(e,a); e.linkSeries();t(b,!0)&&e.redraw(!1)}});n(A.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=B(this.userOptions,a);this.destroy(!0);this.init(c,n(a,{events:void 0}));c.isDirtyBox=!0;t(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,f=this.series,e=f.length;e--;)f[e]&&f[e].remove(!1);r(b.axes,this);r(b[c],this);b.options[c].splice(this.options.index,1);h(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;t(a,!0)&& b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(J);(function(a){var w=a.animObject,A=a.each,y=a.extend,x=a.isNumber,g=a.merge,h=a.pick,r=a.Series,n=a.seriesType,l=a.svg;n("column","line",{borderRadius: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(){r.prototype.init.apply(this,arguments);var a=this,d=a.chart;d.hasRendered&&A(d.series,function(e){e.type===a.type&&(e.isDirty=!0)})},getColumnMetrics:function(){var a=this,d=a.options,g=a.xAxis,l=a.yAxis,n=g.reversed,c,b={},f=0;!1===d.grouping?f=1:A(a.chart.series,function(e){var d=e.options,h=e.yAxis,k;e.type===a.type&&e.visible&&l.len===h.len&&l.pos===h.pos&&(d.stacking? (c=e.stackKey,void 0===b[c]&&(b[c]=f++),k=b[c]):!1!==d.grouping&&(k=f++),e.columnIndex=k)});var p=Math.min(Math.abs(g.transA)*(g.ordinalSlope||d.pointRange||g.closestPointRange||g.tickInterval||1),g.len),r=p*d.groupPadding,v=(p-2*r)/(f||1),d=Math.min(d.maxPointWidth||g.len,h(d.pointWidth,v*(1-2*d.pointPadding)));a.columnMetrics={width:d,offset:(v-d)/2+(r+((a.columnIndex||0)+(n?1:0))*v-p/2)*(n?-1:1)};return a.columnMetrics},crispCol:function(a,d,h,g){var e=this.chart,c=this.borderWidth,b=-(c%2?.5: 0),c=c%2?.5:1;e.inverted&&e.renderer.isVML&&(c+=1);h=Math.round(a+h)+b;a=Math.round(a)+b;g=Math.round(d+g)+c;b=.5>=Math.abs(d)&&.5a.closestPointRange*a.xAxis.transA,l=a.borderWidth=h(g.borderWidth,l?0:1),n=a.yAxis,c=a.translatedThreshold=n.getThreshold(g.threshold),b=h(g.minPointLength,5),f=a.getColumnMetrics(),p=f.width,x=a.barW=Math.max(p,1+2*l),v=a.pointXOffset= f.offset;d.inverted&&(c-=.5);g.pointPadding&&(x=Math.ceil(x));r.prototype.translate.apply(a);A(a.points,function(f){var e=h(f.yBottom,c),g=999+Math.abs(e),g=Math.min(Math.max(-g,f.plotY),n.len+g),k=f.plotX+v,l=x,q=Math.min(g,e),t,r=Math.max(g,e)-q;Math.abs(r)b?e-b:c-(t?b:0));f.barX=k;f.pointWidth=p;f.tooltipPos=d.inverted?[n.len+n.pos-d.plotLeft-g,a.xAxis.len-k-l/2,r]:[k+l/2,g+n.pos-d.plotTop,r];f.shapeType="rect";f.shapeArgs= a.crispCol.apply(a,f.isNull?[f.plotX,n.len/2,0,0]:[k,q,l,r])})},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,h=d.renderer,l=a.options.animationLimit||250,n;A(a.points,function(c){var b=c.graphic;if(x(c.plotY)&&null!==c.y)if(n=c.shapeArgs,b)b[d.pointCountb){t(a,function(a,b){return(b.rank|| 0)-(a.rank||0)});for(l=d=0;l<=b;)l+=a[d].size,d++;g=a.splice(d-1,a.length)}t(a,c);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});e;){for(d=a.length;d--;)e=a[d],l=(Math.min.apply(0,e.targets)+Math.max.apply(0,e.targets))/2,e.pos=Math.min(Math.max(0,l-e.size/2),b-e.size);d=a.length;for(e=!1;d--;)0a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].pos+a[d-1].size>b&&(a[d-1].pos=b-a[d-1].size),a.splice(d,1),e=!0)}d=0; x(a,function(a){var b=0;x(a.targets,function(){h[d].pos=a.pos+b;b+=h[d].size;d++})});h.push.apply(h,g);t(h,c)};q.prototype.drawDataLabels=function(){var a=this,b=a.options,f=b.dataLabels,d=a.points,g,l,q=a.hasRendered||0,t,r,k=e(f.defer,!0),z=a.chart.renderer;if(f.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(f),r=a.plotGroup("dataLabelsGroup","data-labels",k&&!q?"hidden":"visible",f.zIndex||6),k&&(r.attr({opacity:+q}),q||w(a,"afterAnimate",function(){a.visible&&r.show(!0);r[b.animation? "animate":"attr"]({opacity:1},{duration:200})})),l=f,x(d,function(b){var c,d=b.dataLabel,k,p,q,v=b.connector,H=!d;g=b.dlOptions||b.options&&b.options.dataLabels;if(c=e(g&&g.enabled,l.enabled)&&null!==b.y)for(p in f=n(l,g),k=b.getLabelConfig(),t=f.format?h(f.format,k):f.formatter.call(k,f),q=f.rotation,k={r:f.borderRadius||0,rotation:q,padding:f.padding,zIndex:1},k)void 0===k[p]&&delete k[p];!d||c&&y(t)?c&&y(t)&&(d?k.text=t:(d=b.dataLabel=z[q?"text":"label"](t,0,-9999,f.shape,null,null,f.useHTML,null, "data-label"),d.addClass("highcharts-data-label-color-"+b.colorIndex+" "+(f.className||"")+(f.useHTML?"highcharts-tracker":""))),d.attr(k),d.added||d.add(r),a.alignDataLabel(b,d,f,null,H)):(b.dataLabel=d.destroy(),v&&(b.connector=v.destroy()))})};q.prototype.alignDataLabel=function(a,b,f,d,h){var c=this.chart,l=c.inverted,p=e(a.plotX,-9999),n=e(a.plotY,-9999),k=b.getBBox(),q,t=f.rotation,r=f.align,x=this.visible&&(a.series.forceDL||c.isInsidePlot(p,Math.round(n),l)||d&&c.isInsidePlot(p,l?d.x+1:d.y+ d.height-1,l)),m="justify"===e(f.overflow,"justify");x&&(q=c.renderer.fontMetrics(void 0,b).b,d=g({x:l?c.plotWidth-n:p,y:Math.round(l?c.plotHeight-p:n),width:0,height:0},d),g(f,{width:k.width,height:k.height}),t?(m=!1,l=c.renderer.rotCorr(q,t),l={x:d.x+f.x+d.width/2+l.x,y:d.y+f.y+{top:0,middle:.5,bottom:1}[f.verticalAlign]*d.height},b[h?"attr":"animate"](l).attr({align:r}),p=(t+720)%360,p=180p,"left"===r?l.y-=p?k.height:0:"center"===r?(l.x-=k.width/2,l.y-=k.height/2):"right"===r&&(l.x-=k.width, l.y-=p?0:k.height)):(b.align(f,null,d),l=b.alignAttr),m?this.justifyDataLabel(b,f,l,k,d,h):e(f.crop,!0)&&(x=c.isInsidePlot(l.x,l.y)&&c.isInsidePlot(l.x+k.width,l.y+k.height)),f.shape&&!t&&b.attr({anchorX:a.plotX,anchorY:a.plotY}));x||(b.attr({y:-9999}),b.placed=!1)};q.prototype.justifyDataLabel=function(a,b,f,d,e,h){var c=this.chart,g=b.align,l=b.verticalAlign,k,p,n=a.box?0:a.padding||0;k=f.x+n;0>k&&("right"===g?b.align="left":b.x=-k,p=!0);k=f.x+d.width-n;k>c.plotWidth&&("left"===g?b.align="right": b.x=c.plotWidth-k,p=!0);k=f.y+n;0>k&&("bottom"===l?b.verticalAlign="top":b.y=-k,p=!0);k=f.y+d.height-n;k>c.plotHeight&&("top"===l?b.verticalAlign="bottom":b.y=c.plotHeight-k,p=!0);p&&(a.placed=!h,a.align(b,null,e))};B.pie&&(B.pie.prototype.drawDataLabels=function(){var c=this,b=c.data,f,d=c.chart,h=c.options.dataLabels,g=e(h.connectorPadding,10),l=e(h.connectorWidth,1),n=d.plotWidth,t=d.plotHeight,k,z=h.distance,C=c.center,B=C[2]/2,w=C[1],m=0l-2?q:P,e),u._attr={visibility:E,align:O[6]},u._pos={x:K+h.x+({left:g,right:-g}[O[6]]||0),y:P+h.y-10},O.x=K,O.y=P,null===c.options.size&&(y=u.width,K-yn-g&&(S[1]=Math.max(Math.round(K+y-n+g),S[1])),0>P-J/2?S[0]=Math.max(Math.round(-P+J/2),S[0]):P+J/2>t&&(S[2]=Math.max(Math.round(P+J/2-t),S[2])))}),0===A(S)||this.verifyDataLabelOverflow(S))&& (this.placeDataLabels(),m&&l&&x(this.points,function(a){var b;k=a.connector;if((u=a.dataLabel)&&u._pos&&a.visible){E=u._attr.visibility;if(b=!k)a.connector=k=d.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(c.dataLabelsGroup);k[b?"attr":"animate"]({d:c.connectorPath(a.labelPos)});k.attr("visibility",E)}else k&&(a.connector=k.destroy())}))},B.pie.prototype.connectorPath=function(a){var b=a.x,c=a.y;return e(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]]},B.pie.prototype.placeDataLabels=function(){x(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))})},B.pie.prototype.alignDataLabel=l,B.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,c=this.options,e=c.center,h=c.minSize||80,g,l;null!==e[0]? g=Math.max(b[2]-Math.max(a[1],a[3]),h):(g=Math.max(b[2]-a[1]-a[3],h),b[0]+=(a[3]-a[1])/2);null!==e[1]?g=Math.max(Math.min(g,b[2]-Math.max(a[0],a[2])),h):(g=Math.max(Math.min(g,b[2]-a[0]-a[2]),h),b[1]+=(a[0]-a[2])/2);ge(this.translatedThreshold, g.yAxis.len)),k=e(f.inside,!!this.options.stacking);l&&(d=n(l),0>d.y&&(d.height+=d.y,d.y=0),l=d.y+d.height-g.yAxis.len,0a+c||e+gb+d||h+kthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,f;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,e=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",h=c[d],g=(b.pointRange||0)/2,k=b.getExtremes(),l=b.toValue(h-e,!0)+g,g=b.toValue(h+b.len-e,!0)-g,p=gg&&0>k&&(b.setExtremes(h, l,!1,!1,{trigger:"pan"}),f=!0);c[d]=e});f&&c.redraw(!1);x(c.container,{cursor:"move"})}});n(b.prototype,{select:function(a,b){var f=this,e=f.series,g=e.chart;a=c(a,!f.selected);f.firePointEvent(a?"select":"unselect",{accumulate:b},function(){f.selected=f.options.selected=a;e.options.data[d(f,e.data)]=f.options;f.setState(a&&"select");b||r(g.getSelectedPoints(),function(a){a.selected&&a!==f&&(a.selected=a.options.selected=!1,e.options.data[d(a,e.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})}, onMouseOver:function(a,b){var c=this.series,d=c.chart,f=d.tooltip,e=d.hoverPoint;if(this.series){if(!b){if(e&&e!==this)e.onMouseOut();if(d.hoverSeries!==c)c.onMouseOver();d.hoverPoint=this}!f||f.shared&&!c.noSharedTooltip?f||this.setState("hover"):(this.setState("hover"),f.refresh(this,a));this.firePointEvent("mouseOver")}},onMouseOut:function(){var a=this.series.chart,b=a.hoverPoints;this.firePointEvent("mouseOut");b&&-1!==d(this,b)||(this.setState(),a.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var a= t(this.series.options.point,this.options).events,b;this.events=a;for(b in a)w(this,b,a[b]);this.hasImportedEvents=!0}},setState:function(a,b){var d=Math.floor(this.plotX),f=this.plotY,e=this.series,g=e.options.states[a]||{},l=h[e.type].marker&&e.options.marker,p=l&&!1===l.enabled,n=l&&l.states&&l.states[a]||{},m=!1===n.enabled,q=e.stateMarkerGraphic,t=this.marker||{},r=e.chart,v=e.halo,x,B=l&&e.markerAttribs;a=a||"";if(!(a===this.state&&!b||this.selected&&"select"!==a||!1===g.enabled||a&&(m||p&&!1=== n.enabled)||a&&t.states&&t.states[a]&&!1===t.states[a].enabled)){B&&(x=e.markerAttribs(this,a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),x&&this.graphic.animate(x,c(r.options.chart.animation,n.animation,l.animation)),q&&q.hide();else{if(a&&n)if(l=t.symbol||e.symbol,q&&q.currentSymbol!==l&&(q=q.destroy()),q)q[b?"animate":"attr"]({x:x.x,y:x.y});else l&&(e.stateMarkerGraphic=q=r.renderer.symbol(l,x.x,x.y,x.width, x.height).add(e.markerGroup),q.currentSymbol=l);q&&(q[a&&r.isInsidePlot(d,f,r.inverted)?"show":"hide"](),q.element.point=this)}(d=g.halo)&&d.size?(v||(e.halo=v=r.renderer.path().add(B?e.markerGroup:e.group)),v[b?"animate":"attr"]({d:this.haloPath(d.size)}),v.attr({"class":"highcharts-halo highcharts-color-"+c(this.colorIndex,e.colorIndex)}),v.point=this):v&&v.point&&v.point.haloPath&&v.animate({d:v.point.haloPath(0)});this.state=a}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)- a,this.plotY-a,2*a,2*a)}});n(f.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&l(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&&l(this,"mouseOut");!c||a.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();this.setState()},setState:function(a){var b=this;a= a||"";b.state!==a&&(r([b.group,b.markerGroup],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,g=d.options.chart.ignoreHiddenSeries,h=c.visible;e=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!h:a)?"show":"hide";r(["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&&r(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});r(c.linkedSeries,function(b){b.setVisible(a,!1)});g&&(d.isDirtyBox=!0);!1!==b&&d.redraw();l(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);l(this,a?"select":"unselect")},drawTracker:a.drawTrackerGraph})})(J);(function(a){var w= a.Chart,A=a.each,y=a.inArray,x=a.isObject,g=a.pick,h=a.splat;w.prototype.setResponsive=function(a){var g=this.options.responsive;g&&g.rules&&A(g.rules,function(g){this.matchResponsiveRule(g,a)},this)};w.prototype.matchResponsiveRule=function(h,n){var l=this.respRules,e=h.condition,d;d=e.callback||function(){return this.chartWidth<=g(e.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=g(e.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=g(e.minWidth,0)&&this.chartHeight>=g(e.minHeight,0)};void 0===h._id&& (h._id=a.uniqueKey());d=d.call(this);!l[h._id]&&d?h.chartOptions&&(l[h._id]=this.currentOptions(h.chartOptions),this.update(h.chartOptions,n)):l[h._id]&&!d&&(this.update(l[h._id],n),delete l[h._id])};w.prototype.currentOptions=function(a){function g(a,d,l,n){var e,c;for(e in a)if(!n&&-1a?this:g,h=(a.max-a.min)*a.transA,a.pixelPadding=a.len-h,a.minPixelPadding=a.pixelPadding/2,h=a.fixTo)){h=h[1]-a.toValue(h[0],!0);h*=a.transA;if(Math.abs(h)>a.minPixelPadding||a.min===a.dataMin&&a.max===a.dataMax)h=0; a.minPixelPadding-=h}});a(w.prototype,"render",function(a){a.call(this);this.fixTo=null})})(J);(function(a){var w=a.Axis,A=a.Chart,y=a.color,x,g=a.each,h=a.extend,r=a.isNumber,n=a.Legend,l=a.LegendSymbolMixin,e=a.noop,d=a.merge,q=a.pick,B=a.wrap;x=a.ColorAxis=function(){this.init.apply(this,arguments)};h(x.prototype,w.prototype);h(x.prototype,{defaultColorAxisOptions:{lineWidth:0,minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50}, width:.01},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItem","legendSymbol"].concat(w.prototype.keepProps),init:function(a,c){var b="vertical"!==a.options.legend.layout,f;this.coll="colorAxis";f=d(this.defaultColorAxisOptions,{side:b?2:1,reversed:!b},c,{opposite:!b,showEmpty:!1,title:null});w.prototype.init.call(this,a,f);c.dataClasses&&this.initDataClasses(c);this.initStops(c);this.horiz=b;this.zoomEnabled= !1;this.defaultLegendLength=200},tweenColors:function(a,c,b){var d;c.rgba.length&&a.rgba.length?(a=a.rgba,c=c.rgba,d=1!==c[3]||1!==a[3],a=(d?"rgba(":"rgb(")+Math.round(c[0]+(a[0]-c[0])*(1-b))+","+Math.round(c[1]+(a[1]-c[1])*(1-b))+","+Math.round(c[2]+(a[2]-c[2])*(1-b))+(d?","+(c[3]+(a[3]-c[3])*(1-b)):"")+")"):a=c.input||"none";return a},initDataClasses:function(a){var c=this,b,f=0,e=this.chart.options.chart.colorCount,h=this.options,l=a.dataClasses.length;this.dataClasses=b=[];this.legendItems=[]; g(a.dataClasses,function(a,g){a=d(a);b.push(a);a.color||("category"===h.dataClassColor?(a.colorIndex=f,f++,f===e&&(f=0)):a.color=c.tweenColors(y(h.minColor),y(h.maxColor),2>l?.5:g/(l-1)))})},initStops:function(a){this.stops=a.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=y(a[1])})},setOptions:function(a){w.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,c=this.chart,b=c.options.legend|| {},d,e;a?(this.left=b=a.attr("x"),this.top=d=a.attr("y"),this.width=e=a.attr("width"),this.height=a=a.attr("height"),this.right=c.chartWidth-b-e,this.bottom=c.chartHeight-d-a,this.len=this.horiz?e:a,this.pos=this.horiz?b:d):this.len=(this.horiz?b.symbolWidth:b.symbolHeight)||this.defaultLegendLength},toColor:function(a,c){var b=this.stops,d,e,g=this.dataClasses,h,l;if(g)for(l=g.length;l--;){if(h=g[l],d=h.from,b=h.to,(void 0===d||a>=d)&&(void 0===b||a<=b)){e=h.color;c&&(c.dataClass=l,c.colorIndex= h.colorIndex);break}}else{this.isLog&&(a=this.val2lin(a));a=1-(this.max-a)/(this.max-this.min||1);for(l=b.length;l--&&!(a>b[l][0]););d=b[l]||b[l+1];b=b[l+1]||d;a=1-(b[0]-a)/(b[0]-d[0]||1);e=this.tweenColors(d.color,b.color,a)}return e},getOffset:function(){var a=this.legendGroup,c=this.chart.axisOffset[this.side];a&&(this.axisParent=a,w.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=c)},setLegendColor:function(){var a, c=this.options,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:c.stops||[[0,c.minColor],[1,c.maxColor]]}},drawLegendSymbol:function(a,c){var b=a.padding,d=a.options,e=this.horiz,g=q(d.symbolWidth,e?this.defaultLegendLength:12),h=q(d.symbolHeight,e?12:this.defaultLegendLength),l=q(d.labelPadding,e?16:30),d=q(d.itemDistance,10);this.setLegendColor();c.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,g,h).attr({zIndex:1}).add(c.legendGroup); this.legendItemWidth=g+b+(e?d:l);this.legendItemHeight=h+b+(e?l:0)},setState:e,visible:!0,setVisible:e,getSeriesExtremes:function(){var a=this.series,c=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;c--;)void 0!==a[c].valueMin&&(this.dataMin=Math.min(this.dataMin,a[c].valueMin),this.dataMax=Math.max(this.dataMax,a[c].valueMax))},drawCrosshair:function(a,c){var b=c&&c.plotX,d=c&&c.plotY,e,g=this.pos,h=this.len;c&&(e=this.toPixels(c[c.series.colorKey]),eg+h&&(e=g+h+2),c.plotX= e,c.plotY=this.len-e,w.prototype.drawCrosshair.call(this,a,c),c.plotX=b,c.plotY=d,this.cross&&this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup))},getPlotLinePath:function(a,c,b,d,e){return r(e)?this.horiz?["M",e-4,this.top-6,"L",e+4,this.top-6,e,this.top,"Z"]:["M",this.left,e,"L",this.left-6,e+6,this.left-6,e-6,"Z"]:w.prototype.getPlotLinePath.call(this,a,c,b,d)},update:function(a,c){var b=this.chart,f=b.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&f.allItems&& (g(f.allItems,function(a){a.isDataClass&&a.legendGroup.destroy()}),b.isDirtyLegend=!0);b.options[this.coll]=d(this.userOptions,a);w.prototype.update.call(this,a,c);this.legendItem&&(this.setLegendColor(),f.colorizeItem(this,!0))},getDataClassLegendSymbols:function(){var d=this,c=this.chart,b=this.legendItems,f=c.options.legend,p=f.valueDecimals,n=f.valueSuffix||"",q;b.length||g(this.dataClasses,function(f,r){var t=!0,k=f.from,v=f.to;q="";void 0===k?q="\x3c ":void 0===v&&(q="\x3e ");void 0!==k&&(q+= a.numberFormat(k,p)+n);void 0!==k&&void 0!==v&&(q+=" - ");void 0!==v&&(q+=a.numberFormat(v,p)+n);b.push(h({chart:c,name:q,options:{},drawLegendSymbol:l.drawRectangle,visible:!0,setState:e,isDataClass:!0,setVisible:function(){t=this.visible=!t;g(d.series,function(a){g(a.points,function(a){a.dataClass===r&&a.setVisible(t)})});c.legend.colorizeItem(this,t)}},f))});return b},name:""});g(["fill","stroke"],function(d){a.Fx.prototype[d+"Setter"]=function(){this.elem.attr(d,x.prototype.tweenColors(y(this.start), y(this.end),this.pos),null,!0)}});B(A.prototype,"getAxes",function(a){var c=this.options.colorAxis;a.call(this);this.colorAxis=[];c&&new x(this,c)});B(n.prototype,"getAllItems",function(a){var c=[],b=this.chart.colorAxis[0];b&&b.options&&(b.options.showInLegend&&(b.options.dataClasses?c=c.concat(b.getDataClassLegendSymbols()):c.push(b)),g(b.series,function(a){a.options.showInLegend=!1}));return c.concat(a.call(this))});B(n.prototype,"colorizeItem",function(a,c,b){a.call(this,c,b);b&&c.legendColor&& c.legendSymbol.attr({fill:c.legendColor})})})(J);(function(a){var w=a.defined,A=a.each,y=a.noop;a.colorPointMixin={isValid:function(){return null!==this.value},setVisible:function(a){var g=this,h=a?"show":"hide";A(["graphic","dataLabel"],function(a){if(g[a])g[a][h]()})},setState:function(x){a.Point.prototype.setState.call(this,x);this.graphic&&this.graphic.attr({zIndex:"hover"===x?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis", trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:y,parallelArrays:["x","y","value"],colorKey:"value",translateColors:function(){var a=this,g=this.options.nullColor,h=this.colorAxis,r=this.colorKey;A(this.data,function(n){var l=n[r];if(l=n.options.color||(n.isNull?g:h&&void 0!==l?h.toColor(l,n):n.color||a.color))n.color=l})},colorAttribs:function(a){var g={};w(a.color)&&(g[this.colorProp||"fill"]=a.color);return g}}})(J);(function(a){function w(a){a&&(a.preventDefault&&a.preventDefault(), a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}var A=a.addEvent,y=a.Chart,x=a.doc,g=a.each,h=a.extend,r=a.merge,n=a.pick;a=a.wrap;h(y.prototype,{renderMapNavigation:function(){var a=this,e=this.options.mapNavigation,d=e.buttons,g,B,t,c=function(b){this.handler.call(a,b);w(b)};if(n(e.enableButtons,e.enabled)&&!a.renderer.forExport)for(g in a.mapNavButtons=[],d)d.hasOwnProperty(g)&&(t=r(e.buttonOptions,d[g]),B=a.renderer.button(t.text,0,0,c,void 0,void 0,void 0,0,"zoomIn"===g?"topbutton": "bottombutton").addClass("highcharts-map-navigation").attr({width:t.width,height:t.height,title:a.options.lang[g],padding:t.padding,zIndex:5}).add(),B.handler=t.onclick,B.align(h(t,{width:B.width,height:2*B.height}),null,t.alignTo),A(B.element,"dblclick",w),a.mapNavButtons.push(B))},fitToBox:function(a,e){g([["x","width"],["y","height"]],function(d){var g=d[0];d=d[1];a[g]+a[d]>e[g]+e[d]&&(a[d]>e[d]?(a[d]=e[d],a[g]=e[g]):a[g]=e[g]+e[d]-a[d]);a[d]>e[d]&&(a[d]=e[d]);a[g]=l.dataMax-l.dataMin&&b.y<=c.dataMin&&b.height>=c.dataMax-c.dataMin;g&&(l.fixTo=[g-l.pos,e]);h&&(c.fixTo=[h-c.pos,d]);void 0===a||f?(l.setExtremes(void 0,void 0,!1), c.setExtremes(void 0,void 0,!1)):(l.setExtremes(b.x,b.x+b.width,!1),c.setExtremes(b.y,b.y+b.height,!1));this.redraw()}});a(y.prototype,"render",function(a){var e=this,d=e.options.mapNavigation;e.renderMapNavigation();a.call(e);(n(d.enableDoubleClickZoom,d.enabled)||d.enableDoubleClickZoomTo)&&A(e.container,"dblclick",function(a){e.pointer.onContainerDblClick(a)});n(d.enableMouseWheelZoom,d.enabled)&&A(e.container,void 0===x.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){e.pointer.onContainerMouseWheel(a); w(a);return!1})})})(J);(function(a){var w=a.extend,A=a.pick,y=a.Pointer;a=a.wrap;w(y.prototype,{onContainerDblClick:function(a){var g=this.chart;a=this.normalize(a);g.options.mapNavigation.enableDoubleClickZoomTo?g.pointer.inClass(a.target,"highcharts-tracker")&&g.hoverPoint&&g.hoverPoint.zoomTo():g.isInsidePlot(a.chartX-g.plotLeft,a.chartY-g.plotTop)&&g.mapZoom(.5,g.xAxis[0].toValue(a.chartX),g.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var g=this.chart,h;a= this.normalize(a);h=a.detail||-(a.wheelDelta/120);g.isInsidePlot(a.chartX-g.plotLeft,a.chartY-g.plotTop)&&g.mapZoom(Math.pow(g.options.mapNavigation.mouseWheelSensitivity,h),g.xAxis[0].toValue(a.chartX),g.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(y.prototype,"zoomOption",function(a){var g=this.chart.options.mapNavigation;A(g.enableTouchZoom,g.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(y.prototype,"pinchTranslate",function(a,g,h,r,n,l, e){a.call(this,g,h,r,n,l,e);"map"===this.chart.options.chart.type&&this.hasZoom&&(a=r.scaleX>r.scaleY,this.pinchTranslateDirection(!a,g,h,r,n,l,e,a?r.scaleX:r.scaleY))})})(J);(function(a){var w=a.colorPointMixin,A=a.each,y=a.extend,x=a.isNumber,g=a.map,h=a.merge,r=a.noop,n=a.pick,l=a.isArray,e=a.Point,d=a.Series,q=a.seriesType,B=a.seriesTypes,t=a.splat,c=void 0!==a.doc.documentElement.style.vectorEffect;q("map","scatter",{allAreas:!0,animation:!1,nullColor:"#f7f7f7",borderColor:"#cccccc",borderWidth:1, marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{brightness:.2,halo:null},select:{color:"#cccccc"}}},h(a.colorSeriesMixin,{type:"map",supportsDrilldown:!0,getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:r,directTouch:!0,preserveAspectRatio:!0, pointArrayMap:["value"],getBox:function(b){var c=Number.MAX_VALUE,d=-c,e=c,g=-c,h=c,l=c,q=this.xAxis,k=this.yAxis,r;A(b||[],function(b){if(b.path){"string"===typeof b.path&&(b.path=a.splitPath(b.path));var f=b.path||[],k=f.length,m=!1,p=-c,q=c,t=-c,v=c,w=b.properties;if(!b._foundBox){for(;k--;)x(f[k])&&(m?(p=Math.max(p,f[k]),q=Math.min(q,f[k])):(t=Math.max(t,f[k]),v=Math.min(v,f[k])),m=!m);b._midX=q+(p-q)*(b.middleX||w&&w["hc-middle-x"]||.5);b._midY=v+(t-v)*(b.middleY||w&&w["hc-middle-y"]||.5);b._maxX= p;b._minX=q;b._maxY=t;b._minY=v;b.labelrank=n(b.labelrank,(p-q)*(t-v));b._foundBox=!0}d=Math.max(d,b._maxX);e=Math.min(e,b._minX);g=Math.max(g,b._maxY);h=Math.min(h,b._minY);l=Math.min(b._maxX-b._minX,b._maxY-b._minY,l);r=!0}});r&&(this.minY=Math.min(h,n(this.minY,c)),this.maxY=Math.max(g,n(this.maxY,-c)),this.minX=Math.min(e,n(this.minX,c)),this.maxX=Math.max(d,n(this.maxX,-c)),q&&void 0===q.options.minRange&&(q.minRange=Math.min(5*l,(this.maxX-this.minX)/5,q.minRange||c)),k&&void 0===k.options.minRange&& (k.minRange=Math.min(5*l,(this.maxY-this.minY)/5,k.minRange||c)))},getExtremes:function(){d.prototype.getExtremes.call(this,this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var b=!1,c=this.xAxis,d=this.yAxis,e=c.min,g=c.transA,c=c.minPixelPadding,h=d.min,l=d.transA,d=d.minPixelPadding,k,n=[];if(a)for(k=a.length;k--;)x(a[k])?(n[k]=b? (a[k]-e)*g+c:(a[k]-h)*l+d,b=!b):n[k]=a[k];return n},setData:function(b,c,e,n){var f=this.options,p=this.chart.options.chart,q=p&&p.map,r=f.mapData,k=f.joinBy,w=null===k,B=f.keys||this.pointArrayMap,y=[],F={},m,u=this.chart.mapTransforms;!r&&q&&(r="string"===typeof q?a.maps[q]:q);w&&(k="_i");k=this.joinBy=t(k);k[1]||(k[1]=k[0]);b&&A(b,function(a,c){var d=0;if(x(a))b[c]={value:a};else if(l(a)){b[c]={};!f.keys&&a.length>B.length&&"string"===typeof a[0]&&(b[c]["hc-key"]=a[0],++d);for(var e=0;en&&.99q&&(q=n=1,k=Math.round(k),r=Math.round(r)),w=this.transformGroup,h.renderer.globalAnimation?(y=w.attr("translateX"),m=w.attr("translateY"),u=w.attr("scaleX"),x=w.attr("scaleY"),w.attr({animator:0}).animate({animator:1}, {step:function(a,b){w.attr({translateX:y+(k-y)*b.pos,translateY:m+(r-m)*b.pos,scaleX:u+(n-u)*b.pos,scaleY:x+(q-x)*b.pos})}})):w.attr({translateX:k,translateY:r,scaleX:n,scaleY:q}));c||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(n||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a= this,c=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(h.marker={radius:c,width:2*c,height:2*c},h.dlBox={x:h.plotX-c,y:h.plotY- c,width:2*c,height:2*c}):h.shapeArgs=h.plotY=h.dlBox=void 0},alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(a){return l.prototype.haloPath.call(this,0===a?0:this.marker.radius+a)},ttBelow:!1});y.prototype.beforePadding=function(){var a=this,d=this.len,e=this.chart,c=0,b=d,f=this.isXAxis,h=f?"xData":"yData",l=this.min,v={},y=Math.min(e.plotWidth,e.plotHeight),G=Number.MAX_VALUE,D=-Number.MAX_VALUE,k=this.max-l,z=d/k,C=[];x(this.series,function(b){var c= b.options;!b.bubblePadding||!b.visible&&e.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,C.push(b),f&&(x(["minSize","maxSize"],function(a){var b=c[a],d=/%$/.test(b),b=n(b);v[a]=d?y*b/100:b}),b.minPxSize=v.minSize,b.maxPxSize=Math.max(v.maxSize,v.minSize),b=b.zData,b.length&&(G=r(c.zMin,Math.min(G,Math.max(A(b),!1===c.displayNegative?c.zThreshold:-Number.MAX_VALUE))),D=r(c.zMax,Math.max(D,w(b))))))});x(C,function(d){var e=d[h],m=e.length,n;f&&d.getRadii(G,D,d.minPxSize,d.maxPxSize);if(0< k)for(;m--;)g(e[m])&&a.dataMin<=e[m]&&e[m]<=a.dataMax&&(n=d.radii[m],c=Math.min((e[m]-l)*z-n,c),b=Math.max((e[m]-l)*z+n,b))});C.length&&0b,h=e[d][1]>b,g!==h&&c<(e[d][0]-e[a][0])*(b-e[a][1])/(e[d][1]-e[a][1])+e[a][0]&&(l=!l);return l}var A=a.Chart,y=a.each,x=a.extend,g=a.format,h=a.merge,r=a.win,n=a.wrap;A.prototype.transformFromLatLon=function(g,e){if(void 0===r.proj4)return a.error(21),{x:0,y:null};g=r.proj4(e.crs, [g.lon,g.lat]);var d=e.cosAngle||e.rotation&&Math.cos(e.rotation),h=e.sinAngle||e.rotation&&Math.sin(e.rotation);g=e.rotation?[g[0]*d+g[1]*h,-g[0]*h+g[1]*d]:g;return{x:((g[0]-(e.xoffset||0))*(e.scale||1)+(e.xpan||0))*(e.jsonres||1)+(e.jsonmarginX||0),y:(((e.yoffset||0)-g[1])*(e.scale||1)+(e.ypan||0))*(e.jsonres||1)-(e.jsonmarginY||0)}};A.prototype.transformToLatLon=function(g,e){if(void 0===r.proj4)a.error(21);else{g={x:((g.x-(e.jsonmarginX||0))/(e.jsonres||1)-(e.xpan||0))/(e.scale||1)+(e.xoffset|| 0),y:((-g.y-(e.jsonmarginY||0))/(e.jsonres||1)+(e.ypan||0))/(e.scale||1)+(e.yoffset||0)};var d=e.cosAngle||e.rotation&&Math.cos(e.rotation),h=e.sinAngle||e.rotation&&Math.sin(e.rotation);e=r.proj4(e.crs,"WGS84",e.rotation?{x:g.x*d+g.y*-h,y:g.x*h+g.y*d}:g);return{lat:e.y,lon:e.x}}};A.prototype.fromPointToLatLon=function(g){var e=this.mapTransforms,d;if(e){for(d in e)if(e.hasOwnProperty(d)&&e[d].hitZone&&w({x:g.x,y:-g.y},e[d].hitZone.coordinates[0]))return this.transformToLatLon(g,e[d]);return this.transformToLatLon(g, e["default"])}a.error(22)};A.prototype.fromLatLonToPoint=function(g){var e=this.mapTransforms,d,h;if(!e)return a.error(22),{x:0,y:null};for(d in e)if(e.hasOwnProperty(d)&&e[d].hitZone&&(h=this.transformFromLatLon(g,e[d]),w({x:h.x,y:-h.y},e[d].hitZone.coordinates[0])))return h;return this.transformFromLatLon(g,e["default"])};a.geojson=function(a,e,d){var h=[],l=[],n=function(a){var b,c=a.length;l.push("M");for(b=0;b