File: public/assets/highcharts/highcharts.min.js

Recommend this page to a friend!
  Classes of Aby Dahana  >  Aksara  >  public/assets/highcharts/highcharts.min.js  >  Download  
File: public/assets/highcharts/highcharts.min.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Aksara
A CodeIgniter based API and CRUD generator
Author: By
Last change: Update of public/assets/highcharts/highcharts.min.js
Date: 3 months ago
Size: 271,006 bytes
 

Contents

Class file image Download
/*
 Highcharts JS v6.1.1 (2018-06-27)

 (c) 2009-2016 Torstein Honsi

 License: www.highcharts.com/license
 
 Modules included: exporting
*/

!function(t,e){"object"==typeof module&&module.exports?module.exports=t.document?e(t):e:t.Highcharts=e(t)}("undefined"!=typeof window?window:this,function(t){var e,i,s,n,o,r,a,h,l,c,d,p,u,g,D,z,f,m,x,T,v,y,A,b,B,k,w,P,E,R,M,C,S,L,O,I,N,W,H,X,G,Y,F,j,V,U,_,K,Z,q,$,J,Q,tt,et,it,st,nt,ot,rt,at,ht,lt,ct,dt,pt,ut,gt,ft,mt,xt,vt,yt,bt,kt,wt,Mt,St,Tt,At,Pt,Ct,Lt,Ot,It,Dt,zt=(i=(e=void 0===t?window:t).document,s=e.navigator&&e.navigator.userAgent||"",n=i&&i.createElementNS&&!!i.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,o=/(edge|msie|trident)/i.test(s)&&!e.opera,r=-1!==s.indexOf("Firefox"),a=-1!==s.indexOf("Chrome"),h=r&&parseInt(s.split("Firefox/")[1],10)<4,e.Highcharts?e.Highcharts.error(16,!0):{product:"Highcharts",version:"6.1.1",deg2rad:2*Math.PI/360,doc:i,hasBidiBug:h,hasTouch:i&&void 0!==i.documentElement.ontouchstart,isMS:o,isWebKit:-1!==s.indexOf("AppleWebKit"),isFirefox:r,isChrome:a,isSafari:!a&&-1!==s.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(s),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:n,win:e,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]});!function(x){x.timers=[];var t,e,i=x.charts,l=x.doc,h=x.win;x.error=function(t,e){if(t=x.isNumber(t)?"Highcharts error #"+t+": www.highcharts.com/errors/"+t:t,e)throw Error(t);h.console&&console.log(t)},x.Fx=function(t,e,i){this.options=e,this.elem=t,this.prop=i},x.Fx.prototype={dSetter:function(){var t,e=this.paths[0],i=this.paths[1],s=[],n=this.now,o=e.length;if(1===n)s=this.toD;else if(o===i.length&&n<1)for(;o--;)t=parseFloat(e[o]),s[o]=isNaN(t)?i[o]:n*parseFloat(i[o]-t)+t;else s=i;this.elem.attr("d",s,null,!0)},update:function(){var t=this.elem,e=this.prop,i=this.now,s=this.options.step;this[e+"Setter"]?this[e+"Setter"]():t.attr?t.element&&t.attr(e,i,null,!0):t.style[e]=i+this.unit,s&&s.call(t,i,this)},run:function(t,e,i){var s=this,n=s.options,o=function(t){return!o.stopped&&s.step(t)},r=h.requestAnimationFrame||function(t){setTimeout(t,13)},a=function(){for(var t=0;t<x.timers.length;t++)x.timers[t]()||x.timers.splice(t--,1);x.timers.length&&r(a)};t!==e||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,o.elem=this.elem,o.prop=this.prop,o()&&1===x.timers.push(o)&&r(a)):(delete n.curAnim[this.prop],n.complete&&0===x.keys(n.curAnim).length&&n.complete.call(this.elem))},step:function(t){var e,i=+new Date,s=this.options,n=this.elem,o=s.complete,r=s.duration,a=s.curAnim;return n.attr&&!n.element?t=!1:t||i>=r+this.startTime?(this.now=this.end,this.pos=1,this.update(),e=a[this.prop]=!0,x.objectEach(a,function(t){!0!==t&&(e=!1)}),e&&o&&o.call(n),t=!1):(this.pos=s.easing((i-this.startTime)/r),this.now=this.start+(this.end-this.start)*this.pos,this.update(),t=!0),t},initPath:function(t,e,i){function s(t){var e,i;for(l=t.length;l--;)e="M"===t[l]||"L"===t[l],i=/[a-zA-Z]/.test(t[l+3]),e&&i&&t.splice(l+1,0,t[l+1],t[l+2],t[l+1],t[l+2])}function n(t,e){for(;t.length<a;){t[0]=e[a-t.length];var i=t.slice(0,u);[].splice.apply(t,[0,0].concat(i)),f&&(i=t.slice(t.length-u),[].splice.apply(t,[t.length,0].concat(i)),l--)}t[0]="M"}function o(t,e){for(var i=(a-t.length)/u;0<i&&i--;)(h=t.slice().splice(t.length/m-u,u*m))[0]=e[a-u-i*u],p&&(h[u-6]=h[u-2],h[u-5]=h[u-1]),[].splice.apply(t,[t.length/m,0].concat(h)),f&&i--}e=e||"";var r,a,h,l,c=t.startX,d=t.endX,p=-1<e.indexOf("C"),u=p?7:3;e=e.split(" "),i=i.slice();var g,f=t.isArea,m=f?2:1;if(p&&(s(e),s(i)),c&&d){for(l=0;l<c.length;l++){if(c[l]===d[0]){r=l;break}if(c[0]===d[d.length-c.length+l]){r=l,g=!0;break}}void 0===r&&(e=[])}return e.length&&x.isNumber(r)&&(a=i.length+r*m*u,g?(n(e,i),o(i,e)):(n(i,e),o(e,i))),[e,i]}},x.Fx.prototype.fillSetter=x.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,x.color(this.start).tweenTo(x.color(this.end),this.pos),null,!0)},x.merge=function(){var t,e,i=arguments,s={},n=function(i,s){return"object"!=typeof i&&(i={}),x.objectEach(s,function(t,e){!x.isObject(t,!0)||x.isClass(t)||x.isDOMElement(t)?i[e]=s[e]:i[e]=n(i[e]||{},t)}),i};for(!0===i[0]&&(s=i[1],i=Array.prototype.slice.call(i,2)),e=i.length,t=0;t<e;t++)s=n(s,i[t]);return s},x.pInt=function(t,e){return parseInt(t,e||10)},x.isString=function(t){return"string"==typeof t},x.isArray=function(t){return"[object Array]"===(t=Object.prototype.toString.call(t))||"[object Array Iterator]"===t},x.isObject=function(t,e){return!(!t||"object"!=typeof t||e&&x.isArray(t))},x.isDOMElement=function(t){return x.isObject(t)&&"number"==typeof t.nodeType},x.isClass=function(t){var e=t&&t.constructor;return!(!x.isObject(t,!0)||x.isDOMElement(t)||!e||!e.name||"Object"===e.name)},x.isNumber=function(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&-1/0<t},x.erase=function(t,e){for(var i=t.length;i--;)if(t[i]===e){t.splice(i,1);break}},x.defined=function(t){return null!=t},x.attr=function(i,t,e){var s;return x.isString(t)?x.defined(e)?i.setAttribute(t,e):i&&i.getAttribute&&((s=i.getAttribute(t))||"class"!==t||(s=i.getAttribute(t+"Name"))):x.defined(t)&&x.isObject(t)&&x.objectEach(t,function(t,e){i.setAttribute(e,t)}),s},x.splat=function(t){return x.isArray(t)?t:[t]},x.syncTimeout=function(t,e,i){if(e)return setTimeout(t,e,i);t.call(0,i)},x.clearTimeout=function(t){x.defined(t)&&clearTimeout(t)},x.extend=function(t,e){var i;for(i in t||(t={}),e)t[i]=e[i];return t},x.pick=function(){var t,e,i=arguments,s=i.length;for(t=0;t<s;t++)if(null!=(e=i[t]))return e},x.css=function(t,e){x.isMS&&!x.svg&&e&&void 0!==e.opacity&&(e.filter="alpha(opacity="+100*e.opacity+")"),x.extend(t.style,e)},x.createElement=function(t,e,i,s,n){t=l.createElement(t);var o=x.css;return e&&x.extend(t,e),n&&o(t,{padding:0,border:"none",margin:0}),i&&o(t,i),s&&s.appendChild(t),t},x.extendClass=function(t,e){var i=function(){};return i.prototype=new t,x.extend(i.prototype,e),i},x.pad=function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||0)+t},x.relativeLength=function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},x.wrap=function(t,e,s){var n=t[e];t[e]=function(){var t=Array.prototype.slice.call(arguments),e=arguments,i=this;return i.proceed=function(){n.apply(i,arguments.length?arguments:e)},t.unshift(n),t=s.apply(this,t),i.proceed=null,t}},x.formatSingle=function(t,e,i){var s=x.defaultOptions.lang;return/f$/.test(t)?(i=(i=t.match(/\.([0-9])/))?i[1]:-1,null!==e&&(e=x.numberFormat(e,i,s.decimalPoint,-1<t.indexOf(",")?s.thousandsSep:""))):e=(i||x.time).dateFormat(t,e),e},x.format=function(t,e,i){for(var s,n,o,r,a,h="{",l=!1,c=[];t&&-1!==(h=t.indexOf(h));){if(s=t.slice(0,h),l){for(r=(n=(s=s.split(":")).shift().split(".")).length,a=e,o=0;o<r;o++)a&&(a=a[n[o]]);s.length&&(a=x.formatSingle(s.join(":"),a,i)),c.push(a)}else c.push(s);t=t.slice(h+1),h=(l=!l)?"}":"{"}return c.push(t),c.join("")},x.getMagnitude=function(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))},x.normalizeTickInterval=function(t,e,i,s,n){var o,r=t;for(o=t/(i=x.pick(i,1)),e||(e=n?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?e=x.grep(e,function(t){return 0==t%1}):i<=.1&&(e=[1/i]))),s=0;s<e.length&&(r=e[s],!(n&&t<=r*i||!n&&o<=(e[s]+(e[s+1]||e[s]))/2));s++);return x.correctFloat(r*i,-Math.round(Math.log(.001)/Math.LN10))},x.stableSort=function(t,i){var s,e,n=t.length;for(e=0;e<n;e++)t[e].safeI=e;for(t.sort(function(t,e){return 0===(s=i(t,e))?t.safeI-e.safeI:s}),e=0;e<n;e++)delete t[e].safeI},x.arrayMin=function(t){for(var e=t.length,i=t[0];e--;)t[e]<i&&(i=t[e]);return i},x.arrayMax=function(t){for(var e=t.length,i=t[0];e--;)t[e]>i&&(i=t[e]);return i},x.destroyObjectProperties=function(i,s){x.objectEach(i,function(t,e){t&&t!==s&&t.destroy&&t.destroy(),delete i[e]})},x.discardElement=function(t){var e=x.garbageBin;e||(e=x.createElement("div")),t&&e.appendChild(t),e.innerHTML=""},x.correctFloat=function(t,e){return parseFloat(t.toPrecision(e||14))},x.setAnimation=function(t,e){e.renderer.globalAnimation=x.pick(t,e.options.chart.animation,!0)},x.animObject=function(t){return x.isObject(t)?x.merge(t):{duration:t?500:0}},x.timeUnits={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},x.numberFormat=function(t,e,i,s){t=+t||0,e=+e;var n,o,r=x.defaultOptions.lang,a=(t.toString().split(".")[1]||"").split("e")[0].length,h=t.toString().split("e");return-1===e?e=Math.min(a,20):x.isNumber(e)?e&&h[1]&&h[1]<0&&(0<=(n=e+ +h[1])?(h[0]=(+h[0]).toExponential(n).split("e")[0],e=n):(h[0]=h[0].split(".")[0]||0,t=e<20?(h[0]*Math.pow(10,h[1])).toFixed(e):0,h[1]=0)):e=2,o=(Math.abs(h[1]?h[0]:t)+Math.pow(10,-Math.max(e,a)-1)).toFixed(e),n=3<(a=String(x.pInt(o))).length?a.length%3:0,i=x.pick(i,r.decimalPoint),s=x.pick(s,r.thousandsSep),t=(t<0?"-":"")+(n?a.substr(0,n)+s:""),t+=a.substr(n).replace(/(\d{3})(?=\d)/g,"$1"+s),e&&(t+=i+o.slice(-e)),h[1]&&0!=+t&&(t+="e"+h[1]),t},Math.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},x.getStyle=function(t,e,i){return"width"===e?Math.max(0,Math.min(t.offsetWidth,t.scrollWidth)-x.getStyle(t,"padding-left")-x.getStyle(t,"padding-right")):"height"===e?Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-x.getStyle(t,"padding-top")-x.getStyle(t,"padding-bottom")):(h.getComputedStyle||x.error(27,!0),(t=h.getComputedStyle(t,void 0))&&(t=t.getPropertyValue(e),x.pick(i,"opacity"!==e)&&(t=x.pInt(t))),t)},x.inArray=function(t,e,i){return(x.indexOfPolyfill||Array.prototype.indexOf).call(e,t,i)},x.grep=function(t,e){return(x.filterPolyfill||Array.prototype.filter).call(t,e)},x.find=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){var i,s=t.length;for(i=0;i<s;i++)if(e(t[i],i))return t[i]},x.some=function(t,e,i){return(x.somePolyfill||Array.prototype.some).call(t,e,i)},x.map=function(t,e){for(var i=[],s=0,n=t.length;s<n;s++)i[s]=e.call(t[s],t[s],s,t);return i},x.keys=function(t){return(x.keysPolyfill||Object.keys).call(void 0,t)},x.reduce=function(t,e,i){return(x.reducePolyfill||Array.prototype.reduce).apply(t,2<arguments.length?[e,i]:[e])},x.offset=function(t){var e=l.documentElement;return{top:(t=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0}).top+(h.pageYOffset||e.scrollTop)-(e.clientTop||0),left:t.left+(h.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}},x.stop=function(t,e){for(var i=x.timers.length;i--;)x.timers[i].elem!==t||e&&e!==x.timers[i].prop||(x.timers[i].stopped=!0)},x.each=function(t,e,i){return(x.forEachPolyfill||Array.prototype.forEach).call(t,e,i)},x.objectEach=function(t,e,i){for(var s in t)t.hasOwnProperty(s)&&e.call(i||t[s],t[s],s,t)},x.addEvent=function(t,e,i,s){var n,o=t.addEventListener||x.addEventListenerPolyfill;return n="function"==typeof t&&t.prototype?t.prototype.protoEvents=t.prototype.protoEvents||{}:t.hcEvents=t.hcEvents||{},x.Point&&t instanceof x.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0),o&&o.call(t,e,i,!1),n[e]||(n[e]=[]),n[e].push(i),s&&x.isNumber(s.order)&&(i.order=s.order,n[e].sort(function(t,e){return t.order-e.order})),function(){x.removeEvent(t,e,i)}},x.removeEvent=function(n,o,i){function r(t,e){var i=n.removeEventListener||x.removeEventListenerPolyfill;i&&i.call(n,t,e,!1)}function s(i){var t,s;n.nodeName&&(o?(t={})[o]=!0:t=i,x.objectEach(t,function(t,e){if(i[e])for(s=i[e].length;s--;)r(e,i[e][s])}))}var a,h;x.each(["protoEvents","hcEvents"],function(t){var e=n[t];e&&(o?(a=e[o]||[],i?(-1<(h=x.inArray(i,a))&&(a.splice(h,1),e[o]=a),r(o,i)):(s(e),e[o]=[])):(s(e),n[t]={}))})},x.fireEvent=function(e,i,s,t){var n,o,r,a,h;s=s||{},l.createEvent&&(e.dispatchEvent||e.fireEvent)?((n=l.createEvent("Events")).initEvent(i,!0,!0),x.extend(n,s),e.dispatchEvent?e.dispatchEvent(n):e.fireEvent(i,n)):x.each(["protoEvents","hcEvents"],function(t){if(e[t])for(o=e[t][i]||[],r=o.length,s.target||x.extend(s,{preventDefault:function(){s.defaultPrevented=!0},target:e,type:i}),a=0;a<r;a++)(h=o[a])&&!1===h.call(e,s)&&s.preventDefault()}),t&&!s.defaultPrevented&&t.call(e,s)},x.animate=function(i,s,n){var o,r,a,t,h="";x.isObject(n)||(n={duration:(t=arguments)[2],easing:t[3],complete:t[4]}),x.isNumber(n.duration)||(n.duration=400),n.easing="function"==typeof n.easing?n.easing:Math[n.easing]||Math.easeInOutSine,n.curAnim=x.merge(s),x.objectEach(s,function(t,e){x.stop(i,e),a=new x.Fx(i,n,e),r=null,"d"===e?(a.paths=a.initPath(i,i.d,s.d),a.toD=s.d,o=0,r=1):i.attr?o=i.attr(e):(o=parseFloat(x.getStyle(i,e))||0,"opacity"!==e&&(h="px")),r||(r=t),r&&r.match&&r.match("px")&&(r=r.replace(/px/g,"")),a.run(o,r,h)})},x.seriesType=function(t,e,i,s,n){var o=x.getOptions(),r=x.seriesTypes;return o.plotOptions[t]=x.merge(o.plotOptions[e],i),r[t]=x.extendClass(r[e]||function(){},s),r[t].prototype.type=t,n&&(r[t].prototype.pointClass=x.extendClass(x.Point,n)),r[t]},x.uniqueKey=(t=Math.random().toString(36).substring(2,9),e=0,function(){return"highcharts-"+t+"-"+e++}),h.jQuery&&(h.jQuery.fn.highcharts=function(){var t=[].slice.call(arguments);if(this[0])return t[0]?(new(x[x.isString(t[0])?t.shift():"Chart"])(this[0],t[0],t[1]),this):i[x.attr(this[0],"data-highcharts-chart")]})}(zt),c=(l=zt).each,d=l.isNumber,p=l.map,u=l.merge,g=l.pInt,l.Color=function(t){if(!(this instanceof l.Color))return new l.Color(t);this.init(t)},l.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(t){return[g(t[1]),g(t[2]),g(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(t){return[g(t[1]),g(t[2]),g(t[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(t){var e,i,s,n;if((this.input=t=this.names[t&&t.toLowerCase?t.toLowerCase():""]||t)&&t.stops)this.stops=p(t.stops,function(t){return new l.Color(t[1])});else if(t&&t.charAt&&"#"===t.charAt()&&(e=t.length,t=parseInt(t.substr(1),16),7===e?i=[(16711680&t)>>16,(65280&t)>>8,255&t,1]:4===e&&(i=[(3840&t)>>4|(3840&t)>>8,(240&t)>>4|240&t,(15&t)<<4|15&t,1])),!i)for(s=this.parsers.length;s--&&!i;)(e=(n=this.parsers[s]).regex.exec(t))&&(i=n.parse(e));this.rgba=i||[]},get:function(i){var s,t=this.input,e=this.rgba;return this.stops?((s=u(t)).stops=[].concat(s.stops),c(this.stops,function(t,e){s.stops[e]=[s.stops[e][0],t.get(i)]})):s=e&&d(e[0])?"rgb"===i||!i&&1===e[3]?"rgb("+e[0]+","+e[1]+","+e[2]+")":"a"===i?e[3]:"rgba("+e.join(",")+")":t,s},brighten:function(e){var t,i=this.rgba;if(this.stops)c(this.stops,function(t){t.brighten(e)});else if(d(e)&&0!==e)for(t=0;t<3;t++)i[t]+=g(255*e),i[t]<0&&(i[t]=0),255<i[t]&&(i[t]=255);return this},setOpacity:function(t){return this.rgba[3]=t,this},tweenTo:function(t,e){var i=this.rgba,s=t.rgba;return s.length&&i&&i.length?((t=1!==s[3]||1!==i[3])?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(t?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")":t.input||"none"}},l.color=function(t){return new l.Color(t)},m=(D=zt).addEvent,x=D.animate,T=D.attr,v=D.charts,y=D.color,A=D.css,b=D.createElement,B=D.defined,k=D.deg2rad,w=D.destroyObjectProperties,P=D.doc,E=D.each,R=D.extend,M=D.erase,C=D.grep,S=D.hasTouch,L=D.inArray,O=D.isArray,I=D.isFirefox,N=D.isMS,W=D.isObject,H=D.isString,X=D.isWebKit,G=D.merge,Y=D.noop,F=D.objectEach,j=D.pick,V=D.pInt,U=D.removeEvent,_=D.stop,K=D.svg,Z=D.SVG_NS,q=D.symbolSizes,$=D.win,z=D.SVGElement=function(){return this},R(z.prototype,{opacity:1,SVG_NS:Z,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(t,e){this.element="span"===e?b(e):P.createElementNS(this.SVG_NS,e),this.renderer=t},animate:function(t,e,i){return 0!==(e=D.animObject(j(e,this.renderer.globalAnimation,!0))).duration?(i&&(e.complete=i),x(this,t,e)):(this.attr(t,null,i),e.step&&e.step.call(this)),this},complexColor:function(t,e,i){var s,n,o,r,a,h,l,c,d,p,u,g,f=this.renderer,m=[];D.fireEvent(this.renderer,"complexColor",{args:arguments},function(){t.radialGradient?n="radialGradient":t.linearGradient&&(n="linearGradient"),n&&(o=t[n],a=f.gradients,l=t.stops,p=i.radialReference,O(o)&&(t[n]=o={x1:o[0],y1:o[1],x2:o[2],y2:o[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===n&&p&&!B(o.gradientUnits)&&(o=G(r=o,f.getRadialAttr(p,r),{gradientUnits:"userSpaceOnUse"})),F(o,function(t,e){"id"!==e&&m.push(e,t)}),F(l,function(t){m.push(t)}),m=m.join(","),a[m]?u=a[m].attr("id"):(o.id=u=D.uniqueKey(),a[m]=h=f.createElement(n).attr(o).add(f.defs),h.radAttr=r,h.stops=[],E(l,function(t){0===t[1].indexOf("rgba")?(s=D.color(t[1]),c=s.get("rgb"),d=s.get("a")):(c=t[1],d=1),t=f.createElement("stop").attr({offset:t[0],"stop-color":c,"stop-opacity":d}).add(h),h.stops.push(t)})),g="url("+f.url+"#"+u+")",i.setAttribute(e,g),i.gradient=m,t.toString=function(){return g})})},applyTextOutline:function(t){var e,i,s,n,o,r=this.element;if(-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(r.style.fill))),t=t.split(" "),i=t[t.length-1],(s=t[0])&&"none"!==s&&D.svg){for(this.fakeTS=!0,t=[].slice.call(r.getElementsByTagName("tspan")),this.ySetter=this.xSetter,s=s.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*e+i}),o=t.length;o--;)"highcharts-text-outline"===(e=t[o]).getAttribute("class")&&M(t,r.removeChild(e));n=r.firstChild,E(t,function(t,e){0===e&&(t.setAttribute("x",r.getAttribute("x")),e=r.getAttribute("y"),t.setAttribute("y",e||0),null===e&&r.setAttribute("y",0)),t=t.cloneNode(1),T(t,{class:"highcharts-text-outline",fill:i,stroke:i,"stroke-width":s,"stroke-linejoin":"round"}),r.insertBefore(t,n)})}},attr:function(i,t,e,s){var n,o,r,a,h=this.element,l=this;return"string"==typeof i&&void 0!==t&&(n=i,(i={})[n]=t),"string"==typeof i?l=(this[i+"Getter"]||this._defaultGetter).call(this,i,h):(F(i,function(t,e){r=!1,s||_(this,e),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(e)&&(o||(this.symbolAttr(i),o=!0),r=!0),!this.rotation||"x"!==e&&"y"!==e||(this.doTransform=!0),r||((a=this[e+"Setter"]||this._defaultSetter).call(this,t,e,h),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(e)&&this.updateShadows(e,t,a))},this),this.afterSetters()),e&&e.call(this),l},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(t,e,i){for(var s=this.shadows,n=s.length;n--;)i.call(s[n],"height"===t?Math.max(e-(s[n].cutHeight||0),0):"d"===t?this.d:e,t,s[n])},addClass:function(t,e){var i=this.attr("class")||"";return-1===i.indexOf(t)&&(e||(t=(i+(i?" ":"")+t).replace("  "," ")),this.attr("class",t)),this},hasClass:function(t){return-1!==L(t,(this.attr("class")||"").split(" "))},removeClass:function(t){return this.attr("class",(this.attr("class")||"").replace(t,""))},symbolAttr:function(e){var i=this;E("x y r start end width height innerR anchorX anchorY".split(" "),function(t){i[t]=j(e[t],i[t])}),i.attr({d:i.renderer.symbols[i.symbolName](i.x,i.y,i.width,i.height,i)})},clip:function(t){return this.attr("clip-path",t?"url("+this.renderer.url+"#"+t.id+")":"none")},crisp:function(t,e){var i;return e=e||t.strokeWidth||0,i=Math.round(e)%2/2,t.x=Math.floor(t.x||this.x||0)+i,t.y=Math.floor(t.y||this.y||0)+i,t.width=Math.floor((t.width||this.width||0)-2*i),t.height=Math.floor((t.height||this.height||0)-2*i),B(t.strokeWidth)&&(t.strokeWidth=e),t},css:function(t){var e,i,s=this.styles,n={},o=this.element,r="",a=!s,h=["textOutline","textOverflow","width"];return t&&t.color&&(t.fill=t.color),s&&F(t,function(t,e){t!==s[e]&&(n[e]=t,a=!0)}),a&&(s&&(t=R(s,n)),t&&(null===t.width||"auto"===t.width?delete this.textWidth:"text"===o.nodeName.toLowerCase()&&t.width&&(e=this.textWidth=V(t.width))),this.styles=t,e&&!K&&this.renderer.forExport&&delete t.width,o.namespaceURI===this.SVG_NS?(i=function(t,e){return"-"+e.toLowerCase()},F(t,function(t,e){-1===L(e,h)&&(r+=e.replace(/([A-Z])/g,i)+":"+t+";")}),r&&T(o,"style",r)):A(o,t),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t&&t.textOutline&&this.applyTextOutline(t.textOutline))),this},strokeWidth:function(){return this["stroke-width"]||0},on:function(t,e){var i=this,s=i.element;return S&&"click"===t?(s.ontouchstart=function(t){i.touchEventFired=Date.now(),t.preventDefault(),e.call(s,t)},s.onclick=function(t){(-1===$.navigator.userAgent.indexOf("Android")||1100<Date.now()-(i.touchEventFired||0))&&e.call(s,t)}):s["on"+t]=e,this},setRadialReference:function(t){var e=this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this},translate:function(t,e){return this.attr({translateX:t,translateY:e})},invert:function(t){return this.inverted=t,this.updateTransform(),this},updateTransform:function(){var t=this.translateX||0,e=this.translateY||0,i=this.scaleX,s=this.scaleY,n=this.inverted,o=this.rotation,r=this.matrix,a=this.element;n&&(t+=this.width,e+=this.height),t=["translate("+t+","+e+")"],B(r)&&t.push("matrix("+r.join(",")+")"),n?t.push("rotate(90) scale(-1,1)"):o&&t.push("rotate("+o+" "+j(this.rotationOriginX,a.getAttribute("x"),0)+" "+j(this.rotationOriginY,a.getAttribute("y")||0)+")"),(B(i)||B(s))&&t.push("scale("+j(i,1)+" "+j(s,1)+")"),t.length&&a.setAttribute("transform",t.join(" "))},toFront:function(){var t=this.element;return t.parentNode.appendChild(t),this},align:function(t,e,i){var s,n,o,r,a,h,l={};return o=(n=this.renderer).alignedObjects,t?(this.alignOptions=t,this.alignByTranslate=e,(!i||H(i))&&(this.alignTo=s=i||"renderer",M(o,this),o.push(this),i=null)):(t=this.alignOptions,e=this.alignByTranslate,s=this.alignTo),i=j(i,n[s],n),s=t.align,n=t.verticalAlign,o=(i.x||0)+(t.x||0),r=(i.y||0)+(t.y||0),"right"===s?a=1:"center"===s&&(a=2),a&&(o+=(i.width-(t.width||0))/a),l[e?"translateX":"x"]=Math.round(o),"bottom"===n?h=1:"middle"===n&&(h=2),h&&(r+=(i.height-(t.height||0))/h),l[e?"translateY":"y"]=Math.round(r),this[this.placed?"animate":"attr"](l),this.placed=!0,this.alignAttr=l,this},getBBox:function(t,e){var i,s,n,o,r,a=this.renderer,h=this.element,l=this.styles,c=this.textStr,d=a.cache,p=a.cacheKeys;if(s=(e=j(e,this.rotation))*k,n=l&&l.fontSize,B(c)&&(-1===(r=c.toString()).indexOf("<")&&(r=r.replace(/[0-9]/g,"0")),r+=["",e||0,n,this.textWidth,l&&l.textOverflow].join()),r&&!t&&(i=d[r]),!i){if(h.namespaceURI===this.SVG_NS||a.forExport){try{(o=this.fakeTS&&function(e){E(h.querySelectorAll(".highcharts-text-outline"),function(t){t.style.display=e})})&&o("none"),i=h.getBBox?R({},h.getBBox()):{width:h.offsetWidth,height:h.offsetHeight},o&&o("")}catch(t){}(!i||i.width<0)&&(i={width:0,height:0})}else i=this.htmlGetBBox();if(a.isSVG&&(t=i.width,a=i.height,l&&"11px"===l.fontSize&&17===Math.round(a)&&(i.height=a=14),e&&(i.width=Math.abs(a*Math.sin(s))+Math.abs(t*Math.cos(s)),i.height=Math.abs(a*Math.cos(s))+Math.abs(t*Math.sin(s)))),r&&0<i.height){for(;250<p.length;)delete d[p.shift()];d[r]||p.push(r),d[r]=i}}return i},show:function(t){return this.attr({visibility:t?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(t){var e=this;e.animate({opacity:0},{duration:t||150,complete:function(){e.attr({y:-9999})}})},add:function(t){var e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),this.parentInverted=t&&t.inverted,void 0!==this.textStr&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(t){var e=t.parentNode;e&&e.removeChild(t)},destroy:function(){var i=this,t=i.element||{},e=i.renderer.isSVG&&"SPAN"===t.nodeName&&i.parentGroup,s=t.ownerSVGElement,n=i.clipPath;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,_(i),n&&s&&(E(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){var e=t.getAttribute("clip-path"),i=n.element.id;(-1<e.indexOf("(#"+i+")")||-1<e.indexOf('("#'+i+'")'))&&t.removeAttribute("clip-path")}),i.clipPath=n.destroy()),i.stops){for(s=0;s<i.stops.length;s++)i.stops[s]=i.stops[s].destroy();i.stops=null}for(i.safeRemoveChild(t),i.destroyShadows();e&&e.div&&0===e.div.childNodes.length;)t=e.parentGroup,i.safeRemoveChild(e.div),delete e.div,e=t;return i.alignTo&&M(i.renderer.alignedObjects,i),F(i,function(t,e){delete i[e]}),null},shadow:function(t,e,i){var s,n,o,r,a,h,l=[],c=this.element;if(t){if(!this.shadows){for(r=j(t.width,3),a=(t.opacity||.15)/r,h=this.parentInverted?"(-1,-1)":"("+j(t.offsetX,1)+", "+j(t.offsetY,1)+")",s=1;s<=r;s++)n=c.cloneNode(0),o=2*r+1-2*s,T(n,{isShadow:"true",stroke:t.color||"#000000","stroke-opacity":a*s,"stroke-width":o,transform:"translate"+h,fill:"none"}),i&&(T(n,"height",Math.max(T(n,"height")-o,0)),n.cutHeight=o),e?e.element.appendChild(n):c.parentNode&&c.parentNode.insertBefore(n,c),l.push(n);this.shadows=l}}else this.destroyShadows();return this},destroyShadows:function(){E(this.shadows||[],function(t){this.safeRemoveChild(t)},this),this.shadows=void 0},xGetter:function(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)},_defaultGetter:function(t){return t=j(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0),/^[\-0-9\.]+$/.test(t)&&(t=parseFloat(t)),t},dSetter:function(t,e,i){t&&t.join&&(t=t.join(" ")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)},dashstyleSetter:function(t){var e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){for(e=(t=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",")).length;e--;)t[e]=V(t[e])*i;t=t.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}},alignSetter:function(t){this.alignValue=t,this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[t])},opacitySetter:function(t,e,i){this[e]=t,i.setAttribute(e,t)},titleSetter:function(t){var e=this.element.getElementsByTagName("title")[0];e||(e=P.createElementNS(this.SVG_NS,"title"),this.element.appendChild(e)),e.firstChild&&e.removeChild(e.firstChild),e.appendChild(P.createTextNode(String(j(t),"").replace(/<[^>]*>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">")))},textSetter:function(t){t!==this.textStr&&(delete this.bBox,this.textStr=t,this.added&&this.renderer.buildText(this))},fillSetter:function(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)},visibilitySetter:function(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t},zIndexSetter:function(t,e){var i,s,n,o,r=this.renderer,a=this.parentGroup,h=(a||r).element||r.box,l=this.element;if(r=h===r.box,i=this.added,B(t)?(l.setAttribute("data-z-index",t),t=+t,this[e]===t&&(i=!1)):B(this[e])&&l.removeAttribute("data-z-index"),this[e]=t,i){for((t=this.zIndex)&&a&&(a.handleZ=!0),o=(e=h.childNodes).length-1;0<=o&&!s;o--)i=(a=e[o]).getAttribute("data-z-index"),n=!B(i),a!==l&&(t<0&&n&&!r&&!o?(h.insertBefore(l,e[o]),s=!0):(V(i)<=t||n&&(!B(t)||0<=t))&&(h.insertBefore(l,e[o+1]||null),s=!0));s||(h.insertBefore(l,e[r?3:0]||null),s=!0)}return s},_defaultSetter:function(t,e,i){i.setAttribute(e,t)}}),z.prototype.yGetter=z.prototype.xGetter,z.prototype.translateXSetter=z.prototype.translateYSetter=z.prototype.rotationSetter=z.prototype.verticalAlignSetter=z.prototype.rotationOriginXSetter=z.prototype.rotationOriginYSetter=z.prototype.scaleXSetter=z.prototype.scaleYSetter=z.prototype.matrixSetter=function(t,e){this[e]=t,this.doTransform=!0},z.prototype["stroke-widthSetter"]=z.prototype.strokeSetter=function(t,e,i){this[e]=t,this.stroke&&this["stroke-width"]?(z.prototype.fillSetter.call(this,this.stroke,"stroke",i),i.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===e&&0===t&&this.hasStroke&&(i.removeAttribute("stroke"),this.hasStroke=!1)},f=D.SVGRenderer=function(){this.init.apply(this,arguments)},R(f.prototype,{Element:z,SVG_NS:Z,init:function(t,e,i,s,n,o){var r,a;r=(s=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}).css(this.getStyle(s))).element,t.appendChild(r),T(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&T(r,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=r,this.boxWrapper=s,this.alignedObjects=[],this.url=(I||X)&&P.getElementsByTagName("base").length?$.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(P.createTextNode("Created with Highcharts 6.1.1")),this.defs=this.createElement("defs").add(),this.allowHTML=o,this.forExport=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(e,i,!1),I&&t.getBoundingClientRect&&((e=function(){A(t,{left:0,top:0}),a=t.getBoundingClientRect(),A(t,{left:Math.ceil(a.left)-a.left+"px",top:Math.ceil(a.top)-a.top+"px"})})(),this.unSubPixelFix=m($,"resize",e))},getStyle:function(t){return this.style=R({fontSize:"12px"},t)},setStyle:function(t){this.boxWrapper.css(this.getStyle(t))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),w(this.gradients||{}),this.gradients=null,t&&(this.defs=t.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},createElement:function(t){var e=new this.Element;return e.init(this,t),e},draw:Y,getRadialAttr:function(t,e){return{cx:t[0]-t[2]/2+e.cx*t[2],cy:t[1]-t[2]/2+e.cy*t[2],r:e.r*t[2]}},getSpanWidth:function(t){return t.getBBox(!0).width},applyEllipsis:function(t,e,i,s){var n,o,r=t.rotation,a=i,h=0,l=i.length,c=function(t){e.removeChild(e.firstChild),t&&e.appendChild(P.createTextNode(t))};if(t.rotation=0,o=s<(a=this.getSpanWidth(t,e))){for(;h<=l;)n=Math.ceil((h+l)/2),c(a=i.substring(0,n)+"..."),a=this.getSpanWidth(t,e),h===l?h=l+1:s<a?l=n-1:h=n;0===l&&c("")}return t.rotation=r,o},escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},buildText:function(p){var u,t,g,f=p.element,m=this,x=m.forExport,e=j(p.textStr,"").toString(),i=-1!==e.indexOf("<"),s=f.childNodes,v=T(f,"x"),n=p.styles,y=p.textWidth,o=n&&n.lineHeight,r=n&&n.textOutline,b=n&&"ellipsis"===n.textOverflow,k=n&&"nowrap"===n.whiteSpace,a=n&&n.fontSize,h=s.length,w=(n=y&&!p.added&&this.box,function(t){var e;return e=/(px|em)$/.test(t&&t.style.fontSize)?t.style.fontSize:a||m.style.fontSize||12,o?V(o):m.fontMetrics(e,t.getAttribute("style")?t:f).h}),M=function(i,s){return F(m.escapes,function(t,e){s&&-1!==L(t,s)||(i=i.toString().replace(new RegExp(t,"g"),e))}),i},S=function(t,e){var i;if(i=t.indexOf("<"),-1!==(i=(t=t.substring(i,t.indexOf(">")-i)).indexOf(e+"="))&&(i=i+e.length+1,'"'===(e=t.charAt(i))||"'"===e))return(t=t.substring(i+1)).substring(0,t.indexOf(e))};if((t=[e,b,k,o,r,a,y].join())!==p.textCache){for(p.textCache=t;h--;)f.removeChild(s[h]);i||r||b||y||-1!==e.indexOf(" ")?(n&&n.appendChild(f),e=i?e.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g):[e],e=C(e,function(t){return""!==t}),E(e,function(t,l){var c,d=0;t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),c=t.split("|||"),E(c,function(t){if(""!==t||1===c.length){var e,i,s={},n=P.createElementNS(m.SVG_NS,"tspan");if((e=S(t,"class"))&&T(n,"class",e),(e=S(t,"style"))&&(e=e.replace(/(;| |^)color([ :])/,"$1fill$2"),T(n,"style",e)),(i=S(t,"href"))&&!x&&(T(n,"onclick",'location.href="'+i+'"'),T(n,"class","highcharts-anchor"),A(n,{cursor:"pointer"}))," "!==(t=M(t.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" "))){if(n.appendChild(P.createTextNode(t)),d?s.dx=0:l&&null!==v&&(s.x=v),T(n,s),f.appendChild(n),!d&&g&&(!K&&x&&A(n,{display:"block"}),T(n,"dy",w(n))),y){s=t.replace(/([^\^])-/g,"$1- ").split(" "),i=1<c.length||l||1<s.length&&!k;var o,r=[],a=w(n),h=p.rotation;for(b&&(u=m.applyEllipsis(p,n,t,y));!b&&i&&(s.length||r.length);)p.rotation=0,o=m.getSpanWidth(p,n),t=y<o,void 0===u&&(u=t),t&&1!==s.length?(n.removeChild(n.firstChild),r.unshift(s.pop())):(s=r,r=[],s.length&&!k&&(n=P.createElementNS(Z,"tspan"),T(n,{dy:a,x:v}),e&&T(n,"style",e),f.appendChild(n)),y<o&&(y=o+1)),s.length&&n.appendChild(P.createTextNode(s.join(" ").replace(/- /g,"-")));p.rotation=h}d++}}}),g=g||f.childNodes.length}),b&&u&&p.attr("title",M(p.textStr,["&lt;","&gt;"])),n&&n.removeChild(f),r&&p.applyTextOutline&&p.applyTextOutline(r)):f.appendChild(P.createTextNode(M(e)))}},getContrast:function(t){return 510<(t=y(t).rgba)[0]+t[1]+t[2]?"#000000":"#FFFFFF"},button:function(t,e,i,s,n,o,r,a,h){var l,c,d,p,u=this.label(t,e,i,h,null,null,null,null,"button"),g=0;return u.attr(G({padding:8,r:2},n)),n=G({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},n),l=n.style,delete n.style,o=G(n,{fill:"#e6e6e6"},o),c=o.style,delete o.style,r=G(n,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},r),d=r.style,delete r.style,a=G(n,{style:{color:"#cccccc"}},a),p=a.style,delete a.style,m(u.element,N?"mouseover":"mouseenter",function(){3!==g&&u.setState(1)}),m(u.element,N?"mouseout":"mouseleave",function(){3!==g&&u.setState(g)}),u.setState=function(t){1!==t&&(u.state=g=t),u.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t||0]),u.attr([n,o,r,a][t||0]).css([l,c,d,p][t||0])},u.attr(n).css(R({cursor:"default"},l)),u.on("click",function(t){3!==g&&s.call(u,t)})},crispLine:function(t,e){return t[1]===t[4]&&(t[1]=t[4]=Math.round(t[1])-e%2/2),t[2]===t[5]&&(t[2]=t[5]=Math.round(t[2])+e%2/2),t},path:function(t){var e={fill:"none"};return O(t)?e.d=t:W(t)&&R(e,t),this.createElement("path").attr(e)},circle:function(t,e,i){return t=W(t)?t:{x:t,y:e,r:i},(e=this.createElement("circle")).xSetter=e.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},e.attr(t)},arc:function(t,e,i,s,n,o){return W(t)?(e=(s=t).y,i=s.r,t=s.x):s={innerR:s,start:n,end:o},(t=this.symbol("arc",t,e,i,i,s)).r=i,t},rect:function(t,e,i,s,n,o){n=W(t)?t.r:n;var r=this.createElement("rect");return t=W(t)?t:void 0===t?{}:{x:t,y:e,width:Math.max(i,0),height:Math.max(s,0)},void 0!==o&&(t.strokeWidth=o,t=r.crisp(t)),t.fill="none",n&&(t.r=n),r.rSetter=function(t,e,i){T(i,{rx:t,ry:t})},r.attr(t)},setSize:function(t,e,i){var s=this.alignedObjects,n=s.length;for(this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:j(i,!0)?void 0:0});n--;)s[n].align()},g:function(t){var e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e},image:function(e,t,i,s,n,o){var r,a={preserveAspectRatio:"none"},h=function(t,e){t.setAttributeNS?t.setAttributeNS("http://www.w3.org/1999/xlink","href",e):t.setAttribute("hc-svg-href",e)},l=function(t){h(r.element,e),o.call(r,t)};return 1<arguments.length&&R(a,{x:t,y:i,width:s,height:n}),r=this.createElement("image").attr(a),o?(h(r.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),a=new $.Image,m(a,"load",l),a.src=e,a.complete&&l({})):h(r.element,e),r},symbol:function(t,e,i,s,n,o){var r,a,h,l=this,c=/^url\((.*?)\)$/,d=c.test(t),p=!d&&(this.symbols[t]?t:"circle"),u=p&&this.symbols[p],g=B(e)&&u&&u.call(this.symbols,Math.round(e),Math.round(i),s,n,o);return u?((r=this.path(g)).attr("fill","none"),R(r,{symbolName:p,x:e,y:i,width:s,height:n}),o&&R(r,o)):d&&(a=t.match(c)[1],(r=this.image(a)).imgwidth=j(q[a]&&q[a].width,o&&o.width),r.imgheight=j(q[a]&&q[a].height,o&&o.height),h=function(){r.attr({width:r.width,height:r.height})},E(["width","height"],function(t){r[t+"Setter"]=function(t,e){var i={},s=this["img"+e],n="width"===e?"translateX":"translateY";this[e]=t,B(s)&&(this.element&&this.element.setAttribute(e,s),this.alignByTranslate||(i[n]=((this[e]||0)-s)/2,this.attr(i)))}}),B(e)&&r.attr({x:e,y:i}),r.isImg=!0,B(r.imgwidth)&&B(r.imgheight)?h():(r.attr({width:0,height:0}),b("img",{onload:function(){var t=v[l.chartIndex];0===this.width&&(A(this,{position:"absolute",top:"-999em"}),P.body.appendChild(this)),q[a]={width:this.width,height:this.height},r.imgwidth=this.width,r.imgheight=this.height,r.element&&h(),this.parentNode&&this.parentNode.removeChild(this),l.imgCount--,!l.imgCount&&t&&t.onload&&t.onload()},src:a}),this.imgCount++)),r},symbols:{circle:function(t,e,i,s){return this.arc(t+i/2,e+s/2,i/2,s/2,{start:0,end:2*Math.PI,open:!1})},square:function(t,e,i,s){return["M",t,e,"L",t+i,e,t+i,e+s,t,e+s,"Z"]},triangle:function(t,e,i,s){return["M",t+i/2,e,"L",t+i,e+s,t,e+s,"Z"]},"triangle-down":function(t,e,i,s){return["M",t,e,"L",t+i,e,t+i/2,e+s,"Z"]},diamond:function(t,e,i,s){return["M",t+i/2,e,"L",t+i,e+s/2,t+i/2,e+s,t,e+s/2,"Z"]},arc:function(t,e,i,s,n){var o=n.start,r=n.r||i,a=n.r||s||i,h=n.end-.001;i=n.innerR,s=j(n.open,Math.abs(n.end-n.start-2*Math.PI)<.001);var l=Math.cos(o),c=Math.sin(o),d=Math.cos(h);return h=Math.sin(h),r=["M",t+r*l,e+a*c,"A",r,a,0,n=n.end-o-Math.PI<.001?0:1,1,t+r*d,e+a*h],B(i)&&r.push(s?"M":"L",t+i*d,e+i*h,"A",i,i,0,n,0,t+i*l,e+i*c),r.push(s?"":"Z"),r},callout:function(t,e,i,s,n){var o,r=Math.min(n&&n.r||0,i,s),a=r+6,h=n&&n.anchorX;return n=n&&n.anchorY,o=["M",t+r,e,"L",t+i-r,e,"C",t+i,e,t+i,e,t+i,e+r,"L",t+i,e+s-r,"C",t+i,e+s,t+i,e+s,t+i-r,e+s,"L",t+r,e+s,"C",t,e+s,t,e+s,t,e+s-r,"L",t,e+r,"C",t,e,t,e,t+r,e],h&&i<h?e+a<n&&n<e+s-a?o.splice(13,3,"L",t+i,n-6,t+i+6,n,t+i,n+6,t+i,e+s-r):o.splice(13,3,"L",t+i,s/2,h,n,t+i,s/2,t+i,e+s-r):h&&h<0?e+a<n&&n<e+s-a?o.splice(33,3,"L",t,n+6,t-6,n,t,n-6,t,e+r):o.splice(33,3,"L",t,s/2,h,n,t,s/2,t,e+r):n&&s<n&&t+a<h&&h<t+i-a?o.splice(23,3,"L",h+6,e+s,h,e+s+6,h-6,e+s,t+r,e+s):n&&n<0&&t+a<h&&h<t+i-a&&o.splice(3,3,"L",h-6,e,h,e-6,h+6,e,i-r,e),o}},clipRect:function(t,e,i,s){var n=D.uniqueKey(),o=this.createElement("clipPath").attr({id:n}).add(this.defs);return(t=this.rect(t,e,i,s,0).add(o)).id=n,t.clipPath=o,t.count=0,t},text:function(t,e,i,s){var n={};return!s||!this.allowHTML&&this.forExport?(n.x=Math.round(e||0),i&&(n.y=Math.round(i)),(t||0===t)&&(n.text=t),t=this.createElement("text").attr(n),s||(t.xSetter=function(t,e,i){var s,n,o=i.getElementsByTagName("tspan"),r=i.getAttribute(e);for(n=0;n<o.length;n++)(s=o[n]).getAttribute(e)===r&&s.setAttribute(e,t);i.setAttribute(e,t)}),t):this.html(t,e,i)},fontMetrics:function(t,e){return t=t||e&&e.style&&e.style.fontSize||this.style&&this.style.fontSize,{h:e=(t=/px/.test(t)?V(t):/em/.test(t)?parseFloat(t)*(e?this.fontMetrics(null,e.parentNode).f:16):12)<24?t+3:Math.round(1.2*t),b:Math.round(.8*e),f:t}},rotCorr:function(t,e,i){var s=t;return e&&i&&(s=Math.max(s*Math.cos(e*k),4)),{x:-t/3*Math.sin(e*k),y:s}},label:function(t,e,i,s,n,o,r,a,h){var l,c,d,p,u,g,f,m,x,v,y,b,k,w=this,M=w.g("button"!==h&&"label"),S=M.text=w.text("",0,0,r).attr({zIndex:1}),T=0,A=3,P=0,C={},L=/^url\((.*?)\)$/.test(s),O=L;h&&M.addClass("highcharts-"+h),O=L,v=function(){return(m||0)%2/2},y=function(){var t=S.element.style,e={};c=(void 0===d||void 0===p||f)&&B(S.textStr)&&S.getBBox(),M.width=(d||c.width||0)+2*A+P,M.height=(p||c.height||0)+2*A,x=A+w.fontMetrics(t&&t.fontSize,S).b,O&&(l||(M.box=l=w.symbols[s]||L?w.symbol(s):w.rect(),l.addClass(("button"===h?"":"highcharts-label-box")+(h?" highcharts-"+h+"-box":"")),l.add(M),t=v(),e.x=t,e.y=(a?-x:0)+t),e.width=Math.round(M.width),e.height=Math.round(M.height),l.attr(R(e,C)),C={})},b=function(){var t,e=P+A;t=a?0:x,B(d)&&c&&("center"===f||"right"===f)&&(e+={center:.5,right:1}[f]*(d-c.width)),e===S.x&&t===S.y||(S.attr("x",e),S.hasBoxWidthChanged&&(c=S.getBBox(!0),y()),void 0!==t&&S.attr("y",t)),S.x=e,S.y=t},k=function(t,e){l?l.attr(t,e):C[t]=e},M.onAdd=function(){S.add(M),M.attr({text:t||0===t?t:"",x:e,y:i}),l&&B(n)&&M.attr({anchorX:n,anchorY:o})},M.widthSetter=function(t){d=D.isNumber(t)?t:null},M.heightSetter=function(t){p=t},M["text-alignSetter"]=function(t){f=t},M.paddingSetter=function(t){B(t)&&t!==A&&(A=M.padding=t,b())},M.paddingLeftSetter=function(t){B(t)&&t!==P&&(P=t,b())},M.alignSetter=function(t){(t={left:0,center:.5,right:1}[t])!==T&&(T=t,c&&M.attr({x:u}))},M.textSetter=function(t){void 0!==t&&S.textSetter(t),y(),b()},M["stroke-widthSetter"]=function(t,e){t&&(O=!0),m=this["stroke-width"]=t,k(e,t)},M.strokeSetter=M.fillSetter=M.rSetter=function(t,e){"r"!==e&&("fill"===e&&t&&(O=!0),M[e]=t),k(e,t)},M.anchorXSetter=function(t,e){n=M.anchorX=t,k(e,Math.round(t)-v()-u)},M.anchorYSetter=function(t,e){o=M.anchorY=t,k(e,t-g)},M.xSetter=function(t){M.x=t,T&&(t-=T*((d||c.width)+2*A),M["forceAnimate:x"]=!0),u=Math.round(t),M.attr("translateX",u)},M.ySetter=function(t){g=M.y=Math.round(t),M.attr("translateY",g)};var I=M.css;return R(M,{css:function(e){if(e){var i={};e=G(e),E(M.textProps,function(t){void 0!==e[t]&&(i[t]=e[t],delete e[t])}),S.css(i),"width"in i&&y()}return I.call(M,e)},getBBox:function(){return{width:c.width+2*A,height:c.height+2*A,x:c.x-A,y:c.y-A}},shadow:function(t){return t&&(y(),l&&l.shadow(t)),M},destroy:function(){U(M.element,"mouseenter"),U(M.element,"mouseleave"),S&&(S=S.destroy()),l&&(l=l.destroy()),z.prototype.destroy.call(M),M=w=y=b=k=null}})}}),D.Renderer=f,Q=(J=zt).attr,tt=J.createElement,et=J.css,it=J.defined,st=J.each,nt=J.extend,ot=J.isFirefox,rt=J.isMS,at=J.isWebKit,ht=J.pick,lt=J.pInt,ct=J.SVGRenderer,dt=J.win,pt=J.wrap,nt(J.SVGElement.prototype,{htmlCss:function(t){var e=this.element;return(e=t&&"SPAN"===e.tagName&&t.width)&&(delete t.width,this.textWidth=e,this.htmlUpdateTransform()),t&&"ellipsis"===t.textOverflow&&(t.whiteSpace="nowrap",t.overflow="hidden"),this.styles=nt(this.styles,t),et(this.element,t),this},htmlGetBBox:function(){var t=this.element;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var e=this.renderer,i=this.element,s=this.translateX||0,n=this.translateY||0,t=this.x||0,o=this.y||0,r=this.textAlign||"left",a={left:0,center:.5,right:1}[r],h=(c=this.styles)&&c.whiteSpace;if(et(i,{marginLeft:s,marginTop:n}),this.shadows&&st(this.shadows,function(t){et(t,{marginLeft:s+1,marginTop:n+1})}),this.inverted&&st(i.childNodes,function(t){e.invertChild(t,i)}),"SPAN"===i.tagName){var l,c=this.rotation,d=this.textWidth&&lt(this.textWidth),p=[c,r,i.innerHTML,this.textWidth,this.textAlign].join();(l=d!==this.oldTextWidth)&&!(l=d>this.oldTextWidth)&&((l=this.textPxLength)||(et(i,{width:"",whiteSpace:h||"nowrap"}),l=i.offsetWidth),l=d<l),l&&/[ \-]/.test(i.textContent||i.innerText)?(et(i,{width:d+"px",display:"block",whiteSpace:h||"normal"}),this.oldTextWidth=d,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1,p!==this.cTT&&(h=e.fontMetrics(i.style.fontSize).b,it(c)&&c!==(this.oldRotation||0)&&this.setSpanRotation(c,a,h),this.getSpanCorrection(!it(c)&&this.textPxLength||i.offsetWidth,h,a,c,r)),et(i,{left:t+(this.xCorr||0)+"px",top:o+(this.yCorr||0)+"px"}),this.cTT=p,this.oldRotation=c}}else this.alignOnAdd=!0},setSpanRotation:function(t,e,i){var s={},n=this.renderer.getTransformKey();s[n]=s.transform="rotate("+t+"deg)",s[n+(ot?"Origin":"-origin")]=s.transformOrigin=100*e+"% "+i+"px",et(this.element,s)},getSpanCorrection:function(t,e,i){this.xCorr=-t*i,this.yCorr=-e}}),nt(ct.prototype,{getTransformKey:function(){return rt&&!/Edge/.test(dt.navigator.userAgent)?"-ms-transform":at?"-webkit-transform":ot?"MozTransform":dt.opera?"-o-transform":""},html:function(t,e,i){var h=this.createElement("span"),s=h.element,n=h.renderer,o=n.isSVG,l=function(e,n){st(["opacity","visibility"],function(t){pt(e,t+"Setter",function(t,e,i,s){t.call(this,e,i,s),n[i]=e})}),e.addedSetters=!0};return h.textSetter=function(t){t!==s.innerHTML&&delete this.bBox,this.textStr=t,s.innerHTML=ht(t,""),h.doTransform=!0},o&&l(h,h.element.style),h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(t,e){"align"===e&&(e="textAlign"),h[e]=t,h.doTransform=!0},h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)},h.attr({text:t,x:Math.round(e),y:Math.round(i)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"}),s.style.whiteSpace="nowrap",h.css=h.htmlCss,o&&(h.add=function(t){var o,r=n.box.parentNode,a=[];if(this.parentGroup=t){if(!(o=t.div)){for(;t;)a.push(t),t=t.parentGroup;st(a.reverse(),function(i){function t(t,e){i[e]=t,"translateX"===e?s.left=t+"px":s.top=t+"px",i.doTransform=!0}var s,e,n=Q(i.element,"class");n&&(n={className:n}),o=i.div=i.div||tt("div",n,{position:"absolute",left:(i.translateX||0)+"px",top:(i.translateY||0)+"px",display:i.display,opacity:i.opacity,pointerEvents:i.styles&&i.styles.pointerEvents},o||r),s=o.style,nt(i,{classSetter:(e=o,function(t){this.element.setAttribute("class",t),e.className=t}),on:function(){return a[0].div&&h.on.apply({element:a[0].div},arguments),i},translateXSetter:t,translateYSetter:t}),i.addedSetters||l(i,s)})}}else o=r;return o.appendChild(s),h.added=!0,h.alignOnAdd&&h.htmlUpdateTransform(),h}),h}}),gt=(ut=zt).defined,ft=ut.each,mt=ut.extend,xt=ut.merge,vt=ut.pick,yt=ut.timeUnits,bt=ut.win,ut.Time=function(t){this.update(t,!1)},ut.Time.prototype={defaultOptions:{},update:function(t){var e=vt(t&&t.useUTC,!0),n=this;this.options=t=xt(!0,this.options||{},t),this.Date=t.Date||bt.Date,this.timezoneOffset=(this.useUTC=e)&&t.timezoneOffset,this.getTimezoneOffset=this.timezoneOffsetFunction(),(this.variableTimezone=!(e&&!t.getTimezoneOffset&&!t.timezone))||this.timezoneOffset?(this.get=function(t,e){var i=e.getTime(),s=i-n.getTimezoneOffset(e);return e.setTime(s),t=e["getUTC"+t](),e.setTime(i),t},this.set=function(t,e,i){var s;-1!==ut.inArray(t,["Milliseconds","Seconds","Minutes"])?e["set"+t](i):(s=n.getTimezoneOffset(e),s=e.getTime()-s,e.setTime(s),e["setUTC"+t](i),t=n.getTimezoneOffset(e),s=e.getTime()+t,e.setTime(s))}):e?(this.get=function(t,e){return e["getUTC"+t]()},this.set=function(t,e,i){return e["setUTC"+t](i)}):(this.get=function(t,e){return e["get"+t]()},this.set=function(t,e,i){return e["set"+t](i)})},makeTime:function(t,e,i,s,n,o){var r,a,h;return this.useUTC?(r=this.Date.UTC.apply(0,arguments),r+=a=this.getTimezoneOffset(r),a!==(h=this.getTimezoneOffset(r))?r+=h-a:a-36e5!==this.getTimezoneOffset(r-36e5)||ut.isSafari||(r-=36e5)):r=new this.Date(t,e,vt(i,1),vt(s,0),vt(n,0),vt(o,0)).getTime(),r},timezoneOffsetFunction:function(){var t=this,e=this.options,i=bt.moment;if(!this.useUTC)return function(t){return 6e4*new Date(t).getTimezoneOffset()};if(e.timezone){if(i)return function(t){return 6e4*-i.tz(t,e.timezone).utcOffset()};ut.error(25)}return this.useUTC&&e.getTimezoneOffset?function(t){return 6e4*e.getTimezoneOffset(t)}:function(){return 6e4*(t.timezoneOffset||0)}},dateFormat:function(i,s,t){if(!ut.defined(s)||isNaN(s))return ut.defaultOptions.lang.invalidDate||"";i=ut.pick(i,"%Y-%m-%d %H:%M:%S");var n=this,e=new this.Date(s),o=this.get("Hours",e),r=this.get("Day",e),a=this.get("Date",e),h=this.get("Month",e),l=this.get("FullYear",e),c=ut.defaultOptions.lang,d=c.weekdays,p=c.shortWeekdays,u=ut.pad;return e=ut.extend({a:p?p[r]:d[r].substr(0,3),A:d[r],d:u(a),e:u(a,2," "),w:r,b:c.shortMonths[h],B:c.months[h],m:u(h+1),o:h+1,y:l.toString().substr(2,2),Y:l,H:u(o),k:o,I:u(o%12||12),l:o%12||12,M:u(n.get("Minutes",e)),p:o<12?"AM":"PM",P:o<12?"am":"pm",S:u(e.getSeconds()),L:u(Math.round(s%1e3),3)},ut.dateFormats),ut.objectEach(e,function(t,e){for(;-1!==i.indexOf("%"+e);)i=i.replace("%"+e,"function"==typeof t?t.call(n,s):t)}),t?i.substr(0,1).toUpperCase()+i.substr(1):i},getTimeTicks:function(t,e,i,s){var n,o,r=this,a=[],h={},l=new r.Date(e),c=t.unitRange,d=t.count||1;if(gt(e)){r.set("Milliseconds",l,c>=yt.second?0:d*Math.floor(r.get("Milliseconds",l)/d)),c>=yt.second&&r.set("Seconds",l,c>=yt.minute?0:d*Math.floor(r.get("Seconds",l)/d)),c>=yt.minute&&r.set("Minutes",l,c>=yt.hour?0:d*Math.floor(r.get("Minutes",l)/d)),c>=yt.hour&&r.set("Hours",l,c>=yt.day?0:d*Math.floor(r.get("Hours",l)/d)),c>=yt.day&&r.set("Date",l,c>=yt.month?1:d*Math.floor(r.get("Date",l)/d)),c>=yt.month&&(r.set("Month",l,c>=yt.year?0:d*Math.floor(r.get("Month",l)/d)),n=r.get("FullYear",l)),c>=yt.year&&r.set("FullYear",l,n-n%d),c===yt.week&&r.set("Date",l,r.get("Date",l)-r.get("Day",l)+vt(s,1)),n=r.get("FullYear",l),s=r.get("Month",l);var p=r.get("Date",l),u=r.get("Hours",l);for(e=l.getTime(),r.variableTimezone&&(o=i-e>4*yt.month||r.getTimezoneOffset(e)!==r.getTimezoneOffset(i)),l=l.getTime(),e=1;l<i;)a.push(l),l=c===yt.year?r.makeTime(n+e*d,0):c===yt.month?r.makeTime(n,s+e*d):!o||c!==yt.day&&c!==yt.week?o&&c===yt.hour&&1<d?r.makeTime(n,s,p,u+e*d):l+c*d:r.makeTime(n,s,p+e*d*(c===yt.day?1:7)),e++;a.push(l),c<=yt.hour&&a.length<1e4&&ft(a,function(t){0==t%18e5&&"000000000"===r.dateFormat("%H%M%S%L",t)&&(h[t]="day")})}return a.info=mt(t,{higherRanks:h,totalRange:c*d}),a}},wt=(kt=zt).color,Mt=kt.merge,kt.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),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:kt.Time.prototype.defaultOptions,chart:{borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},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:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:kt.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:kt.isTouchDevice?25:10,backgroundColor:wt("#f7f7f7").setOpacity(.85).get(),borderWidth:1,headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.y}</b><br/>',shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!1,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}},kt.setOptions=function(t){return kt.defaultOptions=Mt(!0,kt.defaultOptions,t),kt.time.update(Mt(kt.defaultOptions.global,kt.defaultOptions.time),!1),kt.defaultOptions},kt.getOptions=function(){return kt.defaultOptions},kt.defaultPlotOptions=kt.defaultOptions.plotOptions,kt.time=new kt.Time(Mt(kt.defaultOptions.global,kt.defaultOptions.time)),kt.dateFormat=function(t,e,i){return kt.time.dateFormat(t,e,i)},Tt=(St=zt).correctFloat,At=St.defined,Pt=St.destroyObjectProperties,Ct=St.fireEvent,Lt=St.isNumber,Ot=St.merge,It=St.pick,Dt=St.deg2rad,St.Tick=function(t,e,i,s){this.axis=t,this.pos=e,this.type=i||"",this.isNewLabel=this.isNew=!0,i||s||this.addLabel()},St.Tick.prototype={addLabel:function(){var t,e=this.axis,i=e.options,s=e.chart,n=e.categories,o=e.names,r=this.pos,a=i.labels,h=r===(c=e.tickPositions)[0],l=r===c[c.length-1],c=(o=n?It(n[r],o[r],r):r,n=this.label,c.info);e.isDatetimeAxis&&c&&(t=i.dateTimeLabelFormats[c.higherRanks[r]||c.unitName]),this.isFirst=h,this.isLast=l,i=e.labelFormatter.call({axis:e,chart:s,isFirst:h,isLast:l,dateTimeLabelFormat:t,value:e.isLog?Tt(e.lin2log(o)):o,pos:r}),At(n)?n&&n.attr({text:i}):((this.label=n=At(i)&&a.enabled?s.renderer.text(i,0,0,a.useHTML).css(Ot(a.style)).add(e.labelGroup):null)&&(n.textPxLength=n.getBBox().width),this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(t){var e,i=this.axis,s=i.options.labels,n=t.x,o=i.chart.chartWidth,r=i.chart.spacing,a=It(i.labelLeft,Math.min(i.pos,r[3])),h=(r=It(i.labelRight,Math.max(i.isRadial?0:i.pos+i.len,o-r[1])),this.label),l=this.rotation,c={left:0,center:.5,right:1}[i.labelAlign||h.attr("align")],d=h.getBBox().width,p=i.getSlotWidth(this),u=p,g=1,f={};l||!1===s.overflow?l<0&&n-c*d<a?e=Math.round(n/Math.cos(l*Dt)-a):0<l&&r<n+c*d&&(e=Math.round((o-n)/Math.cos(l*Dt))):(o=n+(1-c)*d,n-c*d<a?u=t.x+u*(1-c)-a:r<o&&(u=r-t.x+u*c,g=-1),(u=Math.min(p,u))<p&&"center"===i.labelAlign&&(t.x+=g*(p-u-c*(p-Math.min(d,u)))),(u<d||i.autoRotation&&(h.styles||{}).width)&&(e=u)),e&&(f.width=e,(s.style||{}).textOverflow||(f.textOverflow="ellipsis"),h.css(f))},getPosition:function(t,e,i,s){var n=this.axis,o=n.chart,r=s&&o.oldChartHeight||o.chartHeight;return t={x:t?St.correctFloat(n.translate(e+i,null,null,s)+n.transB):n.left+n.offset+(n.opposite?(s&&o.oldChartWidth||o.chartWidth)-n.right-n.left:0),y:t?r-n.bottom+n.offset-(n.opposite?n.height:0):St.correctFloat(r-n.translate(e+i,null,null,s)-n.transB)},Ct(this,"afterGetPosition",{pos:t}),t},getLabelPosition:function(t,e,i,s,n,o,r,a){var h=this.axis,l=h.transA,c=h.reversed,d=h.staggerLines,p=h.tickRotCorr||{x:0,y:0},u=n.y,g=s||h.reserveSpaceDefault?0:-h.labelOffset*("center"===h.labelAlign?.5:1),f={};return At(u)||(u=0===h.side?i.rotation?-8:-i.getBBox().height:2===h.side?p.y+8:Math.cos(i.rotation*Dt)*(p.y-i.getBBox(!1,0).height/2)),t=t+n.x+g+p.x-(o&&s?o*l*(c?-1:1):0),e=e+u-(o&&!s?o*l*(c?1:-1):0),d&&(i=r/(a||1)%d,h.opposite&&(i=d-i-1),e+=h.labelOffset/d*i),f.x=t,f.y=Math.round(e),Ct(this,"afterGetLabelPosition",{pos:f}),f},getMarkPath:function(t,e,i,s,n,o){return o.crispLine(["M",t,e,"L",t+(n?0:-i),e+(n?i:0)],s)},renderGridLine:function(t,e,i){var s=this.axis,n=s.options,o=this.gridLine,r={},a=this.pos,h=this.type,l=s.tickmarkOffset,c=s.chart.renderer,d=h?h+"Grid":"grid",p=n[d+"LineWidth"],u=n[d+"LineColor"];n=n[d+"LineDashStyle"],o||(r.stroke=u,r["stroke-width"]=p,n&&(r.dashstyle=n),h||(r.zIndex=1),t&&(r.opacity=0),this.gridLine=o=c.path().attr(r).addClass("highcharts-"+(h?h+"-":"")+"grid-line").add(s.gridGroup)),!t&&o&&(t=s.getPlotLinePath(a+l,o.strokeWidth()*i,t,!0))&&o[this.isNew?"attr":"animate"]({d:t,opacity:e})},renderMark:function(t,e,i){var s=this.axis,n=s.options,o=s.chart.renderer,r=this.type,a=r?r+"Tick":"tick",h=s.tickSize(a),l=this.mark,c=!l,d=t.x;t=t.y;var p=It(n[a+"Width"],!r&&s.isXAxis?1:0);n=n[a+"Color"],h&&(s.opposite&&(h[0]=-h[0]),c&&(this.mark=l=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(s.axisGroup),l.attr({stroke:n,"stroke-width":p})),l[c?"attr":"animate"]({d:this.getMarkPath(d,t,h[0],l.strokeWidth()*i,s.horiz,o),opacity:e}))},renderLabel:function(t,e,i,s){var n=(l=this.axis).horiz,o=l.options,r=this.label,a=o.labels,h=a.step,l=l.tickmarkOffset,c=!0,d=t.x;t=t.y,r&&Lt(d)&&(r.xy=t=this.getLabelPosition(d,t,r,n,a,l,s,h),this.isFirst&&!this.isLast&&!It(o.showFirstLabel,1)||this.isLast&&!this.isFirst&&!It(o.showLastLabel,1)?c=!1:!n||a.step||a.rotation||e||0===i||this.handleOverflow(t),h&&s%h&&(c=!1),c&&Lt(t.y)?(t.opacity=i,r[this.isNewLabel?"attr":"animate"](t),this.isNewLabel=!1):(r.attr("y",-9999),this.isNewLabel=!0))},render:function(t,e,i){var s=(a=this.axis).horiz,n=this.getPosition(s,this.pos,a.tickmarkOffset,e),o=n.x,r=n.y,a=s&&o===a.pos+a.len||!s&&r===a.pos?-1:1;i=It(i,1),this.isActive=!0,this.renderGridLine(e,i,a),this.renderMark(n,i,a),this.renderLabel(n,e,i,t),this.isNew=!1,St.fireEvent(this,"afterRender")},destroy:function(){Pt(this,this.axis)}};var Bt,Et,Rt,Nt,Wt,Ht,Xt,Gt,Yt,Ft,jt,Vt,Ut,_t,Kt,Zt,qt,$t,Jt,Qt,te,ee,ie,se,ne,oe,re,ae,he,le,ce,de,pe,ue,ge,fe,me,xe,ve,ye,be,ke,we,Me,Se,Te,Ae,Pe,Ce,Le,Oe,Ie,De,ze,Be,Ee,Re,Ne,We,He,Xe,Ge,Ye,Fe,je,Ve,Ue,_e,Ke,Ze,qe,$e,Je,Qe,ti,ei,ii,si,ni,oi,ri,ai,hi,li,ci,di,pi,ui,gi,fi,mi,xi,vi,yi,bi,ki,wi,Mi,Si,Ti,Ai,Pi,Ci,Li,Oi,Ii,Di,zi,Bi,Ei,Ri,Ni,Wi,Hi,Xi,Gi,Yi,Fi,ji,Vi,Ui,_i,Ki,Zi,qi,$i,Ji,Qi,ts,es,is,ss,ns,os,rs,as,hs,ls,cs,ds,ps,us,gs,fs,ms,xs,vs,ys,bs,ks,ws,Ms,Ss,Ts,As,Ps,Cs,Ls,Os,Is,Ds,zs,Bs,Es,Rs,Ns,Ws,Hs,Xs,Gs,Ys,Fs,js,Vs,Us,_s,Ks,Zs,qs,$s,Js,Qs,tn,en,sn,nn,on,rn,an,hn,ln,cn,dn,pn,un,gn,fn,mn,xn,vn,yn,bn,kn,wn,Mn,Sn,Tn,An,Pn,Cn,Ln,On,In,Dn,zn,Bn,En,Rn,Nn,Wn,Hn,Xn,Gn,Yn,Fn,jn,Vn,Un,_n,Kn,Zn,qn,$n,Jn,Qn,to,eo,io,so,no,oo,ro,ao,ho,lo,co,po,uo,go,fo,mo,xo,vo,yo,bo,ko,wo,Mo,So,To,Ao,Po,Co,Lo,Oo,Io,Do,zo,Bo,Eo,Ro,No,Wo,Ho,Xo,Go,Yo,Fo,jo,Vo,Uo,_o,Ko,Zo,qo,$o,Jo,Qo,tr,er,ir,sr,nr,or,rr,ar,hr,lr,cr,dr,pr,ur,gr=(Et=(Bt=zt).addEvent,Rt=Bt.animObject,Nt=Bt.arrayMax,Wt=Bt.arrayMin,Ht=Bt.color,Xt=Bt.correctFloat,Gt=Bt.defaultOptions,Yt=Bt.defined,Ft=Bt.deg2rad,jt=Bt.destroyObjectProperties,Vt=Bt.each,Ut=Bt.extend,_t=Bt.fireEvent,Kt=Bt.format,Zt=Bt.getMagnitude,qt=Bt.grep,$t=Bt.inArray,Jt=Bt.isArray,Qt=Bt.isNumber,te=Bt.isString,ee=Bt.merge,ie=Bt.normalizeTickInterval,se=Bt.objectEach,ne=Bt.pick,oe=Bt.removeEvent,re=Bt.splat,ae=Bt.syncTimeout,he=Bt.Tick,le=function(){this.init.apply(this,arguments)},Bt.extend(le.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,style:{color:"#666666",cursor:"default",fontSize:"11px"},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",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},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 Bt.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},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(t,e){var i=e.isX,s=this;s.chart=t,s.horiz=t.inverted&&!s.isZAxis?!i:i,s.isXAxis=i,s.coll=s.coll||(i?"xAxis":"yAxis"),_t(this,"init",{userOptions:e}),s.opposite=e.opposite,s.side=e.side||(s.horiz?s.opposite?0:2:s.opposite?1:3),s.setOptions(e);var n=this.options,o=n.type;s.labelFormatter=n.labels.formatter||s.defaultLabelFormatter,s.userOptions=e,s.minPixelPadding=0,s.reversed=n.reversed,s.visible=!1!==n.visible,s.zoomEnabled=!1!==n.zoomEnabled,s.hasNames="category"===o||!0===n.categories,s.categories=n.categories||s.hasNames,s.names||(s.names=[],s.names.keys={}),s.plotLinesAndBandsGroups={},s.isLog="logarithmic"===o,s.isDatetimeAxis="datetime"===o,s.positiveValuesOnly=s.isLog&&!s.allowNegativeLog,s.isLinked=Yt(n.linkedTo),s.ticks={},s.labelEdge=[],s.minorTicks={},s.plotLinesAndBands=[],s.alternateBands={},s.len=0,s.minRange=s.userMinRange=n.minRange||n.maxZoom,s.range=n.range,s.offset=n.offset||0,s.stacks={},s.oldStacks={},s.stacksTouched=0,s.max=null,s.min=null,s.crosshair=ne(n.crosshair,re(t.options.tooltip.crosshairs)[i?0:1],!1),e=s.options.events,-1===$t(s,t.axes)&&(i?t.axes.splice(t.xAxis.length,0,s):t.axes.push(s),t[s.coll].push(s)),s.series=s.series||[],t.inverted&&!s.isZAxis&&i&&void 0===s.reversed&&(s.reversed=!0),se(e,function(t,e){Et(s,e,t)}),s.lin2log=n.linearToLogConverter||s.lin2log,s.isLog&&(s.val2lin=s.log2lin,s.lin2val=s.lin2log),_t(this,"afterInit")},setOptions:function(t){this.options=ee(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],ee(Gt[this.coll],t)),_t(this,"afterSetOptions",{userOptions:t})},defaultLabelFormatter:function(){var t,e=this.axis,i=this.value,s=e.chart.time,n=e.categories,o=this.dateTimeLabelFormat,r=(a=Gt.lang).numericSymbols,a=a.numericSymbolMagnitude||1e3,h=r&&r.length,l=e.options.labels.format;if(e=e.isLog?Math.abs(i):e.tickInterval,l)t=Kt(l,this,s);else if(n)t=i;else if(o)t=s.dateFormat(o,i);else if(h&&1e3<=e)for(;h--&&void 0===t;)(s=Math.pow(a,h+1))<=e&&0==10*i%s&&null!==r[h]&&0!==i&&(t=Bt.numberFormat(i/s,-1)+r[h]);return void 0===t&&(t=1e4<=Math.abs(i)?Bt.numberFormat(i,-1):Bt.numberFormat(i,-1,void 0,"")),t},getSeriesExtremes:function(){var n=this,o=n.chart;_t(this,"getSeriesExtremes",null,function(){n.hasVisibleSeries=!1,n.dataMin=n.dataMax=n.threshold=null,n.softThreshold=!n.isXAxis,n.buildStacks&&n.buildStacks(),Vt(n.series,function(t){if(t.visible||!o.options.chart.ignoreHiddenSeries){var e,i=t.options,s=i.threshold;n.hasVisibleSeries=!0,n.positiveValuesOnly&&s<=0&&(s=null),n.isXAxis?(i=t.xData).length&&(t=Wt(i),e=Nt(i),Qt(t)||t instanceof Date||(i=qt(i,Qt),t=Wt(i),e=Nt(i)),i.length&&(n.dataMin=Math.min(ne(n.dataMin,i[0],t),t),n.dataMax=Math.max(ne(n.dataMax,i[0],e),e))):(t.getExtremes(),e=t.dataMax,t=t.dataMin,Yt(t)&&Yt(e)&&(n.dataMin=Math.min(ne(n.dataMin,t),t),n.dataMax=Math.max(ne(n.dataMax,e),e)),Yt(s)&&(n.threshold=s),(!i.softThreshold||n.positiveValuesOnly)&&(n.softThreshold=!1))}})}),_t(this,"afterGetSeriesExtremes")},translate:function(t,e,i,s,n,o){var r=this.linkedParent||this,a=1,h=0,l=s?r.oldTransA:r.transA;s=s?r.oldMin:r.min;var c=r.minPixelPadding;return n=(r.isOrdinal||r.isBroken||r.isLog&&n)&&r.lin2val,l||(l=r.transA),i&&(a*=-1,h=r.len),r.reversed&&(h-=(a*=-1)*(r.sector||r.len)),e?(t=(t*a+h-c)/l+s,n&&(t=r.lin2val(t))):(n&&(t=r.val2lin(t)),t=Qt(s)?a*(t-s)*l+h+a*c+(Qt(o)?l*o:0):void 0),t},toPixels:function(t,e){return this.translate(t,!1,!this.horiz,null,!0)+(e?0:this.pos)},toValue:function(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(t,e,i,s,n){var o,r,a,h=this.chart,l=this.left,c=this.top,d=i&&h.oldChartHeight||h.chartHeight,p=i&&h.oldChartWidth||h.chartWidth;o=this.transB;var u=function(t,e,i){return(t<e||i<t)&&(s?t=Math.min(Math.max(e,t),i):a=!0),t};return n=ne(n,this.translate(t,null,null,i)),n=Math.min(Math.max(-1e5,n),1e5),t=i=Math.round(n+o),o=r=Math.round(d-n-o),Qt(n)?this.horiz?(o=c,r=d-this.bottom,t=i=u(t,l,l+this.width)):(t=l,i=p-this.right,o=r=u(o,c,c+this.height)):s=!(a=!0),a&&!s?null:h.renderer.crispLine(["M",t,o,"L",i,r],e||1)},getLinearTickPositions:function(t,e,i){var s,n=Xt(Math.floor(e/t)*t);i=Xt(Math.ceil(i/t)*t);var o,r=[];if(Xt(n+t)===n&&(o=20),this.single)return[e];for(e=n;e<=i&&(r.push(e),(e=Xt(e+t,o))!==s);)s=e;return r},getMinorTickInterval:function(){var t=this.options;return!0===t.minorTicks?ne(t.minorTickInterval,"auto"):!1===t.minorTicks?null:t.minorTickInterval},getMinorTickPositions:function(){var s=this,t=s.options,e=s.tickPositions,n=s.minorTickInterval,o=[],i=s.pointRangePadding||0,r=s.min-i,a=(i=s.max+i)-r;if(a&&a/n<s.len/3)if(s.isLog)Vt(this.paddedTicks,function(t,e,i){e&&o.push.apply(o,s.getLogTickPositions(n,i[e-1],i[e],!0))});else if(s.isDatetimeAxis&&"auto"===this.getMinorTickInterval())o=o.concat(s.getTimeTicks(s.normalizeTimeTickInterval(n),r,i,t.startOfWeek));else for(t=r+(e[0]-r)%n;t<=i&&t!==o[0];t+=n)o.push(t);return 0!==o.length&&s.trimTicks(o),o},adjustForMinRange:function(){var t,e,i,s,n,o,r,a=this.options,h=this.min,l=this.max;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(Yt(a.min)||Yt(a.max)?this.minRange=null:(Vt(this.series,function(t){for(o=t.xData,s=t.xIncrement?1:o.length-1;0<s;s--)n=o[s]-o[s-1],(void 0===i||n<i)&&(i=n)}),this.minRange=Math.min(5*i,this.dataMax-this.dataMin))),l-h<this.minRange&&(e=this.dataMax-this.dataMin>=this.minRange,t=[h-(t=((r=this.minRange)-l+h)/2),ne(a.min,h-t)],e&&(t[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),l=[(h=Nt(t))+r,ne(a.max,h+r)],e&&(l[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),(l=Wt(l))-h<r&&(t[0]=l-r,t[1]=ne(a.min,l-r),h=Nt(t))),this.min=h,this.max=l},getClosest:function(){var s;return this.categories?s=1:Vt(this.series,function(t){var e=t.closestPointRange,i=t.visible||!t.chart.options.chart.ignoreHiddenSeries;!t.noSharedTooltip&&Yt(e)&&i&&(s=Yt(s)?Math.min(s,e):e)}),s},nameToX:function(t){var e,i=Jt(this.categories),s=i?this.categories:this.names,n=t.options.x;return t.series.requireSorting=!1,Yt(n)||(n=!1===this.options.uniqueNames?t.series.autoIncrement():i?$t(t.name,s):ne(s.keys[t.name],-1)),-1===n?i||(e=s.length):e=n,void 0!==e&&(this.names[e]=t.name,this.names.keys[t.name]=e),e},updateNames:function(){var n=this,e=this.names;0<e.length&&(Vt(Bt.keys(e.keys),function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,Vt(this.series||[],function(s){s.xIncrement=null,s.points&&!s.isDirtyData||(s.processData(),s.generatePoints()),Vt(s.points,function(t,e){var i;t.options&&void 0!==(i=n.nameToX(t))&&i!==t.x&&(t.x=i,s.xData[e]=i)})}))},setAxisTranslation:function(t){var i,s=this,e=s.max-s.min,n=s.axisPointRange||0,o=0,r=0,a=s.linkedParent,h=!!s.categories,l=s.transA,c=s.isXAxis;(c||h||n)&&(i=s.getClosest(),a?(o=a.minPointOffset,r=a.pointRangePadding):Vt(s.series,function(t){var e=h?1:c?ne(t.options.pointRange,i,0):s.axisPointRange||0;t=t.options.pointPlacement,n=Math.max(n,e),s.single||(o=Math.max(o,te(t)?0:e/2),r=Math.max(r,"on"===t?0:e))}),a=s.ordinalSlope&&i?s.ordinalSlope/i:1,s.minPointOffset=o*=a,s.pointRangePadding=r*=a,s.pointRange=Math.min(n,e),c&&(s.closestPointRange=i)),t&&(s.oldTransA=l),s.translationSlope=s.transA=l=s.options.staticScale||s.len/(e+r||1),s.transB=s.horiz?s.left:s.bottom,s.minPixelPadding=l*o,_t(this,"afterSetAxisTranslation")},minFromRange:function(){return this.max-this.range},setTickInterval:function(t){var e,i,s,n,o=this,r=o.chart,a=o.options,h=o.isLog,l=o.isDatetimeAxis,c=o.isXAxis,d=o.isLinked,p=a.maxPadding,u=a.minPadding,g=a.tickInterval,f=a.tickPixelInterval,m=o.categories,x=Qt(o.threshold)?o.threshold:null,v=o.softThreshold;l||m||d||this.getTickAmount(),s=ne(o.userMin,a.min),n=ne(o.userMax,a.max),d?(o.linkedParent=r[o.coll][a.linkedTo],r=o.linkedParent.getExtremes(),o.min=ne(r.min,r.dataMin),o.max=ne(r.max,r.dataMax),a.type!==o.linkedParent.options.type&&Bt.error(11,1)):(!v&&Yt(x)&&(o.dataMin>=x?(e=x,u=0):o.dataMax<=x&&(i=x,p=0)),o.min=ne(s,e,o.dataMin),o.max=ne(n,i,o.dataMax)),h&&(o.positiveValuesOnly&&!t&&Math.min(o.min,ne(o.dataMin,o.min))<=0&&Bt.error(10,1),o.min=Xt(o.log2lin(o.min),15),o.max=Xt(o.log2lin(o.max),15)),o.range&&Yt(o.max)&&(o.userMin=o.min=s=Math.max(o.dataMin,o.minFromRange()),o.userMax=n=o.max,o.range=null),_t(o,"foundExtremes"),o.beforePadding&&o.beforePadding(),o.adjustForMinRange(),!(m||o.axisPointRange||o.usePercentage||d)&&Yt(o.min)&&Yt(o.max)&&(r=o.max-o.min)&&(!Yt(s)&&u&&(o.min-=r*u),!Yt(n)&&p&&(o.max+=r*p)),Qt(a.softMin)&&!Qt(o.userMin)&&(o.min=Math.min(o.min,a.softMin)),Qt(a.softMax)&&!Qt(o.userMax)&&(o.max=Math.max(o.max,a.softMax)),Qt(a.floor)&&(o.min=Math.max(o.min,a.floor)),Qt(a.ceiling)&&(o.max=Math.min(o.max,a.ceiling)),v&&Yt(o.dataMin)&&(x=x||0,!Yt(s)&&o.min<x&&o.dataMin>=x?o.min=x:!Yt(n)&&o.max>x&&o.dataMax<=x&&(o.max=x)),o.tickInterval=o.min===o.max||void 0===o.min||void 0===o.max?1:d&&!g&&f===o.linkedParent.options.tickPixelInterval?g=o.linkedParent.tickInterval:ne(g,this.tickAmount?(o.max-o.min)/Math.max(this.tickAmount-1,1):void 0,m?1:(o.max-o.min)*f/Math.max(o.len,f)),c&&!t&&Vt(o.series,function(t){t.processData(o.min!==o.oldMin||o.max!==o.oldMax)}),o.setAxisTranslation(!0),o.beforeSetTickPositions&&o.beforeSetTickPositions(),o.postProcessTickInterval&&(o.tickInterval=o.postProcessTickInterval(o.tickInterval)),o.pointRange&&!g&&(o.tickInterval=Math.max(o.pointRange,o.tickInterval)),t=ne(a.minTickInterval,o.isDatetimeAxis&&o.closestPointRange),!g&&o.tickInterval<t&&(o.tickInterval=t),l||h||g||(o.tickInterval=ie(o.tickInterval,null,Zt(o.tickInterval),ne(a.allowDecimals,!(.5<o.tickInterval&&o.tickInterval<5&&1e3<o.max&&o.max<9999)),!!this.tickAmount)),this.tickAmount||(o.tickInterval=o.unsquish()),this.setTickPositions()},setTickPositions:function(){var t,e=this.options,i=e.tickPositions;t=this.getMinorTickInterval();var s=e.tickPositioner,n=e.startOnTick,o=e.endOnTick;this.tickmarkOffset=this.categories&&"between"===e.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===t&&this.tickInterval?this.tickInterval/5:t,this.single=this.min===this.max&&Yt(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==e.allowDecimals),this.tickPositions=t=i&&i.slice(),!t&&((t=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max)).length>this.len&&(t=[t[0],t.pop()])[0]===t[1]&&(t.length=1),this.tickPositions=t,s&&(s=s.apply(this,[this.min,this.max])))&&(this.tickPositions=t=s),this.paddedTicks=t.slice(0),this.trimTicks(t,n,o),this.isLinked||(this.single&&t.length<2&&(this.min-=.5,this.max+=.5),i||s||this.adjustTickAmount()),_t(this,"afterSetTickPositions")},trimTicks:function(t,e,i){var s=t[0],n=t[t.length-1],o=this.minPointOffset||0;if(!this.isLinked){if(e&&-1/0!==s)this.min=s;else for(;this.min-o>t[0];)t.shift();if(i)this.max=n;else for(;this.max+o<t[t.length-1];)t.pop();0===t.length&&Yt(s)&&!this.options.tickPositions&&t.push((n+s)/2)}},alignToOthers:function(){var i,s={},t=this.options;return!1===this.chart.options.chart.alignTicks||!1===t.alignTicks||!1===t.startOnTick||!1===t.endOnTick||this.isLog||Vt(this.chart[this.coll],function(t){var e=t.options;e=[t.horiz?e.left:e.top,e.width,e.height,e.pane].join(),t.series.length&&(s[e]?i=!0:s[e]=1)}),i},getTickAmount:function(){var t=this.options,e=t.tickAmount,i=t.tickPixelInterval;!Yt(t.tickInterval)&&this.len<i&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(e=2),!e&&this.alignToOthers()&&(e=Math.ceil(this.len/i)+1),e<4&&(this.finalTickAmt=e,e=5),this.tickAmount=e},adjustTickAmount:function(){var t=this.tickInterval,e=this.tickPositions,i=this.tickAmount,s=this.finalTickAmt,n=e&&e.length,o=ne(this.threshold,this.softThreshold?0:null);if(this.hasData()){if(n<i){for(;e.length<i;)e.length%2||this.min===o?e.push(Xt(e[e.length-1]+t)):e.unshift(Xt(e[0]-t));this.transA*=(n-1)/(i-1),this.min=e[0],this.max=e[e.length-1]}else i<n&&(this.tickInterval*=2,this.setTickPositions());if(Yt(s)){for(t=i=e.length;t--;)(3===s&&1==t%2||s<=2&&0<t&&t<i-1)&&e.splice(t,1);this.finalTickAmt=void 0}}},setScale:function(){var e,t;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),t=this.len!==this.oldAxisLength,Vt(this.series,function(t){(t.isDirtyData||t.isDirty||t.xAxis.isDirty)&&(e=!0)}),t||e||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=t||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks(),_t(this,"afterSetScale")},setExtremes:function(t,e,i,s,n){var o=this,r=o.chart;i=ne(i,!0),Vt(o.series,function(t){delete t.kdTree}),n=Ut(n,{min:t,max:e}),_t(o,"setExtremes",n,function(){o.userMin=t,o.userMax=e,o.eventArgs=n,i&&r.redraw(s)})},zoom:function(t,e){var i=this.dataMin,s=this.dataMax,n=this.options,o=Math.min(i,ne(n.min,i));return n=Math.max(s,ne(n.max,s)),t===this.min&&e===this.max||(this.allowZoomOutside||(Yt(i)&&(t<o&&(t=o),n<t&&(t=n)),Yt(s)&&(e<o&&(e=o),n<e&&(e=n))),this.displayBtn=void 0!==t||void 0!==e,this.setExtremes(t,e,!1,void 0,{trigger:"zoom"})),!0},setAxisSize:function(){var t=this.chart,e=(r=this.options).offsets||[0,0,0,0],i=this.horiz,s=this.width=Math.round(Bt.relativeLength(ne(r.width,t.plotWidth-e[3]+e[1]),t.plotWidth)),n=this.height=Math.round(Bt.relativeLength(ne(r.height,t.plotHeight-e[0]+e[2]),t.plotHeight)),o=this.top=Math.round(Bt.relativeLength(ne(r.top,t.plotTop+e[0]),t.plotHeight,t.plotTop)),r=this.left=Math.round(Bt.relativeLength(ne(r.left,t.plotLeft+e[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-n-o,this.right=t.chartWidth-s-r,this.len=Math.max(i?s:n,0),this.pos=i?r:o},getExtremes:function(){var t=this.isLog;return{min:t?Xt(this.lin2log(this.min)):this.min,max:t?Xt(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(t){var e=(i=this.isLog)?this.lin2log(this.min):this.min,i=i?this.lin2log(this.max):this.max;return null===t||-1/0===t?t=e:1/0===t?t=i:t<e?t=e:i<t&&(t=i),this.translate(t,0,1,0,1)},autoLabelAlign:function(t){return 15<(t=(ne(t,0)-90*this.side+720)%360)&&t<165?"right":195<t&&t<345?"left":"center"},tickSize:function(t){var e=this.options,i=e[t+"Length"],s=ne(e[t+"Width"],"tick"===t&&this.isXAxis?1:0);if(s&&i)return"inside"===e[t+"Position"]&&(i=-i),[i,s]},labelMetrics:function(){var t=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[t]&&this.ticks[t].label)},unsquish:function(){var i,s,t,e=this.options.labels,n=this.horiz,o=this.tickInterval,r=o,a=this.len/(((this.categories?1:0)+this.max-this.min)/o),h=e.rotation,l=this.labelMetrics(),c=Number.MAX_VALUE,d=function(t){return t=1<(t/=a||1)?Math.ceil(t):1,Xt(t*o)};return n?(t=!e.staggerLines&&!e.step&&(Yt(h)?[h]:a<ne(e.autoRotationLimit,80)&&e.autoRotation))&&Vt(t,function(t){var e;(t===h||t&&-90<=t&&t<=90)&&(e=(s=d(Math.abs(l.h/Math.sin(Ft*t))))+Math.abs(t/360))<c&&(c=e,i=t,r=s)}):e.step||(r=d(l.h)),this.autoRotation=t,this.labelRotation=ne(i,h),r},getSlotWidth:function(){var t=this.chart,e=this.horiz,i=this.options.labels,s=Math.max(this.tickPositions.length-(this.categories?0:1),1),n=t.margin[3];return e&&(i.step||0)<2&&!i.rotation&&(this.staggerLines||1)*this.len/s||!e&&(i.style&&parseInt(i.style.width,10)||n&&n-t.spacing[3]||.33*t.chartWidth)},renderUnsquish:function(){var n,o,t,e=this.chart,i=e.renderer,s=this.tickPositions,r=this.ticks,a=this.options.labels,h=a&&a.style||{},l=this.horiz,c=this.getSlotWidth(),d=Math.max(1,Math.round(c-2*(a.padding||5))),p={},u=this.labelMetrics(),g=a.style&&a.style.textOverflow,f=0;if(te(a.rotation)||(p.rotation=a.rotation||0),Vt(s,function(t){(t=r[t])&&t.label&&t.label.textPxLength>f&&(f=t.label.textPxLength)}),this.maxLabelLength=f,this.autoRotation)d<f&&f>u.h?p.rotation=this.labelRotation:this.labelRotation=0;else if(c&&(n=d,!g))for(o="clip",d=s.length;!l&&d--;)t=s[d],(t=r[t].label)&&(t.styles&&"ellipsis"===t.styles.textOverflow?t.css({textOverflow:"clip"}):t.textPxLength>c&&t.css({width:c+"px"}),t.getBBox().height>this.len/s.length-(u.h-u.f)&&(t.specificTextOverflow="ellipsis"));p.rotation&&(n=f>.5*e.chartHeight?.33*e.chartHeight:e.chartHeight,g||(o="ellipsis")),(this.labelAlign=a.align||this.autoLabelAlign(this.labelRotation))&&(p.align=this.labelAlign),Vt(s,function(t){var e=(t=r[t])&&t.label,i=h.width,s={};e&&(e.attr(p),n&&!i&&"nowrap"!==h.whiteSpace&&(n<e.textPxLength||"SPAN"===e.element.tagName)?(s.width=n,g||(s.textOverflow=e.specificTextOverflow||o),e.css(s)):e.styles&&e.styles.width&&!s.width&&!i&&e.css({width:null}),delete e.specificTextOverflow,t.rotation=p.rotation)}),this.tickRotCorr=i.rotCorr(u.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||Yt(this.min)&&Yt(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(t){var e,i=this.chart.renderer,s=this.horiz,n=this.opposite,o=this.options.title;this.axisTitle||((e=o.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:n?"right":"left",middle:"center",high:n?"left":"right"})[o.align]),this.axisTitle=i.text(o.text,0,0,o.useHTML).attr({zIndex:7,rotation:o.rotation||0,align:e}).addClass("highcharts-axis-title").css(ee(o.style)).add(this.axisGroup),this.axisTitle.isNew=!0),o.style.width||this.isRadial||this.axisTitle.css({width:this.len}),this.axisTitle[t?"show":"hide"](!0)},generateTick:function(t){var e=this.ticks;e[t]?e[t].addLabel():e[t]=new he(this,t)},getOffset:function(){var t,e,i,s=this,n=(x=s.chart).renderer,o=s.options,r=s.tickPositions,a=s.ticks,h=s.horiz,l=s.side,c=x.inverted&&!s.isZAxis?[1,0,3,2][l]:l,d=0,p=0,u=o.title,g=o.labels,f=0,m=x.axisOffset,x=x.clipOffset,v=[-1,1,1,-1][l],y=o.className,b=s.axisParent,k=this.tickSize("tick");t=s.hasData(),s.showAxis=e=t||ne(o.showEmpty,!0),s.staggerLines=s.horiz&&g.staggerLines,s.axisGroup||(s.gridGroup=n.g("grid").attr({zIndex:o.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(y||"")).add(b),s.axisGroup=n.g("axis").attr({zIndex:o.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(y||"")).add(b),s.labelGroup=n.g("axis-labels").attr({zIndex:g.zIndex||7}).addClass("highcharts-"+s.coll.toLowerCase()+"-labels "+(y||"")).add(b)),t||s.isLinked?(Vt(r,function(t,e){s.generateTick(t,e)}),s.renderUnsquish(),s.reserveSpaceDefault=0===l||2===l||{1:"left",3:"right"}[l]===s.labelAlign,ne(g.reserveSpace,"center"===s.labelAlign||null,s.reserveSpaceDefault)&&Vt(r,function(t){f=Math.max(a[t].getLabelSize(),f)}),s.staggerLines&&(f*=s.staggerLines),s.labelOffset=f*(s.opposite?-1:1)):se(a,function(t,e){t.destroy(),delete a[e]}),u&&u.text&&!1!==u.enabled&&(s.addTitle(e),e&&!1!==u.reserveSpace&&(s.titleOffset=d=s.axisTitle.getBBox()[h?"height":"width"],i=u.offset,p=Yt(i)?0:ne(u.margin,h?5:10))),s.renderLine(),s.offset=v*ne(o.offset,m[l]),s.tickRotCorr=s.tickRotCorr||{x:0,y:0},n=0===l?-s.labelMetrics().h:2===l?s.tickRotCorr.y:0,p=Math.abs(f)+p,f&&(p=p-n+v*(h?ne(g.y,s.tickRotCorr.y+8*v):g.x)),s.axisTitleMargin=ne(i,p),m[l]=Math.max(m[l],s.axisTitleMargin+d+v*s.offset,p,t&&r.length&&k?k[0]+v*s.offset:0),o=o.offset?0:2*Math.floor(s.axisLine.strokeWidth()/2),x[c]=Math.max(x[c],o)},getLinePath:function(t){var e=this.chart,i=this.opposite,s=this.offset,n=this.horiz,o=this.left+(i?this.width:0)+s;return s=e.chartHeight-this.bottom-(i?this.height:0)+s,i&&(t*=-1),e.renderer.crispLine(["M",n?this.left:o,n?s:this.top,"L",n?e.chartWidth-this.right:o,n?s:e.chartHeight-this.bottom],t)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var t=this.horiz,e=this.left,i=this.top,s=this.len,n=this.options.title,o=t?e:i,r=this.opposite,a=this.offset,h=n.x||0,l=n.y||0,c=this.axisTitle,d=this.chart.renderer.fontMetrics(n.style&&n.style.fontSize,c);return c=Math.max(c.getBBox(null,0).height-d.h-1,0),s={low:o+(t?0:s),middle:o+s/2,high:o+(t?s:0)}[n.align],e=(t?i+this.height:e)+(t?1:-1)*(r?-1:1)*this.axisTitleMargin+[-c,c,d.f,-c][this.side],{x:t?s+h:e+(r?this.width:0)+a+h,y:t?e+l-(r?this.height:0)+a:s+l}},renderMinorTick:function(t){var e=this.chart.hasRendered&&Qt(this.oldMin),i=this.minorTicks;i[t]||(i[t]=new he(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)},renderTick:function(t,e){var i=this.isLinked,s=this.ticks,n=this.chart.hasRendered&&Qt(this.oldMin);(!i||t>=this.min&&t<=this.max)&&(s[t]||(s[t]=new he(this,t)),n&&s[t].isNew&&s[t].render(e,!0,.1),s[t].render(e))},render:function(){var i,s,n=this,o=n.chart,t=n.options,r=n.isLog,e=n.isLinked,a=n.tickPositions,h=n.axisTitle,l=n.ticks,c=n.minorTicks,d=n.alternateBands,p=t.stackLabels,u=t.alternateGridColor,g=n.tickmarkOffset,f=n.axisLine,m=n.showAxis,x=Rt(o.renderer.globalAnimation);n.labelEdge.length=0,n.overlap=!1,Vt([l,c,d],function(t){se(t,function(t){t.isActive=!1})}),(n.hasData()||e)&&(n.minorTickInterval&&!n.categories&&Vt(n.getMinorTickPositions(),function(t){n.renderMinorTick(t)}),a.length&&(Vt(a,function(t,e){n.renderTick(t,e)}),g&&(0===n.min||n.single)&&(l[-1]||(l[-1]=new he(n,-1,null,!0)),l[-1].render(-1))),u&&Vt(a,function(t,e){s=void 0!==a[e+1]?a[e+1]+g:n.max-g,0==e%2&&t<n.max&&s<=n.max+(o.polar?-g:g)&&(d[t]||(d[t]=new Bt.PlotLineOrBand(n)),i=t+g,d[t].options={from:r?n.lin2log(i):i,to:r?n.lin2log(s):s,color:u},d[t].render(),d[t].isActive=!0)}),n._addedPlotLB||(Vt((t.plotLines||[]).concat(t.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0)),Vt([l,c,d],function(t){var e,i=[],s=x.duration;se(t,function(t,e){t.isActive||(t.render(e,!1,0),t.isActive=!1,i.push(e))}),ae(function(){for(e=i.length;e--;)t[i[e]]&&!t[i[e]].isActive&&(t[i[e]].destroy(),delete t[i[e]])},t!==d&&o.hasRendered&&s?s:0)}),f&&(f[f.isPlaced?"animate":"attr"]({d:this.getLinePath(f.strokeWidth())}),f.isPlaced=!0,f[m?"show":"hide"](!0)),h&&m&&(t=n.getTitlePosition(),Qt(t.y)?(h[h.isNew?"attr":"animate"](t),h.isNew=!1):(h.attr("y",-9999),h.isNew=!0)),p&&p.enabled&&n.renderStackTotals(),n.isDirty=!1,_t(this,"afterRender")},redraw:function(){this.visible&&(this.render(),Vt(this.plotLinesAndBands,function(t){t.render()})),Vt(this.series,function(t){t.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(t){var e,i=this,s=i.stacks,n=i.plotLinesAndBands;if(_t(this,"destroy",{keepEvents:t}),t||oe(i),se(s,function(t,e){jt(t),s[e]=null}),Vt([i.ticks,i.minorTicks,i.alternateBands],function(t){jt(t)}),n)for(t=n.length;t--;)n[t].destroy();for(e in Vt("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(t){i[t]&&(i[t]=i[t].destroy())}),i.plotLinesAndBandsGroups)i.plotLinesAndBandsGroups[e]=i.plotLinesAndBandsGroups[e].destroy();se(i,function(t,e){-1===$t(e,i.keepProps)&&delete i[e]})},drawCrosshair:function(t,e){var i,s,n=this.crosshair,o=ne(n.snap,!0),r=this.cross;if(_t(this,"drawCrosshair",{e:t,point:e}),t||(t=this.cross&&this.cross.e),this.crosshair&&!1!==(Yt(e)||!o)){if(o?Yt(e)&&(s=ne(e.crosshairPos,this.isXAxis?e.plotX:this.len-e.plotY)):s=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),Yt(s)&&(i=this.getPlotLinePath(e&&(this.isXAxis?e.x:ne(e.stackY,e.y)),null,null,null,s)||null),!Yt(i))return void this.hideCrosshair();o=this.categories&&!this.isRadial,r||(this.cross=r=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(o?"category ":"thin ")+n.className).attr({zIndex:ne(n.zIndex,2)}).add(),r.attr({stroke:n.color||(o?Ht("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":ne(n.width,1)}).css({"pointer-events":"none"}),n.dashStyle&&r.attr({dashstyle:n.dashStyle})),r.show().attr({d:i}),o&&!n.width&&r.attr({"stroke-width":this.transA}),this.cross.e=t}else this.hideCrosshair();_t(this,"afterDrawCrosshair",{e:t,point:e})},hideCrosshair:function(){this.cross&&this.cross.hide()}}),Bt.Axis=le);return de=(ce=zt).Axis,pe=ce.getMagnitude,ue=ce.normalizeTickInterval,ge=ce.timeUnits,de.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)},de.prototype.normalizeTimeTickInterval=function(t,e){var i=e||[["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]];e=i[i.length-1];var s,n=ge[e[0]],o=e[1];for(s=0;s<i.length&&(e=i[s],n=ge[e[0]],o=e[1],!(i[s+1]&&t<=(n*o[o.length-1]+ge[i[s+1][0]])/2));s++);return n===ge.year&&t<5*n&&(o=[1,2,5]),{unitRange:n,count:t=ue(t/n,o,"year"===e[0]?Math.max(pe(t/n),1):1),unitName:e[0]}},me=(fe=zt).Axis,xe=fe.getMagnitude,ve=fe.map,ye=fe.normalizeTickInterval,be=fe.pick,me.prototype.getLogTickPositions=function(t,e,i,s){var n=this.options,o=this.len,r=[];if(s||(this._minorAutoInterval=null),.5<=t)t=Math.round(t),r=this.getLinearTickPositions(t,e,i);else if(.08<=t){var a,h,l,c,d;for(o=Math.floor(e),n=.3<t?[1,2,4]:.15<t?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];o<i+1&&!d;o++)for(h=n.length,a=0;a<h&&!d;a++)e<(l=this.log2lin(this.lin2log(o)*n[a]))&&(!s||c<=i)&&void 0!==c&&r.push(c),i<c&&(d=!0),c=l}else e=this.lin2log(e),i=this.lin2log(i),t=s?this.getMinorTickInterval():n.tickInterval,t=be("auto"===t?null:t,this._minorAutoInterval,n.tickPixelInterval/(s?5:1)*(i-e)/((s?o/this.tickPositions.length:o)||1)),t=ye(t,null,xe(t)),r=ve(this.getLinearTickPositions(t,e,i),this.log2lin),s||(this._minorAutoInterval=t/5);return s||(this.tickInterval=t),r},me.prototype.log2lin=function(t){return Math.log(t)/Math.LN10},me.prototype.lin2log=function(t){return Math.pow(10,t)},we=gr,Me=(ke=zt).arrayMax,Se=ke.arrayMin,Te=ke.defined,Ae=ke.destroyObjectProperties,Pe=ke.each,Ce=ke.erase,Le=ke.merge,Oe=ke.pick,ke.PlotLineOrBand=function(t,e){this.axis=t,e&&(this.options=e,this.id=e.id)},ke.PlotLineOrBand.prototype={render:function(){var i=this,t=i.axis,e=t.horiz,s=i.options,n=s.label,o=i.label,r=s.to,a=s.from,h=s.value,l=Te(a)&&Te(r),c=Te(h),d=i.svgElem,p=!d,u=[],g=s.color,f=Oe(s.zIndex,0),m=s.events,x=(u={class:"highcharts-plot-"+(l?"band ":"line ")+(s.className||"")},{}),v=t.chart.renderer,y=l?"bands":"lines";if(t.isLog&&(a=t.log2lin(a),r=t.log2lin(r),h=t.log2lin(h)),c?(u.stroke=g,u["stroke-width"]=s.width,s.dashStyle&&(u.dashstyle=s.dashStyle)):l&&(g&&(u.fill=g),s.borderWidth&&(u.stroke=s.borderColor,u["stroke-width"]=s.borderWidth)),y+="-"+(x.zIndex=f),(g=t.plotLinesAndBandsGroups[y])||(t.plotLinesAndBandsGroups[y]=g=v.g("plot-"+y).attr(x).add()),p&&(i.svgElem=d=v.path().attr(u).add(g)),c)u=t.getPlotLinePath(h,d.strokeWidth());else{if(!l)return;u=t.getPlotBandPath(a,r,s)}return p&&u&&u.length?(d.attr({d:u}),m&&ke.objectEach(m,function(t,e){d.on(e,function(t){m[e].apply(i,[t])})})):d&&(u?(d.show(),d.animate({d:u})):(d.hide(),o&&(i.label=o=o.destroy()))),n&&Te(n.text)&&u&&u.length&&0<t.width&&0<t.height&&!u.isFlat?(n=Le({align:e&&l&&"center",x:e?!l&&4:10,verticalAlign:!e&&l&&"middle",y:e?l?16:10:l?6:-4,rotation:e&&!l&&90},n),this.renderLabel(n,u,l,f)):o&&o.hide(),i},renderLabel:function(t,e,i,s){var n=this.label,o=this.axis.chart.renderer;n||((n={align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||"")}).zIndex=s,this.label=n=o.text(t.text,0,0,t.useHTML).attr(n).add(),n.css(t.style)),s=e.xBounds||[e[1],e[4],i?e[6]:e[1]],e=e.yBounds||[e[2],e[5],i?e[7]:e[2]],i=Se(s),o=Se(e),n.align(t,!1,{x:i,y:o,width:Me(s)-i,height:Me(e)-o}),n.show()},destroy:function(){Ce(this.axis.plotLinesAndBands,this),delete this.axis,Ae(this)}},ke.extend(we.prototype,{getPlotBandPath:function(t,e){var i,s=this.getPlotLinePath(e,null,null,!0),n=this.getPlotLinePath(t,null,null,!0),o=[],r=this.horiz,a=1;if(t=t<this.min&&e<this.min||t>this.max&&e>this.max,n&&s)for(t&&(i=n.toString()===s.toString(),a=0),t=0;t<n.length;t+=6)r&&s[t+1]===n[t+1]?(s[t+1]+=a,s[t+4]+=a):r||s[t+2]!==n[t+2]||(s[t+2]+=a,s[t+5]+=a),o.push("M",n[t+1],n[t+2],"L",n[t+4],n[t+5],s[t+4],s[t+5],s[t+1],s[t+2],"z"),o.isFlat=i;return o},addPlotBand:function(t){return this.addPlotBandOrLine(t,"plotBands")},addPlotLine:function(t){return this.addPlotBandOrLine(t,"plotLines")},addPlotBandOrLine:function(t,e){var i=new ke.PlotLineOrBand(this,t).render(),s=this.userOptions;return i&&(e&&(s[e]=s[e]||[],s[e].push(t)),this.plotLinesAndBands.push(i)),i},removePlotBandOrLine:function(e){for(var t=this.plotLinesAndBands,i=this.options,s=this.userOptions,n=t.length;n--;)t[n].id===e&&t[n].destroy();Pe([i.plotLines||[],s.plotLines||[],i.plotBands||[],s.plotBands||[]],function(t){for(n=t.length;n--;)t[n].id===e&&Ce(t,t[n])})},removePlotBand:function(t){this.removePlotBandOrLine(t)},removePlotLine:function(t){this.removePlotBandOrLine(t)}}),De=(Ie=zt).doc,ze=Ie.each,Be=Ie.extend,Ee=Ie.format,Re=Ie.isNumber,Ne=Ie.map,We=Ie.merge,He=Ie.pick,Xe=Ie.splat,Ge=Ie.syncTimeout,Ye=Ie.timeUnits,Ie.Tooltip=function(){this.init.apply(this,arguments)},Ie.Tooltip.prototype={init:function(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=e.split&&!t.inverted,this.shared=e.shared||this.split,this.outside=e.outside&&!this.split},cleanSplit:function(i){ze(this.chart.series,function(t){var e=t&&t.tt;e&&(!e.isActive||i?t.tt=e.destroy():e.isActive=!1)})},getLabel:function(){var e,t=this.chart.renderer,i=this.options;return this.label||(this.outside&&(this.container=e=Ie.doc.createElement("div"),e.className="highcharts-tooltip-container",Ie.css(e,{position:"absolute",top:"1px",pointerEvents:"none"}),Ie.doc.body.appendChild(e),this.renderer=t=new Ie.Renderer(e,0,0)),this.split?this.label=t.g("tooltip"):(this.label=t.label("",0,0,i.shape||"callout",null,null,i.useHTML,null,"tooltip").attr({padding:i.padding,r:i.borderRadius}),this.label.attr({fill:i.backgroundColor,"stroke-width":i.borderWidth}).css(i.style).shadow(i.shadow)),this.outside&&(this.label.attr({x:this.distance,y:this.distance}),this.label.xSetter=function(t){e.style.left=t+"px"},this.label.ySetter=function(t){e.style.top=t+"px"}),this.label.attr({zIndex:8}).add()),this.label},update:function(t){this.destroy(),We(!0,this.chart.options.tooltip.userOptions,t),this.init(this.chart,We(!0,this.options,t))},destroy:function(){this.label&&(this.label=this.label.destroy()),this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy()),this.renderer&&(this.renderer=this.renderer.destroy(),Ie.discardElement(this.container)),Ie.clearTimeout(this.hideTimer),Ie.clearTimeout(this.tooltipTimeout)},move:function(t,e,i,s){var n=this,o=n.now,r=!1!==n.options.animation&&!n.isHidden&&(1<Math.abs(t-o.x)||1<Math.abs(e-o.y)),a=n.followPointer||1<n.len;Be(o,{x:r?(2*o.x+t)/3:t,y:r?(o.y+e)/2:e,anchorX:a?void 0:r?(2*o.anchorX+i)/3:i,anchorY:a?void 0:r?(o.anchorY+s)/2:s}),n.getLabel().attr(o),r&&(Ie.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){n&&n.move(t,e,i,s)},32))},hide:function(t){var e=this;Ie.clearTimeout(this.hideTimer),t=He(t,this.options.hideDelay,500),this.isHidden||(this.hideTimer=Ge(function(){e.getLabel()[t?"fadeOut":"hide"](),e.isHidden=!0},t))},getAnchor:function(t,e){var i,s,n,o=this.chart,r=o.inverted,a=o.plotTop,h=o.plotLeft,l=0,c=0;return i=(t=Xe(t))[0].tooltipPos,this.followPointer&&e&&(void 0===e.chartX&&(e=o.pointer.normalize(e)),i=[e.chartX-o.plotLeft,e.chartY-a]),i||(ze(t,function(t){s=t.series.yAxis,n=t.series.xAxis,l+=t.plotX+(!r&&n?n.left-h:0),c+=(t.plotLow?(t.plotLow+t.plotHigh)/2:t.plotY)+(!r&&s?s.top-a:0)}),l/=t.length,c/=t.length,i=[r?o.plotWidth-c:l,this.shared&&!r&&1<t.length&&e?e.chartY-a:r?o.plotHeight-l:c]),Ne(i,Math.round)},getPosition:function(t,e,i){var s,n=this.chart,l=this.distance,c={},d=n.inverted&&i.h||0,o=this.outside,r=o?De.documentElement.clientWidth-2*l:n.chartWidth,a=o?Math.max(De.body.scrollHeight,De.documentElement.scrollHeight,De.body.offsetHeight,De.documentElement.offsetHeight,De.documentElement.clientHeight):n.chartHeight,h=n.pointer.chartPosition,p=["y",a,e,(o?h.top-l:0)+i.plotY+n.plotTop,o?0:n.plotTop,o?a:n.plotTop+n.plotHeight],u=["x",r,t,(o?h.left-l:0)+i.plotX+n.plotLeft,o?0:n.plotLeft,o?r:n.plotLeft+n.plotWidth],g=!this.followPointer&&He(i.ttBelow,!n.inverted==!!i.negative),f=function(t){var e=p;p=u,u=e,s=t},m=function(){!1!==function(t,e,i,s,n,o){var r=i<s-l,a=s+l+i<e,h=s-l-i;if(s+=l,g&&a)c[t]=s;else if(!g&&r)c[t]=h;else if(r)c[t]=Math.min(o-i,h-d<0?h:h-d);else{if(!a)return!1;c[t]=Math.max(n,e<s+d+i?s:s+d)}}.apply(0,p)?!1!==function(t,e,i,s){var n;return s<l||e-l<s?n=!1:c[t]=s<i/2?1:e-i/2<s?e-i-2:s-i/2,n}.apply(0,u)||s||(f(!0),m()):s?c.x=c.y=0:(f(!0),m())};return(n.inverted||1<this.len)&&f(),m(),c},defaultFormatter:function(t){var e,i=this.points||Xe(this);return(e=(e=[t.tooltipFooterHeaderFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.tooltipFooterHeaderFormatter(i[0],!0)),e},refresh:function(t,e){var i,s,n,o,r=this.options,a=t,h={},l=[];i=r.formatter||this.defaultFormatter,h=this.shared,r.enabled&&(Ie.clearTimeout(this.hideTimer),this.followPointer=Xe(a)[0].series.tooltipOptions.followPointer,e=(n=this.getAnchor(a,e))[0],s=n[1],!h||a.series&&a.series.noSharedTooltip?h=a.getLabelConfig():(ze(a,function(t){t.setState("hover"),l.push(t.getLabelConfig())}),(h={x:a[0].category,y:a[0].y}).points=l,a=a[0]),this.len=l.length,h=i.call(h,this),o=a.series,this.distance=He(o.tooltipOptions.distance,16),!1===h?this.hide():(i=this.getLabel(),this.isHidden&&i.attr({opacity:1}).show(),this.split?this.renderSplit(h,Xe(t)):(r.style.width||i.css({width:this.chart.spacingBox.width}),i.attr({text:h&&h.join?h.join(""):h}),i.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+He(a.colorIndex,o.colorIndex)),i.attr({stroke:r.borderColor||a.color||o.color||"#666666"}),this.updatePosition({plotX:e,plotY:s,negative:a.negative,ttBelow:a.ttBelow,h:n[2]||0})),this.isHidden=!1))},renderSplit:function(t,r){var a=this,h=[],l=this.chart,c=l.renderer,d=!0,p=this.options,u=0,g=this.getLabel();Ie.isString(t)&&(t=[!1,t]),ze(t.slice(0,r.length+1),function(t,e){if(!1!==t){var i=(e=r[e-1]||{isHeader:!0,plotX:r[0].plotX}).series||a,s=i.tt,n=e.series||{},o="highcharts-color-"+He(e.colorIndex,n.colorIndex,"none");s||(i.tt=s=c.label(null,null,null,"callout",null,null,p.useHTML).addClass("highcharts-tooltip-box "+o).attr({padding:p.padding,r:p.borderRadius,fill:p.backgroundColor,stroke:p.borderColor||e.color||n.color||"#333333","stroke-width":p.borderWidth}).add(g)),s.isActive=!0,s.attr({text:t}),s.css(p.style).shadow(p.shadow),n=(t=s.getBBox()).width+s.strokeWidth(),e.isHeader?(u=t.height,n=Math.max(0,Math.min(e.plotX+l.plotLeft-n/2,l.chartWidth-n))):n=e.plotX+l.plotLeft-He(p.distance,16)-n,n<0&&(d=!1),t=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0),t-=l.plotTop,h.push({target:e.isHeader?l.plotHeight+u:t,rank:e.isHeader?1:0,size:i.tt.getBBox().height+1,point:e,x:n,tt:s})}}),this.cleanSplit(),Ie.distribute(h,l.plotHeight+u),ze(h,function(t){var e=t.point,i=e.series;t.tt.attr({visibility:void 0===t.pos?"hidden":"inherit",x:d||e.isHeader?t.x:e.plotX+l.plotLeft+He(p.distance,16),y:t.pos+l.plotTop,anchorX:e.isHeader?e.plotX+l.plotLeft:e.plotX+i.xAxis.pos,anchorY:e.isHeader?t.pos+l.plotTop-15:e.plotY+i.yAxis.pos})})},updatePosition:function(t){var e,i=this.chart,s=this.getLabel(),n=(this.options.positioner||this.getPosition).call(this,s.width,s.height,t),o=t.plotX+i.plotLeft;t=t.plotY+i.plotTop,this.outside&&(e=(this.options.borderWidth||0)+2*this.distance,this.renderer.setSize(s.width+e,s.height+e,!1),o+=i.pointer.chartPosition.left-n.x,t+=i.pointer.chartPosition.top-n.y),this.move(Math.round(n.x),Math.round(n.y||0),o,t)},getDateFormat:function(t,e,i,s){var n,o,r=this.chart.time,a=r.dateFormat("%m-%d %H:%M:%S.%L",e),h={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond";for(o in Ye){if(t===Ye.week&&+r.dateFormat("%w",e)===i&&"00:00:00.000"===a.substr(6)){o="week";break}if(Ye[o]>t){o=l;break}if(h[o]&&a.substr(h[o])!=="01-01 00:00:00.000".substr(h[o]))break;"week"!==o&&(l=o)}return o&&(n=s[o]),n},getXDateFormat:function(t,e,i){e=e.dateTimeLabelFormats;var s=i&&i.closestPointRange;return(s?this.getDateFormat(s,t.x,i.options.startOfWeek,e):e.day)||e.year},tooltipFooterHeaderFormatter:function(t,e){e=e?"footer":"header";var i=t.series,s=i.tooltipOptions,n=s.xDateFormat,o=i.xAxis,r=o&&"datetime"===o.options.type&&Re(t.key),a=s[e+"Format"];return r&&!n&&(n=this.getXDateFormat(t,s,o)),r&&n&&ze(t.point&&t.point.tooltipDateKeys||["key"],function(t){a=a.replace("{point."+t+"}","{point."+t+":"+n+"}")}),Ee(a,{point:t,series:i},this.chart.time)},bodyFormatter:function(t){return Ne(t,function(t){var e=t.series.tooltipOptions;return(e[(t.point.formatPrefix||"point")+"Formatter"]||t.point.tooltipFormatter).call(t.point,e[(t.point.formatPrefix||"point")+"Format"])})}},je=(Fe=zt).addEvent,Ve=Fe.attr,Ue=Fe.charts,_e=Fe.color,Ke=Fe.css,Ze=Fe.defined,qe=Fe.each,$e=Fe.extend,Je=Fe.find,Qe=Fe.fireEvent,ti=Fe.isNumber,ei=Fe.isObject,ii=Fe.offset,si=Fe.pick,ni=Fe.splat,oi=Fe.Tooltip,Fe.Pointer=function(t,e){this.init(t,e)},Fe.Pointer.prototype={init:function(t,e){this.options=e,this.chart=t,this.runChartClick=e.chart.events&&!!e.chart.events.click,this.pinchDown=[],this.lastValidTouch={},oi&&(t.tooltip=new oi(t,e.tooltip),this.followTouchMove=si(e.tooltip.followTouchMove,!0)),this.setDOMEvents()},zoomOption:function(t){var e=(s=this.chart).options.chart,i=e.zoomType||"",s=s.inverted;/touch/.test(t.type)&&(i=si(e.pinchType,i)),this.zoomX=t=/x/.test(i),this.zoomY=i=/y/.test(i),this.zoomHor=t&&!s||i&&s,this.zoomVert=i&&!s||t&&s,this.hasZoom=t||i},normalize:function(t,e){var i;return i=t.touches?t.touches.length?t.touches.item(0):t.changedTouches[0]:t,e||(this.chartPosition=e=ii(this.chart.container)),$e(t,{chartX:Math.round(i.pageX-e.left),chartY:Math.round(i.pageY-e.top)})},getCoordinates:function(e){var i={xAxis:[],yAxis:[]};return qe(this.chart.axes,function(t){i[t.isXAxis?"xAxis":"yAxis"].push({axis:t,value:t.toValue(e[t.horiz?"chartX":"chartY"])})}),i},findNearestKDPoint:function(t,n,o){var r;return qe(t,function(t){var e=!(t.noSharedTooltip&&n)&&t.options.findNearestPointBy.indexOf("y")<0;if(t=t.searchPoint(o,e),(e=ei(t,!0))&&!(e=!ei(r,!0))){e=r.distX-t.distX;var i=r.dist-t.dist,s=(t.series.group&&t.series.group.zIndex)-(r.series.group&&r.series.group.zIndex);e=0<(0!==e&&n?e:0!==i?i:0!==s?s:r.series.index>t.series.index?-1:1)}e&&(r=t)}),r},getPointFromEvent:function(t){t=t.target;for(var e;t&&!e;)e=t.point,t=t.parentNode;return e},getChartCoordinatesFromPoint:function(t,e){var i=(s=t.series).xAxis,s=s.yAxis,n=si(t.clientX,t.plotX),o=t.shapeArgs;return i&&s?e?{chartX:i.len+i.pos-n,chartY:s.len+s.pos-t.plotY}:{chartX:n+i.pos,chartY:t.plotY+s.pos}:o&&o.x&&o.y?{chartX:o.x,chartY:o.y}:void 0},getHoverData:function(t,e,i,s,n,o,r){var a,h=[],l=r&&r.isBoosting;return s=!(!s||!t),r=e&&!e.stickyTracking?[e]:Fe.grep(i,function(t){return t.visible&&!(!n&&t.directTouch)&&si(t.options.enableMouseTracking,!0)&&t.stickyTracking}),e=(a=s?t:this.findNearestKDPoint(r,n,o))&&a.series,a&&(n&&!e.noSharedTooltip?(r=Fe.grep(i,function(t){return t.visible&&!(!n&&t.directTouch)&&si(t.options.enableMouseTracking,!0)&&!t.noSharedTooltip}),qe(r,function(t){var e=Je(t.points,function(t){return t.x===a.x&&!t.isNull});ei(e)&&(l&&(e=t.getPoint(e)),h.push(e))})):h.push(a)),{hoverPoint:a,hoverSeries:e,hoverPoints:h}},runPointActions:function(s,t){var n,e=this.chart,i=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,o=!!i&&i.shared,r=(a=t||e.hoverPoint)&&a.series||e.hoverSeries,a=(r=this.getHoverData(a,r,e.series,!!t||r&&r.directTouch&&this.isDirectTouch,o,s,{isBoosting:e.isBoosting})).hoverPoint;if(n=r.hoverPoints,t=(r=r.hoverSeries)&&r.tooltipOptions.followPointer,o=o&&r&&!r.noSharedTooltip,a&&(a!==e.hoverPoint||i&&i.isHidden)){if(qe(e.hoverPoints||[],function(t){-1===Fe.inArray(t,n)&&t.setState()}),qe(n||[],function(t){t.setState("hover")}),e.hoverSeries!==r&&r.onMouseOver(),e.hoverPoint&&e.hoverPoint.firePointEvent("mouseOut"),!a.series)return;a.firePointEvent("mouseOver"),e.hoverPoints=n,e.hoverPoint=a,i&&i.refresh(o?n:a,s)}else t&&i&&!i.isHidden&&(a=i.getAnchor([{}],s),i.updatePosition({plotX:a[0],plotY:a[1]}));this.unDocMouseMove||(this.unDocMouseMove=je(e.container.ownerDocument,"mousemove",function(t){var e=Ue[Fe.hoverChartIndex];e&&e.pointer.onDocumentMouseMove(t)})),qe(e.axes,function(e){var t=si(e.crosshair.snap,!0),i=t?Fe.find(n,function(t){return t.series[e.coll]===e}):void 0;i||!t?e.drawCrosshair(s,i):e.hideCrosshair()})},reset:function(e,t){var i=this.chart,s=i.hoverSeries,n=i.hoverPoint,o=i.hoverPoints,r=i.tooltip,a=r&&r.shared?o:n;e&&a&&qe(ni(a),function(t){t.series.isCartesian&&void 0===t.plotX&&(e=!1)}),e?r&&a&&(r.refresh(a),n&&(n.setState(n.state,!0),qe(i.axes,function(t){t.crosshair&&t.drawCrosshair(null,n)}))):(n&&n.onMouseOut(),o&&qe(o,function(t){t.setState()}),s&&s.onMouseOut(),r&&r.hide(t),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),qe(i.axes,function(t){t.hideCrosshair()}),this.hoverX=i.hoverPoints=i.hoverPoint=null)},scaleGroups:function(e,i){var s,n=this.chart;qe(n.series,function(t){s=e||t.getPlotBox(),t.xAxis&&t.xAxis.zoomEnabled&&t.group&&(t.group.attr(s),t.markerGroup&&(t.markerGroup.attr(s),t.markerGroup.clip(i?n.clipRect:null)),t.dataLabelsGroup&&t.dataLabelsGroup.attr(s))}),n.clipRect.attr(i||n.clipBox)},dragStart:function(t){var e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=this.mouseDownX=t.chartX,e.mouseDownY=this.mouseDownY=t.chartY},drag:function(t){var e,i=this.chart,s=i.options.chart,n=t.chartX,o=t.chartY,r=this.zoomHor,a=this.zoomVert,h=i.plotLeft,l=i.plotTop,c=i.plotWidth,d=i.plotHeight,p=this.selectionMarker,u=this.mouseDownX,g=this.mouseDownY,f=s.panKey&&t[s.panKey+"Key"];p&&p.touch||(n<h?n=h:h+c<n&&(n=h+c),o<l?o=l:l+d<o&&(o=l+d),this.hasDragged=Math.sqrt(Math.pow(u-n,2)+Math.pow(g-o,2)),10<this.hasDragged&&(e=i.isInsidePlot(u-h,g-l),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&e&&!f&&!p&&(this.selectionMarker=p=i.renderer.rect(h,l,r?1:c,a?1:d,0).attr({fill:s.selectionMarkerFill||_e("#335cad").setOpacity(.25).get(),class:"highcharts-selection-marker",zIndex:7}).add()),p&&r&&(n-=u,p.attr({width:Math.abs(n),x:(0<n?0:n)+u})),p&&a&&(n=o-g,p.attr({height:Math.abs(n),y:(0<n?0:n)+g})),e&&!p&&s.panning&&i.pan(t,s.panning)))},drop:function(n){var o=this,e=this.chart,r=this.hasPinched;if(this.selectionMarker){var a,h={originalEvent:n,xAxis:[],yAxis:[]},t=this.selectionMarker,l=t.attr?t.attr("x"):t.x,c=t.attr?t.attr("y"):t.y,d=t.attr?t.attr("width"):t.width,p=t.attr?t.attr("height"):t.height;(this.hasDragged||r)&&(qe(e.axes,function(t){if(t.zoomEnabled&&Ze(t.min)&&(r||o[{xAxis:"zoomX",yAxis:"zoomY"}[t.coll]])){var e=t.horiz,i="touchend"===n.type?t.minPixelPadding:0,s=t.toValue((e?l:c)+i);e=t.toValue((e?l+d:c+p)-i),h[t.coll].push({axis:t,min:Math.min(s,e),max:Math.max(s,e)}),a=!0}}),a&&Qe(e,"selection",h,function(t){e.zoom($e(t,r?{animation:!1}:null))})),ti(e.index)&&(this.selectionMarker=this.selectionMarker.destroy()),r&&this.scaleGroups()}e&&ti(e.index)&&(Ke(e.container,{cursor:e._cursor}),e.cancelClick=10<this.hasDragged,e.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(t){2!==(t=this.normalize(t)).button&&(this.zoomOption(t),t.preventDefault&&t.preventDefault(),this.dragStart(t))},onDocumentMouseUp:function(t){Ue[Fe.hoverChartIndex]&&Ue[Fe.hoverChartIndex].pointer.drop(t)},onDocumentMouseMove:function(t){var e=this.chart,i=this.chartPosition;t=this.normalize(t,i),!i||this.inClass(t.target,"highcharts-tracker")||e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)||this.reset()},onContainerMouseLeave:function(t){var e=Ue[Fe.hoverChartIndex];e&&(t.relatedTarget||t.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=null)},onContainerMouseMove:function(t){var e=this.chart;Ze(Fe.hoverChartIndex)&&Ue[Fe.hoverChartIndex]&&Ue[Fe.hoverChartIndex].mouseIsDown||(Fe.hoverChartIndex=e.index),(t=this.normalize(t)).returnValue=!1,"mousedown"===e.mouseIsDown&&this.drag(t),!this.inClass(t.target,"highcharts-tracker")&&!e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)||e.openMenu||this.runPointActions(t)},inClass:function(t,e){for(var i;t;){if(i=Ve(t,"class")){if(-1!==i.indexOf(e))return!0;if(-1!==i.indexOf("highcharts-container"))return!1}t=t.parentNode}},onTrackerMouseOut:function(t){var e=this.chart.hoverSeries;t=t.relatedTarget||t.toElement,this.isDirectTouch=!1,!e||!t||e.stickyTracking||this.inClass(t,"highcharts-tooltip")||this.inClass(t,"highcharts-series-"+e.index)&&this.inClass(t,"highcharts-tracker")||e.onMouseOut()},onContainerClick:function(t){var e=this.chart,i=e.hoverPoint,s=e.plotLeft,n=e.plotTop;t=this.normalize(t),e.cancelClick||(i&&this.inClass(t.target,"highcharts-tracker")?(Qe(i.series,"click",$e(t,{point:i})),e.hoverPoint&&i.firePointEvent("click",t)):($e(t,this.getCoordinates(t)),e.isInsidePlot(t.chartX-s,t.chartY-n)&&Qe(e,"click",t)))},setDOMEvents:function(){var e=this,t=e.chart.container,i=t.ownerDocument;t.onmousedown=function(t){e.onContainerMouseDown(t)},t.onmousemove=function(t){e.onContainerMouseMove(t)},t.onclick=function(t){e.onContainerClick(t)},this.unbindContainerMouseLeave=je(t,"mouseleave",e.onContainerMouseLeave),Fe.unbindDocumentMouseUp||(Fe.unbindDocumentMouseUp=je(i,"mouseup",e.onDocumentMouseUp)),Fe.hasTouch&&(t.ontouchstart=function(t){e.onContainerTouchStart(t)},t.ontouchmove=function(t){e.onContainerTouchMove(t)},Fe.unbindDocumentTouchEnd||(Fe.unbindDocumentTouchEnd=je(i,"touchend",e.onDocumentTouchEnd)))},destroy:function(){var i=this;i.unDocMouseMove&&i.unDocMouseMove(),this.unbindContainerMouseLeave(),Fe.chartCount||(Fe.unbindDocumentMouseUp&&(Fe.unbindDocumentMouseUp=Fe.unbindDocumentMouseUp()),Fe.unbindDocumentTouchEnd&&(Fe.unbindDocumentTouchEnd=Fe.unbindDocumentTouchEnd())),clearInterval(i.tooltipTimeout),Fe.objectEach(i,function(t,e){i[e]=null})}},ai=(ri=zt).charts,hi=ri.each,li=ri.extend,ci=ri.map,di=ri.noop,pi=ri.pick,li(ri.Pointer.prototype,{pinchTranslate:function(t,e,i,s,n,o){this.zoomHor&&this.pinchTranslateDirection(!0,t,e,i,s,n,o),this.zoomVert&&this.pinchTranslateDirection(!1,t,e,i,s,n,o)},pinchTranslateDirection:function(t,e,i,s,n,o,r,a){var h,l,c,d=this.chart,p=t?"x":"y",u=t?"X":"Y",g="chart"+u,f=t?"width":"height",m=d["plot"+(t?"Left":"Top")],x=a||1,v=d.inverted,y=d.bounds[t?"h":"v"],b=1===e.length,k=e[0][g],w=i[0][g],M=!b&&e[1][g],S=!b&&i[1][g];(i=function(){!b&&20<Math.abs(k-M)&&(x=a||Math.abs(w-S)/Math.abs(k-M)),l=(m-w)/x+k,h=d["plot"+(t?"Width":"Height")]/x})(),(e=l)<y.min?(e=y.min,c=!0):e+h>y.max&&(e=y.max-h,c=!0),c?(w-=.8*(w-r[p][0]),b||(S-=.8*(S-r[p][1])),i()):r[p]=[w,S],v||(o[p]=l-m,o[f]=h),o=v?1/x:x,n[f]=h,n[p]=e,s[v?t?"scaleY":"scaleX":"scale"+u]=x,s["translate"+u]=o*m+(w-o*k)},pinch:function(t){var e=this,r=e.chart,i=e.pinchDown,s=t.touches,n=s.length,o=e.lastValidTouch,a=e.hasZoom,h=e.selectionMarker,l={},c=1===n&&(e.inClass(t.target,"highcharts-tracker")&&r.runTrackerClick||e.runChartClick),d={};1<n&&(e.initiated=!0),a&&e.initiated&&!c&&t.preventDefault(),ci(s,function(t){return e.normalize(t)}),"touchstart"===t.type?(hi(s,function(t,e){i[e]={chartX:t.chartX,chartY:t.chartY}}),o.x=[i[0].chartX,i[1]&&i[1].chartX],o.y=[i[0].chartY,i[1]&&i[1].chartY],hi(r.axes,function(t){if(t.zoomEnabled){var e=r.bounds[t.horiz?"h":"v"],i=t.minPixelPadding,s=t.toPixels(pi(t.options.min,t.dataMin)),n=t.toPixels(pi(t.options.max,t.dataMax)),o=Math.max(s,n);e.min=Math.min(t.pos,Math.min(s,n)-i),e.max=Math.max(t.pos+t.len,o+i)}}),e.res=!0):e.followTouchMove&&1===n?this.runPointActions(e.normalize(t)):i.length&&(h||(e.selectionMarker=h=li({destroy:di,touch:!0},r.plotBox)),e.pinchTranslate(i,s,l,h,d,o),e.hasPinched=a,e.scaleGroups(l,d),e.res&&(e.res=!1,this.reset(!1,0)))},touch:function(t,e){var i,s=this.chart;s.index!==ri.hoverChartIndex&&this.onContainerMouseLeave({relatedTarget:!0}),ri.hoverChartIndex=s.index,1===t.touches.length?(t=this.normalize(t),s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!(e=this.pinchDown)[0]&&4<=Math.sqrt(Math.pow(e[0].chartX-t.chartX,2)+Math.pow(e[0].chartY-t.chartY,2))),pi(i,!0)&&this.pinch(t)):e&&this.reset()):2===t.touches.length&&this.pinch(t)},onContainerTouchStart:function(t){this.zoomOption(t),this.touch(t,!0)},onContainerTouchMove:function(t){this.touch(t)},onDocumentTouchEnd:function(t){ai[ri.hoverChartIndex]&&ai[ri.hoverChartIndex].pointer.drop(t)}}),function(o){var e=o.addEvent,r=o.charts,s=o.css,i=o.doc,t=o.extend,a=o.noop,n=o.Pointer,h=o.removeEvent,l=o.win,c=o.wrap;if(!o.hasTouch&&(l.PointerEvent||l.MSPointerEvent)){var d={},p=!!l.PointerEvent,u=function(t,e,i,s){var n;"touch"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_TOUCH||!r[o.hoverChartIndex]||(s(t),(s=r[o.hoverChartIndex].pointer)[e]({type:i,target:t.currentTarget,preventDefault:a,touches:(n=[],n.item=function(t){return this[t]},o.objectEach(d,function(t){n.push({pageX:t.pageX,pageY:t.pageY,target:t.target})}),n)}))};t(n.prototype,{onContainerPointerDown:function(t){u(t,"onContainerTouchStart","touchstart",function(t){d[t.pointerId]={pageX:t.pageX,pageY:t.pageY,target:t.currentTarget}})},onContainerPointerMove:function(t){u(t,"onContainerTouchMove","touchmove",function(t){d[t.pointerId]={pageX:t.pageX,pageY:t.pageY},d[t.pointerId].target||(d[t.pointerId].target=t.currentTarget)})},onDocumentPointerUp:function(t){u(t,"onDocumentTouchEnd","touchend",function(t){delete d[t.pointerId]})},batchMSEvents:function(t){t(this.chart.container,p?"pointerdown":"MSPointerDown",this.onContainerPointerDown),t(this.chart.container,p?"pointermove":"MSPointerMove",this.onContainerPointerMove),t(i,p?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),c(n.prototype,"init",function(t,e,i){t.call(this,e,i),this.hasZoom&&s(e.container,{"-ms-touch-action":"none","touch-action":"none"})}),c(n.prototype,"setDOMEvents",function(t){t.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(e)}),c(n.prototype,"destroy",function(t){this.batchMSEvents(h),t.call(this)})}}(zt),gi=(ui=zt).addEvent,fi=ui.css,mi=ui.discardElement,xi=ui.defined,vi=ui.each,yi=ui.fireEvent,bi=ui.isFirefox,ki=ui.marginNames,wi=ui.merge,Mi=ui.pick,Si=ui.setAnimation,Ti=ui.stableSort,Ai=ui.win,Pi=ui.wrap,ui.Legend=function(t,e){this.init(t,e)},ui.Legend.prototype={init:function(t,e){this.chart=t,this.setOptions(e),e.enabled&&(this.render(),gi(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=gi(this.chart,"render",function(){this.legend.proximatePositions(),this.legend.positionItems()}):this.unchartrender&&this.unchartrender())},setOptions:function(t){var e=Mi(t.padding,8);this.options=t,this.itemStyle=t.itemStyle,this.itemHiddenStyle=wi(this.itemStyle,t.itemHiddenStyle),this.itemMarginTop=t.itemMarginTop||0,this.padding=e,this.initialItemY=e-5,this.symbolWidth=Mi(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted},update:function(t,e){var i=this.chart;this.setOptions(wi(!0,this.options,t)),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,Mi(e,!0)&&i.redraw(),yi(this,"afterUpdate")},colorizeItem:function(t,e){t.legendGroup[e?"removeClass":"addClass"]("highcharts-legend-item-hidden");var i=this.options,s=t.legendItem,n=t.legendLine,o=t.legendSymbol,r=this.itemHiddenStyle.color,a=(i=e?i.itemStyle.color:r,e&&t.color||r),h=t.options&&t.options.marker,l={fill:a};s&&s.css({fill:i,color:i}),n&&n.attr({stroke:a}),o&&(h&&o.isMarker&&(l=t.pointAttribs(),e||(l.stroke=l.fill=r)),o.attr(l)),yi(this,"afterColorizeItem",{item:t,visible:e})},positionItems:function(){vi(this.allItems,this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()},positionItem:function(t){var e=(i=this.options).symbolPadding,i=!i.rtl,s=(n=t._legendItemPos)[0],n=n[1],o=t.checkbox;(t=t.legendGroup)&&t.element&&t[xi(t.translateY)?"animate":"attr"]({translateX:i?s:this.legendWidth-s-2*e-4,translateY:n}),o&&(o.x=s,o.y=n)},destroyItem:function(e){var t=e.checkbox;vi(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){e[t]&&(e[t]=e[t].destroy())}),t&&mi(e.checkbox)},destroy:function(){function e(t){this[t]&&(this[t]=this[t].destroy())}vi(this.getAllItems(),function(t){vi(["legendItem","legendGroup"],e,t)}),vi("clipRect up down pager nav box title group".split(" "),e,this),this.display=null},positionCheckboxes:function(){var s,n=this.group&&this.group.alignAttr,o=this.clipHeight||this.legendHeight,r=this.titleHeight;n&&(s=n.translateY,vi(this.allItems,function(t){var e,i=t.checkbox;i&&(e=s+r+i.y+(this.scrollOffset||0)+3,fi(i,{left:n.translateX+t.checkboxOffset+i.x-20+"px",top:e+"px",display:s-6<e&&e<s+o-6?"":"none"}))},this))},renderTitle:function(){var t=this.options,e=this.padding,i=t.title,s=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,null,null,null,t.useHTML,null,"legend-title").attr({zIndex:1}).css(i.style).add(this.group)),s=(t=this.title.getBBox()).height,this.offsetWidth=t.width,this.contentGroup.attr({translateY:s})),this.titleHeight=s},setText:function(t){var e=this.options;t.legendItem.attr({text:e.labelFormat?ui.format(e.labelFormat,t,this.chart.time):e.labelFormatter.call(t)})},renderItem:function(t){var e=this.chart,i=e.renderer,s=this.options,n=this.symbolWidth,o=s.symbolPadding,r=this.itemStyle,a=this.itemHiddenStyle,h="horizontal"===s.layout?Mi(s.itemDistance,20):0,l=!s.rtl,c=t.legendItem,d=!t.series,p=!d&&t.series.drawLegendSymbol?t.series:t,u=p.options,g=(h=n+o+h+((u=this.createCheckboxForItem&&u&&u.showCheckbox)?20:0),s.useHTML),f=t.options.className;c||(t.legendGroup=i.g("legend-item").addClass("highcharts-"+p.type+"-series highcharts-color-"+t.colorIndex+(f?" "+f:"")+(d?" highcharts-series-"+t.index:"")).attr({zIndex:1}).add(this.scrollGroup),t.legendItem=c=i.text("",l?n+o:-o,this.baseline||0,g).css(wi(t.visible?r:a)).attr({align:l?"left":"right",zIndex:2}).add(t.legendGroup),this.baseline||(n=r.fontSize,this.fontMetrics=i.fontMetrics(n,c),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,c.attr("y",this.baseline)),this.symbolHeight=s.symbolHeight||this.fontMetrics.f,p.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,c,g),u&&this.createCheckboxForItem(t)),this.colorizeItem(t,t.visible),r.width||c.css({width:(s.itemWidth||s.width||e.spacingBox.width)-h}),this.setText(t),e=c.getBBox(),t.itemWidth=t.checkboxOffset=s.itemWidth||t.legendItemWidth||e.width+h,this.maxItemWidth=Math.max(this.maxItemWidth,t.itemWidth),this.totalItemWidth+=t.itemWidth,this.itemHeight=t.itemHeight=Math.round(t.legendItemHeight||e.height||this.symbolHeight)},layoutItem:function(t){var e=this.options,i=this.padding,s="horizontal"===e.layout,n=t.itemHeight,o=e.itemMarginBottom||0,r=this.itemMarginTop,a=s?Mi(e.itemDistance,20):0,h=e.width,l=h||this.chart.spacingBox.width-2*i-e.x;e=e.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:t.itemWidth,s&&this.itemX-i+e>l&&(this.itemX=i,this.itemY+=r+this.lastLineHeight+o,this.lastLineHeight=0),this.lastItemY=r+this.itemY+o,this.lastLineHeight=Math.max(n,this.lastLineHeight),t._legendItemPos=[this.itemX,this.itemY],s?this.itemX+=e:(this.itemY+=r+n+o,this.lastLineHeight=n),this.offsetWidth=h||Math.max((s?this.itemX-i-(t.checkbox?0:a):e)+i,this.offsetWidth)},getAllItems:function(){var i=[];return vi(this.chart.series,function(t){var e=t&&t.options;t&&Mi(e.showInLegend,!xi(e.linkedTo)&&void 0,!0)&&(i=i.concat(t.legendItems||("point"===e.legendType?t.data:t)))}),yi(this,"afterGetAllItems",{allItems:i}),i},getAlignment:function(){var t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)},adjustMargins:function(i,s){var n=this.chart,o=this.options,r=this.getAlignment();r&&vi([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(t,e){t.test(r)&&!xi(i[e])&&(n[ki[e]]=Math.max(n[ki[e]],n.legend[(e+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][e]*o[e%2?"x":"y"]+Mi(o.margin,12)+s[e]+(0===e&&void 0!==n.options.title.margin?n.titleOffset+n.options.title.margin:0)))})},proximatePositions:function(){var s=this.chart,n=[],o="left"===this.options.align;vi(this.allItems,function(t){var e,i;e=o,t.xAxis&&t.points&&(t.xAxis.options.reversed&&(e=!e),e=ui.find(e?t.points:t.points.slice(0).reverse(),function(t){return ui.isNumber(t.plotY)}),i=t.legendGroup.getBBox().height,n.push({target:t.visible?e.plotY-.3*i:s.plotHeight,size:i,item:t}))},this),ui.distribute(n,s.plotHeight),vi(n,function(t){t.item._legendItemPos[1]=s.plotTop-s.spacing[0]+t.pos})},render:function(){var t,e,i,s=this.chart,n=s.renderer,o=this.group,r=this.box,a=this.options,h=this.padding;this.itemX=h,this.itemY=this.initialItemY,this.lastItemY=this.offsetWidth=0,o||(this.group=o=n.g("legend").attr({zIndex:7}).add(),this.contentGroup=n.g().attr({zIndex:1}).add(o),this.scrollGroup=n.g().add(this.contentGroup)),this.renderTitle(),t=this.getAllItems(),Ti(t,function(t,e){return(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)}),a.reversed&&t.reverse(),this.allItems=t,this.display=e=!!t.length,this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0,vi(t,this.renderItem,this),vi(t,this.layoutItem,this),t=(a.width||this.offsetWidth)+h,i=this.lastItemY+this.lastLineHeight+this.titleHeight,i=this.handleOverflow(i),i+=h,r||(this.box=r=n.rect().addClass("highcharts-legend-box").attr({r:a.borderRadius}).add(o),r.isNew=!0),r.attr({stroke:a.borderColor,"stroke-width":a.borderWidth||0,fill:a.backgroundColor||"none"}).shadow(a.shadow),0<t&&0<i&&(r[r.isNew?"attr":"animate"](r.crisp.call({},{x:0,y:0,width:t,height:i},r.strokeWidth())),r.isNew=!1),r[e?"show":"hide"](),this.legendWidth=t,this.legendHeight=i,e&&(n=s.spacingBox,/(lth|ct|rth)/.test(this.getAlignment())&&(n=wi(n,{y:n.y+s.titleOffset+s.options.title.margin})),o.align(wi(a,{width:t,height:i,verticalAlign:this.proximate?"top":a.verticalAlign}),!0,n)),this.proximate||this.positionItems()},handleOverflow:function(t){var o,r,e=this,i=(h=this.chart).renderer,s=this.options,n=s.y,a=this.padding,h=h.spacingBox.height+("top"===s.verticalAlign?-n:n)-a,l=(n=s.maxHeight,this.clipRect),c=s.navigation,d=Mi(c.animation,!0),p=c.arrowSize||12,u=this.nav,g=this.pages,f=this.allItems,m=function(t){"number"==typeof t?l.attr({height:t}):l&&(e.clipRect=l.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+a+"px,9999px,"+(a+t)+"px,0)":"auto")};return"horizontal"!==s.layout||"middle"===s.verticalAlign||s.floating||(h/=2),n&&(h=Math.min(h,n)),g.length=0,h<t&&!1!==c.enabled?(this.clipHeight=o=Math.max(h-20-this.titleHeight-a,0),this.currentPage=Mi(this.currentPage,1),this.fullHeight=t,vi(f,function(t,e){var i=t._legendItemPos[1],s=Math.round(t.legendItem.getBBox().height),n=g.length;(!n||i-g[n-1]>o&&(r||i)!==g[n-1])&&(g.push(r||i),n++),t.pageIx=n-1,r&&(f[e-1].pageIx=n-1),e===f.length-1&&i+s-g[n-1]>o&&(g.push(i),t.pageIx=n),i!==r&&(r=i)}),l||(l=e.clipRect=i.clipRect(0,a,9999,0),e.contentGroup.clip(l)),m(o),u||(this.nav=u=i.g().attr({zIndex:1}).add(this.group),this.up=i.symbol("triangle",0,0,p,p).on("click",function(){e.scroll(-1,d)}).add(u),this.pager=i.text("",15,10).addClass("highcharts-legend-navigation").css(c.style).add(u),this.down=i.symbol("triangle-down",0,0,p,p).on("click",function(){e.scroll(1,d)}).add(u)),e.scroll(0),t=h):u&&(m(),this.nav=u.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t},scroll:function(t,e){var i=this.pages,s=i.length;t=this.currentPage+t;var n=this.clipHeight,o=this.options.navigation,r=this.pager,a=this.padding;s<t&&(t=s),0<t&&(void 0!==e&&Si(e,this.chart),this.nav.attr({translateX:a,translateY:n+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({class:1===t?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),r.attr({text:t+"/"+s}),this.down.attr({x:18+this.pager.getBBox().width,class:t===s?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===t?o.inactiveColor:o.activeColor}).css({cursor:1===t?"default":"pointer"}),this.down.attr({fill:t===s?o.inactiveColor:o.activeColor}).css({cursor:t===s?"default":"pointer"}),this.scrollOffset=-i[t-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=t,this.positionCheckboxes())}},ui.LegendSymbolMixin={drawRectangle:function(t,e){var i=t.symbolHeight,s=t.options.squareSymbol;e.legendSymbol=this.chart.renderer.rect(s?(t.symbolWidth-i)/2:0,t.baseline-i+1,s?i:t.symbolWidth,i,Mi(t.options.symbolRadius,i/2)).addClass("highcharts-point").attr({zIndex:3}).add(e.legendGroup)},drawLineMarker:function(t){var e,i=this.options,s=i.marker,n=t.symbolWidth,o=t.symbolHeight,r=o/2,a=this.chart.renderer,h=this.legendGroup;t=t.baseline-Math.round(.3*t.fontMetrics.b),e={"stroke-width":i.lineWidth||0},i.dashStyle&&(e.dashstyle=i.dashStyle),this.legendLine=a.path(["M",0,t,"L",n,t]).addClass("highcharts-graph").attr(e).add(h),s&&!1!==s.enabled&&n&&(i=Math.min(Mi(s.radius,r),r),0===this.symbol.indexOf("url")&&(s=wi(s,{width:o,height:o}),i=0),this.legendSymbol=s=a.symbol(this.symbol,n/2-i,t-i,2*i,2*i,s).addClass("highcharts-point").add(h),s.isMarker=!0)}},(/Trident\/7\.0/.test(Ai.navigator.userAgent)||bi)&&Pi(ui.Legend.prototype,"positionItem",function(t,e){var i=this,s=function(){e._legendItemPos&&t.call(i,e)};s(),setTimeout(s)}),Li=(Ci=zt).addEvent,Oi=Ci.animate,Ii=Ci.animObject,Di=Ci.attr,zi=Ci.doc,Bi=Ci.Axis,Ei=Ci.createElement,Ri=Ci.defaultOptions,Ni=Ci.discardElement,Wi=Ci.charts,Hi=Ci.css,Xi=Ci.defined,Gi=Ci.each,Yi=Ci.extend,Fi=Ci.find,ji=Ci.fireEvent,Vi=Ci.grep,Ui=Ci.isNumber,_i=Ci.isObject,Ki=Ci.isString,Zi=Ci.Legend,qi=Ci.marginNames,$i=Ci.merge,Ji=Ci.objectEach,Qi=Ci.Pointer,ts=Ci.pick,es=Ci.pInt,is=Ci.removeEvent,ss=Ci.seriesTypes,ns=Ci.splat,os=Ci.syncTimeout,rs=Ci.win,as=Ci.Chart=function(){this.getArgs.apply(this,arguments)},Ci.chart=function(t,e,i){return new as(t,e,i)},Yi(as.prototype,{callbacks:[],getArgs:function(){var t=[].slice.call(arguments);(Ki(t[0])||t[0].nodeName)&&(this.renderTo=t.shift()),this.init(t[0],t[1])},init:function(s,n){var o,r,a=s.series,h=s.plotOptions||{};ji(this,"init",{args:arguments},function(){for(r in s.series=null,(o=$i(Ri,s)).plotOptions)o.plotOptions[r].tooltip=h[r]&&$i(h[r].tooltip)||void 0;o.tooltip.userOptions=s.chart&&s.chart.forExport&&s.tooltip.userOptions||s.tooltip,o.series=s.series=a,this.userOptions=s;var t=o.chart,e=t.events;this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.labelCollectors=[],this.callback=n,this.isResizing=0,this.options=o,this.axes=[],this.series=[],this.time=s.time&&Ci.keys(s.time).length?new Ci.Time(s.time):Ci.time,this.hasCartesianSeries=t.showAxes;var i=this;i.index=Wi.length,Wi.push(i),Ci.chartCount++,e&&Ji(e,function(t,e){Li(i,e,t)}),i.xAxis=[],i.yAxis=[],i.pointCount=i.colorCounter=i.symbolCounter=0,ji(i,"afterInit"),i.firstRender()})},initSeries:function(t){var e=this.options.chart;return(e=ss[t.type||e.type||e.defaultSeriesType])||Ci.error(17,!0),(e=new e).init(this,t),e},orderSeries:function(t){var e=this.series;for(t=t||0;t<e.length;t++)e[t]&&(e[t].index=t,e[t].name=e[t].getName())},isInsidePlot:function(t,e,i){var s=i?e:t;return t=i?t:e,0<=s&&s<=this.plotWidth&&0<=t&&t<=this.plotHeight},redraw:function(t){ji(this,"beforeRedraw");var i,e,s,n=this.axes,o=this.series,r=this.pointer,a=this.legend,h=this.isDirtyLegend,l=this.hasCartesianSeries,c=this.isDirtyBox,d=this.renderer,p=d.isHidden(),u=[];for(this.setResponsive&&this.setResponsive(!1),Ci.setAnimation(t,this),p&&this.temporaryDisplay(),this.layOutTitles(),t=o.length;t--;)if((s=o[t]).options.stacking&&(i=!0,s.isDirty)){e=!0;break}if(e)for(t=o.length;t--;)(s=o[t]).options.stacking&&(s.isDirty=!0);Gi(o,function(t){t.isDirty&&"point"===t.options.legendType&&(t.updateTotals&&t.updateTotals(),h=!0),t.isDirtyData&&ji(t,"updatedData")}),h&&a.options.enabled&&(a.render(),this.isDirtyLegend=!1),i&&this.getStacks(),l&&Gi(n,function(t){t.updateNames(),t.setScale()}),this.getMargins(),l&&(Gi(n,function(t){t.isDirty&&(c=!0)}),Gi(n,function(t){var e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,u.push(function(){ji(t,"afterSetExtremes",Yi(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(c||i)&&t.redraw()})),c&&this.drawChartBox(),ji(this,"predraw"),Gi(o,function(t){(c||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),r&&r.reset(!0),d.draw(),ji(this,"redraw"),ji(this,"render"),p&&this.temporaryDisplay(!0),Gi(u,function(t){t.call()})},get:function(e){function t(t){return t.id===e||t.options&&t.options.id===e}var i,s,n=this.series;for(i=Fi(this.axes,t)||Fi(this.series,t),s=0;!i&&s<n.length;s++)i=Fi(n[s].points||[],t);return i},getAxes:function(){var e=this,t=(i=this.options).xAxis=ns(i.xAxis||{}),i=i.yAxis=ns(i.yAxis||{});ji(this,"getAxes"),Gi(t,function(t,e){t.index=e,t.isX=!0}),Gi(i,function(t,e){t.index=e}),t=t.concat(i),Gi(t,function(t){new Bi(e,t)}),ji(this,"afterGetAxes")},getSelectedPoints:function(){var e=[];return Gi(this.series,function(t){e=e.concat(Vi(t.data||[],function(t){return t.selected}))}),e},getSelectedSeries:function(){return Vi(this.series,function(t){return t.selected})},setTitle:function(t,e,i){var s,o=this,n=o.options;s=n.title=$i({style:{color:"#333333",fontSize:n.isStock?"16px":"18px"}},n.title,t),n=n.subtitle=$i({style:{color:"#666666"}},n.subtitle,e),Gi([["title",t,s],["subtitle",e,n]],function(t,e){var i=t[0],s=o[i],n=t[1];t=t[2],s&&n&&(o[i]=s=s.destroy()),t&&!s&&(o[i]=o.renderer.text(t.text,0,0,t.useHTML).attr({align:t.align,class:"highcharts-"+i,zIndex:t.zIndex||4}).add(),o[i].update=function(t){o.setTitle(!e&&t,e&&t)},o[i].css(t.style))}),o.layOutTitles(i)},layOutTitles:function(t){var e,n=0,o=this.renderer,r=this.spacingBox;Gi(["title","subtitle"],function(t){var e,i=this[t],s=this.options[t];t="title"===t?-3:s.verticalAlign?0:n+2,i&&(e=s.style.fontSize,e=o.fontMetrics(e,i).b,i.css({width:(s.width||r.width+s.widthAdjust)+"px"}).align(Yi({y:t+e},s),!1,"spacingBox"),s.floating||s.verticalAlign||(n=Math.ceil(n+i.getBBox(s.useHTML).height)))},this),e=this.titleOffset!==n,this.titleOffset=n,!this.isDirtyBox&&e&&(this.isDirtyBox=this.isDirtyLegend=e,this.hasRendered&&ts(t,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var t=(e=this.options.chart).width,e=e.height,i=this.renderTo;Xi(t)||(this.containerWidth=Ci.getStyle(i,"width")),Xi(e)||(this.containerHeight=Ci.getStyle(i,"height")),this.chartWidth=Math.max(0,t||this.containerWidth||600),this.chartHeight=Math.max(0,Ci.relativeLength(e,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(t){var e=this.renderTo;if(t)for(;e&&e.style;)e.hcOrigStyle&&(Ci.css(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(zi.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(zi.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,zi.body.appendChild(e)),("none"===Ci.getStyle(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},t={display:"block",overflow:"hidden"},e!==this.renderTo&&(t.height=0),Ci.css(e,t),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==zi.body););},setClassName:function(t){this.container.className="highcharts-container "+(t||"")},getContainer:function(){var t,e,i,s=this.options,n=s.chart;t=this.renderTo;var o,r=Ci.uniqueKey();t||(this.renderTo=t=n.renderTo),Ki(t)&&(this.renderTo=t=zi.getElementById(t)),t||Ci.error(13,!0),e=es(Di(t,"data-highcharts-chart")),Ui(e)&&Wi[e]&&Wi[e].hasRendered&&Wi[e].destroy(),Di(t,"data-highcharts-chart",this.index),t.innerHTML="",n.skipClone||t.offsetWidth||this.temporaryDisplay(),this.getChartSize(),e=this.chartWidth,i=this.chartHeight,o=Yi({position:"relative",overflow:"hidden",width:e+"px",height:i+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},n.style),this.container=t=Ei("div",{id:r},o,t),this._cursor=t.style.cursor,this.renderer=new(Ci[n.renderer]||Ci.Renderer)(t,e,i,null,n.forExport,s.exporting&&s.exporting.allowHTML),this.setClassName(n.className),this.renderer.setStyle(n.style),this.renderer.chartIndex=this.index,ji(this,"afterGetContainer")},getMargins:function(t){var e=this.spacing,i=this.margin,s=this.titleOffset;this.resetMargins(),s&&!Xi(i[0])&&(this.plotTop=Math.max(this.plotTop,s+this.options.title.margin+e[0])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),ji(this,"getMargins"),t||this.getAxisMargins()},getAxisMargins:function(){var i=this,s=i.axisOffset=[0,0,0,0],n=i.margin;i.hasCartesianSeries&&Gi(i.axes,function(t){t.visible&&t.getOffset()}),Gi(qi,function(t,e){Xi(n[e])||(i[t]+=s[e])}),i.setChartSize()},reflow:function(t){var e=this,i=e.options.chart,s=e.renderTo,n=Xi(i.width)&&Xi(i.height),o=i.width||Ci.getStyle(s,"width");i=i.height||Ci.getStyle(s,"height"),s=t?t.target:rs,n||e.isPrinting||!o||!i||s!==rs&&s!==zi||(o===e.containerWidth&&i===e.containerHeight||(Ci.clearTimeout(e.reflowTimeout),e.reflowTimeout=os(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerWidth=o,e.containerHeight=i)},setReflow:function(t){var e=this;!1===t||this.unbindReflow?!1===t&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=Li(rs,"resize",function(t){e.reflow(t)}),Li(this,"destroy",this.unbindReflow))},setSize:function(t,e,i){var s=this,n=s.renderer;s.isResizing+=1,Ci.setAnimation(i,s),s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize(),((t=n.globalAnimation)?Oi:Hi)(s.container,{width:s.chartWidth+"px",height:s.chartHeight+"px"},t),s.setChartSize(!0),n.setSize(s.chartWidth,s.chartHeight,i),Gi(s.axes,function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(i),s.oldChartHeight=null,ji(s,"resize"),os(function(){s&&ji(s,"endResize",null,function(){--s.isResizing})},Ii(t).duration)},setChartSize:function(t){var e,i,s,n,o=this.inverted,r=this.renderer,a=this.chartWidth,h=this.chartHeight,l=this.options.chart,c=this.spacing,d=this.clipOffset;this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=n=Math.max(0,Math.round(h-i-this.marginBottom)),this.plotSizeX=o?n:s,this.plotSizeY=o?s:n,this.plotBorderWidth=l.plotBorderWidth||0,this.spacingBox=r.spacingBox={x:c[3],y:c[0],width:a-c[3]-c[1],height:h-c[0]-c[2]},this.plotBox=r.plotBox={x:e,y:i,width:s,height:n},a=2*Math.floor(this.plotBorderWidth/2),o=Math.ceil(Math.max(a,d[3])/2),r=Math.ceil(Math.max(a,d[0])/2),this.clipBox={x:o,y:r,width:Math.floor(this.plotSizeX-Math.max(a,d[1])/2-o),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(a,d[2])/2-r))},t||Gi(this.axes,function(t){t.setAxisSize(),t.setAxisTranslation()}),ji(this,"afterSetChartSize",{skipAxes:t})},resetMargins:function(){var n=this,o=n.options.chart;Gi(["margin","spacing"],function(i){var t=o[i],s=_i(t)?t:[t,t,t,t];Gi(["Top","Right","Bottom","Left"],function(t,e){n[i][e]=ts(o[i+t],s[e])})}),Gi(qi,function(t,e){n[t]=ts(n.margin[e],n.spacing[e])}),n.axisOffset=[0,0,0,0],n.clipOffset=[0,0,0,0]},drawChartBox:function(){var t,e,i=this.options.chart,s=this.renderer,n=this.chartWidth,o=this.chartHeight,r=this.chartBackground,a=this.plotBackground,h=this.plotBorder,l=this.plotBGImage,c=i.backgroundColor,d=i.plotBackgroundColor,p=i.plotBackgroundImage,u=this.plotLeft,g=this.plotTop,f=this.plotWidth,m=this.plotHeight,x=this.plotBox,v=this.clipRect,y=this.clipBox,b="animate";r||(this.chartBackground=r=s.rect().addClass("highcharts-background").add(),b="attr"),e=(t=i.borderWidth||0)+(i.shadow?8:0),c={fill:c||"none"},(t||r["stroke-width"])&&(c.stroke=i.borderColor,c["stroke-width"]=t),r.attr(c).shadow(i.shadow),r[b]({x:e/2,y:e/2,width:n-e-t%2,height:o-e-t%2,r:i.borderRadius}),b="animate",a||(b="attr",this.plotBackground=a=s.rect().addClass("highcharts-plot-background").add()),a[b](x),a.attr({fill:d||"none"}).shadow(i.plotShadow),p&&(l?l.animate(x):this.plotBGImage=s.image(p,u,g,f,m).add()),v?v.animate({width:y.width,height:y.height}):this.clipRect=s.clipRect(y),b="animate",h||(b="attr",this.plotBorder=h=s.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),h.attr({stroke:i.plotBorderColor,"stroke-width":i.plotBorderWidth||0,fill:"none"}),h[b](h.crisp({x:u,y:g,width:f,height:m},-h.strokeWidth())),this.isDirtyBox=!1,ji(this,"afterDrawChartBox")},propFromSeries:function(){var e,i,s,n=this,o=n.options.chart,r=n.options.series;Gi(["inverted","angular","polar"],function(t){for(e=ss[o.type||o.defaultSeriesType],s=o[t]||e&&e.prototype[t],i=r&&r.length;!s&&i--;)(e=ss[r[i].type])&&e.prototype[t]&&(s=!0);n[t]=s})},linkSeries:function(){var i=this,t=i.series;Gi(t,function(t){t.linkedSeries.length=0}),Gi(t,function(t){var e=t.options.linkedTo;Ki(e)&&(e=":previous"===e?i.series[t.index-1]:i.get(e))&&e.linkedParent!==t&&(e.linkedSeries.push(t),t.linkedParent=e,t.visible=ts(t.options.visible,e.options.visible,t.visible))}),ji(this,"afterLinkSeries")},renderSeries:function(){Gi(this.series,function(t){t.translate(),t.render()})},renderLabels:function(){var n=this,o=n.options.labels;o.items&&Gi(o.items,function(t){var e=Yi(o.style,t.style),i=es(e.left)+n.plotLeft,s=es(e.top)+n.plotTop+12;delete e.left,delete e.top,n.renderer.text(t.html,i,s).attr({zIndex:2}).css(e).add()})},render:function(){var t,e,i,s=this.axes,n=this.renderer,o=this.options;this.setTitle(),this.legend=new Zi(this,o.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),o=this.plotWidth,t=this.plotHeight=Math.max(this.plotHeight-21,0),Gi(s,function(t){t.setScale()}),this.getAxisMargins(),e=1.1<o/this.plotWidth,i=1.05<t/this.plotHeight,(e||i)&&(Gi(s,function(t){(t.horiz&&e||!t.horiz&&i)&&t.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&Gi(s,function(t){t.visible&&t.render()}),this.seriesGroup||(this.seriesGroup=n.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0},addCredits:function(t){var e=this;(t=$i(!0,this.options.credits,t)).enabled&&!this.credits&&(this.credits=this.renderer.text(t.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){t.href&&(rs.location.href=t.href)}).attr({align:t.position.align,zIndex:8}).css(t.style).add().align(t.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})},destroy:function(){var t,i=this,e=i.axes,s=i.series,n=i.container,o=n&&n.parentNode;for(ji(i,"destroy"),i.renderer.forExport?Ci.erase(Wi,i):Wi[i.index]=void 0,Ci.chartCount--,i.renderTo.removeAttribute("data-highcharts-chart"),is(i),t=e.length;t--;)e[t]=e[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();Gi("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),function(t){var e=i[t];e&&e.destroy&&(i[t]=e.destroy())}),n&&(n.innerHTML="",is(n),o&&Ni(n)),Ji(i,function(t,e){delete i[e]})},firstRender:function(){var e=this,t=e.options;e.isReadyToRender&&!e.isReadyToRender()||(e.getContainer(),e.resetMargins(),e.setChartSize(),e.propFromSeries(),e.getAxes(),Gi(t.series||[],function(t){e.initSeries(t)}),e.linkSeries(),ji(e,"beforeRender"),Qi&&(e.pointer=new Qi(e,t)),e.render(),!e.renderer.imgCount&&e.onload&&e.onload(),e.temporaryDisplay(!0))},onload:function(){Gi([this.callback].concat(this.callbacks),function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),ji(this,"load"),ji(this,"render"),Xi(this.index)&&this.setReflow(this.options.chart.reflow),this.onload=null}}),ls=(hs=zt).addEvent,cs=hs.Chart,ds=hs.each,ls(cs,"afterSetChartSize",function(t){var e=this.options.chart.scrollablePlotArea;(e=e&&e.minWidth)&&!this.renderer.forExport&&(this.scrollablePixels=e=Math.max(0,e-this.chartWidth))&&(this.plotWidth+=e,this.clipBox.width+=e,t.skipAxes||ds(this.axes,function(i){1===i.side?i.getPlotLinePath=function(){var t,e=this.right;return this.right=e-i.chart.scrollablePixels,t=hs.Axis.prototype.getPlotLinePath.apply(this,arguments),this.right=e,t}:(i.setAxisSize(),i.setAxisTranslation())}))}),ls(cs,"render",function(){this.scrollablePixels?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()}),cs.prototype.setUpScrolling=function(){this.scrollingContainer=hs.createElement("div",{className:"highcharts-scrolling"},{overflowX:"auto",WebkitOverflowScrolling:"touch"},this.renderTo),this.innerContainer=hs.createElement("div",{className:"highcharts-inner-container"},null,this.scrollingContainer),this.innerContainer.appendChild(this.container),this.setUpScrolling=null},cs.prototype.applyFixed=function(){var e,t,i=this.container;(s=!this.fixedDiv)&&(this.fixedDiv=hs.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=e=new hs.Renderer(this.fixedDiv,0,0),this.scrollableMask=e.path().attr({fill:hs.color(this.options.chart.backgroundColor||"#fff").setOpacity(.85).get(),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),hs.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(t){hs.each(i.querySelectorAll(t),function(t){e.box.appendChild(t),t.style.pointerEvents="auto"})})),this.fixedRenderer.setSize(this.chartWidth,this.chartHeight),t=this.chartWidth+this.scrollablePixels,this.container.style.width=t+"px",this.renderer.boxWrapper.attr({width:t,height:this.chartHeight,viewBox:[0,0,t,this.chartHeight].join(" ")}),s&&(t=this.options.chart.scrollablePlotArea).scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixels*t.scrollPositionX),s=this.axisOffset,t=this.plotTop-s[0]-1;var s=this.plotTop+this.plotHeight+s[2],n=this.plotLeft+this.plotWidth-this.scrollablePixels;this.scrollableMask.attr({d:this.scrollablePixels?["M",0,t,"L",this.plotLeft-1,t,"L",this.plotLeft-1,s,"L",0,s,"Z","M",n,t,"L",this.chartWidth,t,"L",this.chartWidth,s,"L",n,s,"Z"]:["M",0,0]})},gs=(ps=zt).each,fs=ps.extend,ms=ps.erase,xs=ps.fireEvent,vs=ps.format,ys=ps.isArray,bs=ps.isNumber,ks=ps.pick,ws=ps.removeEvent,ps.Point=us=function(){},ps.Point.prototype={init:function(t,e,i){return this.series=t,this.color=t.color,this.applyOptions(e,i),t.options.colorByPoint?(e=t.options.colors||t.chart.options.colors,this.color=this.color||e[t.colorCounter],e=e.length,i=t.colorCounter,t.colorCounter++,t.colorCounter===e&&(t.colorCounter=0)):i=t.colorIndex,this.colorIndex=ks(this.colorIndex,i),t.chart.pointCount++,xs(this,"afterInit"),this},applyOptions:function(t,e){var i=this.series,s=i.options.pointValKey||i.pointValKey;return t=us.prototype.optionsToObject.call(this,t),fs(this,t),this.options=this.options?fs(this.options,t):t,t.group&&delete this.group,s&&(this.y=this[s]),this.isNull=ks(this.isValid&&!this.isValid(),null===this.x||!bs(this.y,!0)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i&&(this.x=void 0===e?i.autoIncrement(this):e),this},setNestedProperty:function(t,n,e){return e=e.split("."),ps.reduce(e,function(t,e,i,s){return t[e]=s.length-1===i?n:ps.isObject(t[e],!0)?t[e]:{},t[e]},t),t},optionsToObject:function(t){var e={},i=this.series,s=i.options.keys,n=s||i.pointArrayMap||["y"],o=n.length,r=0,a=0;if(bs(t)||null===t)e[n[0]]=t;else if(ys(t))for(!s&&t.length>o&&("string"==(i=typeof t[0])?e.name=t[0]:"number"===i&&(e.x=t[0]),r++);a<o;)s&&void 0===t[r]||(0<n[a].indexOf(".")?ps.Point.prototype.setNestedProperty(e,t[r],n[a]):e[n[a]]=t[r]),r++,a++;else"object"==typeof t&&((e=t).dataLabels&&(i._hasPointLabels=!0),t.marker&&(i._hasPointMarkers=!0));return e},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 t,e=(i=this.series).zones,i=i.zoneAxis||"y",s=0;for(t=e[s];this[i]>=t.value;)t=e[++s];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=t&&t.color&&!this.options.color?t.color:this.nonZonedColor,t},destroy:function(){var t,e=this.series.chart,i=e.hoverPoints;for(t in e.pointCount--,i&&(this.setState(),ms(i,this),i.length||(e.hoverPoints=null)),this===e.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(ws(this),this.destroyElements()),this.legendItem&&e.legend.destroyItem(this),this)this[t]=null},destroyElements:function(){for(var t,e=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],i=6;i--;)this[t=e[i]]&&(this[t]=this[t].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(e){var t=this.series,i=t.tooltipOptions,s=ks(i.valueDecimals,""),n=i.valuePrefix||"",o=i.valueSuffix||"";return gs(t.pointArrayMap||["y"],function(t){t="{point."+t,(n||o)&&(e=e.replace(RegExp(t+"}","g"),n+t+"}"+o)),e=e.replace(RegExp(t+"}","g"),t+":,."+s+"f}")}),vs(e,{point:this,series:this.series},t.chart.time)},firePointEvent:function(t,e,i){var s=this,n=this.series.options;(n.point.events[t]||s.options&&s.options.events&&s.options.events[t])&&this.importEvents(),"click"===t&&n.allowPointSelect&&(i=function(t){s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),xs(this,t,e,i)},visible:!0},Ss=(Ms=zt).addEvent,Ts=Ms.animObject,As=Ms.arrayMax,Ps=Ms.arrayMin,Cs=Ms.correctFloat,Ls=Ms.defaultOptions,Os=Ms.defaultPlotOptions,Is=Ms.defined,Ds=Ms.each,zs=Ms.erase,Bs=Ms.extend,Es=Ms.fireEvent,Rs=Ms.grep,Ns=Ms.isArray,Ws=Ms.isNumber,Hs=Ms.isString,Xs=Ms.merge,Gs=Ms.objectEach,Ys=Ms.pick,Fs=Ms.removeEvent,js=Ms.splat,Vs=Ms.SVGElement,Us=Ms.syncTimeout,_s=Ms.win,Ms.Series=Ms.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":Ms.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},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,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:Ms.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(t,e){var i,s,n=this,o=t.series;n.chart=t,n.options=e=n.setOptions(e),n.linkedSeries=[],n.bindAxes(),Bs(n,{name:e.name,state:"",visible:!1!==e.visible,selected:!0===e.selected}),i=e.events,Gs(i,function(t,e){Ss(n,e,t)}),(i&&i.click||e.point&&e.point.events&&e.point.events.click||e.allowPointSelect)&&(t.runTrackerClick=!0),n.getColor(),n.getSymbol(),Ds(n.parallelArrays,function(t){n[t+"Data"]=[]}),n.setData(e.data,!1),n.isCartesian&&(t.hasCartesianSeries=!0),o.length&&(s=o[o.length-1]),n._i=Ys(s&&s._i,-1)+1,t.orderSeries(this.insert(o)),Es(this,"afterInit")},insert:function(t){var e,i=this.options.index;if(Ws(i)){for(e=t.length;e--;)if(i>=Ys(t[e].options.index,t[e]._i)){t.splice(e+1,0,this);break}-1===e&&t.unshift(this),e+=1}else t.push(this);return Ys(e,t.length-1)},bindAxes:function(){var i,s=this,n=s.options,t=s.chart;Ds(s.axisTypes||[],function(e){Ds(t[e],function(t){i=t.options,(n[e]===i.index||void 0!==n[e]&&n[e]===i.id||void 0===n[e]&&0===i.index)&&(s.insert(t.series),(s[e]=t).isDirty=!0)}),s[e]||s.optionalAxis===e||Ms.error(18,!0)})},updateParallelArrays:function(i,s){var n=i.series,e=arguments,t=Ws(s)?function(t){var e="y"===t&&n.toYData?n.toYData(i):i[t];n[t+"Data"][s]=e}:function(t){Array.prototype[s].apply(n[t+"Data"],Array.prototype.slice.call(e,2))};Ds(n.parallelArrays,t)},autoIncrement:function(){var t,e=this.options,i=this.xIncrement,s=e.pointIntervalUnit,n=this.chart.time;return i=Ys(i,e.pointStart,0),this.pointInterval=t=Ys(this.pointInterval,e.pointInterval,1),s&&(e=new n.Date(i),"day"===s?n.set("Date",e,n.get("Date",e)+t):"month"===s?n.set("Month",e,n.get("Month",e)+t):"year"===s&&n.set("FullYear",e,n.get("FullYear",e)+t),t=e.getTime()-i),this.xIncrement=i+t,i},setOptions:function(t){var e=this.chart,i=e.options,s=i.plotOptions,n=(e.userOptions||{}).plotOptions||{},o=s[this.type];return this.userOptions=t,e=Xs(o,s.series,t),this.tooltipOptions=Xs(Ls.tooltip,Ls.plotOptions.series&&Ls.plotOptions.series.tooltip,Ls.plotOptions[this.type].tooltip,i.tooltip.userOptions,s.series&&s.series.tooltip,s[this.type].tooltip,t.tooltip),this.stickyTracking=Ys(t.stickyTracking,n[this.type]&&n[this.type].stickyTracking,n.series&&n.series.stickyTracking,!(!this.tooltipOptions.shared||this.noSharedTooltip)||e.stickyTracking),null===o.marker&&delete e.marker,this.zoneAxis=e.zoneAxis,t=this.zones=(e.zones||[]).slice(),!e.negativeColor&&!e.negativeFillColor||e.zones||t.push({value:e[this.zoneAxis+"Threshold"]||e.threshold||0,className:"highcharts-negative",color:e.negativeColor,fillColor:e.negativeFillColor}),t.length&&Is(t[t.length-1].value)&&t.push({color:this.color,fillColor:this.fillColor}),Es(this,"afterSetOptions",{options:e}),e},getName:function(){return this.name||"Series "+(this.index+1)},getCyclic:function(t,e,i){var s,n=this.chart,o=this.userOptions,r=t+"Index",a=t+"Counter",h=i?i.length:Ys(n.options.chart[t+"Count"],n[t+"Count"]);e||(s=Ys(o[r],o["_"+r]),Is(s)||(n.series.length||(n[a]=0),o["_"+r]=s=n[a]%h,n[a]+=1),i&&(e=i[s])),void 0!==s&&(this[r]=s),this[t]=e},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||Os[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:Ms.LegendSymbolMixin.drawLineMarker,updateData:function(t){var i,e,s,n=this.options,o=this.points,r=[],a=this.requireSorting;if(Ds(t,function(t){var e;e=Ms.defined(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t).x,Ws(e)&&(-1===(e=Ms.inArray(e,this.xData,s))?r.push(t):t!==n.data[e]?(o[e].update(t,!1,null,!1),o[e].touched=!0,a&&(s=e)):o[e]&&(o[e].touched=!0),i=!0)},this),i)for(t=o.length;t--;)(e=o[t]).touched||e.remove(!1),e.touched=!1;else{if(t.length!==o.length)return!1;Ds(t,function(t,e){o[e].update&&t!==n.data[e]&&o[e].update(t,!1,null,!1)})}return Ds(r,function(t){this.addPoint(t,!1)},this),!0},setData:function(t,e,i,s){var n,o,r=this,a=r.points,h=a&&a.length||0,l=r.options,c=r.chart,d=null,p=r.xAxis,u=l.turboThreshold,g=this.xData,f=this.yData,m=(n=r.pointArrayMap)&&n.length;if(n=(t=t||[]).length,e=Ys(e,!0),!1!==s&&n&&h&&!r.cropped&&!r.hasGroupedData&&r.visible&&(o=this.updateData(t)),!o){if(r.xIncrement=null,r.colorCounter=0,Ds(this.parallelArrays,function(t){r[t+"Data"].length=0}),u&&u<n){for(i=0;null===d&&i<n;)d=t[i],i++;if(Ws(d))for(i=0;i<n;i++)g[i]=this.autoIncrement(),f[i]=t[i];else if(Ns(d))if(m)for(i=0;i<n;i++)d=t[i],g[i]=d[0],f[i]=d.slice(1,m+1);else for(i=0;i<n;i++)d=t[i],g[i]=d[0],f[i]=d[1];else Ms.error(12)}else for(i=0;i<n;i++)void 0!==t[i]&&(d={series:r},r.pointClass.prototype.applyOptions.apply(d,[t[i]]),r.updateParallelArrays(d,i));for(f&&Hs(f[0])&&Ms.error(14,!0),r.data=[],r.options.data=r.userOptions.data=t,i=h;i--;)a[i]&&a[i].destroy&&a[i].destroy();p&&(p.minRange=p.userMinRange),r.isDirty=c.isDirtyBox=!0,r.isDirtyData=!!a,i=!1}"point"===l.legendType&&(this.processData(),this.generatePoints()),e&&c.redraw(i)},processData:function(t){var e,i=this.xData,s=this.yData,n=i.length;e=0;var o,r,a,h=this.xAxis;a=(u=this.options).cropThreshold;var l,c,d=this.getExtremesFromAll||u.getExtremesFromAll,p=this.isCartesian,u=h&&h.val2lin,g=h&&h.isLog,f=this.requireSorting;if(p&&!this.isDirty&&!h.isDirty&&!this.yAxis.isDirty&&!t)return!1;for(h&&(l=(t=h.getExtremes()).min,c=t.max),p&&this.sorted&&!d&&(!a||a<n||this.forceCrop)&&(i[n-1]<l||i[0]>c?(i=[],s=[]):(i[0]<l||i[n-1]>c)&&(i=(e=this.cropData(this.xData,this.yData,l,c)).xData,s=e.yData,e=e.start,o=!0)),a=i.length||1;--a;)0<(n=g?u(i[a])-u(i[a-1]):i[a]-i[a-1])&&(void 0===r||n<r)?r=n:n<0&&f&&(Ms.error(15),f=!1);this.cropped=o,this.cropStart=e,this.processedXData=i,this.processedYData=s,this.closestPointRange=r},cropData:function(t,e,i,s,n){var o,r=t.length,a=0,h=r;for(n=Ys(n,this.cropShoulder,1),o=0;o<r;o++)if(t[o]>=i){a=Math.max(0,o-n);break}for(i=o;i<r;i++)if(t[i]>s){h=i+n;break}return{xData:t.slice(a,h),yData:e.slice(a,h),start:a,end:h}},generatePoints:function(){var t,e,i,s,n=(p=this.options).data,o=this.data,r=this.processedXData,a=this.processedYData,h=this.pointClass,l=r.length,c=this.cropStart||0,d=this.hasGroupedData,p=p.keys,u=[];for(o||d||((o=[]).length=n.length,o=this.data=o),p&&d&&(this.options.keys=!1),s=0;s<l;s++)e=c+s,d?(i=(new h).init(this,[r[s]].concat(js(a[s])))).dataGroup=this.groupMap[s]:(i=o[e])||void 0===n[e]||(o[e]=i=(new h).init(this,n[e],r[s])),i&&(i.index=e,u[s]=i);if(this.options.keys=p,o&&(l!==(t=o.length)||d))for(s=0;s<t;s++)s!==c||d||(s+=l),o[s]&&(o[s].destroyElements(),o[s].plotX=void 0);this.data=o,this.points=u},getExtremes:function(t){var e,i,s,n,o,r=this.yAxis,a=this.processedXData,h=[],l=0,c=(e=this.xAxis.getExtremes()).min,d=e.max,p=this.requireSorting?1:0;for(e=(t=t||this.stackedYData||this.processedYData||[]).length,o=0;o<e;o++)if(s=a[o],n=t[o],i=(Ws(n,!0)||Ns(n))&&(!r.positiveValuesOnly||n.length||0<n),s=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(a[o+p]||s)>=c&&(a[o-p]||s)<=d,i&&s)if(i=n.length)for(;i--;)"number"==typeof n[i]&&(h[l++]=n[i]);else h[l++]=n;this.dataMin=Ps(h),this.dataMax=As(h)},translate:function(){this.processedXData||this.processData(),this.generatePoints();var t,e,i,s,n=this.options,o=n.stacking,r=this.xAxis,a=r.categories,h=this.yAxis,l=this.points,c=l.length,d=!!this.modifyValue,p=n.pointPlacement,u="between"===p||Ws(p),g=n.threshold,f=n.startFromThreshold?g:0,m=Number.MAX_VALUE;for("between"===p&&(p=.5),Ws(p)&&(p*=Ys(n.pointRange||r.pointRange)),n=0;n<c;n++){var x=l[n],v=x.x,y=x.y;e=x.low;var b,k=o&&h.stacks[(this.negStacks&&y<(f?0:g)?"-":"")+this.stackKey];h.positiveValuesOnly&&null!==y&&y<=0&&(x.isNull=!0),x.plotX=t=Cs(Math.min(Math.max(-1e5,r.translate(v,0,0,0,1,p,"flags"===this.type)),1e5)),o&&this.visible&&!x.isNull&&k&&k[v]&&(s=this.getStackIndicator(s,v,this.index),e=(y=(b=k[v]).points[s.key])[0],y=y[1],e===f&&s.key===k[v].base&&(e=Ys(Ws(g)&&g,h.min)),h.positiveValuesOnly&&e<=0&&(e=null),x.total=x.stackTotal=b.total,x.percentage=b.total&&x.y/b.total*100,x.stackY=y,b.setOffset(this.pointXOffset||0,this.barW||0)),x.yBottom=Is(e)?Math.min(Math.max(-1e5,h.translate(e,0,1,0,1)),1e5):null,d&&(y=this.modifyValue(y,x)),x.plotY=e="number"==typeof y&&1/0!==y?Math.min(Math.max(-1e5,h.translate(y,0,1,0,1)),1e5):void 0,x.isInside=void 0!==e&&0<=e&&e<=h.len&&0<=t&&t<=r.len,x.clientX=u?Cs(r.translate(v,0,0,0,1,p)):t,x.negative=x.y<(g||0),x.category=a&&void 0!==a[x.x]?a[x.x]:x.x,x.isNull||(void 0!==i&&(m=Math.min(m,Math.abs(t-i))),i=t),x.zone=this.zones.length&&x.getZone()}this.closestPointRangePx=m,Es(this,"afterTranslate")},getValidPoints:function(t,e){var i=this.chart;return Rs(t||this.points||[],function(t){return!(e&&!i.isInsidePlot(t.plotX,t.plotY,i.inverted)||t.isNull)})},setClip:function(t){var e=this.chart,i=this.options,s=e.renderer,n=e.inverted,o=this.clipBox,r=o||e.clipBox,a=this.sharedClipKey||["_sharedClip",t&&t.duration,t&&t.easing,r.height,i.xAxis,i.yAxis].join(),h=e[a],l=e[a+"m"];h||(t&&(r.width=0,n&&(r.x=e.plotSizeX),e[a+"m"]=l=s.clipRect(n?e.plotSizeX+99:-99,n?-e.plotLeft:-e.plotTop,99,n?e.chartWidth:e.chartHeight)),e[a]=h=s.clipRect(r),h.count={length:0}),t&&!h.count[this.index]&&(h.count[this.index]=!0,h.count.length+=1),!1!==i.clip&&(this.group.clip(t||o?h:e.clipRect),this.markerGroup.clip(l),this.sharedClipKey=a),t||(h.count[this.index]&&(delete h.count[this.index],--h.count.length),0===h.count.length&&a&&e[a]&&(o||(e[a]=e[a].destroy()),e[a+"m"]&&(e[a+"m"]=e[a+"m"].destroy())))},animate:function(t){var e,i=this.chart,s=Ts(this.options.animation);t?this.setClip(s):((t=i[e=this.sharedClipKey])&&t.animate({width:i.plotSizeX,x:0},s),i[e+"m"]&&i[e+"m"].animate({width:i.plotSizeX+99,x:0},s),this.animate=null)},afterAnimate:function(){this.setClip(),Es(this,"afterAnimate"),this.finishedAnimating=!0},drawPoints:function(){var t,e,i,s,n,o,r,a,h=this.points,l=this.chart,c=this.options.marker,d=this[this.specialGroup]||this.markerGroup,p=Ys(c.enabled,!!this.xAxis.isRadial||null,this.closestPointRangePx>=c.enabledThreshold*c.radius);if(!1!==c.enabled||this._hasPointMarkers)for(t=0;t<h.length;t++)s=(e=h[t]).graphic,n=e.marker||{},o=!!e.marker,i=p&&void 0===n.enabled||n.enabled,r=e.isInside,i&&!e.isNull?(i=Ys(n.symbol,this.symbol),a=this.markerAttribs(e,e.selected&&"select"),s?s[r?"show":"hide"](!0).animate(a):r&&(0<a.width||e.hasImage)&&(e.graphic=s=l.renderer.symbol(i,a.x,a.y,a.width,a.height,o?n:c).add(d)),s&&s.attr(this.pointAttribs(e,e.selected&&"select")),s&&s.addClass(e.getClassName(),!0)):s&&(e.graphic=s.destroy())},markerAttribs:function(t,e){var i=this.options.marker,s=t.marker||{},n=s.symbol||i.symbol,o=Ys(s.radius,i.radius);return e&&(i=i.states[e],e=s.states&&s.states[e],o=Ys(e&&e.radius,i&&i.radius,o+(i&&i.radiusPlus||0))),t.hasImage=n&&0===n.indexOf("url"),t.hasImage&&(o=0),t={x:Math.floor(t.plotX)-o,y:t.plotY-o},o&&(t.width=t.height=2*o),t},pointAttribs:function(t,e){var i=this.options.marker,s=(a=t&&t.options)&&a.marker||{},n=this.color,o=a&&a.color,r=t&&t.color,a=Ys(s.lineWidth,i.lineWidth);return t=t&&t.zone&&t.zone.color,n=o||t||r||n,t=s.fillColor||i.fillColor||n,n=s.lineColor||i.lineColor||n,e&&(i=i.states[e],e=s.states&&s.states[e]||{},a=Ys(e.lineWidth,i.lineWidth,a+Ys(e.lineWidthPlus,i.lineWidthPlus,0)),t=e.fillColor||i.fillColor||t,n=e.lineColor||i.lineColor||n),{stroke:n,"stroke-width":a,fill:t}},destroy:function(){var t,e,i,s=this,n=s.chart,o=/AppleWebKit\/533/.test(_s.navigator.userAgent),r=s.data||[];for(Es(s,"destroy"),Fs(s),Ds(s.axisTypes||[],function(t){(i=s[t])&&i.series&&(zs(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),t=r.length;t--;)(e=r[t])&&e.destroy&&e.destroy();s.points=null,Ms.clearTimeout(s.animationTimeout),Gs(s,function(t,e){t instanceof Vs&&!t.survive&&t[o&&"group"===e?"hide":"destroy"]()}),n.hoverSeries===s&&(n.hoverSeries=null),zs(n.series,s),n.orderSeries(),Gs(s,function(t,e){delete s[e]})},getGraphPath:function(o,r,a){var t,h,l=this,c=l.options,d=c.step,p=[],u=[];return(t=(o=o||l.points).reversed)&&o.reverse(),(d={right:1,center:2}[d]||d&&3)&&t&&(d=4-d),!c.connectNulls||r||a||(o=this.getValidPoints(o)),Ds(o,function(t,e){var i=t.plotX,s=t.plotY,n=o[e-1];(t.leftCliff||n&&n.rightCliff)&&!a&&(h=!0),t.isNull&&!Is(r)&&0<e?h=!c.connectNulls:t.isNull&&!r?h=!0:(0===e||h?e=["M",t.plotX,t.plotY]:l.getPointSpline?e=l.getPointSpline(o,t,e):d?(e=1===d?["L",n.plotX,s]:2===d?["L",(n.plotX+i)/2,n.plotY,"L",(n.plotX+i)/2,s]:["L",i,n.plotY]).push("L",i,s):e=["L",i,s],u.push(t.x),d&&(u.push(t.x),2===d&&u.push(t.x)),p.push.apply(p,e),h=!1)}),p.xMap=u,l.graphPath=p},drawGraph:function(){var n=this,o=this.options,r=(this.gappedPath||this.getGraphPath).call(this),t=[["graph","highcharts-graph",o.lineColor||this.color,o.dashStyle]];t=n.getZonesGraphs(t),Ds(t,function(t,e){var i=t[0],s=n[i];s?(s.endX=n.preventGraphAnimation?null:r.xMap,s.animate({d:r})):r.length&&(n[i]=n.chart.renderer.path(r).addClass(t[1]).attr({zIndex:1}).add(n.group),s={stroke:t[2],"stroke-width":o.lineWidth,fill:n.fillGraph&&n.color||"none"},t[3]?s.dashstyle=t[3]:"square"!==o.linecap&&(s["stroke-linecap"]=s["stroke-linejoin"]="round"),s=n[i].attr(s).shadow(e<2&&o.shadow)),s&&(s.startX=r.xMap,s.isArea=r.isArea)})},getZonesGraphs:function(i){return Ds(this.zones,function(t,e){i.push(["zone-graph-"+e,"highcharts-graph highcharts-zone-graph-"+e+" "+(t.className||""),t.color||this.color,t.dashStyle||this.options.dashStyle])},this),i},applyZones:function(){var i,s,n,o,r,a,h,l,c,d=this,p=this.chart,u=p.renderer,t=this.zones,g=this.clips||[],f=this.graph,m=this.area,x=Math.max(p.chartWidth,p.chartHeight),v=this[(this.zoneAxis||"y")+"Axis"],y=p.inverted,b=!1;t.length&&(f||m)&&v&&void 0!==v.min&&(r=v.reversed,a=v.horiz,f&&!this.showLine&&f.hide(),m&&m.hide(),o=v.getExtremes(),Ds(t,function(t,e){i=r?a?p.plotWidth:0:a?0:v.toPixels(o.min),i=Math.min(Math.max(Ys(s,i),0),x),s=Math.min(Math.max(Math.round(v.toPixels(Ys(t.value,o.max),!0)),0),x),b&&(i=s=v.toPixels(o.max)),h=Math.abs(i-s),l=Math.min(i,s),c=Math.max(i,s),v.isXAxis?(n={x:y?c:l,y:0,width:h,height:x},a||(n.x=p.plotHeight-n.x)):(n={x:0,y:y?c:l,width:x,height:h},a&&(n.y=p.plotWidth-n.y)),y&&u.isVML&&(n=v.isXAxis?{x:0,y:r?l:c,height:n.width,width:p.chartWidth}:{x:n.y-p.plotLeft-p.spacingBox.x,y:0,width:n.height,height:p.chartHeight}),g[e]?g[e].animate(n):(g[e]=u.clipRect(n),f&&d["zone-graph-"+e].clip(g[e]),m&&d["zone-area-"+e].clip(g[e])),b=t.value>o.max,d.resetZones&&0===s&&(s=void 0)}),this.clips=g)},invertGroups:function(e){function t(){Ds(["group","markerGroup"],function(t){s[t]&&(n.renderer.isVML&&s[t].attr({width:s.yAxis.len,height:s.xAxis.len}),s[t].width=s.yAxis.len,s[t].height=s.xAxis.len,s[t].invert(e))})}var i,s=this,n=s.chart;s.xAxis&&(i=Ss(n,"resize",t),Ss(s,"destroy",i),t(),s.invertGroups=t)},plotGroup:function(t,e,i,s,n){var o=this[t],r=!o;return r&&(this[t]=o=this.chart.renderer.g().attr({zIndex:s||.1}).add(n)),o.addClass("highcharts-"+e+" animated highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(Is(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(o.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),o.attr({visibility:i})[r?"attr":"animate"](this.getPlotBox()),o},getPlotBox:function(){var t=this.chart,e=this.xAxis,i=this.yAxis;return t.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:t.plotLeft,translateY:i?i.top:t.plotTop,scaleX:1,scaleY:1}},render:function(){var t,e=this,i=e.chart,s=e.options,n=!!e.animate&&i.renderer.isSVG&&Ts(s.animation).duration,o=e.visible?"inherit":"hidden",r=s.zIndex,a=e.hasRendered,h=i.seriesGroup,l=i.inverted;t=e.plotGroup("group","series",o,r,h),e.markerGroup=e.plotGroup("markerGroup","markers",o,r,h),n&&e.animate(!0),t.inverted=!!e.isCartesian&&l,e.drawGraph&&(e.drawGraph(),e.applyZones()),e.drawDataLabels&&e.drawDataLabels(),e.visible&&e.drawPoints(),e.drawTracker&&!1!==e.options.enableMouseTracking&&e.drawTracker(),e.invertGroups(l),!1===s.clip||e.sharedClipKey||a||t.clip(i.clipRect),n&&e.animate(),a||(e.animationTimeout=Us(function(){e.afterAnimate()},n)),e.isDirty=!1,e.hasRendered=!0,Es(e,"afterRender")},redraw:function(){var t=this.chart,e=this.isDirty||this.isDirtyData,i=this.group,s=this.xAxis,n=this.yAxis;i&&(t.inverted&&i.attr({width:t.plotWidth,height:t.plotHeight}),i.animate({translateX:Ys(s&&s.left,t.plotLeft),translateY:Ys(n&&n.top,t.plotTop)})),this.translate(),this.render(),e&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(t,e){var i=this.xAxis,s=this.yAxis,n=this.chart.inverted;return this.searchKDTree({clientX:n?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:n?s.len-t.chartX+s.pos:t.chartY-s.pos},e)},buildKDTree:function(){this.buildingKdTree=!0;var r=this,t=-1<r.options.findNearestPointBy.indexOf("y")?2:1;delete r.kdTree,Us(function(){r.kdTree=function t(e,i,s){var n,o;if(o=e&&e.length)return n=r.kdAxisArray[i%s],e.sort(function(t,e){return t[n]-e[n]}),{point:e[o=Math.floor(o/2)],left:t(e.slice(0,o),i+1,s),right:t(e.slice(o+1),i+1,s)}}(r.getValidPoints(null,!r.directTouch),t,t),r.buildingKdTree=!1},r.options.kdNow?0:1)},searchKDTree:function(t,e){var c=this,d=this.kdAxisArray[0],p=this.kdAxisArray[1],u=e?"distX":"dist";if(e=-1<c.options.findNearestPointBy.indexOf("y")?2:1,this.kdTree||this.buildingKdTree||this.buildKDTree(),this.kdTree)return function t(e,i,s,n){var o,r,a=i.point,h=c.kdAxisArray[s%n],l=a;return o=((r=Is(e[d])&&Is(a[d])?Math.pow(e[d]-a[d],2):null)||0)+((o=Is(e[p])&&Is(a[p])?Math.pow(e[p]-a[p],2):null)||0),a.dist=Is(o)?Math.sqrt(o):Number.MAX_VALUE,a.distX=Is(r)?Math.sqrt(r):Number.MAX_VALUE,r=(h=e[h]-a[h])<0?"right":"left",i[o=h<0?"left":"right"]&&(l=(o=t(e,i[o],s+1,n))[u]<l[u]?o:a),i[r]&&Math.sqrt(h*h)<l[u]&&(l=(e=t(e,i[r],s+1,n))[u]<l[u]?e:l),l}(t,this.kdTree,e,e)}}),Zs=(Ks=zt).Axis,qs=Ks.Chart,$s=Ks.correctFloat,Js=Ks.defined,Qs=Ks.destroyObjectProperties,tn=Ks.each,en=Ks.format,sn=Ks.objectEach,nn=Ks.pick,on=Ks.Series,Ks.StackItem=function(t,e,i,s,n){var o=t.chart.inverted;this.axis=t,this.isNegative=i,this.options=e,this.x=s,this.total=null,this.points={},this.stack=n,this.rightCliff=this.leftCliff=0,this.alignOptions={align:e.align||(o?i?"left":"right":"center"),verticalAlign:e.verticalAlign||(o?"middle":i?"bottom":"top"),y:nn(e.y,o?4:i?14:-6),x:nn(e.x,o?i?-6:6:0)},this.textAlign=e.textAlign||(o?i?"right":"left":"center")},Ks.StackItem.prototype={destroy:function(){Qs(this,this.axis)},render:function(t){var e=this.axis.chart,i=this.options,s=(s=i.format)?en(s,this,e.time):i.formatter.call(this);this.label?this.label.attr({text:s,visibility:"hidden"}):this.label=e.renderer.text(s,null,null,i.useHTML).css(i.style).attr({align:this.textAlign,rotation:i.rotation,visibility:"hidden"}).add(t)},setOffset:function(t,e){var i=this.axis,s=i.chart,n=i.translate(i.usePercentage?100:this.total,0,0,0,1),o=i.translate(0);o=Math.abs(n-o),t=s.xAxis[0].translate(this.x)+t,i=this.getStackBox(s,this,t,n,e,o,i),(e=this.label)&&(e.align(this.alignOptions,null,i),i=e.alignAttr,e[!1===this.options.crop||s.isInsidePlot(i.x,i.y)?"show":"hide"](!0))},getStackBox:function(t,e,i,s,n,o,r){var a=e.axis.reversed,h=t.inverted;return t=r.height+r.pos-(h?t.plotLeft:t.plotTop),e=e.isNegative&&!a||!e.isNegative&&a,{x:h?e?s:s-o:i,y:h?t-i-n:e?t-s-o:t-s,width:h?o:n,height:h?n:o}}},qs.prototype.getStacks=function(){var e=this;tn(e.yAxis,function(t){t.stacks&&t.hasVisibleSeries&&(t.oldStacks=t.stacks)}),tn(e.series,function(t){!t.options.stacking||!0!==t.visible&&!1!==e.options.chart.ignoreHiddenSeries||(t.stackKey=t.type+nn(t.options.stack,""))})},Zs.prototype.buildStacks=function(){var t,e=this.series,i=nn(this.options.reversedStacks,!0),s=e.length;if(!this.isXAxis){for(this.usePercentage=!1,t=s;t--;)e[i?t:s-t-1].setStackedPoints();for(t=0;t<s;t++)e[t].modifyStacks()}},Zs.prototype.renderStackTotals=function(){var t=this.chart,e=t.renderer,i=this.stacks,s=this.stackTotalGroup;s||(this.stackTotalGroup=s=e.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),s.translate(t.plotLeft,t.plotTop),sn(i,function(t){sn(t,function(t){t.render(s)})})},Zs.prototype.resetStacks=function(){var s=this,t=s.stacks;s.isXAxis||sn(t,function(i){sn(i,function(t,e){t.touched<s.stacksTouched?(t.destroy(),delete i[e]):(t.total=null,t.cumulative=null)})})},Zs.prototype.cleanStacks=function(){var t;this.isXAxis||(this.oldStacks&&(t=this.stacks=this.oldStacks),sn(t,function(t){sn(t,function(t){t.cumulative=t.total})}))},on.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var t,e,i,s,n,o,r,a=this.processedXData,h=this.processedYData,l=[],c=h.length,d=(g=this.options).threshold,p=nn(g.startFromThreshold&&d,0),u=g.stack,g=g.stacking,f=this.stackKey,m="-"+f,x=this.negStacks,v=this.yAxis,y=v.stacks,b=v.oldStacks;for(v.stacksTouched+=1,n=0;n<c;n++)o=a[n],r=h[n],s=(t=this.getStackIndicator(t,o,this.index)).key,y[i=(e=x&&r<(p?0:d))?m:f]||(y[i]={}),y[i][o]||(b[i]&&b[i][o]?(y[i][o]=b[i][o],y[i][o].total=null):y[i][o]=new Ks.StackItem(v,v.options.stackLabels,e,o,u)),i=y[i][o],null!==r?(i.points[s]=i.points[this.index]=[nn(i.cumulative,p)],Js(i.cumulative)||(i.base=s),i.touched=v.stacksTouched,0<t.index&&!1===this.singleStacks&&(i.points[s][0]=i.points[this.index+","+o+",0"][0])):i.points[s]=i.points[this.index]=null,"percent"===g?(e=e?f:m,x&&y[e]&&y[e][o]?(e=y[e][o],i.total=e.total=Math.max(e.total,i.total)+Math.abs(r)||0):i.total=$s(i.total+(Math.abs(r)||0))):i.total=$s(i.total+(r||0)),i.cumulative=nn(i.cumulative,p)+(r||0),null!==r&&(i.points[s].push(i.cumulative),l[n]=i.cumulative);"percent"===g&&(v.usePercentage=!0),this.stackedYData=l,v.oldStacks={}}},on.prototype.modifyStacks=function(){var n,o=this,t=o.stackKey,r=o.yAxis.stacks,a=o.processedXData,h=o.options.stacking;o[h+"Stacker"]&&tn([t,"-"+t],function(t){for(var e,i,s=a.length;s--;)e=a[s],n=o.getStackIndicator(n,e,o.index,t),(i=(e=r[t]&&r[t][e])&&e.points[n.key])&&o[h+"Stacker"](i,e,s)})},on.prototype.percentStacker=function(t,e,i){e=e.total?100/e.total:0,t[0]=$s(t[0]*e),t[1]=$s(t[1]*e),this.stackedYData[i]=t[1]},on.prototype.getStackIndicator=function(t,e,i,s){return!Js(t)||t.x!==e||s&&t.key!==s?t={x:e,index:0,key:s}:t.index++,t.key=[i,e,t.index].join(),t},an=(rn=zt).addEvent,hn=rn.animate,ln=rn.Axis,cn=rn.createElement,dn=rn.css,pn=rn.defined,un=rn.each,gn=rn.erase,fn=rn.extend,mn=rn.fireEvent,xn=rn.inArray,vn=rn.isNumber,yn=rn.isObject,bn=rn.isArray,kn=rn.merge,wn=rn.objectEach,Mn=rn.pick,Sn=rn.Point,Tn=rn.Series,An=rn.seriesTypes,Pn=rn.setAnimation,Cn=rn.splat,fn(rn.Chart.prototype,{addSeries:function(t,e,i){var s,n=this;return t&&(e=Mn(e,!0),mn(n,"addSeries",{options:t},function(){s=n.initSeries(t),n.isDirtyLegend=!0,n.linkSeries(),mn(n,"afterAddSeries"),e&&n.redraw(i)})),s},addAxis:function(t,e,i,s){var n=e?"xAxis":"yAxis",o=this.options;return t=kn(t,{index:this[n].length,isX:e}),e=new ln(this,t),o[n]=Cn(o[n]||{}),o[n].push(t),Mn(i,!0)&&this.redraw(s),e},showLoading:function(t){var e=this,i=e.options,s=e.loadingDiv,n=i.loading,o=function(){s&&dn(s,{left:e.plotLeft+"px",top:e.plotTop+"px",width:e.plotWidth+"px",height:e.plotHeight+"px"})};s||(e.loadingDiv=s=cn("div",{className:"highcharts-loading highcharts-loading-hidden"},null,e.container),e.loadingSpan=cn("span",{className:"highcharts-loading-inner"},null,s),an(e,"redraw",o)),s.className="highcharts-loading",e.loadingSpan.innerHTML=t||i.lang.loading,dn(s,fn(n.style,{zIndex:10})),dn(e.loadingSpan,n.labelStyle),e.loadingShown||(dn(s,{opacity:0,display:""}),hn(s,{opacity:n.style.opacity||.5},{duration:n.showDuration||0})),e.loadingShown=!0,o()},hideLoading:function(){var t=this.options,e=this.loadingDiv;e&&(e.className="highcharts-loading highcharts-loading-hidden",hn(e,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){dn(e,{display:"none"})}})),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(t,e,n,i){var s,o,r=this,a={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},h=t.chart,l=[];mn(r,"update",{options:t}),h&&(kn(!0,r.options.chart,h),"className"in h&&r.setClassName(h.className),"reflow"in h&&r.setReflow(h.reflow),("inverted"in h||"polar"in h||"type"in h)&&(r.propFromSeries(),s=!0),"alignTicks"in h&&(s=!0),wn(h,function(t,e){-1!==xn("chart."+e,r.propsRequireUpdateSeries)&&(o=!0),-1!==xn(e,r.propsRequireDirtyBox)&&(r.isDirtyBox=!0)}),"style"in h&&r.renderer.setStyle(h.style)),t.colors&&(this.options.colors=t.colors),t.plotOptions&&kn(!0,this.options.plotOptions,t.plotOptions),wn(t,function(t,e){r[e]&&"function"==typeof r[e].update?r[e].update(t,!1):"function"==typeof r[a[e]]&&r[a[e]](t),"chart"!==e&&-1!==xn(e,r.propsRequireUpdateSeries)&&(o=!0)}),un("xAxis yAxis zAxis series colorAxis pane".split(" "),function(i){var s;t[i]&&("series"===i&&(s=[],un(r[i],function(t,e){t.options.isInternal||s.push(e)})),un(Cn(t[i]),function(t,e){(e=pn(t.id)&&r.get(t.id)||r[i][s?s[e]:e])&&e.coll===i&&(e.update(t,!1),n&&(e.touched=!0)),!e&&n&&("series"===i?r.addSeries(t,!1).touched=!0:"xAxis"!==i&&"yAxis"!==i||(r.addAxis(t,"xAxis"===i,!1).touched=!0))}),n&&un(r[i],function(t){t.touched||t.options.isInternal?delete t.touched:l.push(t)}))}),un(l,function(t){t.remove(!1)}),s&&un(r.axes,function(t){t.update({},!1)}),o&&un(r.series,function(t){t.update({},!1)}),t.loading&&kn(!0,r.options.loading,t.loading),s=h&&h.width,h=h&&h.height,vn(s)&&s!==r.chartWidth||vn(h)&&h!==r.chartHeight?r.setSize(s,h,i):Mn(e,!0)&&r.redraw(i),mn(r,"afterUpdate",{options:t})},setSubtitle:function(t){this.setTitle(void 0,t)}}),fn(Sn.prototype,{update:function(t,e,i,s){function n(){r.applyOptions(t),null===r.y&&h&&(r.graphic=h.destroy()),yn(t,!0)&&(h&&h.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=h.destroy()),t&&t.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy()),r.connector&&(r.connector=r.connector.destroy())),o=r.index,a.updateParallelArrays(r,o),c.data[o]=yn(c.data[o],!0)||yn(t,!0)?r.options:Mn(t,c.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===c.legendType&&(l.isDirtyLegend=!0),e&&l.redraw(i)}var o,r=this,a=r.series,h=r.graphic,l=a.chart,c=a.options;e=Mn(e,!0),!1===s?n():r.firePointEvent("update",{options:t},n)},remove:function(t,e){this.series.removePoint(xn(this,this.series.data),t,e)}}),fn(Tn.prototype,{addPoint:function(t,e,i,s){var n,o,r,a,h=this.options,l=this.data,c=this.chart,d=(d=this.xAxis)&&d.hasNames&&d.names,p=h.data,u=this.xData;if(e=Mn(e,!0),n={series:this},this.pointClass.prototype.applyOptions.apply(n,[t]),a=n.x,r=u.length,this.requireSorting&&a<u[r-1])for(o=!0;r&&u[r-1]>a;)r--;this.updateParallelArrays(n,"splice",r,0,0),this.updateParallelArrays(n,r),d&&n.name&&(d[a]=n.name),p.splice(r,0,t),o&&(this.data.splice(r,0,null),this.processData()),"point"===h.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):(l.shift(),this.updateParallelArrays(n,"shift"),p.shift())),this.isDirtyData=this.isDirty=!0,e&&c.redraw(s)},removePoint:function(t,e,i){var s=this,n=s.data,o=n[t],r=s.points,a=s.chart,h=function(){r&&r.length===n.length&&r.splice(t,1),n.splice(t,1),s.options.data.splice(t,1),s.updateParallelArrays(o||{series:s},"splice",t,1),o&&o.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&a.redraw()};Pn(i,a),e=Mn(e,!0),o?o.firePointEvent("remove",null,h):h()},remove:function(t,e,i){function s(){n.destroy(),o.isDirtyLegend=o.isDirtyBox=!0,o.linkSeries(),Mn(t,!0)&&o.redraw(e)}var n=this,o=n.chart;!1!==i?mn(n,"remove",null,s):s()},update:function(e,t){var i,s=this,n=s.chart,o=s.userOptions,r=s.oldType||s.type,a=e.type||o.type||n.options.chart.type,h=An[r].prototype,l=["group","markerGroup","dataLabelsGroup"],c=["navigatorSeries","baseSeries"],d=s.finishedAnimating&&{animation:!1},p=["data","name","turboThreshold"],u=rn.keys(e),g=0<u.length;if(un(u,function(t){-1===xn(t,p)&&(g=!1)}),g)e.data&&this.setData(e.data,!1),e.name&&this.setName(e.name,!1);else{for(i in c=l.concat(c),un(c,function(t){c[t]=s[t],delete s[t]}),e=kn(o,d,{index:s.index,pointStart:Mn(o.pointStart,s.xData[0])},{data:s.options.data},e),s.remove(!1,null,!1),h)s[i]=void 0;An[a||r]?fn(s,An[a||r].prototype):rn.error(17,!0),un(c,function(t){s[t]=c[t]}),s.init(n,e),e.zIndex!==o.zIndex&&un(l,function(t){s[t]&&s[t].attr({zIndex:e.zIndex})}),s.oldType=r,n.linkSeries()}mn(this,"afterUpdate"),Mn(t,!0)&&n.redraw(!1)},setName:function(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}}),fn(ln.prototype,{update:function(t,e){var i=this.chart,s=t&&t.events||{};t=kn(this.userOptions,t),i.options[this.coll].indexOf&&(i.options[this.coll][i.options[this.coll].indexOf(this.userOptions)]=t),wn(i.options[this.coll].events,function(t,e){void 0===s[e]&&(s[e]=void 0)}),this.destroy(!0),this.init(i,fn(t,{events:s})),i.isDirtyBox=!0,Mn(e,!0)&&i.redraw()},remove:function(t){for(var e=this.chart,i=this.coll,s=this.series,n=s.length;n--;)s[n]&&s[n].remove(!1);gn(e.axes,this),gn(e[i],this),bn(e.options[i])?e.options[i].splice(this.options.index,1):delete e.options[i],un(e[i],function(t,e){t.options.index=t.userOptions.index=e}),this.destroy(),e.isDirtyBox=!0,Mn(t,!0)&&e.redraw()},setTitle:function(t,e){this.update({title:t},e)},setCategories:function(t,e){this.update({categories:t},e)}}),On=(Ln=zt).color,In=Ln.each,Dn=Ln.map,zn=Ln.pick,Bn=Ln.Series,(0,Ln.seriesType)("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(t){var h,l,e=[],c=[],i=this.xAxis,s=this.yAxis,d=s.stacks[this.stackKey],p={},u=this.index,n=s.series,g=n.length,f=zn(s.options.reversedStacks,!0)?1:-1;if(t=t||this.points,this.options.stacking){for(l=0;l<t.length;l++)t[l].leftNull=t[l].rightNull=null,p[t[l].x]=t[l];Ln.objectEach(d,function(t,e){null!==t.total&&c.push(e)}),c.sort(function(t,e){return t-e}),h=Dn(n,function(){return this.visible}),In(c,function(n,o){var r,a,t=0;if(p[n]&&!p[n].isNull)e.push(p[n]),In([-1,1],function(t){var e=1===t?"rightNull":"leftNull",i=0,s=d[c[o+t]];if(s)for(l=u;0<=l&&l<g;)(r=s.points[l])||(l===u?p[n][e]=!0:h[l]&&(a=d[n].points[l])&&(i-=a[1]-a[0])),l+=f;p[n][1===t?"rightCliff":"leftCliff"]=i});else{for(l=u;0<=l&&l<g;){if(r=d[n].points[l]){t=r[1];break}l+=f}t=s.translate(t,0,1,0,1),e.push({isNull:!0,plotX:i.translate(n,0,0,0,1),x:n,plotY:t,yBottom:t})}})}return e},getGraphPath:function(a){var t,e,h,i,s=Bn.prototype.getGraphPath,l=(n=this.options).stacking,c=this.yAxis,d=[],p=[],u=this.index,g=c.stacks[this.stackKey],f=n.threshold,m=c.getThreshold(n.threshold),n=n.connectNulls||"percent"===l,o=function(t,e,i){var s=a[t];t=l&&g[s.x].points[u];var n,o,r=s[i+"Null"]||0;i=s[i+"Cliff"]||0,s=!0,i||r?(n=(r?t[0]:t[1])+i,o=t[0]+i,s=!!r):!l&&a[e]&&a[e].isNull&&(n=o=f),void 0!==n&&(p.push({plotX:h,plotY:null===n?m:c.getThreshold(n),isNull:s,isCliff:!0}),d.push({plotX:h,plotY:null===o?m:c.getThreshold(o),doCurve:!1}))};for(a=a||this.points,l&&(a=this.getStackPoints(a)),t=0;t<a.length;t++)e=a[t].isNull,h=zn(a[t].rectPlotX,a[t].plotX),i=zn(a[t].yBottom,m),(!e||n)&&(n||o(t,t-1,"left"),e&&!l&&n||(p.push(a[t]),d.push({x:t,plotX:h,plotY:i})),n||o(t,t+1,"right"));return t=s.call(this,p,!0,!0),d.reversed=!0,(e=s.call(this,d,!0,!0)).length&&(e[0]="L"),e=t.concat(e),s=s.call(this,p,!1,n),e.xMap=t.xMap,this.areaPath=e,s},drawGraph:function(){this.areaPath=[],Bn.prototype.drawGraph.apply(this);var s=this,n=this.areaPath,o=this.options,i=[["area","highcharts-area",this.color,o.fillColor]];In(this.zones,function(t,e){i.push(["zone-area-"+e,"highcharts-area highcharts-zone-area-"+e+" "+t.className,t.color||s.color,t.fillColor||o.fillColor])}),In(i,function(t){var e=t[0],i=s[e];i?(i.endX=s.preventGraphAnimation?null:n.xMap,i.animate({d:n})):(i=s[e]=s.chart.renderer.path(n).addClass(t[1]).attr({fill:zn(t[3],On(t[2]).setOpacity(zn(o.fillOpacity,.75)).get()),zIndex:0}).add(s.group)).isArea=!0,i.startX=n.xMap,i.shiftUnit=o.step?2:1})},drawLegendSymbol:Ln.LegendSymbolMixin.drawRectangle}),Rn=(En=zt).pick,(En=En.seriesType)("spline","line",{},{getPointSpline:function(t,e,i){var s,n,o,r,a=e.plotX,h=e.plotY,l=t[i-1];if(i=t[i+1],l&&!l.isNull&&!1!==l.doCurve&&!e.isCliff&&i&&!i.isNull&&!1!==i.doCurve&&!e.isCliff){t=l.plotY,o=i.plotX;var c=0;n=(1.5*h+t)/2.5,r=(1.5*h+(i=i.plotY))/2.5,(o=(1.5*a+o)/2.5)!=(s=(1.5*a+l.plotX)/2.5)&&(c=(r-n)*(o-a)/(o-s)+h-r),r+=c,t<(n+=c)&&h<n?r=2*h-(n=Math.max(t,h)):n<t&&n<h&&(r=2*h-(n=Math.min(t,h))),i<r&&h<r?n=2*h-(r=Math.max(i,h)):r<i&&r<h&&(n=2*h-(r=Math.min(i,h))),e.rightContX=o,e.rightContY=r}return e=["C",Rn(l.rightContX,l.plotX),Rn(l.rightContY,l.plotY),Rn(s,a),Rn(n,h),a,h],l.rightContX=l.rightContY=null,e}}),Wn=(Nn=zt).seriesTypes.area.prototype,(0,Nn.seriesType)("areaspline","spline",Nn.defaultPlotOptions.area,{getStackPoints:Wn.getStackPoints,getGraphPath:Wn.getGraphPath,drawGraph:Wn.drawGraph,drawLegendSymbol:Nn.LegendSymbolMixin.drawRectangle}),Xn=(Hn=zt).animObject,Gn=Hn.color,Yn=Hn.each,Fn=Hn.extend,jn=Hn.isNumber,Vn=Hn.merge,Un=Hn.pick,_n=Hn.Series,Kn=Hn.seriesType,Zn=Hn.svg,Kn("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){_n.prototype.init.apply(this,arguments);var e=this,t=e.chart;t.hasRendered&&Yn(t.series,function(t){t.type===e.type&&(t.isDirty=!0)})},getColumnMetrics:function(){var n,o=this,t=o.options,e=o.xAxis,r=o.yAxis,i=e.options.reversedStacks,a=(i=e.reversed&&!i||!e.reversed&&i,{}),h=0;!1===t.grouping?h=1:Yn(o.chart.series,function(t){var e,i=t.options,s=t.yAxis;t.type!==o.type||!t.visible&&o.chart.options.chart.ignoreHiddenSeries||r.len!==s.len||r.pos!==s.pos||(i.stacking?(n=t.stackKey,void 0===a[n]&&(a[n]=h++),e=a[n]):!1!==i.grouping&&(e=h++),t.columnIndex=e)});var s=Math.min(Math.abs(e.transA)*(e.ordinalSlope||t.pointRange||e.closestPointRange||e.tickInterval||1),e.len),l=s*t.groupPadding,c=(s-2*l)/(h||1);return t=Math.min(t.maxPointWidth||e.len,Un(t.pointWidth,c*(1-2*t.pointPadding))),o.columnMetrics={width:t,offset:(c-t)/2+(l+((o.columnIndex||0)+(i?1:0))*c-s/2)*(i?-1:1)},o.columnMetrics},crispCol:function(t,e,i,s){var n=this.chart,o=-((r=this.borderWidth)%2?.5:0),r=r%2?.5:1;return n.inverted&&n.renderer.isVML&&(r+=1),this.options.crisp&&(i=Math.round(t+i)+o,i-=t=Math.round(t)+o),s=Math.round(e+s)+r,o=Math.abs(e)<=.5&&.5<s,s-=e=Math.round(e)+r,o&&s&&(--e,s+=1),{x:t,y:e,width:i,height:s}},translate:function(){var h=this,l=h.chart,t=h.options,e=h.dense=h.closestPointRange*h.xAxis.transA<2,c=(e=h.borderWidth=Un(t.borderWidth,e?0:1),h.yAxis),d=t.threshold,p=h.translatedThreshold=c.getThreshold(d),u=Un(t.minPointLength,5),i=h.getColumnMetrics(),g=i.width,f=h.barW=Math.max(g,1+2*e),m=h.pointXOffset=i.offset;l.inverted&&(p-=.5),t.pointPadding&&(f=Math.ceil(f)),_n.prototype.translate.apply(h),Yn(h.points,function(t){var e,i=Un(t.yBottom,p),s=999+Math.abs(i),n=(s=Math.min(Math.max(-s,t.plotY),c.len+s),t.plotX+m),o=f,r=Math.min(s,i),a=Math.max(s,i)-r;u&&Math.abs(a)<u&&(a=u,e=!c.reversed&&!t.negative||c.reversed&&t.negative,t.y===d&&h.dataMax<=d&&c.min<d&&(e=!e),r=Math.abs(r-p)>u?i-u:p-(e?u:0)),t.barX=n,t.pointWidth=g,t.tooltipPos=l.inverted?[c.len+c.pos-l.plotLeft-s,h.xAxis.len-n-o/2,a]:[n+o/2,s+c.pos-l.plotTop,a],t.shapeType="rect",t.shapeArgs=h.crispCol.apply(h,t.isNull?[n,p,o,0]:[n,r,o,a])})},getSymbol:Hn.noop,drawLegendSymbol:Hn.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(t,e){var i,s=this.options;i=(h=this.pointAttrToOptions||{}).stroke||"borderColor";var n=h["stroke-width"]||"borderWidth",o=t&&t.color||this.color,r=t&&t[i]||s[i]||this.color||o,a=t&&t[n]||s[n]||this[n]||0,h=s.dashStyle;return t&&this.zones.length&&(o=t.getZone(),o=t.options.color||o&&o.color||this.color),e&&(e=(t=Vn(s.states[e],t.options.states&&t.options.states[e]||{})).brightness,o=t.color||void 0!==e&&Gn(o).brighten(t.brightness).get()||o,r=t[i]||r,a=t[n]||a,h=t.dashStyle||h),i={fill:o,stroke:r,"stroke-width":a},h&&(i.dashstyle=h),i},drawPoints:function(){var s,n=this,o=this.chart,r=n.options,a=o.renderer,h=r.animationLimit||250;Yn(n.points,function(t){var e=t.graphic,i=e&&o.pointCount<h?"animate":"attr";jn(t.plotY)&&null!==t.y?(s=t.shapeArgs,e?e[i](Vn(s)):t.graphic=e=a[t.shapeType](s).add(t.group||n.group),r.borderRadius&&e.attr({r:r.borderRadius}),e[i](n.pointAttribs(t,t.selected&&"select")).shadow(r.shadow,null,r.stacking&&!r.borderRadius),e.addClass(t.getClassName(),!0)):e&&(t.graphic=e.destroy())})},animate:function(t){var i,s=this,n=this.yAxis,e=s.options,o=this.chart.inverted,r={},a=o?"translateX":"translateY";Zn&&(t?(r.scaleY=.001,t=Math.min(n.pos+n.len,Math.max(n.pos,n.toPixels(e.threshold))),o?r.translateX=t-n.len:r.translateY=t,s.group.attr(r)):(i=s.group.attr(a),s.group.animate({scaleY:1},Fn(Xn(s.options.animation),{step:function(t,e){r[a]=i+e.pos*(n.pos-i),s.group.attr(r)}})),s.animate=null))},remove:function(){var e=this,t=e.chart;t.hasRendered&&Yn(t.series,function(t){t.type===e.type&&(t.isDirty=!0)}),_n.prototype.remove.apply(e,arguments)}}),(0,zt.seriesType)("bar","column",null,{inverted:!0}),$n=(qn=zt).Series,(qn=qn.seriesType)("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">\u25cf</span> <span style="font-size: 0.85em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&$n.prototype.drawGraph.call(this)}}),Qn=(Jn=zt).deg2rad,to=Jn.isNumber,eo=Jn.pick,io=Jn.relativeLength,Jn.CenteredSeriesMixin={getCenter:function(){var t,e,i=this.options,s=this.chart,n=2*(i.slicedOffset||0),o=s.plotWidth-2*n,r=(s=s.plotHeight-2*n,i.center),a=(r=[eo(r[0],"50%"),eo(r[1],"50%"),i.size||"100%",i.innerSize||0],Math.min(o,s));for(t=0;t<4;++t)e=r[t],i=t<2||2===t&&/%$/.test(e),r[t]=io(e,[o,s,a,r[2]][t])+(i?n:0);return r[3]>r[2]&&(r[3]=r[2]),r},getStartAndEndRadians:function(t,e){return t=to(t)?t:0,e=to(e)&&t<e&&e-t<360?e:t+360,{start:Qn*(t+-90),end:Qn*(e+-90)}}},no=(so=zt).addEvent,oo=so.CenteredSeriesMixin,ro=so.defined,ao=so.each,ho=so.extend,lo=oo.getStartAndEndRadians,co=so.inArray,po=so.noop,uo=so.pick,go=so.Point,fo=so.Series,mo=so.seriesType,xo=so.setAnimation,mo("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,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},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:so.seriesTypes.column.prototype.pointAttribs,animate:function(t){var s=this,e=s.points,n=s.startAngleRad;t||(ao(e,function(t){var e=t.graphic,i=t.shapeArgs;e&&(e.attr({r:t.startR||s.center[3]/2,start:n,end:n}),e.animate({r:i.r,start:i.start,end:i.end},s.options.animation))}),s.animate=null)},updateTotals:function(){var t,e,i=0,s=this.points,n=s.length,o=this.options.ignoreHiddenPoint;for(t=0;t<n;t++)e=s[t],i+=o&&!e.visible?0:e.isNull?0:e.y;for(this.total=i,t=0;t<n;t++)(e=s[t]).percentage=0<i&&(e.visible||!o)?e.y/i*100:0,e.total=i},generatePoints:function(){fo.prototype.generatePoints.call(this),this.updateTotals()},translate:function(s){this.generatePoints();var t,e,n,i,o,r,a=0,h=(g=this.options).slicedOffset,l=h+(g.borderWidth||0),c=lo(g.startAngle,g.endAngle),d=this.startAngleRad=c.start,p=(c=(this.endAngleRad=c.end)-d,this.points),u=g.dataLabels.distance,g=g.ignoreHiddenPoint,f=p.length;for(s||(this.center=s=this.getCenter()),this.getX=function(t,e,i){return n=Math.asin(Math.min((t-s[1])/(s[2]/2+i.labelDistance),1)),s[0]+(e?-1:1)*Math.cos(n)*(s[2]/2+i.labelDistance)},o=0;o<f;o++)(r=p[o]).labelDistance=uo(r.options.dataLabels&&r.options.dataLabels.distance,u),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,r.labelDistance),t=d+a*c,g&&!r.visible||(a+=r.percentage/100),e=d+a*c,r.shapeType="arc",r.shapeArgs={x:s[0],y:s[1],r:s[2]/2,innerR:s[3]/2,start:Math.round(1e3*t)/1e3,end:Math.round(1e3*e)/1e3},(n=(e+t)/2)>1.5*Math.PI?n-=2*Math.PI:n<-Math.PI/2&&(n+=2*Math.PI),r.slicedTranslation={translateX:Math.round(Math.cos(n)*h),translateY:Math.round(Math.sin(n)*h)},e=Math.cos(n)*s[2]/2,i=Math.sin(n)*s[2]/2,r.tooltipPos=[s[0]+.7*e,s[1]+.7*i],r.half=n<-Math.PI/2||n>Math.PI/2?1:0,r.angle=n,t=Math.min(l,r.labelDistance/5),r.labelPos=[s[0]+e+Math.cos(n)*r.labelDistance,s[1]+i+Math.sin(n)*r.labelDistance,s[0]+e+Math.cos(n)*t,s[1]+i+Math.sin(n)*t,s[0]+e,s[1]+i,r.labelDistance<0?"center":r.half?"right":"left",n]},drawGraph:null,drawPoints:function(){var i,s,n,o,r=this,a=r.chart.renderer,h=r.options.shadow;h&&!r.shadowGroup&&(r.shadowGroup=a.g("shadow").add(r.group)),ao(r.points,function(t){if(s=t.graphic,t.isNull)s&&(t.graphic=s.destroy());else{o=t.shapeArgs,i=t.getTranslate();var e=t.shadowGroup;h&&!e&&(e=t.shadowGroup=a.g("shadow").add(r.shadowGroup)),e&&e.attr(i),n=r.pointAttribs(t,t.selected&&"select"),s?s.setRadialReference(r.center).attr(n).animate(ho(o,i)):(t.graphic=s=a[t.shapeType](o).setRadialReference(r.center).attr(i).add(r.group),s.attr(n).attr({"stroke-linejoin":"round"}).shadow(h,e)),s.attr({visibility:t.visible?"inherit":"hidden"}),s.addClass(t.getClassName())}})},searchPoint:po,sortByAngle:function(t,i){t.sort(function(t,e){return void 0!==t.angle&&(e.angle-t.angle)*i})},drawLegendSymbol:so.LegendSymbolMixin.drawRectangle,getCenter:oo.getCenter,getSymbol:po},{init:function(){go.prototype.init.apply(this,arguments);var t,e=this;return e.name=uo(e.name,"Slice"),no(e,"select",t=function(t){e.slice("select"===t.type)}),no(e,"unselect",t),e},isValid:function(){return so.isNumber(this.y,!0)&&0<=this.y},setVisible:function(e,t){var i=this,s=i.series,n=s.chart,o=s.options.ignoreHiddenPoint;t=uo(t,o),e!==i.visible&&(i.visible=i.options.visible=e=void 0===e?!i.visible:e,s.options.data[co(i,s.data)]=i.options,ao(["graphic","dataLabel","connector","shadowGroup"],function(t){i[t]&&i[t][e?"show":"hide"](!0)}),i.legendItem&&n.legend.colorizeItem(i,e),e||"hover"!==i.state||i.setState(""),o&&(s.isDirty=!0),t&&n.redraw())},slice:function(t,e,i){var s=this.series;xo(i,s.chart),uo(e,!0),this.sliced=this.options.sliced=ro(t)?t:!this.sliced,s.options.data[co(this,s.data)]=this.options,this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(t){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:this.shapeArgs.r-1,start:e.start,end:e.end})}}),yo=(vo=zt).addEvent,bo=vo.arrayMax,ko=vo.defined,wo=vo.each,Mo=vo.extend,So=vo.format,To=vo.map,Ao=vo.merge,Po=vo.noop,Co=vo.pick,Lo=vo.relativeLength,Oo=vo.Series,Io=vo.seriesTypes,Do=vo.some,zo=vo.stableSort,vo.distribute=function(t,i,s){function e(t,e){return t.target-e.target}var n,o,r=!0,a=t,h=[];o=0;var l=a.reducedLen||i;for(n=t.length;n--;)o+=t[n].size;if(l<o){for(zo(t,function(t,e){return(e.rank||0)-(t.rank||0)}),o=n=0;o<=l;)o+=t[n].size,n++;h=t.splice(n-1,t.length)}for(zo(t,e),t=To(t,function(t){return{size:t.size,targets:[t.target],align:Co(t.align,.5)}});r;){for(n=t.length;n--;)r=t[n],o=(Math.min.apply(0,r.targets)+Math.max.apply(0,r.targets))/2,r.pos=Math.min(Math.max(0,o-r.size*r.align),i-r.size);for(n=t.length,r=!1;n--;)0<n&&t[n-1].pos+t[n-1].size>t[n].pos&&(t[n-1].size+=t[n].size,t[n-1].targets=t[n-1].targets.concat(t[n].targets),t[n-1].align=.5,t[n-1].pos+t[n-1].size>i&&(t[n-1].pos=i-t[n-1].size),t.splice(n,1),r=!0)}a.push.apply(a,h),n=0,Do(t,function(t){var e=0;if(Do(t.targets,function(){if(a[n].pos=t.pos+e,Math.abs(a[n].pos-a[n].target)>s)return wo(a.slice(0,n+1),function(t){delete t.pos}),a.reducedLen=(a.reducedLen||i)-.1*i,a.reducedLen>.1*i&&vo.distribute(a,i,s),!0;e+=a[n].size,n++}))return!0}),zo(a,e)},Oo.prototype.drawDataLabels=function(){var d,p,u,g,f=this,m=f.chart,x=f.options,v=x.dataLabels,t=f.points,e=f.hasRendered||0,i=Co(v.defer,!!x.animation),y=m.renderer;(v.enabled||f._hasPointLabels)&&(f.dlProcessOptions&&f.dlProcessOptions(v),g=f.plotGroup("dataLabelsGroup","data-labels",i&&!e?"hidden":"visible",v.zIndex||6),i&&(g.attr({opacity:+e}),e||yo(f,"afterAnimate",function(){f.visible&&g.show(!0),g[x.animation?"animate":"attr"]({opacity:1},{duration:200})})),p=v,wo(t,function(t){var e,i,s,n,o,r,a,h=t.dataLabel,l=t.connector,c=!h;d=t.dlOptions||t.options&&t.options.dataLabels,(e=Co(d&&d.enabled,p.enabled)&&!t.isNull)&&(e=1==(o=t,!(a=(r=d||v).filter)||(r=a.operator,o=o[a.property],a=a.value,">"===r&&a<o||"<"===r&&o<a||">="===r&&a<=o||"<="===r&&o<=a||"=="===r&&o==a||"==="===r&&o===a))),e&&(v=Ao(p,d),i=t.getLabelConfig(),n=v[t.formatPrefix+"Format"]||v.format,u=ko(n)?So(n,i,m.time):(v[t.formatPrefix+"Formatter"]||v.formatter).call(i,v),n=v.style,i=v.rotation,n.color=Co(v.color,n.color,f.color,"#000000"),"contrast"===n.color&&(t.contrastColor=y.getContrast(t.color||f.color),n.color=v.inside||Co(t.labelDistance,v.distance)<0||x.stacking?t.contrastColor:"#000000"),x.cursor&&(n.cursor=x.cursor),s={fill:v.backgroundColor,stroke:v.borderColor,"stroke-width":v.borderWidth,r:v.borderRadius||0,rotation:i,padding:v.padding,zIndex:1},vo.objectEach(s,function(t,e){void 0===t&&delete s[e]})),!h||e&&ko(u)?e&&ko(u)&&(h?s.text=u:(h=t.dataLabel=i?y.text(u,0,-9999).addClass("highcharts-data-label"):y.label(u,0,-9999,v.shape,null,null,v.useHTML,null,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(v.className||"")+(v.useHTML?" highcharts-tracker":"")),h.attr(s),h.css(n).shadow(v.shadow),h.added||h.add(g),f.alignDataLabel(t,h,v,null,c)):(t.dataLabel=h=h.destroy(),l&&(t.connector=l.destroy()))})),vo.fireEvent(this,"afterDrawDataLabels")},Oo.prototype.alignDataLabel=function(t,e,i,s,n){var o,r=this.chart,a=r.inverted,h=Co(t.dlBox&&t.dlBox.centerX,t.plotX,-9999),l=Co(t.plotY,-9999),c=e.getBBox(),d=i.rotation,p=i.align,u=this.visible&&(t.series.forceDL||r.isInsidePlot(h,Math.round(l),a)||s&&r.isInsidePlot(h,a?s.x+1:s.y+s.height-1,a)),g="justify"===Co(i.overflow,"justify");u&&(o=i.style.fontSize,o=r.renderer.fontMetrics(o,e).b,s=Mo({x:a?this.yAxis.len-l:h,y:Math.round(a?this.xAxis.len-h:l),width:0,height:0},s),Mo(i,{width:c.width,height:c.height}),d?(g=!1,h=r.renderer.rotCorr(o,d),h={x:s.x+i.x+s.width/2+h.x,y:s.y+i.y+{top:0,middle:.5,bottom:1}[i.verticalAlign]*s.height},e[n?"attr":"animate"](h).attr({align:p}),l=180<(l=(d+720)%360)&&l<360,"left"===p?h.y-=l?c.height:0:"center"===p?(h.x-=c.width/2,h.y-=c.height/2):"right"===p&&(h.x-=c.width,h.y-=l?0:c.height),e.placed=!0,e.alignAttr=h):(e.align(i,null,s),h=e.alignAttr),g?t.isLabelJustified=this.justifyDataLabel(e,i,h,c,s,n):Co(i.crop,!0)&&(u=r.isInsidePlot(h.x,h.y)&&r.isInsidePlot(h.x+c.width,h.y+c.height)),i.shape&&!d)&&e[n?"attr":"animate"]({anchorX:a?r.plotWidth-t.plotY:t.plotX,anchorY:a?r.plotHeight-t.plotX:t.plotY}),u||(e.attr({y:-9999}),e.placed=!1)},Oo.prototype.justifyDataLabel=function(t,e,i,s,n,o){var r,a,h=this.chart,l=e.align,c=e.verticalAlign,d=t.box?0:t.padding||0;return(r=i.x+d)<0&&("right"===l?e.align="left":e.x=-r,a=!0),(r=i.x+s.width-d)>h.plotWidth&&("left"===l?e.align="right":e.x=h.plotWidth-r,a=!0),(r=i.y+d)<0&&("bottom"===c?e.verticalAlign="top":e.y=-r,a=!0),(r=i.y+s.height-d)>h.plotHeight&&("top"===c?e.verticalAlign="bottom":e.y=h.plotHeight-r,a=!0),a&&(t.placed=!o,t.align(e,null,n)),a},Io.pie&&(Io.pie.prototype.drawDataLabels=function(){var a,i,h,l,c,d,p,u,g,f,m=this,t=m.data,x=m.chart,v=m.options.dataLabels,y=Co(v.connectorPadding,10),s=Co(v.connectorWidth,1),b=x.plotWidth,k=x.plotHeight,e=Math.round(x.chartWidth/3),w=m.center,M=w[2]/2,S=w[1],n=[[],[]],T=[0,0,0,0];m.visible&&(v.enabled||m._hasPointLabels)&&(wo(t,function(t){t.dataLabel&&t.visible&&t.dataLabel.shortened&&(t.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.dataLabel.shortened=!1)}),Oo.prototype.drawDataLabels.apply(m),wo(t,function(t){t.dataLabel&&(t.visible?(n[t.half].push(t),t.dataLabel._pos=null,!ko(v.style.width)&&!ko(t.options.dataLabels&&t.options.dataLabels.style&&t.options.dataLabels.style.width)&&t.dataLabel.getBBox().width>e&&(t.dataLabel.css({width:.7*e}),t.dataLabel.shortened=!0)):t.dataLabel=t.dataLabel.destroy())}),wo(n,function(t,e){var i,s,n,o=t.length,r=[];if(o)for(m.sortByAngle(t,e-.5),0<m.maxLabelDistance&&(i=Math.max(0,S-M-m.maxLabelDistance),s=Math.min(S+M+m.maxLabelDistance,x.plotHeight),wo(t,function(t){0<t.labelDistance&&t.dataLabel&&(t.top=Math.max(0,S-M-t.labelDistance),t.bottom=Math.min(S+M+t.labelDistance,x.plotHeight),n=t.dataLabel.getBBox().height||21,t.distributeBox={target:t.labelPos[1]-t.top+n/2,size:n,rank:t.y},r.push(t.distributeBox))}),i=s+n-i,vo.distribute(r,i,i/5)),f=0;f<o;f++)a=t[f],c=a.labelPos,h=a.dataLabel,g=!1===a.visible?"hidden":"inherit",u=i=c[1],r&&ko(a.distributeBox)&&(void 0===a.distributeBox.pos?g="hidden":(d=a.distributeBox.size,u=a.top+a.distributeBox.pos)),delete a.positionIndex,p=v.justify?w[0]+(e?-1:1)*(M+a.labelDistance):m.getX(u<a.top+2||u>a.bottom-2?i:u,e,a),h._attr={visibility:g,align:c[6]},h._pos={x:p+v.x+({left:y,right:-y}[c[6]]||0),y:u+v.y-10},c.x=p,c.y=u,Co(v.crop,!0)&&(l=h.getBBox().width,i=null,p-l<y&&1===e?(i=Math.round(l-p+y),T[3]=Math.max(i,T[3])):b-y<p+l&&0===e&&(i=Math.round(p+l-b+y),T[1]=Math.max(i,T[1])),u-d/2<0?T[0]=Math.max(Math.round(d/2-u),T[0]):k<u+d/2&&(T[2]=Math.max(Math.round(u+d/2-k),T[2])),h.sideOverflow=i)}),0===bo(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),s&&wo(this.points,function(t){var e;i=t.connector,(h=t.dataLabel)&&h._pos&&t.visible&&0<t.labelDistance?(g=h._attr.visibility,(e=!i)&&(t.connector=i=x.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-"+t.colorIndex+(t.className?" "+t.className:"")).add(m.dataLabelsGroup),i.attr({"stroke-width":s,stroke:v.connectorColor||t.color||"#666666"})),i[e?"attr":"animate"]({d:m.connectorPath(t.labelPos)}),i.attr("visibility",g)):i&&(t.connector=i.destroy())}))},Io.pie.prototype.connectorPath=function(t){var e=t.x,i=t.y;return Co(this.options.dataLabels.softConnector,!0)?["M",e+("left"===t[6]?5:-5),i,"C",e,i,2*t[2]-t[4],2*t[3]-t[5],t[2],t[3],"L",t[4],t[5]]:["M",e+("left"===t[6]?5:-5),i,"L",t[2],t[3],"L",t[4],t[5]]},Io.pie.prototype.placeDataLabels=function(){wo(this.points,function(t){var e=t.dataLabel;e&&t.visible&&((t=e._pos)?(e.sideOverflow&&(e._attr.width=e.getBBox().width-e.sideOverflow,e.css({width:e._attr.width+"px",textOverflow:this.options.dataLabels.style.textOverflow||"ellipsis"}),e.shortened=!0),e.attr(e._attr),e[e.moved?"animate":"attr"](t),e.moved=!0):e&&e.attr({y:-9999}))},this)},Io.pie.prototype.alignDataLabel=Po,Io.pie.prototype.verifyDataLabelOverflow=function(t){var e,i=this.center,s=this.options,n=s.center,o=s.minSize||80,r=null!==s.size;return r||(null!==n[0]?e=Math.max(i[2]-Math.max(t[1],t[3]),o):(e=Math.max(i[2]-t[1]-t[3],o),i[0]+=(t[3]-t[1])/2),null!==n[1]?e=Math.max(Math.min(e,i[2]-Math.max(t[0],t[2])),o):(e=Math.max(Math.min(e,i[2]-t[0]-t[2]),o),i[1]+=(t[0]-t[2])/2),e<i[2]?(i[2]=e,i[3]=Math.min(Lo(s.innerSize||0,e),e),this.translate(i),this.drawDataLabels&&this.drawDataLabels()):r=!0),r}),Io.column&&(Io.column.prototype.alignDataLabel=function(t,e,i,s,n){var o=this.chart.inverted,r=t.series,a=t.dlBox||t.shapeArgs,h=Co(t.below,t.plotY>Co(this.translatedThreshold,r.yAxis.len)),l=Co(i.inside,!!this.options.stacking);a&&((s=Ao(a)).y<0&&(s.height+=s.y,s.y=0),0<(a=s.y+s.height-r.yAxis.len)&&(s.height-=a),o&&(s={x:r.yAxis.len-s.y-s.height,y:r.xAxis.len-s.x-s.width,width:s.height,height:s.width}),l||(o?(s.x+=h?0:s.width,s.width=0):(s.y+=h?s.height:0,s.height=0))),i.align=Co(i.align,!o||l?"center":h?"right":"left"),i.verticalAlign=Co(i.verticalAlign,o||l?"middle":h?"top":"bottom"),Oo.prototype.alignDataLabel.call(this,t,e,i,s,n),t.isLabelJustified&&t.contrastColor&&t.dataLabel.css({color:t.contrastColor})}),Eo=(Bo=zt).Chart,Ro=Bo.each,No=Bo.objectEach,Wo=Bo.pick,(Bo=Bo.addEvent)(Eo,"render",function(){var s=[];Ro(this.labelCollectors||[],function(t){s=s.concat(t())}),Ro(this.yAxis||[],function(t){t.options.stackLabels&&!t.options.stackLabels.allowOverlap&&No(t.stacks,function(t){No(t,function(t){s.push(t.label)})})}),Ro(this.series||[],function(t){var e=t.options.dataLabels,i=t.dataLabelCollections||["dataLabel"];(e.enabled||t._hasPointLabels)&&!e.allowOverlap&&t.visible&&Ro(i,function(e){Ro(t.points,function(t){t[e]&&(t[e].labelrank=Wo(t.labelrank,t.shapeArgs&&t.shapeArgs.height),s.push(t[e]))})})}),this.hideOverlappingLabels(s)}),Eo.prototype.hideOverlappingLabels=function(t){var e,i,s,n,o,r,a,h,l,c,d,p,u,g,f=t.length;for(s=function(t){var e,i,s,n=2*(t.box?0:t.padding||0);if(t&&(!t.alignAttr||t.placed))return e=t.alignAttr||{x:t.attr("x"),y:t.attr("y")},i=t.parentGroup,t.width||(s=t.getBBox(),t.width=s.width,t.height=s.height),{x:e.x+(i.translateX||0),y:e.y+(i.translateY||0),width:t.width-n,height:t.height-n}},i=0;i<f;i++)(e=t[i])&&(e.oldOpacity=e.opacity,e.newOpacity=1,e.absoluteBox=s(e));for(t.sort(function(t,e){return(e.labelrank||0)-(t.labelrank||0)}),i=0;i<f;i++)for(r=(s=t[i])&&s.absoluteBox,e=i+1;e<f;++e)o=(n=t[e])&&n.absoluteBox,r&&o&&s!==n&&0!==s.newOpacity&&0!==n.newOpacity&&(a=r.x,h=r.y,l=r.width,c=r.height,d=o.x,p=o.y,u=o.width,g=o.height,o=!(a+l<d||d+u<a||h+c<p||p+g<h))&&((s.labelrank<n.labelrank?s:n).newOpacity=0);Ro(t,function(t){var e,i;t&&(i=t.newOpacity,t.oldOpacity!==i&&(t.alignAttr&&t.placed?(i?t.show(!0):e=function(){t.hide()},t.alignAttr.opacity=i,t[t.isOld?"animate":"attr"](t.alignAttr,null,e)):t.attr({opacity:i})),t.isOld=!0)})},Go=(Ho=zt).addEvent,Yo=Ho.Chart,Fo=Ho.createElement,jo=Ho.css,Vo=Ho.defaultOptions,Uo=Ho.defaultPlotOptions,_o=Ho.each,Ko=Ho.extend,Zo=Ho.fireEvent,qo=Ho.hasTouch,$o=Ho.inArray,Jo=Ho.isObject,Qo=Ho.Legend,tr=Ho.merge,er=Ho.pick,ir=Ho.Point,sr=Ho.Series,nr=Ho.seriesTypes,or=Ho.svg,Xo=Ho.TrackerMixin={drawTrackerPoint:function(){var e=this,i=e.chart.pointer,s=function(t){var e=i.getPointFromEvent(t);void 0!==e&&(i.isDirectTouch=!0,e.onMouseOver(t))};_o(e.points,function(t){t.graphic&&(t.graphic.element.point=t),t.dataLabel&&(t.dataLabel.div?t.dataLabel.div.point=t:t.dataLabel.element.point=t)}),e._hasTracking||(_o(e.trackerGroups,function(t){e[t]&&(e[t].addClass("highcharts-tracker").on("mouseover",s).on("mouseout",function(t){i.onTrackerMouseOut(t)}),qo&&e[t].on("touchstart",s),e.options.cursor&&e[t].css(jo).css({cursor:e.options.cursor}))}),e._hasTracking=!0),Zo(this,"afterDrawTracker")},drawTrackerGraph:function(){var t,e=this,i=e.options,s=i.trackByArea,n=[].concat(s?e.areaPath:e.graphPath),o=n.length,r=e.chart,a=r.pointer,h=r.renderer,l=r.options.tooltip.snap,c=e.tracker,d=function(){r.hoverSeries!==e&&e.onMouseOver()},p="rgba(192,192,192,"+(or?1e-4:.002)+")";if(o&&!s)for(t=o+1;t--;)"M"===n[t]&&n.splice(t+1,0,n[t+1]-l,n[t+2],"L"),(t&&"M"===n[t]||t===o)&&n.splice(t,0,"L",n[t-2]+l,n[t-1]);c?c.attr({d:n}):e.graph&&(e.tracker=h.path(n).attr({"stroke-linejoin":"round",visibility:e.visible?"visible":"hidden",stroke:p,fill:s?p:"none","stroke-width":e.graph.strokeWidth()+(s?0:2*l),zIndex:2}).add(e.group),_o([e.tracker,e.markerGroup],function(t){t.addClass("highcharts-tracker").on("mouseover",d).on("mouseout",function(t){a.onTrackerMouseOut(t)}),i.cursor&&t.css({cursor:i.cursor}),qo&&t.on("touchstart",d)})),Zo(this,"afterDrawTracker")}},nr.column&&(nr.column.prototype.drawTracker=Xo.drawTrackerPoint),nr.pie&&(nr.pie.prototype.drawTracker=Xo.drawTrackerPoint),nr.scatter&&(nr.scatter.prototype.drawTracker=Xo.drawTrackerPoint),Ko(Qo.prototype,{setItemEvents:function(i,t,e){var s=this,n=s.chart.renderer.boxWrapper,o="highcharts-legend-"+(i instanceof ir?"point":"series")+"-active";(e?t:i.legendGroup).on("mouseover",function(){i.setState("hover"),n.addClass(o),t.css(s.options.itemHoverStyle)}).on("mouseout",function(){t.css(tr(i.visible?s.itemStyle:s.itemHiddenStyle)),n.removeClass(o),i.setState()}).on("click",function(t){var e=function(){i.setVisible&&i.setVisible()};n.removeClass(o),t={browserEvent:t},i.firePointEvent?i.firePointEvent("legendItemClick",t,e):Zo(i,"legendItemClick",t,e)})},createCheckboxForItem:function(e){e.checkbox=Fo("input",{type:"checkbox",checked:e.selected,defaultChecked:e.selected},this.options.itemCheckboxStyle,this.chart.container),Go(e.checkbox,"click",function(t){Zo(e.series||e,"checkboxClick",{checked:t.target.checked,item:e},function(){e.select()})})}}),Vo.legend.itemStyle.cursor="pointer",Ko(Yo.prototype,{showResetZoom:function(){function t(){e.zoomOut()}var e=this,i=Vo.lang,s=e.options.chart.resetZoomButton,n=s.theme,o=n.states,r="chart"===s.relativeTo?null:"plotBox";Zo(this,"beforeShowResetZoom",null,function(){e.resetZoomButton=e.renderer.button(i.resetZoom,null,null,t,n,o&&o.hover).attr({align:s.position.align,title:i.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(s.position,!1,r)})},zoomOut:function(){Zo(this,"selection",{resetSelection:!0},this.zoom)},zoom:function(t){var i,e,s=this.pointer,n=!1;!t||t.resetSelection?(_o(this.axes,function(t){i=t.zoom()}),s.initiated=!1):_o(t.xAxis.concat(t.yAxis),function(t){var e=t.axis;s[e.isXAxis?"zoomX":"zoomY"]&&(i=e.zoom(t.min,t.max),e.displayBtn&&(n=!0))}),e=this.resetZoomButton,n&&!e?this.showResetZoom():!n&&Jo(e)&&(this.resetZoomButton=e.destroy()),i&&this.redraw(er(this.options.chart.animation,t&&t.animation,this.pointCount<100))},pan:function(l,t){var c,d=this,e=d.hoverPoints;e&&_o(e,function(t){t.setState()}),_o("xy"===t?[1,0]:[1],function(t){var e,i=(t=d[t?"xAxis":"yAxis"][0]).horiz,s=l[i?"chartX":"chartY"],n=d[i=i?"mouseDownX":"mouseDownY"],o=(t.pointRange||0)/2,r=t.reversed&&!d.inverted||!t.reversed&&d.inverted?-1:1,a=t.getExtremes(),h=t.toValue(n-s,!0)+o*r;n=(e=(r=t.toValue(n+t.len-s,!0)-o*r)<h)?r:h,h=e?h:r,0<(e=(r=Math.min(a.dataMin,o?a.min:t.toValue(t.toPixels(a.min)-t.minPixelPadding)))-n)&&(h+=e,n=r),0<(e=h-(o=Math.max(a.dataMax,o?a.max:t.toValue(t.toPixels(a.max)+t.minPixelPadding))))&&(h=o,n-=e),t.series.length&&n!==a.min&&h!==a.max&&(t.setExtremes(n,h,!1,!1,{trigger:"pan"}),c=!0),d[i]=s}),c&&d.redraw(!1),jo(d.container,{cursor:"move"})}}),Ko(ir.prototype,{select:function(t,e){var i=this,s=i.series,n=s.chart;t=er(t,!i.selected),i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[$o(i,s.data)]=i.options,i.setState(t&&"select"),e||_o(n.getSelectedPoints(),function(t){t.selected&&t!==i&&(t.selected=t.options.selected=!1,s.options.data[$o(t,s.data)]=t.options,t.setState(""),t.firePointEvent("unselect"))})})},onMouseOver:function(t){var e=this.series.chart,i=e.pointer;t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e.inverted),i.runPointActions(t,this)},onMouseOut:function(){var t=this.series.chart;this.firePointEvent("mouseOut"),_o(t.hoverPoints||[],function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var i=this,t=tr(i.series.options.point,i.options).events;i.events=t,Ho.objectEach(t,function(t,e){Go(i,e,t)}),this.hasImportedEvents=!0}},setState:function(t,e){var i,s=Math.floor(this.plotX),n=this.plotY,o=this.series,r=o.options.states[t||"normal"]||{},a=Uo[o.type].marker&&o.options.marker,h=a&&!1===a.enabled,l=a&&a.states&&a.states[t||"normal"]||{},c=!1===l.enabled,d=o.stateMarkerGraphic,p=this.marker||{},u=o.chart,g=o.halo,f=a&&o.markerAttribs;(t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===r.enabled||t&&(c||h&&!1===l.enabled)||t&&p.states&&p.states[t]&&!1===p.states[t].enabled||(f&&(i=o.markerAttribs(this,t)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),t&&this.graphic.addClass("highcharts-point-"+t),this.graphic.animate(o.pointAttribs(this,t),er(u.options.chart.animation,r.animation)),i&&this.graphic.animate(i,er(u.options.chart.animation,l.animation,a.animation)),d&&d.hide()):(t&&l&&(a=p.symbol||o.symbol,d&&d.currentSymbol!==a&&(d=d.destroy()),d?d[e?"animate":"attr"]({x:i.x,y:i.y}):a&&(o.stateMarkerGraphic=d=u.renderer.symbol(a,i.x,i.y,i.width,i.height).add(o.markerGroup),d.currentSymbol=a),d&&d.attr(o.pointAttribs(this,t))),d&&(d[t&&u.isInsidePlot(s,n,u.inverted)?"show":"hide"](),d.element.point=this)),(s=r.halo)&&s.size?(g||(o.halo=g=u.renderer.path().add((this.graphic||d).parentGroup)),g.show()[e?"animate":"attr"]({d:this.haloPath(s.size)}),g.attr({class:"highcharts-halo highcharts-color-"+er(this.colorIndex,o.colorIndex)+(this.className?" "+this.className:""),zIndex:-1}),g.point=this,g.attr(Ko({fill:this.color||o.color,"fill-opacity":s.opacity},s.attributes))):g&&g.point&&g.point.haloPath&&g.animate({d:g.point.haloPath(0)},null,g.hide),this.state=t,Zo(this,"afterSetState"))},haloPath:function(t){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-t,this.plotY-t,2*t,2*t)}}),Ko(sr.prototype,{onMouseOver:function(){var t=this.chart,e=t.hoverSeries;e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&Zo(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&Zo(this,"mouseOut"),!i||this.stickyTracking||i.shared&&!this.noSharedTooltip||i.hide(),this.setState()},setState:function(e){var i=this,t=i.options,s=i.graph,n=t.states,o=t.lineWidth;if(t=0,e=e||"",i.state!==e&&(_o([i.group,i.markerGroup,i.dataLabelsGroup],function(t){t&&(i.state&&t.removeClass("highcharts-series-"+i.state),e&&t.addClass("highcharts-series-"+e))}),!n[i.state=e]||!1!==n[e].enabled)&&(e&&(o=n[e].lineWidth||o+(n[e].lineWidthPlus||0)),s&&!s.dashstyle))for(o={"stroke-width":o},s.animate(o,er(n[e||"normal"]&&n[e||"normal"].animation,i.chart.options.chart.animation));i["zone-graph-"+t];)i["zone-graph-"+t].attr(o),t+=1},setVisible:function(e,t){var i,s=this,n=s.chart,o=s.legendItem,r=n.options.chart.ignoreHiddenSeries,a=s.visible;i=(s.visible=e=s.options.visible=s.userOptions.visible=void 0===e?!a:e)?"show":"hide",_o(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(t){s[t]&&s[t][i]()}),n.hoverSeries!==s&&(n.hoverPoint&&n.hoverPoint.series)!==s||s.onMouseOut(),o&&n.legend.colorizeItem(s,e),s.isDirty=!0,s.options.stacking&&_o(n.series,function(t){t.options.stacking&&t.visible&&(t.isDirty=!0)}),_o(s.linkedSeries,function(t){t.setVisible(e,!1)}),r&&(n.isDirtyBox=!0),Zo(s,i),!1!==t&&n.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(t){this.selected=t=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),Zo(this,t?"select":"unselect")},drawTracker:Xo.drawTrackerGraph}),ar=(rr=zt).Chart,hr=rr.each,lr=rr.inArray,cr=rr.isArray,dr=rr.isObject,pr=rr.pick,ur=rr.splat,ar.prototype.setResponsive=function(e){var t=this.options.responsive,i=[],s=this.currentResponsive;t&&t.rules&&hr(t.rules,function(t){void 0===t._id&&(t._id=rr.uniqueKey()),this.matchResponsiveRule(t,i,e)},this);var n=rr.merge.apply(0,rr.map(i,function(e){return rr.find(t.rules,function(t){return t._id===e}).chartOptions}));(i=i.toString()||void 0)!==(s&&s.ruleIds)&&(s&&this.update(s.undoOptions,e),i?(this.currentResponsive={ruleIds:i,mergedOptions:n,undoOptions:this.currentOptions(n)},this.update(n,e)):this.currentResponsive=void 0)},ar.prototype.matchResponsiveRule=function(t,e){var i=t.condition;(i.callback||function(){return this.chartWidth<=pr(i.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=pr(i.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=pr(i.minWidth,0)&&this.chartHeight>=pr(i.minHeight,0)}).call(this)&&e.push(t._id)},ar.prototype.currentOptions=function(t){var e={};return function i(t,s,n,o){var r;rr.objectEach(t,function(t,e){if(!o&&-1<lr(e,["series","xAxis","yAxis"]))for(t=ur(t),n[e]=[],r=0;r<t.length;r++)s[e][r]&&(n[e][r]={},i(t[r],s[e][r],n[e][r],o+1));else dr(t)?(n[e]=cr(t)?[]:{},i(t,s[e]||{},n[e],o+1)):n[e]=s[e]||null})}(t,this.options,e,0),e},zt}),!function(t){"object"==typeof module&&module.exports?module.exports=t:t(Highcharts)}(function(t){var x,e,f,n,y,r,l,b,a,v,c,g,w,i,S,o,u,s,p;e=(x=t).defaultOptions,f=x.doc,n=x.Chart,y=x.addEvent,r=x.removeEvent,l=x.fireEvent,b=x.createElement,a=x.discardElement,v=x.css,c=x.merge,g=x.pick,w=x.each,i=x.objectEach,S=x.extend,o=x.isTouchDevice,u=x.win,s=u.navigator.userAgent,p=x.Renderer.prototype.symbols,/Edge\/|Trident\/|MSIE /.test(s),/firefox/i.test(s),S(e.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"}),e.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,verticalAlign:"top",width:24}},c(!0,e.navigation,{menuStyle:{border:"1px solid #999999",background:"#ffffff",padding:"5px 0"},menuItemStyle:{padding:"0.5em 1em",background:"none",color:"#333333",fontSize:o?"14px":"11px",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#335cad",color:"#ffffff"},buttonOptions:{symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",stroke:"none",padding:5}}}),e.exporting={type:"image/png",url:"https://export.highcharts.com/",printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",_titleKey:"contextButtonTitle",menuItems:"printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG".split(" ")}},menuItemDefinitions:{printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},x.post=function(t,e,n){var o=b("form",c({method:"post",action:t,enctype:"multipart/form-data"},n),{display:"none"},f.body);i(e,function(t,e){b("input",{type:"hidden",name:e,value:t},null,o)}),o.submit(),a(o)},S(n.prototype,{sanitizeSVG:function(t,e){if(e&&e.exporting&&e.exporting.allowHTML){var n=t.match(/<\/svg>(.*?$)/);n&&n[1]&&(n='<foreignObject x="0" y="0" width="'+e.chart.width+'" height="'+e.chart.height+'"><body xmlns="http://www.w3.org/1999/xhtml">'+n[1]+"</body></foreignObject>",t=t.replace("</svg>",n+"</svg>"))}return t=t.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|&quot;)(\S+)("|&quot;)\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (|NS[0-9]+\:)href=/g," xlink:href=").replace(/\n/," ").replace(/<\/svg>.*?$/,"</svg>").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/&nbsp;/g,"").replace(/&shy;/g,"?"),this.ieSanitizeSVG&&(t=this.ieSanitizeSVG(t)),t},getChartHTML:function(){return this.container.innerHTML},getSVG:function(n){var i,t,e,o,r,s=c(this.options,n);return t=b("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},f.body),e=this.renderTo.style.width,r=this.renderTo.style.height,e=s.exporting.sourceWidth||s.chart.width||/px$/.test(e)&&parseInt(e,10)||600,r=s.exporting.sourceHeight||s.chart.height||/px$/.test(r)&&parseInt(r,10)||400,S(s.chart,{animation:!1,renderTo:t,forExport:!0,renderer:"SVGRenderer",width:e,height:r}),s.exporting.enabled=!1,delete s.data,s.series=[],w(this.series,function(t){(o=c(t.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:t.visible})).isInternal||s.series.push(o)}),w(this.axes,function(t){t.userOptions.internalKey||(t.userOptions.internalKey=x.uniqueKey())}),i=new x.Chart(s,this.callback),n&&w(["xAxis","yAxis","series"],function(t){var e={};n[t]&&(e[t]=n[t],i.update(e))}),w(this.axes,function(e){var t=x.find(i.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=(o=e.getExtremes()).userMin,o=o.userMax;t&&(void 0!==n&&n!==t.min||void 0!==o&&o!==t.max)&&t.setExtremes(n,o,!0,!1)}),e=i.getChartHTML(),l(this,"getSVG",{chartCopy:i}),e=this.sanitizeSVG(e,s),s=null,i.destroy(),a(t),e},getSVGForExport:function(t,e){var n=this.options.exporting;return this.getSVG(c({chart:{borderRadius:0}},n.chartOptions,e,{exporting:{sourceWidth:t&&t.sourceWidth||n.sourceWidth,sourceHeight:t&&t.sourceHeight||n.sourceHeight}}))},exportChart:function(t,e){e=this.getSVGForExport(t,e),t=c(this.options.exporting,t),x.post(t.url,{filename:t.filename||"chart",type:t.type,width:t.width||0,scale:t.scale,svg:e},t.formAttributes)},print:function(){var t,e,n=this,o=n.container,i=[],r=o.parentNode,s=f.body,a=s.childNodes,p=n.options.exporting.printMaxWidth;n.isPrinting||(n.isPrinting=!0,n.pointer.reset(null,0),l(n,"beforePrint"),(e=p&&n.chartWidth>p)&&(t=[n.options.chart.width,void 0,!1],n.setSize(p,void 0,!1)),w(a,function(t,e){1===t.nodeType&&(i[e]=t.style.display,t.style.display="none")}),s.appendChild(o),u.focus(),u.print(),setTimeout(function(){r.appendChild(o),w(a,function(t,e){1===t.nodeType&&(t.style.display=i[e])}),n.isPrinting=!1,e&&n.setSize.apply(n,t),l(n,"afterPrint")},1e3))},contextMenu:function(e,t,n,o,i,r,s){var a,p,l=this,u=l.options.navigation,d=l.chartWidth,h=l.chartHeight,c="cache-"+e,g=l[c],m=Math.max(i,r);g||(l[c]=g=b("div",{className:e},{position:"absolute",zIndex:1e3,padding:m+"px",pointerEvents:"auto"},l.fixedDiv||l.container),a=b("div",{className:"highcharts-menu"},null,g),v(a,S({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},u.menuStyle)),p=function(){v(g,{display:"none"}),s&&s.setState(0),l.openMenu=!1},l.exportEvents.push(y(g,"mouseleave",function(){g.hideTimer=setTimeout(p,500)}),y(g,"mouseenter",function(){x.clearTimeout(g.hideTimer)}),y(f,"mouseup",function(t){l.pointer.inClass(t.target,e)||p()}),y(g,"click",function(){l.openMenu&&p()})),w(t,function(e){var t;"string"==typeof e&&(e=l.options.exporting.menuItemDefinitions[e]),x.isObject(e,!0)&&(e.separator?t=b("hr",null,null,a):((t=b("div",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),p(),e.onclick&&e.onclick.apply(l,arguments)},innerHTML:e.text||l.options.lang[e.textKey]},null,a)).onmouseover=function(){v(this,u.menuItemHoverStyle)},t.onmouseout=function(){v(this,u.menuItemStyle)},v(t,S({cursor:"pointer"},u.menuItemStyle))),l.exportDivElements.push(t))}),l.exportDivElements.push(a,g),l.exportMenuWidth=g.offsetWidth,l.exportMenuHeight=g.offsetHeight),t={display:"block"},n+l.exportMenuWidth>d?t.right=d-n-i-m+"px":t.left=n-m+"px",o+r+l.exportMenuHeight>h&&"top"!==s.alignOptions.verticalAlign?t.bottom=h-o-m+"px":t.top=o+r-m+"px",v(g,t),l.openMenu=!0},addButton:function(t){var e,n,o=this,i=o.renderer,r=c(o.options.navigation.buttonOptions,t),s=r.onclick,a=r.menuItems,p=r.symbolSize||12;if(o.btnCount||(o.btnCount=0),o.exportDivElements||(o.exportDivElements=[],o.exportSVGElements=[]),!1!==r.enabled){var l,u=r.theme,d=(h=u.states)&&h.hover,h=h&&h.select;delete u.states,s?l=function(t){t.stopPropagation(),s.call(o,t)}:a&&(l=function(){o.contextMenu(n.menuClassName,a,n.translateX,n.translateY,n.width,n.height,n),n.setState(2)}),r.text&&r.symbol?u.paddingLeft=g(u.paddingLeft,25):r.text||S(u,{width:r.width,height:r.height,padding:0}),(n=i.button(r.text,0,0,l,u,d,h).addClass(t.className).attr({"stroke-linecap":"round",title:g(o.options.lang[r._titleKey],"")})).menuClassName=t.menuClassName||"highcharts-menu-"+o.btnCount++,r.symbol&&(e=i.symbol(r.symbol,r.symbolX-p/2,r.symbolY-p/2,p,p,{width:p,height:p}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(n)).attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1}),n.add(o.exportingGroup).align(S(r,{width:n.width,x:g(r.x,o.buttonOffset)}),!0,"spacingBox"),o.buttonOffset+=(n.width+r.buttonSpacing)*("right"===r.align?-1:1),o.exportSVGElements.push(n,e)}},destroyExport:function(t){var n=t?t.target:this;t=n.exportSVGElements;var o,e=n.exportDivElements,i=n.exportEvents;t&&(w(t,function(t,e){t&&(t.onclick=t.ontouchstart=null,o="cache-"+t.menuClassName,n[o]&&delete n[o],n.exportSVGElements[e]=t.destroy())}),t.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),e&&(w(e,function(t,e){x.clearTimeout(t.hideTimer),r(t,"mouseleave"),n.exportDivElements[e]=t.onmouseout=t.onmouseover=t.ontouchstart=t.onclick=null,a(t)}),e.length=0),i&&(w(i,function(t){t()}),i.length=0)}}),p.menu=function(t,e,n,o){return["M",t,e+2.5,"L",t+n,e+2.5,"M",t,e+o/2+.5,"L",t+n,e+o/2+.5,"M",t,e+o-1.5,"L",t+n,e+o-1.5]},n.prototype.renderExporting=function(){var e=this,t=e.options.exporting,n=t.buttons,o=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),o&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g("exporting-group").attr({zIndex:3}).add(),i(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1),y(e,"destroy",e.destroyExport)},y(n,"init",function(){var o=this;w(["exporting","navigation"],function(n){o[n]={update:function(t,e){o.isDirtyExporting=!0,c(!0,o.options[n],t),g(e,!0)&&o.redraw()}}})}),n.prototype.callbacks.push(function(t){t.renderExporting(),y(t,"redraw",t.renderExporting)})}),"use strict";!function(t){"object"==typeof module&&module.exports?module.exports=t:t(Highcharts)}(function(t){!function(m){var p=m.addEvent,t=m.merge,u=m.win,y=u.navigator,v=u.document,w=m.each,b=u.URL||u.webkitURL||u,r=/Edge\/|Trident\/|MSIE /.test(y.userAgent),o=/Edge\/\d+/.test(y.userAgent),h=r?150:0;function x(t,e){var n=v.getElementsByTagName("head")[0],o=v.createElement("script");o.type="text/javascript",o.src=t,o.onload=e,o.onerror=function(){m.error("Error loading script "+t)},n.appendChild(o)}m.CanVGRenderer={},m.dataURLtoBlob=function(t){if(u.atob&&u.ArrayBuffer&&u.Uint8Array&&u.Blob&&b.createObjectURL){for(var e,n=t.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/),o=u.atob(n[3]),a=new u.ArrayBuffer(o.length),r=new u.Uint8Array(a),i=0;i<r.length;++i)r[i]=o.charCodeAt(i);return e=new u.Blob([r],{type:n[1]}),b.createObjectURL(e)}},m.downloadURL=function(e,t){var n=v.createElement("a");if("string"==typeof e||e instanceof String||!y.msSaveOrOpenBlob){if((o||2e6<e.length)&&!(e=m.dataURLtoBlob(e)))throw"Data URL length limit reached";if(void 0!==n.download)n.href=e,n.download=t,v.body.appendChild(n),n.click(),v.body.removeChild(n);else try{if(null==u.open(e,"chart"))throw"Failed to open window"}catch(t){u.location.href=e}}else y.msSaveOrOpenBlob(e,t)},m.svgToDataUrl=function(t){var e=-1<y.userAgent.indexOf("WebKit")&&y.userAgent.indexOf("Chrome")<0;try{if(!e&&y.userAgent.toLowerCase().indexOf("firefox")<0)return b.createObjectURL(new u.Blob([t],{type:"image/svg+xml;charset-utf-16"}))}catch(t){}return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(t)},m.imageToDataUrl=function(o,a,r,i,l,t,c,e,d){var s,g=new u.Image,n=function(){setTimeout(function(){var t,e=v.createElement("canvas"),n=e.getContext&&e.getContext("2d");try{if(n){e.height=g.height*i,e.width=g.width*i,n.drawImage(g,0,0,e.width,e.height);try{t=e.toDataURL(a),l(t,a,r,i)}catch(t){s(o,a,r,i)}}else c(o,a,r,i)}finally{d&&d(o,a,r,i)}},h)},f=function(){e(o,a,r,i),d&&d(o,a,r,i)};s=function(){g=new u.Image,s=t,g.crossOrigin="Anonymous",g.onload=n,g.onerror=f,g.src=o},g.onload=n,g.onerror=f,g.src=o},m.downloadSVGLocal=function(c,t,d,s){var e,n,r,i=!0,l=t.libURL||m.getOptions().exporting.libURL,g=v.createElement("div"),f=t.type||"image/png",h=(t.filename||"chart")+"."+("image/svg+xml"===f?"svg":f.split("/")[1]),p=t.scale||1;function o(){g.innerHTML=c;var t,e,n,o,a,r,i,l=g.getElementsByTagName("text");w(l,function(e){w(["font-family","font-size"],function(t){!function(t,e){for(var n=t;n&&n!==g;){if(n.style[e]){t.style[e]=n.style[e];break}n=n.parentNode}}(e,t)}),e.style["font-family"]=e.style["font-family"]&&e.style["font-family"].split(" ").splice(-1),t=e.getElementsByTagName("title"),w(t,function(t){e.removeChild(t)})}),n=g.firstChild,o=0,a=n.width.baseVal.value+2*o,r=n.height.baseVal.value+2*o,i=new u.jsPDF("l","pt",[a,r]),w(n.querySelectorAll('*[visibility="hidden"]'),function(t){t.parentNode.removeChild(t)}),u.svg2pdf(n,i,{removeInvalid:!0}),e=i.output("datauristring");try{m.downloadURL(e,h),s&&s()}catch(t){d(t)}}if(l="/"!==l.slice(-1)?l+"/":l,"image/svg+xml"===f)try{y.msSaveOrOpenBlob?((n=new MSBlobBuilder).append(c),e=n.getBlob("image/svg+xml")):e=m.svgToDataUrl(c),m.downloadURL(e,h),s&&s()}catch(t){d(t)}else"application/pdf"===f?u.jsPDF&&u.svg2pdf?o():(i=!0,x(l+"jspdf.js",function(){x(l+"svg2pdf.js",function(){o()})})):(e=m.svgToDataUrl(c),r=function(){try{b.revokeObjectURL(e)}catch(t){}},m.imageToDataUrl(e,f,{},p,function(t){try{m.downloadURL(t,h),s&&s()}catch(t){d(t)}},function(){var t=v.createElement("canvas"),e=t.getContext("2d"),n=c.match(/^<svg[^>]*width\s*=\s*\"?(\d+)\"?[^>]*>/)[1]*p,o=c.match(/^<svg[^>]*height\s*=\s*\"?(\d+)\"?[^>]*>/)[1]*p,a=function(){e.drawSvg(c,0,0,n,o);try{m.downloadURL(y.msSaveOrOpenBlob?t.msToBlob():t.toDataURL(f),h),s&&s()}catch(t){d(t)}finally{r()}};t.width=n,t.height=o,u.canvg?a():(i=!0,x(l+"rgbcolor.js",function(){x(l+"canvg.js",function(){a()})}))},d,d,function(){i&&r()}))},m.Chart.prototype.getSVGForLocalExport=function(t,e,n,o){var a,r,i,l,c,d,s=this,g=0,f=function(t){return s.sanitizeSVG(t,i)},h=function(t,e,n){++g,n.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",t),g===a.length&&o(f(r.innerHTML))};s.unbindGetSVG=p(s,"getSVG",function(t){i=t.chartCopy.options,r=t.chartCopy.container.cloneNode(!0)}),s.getSVGForExport(t,e),a=r.getElementsByTagName("image");try{if(!a.length)return void o(f(r.innerHTML));for(c=0,d=a.length;c<d;++c)l=a[c],m.imageToDataUrl(l.getAttributeNS("http://www.w3.org/1999/xlink","href"),"image/png",{imageElement:l},t.scale,h,n,n,n)}catch(t){n(t)}s.unbindGetSVG()},m.Chart.prototype.exportChartLocal=function(t,e){var n=this,o=m.merge(n.options.exporting,t),a=function(t){!1===o.fallbackToExportServer?o.error?o.error(o,t):m.error(28,!0):n.exportChart(o)};r&&("application/pdf"===o.type||n.container.getElementsByTagName("image").length&&"image/svg+xml"!==o.type)||"application/pdf"===o.type&&n.container.getElementsByTagName("image").length?a("Image type not supported for this chart/browser."):n.getSVGForLocalExport(o,e,a,function(t){-1<t.indexOf("<foreignObject")&&"image/svg+xml"!==o.type?a("Image type not supported for charts with embedded HTML"):m.downloadSVGLocal(t,o,a)})},t(!0,m.getOptions().exporting,{libURL:"https://code.highcharts.com/6.1.1/lib/",menuItemDefinitions:{downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChartLocal()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChartLocal({type:"image/jpeg"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChartLocal({type:"image/svg+xml"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChartLocal({type:"application/pdf"})}}}})}(t)});

/*
 Highcharts JS v7.0.3 (2019-02-06)

 (c) 2009-2018 Torstein Honsi

 License: www.highcharts.com/license
*/
!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define(function(){return t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){var e,h,p,i,a,c,d,s,u,g,o,n,r,l,f,b,m,y,x,v,M,P,L,w,k,A,S,T,C,z,I,X,Y,R,E,D,B,G,W,O,H,N,V,_,q,F,K,U,$,Z,j,Q,J,tt,et,it,at,st,ot,nt,rt,lt,ht,pt,ct,dt,ut,gt,ft,bt,mt,yt,xt,vt,Mt,Pt,Lt,wt,kt,At,St,Tt,Ct,zt,It,Xt,Yt,Rt,Et,Dt,Bt,Gt,Wt,Ot,Ht,Nt,Vt,_t,qt,Ft,Kt,Ut,$t,Zt,jt,Qt,Jt,te,ee,ie;!function(t){function e(t,e){this.init(t,e)}var i=t.CenteredSeriesMixin,s=t.extend,a=t.merge,o=t.splat;s(e.prototype,{coll:"pane",init:function(t,e){this.chart=e,this.background=[],e.pane.push(this),this.setOptions(t)},setOptions:function(t){this.options=a(this.defaultOptions,this.chart.angular?{background:{}}:void 0,t)},render:function(){var t=this.options,e=this.options.background,i=this.chart.renderer;if(this.group||(this.group=i.g("pane-group").attr({zIndex:t.zIndex||0}).add()),this.updateCenter(),e)for(e=o(e),t=Math.max(e.length,this.background.length||0),i=0;i<t;i++)e[i]&&this.axis?this.renderBackground(a(this.defaultBackgroundOptions,e[i]),i):this.background[i]&&(this.background[i]=this.background[i].destroy(),this.background.splice(i,1))},renderBackground:function(t,e){var i="animate",a={class:"highcharts-pane "+(t.className||"")};this.chart.styledMode||s(a,{fill:t.backgroundColor,stroke:t.borderColor,"stroke-width":t.borderWidth}),this.background[e]||(this.background[e]=this.chart.renderer.path().add(this.group),i="attr"),this.background[e][i]({d:this.axis.getPlotBandPath(t.from,t.to,t)}).attr(a)},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"},updateCenter:function(t){this.center=(t||this.axis||{}).center=i.getCenter.call(this)},update:function(t,e){a(!0,this.options,t),this.setOptions(this.options),this.render(),this.chart.axes.forEach(function(t){t.pane===this&&(t.pane=null,t.update({},e))},this)}}),t.Pane=e}(t),i=(e=t).addEvent,a=e.Axis,c=e.extend,d=e.merge,s=e.noop,u=e.pick,g=e.pInt,o=e.Tick,n=e.wrap,r=e.correctFloat,l=a.prototype,f=o.prototype,e.radialAxisExtended||(e.radialAxisExtended=!0,p={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:(h={getOffset:s,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:s,setCategories:s,setTitle:s},!1),tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(t){(t=this.options=d(this.defaultOptions,this.defaultRadialOptions,t)).plotBands||(t.plotBands=[]),e.fireEvent(this,"afterSetOptions")},getOffset:function(){l.getOffset.call(this),this.chart.axisOffset[this.side]=0},getLinePath:function(t,e){t=this.center;var i=this.chart,a=u(e,t[2]/2-this.offset);return this.isCircular||void 0!==e?((e=this.chart.renderer.symbols.arc(this.left+t[0],this.top+t[1],a,a,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[this.left+t[0]],e.yBounds=[this.top+t[1]-a]):(e=this.postTranslate(this.angleRad,a),e=["M",t[0]+i.plotLeft,t[1]+i.plotTop,"L",e.x,e.y]),e},setAxisTranslation:function(){l.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){(this.autoConnect=this.isCircular&&void 0===u(this.userMax,this.options.max)&&r(this.endAngleRad-this.startAngleRad)===r(2*Math.PI))&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)},setAxisSize:function(){l.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*u(this.sector,1)/2)},getPosition:function(t,e){return this.postTranslate(this.isCircular?this.translate(t):this.angleRad,u(this.isCircular?e:this.translate(t),this.center[2]/2)-this.offset)},postTranslate:function(t,e){var i=this.chart,a=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+a[0]+Math.cos(t)*e,y:i.plotTop+a[1]+Math.sin(t)*e}},getPlotBandPath:function(t,e,i){var a,s=this.center,o=this.startAngleRad,n=s[2]/2,r=[u(i.outerRadius,"100%"),i.innerRadius,u(i.thickness,10)],l=Math.min(this.offset,0),h=/%$/,p=this.isCircular;return s="polygon"===this.options.gridLineInterpolation?this.getPlotLinePath(t).concat(this.getPlotLinePath(e,!0)):(t=Math.max(t,this.min),e=Math.min(e,this.max),p||(r[0]=this.translate(t),r[1]=this.translate(e)),r=r.map(function(t){return h.test(t)&&(t=g(t,10)*n/100),t}),"circle"!==i.shape&&p?(t=o+this.translate(t),e=o+this.translate(e)):(t=-Math.PI/2,e=1.5*Math.PI,a=!0),r[0]-=l,r[2]-=l,this.chart.renderer.symbols.arc(this.left+s[0],this.top+s[1],r[0],r[0],{start:Math.min(t,e),end:Math.max(t,e),innerR:u(r[1],r[0]-r[2]),open:a}))},getPlotLinePath:function(i,t){var a,s,o,e=this,n=e.center,r=e.chart,l=e.getPosition(i);return e.isCircular?o=["M",n[0]+r.plotLeft,n[1]+r.plotTop,"L",l.x,l.y]:"circle"===e.options.gridLineInterpolation?(i=e.translate(i),o=e.getLinePath(0,i)):(r.xAxis.forEach(function(t){t.pane===e.pane&&(a=t)}),o=[],i=e.translate(i),n=a.tickPositions,a.autoConnect&&(n=n.concat([n[0]])),t&&(n=[].concat(n).reverse()),n.forEach(function(t,e){s=a.getPosition(t,i),o.push(e?"L":"M",s.x,s.y)})),o},getTitlePosition:function(){var t=this.center,e=this.chart,i=this.options.title;return{x:e.plotLeft+t[0]+(i.x||0),y:e.plotTop+t[1]-{high:.5,middle:.25,low:0}[i.align]*t[2]+(i.y||0)}}},i(a,"init",function(t){var e,i=this,a=this.chart,s=a.angular,o=a.polar,n=this.isXAxis,r=s&&n,l=a.options;t=t.userOptions.pane||0,t=this.pane=a.pane&&a.pane[t],s?(c(this,r?h:p),(e=!n)&&(this.defaultRadialOptions=this.defaultRadialGaugeOptions)):o&&(c(this,p),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:d(this.defaultYAxisOptions,this.defaultRadialYOptions)),s||o?(this.isRadial=!0,a.inverted=!1,l.chart.zoomType=null,a.labelCollectors.push(function(){if(i.isRadial&&i.tickPositions&&!0!==i.options.labels.allowOverlap)return i.tickPositions.map(function(t){return i.ticks[t]&&i.ticks[t].label}).filter(function(t){return!!t})})):this.isRadial=!1,t&&e&&(t.axis=this),this.isCircular=e}),i(a,"afterInit",function(){var t=this.chart,e=this.options,i=this.pane,a=i&&i.options;t.angular&&this.isXAxis||!i||!t.angular&&!t.polar||(this.angleRad=(e.angle||0)*Math.PI/180,this.startAngleRad=(a.startAngle-90)*Math.PI/180,this.endAngleRad=(u(a.endAngle,a.startAngle+360)-90)*Math.PI/180,this.offset=e.offset||0)}),i(a,"autoLabelAlign",function(t){this.isRadial&&(t.align=void 0,t.preventDefault())}),i(o,"afterGetPosition",function(t){this.axis.getPosition&&c(t.pos,this.axis.getPosition(this.pos))}),i(o,"afterGetLabelPosition",function(t){var e,i=this.axis,a=this.label,s=i.options.labels,o=s.y,n=20,r=s.align,l=(i.translate(this.pos)+i.startAngleRad+Math.PI/2)/Math.PI*180%360;i.isRadial&&(e=i.getPosition(this.pos,i.center[2]/2+u(s.distance,-25)),"auto"===s.rotation?a.attr({rotation:l}):null===o&&(o=i.chart.renderer.fontMetrics(a.styles&&a.styles.fontSize).b-a.getBBox().height/2),null===r&&(r=i.isCircular?(this.label.getBBox().width>i.len*i.tickInterval/(i.max-i.min)&&(n=0),n<l&&l<180-n?"left":180+n<l&&l<360-n?"right":"center"):"center",a.attr({align:r})),t.pos.x=e.x+s.x,t.pos.y=e.y+o)}),n(f,"getMarkPath",function(t,e,i,a,s,o,n){var r=this.axis;return e=r.isRadial?["M",e,i,"L",(t=r.getPosition(this.pos,r.center[2]/2+a)).x,t.y]:t.call(this,e,i,a,s,o,n)})),m=(b=t).pick,y=b.extend,x=b.isArray,v=b.defined,M=b.seriesType,P=b.seriesTypes,L=b.Series.prototype,w=b.Point.prototype,M("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">?</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],toYData:function(t){return[t.low,t.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(t){var e=this.chart,i=this.xAxis.postTranslate(t.rectPlotX,this.yAxis.len-t.plotHigh);t.plotHighX=i.x-e.plotLeft,t.plotHigh=i.y-e.plotTop,t.plotLowX=t.plotX},translate:function(){var s=this,o=s.yAxis,n=!!s.modifyValue;P.area.prototype.translate.apply(s),s.points.forEach(function(t){var e=t.low,i=t.high,a=t.plotY;null===i||null===e?(t.isNull=!0,t.plotY=null):(t.plotLow=a,t.plotHigh=o.translate(n?s.modifyValue(i,t):i,0,1,0,1),n&&(t.yBottom=t.plotHigh))}),this.chart.polar&&this.points.forEach(function(t){s.highToXY(t),t.tooltipPos=[(t.plotHighX+t.plotLowX)/2,(t.plotHigh+t.plotLow)/2]})},getGraphPath:function(t){var e,i,a,s,o=[],n=[],r=P.area.prototype.getGraphPath;s=this.options;var l=this.chart.polar&&!1!==s.connectEnds,h=s.connectNulls,p=s.step;for(e=(t=t||this.points).length;e--;)(i=t[e]).isNull||l||h||t[e+1]&&!t[e+1].isNull||n.push({plotX:i.plotX,plotY:i.plotY,doCurve:!1}),a={polarPlotY:i.polarPlotY,rectPlotX:i.rectPlotX,yBottom:i.yBottom,plotX:m(i.plotHighX,i.plotX),plotY:i.plotHigh,isNull:i.isNull},n.push(a),o.push(a),i.isNull||l||h||t[e-1]&&!t[e-1].isNull||n.push({plotX:i.plotX,plotY:i.plotY,doCurve:!1});return t=r.call(this,t),p&&(!0===p&&(p="left"),s.step={left:"right",center:"center",right:"left"}[p]),o=r.call(this,o),n=r.call(this,n),s.step=p,s=[].concat(t,o),this.chart.polar||"M"!==n[0]||(n[0]="L"),this.graphPath=s,this.areaPath=t.concat(n),s.isArea=!0,s.xMap=t.xMap,this.areaPath.xMap=t.xMap,s},drawDataLabels:function(){var t,e,i,a,s,o=this.points,n=o.length,r=[],l=this.options.dataLabels,h=this.chart.inverted;if(x(l)?s=1<l.length?(a=l[0],l[1]):(a=l[0],{enabled:!1}):((a=y({},l)).x=l.xHigh,a.y=l.yHigh,(s=y({},l)).x=l.xLow,s.y=l.yLow),a.enabled||this._hasPointLabels){for(t=n;t--;)(e=o[t])&&(i=a.inside?e.plotHigh<e.plotLow:e.plotHigh>e.plotLow,e.y=e.high,e._plotY=e.plotY,e.plotY=e.plotHigh,r[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,h?a.align||(a.align=i?"right":"left"):a.verticalAlign||(a.verticalAlign=i?"top":"bottom"));for(this.options.dataLabels=a,L.drawDataLabels&&L.drawDataLabels.apply(this,arguments),t=n;t--;)(e=o[t])&&(e.dataLabelUpper=e.dataLabel,e.dataLabel=r[t],delete e.dataLabels,e.y=e.low,e.plotY=e._plotY)}if(s.enabled||this._hasPointLabels){for(t=n;t--;)(e=o[t])&&(i=s.inside?e.plotHigh<e.plotLow:e.plotHigh>e.plotLow,e.below=!i,h?s.align||(s.align=i?"left":"right"):s.verticalAlign||(s.verticalAlign=i?"bottom":"top"));this.options.dataLabels=s,L.drawDataLabels&&L.drawDataLabels.apply(this,arguments)}if(a.enabled)for(t=n;t--;)(e=o[t])&&(e.dataLabels=[e.dataLabelUpper,e.dataLabel].filter(function(t){return!!t}));this.options.dataLabels=l},alignDataLabel:function(){P.column.prototype.alignDataLabel.apply(this,arguments)},drawPoints:function(){var t,e,i=this.points.length;for(L.drawPoints.apply(this,arguments),e=0;e<i;)(t=this.points[e]).origProps={plotY:t.plotY,plotX:t.plotX,isInside:t.isInside,negative:t.negative,zone:t.zone,y:t.y},t.lowerGraphic=t.graphic,t.graphic=t.upperGraphic,t.plotY=t.plotHigh,v(t.plotHighX)&&(t.plotX=t.plotHighX),t.y=t.high,t.negative=t.high<(this.options.threshold||0),t.zone=this.zones.length&&t.getZone(),this.chart.polar||(t.isInside=t.isTopInside=void 0!==t.plotY&&0<=t.plotY&&t.plotY<=this.yAxis.len&&0<=t.plotX&&t.plotX<=this.xAxis.len),e++;for(L.drawPoints.apply(this,arguments),e=0;e<i;)(t=this.points[e]).upperGraphic=t.graphic,t.graphic=t.lowerGraphic,b.extend(t,t.origProps),delete t.origProps,e++},setStackedPoints:b.noop},{setState:function(){var t=this.state,e=this.series,i=e.chart.polar;v(this.plotHigh)||(this.plotHigh=e.yAxis.toPixels(this.high,!0)),v(this.plotLow)||(this.plotLow=this.plotY=e.yAxis.toPixels(this.low,!0)),e.stateMarkerGraphic&&(e.lowerStateMarkerGraphic=e.stateMarkerGraphic,e.stateMarkerGraphic=e.upperStateMarkerGraphic),this.graphic=this.upperGraphic,this.plotY=this.plotHigh,i&&(this.plotX=this.plotHighX),w.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.lowerGraphic,i&&(this.plotX=this.plotLowX),e.stateMarkerGraphic&&(e.upperStateMarkerGraphic=e.stateMarkerGraphic,e.stateMarkerGraphic=e.lowerStateMarkerGraphic,e.lowerStateMarkerGraphic=void 0),w.setState.apply(this,arguments)},haloPath:function(){var t=this.series.chart.polar,e=[];return this.plotY=this.plotLow,t&&(this.plotX=this.plotLowX),this.isInside&&(e=w.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&(this.plotX=this.plotHighX),this.isTopInside&&(e=e.concat(w.haloPath.apply(this,arguments))),e},destroyElements:function(){return["lowerGraphic","upperGraphic"].forEach(function(t){this[t]&&(this[t]=this[t].destroy())},this),this.graphic=null,w.destroyElements.apply(this,arguments)}}),(0,(k=t).seriesType)("areasplinerange","arearange",null,{getPointSpline:k.seriesTypes.spline.prototype.getPointSpline}),S=(A=t).defaultPlotOptions,T=A.merge,C=A.noop,z=A.pick,I=A.seriesType,X=A.seriesTypes.column.prototype,I("columnrange","arearange",T(S.column,S.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var o,n,r=this,l=r.yAxis,h=r.xAxis,p=h.startAngleRad,c=r.chart,d=r.xAxis.isRadial,u=Math.max(c.chartWidth,c.chartHeight)+999;X.translate.apply(r),r.points.forEach(function(t){var e,i,a=t.shapeArgs,s=r.options.minPointLength;t.plotHigh=n=Math.min(Math.max(-u,l.translate(t.high,0,1,0,1)),u),t.plotLow=Math.min(Math.max(-u,t.plotY),u),i=n,e=z(t.rectPlotY,t.plotY)-n,Math.abs(e)<s?(e+=s-=e,i-=s/2):e<0&&(i-=e*=-1),d?(o=t.barX+p,t.shapeType="path",t.shapeArgs={d:r.polarArc(i+e,i,o,o+t.pointWidth)}):(a.height=e,a.y=i,t.tooltipPos=c.inverted?[l.len+l.pos-c.plotLeft-i-e/2,h.len+h.pos-c.plotTop-a.x-a.width/2,e]:[h.left-c.plotLeft+a.x+a.width/2,l.pos-c.plotTop+i+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:C,getSymbol:C,crispCol:function(){return X.crispCol.apply(this,arguments)},drawPoints:function(){return X.drawPoints.apply(this,arguments)},drawTracker:function(){return X.drawTracker.apply(this,arguments)},getColumnMetrics:function(){return X.getColumnMetrics.apply(this,arguments)},pointAttribs:function(){return X.pointAttribs.apply(this,arguments)},animate:function(){return X.animate.apply(this,arguments)},polarArc:function(){return X.polarArc.apply(this,arguments)},translate3dPoints:function(){return X.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return X.translate3dShapes.apply(this,arguments)}},{setState:X.pointClass.prototype.setState}),R=(Y=t).pick,E=Y.seriesType,D=Y.seriesTypes.column.prototype,E("columnpyramid","column",{},{translate:function(){var d=this,u=d.chart,g=d.options,t=d.dense=d.closestPointRange*d.xAxis.transA<2,f=(t=d.borderWidth=R(g.borderWidth,t?0:1),d.yAxis),b=g.threshold,m=d.translatedThreshold=f.getThreshold(b),y=R(g.minPointLength,5),e=d.getColumnMetrics(),x=e.width,v=d.barW=Math.max(x,1+2*t),M=d.pointXOffset=e.offset;u.inverted&&(m-=.5),g.pointPadding&&(v=Math.ceil(v)),D.translate.apply(d),d.points.forEach(function(t){var e,i,a,s,o,n,r=R(t.yBottom,m),l=999+Math.abs(r),h=Math.min(Math.max(-l,t.plotY),f.len+l),p=(l=t.plotX+M,v/2),c=Math.min(h,r);r=Math.max(h,r)-c,t.barX=l,t.pointWidth=x,t.tooltipPos=u.inverted?[f.len+f.pos-u.plotLeft-h,d.xAxis.len-l-p,r]:[l+p,h+f.pos-u.plotTop,r],h=b+(t.total||t.y),"percent"===g.stacking&&(h=b+(t.y<0)?-100:100),a=p*(c+r-(h=f.toPixels(h,!0)))/(e=u.plotHeight-h-(u.plotHeight-m)),e=l-(i=p*(c-h)/e)+p,i=l+i+p,s=l+a+p,a=l-a+p,o=c-y,n=c+r,t.y<0&&(n=(o=c)+r+y),u.inverted&&(a=p*(h-((s=u.plotWidth-c)-r))/(e=h-(u.plotWidth-m)),i=(e=l+p+(i=p*(h-s)/e))-2*i,s=l-a+p,a=l+a+p,n=(o=c)+r-y,t.y<0&&(n=c+r+y)),t.shapeType="path",t.shapeArgs={x:e,y:o,width:i-e,height:r,d:["M",e,o,"L",i,o,s,n,a,n,"Z"]}})}}),G=(B=t).isNumber,W=B.merge,O=B.pick,H=B.pInt,N=B.Series,V=B.seriesType,_=B.TrackerMixin,V("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:B.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var h=this.yAxis,p=this.options,c=h.center;this.generatePoints(),this.points.forEach(function(t){var e=W(p.dial,t.dial),i=H(O(e.radius,80))*c[2]/200,a=H(O(e.baseLength,70))*i/100,s=H(O(e.rearLength,10))*i/100,o=e.baseWidth||3,n=e.topWidth||1,r=p.overshoot,l=h.startAngleRad+h.translate(t.y,null,null,null,!0);G(r)?(r=r/180*Math.PI,l=Math.max(h.startAngleRad-r,Math.min(h.endAngleRad+r,l))):!1===p.wrap&&(l=Math.max(h.startAngleRad,Math.min(h.endAngleRad,l))),l=180*l/Math.PI,t.shapeType="path",t.shapeArgs={d:e.path||["M",-s,-o/2,"L",a,-o/2,i,-n/2,i,n/2,a,o/2,-s,o/2,"z"],translateX:c[0],translateY:c[1],rotation:l},t.plotX=c[0],t.plotY=c[1]})},drawPoints:function(){var o=this,n=o.chart,t=o.yAxis.center,e=o.pivot,r=o.options,i=r.pivot,l=n.renderer;o.points.forEach(function(t){var e=t.graphic,i=t.shapeArgs,a=i.d,s=W(r.dial,t.dial);e?(e.animate(i),i.d=a):(t.graphic=l[t.shapeType](i).attr({rotation:i.rotation,zIndex:1}).addClass("highcharts-dial").add(o.group),n.styledMode||t.graphic.attr({stroke:s.borderColor||"none","stroke-width":s.borderWidth||0,fill:s.backgroundColor||"#000000"}))}),e?e.animate({translateX:t[0],translateY:t[1]}):(o.pivot=l.circle(0,0,O(i.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(t[0],t[1]).add(o.group),n.styledMode||o.pivot.attr({"stroke-width":i.borderWidth||0,stroke:i.borderColor||"#cccccc",fill:i.backgroundColor||"#000000"}))},animate:function(t){var i=this;t||(i.points.forEach(function(t){var e=t.graphic;e&&(e.attr({rotation:180*i.yAxis.startAngleRad/Math.PI}),e.animate({rotation:t.shapeArgs.rotation},i.options.animation))}),i.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup),N.prototype.render.call(this),this.group.clip(this.chart.clipRect)},setData:function(t,e){N.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),O(e,!0)&&this.chart.redraw()},drawTracker:_&&_.drawTrackerPoint},{setState:function(t){this.state=t}}),F=(q=t).noop,K=q.pick,U=q.seriesType,$=q.seriesTypes,U("boxplot","column",{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">?</span> <b> {series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(t){return[t.low,t.q1,t.median,t.q3,t.high]},pointValKey:"high",pointAttribs:function(){return{}},drawDataLabels:F,translate:function(){var i=this.yAxis,t=this.pointArrayMap;$.column.prototype.translate.apply(this),this.points.forEach(function(e){t.forEach(function(t){null!==e[t]&&(e[t+"Plot"]=i.translate(e[t],0,1,0,1))})})},drawPoints:function(){var h,p,c,d,u,g,f,b,m,y,x,v=this,M=v.options,P=v.chart,L=P.renderer,w=0,k=!1!==v.doQuartiles,A=v.options.whiskerLength;v.points.forEach(function(t){var e=t.graphic,i=e?"animate":"attr",a=t.shapeArgs,s={},o={},n={},r={},l=t.color||v.color;void 0!==t.plotY&&(f=a.width,b=Math.floor(a.x),m=b+f,y=Math.round(f/2),h=Math.floor(k?t.q1Plot:t.lowPlot),p=Math.floor(k?t.q3Plot:t.lowPlot),c=Math.floor(t.highPlot),d=Math.floor(t.lowPlot),e||(t.graphic=e=L.g("point").add(v.group),t.stem=L.path().addClass("highcharts-boxplot-stem").add(e),A&&(t.whiskers=L.path().addClass("highcharts-boxplot-whisker").add(e)),k&&(t.box=L.path(void 0).addClass("highcharts-boxplot-box").add(e)),t.medianShape=L.path(void 0).addClass("highcharts-boxplot-median").add(e)),P.styledMode||(o.stroke=t.stemColor||M.stemColor||l,o["stroke-width"]=K(t.stemWidth,M.stemWidth,M.lineWidth),o.dashstyle=t.stemDashStyle||M.stemDashStyle,t.stem.attr(o),A&&(n.stroke=t.whiskerColor||M.whiskerColor||l,n["stroke-width"]=K(t.whiskerWidth,M.whiskerWidth,M.lineWidth),t.whiskers.attr(n)),k&&(s.fill=t.fillColor||M.fillColor||l,s.stroke=M.lineColor||l,s["stroke-width"]=M.lineWidth||0,t.box.attr(s)),r.stroke=t.medianColor||M.medianColor||l,r["stroke-width"]=K(t.medianWidth,M.medianWidth,M.lineWidth),t.medianShape.attr(r)),g=t.stem.strokeWidth()%2/2,w=b+y+g,t.stem[i]({d:["M",w,p,"L",w,c,"M",w,h,"L",w,d]}),k&&(g=t.box.strokeWidth()%2/2,h=Math.floor(h)+g,p=Math.floor(p)+g,b+=g,m+=g,t.box[i]({d:["M",b,p,"L",b,h,"L",m,h,"L",m,p,"L",b,p,"z"]})),A&&(g=t.whiskers.strokeWidth()%2/2,c+=g,d+=g,x=/%$/.test(A)?y*parseFloat(A)/100:A/2,t.whiskers[i]({d:["M",w-x,c,"L",w+x,c,"M",w-x,d,"L",w+x,d]})),u=Math.round(t.medianPlot),g=t.medianShape.strokeWidth()%2/2,u+=g,t.medianShape[i]({d:["M",b,u,"L",m,u]}))})},setStackedPoints:F}),j=(Z=t).noop,Q=Z.seriesType,J=Z.seriesTypes,Q("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">?</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(t){return[t.low,t.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:J.arearange?function(){var e=this.pointValKey;J.arearange.prototype.drawDataLabels.call(this),this.data.forEach(function(t){t.y=t[e]})}:j,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||J.column.prototype.getColumnMetrics.call(this)}}),et=(tt=t).correctFloat,it=tt.isNumber,at=tt.pick,st=tt.objectEach,ot=tt.arrayMin,nt=tt.arrayMax,rt=tt.addEvent,lt=tt.Chart,ht=tt.Point,pt=tt.Series,ct=tt.seriesType,dt=tt.seriesTypes,rt(tt.Axis,"afterInit",function(){this.isXAxis||(this.waterfallStacks={})}),rt(lt,"beforeRedraw",function(){for(var t=this.axes,e=this.series,i=e.length;i--;)e[i].options.stacking&&(t.forEach(function(t){t.isXAxis||(t.waterfallStacks={})}),i=0)}),ct("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",showLine:!0,generatePoints:function(){var t,e,i,a;for(dt.column.prototype.generatePoints.apply(this),i=0,e=this.points.length;i<e;i++)t=this.points[i],a=this.processedYData[i],(t.isIntermediateSum||t.isSum)&&(t.y=et(a))},translate:function(){var t,e,i,a,s,o,n,r,l,h,p=this.options,c=this.yAxis,d=at(p.minPointLength,5),u=d/2,g=p.threshold,f=p.stacking,b=c.waterfallStacks[this.stackKey];for(dt.column.prototype.translate.apply(this),n=r=g,t=0,p=(e=this.points).length;t<p;t++)i=e[t],o=this.processedYData[t],a=i.shapeArgs,l=[0,o],h=i.y,f?b&&(l=b[t],"overlap"===f?(s=l.threshold+l.total,l.total-=h,s=0<=h?s:s-h):0<=h?(s=l.threshold+l.posTotal,l.posTotal-=h):(s=l.threshold+l.negTotal,l.negTotal-=h,s-=h),i.isSum||(l.connectorThreshold=l.threshold+l.stackTotal),h=c.reversed?(o=0<=h?s-h:s+h,s):(o=s)-h,i.below=o<=at(g,0),a.y=c.translate(o,0,1,0,1),a.height=Math.abs(a.y-c.translate(h,0,1,0,1))):(s=Math.max(n,n+h)+l[0],a.y=c.translate(s,0,1,0,1),i.isSum?(a.y=c.translate(l[1],0,1,0,1),a.height=Math.min(c.translate(l[0],0,1,0,1),c.len)-a.y):i.isIntermediateSum?(h=0<=h?(o=l[1]+r,r):(o=r,l[1]+r),c.reversed&&(o^=h,o^=h^=o),a.y=c.translate(o,0,1,0,1),a.height=Math.abs(a.y-Math.min(c.translate(h,0,1,0,1),c.len)),r+=l[1]):(a.height=0<o?c.translate(n,0,1,0,1)-a.y:c.translate(n,0,1,0,1)-c.translate(n-o,0,1,0,1),n+=o,i.below=n<at(g,0)),a.height<0&&(a.y+=a.height,a.height*=-1)),i.plotY=a.y=Math.round(a.y)-this.borderWidth%2/2,a.height=Math.max(Math.round(a.height),.001),i.yBottom=a.y+a.height,a.height<=d&&!i.isNull?(a.height=d,a.y-=u,i.plotY=a.y,i.minPointLengthOffset=i.y<0?-u:u):(i.isNull&&(a.width=0),i.minPointLengthOffset=0),a=i.plotY+(i.negative?a.height:0),this.chart.inverted?i.tooltipPos[0]=c.len-a:i.tooltipPos[1]=a},processData:function(t){var e,i,a,s,o,n,r,l=this.options,h=this.yData,p=l.data,c=h.length,d=l.threshold||0;for(r=a=i=s=o=0;r<c;r++)n=h[r],e=p&&p[r]?p[r]:{},"sum"===n||e.isSum?h[r]=et(a):"intermediateSum"===n||e.isIntermediateSum?(h[r]=et(i),i=0):(a+=n,i+=n),s=Math.min(a,s),o=Math.max(a,o);pt.prototype.processData.call(this,t),l.stacking||(this.dataMin=s+d,this.dataMax=o)},toYData:function(t){return t.isSum?0===t.x?null:"sum":t.isIntermediateSum?0===t.x?null:"intermediateSum":t.y},pointAttribs:function(t,e){var i=this.options.upColor;return i&&!t.options.color&&(t.color=0<t.y?i:null),delete(t=dt.column.prototype.pointAttribs.call(this,t,e)).dashstyle,t},getGraphPath:function(){return["M",0,0]},getCrispPath:function(){var t,e,i,a,s,o,n,r=this.data,l=this.yAxis,h=r.length,p=Math.round(this.graph.strokeWidth())%2/2,c=Math.round(this.borderWidth)%2/2,d=this.xAxis.reversed,u=this.yAxis.reversed,g=this.options.stacking,f=[];for(o=1;o<h;o++)s=r[o].shapeArgs,e=r[o-1],a=r[o-1].shapeArgs,t=l.waterfallStacks[this.stackKey],i=0<e.y?-a.height:0,t&&(t=t[o-1],i=g?(t=t.connectorThreshold,Math.round(l.translate(t,0,1,0,1)+(u?i:0))-p):a.y+e.minPointLengthOffset+c-p,n=["M",a.x+(d?0:a.width),i,"L",s.x+(d?s.width:0),i]),(!g&&e.y<0&&!u||0<e.y&&u)&&(n[2]+=a.height,n[5]+=a.height),f=f.concat(n);return f},drawGraph:function(){pt.prototype.drawGraph.call(this),this.graph.attr({d:this.getCrispPath()})},setStackedPoints:function(){var t,e,i,a,s=this.options,o=this.yAxis.waterfallStacks,n=s.threshold,r=n||0,l=n||0,h=this.stackKey,p=this.xData,c=p.length;if(this.visible||!this.chart.options.chart.ignoreHiddenSeries)for(o[h]||(o[h]={}),o=o[h],h=0;h<c;h++)o[t=p[h]]||(o[t]={negTotal:0,posTotal:0,total:0,stackTotal:0,threshold:0,stackState:[r]}),t=o[t],0<=(e=this.yData[h])?t.posTotal+=e:t.negTotal+=e,a=s.data[h],e=t.posTotal,i=t.negTotal,a&&a.isIntermediateSum?(r^=l,r^=l^=r):a&&a.isSum&&(r=n),t.stackTotal=e+i,t.total=t.stackTotal,t.threshold=r,t.stackState[0]=r,t.stackState.push(t.stackTotal),r+=t.stackTotal},getExtremes:function(){var t,e,a,s,o,i=this.options.stacking;i&&(t=(t=this.yAxis).waterfallStacks,e=this.stackedYNeg=[],a=this.stackedYPos=[],st(t[this.stackKey],"overlap"===i?function(i){s=[],i.stackState.forEach(function(t,e){o=i.stackState[0],e?s.push(t+o):s.push(o)}),e.push(ot(s)),a.push(nt(s))}:function(t){e.push(t.negTotal+t.threshold),a.push(t.posTotal+t.threshold)}),this.dataMin=ot(e),this.dataMax=nt(a))}},{getClassName:function(){var t=ht.prototype.getClassName.call(this);return this.isSum?t+=" highcharts-sum":this.isIntermediateSum&&(t+=" highcharts-intermediate-sum"),t},isValid:function(){return it(this.y,!0)||this.isSum||this.isIntermediateSum}}),gt=(ut=t).Series,ft=ut.seriesType,bt=ut.seriesTypes,ft("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var t=gt.prototype.getGraphPath.call(this),e=t.length+1;e--;)(e===t.length||"M"===t[e])&&0<e&&t.splice(e,0,"z");return this.areaPath=t},drawGraph:function(){this.options.fillColor=this.color,bt.area.prototype.drawGraph.call(this)},drawLegendSymbol:ut.LegendSymbolMixin.drawRectangle,drawTracker:gt.prototype.drawTracker,setStackedPoints:ut.noop}),yt=(mt=t).Series,xt=mt.Legend,vt=mt.Chart,Mt=mt.addEvent,Pt=mt.wrap,Lt=mt.color,wt=mt.isNumber,kt=mt.numberFormat,At=mt.objectEach,St=mt.merge,Tt=mt.noop,Ct=mt.pick,zt=mt.stableSort,It=mt.setOptions,Xt=mt.arrayMin,Yt=mt.arrayMax,It({legend:{bubbleLegend:{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:10,color:void 0},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}}),mt.BubbleLegend=function(t,e){this.init(t,e)},mt.BubbleLegend.prototype={init:function(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e},setState:Tt,addToLegend:function(t){t.splice(this.options.legendIndex,0,this)},drawLegendSymbol:function(t){var e,i=this.chart,a=this.options,s=Ct(t.options.itemDistance,20),o=a.ranges;e=a.connectorDistance,this.fontMetrics=i.renderer.fontMetrics(a.labels.style.fontSize.toString()+"px"),o&&o.length&&wt(o[0].value)?(zt(o,function(t,e){return e.value-t.value}),this.ranges=o,this.setOptions(),this.render(),i=this.getMaxLabelSize(),t=2*(o=this.ranges[0].radius),e=0<(e=e-o+i.width)?e:0,this.maxLabel=i,this.movementX="left"===a.labels.align?e:0,this.legendItemWidth=t+e+s,this.legendItemHeight=t+this.fontMetrics.h/2):t.options.bubbleLegend.autoRanges=!0},setOptions:function(){var i=this,a=i.ranges,s=i.options,o=i.chart.series[s.seriesIndex],n=i.legend.baseline,r={"z-index":s.zIndex,"stroke-width":s.borderWidth},l={"z-index":s.zIndex,"stroke-width":s.connectorWidth},h=i.getLabelStyles(),p=o.options.marker.fillOpacity,c=i.chart.styledMode;a.forEach(function(t,e){c||(r.stroke=Ct(t.borderColor,s.borderColor,o.color),r.fill=Ct(t.color,s.color,1!==p?Lt(o.color).setOpacity(p).get("rgba"):o.color),l.stroke=Ct(t.connectorColor,s.connectorColor,o.color)),a[e].radius=i.getRangeRadius(t.value),a[e]=St(a[e],{center:a[0].radius-a[e].radius+n}),c||St(!0,a[e],{bubbleStyle:St(!1,r),connectorStyle:St(!1,l),labelStyle:h})})},getLabelStyles:function(){var t=this.options,i={},e="left"===t.labels.align,a=this.legend.options.rtl;return At(t.labels.style,function(t,e){"color"!==e&&"fontSize"!==e&&"z-index"!==e&&(i[e]=t)}),St(!1,i,{"font-size":t.labels.style.fontSize,fill:Ct(t.labels.style.color,"#000000"),"z-index":t.zIndex,align:a||e?"right":"left"})},getRangeRadius:function(t){var e=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,e.ranges[e.ranges.length-1].value,e.ranges[0].value,e.minSize,e.maxSize,t)},render:function(){var e=this,t=e.chart.renderer,i=e.options.zThreshold;e.symbols||(e.symbols={connectors:[],bubbleItems:[],labels:[]}),e.legendSymbol=t.g("bubble-legend"),e.legendItem=t.g("bubble-legend-item"),e.legendSymbol.translateX=0,e.legendSymbol.translateY=0,e.ranges.forEach(function(t){t.value>=i&&e.renderRange(t)}),e.legendSymbol.add(e.legendItem),e.legendItem.add(e.legendGroup),e.hideOverlappingLabels()},renderRange:function(t){var e,i=this.options,a=i.labels,s=this.chart.renderer,o=this.symbols,n=o.labels,r=t.center,l=Math.abs(t.radius),h=i.connectorDistance,p=a.align,c=a.style.fontSize,d=(h=this.legend.options.rtl||"left"===p?-h:h,a=i.connectorWidth,this.ranges[0].radius),u=r-l-i.borderWidth/2+a/2,g=(c=c/2-(this.fontMetrics.h-c)/2,s.styledMode);"center"===p&&(h=0,i.connectorDistance=0,t.labelStyle.align="center"),p=u+i.labels.y,e=d+h+i.labels.x,o.bubbleItems.push(s.circle(d,r+((u%1?1:.5)-(a%2?0:.5)),l).attr(g?{}:t.bubbleStyle).addClass((g?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-symbol "+(i.className||"")).add(this.legendSymbol)),o.connectors.push(s.path(s.crispLine(["M",d,u,"L",d+h,u],i.connectorWidth)).attr(g?{}:t.connectorStyle).addClass((g?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(i.connectorClassName||"")).add(this.legendSymbol)),t=s.text(this.formatLabel(t),e,p+c).attr(g?{}:t.labelStyle).addClass("highcharts-bubble-legend-labels "+(i.labels.className||"")).add(this.legendSymbol),n.push(t),t.placed=!0,t.alignAttr={x:e,y:p+c}},getMaxLabelSize:function(){var e,i;return this.symbols.labels.forEach(function(t){i=t.getBBox(!0),e=e?i.width>e.width?i:e:i}),e||{}},formatLabel:function(t){var e=this.options,i=e.labels.formatter;return(e=e.labels.format)?mt.format(e,t):i?i.call(t):kt(t.value,1)},hideOverlappingLabels:function(){var t=this.chart,i=this.symbols;!this.options.labels.allowOverlap&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))},getRanges:function(){var i,e,t=this.legend.bubbleLegend,a=t.options.ranges,s=Number.MAX_VALUE,o=-Number.MAX_VALUE;return t.chart.series.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(e=t.zData.filter(wt)).length&&(s=Ct(t.options.zMin,Math.min(s,Math.max(Xt(e),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),o=Ct(t.options.zMax,Math.max(o,Yt(e))))}),i=s===o?[{value:o}]:[{value:s},{value:(s+o)/2},{value:o,autoRanges:!0}],a.length&&a[0].radius&&i.reverse(),i.forEach(function(t,e){a&&a[e]&&(i[e]=St(!1,a[e],t))}),i},predictBubbleSizes:function(){var t=this.chart,e=this.fontMetrics,i=t.legend.options,a="horizontal"===i.layout,s=a?t.legend.lastLineHeight:0,o=t.plotSizeX,n=t.plotSizeY,r=t.series[this.options.seriesIndex],l=(t=Math.ceil(r.minPxSize),Math.ceil(r.maxPxSize)),h=(r=r.options.maxSize,Math.min(n,o));return i.floating||!/%$/.test(r)?e=l:(r=parseFloat(r),e=(h+s-e.h/2)*r/100/(r/100+1),(a&&o<=n-e||!a&&n<=o-e)&&(e=l)),[t,Math.ceil(e)]},updateRanges:function(t,e){var i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()},correctSizes:function(){var t=this.legend,e=this.chart.series[this.options.seriesIndex];1<Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},Mt(mt.Legend,"afterGetAllItems",function(t){var e=this.bubbleLegend,i=this.options,a=i.bubbleLegend,s=this.chart.getVisibleBubbleSeriesIndex();e&&e.ranges&&e.ranges.length&&(a.ranges.length&&(a.autoRanges=!!a.ranges[0].autoRanges),this.destroyItem(e)),0<=s&&i.enabled&&a.enabled&&(a.seriesIndex=s,this.bubbleLegend=new mt.BubbleLegend(a,this),this.bubbleLegend.addToLegend(t.allItems))}),vt.prototype.getVisibleBubbleSeriesIndex=function(){for(var t=this.series,e=0;e<t.length;){if(t[e]&&t[e].isBubble&&t[e].visible&&t[e].zData.length)return e;e++}return-1},xt.prototype.getLinesHeights=function(){var t,e,i=this.allItems,a=[],s=i.length,o=0;for(e=0;e<s;e++)if(i[e].legendItemHeight&&(i[e].itemHeight=i[e].legendItemHeight),i[e]===i[s-1]||i[e+1]&&i[e]._legendItemPos[1]!==i[e+1]._legendItemPos[1]){for(a.push({height:0}),t=a[a.length-1];o<=e;o++)i[o].itemHeight>t.height&&(t.height=i[o].itemHeight);t.step=e}return a},xt.prototype.retranslateItems=function(i){var a,s,o,n=this.options.rtl,r=0;this.allItems.forEach(function(t,e){a=t.legendGroup.translateX,s=t._legendItemPos[1],((o=t.movementX)||n&&t.ranges)&&(o=n?a-t.options.maxSize/2:a+o,t.legendGroup.attr({translateX:o})),e>i[r].step&&r++,t.legendGroup.attr({translateY:Math.round(s+i[r].height/2)}),t._legendItemPos[1]=s+i[r].height/2})},Mt(yt,"legendItemClick",function(){var t=this.chart,e=this.visible,i=this.chart.legend;i&&i.bubbleLegend&&(this.visible=!e,this.ignoreSeries=e,t=0<=t.getVisibleBubbleSeriesIndex(),i.bubbleLegend.visible!==t&&(i.update({bubbleLegend:{enabled:t}}),i.bubbleLegend.visible=t),this.visible=e)}),Pt(vt.prototype,"drawChartBox",function(t,e,i){var a,s=this.legend,o=0<=this.getVisibleBubbleSeriesIndex();s&&s.options.enabled&&s.bubbleLegend&&s.options.bubbleLegend.autoRanges&&o?(a=s.bubbleLegend.options,o=s.bubbleLegend.predictBubbleSizes(),s.bubbleLegend.updateRanges(o[0],o[1]),a.placed||(s.group.placed=!1,s.allItems.forEach(function(t){t.legendGroup.translateY=null})),s.render(),this.getMargins(),this.axes.forEach(function(t){t.render(),a.placed||(t.setScale(),t.updateNames(),At(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0}))}),a.placed=!0,this.getMargins(),t.call(this,e,i),s.bubbleLegend.correctSizes(),s.retranslateItems(s.getLinesHeights())):(t.call(this,e,i),s&&s.options.enabled&&s.bubbleLegend&&(s.render(),s.retranslateItems(s.getLinesHeights())))}),Et=(Rt=t).arrayMax,Dt=Rt.arrayMin,Bt=Rt.Axis,Gt=Rt.color,Wt=Rt.isNumber,Ot=Rt.noop,Ht=Rt.pick,Nt=Rt.pInt,Vt=Rt.Point,_t=Rt.Series,qt=Rt.seriesType,Ft=Rt.seriesTypes,qt("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,isBubble:!0,pointAttribs:function(t,e){var i=this.options.marker.fillOpacity;return t=_t.prototype.pointAttribs.call(this,t,e),1!==i&&(t.fill=Gt(t.fill).setOpacity(i).get("rgba")),t},getRadii:function(t,e,i){var a,s,o=this.zData,n=i.minPxSize,r=i.maxPxSize,l=[];for(a=0,i=o.length;a<i;a++)s=o[a],l.push(this.getRadius(t,e,n,r,s));this.radii=l},getRadius:function(t,e,i,a,s){var o=this.options,n="width"!==o.sizeBy,r=o.zThreshold,l=e-t;return o.sizeByAbsoluteValue&&null!==s&&(s=Math.abs(s-r),l=Math.max(e-r,Math.abs(t-r)),t=0),i=Wt(s)?s<t?i/2-1:(t=0<l?(s-t)/l:.5,n&&0<=t&&(t=Math.sqrt(t)),Math.ceil(i+t*(a-i))/2):null},animate:function(t){!t&&this.points.length<this.options.animationLimit&&(this.points.forEach(function(t){var e,i=t.graphic;i&&i.width&&(e={x:i.x,y:i.y,width:i.width,height:i.height},i.attr({x:t.plotX,y:t.plotY,width:1,height:1}),i.animate(e,this.options.animation))},this),this.animate=null)},translate:function(){var t,e,i,a=this.data,s=this.radii;for(Ft.scatter.prototype.translate.call(this),t=a.length;t--;)e=a[t],i=s?s[t]:0,Wt(i)&&i>=this.minPxSize/2?(e.marker=Rt.extend(e.marker,{radius:i,width:2*i,height:2*i}),e.dlBox={x:e.plotX-i,y:e.plotY-i,width:2*i,height:2*i}):e.shapeArgs=e.plotY=e.dlBox=void 0},alignDataLabel:Ft.column.prototype.alignDataLabel,buildKDTree:Ot,applyZones:Ot},{haloPath:function(t){return Vt.prototype.haloPath.call(this,0===t?0:(this.marker&&this.marker.radius||0)+t)},ttBelow:!1}),Bt.prototype.beforePadding=function(){var s=this,t=this.len,e=this.chart,o=0,n=t,r=this.isXAxis,l=r?"xData":"yData",h=this.min,p={},c=Math.min(e.plotWidth,e.plotHeight),d=Number.MAX_VALUE,u=-Number.MAX_VALUE,g=this.max-h,f=t/g,i=[];this.series.forEach(function(t){var a=t.options;!t.bubblePadding||!t.visible&&e.options.chart.ignoreHiddenSeries||(s.allowZoomOutside=!0,i.push(t),r&&(["minSize","maxSize"].forEach(function(t){var e=a[t],i=/%$/.test(e);e=Nt(e),p[t]=i?c*e/100:e}),t.minPxSize=p.minSize,t.maxPxSize=Math.max(p.maxSize,p.minSize),(t=t.zData.filter(Rt.isNumber)).length&&(d=Ht(a.zMin,Math.min(d,Math.max(Dt(t),!1===a.displayNegative?a.zThreshold:-Number.MAX_VALUE))),u=Ht(a.zMax,Math.max(u,Et(t))))))}),i.forEach(function(t){var e,i=t[l],a=i.length;if(r&&t.getRadii(d,u,t),0<g)for(;a--;)Wt(i[a])&&s.dataMin<=i[a]&&i[a]<=s.dataMax&&(e=t.radii[a],o=Math.min((i[a]-h)*f-e,o),n=Math.max((i[a]-h)*f+e,n))}),i.length&&0<g&&!this.isLog&&(n-=t,f*=(t+Math.max(0,o)-Math.min(n,t))/t,[["min","userMin",o],["max","userMax",n]].forEach(function(t){void 0===Ht(s.options[t[0]],s[t[1]])&&(s[t[0]]+=t[2]/f)}))},Ut=(Kt=t).seriesType,$t=Kt.defined,Ut("packedbubble","bubble",{minSize:"10%",maxSize:"100%",sizeBy:"radius",zoneAxis:"y",tooltip:{pointFormat:"Value: {point.value}"}},{pointArrayMap:["value"],pointValKey:"value",isCartesian:!1,axisTypes:[],accumulateAllPoints:function(t){var e,i,a=t.chart,s=[];for(e=0;e<a.series.length;e++)if((t=a.series[e]).visible||!a.options.chart.ignoreHiddenSeries)for(i=0;i<t.yData.length;i++)s.push([null,null,t.yData[i],t.index,i]);return s},translate:function(){var t,e,i,a,s=this.chart,o=this.data,n=this.index;for(this.processedXData=this.xData,this.generatePoints(),$t(s.allDataPoints)||(s.allDataPoints=this.accumulateAllPoints(this),this.getPointRadius()),t=this.placeBubbles(s.allDataPoints),a=0;a<t.length;a++)t[a][3]===n&&(e=o[t[a][4]],i=t[a][2],e.plotX=t[a][0]-s.plotLeft+s.diffX,e.plotY=t[a][1]-s.plotTop+s.diffY,e.marker=Kt.extend(e.marker,{radius:i,width:2*i,height:2*i}))},checkOverlap:function(t,e){var i=t[0]-e[0],a=t[1]-e[1];return Math.sqrt(i*i+a*a)-Math.abs(t[2]+e[2])<-.001},positionBubble:function(t,e,i){var a=Math.sqrt,s=Math.asin,o=Math.acos,n=Math.pow,r=Math.abs;return o=o((n(a=a(n(t[0]-e[0],2)+n(t[1]-e[1],2)),2)+n(i[2]+e[2],2)-n(i[2]+t[2],2))/(2*(i[2]+e[2])*a)),s=s(r(t[0]-e[0])/a),t=(t[1]-e[1]<0?0:Math.PI)+o+s*((t[0]-e[0])*(t[1]-e[1])<0?1:-1),[e[0]+(e[2]+i[2])*Math.sin(t),e[1]-(e[2]+i[2])*Math.cos(t),i[2],i[3],i[4]]},placeBubbles:function(t){var e,i,a=this.checkOverlap,s=this.positionBubble,o=[],n=1,r=0,l=0;if(!(e=t.sort(function(t,e){return e[2]-t[2]})).length)return[];if(e.length<2)return[0,0,e[0][0],e[0][1],e[0][2]];for(o.push([[0,0,e[0][2],e[0][3],e[0][4]]]),o.push([[0,0-e[1][2]-e[0][2],e[1][2],e[1][3],e[1][4]]]),i=2;i<e.length;i++)e[i][2]=e[i][2]||1,a(t=s(o[n][r],o[n-1][l],e[i]),o[n][0])?(o.push([]),l=0,o[n+1].push(s(o[n][r],o[n][0],e[i])),n++,r=0):1<n&&o[n-1][l+1]&&a(t,o[n-1][l+1])?(l++,o[n].push(s(o[n][r],o[n-1][l],e[i])),r++):(r++,o[n].push(t));return this.chart.stages=o,this.chart.rawPositions=[].concat.apply([],o),this.resizeRadius(),this.chart.rawPositions},resizeRadius:function(){var t,e,i,a,s,o,n=this.chart,r=n.rawPositions,l=Math.min,h=Math.max,p=n.plotLeft,c=n.plotTop,d=n.plotHeight,u=n.plotWidth;for(t=i=Number.POSITIVE_INFINITY,e=a=Number.NEGATIVE_INFINITY,o=0;o<r.length;o++)s=r[o][2],t=l(t,r[o][0]-s),e=h(e,r[o][0]+s),i=l(i,r[o][1]-s),a=h(a,r[o][1]+s);if(o=[e-t,a-i],l=l.apply([],[(u-p)/o[0],(d-c)/o[1]]),1e-10<Math.abs(l-1)){for(o=0;o<r.length;o++)r[o][2]*=l;this.placeBubbles(r)}else n.diffY=d/2+c-i-(a-i)/2,n.diffX=u/2+p-t-(e-t)/2},getPointRadius:function(){var i,a,s,o,n=this,t=n.chart,r=n.options,l=Math.min(t.plotWidth,t.plotHeight),h={},p=[],c=t.allDataPoints;["minSize","maxSize"].forEach(function(t){var e=parseInt(r[t],10),i=/%$/.test(e);h[t]=i?l*e/100:e}),t.minRadius=i=h.minSize,t.maxRadius=a=h.maxSize,(c||[]).forEach(function(t,e){s=t[2],o=n.getRadius(i,a,i,a,s),0===s&&(o=null),c[e][2]=o,p.push(o)}),this.radii=p},alignDataLabel:Kt.Series.prototype.alignDataLabel}),Kt.addEvent(Kt.seriesTypes.packedbubble,"updatedData",function(){var e=this;this.chart.series.forEach(function(t){t.type===e.type&&(t.isDirty=!0)})}),Kt.addEvent(Kt.Chart,"beforeRedraw",function(){this.allDataPoints&&delete this.allDataPoints}),jt=(Zt=t).pick,Qt=Zt.Series,Jt=Zt.seriesTypes,te=Zt.wrap,ee=Qt.prototype,ie=Zt.Pointer.prototype,Zt.polarExtended||(Zt.polarExtended=!0,ee.searchPointByAngle=function(t){var e=this.chart,i=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(t.chartX-i[0]-e.plotLeft,t.chartY-i[1]-e.plotTop)})},ee.getConnectors=function(t,e,i,a){var s,o,n,r,l,h,p,c;return o=a?1:0,e=(s=0<=e&&e<=t.length-1?e:e<0?t.length-1+e:0)-1<0?t.length-(1+o):s-1,o=s+1>t.length-1?o:s+1,n=t[e],o=t[o],r=n.plotX,n=n.plotY,l=o.plotX,h=o.plotY,r=(1.5*(o=t[s].plotX)+r)/2.5,n=(1.5*(s=t[s].plotY)+n)/2.5,l=(1.5*o+l)/2.5,p=(1.5*s+h)/2.5,h=Math.sqrt(Math.pow(r-o,2)+Math.pow(n-s,2)),c=Math.sqrt(Math.pow(l-o,2)+Math.pow(p-s,2)),r=Math.atan2(n-s,r-o),p=Math.PI/2+(r+Math.atan2(p-s,l-o))/2,Math.abs(r-p)>Math.PI/2&&(p-=Math.PI),r=o+Math.cos(p)*h,n=s+Math.sin(p)*h,o={rightContX:l=o+Math.cos(Math.PI+p)*c,rightContY:p=s+Math.sin(Math.PI+p)*c,leftContX:r,leftContY:n,plotX:o,plotY:s},i&&(o.prevPointCont=this.getConnectors(t,e,!1,a)),o},ee.toXY=function(t){var e,i=this.chart,a=t.plotX;e=t.plotY,t.rectPlotX=a,t.rectPlotY=e,e=this.xAxis.postTranslate(t.plotX,this.yAxis.len-e),t.plotX=t.polarPlotX=e.x-i.plotLeft,t.plotY=t.polarPlotY=e.y-i.plotTop,this.kdByAngle?((i=(a/Math.PI*180+this.xAxis.pane.options.startAngle)%360)<0&&(i+=360),t.clientX=i):t.clientX=t.plotX},Jt.spline&&(te(Jt.spline.prototype,"getPointSpline",function(t,e,i,a){return t=this.chart.polar?a?["C",(t=this.getConnectors(e,a,!0,this.connectEnds)).prevPointCont.rightContX,t.prevPointCont.rightContY,t.leftContX,t.leftContY,t.plotX,t.plotY]:["M",i.plotX,i.plotY]:t.call(this,e,i,a)}),Jt.areasplinerange&&(Jt.areasplinerange.prototype.getPointSpline=Jt.spline.prototype.getPointSpline)),Zt.addEvent(Qt,"afterTranslate",function(){var t,e,i=this.chart;if(i.polar){if((this.kdByAngle=i.tooltip&&i.tooltip.shared)?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy",!this.preventPostTranslate)for(e=(t=this.points).length;e--;)this.toXY(t[e]);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!Zt.addEvent(this,"afterRender",function(){var t;i.polar&&(t=this.yAxis.center,this.group.clip(i.renderer.clipCircle(t[0],t[1],t[2]/2)),this.setClip=Zt.noop)}))}},{order:2}),te(ee,"getGraphPath",function(t,e){var i,a,s,o=this;if(this.chart.polar){for(e=e||this.points,i=0;i<e.length;i++)if(!e[i].isNull){a=i;break}!1!==this.options.connectEnds&&void 0!==a&&(this.connectEnds=!0,e.splice(e.length,0,e[a]),s=!0),e.forEach(function(t){void 0===t.polarPlotY&&o.toXY(t)})}return i=t.apply(this,[].slice.call(arguments,1)),s&&e.pop(),i}),te(ee,"animate",Qt=function(t,e){var i=this.chart,a=this.options.animation,s=this.group,o=this.markerGroup,n=this.xAxis.center,r=i.plotLeft,l=i.plotTop;i.polar?i.renderer.isSVG&&(!0===a&&(a={}),e?(t={translateX:n[0]+r,translateY:n[1]+l,scaleX:.001,scaleY:.001},s.attr(t),o&&o.attr(t)):(t={translateX:r,translateY:l,scaleX:1,scaleY:1},s.animate(t,a),o&&o.animate(t,a),this.animate=null)):t.call(this,e)}),Jt.column&&((Jt=Jt.column.prototype).polarArc=function(t,e,i,a){var s=this.xAxis.center,o=this.yAxis.len;return this.chart.renderer.symbols.arc(s[0],s[1],o-e,null,{start:i,end:a,innerR:o-jt(t,o)})},te(Jt,"animate",Qt),te(Jt,"translate",function(t){var e,i,a,s=this.xAxis,o=s.startAngleRad;if(this.preventPostTranslate=!0,t.call(this),s.isRadial)for(a=(e=this.points).length;a--;)t=(i=e[a]).barX+o,i.shapeType="path",i.shapeArgs={d:this.polarArc(i.yBottom,i.plotY,t,t+i.pointWidth)},this.toXY(i),i.tooltipPos=[i.plotX,i.plotY],i.ttBelow=i.plotY>s.center[1]}),te(Jt,"alignDataLabel",function(t,e,i,a,s,o){this.chart.polar?(t=e.rectPlotX/Math.PI*180,null===a.align&&(a.align=20<t&&t<160?"left":200<t&&t<340?"right":"center"),null===a.verticalAlign&&(a.verticalAlign=t<45||315<t?"bottom":135<t&&t<225?"top":"middle"),ee.alignDataLabel.call(this,e,i,a,s,o)):t.call(this,e,i,a,s,o)})),te(ie,"getCoordinates",function(t,s){var o=this.chart,n={xAxis:[],yAxis:[]};return o.polar?o.axes.forEach(function(t){var e=t.isXAxis,i=t.center,a=s.chartX-i[0]-o.plotLeft;i=s.chartY-i[1]-o.plotTop,n[e?"xAxis":"yAxis"].push({axis:t,value:t.translate(e?Math.PI-Math.atan2(a,i):Math.sqrt(Math.pow(a,2)+Math.pow(i,2)),!0)})}):n=t.call(this,s),n}),Zt.SVGRenderer.prototype.clipCircle=function(t,e,i){var a=Zt.uniqueKey(),s=this.createElement("clipPath").attr({id:a}).add(this.defs);return(t=this.circle(t,e,i).add(s)).id=a,t.clipPath=s,t},Zt.addEvent(Zt.Chart,"getAxes",function(){this.pane||(this.pane=[]),Zt.splat(this.options.pane).forEach(function(t){new Zt.Pane(t,this)},this)}),Zt.addEvent(Zt.Chart,"afterDrawChartBox",function(){this.pane.forEach(function(t){t.render()})}),te(Zt.Chart.prototype,"get",function(t,e){return Zt.find(this.pane,function(t){return t.options.id===e})||t.call(this,e)}))});
For more information send a message to info at phpclasses dot org.