highcharts
Version:
JavaScript charting framework
105 lines (103 loc) • 264 kB
JavaScript
/*
Highstock JS v5.0.13 (2017-07-27)
(c) 2009-2016 Torstein Honsi
License: www.highcharts.com/license
*/
(function(M,S){"object"===typeof module&&module.exports?module.exports=M.document?S(M):S:M.Highcharts=S(M)})("undefined"!==typeof window?window:this,function(M){M=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,E=/(edge|msie|trident)/i.test(B)&&!window.opera,r=!G,g=/Firefox/.test(B),p=g&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock",
version:"5.0.13",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:p,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:E,isWebKit:/AppleWebKit/.test(B),isFirefox:g,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:r,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){var D=[],B=a.charts,G=a.doc,E=a.win;a.error=function(r,g){r=a.isNumber(r)?"Highcharts error #"+
r+": www.highcharts.com/errors/"+r:r;if(g)throw Error(r);E.console&&console.log(r)};a.Fx=function(a,g,p){this.options=g;this.elem=a;this.prop=p};a.Fx.prototype={dSetter:function(){var a=this.paths[0],g=this.paths[1],p=[],t=this.now,v=a.length,u;if(1===t)p=this.toD;else if(v===g.length&&1>t)for(;v--;)u=parseFloat(a[v]),p[v]=isNaN(u)?a[v]:t*parseFloat(g[v]-u)+u;else p=g;this.elem.attr("d",p,null,!0)},update:function(){var a=this.elem,g=this.prop,p=this.now,t=this.options.step;if(this[g+"Setter"])this[g+
"Setter"]();else a.attr?a.element&&a.attr(g,p,null,!0):a.style[g]=p+this.unit;t&&t.call(a,p,this)},run:function(a,g,p){var t=this,r=function(a){return r.stopped?!1:t.step(a)},u;this.startTime=+new Date;this.start=a;this.end=g;this.unit=p;this.now=this.start;this.pos=0;r.elem=this.elem;r.prop=this.prop;r()&&1===D.push(r)&&(r.timerId=setInterval(function(){for(u=0;u<D.length;u++)D[u]()||D.splice(u--,1);D.length||clearInterval(r.timerId)},13))},step:function(r){var g=+new Date,p,t=this.options,v=this.elem,
u=t.complete,l=t.duration,e=t.curAnim;v.attr&&!v.element?r=!1:r||g>=l+this.startTime?(this.now=this.end,this.pos=1,this.update(),p=e[this.prop]=!0,a.objectEach(e,function(a){!0!==a&&(p=!1)}),p&&u&&u.call(v),r=!1):(this.pos=t.easing((g-this.startTime)/l),this.now=this.start+(this.end-this.start)*this.pos,this.update(),r=!0);return r},initPath:function(r,g,p){function t(a){var b,m;for(c=a.length;c--;)b="M"===a[c]||"L"===a[c],m=/[a-zA-Z]/.test(a[c+3]),b&&m&&a.splice(c+1,0,a[c+1],a[c+2],a[c+1],a[c+2])}
function v(a,b){for(;a.length<x;){a[0]=b[x-a.length];var m=a.slice(0,d);[].splice.apply(a,[0,0].concat(m));q&&(m=a.slice(a.length-d),[].splice.apply(a,[a.length,0].concat(m)),c--)}a[0]="M"}function u(a,b){for(var m=(x-a.length)/d;0<m&&m--;)C=a.slice().splice(a.length/I-d,d*I),C[0]=b[x-d-m*d],f&&(C[d-6]=C[d-2],C[d-5]=C[d-1]),[].splice.apply(a,[a.length/I,0].concat(C)),q&&m--}g=g||"";var l,e=r.startX,k=r.endX,f=-1<g.indexOf("C"),d=f?7:3,x,C,c;g=g.split(" ");p=p.slice();var q=r.isArea,I=q?2:1,m;f&&(t(g),
t(p));if(e&&k){for(c=0;c<e.length;c++)if(e[c]===k[0]){l=c;break}else if(e[0]===k[k.length-e.length+c]){l=c;m=!0;break}void 0===l&&(g=[])}g.length&&a.isNumber(l)&&(x=p.length+l*I*d,m?(v(g,p),u(p,g)):(v(p,g),u(g,p)));return[g,p]}};a.Fx.prototype.fillSetter=a.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)};a.extend=function(a,g){var r;a||(a={});for(r in g)a[r]=g[r];return a};a.merge=function(){var r,g=arguments,p,t={},v=
function(g,l){"object"!==typeof g&&(g={});a.objectEach(l,function(e,k){!a.isObject(e,!0)||a.isClass(e)||a.isDOMElement(e)?g[k]=l[k]:g[k]=v(g[k]||{},e)});return g};!0===g[0]&&(t=g[1],g=Array.prototype.slice.call(g,2));p=g.length;for(r=0;r<p;r++)t=v(t,g[r]);return t};a.pInt=function(a,g){return parseInt(a,g||10)};a.isString=function(a){return"string"===typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(r,
g){return!!r&&"object"===typeof r&&(!g||!a.isArray(r))};a.isDOMElement=function(r){return a.isObject(r)&&"number"===typeof r.nodeType};a.isClass=function(r){var g=r&&r.constructor;return!(!a.isObject(r,!0)||a.isDOMElement(r)||!g||!g.name||"Object"===g.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)};a.erase=function(a,g){for(var r=a.length;r--;)if(a[r]===g){a.splice(r,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(r,g,p){var t;a.isString(g)?a.defined(p)?
r.setAttribute(g,p):r&&r.getAttribute&&(t=r.getAttribute(g)):a.defined(g)&&a.isObject(g)&&a.objectEach(g,function(a,g){r.setAttribute(g,a)});return t};a.splat=function(r){return a.isArray(r)?r:[r]};a.syncTimeout=function(a,g,p){if(g)return setTimeout(a,g,p);a.call(0,p)};a.pick=function(){var a=arguments,g,p,t=a.length;for(g=0;g<t;g++)if(p=a[g],void 0!==p&&null!==p)return p};a.css=function(r,g){a.isMS&&!a.svg&&g&&void 0!==g.opacity&&(g.filter="alpha(opacity\x3d"+100*g.opacity+")");a.extend(r.style,
g)};a.createElement=function(r,g,p,t,v){r=G.createElement(r);var u=a.css;g&&a.extend(r,g);v&&u(r,{padding:0,border:"none",margin:0});p&&u(r,p);t&&t.appendChild(r);return r};a.extendClass=function(r,g){var p=function(){};p.prototype=new r;a.extend(p.prototype,g);return p};a.pad=function(a,g,p){return Array((g||2)+1-String(a).length).join(p||0)+a};a.relativeLength=function(a,g,p){return/%$/.test(a)?g*parseFloat(a)/100+(p||0):parseFloat(a)};a.wrap=function(a,g,p){var t=a[g];a[g]=function(){var a=Array.prototype.slice.call(arguments),
g=arguments,l=this;l.proceed=function(){t.apply(l,arguments.length?arguments:g)};a.unshift(t);a=p.apply(this,a);l.proceed=null;return a}};a.getTZOffset=function(r){var g=a.Date;return 6E4*(g.hcGetTimezoneOffset&&g.hcGetTimezoneOffset(r)||g.hcTimezoneOffset||0)};a.dateFormat=function(r,g,p){if(!a.defined(g)||isNaN(g))return a.defaultOptions.lang.invalidDate||"";r=a.pick(r,"%Y-%m-%d %H:%M:%S");var t=a.Date,v=new t(g-a.getTZOffset(g)),u=v[t.hcGetHours](),l=v[t.hcGetDay](),e=v[t.hcGetDate](),k=v[t.hcGetMonth](),
f=v[t.hcGetFullYear](),d=a.defaultOptions.lang,x=d.weekdays,C=d.shortWeekdays,c=a.pad,t=a.extend({a:C?C[l]:x[l].substr(0,3),A:x[l],d:c(e),e:c(e,2," "),w:l,b:d.shortMonths[k],B:d.months[k],m:c(k+1),y:f.toString().substr(2,2),Y:f,H:c(u),k:u,I:c(u%12||12),l:u%12||12,M:c(v[t.hcGetMinutes]()),p:12>u?"AM":"PM",P:12>u?"am":"pm",S:c(v.getSeconds()),L:c(Math.round(g%1E3),3)},a.dateFormats);a.objectEach(t,function(a,f){for(;-1!==r.indexOf("%"+f);)r=r.replace("%"+f,"function"===typeof a?a(g):a)});return p?r.substr(0,
1).toUpperCase()+r.substr(1):r};a.formatSingle=function(r,g){var p=/\.([0-9])/,t=a.defaultOptions.lang;/f$/.test(r)?(p=(p=r.match(p))?p[1]:-1,null!==g&&(g=a.numberFormat(g,p,t.decimalPoint,-1<r.indexOf(",")?t.thousandsSep:""))):g=a.dateFormat(r,g);return g};a.format=function(r,g){for(var p="{",t=!1,v,u,l,e,k=[],f;r;){p=r.indexOf(p);if(-1===p)break;v=r.slice(0,p);if(t){v=v.split(":");u=v.shift().split(".");e=u.length;f=g;for(l=0;l<e;l++)f=f[u[l]];v.length&&(f=a.formatSingle(v.join(":"),f));k.push(f)}else k.push(v);
r=r.slice(p+1);p=(t=!t)?"}":"{"}k.push(r);return k.join("")};a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(r,g,p,t,v){var u,l=r;p=a.pick(p,1);u=r/p;g||(g=v?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===t&&(1===p?g=a.grep(g,function(a){return 0===a%1}):.1>=p&&(g=[1/p])));for(t=0;t<g.length&&!(l=g[t],v&&l*p>=r||!v&&u<=(g[t]+(g[t+1]||g[t]))/2);t++);return l=a.correctFloat(l*p,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=
function(a,g){var p=a.length,t,v;for(v=0;v<p;v++)a[v].safeI=v;a.sort(function(a,l){t=g(a,l);return 0===t?a.safeI-l.safeI:t});for(v=0;v<p;v++)delete a[v].safeI};a.arrayMin=function(a){for(var g=a.length,p=a[0];g--;)a[g]<p&&(p=a[g]);return p};a.arrayMax=function(a){for(var g=a.length,p=a[0];g--;)a[g]>p&&(p=a[g]);return p};a.destroyObjectProperties=function(r,g){a.objectEach(r,function(a,t){a&&a!==g&&a.destroy&&a.destroy();delete r[t]})};a.discardElement=function(r){var g=a.garbageBin;g||(g=a.createElement("div"));
r&&g.appendChild(r);g.innerHTML=""};a.correctFloat=function(a,g){return parseFloat(a.toPrecision(g||14))};a.setAnimation=function(r,g){g.renderer.globalAnimation=a.pick(r,g.options.chart.animation,!0)};a.animObject=function(r){return a.isObject(r)?a.merge(r):{duration:r?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(r,g,p,t){r=+r||0;g=+g;var v=a.defaultOptions.lang,u=(r.toString().split(".")[1]||"").split("e")[0].length,
l,e,k=r.toString().split("e");-1===g?g=Math.min(u,20):a.isNumber(g)||(g=2);e=(Math.abs(k[1]?k[0]:r)+Math.pow(10,-Math.max(g,u)-1)).toFixed(g);u=String(a.pInt(e));l=3<u.length?u.length%3:0;p=a.pick(p,v.decimalPoint);t=a.pick(t,v.thousandsSep);r=(0>r?"-":"")+(l?u.substr(0,l)+t:"");r+=u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+t);g&&(r+=p+e.slice(-g));k[1]&&(r+="e"+k[1]);return r};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(r,g,p){if("width"===g)return Math.min(r.offsetWidth,
r.scrollWidth)-a.getStyle(r,"padding-left")-a.getStyle(r,"padding-right");if("height"===g)return Math.min(r.offsetHeight,r.scrollHeight)-a.getStyle(r,"padding-top")-a.getStyle(r,"padding-bottom");if(r=E.getComputedStyle(r,void 0))r=r.getPropertyValue(g),a.pick(p,!0)&&(r=a.pInt(r));return r};a.inArray=function(a,g){return g.indexOf?g.indexOf(a):[].indexOf.call(g,a)};a.grep=function(a,g){return[].filter.call(a,g)};a.find=function(a,g){return[].find.call(a,g)};a.map=function(a,g){for(var p=[],t=0,v=
a.length;t<v;t++)p[t]=g.call(a[t],a[t],t,a);return p};a.offset=function(a){var g=G.documentElement;a=a.getBoundingClientRect();return{top:a.top+(E.pageYOffset||g.scrollTop)-(g.clientTop||0),left:a.left+(E.pageXOffset||g.scrollLeft)-(g.clientLeft||0)}};a.stop=function(a,g){for(var p=D.length;p--;)D[p].elem!==a||g&&g!==D[p].prop||(D[p].stopped=!0)};a.each=function(a,g,p){return Array.prototype.forEach.call(a,g,p)};a.objectEach=function(a,g,p){for(var t in a)a.hasOwnProperty(t)&&g.call(p,a[t],t,a)};
a.addEvent=function(r,g,p){function t(a){a.target=a.srcElement||E;p.call(r,a)}var v=r.hcEvents=r.hcEvents||{};r.addEventListener?r.addEventListener(g,p,!1):r.attachEvent&&(r.hcEventsIE||(r.hcEventsIE={}),p.hcGetKey||(p.hcGetKey=a.uniqueKey()),r.hcEventsIE[p.hcGetKey]=t,r.attachEvent("on"+g,t));v[g]||(v[g]=[]);v[g].push(p);return function(){a.removeEvent(r,g,p)}};a.removeEvent=function(r,g,p){function t(a,f){r.removeEventListener?r.removeEventListener(a,f,!1):r.attachEvent&&(f=r.hcEventsIE[f.hcGetKey],
r.detachEvent("on"+a,f))}function v(){var e,f;r.nodeName&&(g?(e={},e[g]=!0):e=l,a.objectEach(e,function(a,e){if(l[e])for(f=l[e].length;f--;)t(e,l[e][f])}))}var u,l=r.hcEvents,e;l&&(g?(u=l[g]||[],p?(e=a.inArray(p,u),-1<e&&(u.splice(e,1),l[g]=u),t(g,p)):(v(),l[g]=[])):(v(),r.hcEvents={}))};a.fireEvent=function(r,g,p,t){var v;v=r.hcEvents;var u,l;p=p||{};if(G.createEvent&&(r.dispatchEvent||r.fireEvent))v=G.createEvent("Events"),v.initEvent(g,!0,!0),a.extend(v,p),r.dispatchEvent?r.dispatchEvent(v):r.fireEvent(g,
v);else if(v)for(v=v[g]||[],u=v.length,p.target||a.extend(p,{preventDefault:function(){p.defaultPrevented=!0},target:r,type:g}),g=0;g<u;g++)(l=v[g])&&!1===l.call(r,p)&&p.preventDefault();t&&!p.defaultPrevented&&t(p)};a.animate=function(r,g,p){var t,v="",u,l,e;a.isObject(p)||(e=arguments,p={duration:e[2],easing:e[3],complete:e[4]});a.isNumber(p.duration)||(p.duration=400);p.easing="function"===typeof p.easing?p.easing:Math[p.easing]||Math.easeInOutSine;p.curAnim=a.merge(g);a.objectEach(g,function(e,
f){a.stop(r,f);l=new a.Fx(r,p,f);u=null;"d"===f?(l.paths=l.initPath(r,r.d,g.d),l.toD=g.d,t=0,u=1):r.attr?t=r.attr(f):(t=parseFloat(a.getStyle(r,f))||0,"opacity"!==f&&(v="px"));u||(u=e);u&&u.match&&u.match("px")&&(u=u.replace(/px/g,""));l.run(t,u,v)})};a.seriesType=function(r,g,p,t,v){var u=a.getOptions(),l=a.seriesTypes;u.plotOptions[r]=a.merge(u.plotOptions[g],p);l[r]=a.extendClass(l[g]||function(){},t);l[r].prototype.type=r;v&&(l[r].prototype.pointClass=a.extendClass(a.Point,v));return l[r]};a.uniqueKey=
function(){var a=Math.random().toString(36).substring(2,9),g=0;return function(){return"highcharts-"+a+"-"+g++}}();E.jQuery&&(E.jQuery.fn.highcharts=function(){var r=[].slice.call(arguments);if(this[0])return r[0]?(new (a[a.isString(r[0])?r.shift():"Chart"])(this[0],r[0],r[1]),this):B[a.attr(this[0],"data-highcharts-chart")]});G&&!G.defaultView&&(a.getStyle=function(r,g){var p={width:"clientWidth",height:"clientHeight"}[g];if(r.style[g])return a.pInt(r.style[g]);"opacity"===g&&(g="filter");if(p)return r.style.zoom=
1,Math.max(r[p]-2*a.getStyle(r,"padding"),0);r=r.currentStyle[g.replace(/\-(\w)/g,function(a,g){return g.toUpperCase()})];"filter"===g&&(r=r.replace(/alpha\(opacity=([0-9]+)\)/,function(a,g){return g/100}));return""===r?1:a.pInt(r)});Array.prototype.forEach||(a.each=function(a,g,p){for(var t=0,v=a.length;t<v;t++)if(!1===g.call(p,a[t],t,a))return t});Array.prototype.indexOf||(a.inArray=function(a,g){var p,t=0;if(g)for(p=g.length;t<p;t++)if(g[t]===a)return t;return-1});Array.prototype.filter||(a.grep=
function(a,g){for(var p=[],t=0,v=a.length;t<v;t++)g(a[t],t)&&p.push(a[t]);return p});Array.prototype.find||(a.find=function(a,g){var p,t=a.length;for(p=0;p<t;p++)if(g(a[p],p))return a[p]})})(M);(function(a){var D=a.each,B=a.isNumber,G=a.map,E=a.merge,r=a.pInt;a.Color=function(g){if(!(this instanceof a.Color))return new a.Color(g);this.init(g)};a.Color.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[r(a[1]),
r(a[2]),r(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[r(a[1]),r(a[2]),r(a[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(g){var p,t,v,u;if((this.input=g=this.names[g&&g.toLowerCase?g.toLowerCase():""]||g)&&g.stops)this.stops=G(g.stops,function(l){return new a.Color(l[1])});else if(g&&"#"===g.charAt()&&(p=g.length,g=parseInt(g.substr(1),16),7===p?t=[(g&16711680)>>16,(g&65280)>>
8,g&255,1]:4===p&&(t=[(g&3840)>>4|(g&3840)>>8,(g&240)>>4|g&240,(g&15)<<4|g&15,1])),!t)for(v=this.parsers.length;v--&&!t;)u=this.parsers[v],(p=u.regex.exec(g))&&(t=u.parse(p));this.rgba=t||[]},get:function(a){var g=this.input,t=this.rgba,v;this.stops?(v=E(g),v.stops=[].concat(v.stops),D(this.stops,function(g,l){v.stops[l]=[v.stops[l][0],g.get(a)]})):v=t&&B(t[0])?"rgb"===a||!a&&1===t[3]?"rgb("+t[0]+","+t[1]+","+t[2]+")":"a"===a?t[3]:"rgba("+t.join(",")+")":g;return v},brighten:function(a){var g,t=this.rgba;
if(this.stops)D(this.stops,function(g){g.brighten(a)});else if(B(a)&&0!==a)for(g=0;3>g;g++)t[g]+=r(255*a),0>t[g]&&(t[g]=0),255<t[g]&&(t[g]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,p){var g,v;a.rgba.length?(g=this.rgba,a=a.rgba,v=1!==a[3]||1!==g[3],a=(v?"rgba(":"rgb(")+Math.round(a[0]+(g[0]-a[0])*(1-p))+","+Math.round(a[1]+(g[1]-a[1])*(1-p))+","+Math.round(a[2]+(g[2]-a[2])*(1-p))+(v?","+(a[3]+(g[3]-a[3])*(1-p)):"")+")"):a=a.input||"none";return a}};a.color=
function(g){return new a.Color(g)}})(M);(function(a){var D,B,G=a.addEvent,E=a.animate,r=a.attr,g=a.charts,p=a.color,t=a.css,v=a.createElement,u=a.defined,l=a.deg2rad,e=a.destroyObjectProperties,k=a.doc,f=a.each,d=a.extend,x=a.erase,C=a.grep,c=a.hasTouch,q=a.inArray,I=a.isArray,m=a.isFirefox,J=a.isMS,b=a.isObject,z=a.isString,K=a.isWebKit,y=a.merge,A=a.noop,n=a.objectEach,H=a.pick,h=a.pInt,w=a.removeEvent,P=a.stop,L=a.svg,Q=a.SVG_NS,N=a.symbolSizes,O=a.win;D=a.SVGElement=function(){return this};d(D.prototype,
{opacity:1,SVG_NS:Q,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(a,h){this.element="span"===h?v(h):k.createElementNS(this.SVG_NS,h);this.renderer=a},animate:function(F,h,b){h=a.animObject(H(h,this.renderer.globalAnimation,!0));0!==h.duration?(b&&(h.complete=b),E(this,F,h)):(this.attr(F,null,b),h.step&&h.step.call(this));return this},colorGradient:function(F,h,b){var w=this.renderer,
m,d,c,e,k,L,R,z,q,A,H=[],x;F.radialGradient?d="radialGradient":F.linearGradient&&(d="linearGradient");d&&(c=F[d],k=w.gradients,R=F.stops,A=b.radialReference,I(c)&&(F[d]=c={x1:c[0],y1:c[1],x2:c[2],y2:c[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===d&&A&&!u(c.gradientUnits)&&(e=c,c=y(c,w.getRadialAttr(A,e),{gradientUnits:"userSpaceOnUse"})),n(c,function(a,F){"id"!==F&&H.push(F,a)}),n(R,function(a){H.push(a)}),H=H.join(","),k[H]?A=k[H].attr("id"):(c.id=A=a.uniqueKey(),k[H]=L=w.createElement(d).attr(c).add(w.defs),
L.radAttr=e,L.stops=[],f(R,function(F){0===F[1].indexOf("rgba")?(m=a.color(F[1]),z=m.get("rgb"),q=m.get("a")):(z=F[1],q=1);F=w.createElement("stop").attr({offset:F[0],"stop-color":z,"stop-opacity":q}).add(L);L.stops.push(F)})),x="url("+w.url+"#"+A+")",b.setAttribute(h,x),b.gradient=H,F.toString=function(){return x})},applyTextOutline:function(F){var h=this.element,b,n,w,m,d;-1!==F.indexOf("contrast")&&(F=F.replace(/contrast/g,this.renderer.getContrast(h.style.fill)));F=F.split(" ");n=F[F.length-1];
if((w=F[0])&&"none"!==w&&a.svg){this.fakeTS=!0;F=[].slice.call(h.getElementsByTagName("tspan"));this.ySetter=this.xSetter;w=w.replace(/(^[\d\.]+)(.*?)$/g,function(a,F,h){return 2*F+h});for(d=F.length;d--;)b=F[d],"highcharts-text-outline"===b.getAttribute("class")&&x(F,h.removeChild(b));m=h.firstChild;f(F,function(a,F){0===F&&(a.setAttribute("x",h.getAttribute("x")),F=h.getAttribute("y"),a.setAttribute("y",F||0),null===F&&h.setAttribute("y",0));a=a.cloneNode(1);r(a,{"class":"highcharts-text-outline",
fill:n,stroke:n,"stroke-width":w,"stroke-linejoin":"round"});h.insertBefore(a,m)})}},attr:function(a,h,b,w){var F,m=this.element,d,f=this,c,y;"string"===typeof a&&void 0!==h&&(F=a,a={},a[F]=h);"string"===typeof a?f=(this[a+"Getter"]||this._defaultGetter).call(this,a,m):(n(a,function(F,h){c=!1;w||P(this,h);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(h)&&(d||(this.symbolAttr(a),d=!0),c=!0);!this.rotation||"x"!==h&&"y"!==h||(this.doTransform=!0);c||(y=this[h+"Setter"]||
this._defaultSetter,y.call(this,F,h,m),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(h)&&this.updateShadows(h,F,y))},this),this.afterSetters());b&&b();return f},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,h,b){for(var F=this.shadows,w=F.length;w--;)b.call(F[w],"height"===a?Math.max(h-(F[w].cutHeight||0),0):"d"===a?this.d:h,a,F[w])},addClass:function(a,h){var F=this.attr("class")||"";-1===F.indexOf(a)&&
(h||(a=(F+(F?" ":"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==q(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var h=this;f("x y r start end width height innerR anchorX anchorY".split(" "),function(F){h[F]=H(a[F],h[F])});h.attr({d:h.renderer.symbols[h.symbolName](h.x,h.y,h.width,h.height,h)})},clip:function(a){return this.attr("clip-path",a?"url("+
this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,h){var F=this,b={},w;h=h||a.strokeWidth||0;w=Math.round(h)%2/2;a.x=Math.floor(a.x||F.x||0)+w;a.y=Math.floor(a.y||F.y||0)+w;a.width=Math.floor((a.width||F.width||0)-2*w);a.height=Math.floor((a.height||F.height||0)-2*w);u(a.strokeWidth)&&(a.strokeWidth=h);n(a,function(a,h){F[h]!==a&&(F[h]=b[h]=a)});return b},css:function(a){var F=this.styles,b={},w=this.element,m,c="",f,y=!F,e=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);
F&&n(a,function(a,h){a!==F[h]&&(b[h]=a,y=!0)});y&&(F&&(a=d(F,b)),m=this.textWidth=a&&a.width&&"auto"!==a.width&&"text"===w.nodeName.toLowerCase()&&h(a.width),this.styles=a,m&&!L&&this.renderer.forExport&&delete a.width,J&&!L?t(this.element,a):(f=function(a,h){return"-"+h.toLowerCase()},n(a,function(a,h){-1===q(h,e)&&(c+=h.replace(/([A-Z])/g,f)+":"+a+";")}),c&&r(w,"style",c)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));
return this},strokeWidth:function(){return this["stroke-width"]||0},on:function(a,h){var F=this,b=F.element;c&&"click"===a?(b.ontouchstart=function(a){F.touchEventFired=Date.now();a.preventDefault();h.call(b,a)},b.onclick=function(a){(-1===O.navigator.userAgent.indexOf("Android")||1100<Date.now()-(F.touchEventFired||0))&&h.call(b,a)}):b["on"+a]=h;return this},setRadialReference:function(a){var h=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;h&&h.radAttr&&h.animate(this.renderer.getRadialAttr(a,
h.radAttr));return this},translate:function(a,h){return this.attr({translateX:a,translateY:h})},invert:function(a){this.inverted=a;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,h=this.translateY||0,b=this.scaleX,w=this.scaleY,n=this.inverted,m=this.rotation,d=this.element;n&&(a+=this.width,h+=this.height);a=["translate("+a+","+h+")"];n?a.push("rotate(90) scale(-1,1)"):m&&a.push("rotate("+m+" "+(d.getAttribute("x")||0)+" "+(d.getAttribute("y")||0)+")");(u(b)||
u(w))&&a.push("scale("+H(b,1)+" "+H(w,1)+")");a.length&&d.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,h,b){var F,w,n,m,d={};w=this.renderer;n=w.alignedObjects;var c,f;if(a){if(this.alignOptions=a,this.alignByTranslate=h,!b||z(b))this.alignTo=F=b||"renderer",x(n,this),n.push(this),b=null}else a=this.alignOptions,h=this.alignByTranslate,F=this.alignTo;b=H(b,w[F],w);F=a.align;w=a.verticalAlign;n=(b.x||0)+(a.x||
0);m=(b.y||0)+(a.y||0);"right"===F?c=1:"center"===F&&(c=2);c&&(n+=(b.width-(a.width||0))/c);d[h?"translateX":"x"]=Math.round(n);"bottom"===w?f=1:"middle"===w&&(f=2);f&&(m+=(b.height-(a.height||0))/f);d[h?"translateY":"y"]=Math.round(m);this[this.placed?"animate":"attr"](d);this.placed=!0;this.alignAttr=d;return this},getBBox:function(a,h){var F,b=this.renderer,w,n=this.element,m=this.styles,c,y=this.textStr,e,k=b.cache,L=b.cacheKeys,z;h=H(h,this.rotation);w=h*l;c=m&&m.fontSize;void 0!==y&&(z=y.toString(),
-1===z.indexOf("\x3c")&&(z=z.replace(/[0-9]/g,"0")),z+=["",h||0,c,m&&m.width,m&&m.textOverflow].join());z&&!a&&(F=k[z]);if(!F){if(n.namespaceURI===this.SVG_NS||b.forExport){try{(e=this.fakeTS&&function(a){f(n.querySelectorAll(".highcharts-text-outline"),function(h){h.style.display=a})})&&e("none"),F=n.getBBox?d({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight},e&&e("")}catch(V){}if(!F||0>F.width)F={width:0,height:0}}else F=this.htmlGetBBox();b.isSVG&&(a=F.width,b=F.height,m&&"11px"===m.fontSize&&
17===Math.round(b)&&(F.height=b=14),h&&(F.width=Math.abs(b*Math.sin(w))+Math.abs(a*Math.cos(w)),F.height=Math.abs(b*Math.cos(w))+Math.abs(a*Math.sin(w))));if(z&&0<F.height){for(;250<L.length;)delete k[L.shift()];k[z]||L.push(z);k[z]=F}}return F},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var h=this;h.animate({opacity:0},{duration:a||150,complete:function(){h.attr({y:-9999})}})},add:function(a){var h=
this.renderer,F=this.element,b;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&h.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)b=this.zIndexSetter();b||(a?a.element:h.box).appendChild(F);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var h=a.parentNode;h&&h.removeChild(a)},destroy:function(){var a=this,h=a.element||{},b=a.renderer.isSVG&&"SPAN"===h.nodeName&&a.parentGroup,w=h.ownerSVGElement;h.onclick=h.onmouseout=h.onmouseover=h.onmousemove=
h.point=null;P(a);a.clipPath&&w&&(f(w.querySelectorAll("[clip-path]"),function(h){-1<h.getAttribute("clip-path").indexOf(a.clipPath.element.id+")")&&h.removeAttribute("clip-path")}),a.clipPath=a.clipPath.destroy());if(a.stops){for(w=0;w<a.stops.length;w++)a.stops[w]=a.stops[w].destroy();a.stops=null}a.safeRemoveChild(h);for(a.destroyShadows();b&&b.div&&0===b.div.childNodes.length;)h=b.parentGroup,a.safeRemoveChild(b.div),delete b.div,b=h;a.alignTo&&x(a.renderer.alignedObjects,a);n(a,function(h,b){delete a[b]});
return null},shadow:function(a,h,b){var F=[],w,n,m=this.element,d,c,f,y;if(!a)this.destroyShadows();else if(!this.shadows){c=H(a.width,3);f=(a.opacity||.15)/c;y=this.parentInverted?"(-1,-1)":"("+H(a.offsetX,1)+", "+H(a.offsetY,1)+")";for(w=1;w<=c;w++)n=m.cloneNode(0),d=2*c+1-2*w,r(n,{isShadow:"true",stroke:a.color||"#000000","stroke-opacity":f*w,"stroke-width":d,transform:"translate"+y,fill:"none"}),b&&(r(n,"height",Math.max(r(n,"height")-d,0)),n.cutHeight=d),h?h.element.appendChild(n):m.parentNode.insertBefore(n,
m),F.push(n);this.shadows=F}return this},destroyShadows:function(){f(this.shadows||[],function(a){this.safeRemoveChild(a)},this);this.shadows=void 0},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=H(this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a));return a},dSetter:function(a,h,b){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[h]!==
a&&(b.setAttribute(h,a),this[h]=a)},dashstyleSetter:function(a){var b,w=this["stroke-width"];"inherit"===w&&(w=1);if(a=a&&a.toLowerCase()){a=a.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(",");for(b=a.length;b--;)a[b]=h(a[b])*w;a=a.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){this.element.setAttribute("text-anchor",
{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,h,b){this[h]=a;b.setAttribute(h,a)},titleSetter:function(a){var h=this.element.getElementsByTagName("title")[0];h||(h=k.createElementNS(this.SVG_NS,"title"),this.element.appendChild(h));h.firstChild&&h.removeChild(h.firstChild);h.appendChild(k.createTextNode(String(H(a),"").replace(/<[^>]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,
h,b){"string"===typeof a?b.setAttribute(h,a):a&&this.colorGradient(a,h,b)},visibilitySetter:function(a,h,b){"inherit"===a?b.removeAttribute(h):this[h]!==a&&b.setAttribute(h,a);this[h]=a},zIndexSetter:function(a,b){var w=this.renderer,n=this.parentGroup,m=(n||w).element||w.box,F,d=this.element,c;F=this.added;var f;u(a)&&(d.zIndex=a,a=+a,this[b]===a&&(F=!1),this[b]=a);if(F){(a=this.zIndex)&&n&&(n.handleZ=!0);b=m.childNodes;for(f=0;f<b.length&&!c;f++)n=b[f],F=n.zIndex,n!==d&&(h(F)>a||!u(a)&&u(F)||0>
a&&!u(F)&&m!==w.box)&&(m.insertBefore(d,n),c=!0);c||m.appendChild(d)}return c},_defaultSetter:function(a,h,b){b.setAttribute(h,a)}});D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,h){this[h]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,h,b){this[h]=a;this.stroke&&this["stroke-width"]?
(D.prototype.fillSetter.call(this,this.stroke,"stroke",b),b.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(b.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};d(B.prototype,{Element:D,SVG_NS:Q,init:function(a,h,b,w,n,d){var F;w=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(w));F=w.element;a.appendChild(F);-1===a.innerHTML.indexOf("xmlns")&&
r(F,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=F;this.boxWrapper=w;this.alignedObjects=[];this.url=(m||K)&&k.getElementsByTagName("base").length?O.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highstock 5.0.13"));this.defs=this.createElement("defs").add();this.allowHTML=d;this.forExport=n;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=
0;this.setSize(h,b,!1);var c;m&&a.getBoundingClientRect&&(h=function(){t(a,{left:0,top:0});c=a.getBoundingClientRect();t(a,{left:Math.ceil(c.left)-c.left+"px",top:Math.ceil(c.top)-c.top+"px"})},h(),this.unSubPixelFix=G(O,"resize",h))},getStyle:function(a){return this.style=d({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=
this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var h=new this.Element;h.init(this,a);return h},draw:A,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},getSpanWidth:function(a,h){var b=a.getBBox(!0).width;!L&&this.forExport&&(b=this.measureSpanWidth(h.firstChild.data,
a.styles));return b},applyEllipsis:function(a,h,b,w){var n=a.rotation,m=b,c,d=0,F=b.length,f=function(a){h.removeChild(h.firstChild);a&&h.appendChild(k.createTextNode(a))},y;a.rotation=0;m=this.getSpanWidth(a,h);if(y=m>w){for(;d<=F;)c=Math.ceil((d+F)/2),m=b.substring(0,c)+"\u2026",f(m),m=this.getSpanWidth(a,h),d===F?d=F+1:m>w?F=c-1:d=c;0===F&&f("")}a.rotation=n;return y},buildText:function(a){var b=a.element,w=this,n=w.forExport,m=H(a.textStr,"").toString(),c=-1!==m.indexOf("\x3c"),d=b.childNodes,
F,y,e,z,q=r(b,"x"),A=a.styles,x=a.textWidth,J=A&&A.lineHeight,l=A&&A.textOutline,P=A&&"ellipsis"===A.textOverflow,g=A&&"nowrap"===A.whiteSpace,K=A&&A.fontSize,I,v,p=d.length,A=x&&!a.added&&this.box,u=function(a){var n;n=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:K||w.style.fontSize||12;return J?h(J):w.fontMetrics(n,a.getAttribute("style")?a:b).h};I=[m,P,g,J,l,K,x].join();if(I!==a.textCache){for(a.textCache=I;p--;)b.removeChild(d[p]);c||l||P||x||-1!==m.indexOf(" ")?(F=/<.*class="([^"]+)".*>/,
y=/<.*style="([^"]+)".*>/,e=/<.*href="([^"]+)".*>/,A&&A.appendChild(b),m=c?m.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g):[m],m=C(m,function(a){return""!==a}),f(m,function(h,m){var c,d=0;h=h.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");c=h.split("|||");f(c,function(h){if(""!==
h||1===c.length){var f={},A=k.createElementNS(w.SVG_NS,"tspan"),H,J;F.test(h)&&(H=h.match(F)[1],r(A,"class",H));y.test(h)&&(J=h.match(y)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),r(A,"style",J));e.test(h)&&!n&&(r(A,"onclick",'location.href\x3d"'+h.match(e)[1]+'"'),t(A,{cursor:"pointer"}));h=(h.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==h){A.appendChild(k.createTextNode(h));d?f.dx=0:m&&null!==q&&(f.x=q);r(A,f);b.appendChild(A);!d&&v&&(!L&&n&&t(A,{display:"block"}),
r(A,"dy",u(A)));if(x){f=h.replace(/([^\^])-/g,"$1- ").split(" ");H=1<c.length||m||1<f.length&&!g;var l=[],C,R=u(A),K=a.rotation;for(P&&(z=w.applyEllipsis(a,A,h,x));!P&&H&&(f.length||l.length);)a.rotation=0,C=w.getSpanWidth(a,A),h=C>x,void 0===z&&(z=h),h&&1!==f.length?(A.removeChild(A.firstChild),l.unshift(f.pop())):(f=l,l=[],f.length&&!g&&(A=k.createElementNS(Q,"tspan"),r(A,{dy:R,x:q}),J&&r(A,"style",J),b.appendChild(A)),C>x&&(x=C)),f.length&&A.appendChild(k.createTextNode(f.join(" ").replace(/- /g,
"-")));a.rotation=K}d++}}});v=v||b.childNodes.length}),z&&a.attr("title",a.textStr),A&&A.removeChild(b),l&&a.applyTextOutline&&a.applyTextOutline(l)):b.appendChild(k.createTextNode(m.replace(/</g,"\x3c").replace(/>/g,"\x3e")))}},getContrast:function(a){a=p(a).rgba;return 510<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,h,b,w,n,m,c,f,e){var F=this.label(a,h,b,e,null,null,null,null,"button"),A=0;F.attr(y({padding:8,r:2},n));var k,z,L,q;n=y({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,
style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},n);k=n.style;delete n.style;m=y(n,{fill:"#e6e6e6"},m);z=m.style;delete m.style;c=y(n,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},c);L=c.style;delete c.style;f=y(n,{style:{color:"#cccccc"}},f);q=f.style;delete f.style;G(F.element,J?"mouseover":"mouseenter",function(){3!==A&&F.setState(1)});G(F.element,J?"mouseout":"mouseleave",function(){3!==A&&F.setState(A)});F.setState=function(a){1!==a&&(F.state=A=a);F.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+
["normal","hover","pressed","disabled"][a||0]);F.attr([n,m,c,f][a||0]).css([k,z,L,q][a||0])};F.attr(n).css(d({cursor:"default"},k));return F.on("click",function(a){3!==A&&w.call(F,a)})},crispLine:function(a,h){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-h%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+h%2/2);return a},path:function(a){var h={fill:"none"};I(a)?h.d=a:b(a)&&d(h,a);return this.createElement("path").attr(h)},circle:function(a,h,w){a=b(a)?a:{x:a,y:h,r:w};h=this.createElement("circle");h.xSetter=
h.ySetter=function(a,h,b){b.setAttribute("c"+h,a)};return h.attr(a)},arc:function(a,h,w,n,m,c){b(a)?(n=a,h=n.y,w=n.r,a=n.x):n={innerR:n,start:m,end:c};a=this.symbol("arc",a,h,w,w,n);a.r=w;return a},rect:function(a,h,w,n,m,c){m=b(a)?a.r:m;var d=this.createElement("rect");a=b(a)?a:void 0===a?{}:{x:a,y:h,width:Math.max(w,0),height:Math.max(n,0)};void 0!==c&&(a.strokeWidth=c,a=d.crisp(a));a.fill="none";m&&(a.r=m);d.rSetter=function(a,h,b){r(b,{rx:a,ry:a})};return d.attr(a)},setSize:function(a,h,b){var w=
this.alignedObjects,n=w.length;this.width=a;this.height=h;for(this.boxWrapper.animate({width:a,height:h},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:H(b,!0)?void 0:0});n--;)w[n].align()},g:function(a){var h=this.createElement("g");return a?h.attr({"class":"highcharts-"+a}):h},image:function(a,h,b,w,n){var m={preserveAspectRatio:"none"};1<arguments.length&&d(m,{x:h,y:b,width:w,height:n});m=this.createElement("image").attr(m);m.element.setAttributeNS?
m.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):m.element.setAttribute("hc-svg-href",a);return m},symbol:function(a,h,b,w,n,m){var c=this,y,F=/^url\((.*?)\)$/,e=F.test(a),A=!e&&(this.symbols[a]?a:"circle"),z=A&&this.symbols[A],L=u(h)&&z&&z.call(this.symbols,Math.round(h),Math.round(b),w,n,m),q,x;z?(y=this.path(L),y.attr("fill","none"),d(y,{symbolName:A,x:h,y:b,width:w,height:n}),m&&d(y,m)):e&&(q=a.match(F)[1],y=this.image(q),y.imgwidth=H(N[q]&&N[q].width,m&&m.width),y.imgheight=
H(N[q]&&N[q].height,m&&m.height),x=function(){y.attr({width:y.width,height:y.height})},f(["width","height"],function(a){y[a+"Setter"]=function(a,h){var b={},w=this["img"+h],n="width"===h?"translateX":"translateY";this[h]=a;u(w)&&(this.element&&this.element.setAttribute(h,w),this.alignByTranslate||(b[n]=((this[h]||0)-w)/2,this.attr(b)))}}),u(h)&&y.attr({x:h,y:b}),y.isImg=!0,u(y.imgwidth)&&u(y.imgheight)?x():(y.attr({width:0,height:0}),v("img",{onload:function(){var a=g[c.chartIndex];0===this.width&&
(t(this,{position:"absolute",top:"-999em"}),k.body.appendChild(this));N[q]={width:this.width,height:this.height};y.imgwidth=this.width;y.imgheight=this.height;y.element&&x();this.parentNode&&this.parentNode.removeChild(this);c.imgCount--;if(!c.imgCount&&a&&a.onload)a.onload()},src:q}),this.imgCount++));return y},symbols:{circle:function(a,h,b,w){return this.arc(a+b/2,h+w/2,b/2,w/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,h,b,w){return["M",a,h,"L",a+b,h,a+b,h+w,a,h+w,"Z"]},triangle:function(a,
h,b,w){return["M",a+b/2,h,"L",a+b,h+w,a,h+w,"Z"]},"triangle-down":function(a,h,b,w){return["M",a,h,"L",a+b,h,a+b/2,h+w,"Z"]},diamond:function(a,h,b,w){return["M",a+b/2,h,"L",a+b,h+w/2,a+b/2,h+w,a,h+w/2,"Z"]},arc:function(a,h,b,w,n){var m=n.start,c=n.r||b,d=n.r||w||b,f=n.end-.001;b=n.innerR;w=H(n.open,.001>Math.abs(n.end-n.start-2*Math.PI));var y=Math.cos(m),e=Math.sin(m),F=Math.cos(f),f=Math.sin(f);n=.001>n.end-m-Math.PI?0:1;c=["M",a+c*y,h+d*e,"A",c,d,0,n,1,a+c*F,h+d*f];u(b)&&c.push(w?"M":"L",a+b*
F,h+b*f,"A",b,b,0,n,0,a+b*y,h+b*e);c.push(w?"":"Z");return c},callout:function(a,h,b,w,n){var m=Math.min(n&&n.r||0,b,w),c=m+6,d=n&&n.anchorX;n=n&&n.anchorY;var f;f=["M",a+m,h,"L",a+b-m,h,"C",a+b,h,a+b,h,a+b,h+m,"L",a+b,h+w-m,"C",a+b,h+w,a+b,h+w,a+b-m,h+w,"L",a+m,h+w,"C",a,h+w,a,h+w,a,h+w-m,"L",a,h+m,"C",a,h,a,h,a+m,h];d&&d>b?n>h+c&&n<h+w-c?f.splice(13,3,"L",a+b,n-6,a+b+6,n,a+b,n+6,a+b,h+w-m):f.splice(13,3,"L",a+b,w/2,d,n,a+b,w/2,a+b,h+w-m):d&&0>d?n>h+c&&n<h+w-c?f.splice(33,3,"L",a,n+6,a-6,n,a,n-6,
a,h+m):f.splice(33,3,"L",a,w/2,d,n,a,w/2,a,h+m):n&&n>w&&d>a+c&&d<a+b-c?f.splice(23,3,"L",d+6,h+w,d,h+w+6,d-6,h+w,a+m,h+w):n&&0>n&&d>a+c&&d<a+b-c&&f.splice(3,3,"L",d-6,h,d,h-6,d+6,h,b-m,h);return f}},clipRect:function(h,b,w,n){var m=a.uniqueKey(),c=this.createElement("clipPath").attr({id:m}).add(this.defs);h=this.rect(h,b,w,n,0).add(c);h.id=m;h.clipPath=c;h.count=0;return h},text:function(a,h,b,w){var n=!L&&this.forExport,m={};if(w&&(this.allowHTML||!this.forExport))return this.html(a,h,b);m.x=Math.round(h||
0);b&&(m.y=Math.round(b));if(a||0===a)m.text=a;a=this.createElement("text").attr(m);n&&a.css({position:"absolute"});w||(a.xSetter=function(a,h,b){var w=b.getElementsByTagName("tspan"),n,m=b.getAttribute(h),c;for(c=0;c<w.length;c++)n=w[c],n.getAttribute(h)===m&&n.setAttribute(h,a);b.setAttribute(h,a)});return a},fontMetrics:function(a,b){a=a||b&&b.style&&b.style.fontSize||this.style&&this.style.fontSize;a=/px/.test(a)?h(a):/em/.test(a)?parseFloat(a)*(b?this.fontMetrics(null,b.parentNode).f:16):12;
b=24>a?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,h,b){var w=a;h&&b&&(w=Math.max(w*Math.cos(h*l),4));return{x:-a/3*Math.sin(h*l),y:w}},label:function(h,b,n,m,c,e,A,k,z){var L=this,q=L.g("button"!==z&&"label"),H=q.text=L.text("",0,0,A).attr({zIndex:1}),x,F,J=0,l=3,C=0,P,g,K,I,t,Q={},v,p,r=/^url\((.*?)\)$/.test(m),R=r,N,U,T,O;z&&q.addClass("highcharts-"+z);R=r;N=function(){return(v||0)%2/2};U=function(){var a=H.element.style,h={};F=(void 0===P||void 0===g||t)&&u(H.textStr)&&
H.getBBox();q.width=(P||F.width||0)+2*l+C;q.height=(g||F.height||0)+2*l;p=l+L.fontMetrics(a&&a.fontSize,H).b;R&&(x||(q.box=x=L.symbols[m]||r?L.symbol(m):L.rect(),x.addClass(("button"===z?"":"highcharts-label-box")+(z?" highcharts-"+z+"-box":"")),x.add(q),a=N(),h.x=a,h.y=(k?-p:0)+a),h.width=Math.round(q.width),h.height=Math.round(q.height),x.attr(d(h,Q)),Q={})};T=function(){var a=C+l,h;h=k?0:p;u(P)&&F&&("center"===t||"right"===t)&&(a+={center:.5,right:1}[t]*(P-F.width));if(a!==H.x||h!==H.y)H.attr("x",
a),void 0!==h&&H.attr("y",h);H.x=a;H.y=h};O=function(a,h){x?x.attr(a,h):Q[a]=h};q.onAdd=function(){H.add(q);q.attr({text:h||0===h?h:"",x:b,y:n});x&&u(c)&&q.attr({anchorX:c,anchorY:e})};q.widthSetter=function(h){P=a.isNumber(h)?h:null};q.heightSetter=function(a){g=a};q["text-alignSetter"]=function(a){t=a};q.paddingSetter=function(a){u(a)&&a!==l&&(l=q.padding=a,T())};q.paddingLeftSetter=function(a){u(a)&&a!==C&&(C=a,T())};q.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,F&&q.attr({x:K}))};
q.textSetter=function(a){void 0!==a&&H.textSetter(a);U();T()};q["stroke-widthSetter"]=function(a,h){a&&(R=!0);v=this["stroke-width"]=a;O(h,a)};q.strokeSetter=q.fillSetter=q.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(R=!0),q[h]=a);O(h,a)};q.anchorXSetter=function(a,h){c=q.anchorX=a;O(h,Math.round(a)-N()-K)};q.anchorYSetter=function(a,h){e=q.anchorY=a;O(h,a-I)};q.xSetter=function(a){q.x=a;J&&(a-=J*((P||F.width)+2*l));K=Math.round(a);q.attr("translateX",K)};q.ySetter=function(a){I=q.y=Math.round(a);
q.attr("translateY",I)};var B=q.css;return d(q,{css:function(a){if(a){var h={};a=y(a);f(q.textProps,function(b){void 0!==a[b]&&(h[b]=a[b],delete a[b])});H.css(h)}return B.call(q,a)},getBBox:function(){return{width:F.width+2*l,height:F.height+2*l,x:F.x-l,y:F.y-l}},shadow:function(a){a&&(U(),x&&x.shadow(a));return q},destroy:function(){w(q.element,"mouseenter");w(q.element,"mouseleave");H&&(H=H.destroy());x&&(x=x.destroy());D.prototype.destroy.call(q);q=L=U=T=O=null}})}});a.Renderer=B})(M);(function(a){var D=
a.attr,B=a.createElement,G=a.css,E=a.defined,r=a.each,g=a.extend,p=a.isFirefox,t=a.isMS,v=a.isWebKit,u=a.pInt,l=a.SVGRenderer,e=a.win,k=a.wrap;g(a.SVGElement.prototype,{htmlCss:function(a){var d=this.element;if(d=a&&"SPAN"===d.tagName&&a.width)delete a.width,this.textWidth=d,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=g(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position=
"absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,d=this.element,e=this.translateX||0,k=this.translateY||0,c=this.x||0,q=this.y||0,l=this.textAlign||"left",m={left:0,center:.5,right:1}[l],J=this.styles;G(d,{marginLeft:e,marginTop:k});this.shadows&&r(this.shadows,function(a){G(a,{marginLeft:e+1,marginTop:k+1})});this.inverted&&r(d.childNodes,function(b){a.invertChild(b,d)});if("SPAN"===d.tagName){var b=
this.rotation,z=u(this.textWidth),g=J&&J.whiteSpace,y=[b,l,d.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(J=a.fontMetrics(d.style.fontSize).b,E(b)&&this.setSpanRotation(b,m,J),G(d,{width:"",whiteSpace:g||"nowrap"}),d.offsetWidth>z&&/[ \-]/.test(d.textContent||d.innerText)&&G(d,{width:z+"px",display:"block",whiteSpace:g||"normal"}),this.getSpanCorrection(d.offsetWidth,J,m,b,l));G(d,{left:c+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});v&&(J=d.offsetHeight);this.cTT=y}}else this.alignOnAdd=
!0},setSpanRotation:function(a,d,k){var f={},c=t?"-ms-transform":v?"-webkit-transform":p?"MozTransform":e.opera?"-o-transform":"";f[c]=f.transform="rotate("+a+"deg)";f[c+(p?"Origin":"-origin")]=f.transformOrigin=100*d+"% "+k+"px";G(this.element,f)},getSpanCorrection:function(a,d,e){this.xCorr=-a*e;this.yCorr=-d}});g(l.prototype,{html:function(a,d,e){var f=this.createElement("span"),c=f.element,q=f.renderer,x=q.isSVG,m=function(a,b){r(["opacity","visibility"],function(m){k(a,m+"Setter",function(a,
m,c,n){a.call(this,m,c,n);b[c]=m})})};f.textSetter=function(a){a!==c.innerHTML&&delete this.bBox;c.innerHTML=this.textStr=a;f.htmlUpdateTransform()};x&&m(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(a,b){"align"===b&&(b="textAlign");f[b]=a;f.htmlUpdateTransform()};f.attr({text:a,x:Math.round(d),y:Math.round(e)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});c.style.whiteSpace="nowrap";f.css=f.htmlCss;x&&(f.add=function(a){var b,
d=q.box.parentNode,e=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)e.push(a),a=a.parentGroup;r(e.reverse(),function(a){var c,n=D(a.element,"class");n&&(n={className:n});b=a.div=a.div||B("div",n,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},b||d);c=b.style;g(a,{classSetter:function(a){this.element.setAttribute("class",a);b.className=a},on:function(){e[0].div&&f.on.apply({element:e[0].div},
arguments);return a},translateXSetter:function(b,h){c.left=b+"px";a[h]=b;a.doTransform=!0},translateYSetter:function(b,h){c.top=b+"px";a[h]=b;a.doTransform=!0}});m(a,c)})}}else b=d;b.appendChild(c);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f}})})(M);(function(a){var D,B,G=a.createElement,E=a.css,r=a.defined,g=a.deg2rad,p=a.discardElement,t=a.doc,v=a.each,u=a.erase,l=a.extend;D=a.extendClass;var e=a.isArray,k=a.isNumber,f=a.isObject,d=a.merge;B=a.noop;var x=a.pick,C=a.pInt,
c=a.SVGElement,q=a.SVGRenderer,I=a.win;a.svg||(B={docMode8:t&&8===t.documentMode,init:function(a,c){var b=["\x3c",c,' filled\x3d"f" stroked\x3d"f"'],m=["position: ","absolute",";"],d="div"===c;("shape"===c||d)&&m.push("left:0;top:0;width:1px;height:1px;");m.push("visibility: ",d?"hidden":"visible");b.push(' style\x3d"',m.join(""),'"/\x3e');c&&(b=d||"span"===c||"img"===c?b.join(""):a.prepVML(b),this.element=G(b));this.renderer=a},add:function(a){var m=this.renderer,b=this.element,c=m.box,d=a&&a.inverted,
c=a?a.element||a:c;a&&(this.parentGroup=a);d&&m.invertChild(b,c);c.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:c.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,c=Math.cos(a*g),b=Math.sin(a*g);E(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",c,", M12\x3d",-b,", M21\x3d",b,", M22\x3d",
c,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,c,b,d,f){var m=d?Math.cos(d*g):1,e=d?Math.sin(d*g):0,n=x(this.elemHeight,this.element.offsetHeight),q;this.xCorr=0>m&&-a;this.yCorr=0>e&&-n;q=0>m*e;this.xCorr+=e*c*(q?1-b:b);this.yCorr-=m*c*(d?q?b:1-b:1);f&&"left"!==f&&(this.xCorr-=a*b*(0>m?-1:1),d&&(this.yCorr-=n*b*(0>e?-1:1)),E(this.element,{textAlign:f}))},pathToVML:function(a){for(var m=a.length,b=[];m--;)k(a[m])?b[m]=Math.round(10*a[m])-5:"Z"===a[m]?b[m]="x":
(b[m]=a[m],!a.isArc||"wa"!==a[m]&&"at"!==a[m]||(b[m+5]===b[m+7]&&(b[m+7]+=a[m+7]>a[m+5]?1:-1),b[m+6]===b[m+8]&&(b[m+8]+=a[m+8]>a[m+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var m=this,b;a?(b=a.members,u(b,m),b.push(m),m.destroyClip=function(){u(b,m)},a=a.getCSS(m)):(m.destroyClip&&m.destroyClip(),a={clip:m.docMode8?"inherit":"rect(auto)"});return m.css(a)},css:c.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&p(a)},destroy:function(){this.destroyClip&&this.destroyClip();return c.prototype.destroy.apply(this)},
on:function(a,c){this.element["on"+a]=function(){var a=I.event;a.target=a.srcElement;c(a)};return this},cutOffPath:function(a,c){var b;a=a.split(/[ ,]/);b=a.length;if(9===b||11===b)a[b-4]=a[b-2]=C(a[b-2])-10*c;return a.join(" ")},shadow:function(a,c,b){var m=[],d,f=this.element,e=this.renderer,n,q=f.style,h,w=f.path,k,L,l,J;w&&"string"!==typeof w.value&&(w="x");L=w;if(a){l=x(a.width,3);J=(a.opacity||.15)/l;for(d=1;3>=d;d++)k=2*l+1-2*d,b&&(L=this.cutOffPath(w.value,k+.5)),h=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',
k,'" filled\x3d"false" path\x3d"',L,'" coordsize\x3d"10 10" style\x3d"',f.style.cssText,'" /\x3e'],n=G(e.prepVML(h),null,{left:C(q.left)+x(a.offsetX,1),top:C(q.top)+x(a.offsetY,1)}),b&&(n.cutOff=k+1),h=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',J*d,'"/\x3e'],G(e.prepVML(h),null,null,n),c?c.element.appendChild(n):f.parentNode.insertBefore(n,f),m.push(n);this.shadows=m}return this},updateShadows:B,setAttr:function(a,c){this.docMode8?this.element[a]=c:this.element.setAttribute(a,c)},
classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,c,b){(b.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,b))[c]=a||"solid";this[c]=a},dSetter:function(a,c,b){var m=this.shadows;a=a||[];this.d=a.join&&a.join(" ");b.path=a=this.pathToVML(a);if(m)for(b=m.length;b--;)m[b].path=m[b].cutOff?this.cutOffPath(a,m[b].cutOff):a;this.setAttr(c,a)},fillSetter:function(a,c,b){var m=b.nodeName;"SPAN"===m?b.style.color=a:"IMG"!==
m&&(b.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,b,c,this)))},"fill-opacitySetter":function(a,c,b){G(this.renderer.prepVML(["\x3c",c.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,b)},opacitySetter:B,rotationSetter:function(a,c,b){b=b.style;this[c]=b[c]=a;b.left=-Math.round(Math.sin(a*g)+1)+"px";b.top=Math.round(Math.cos(a*g))+"px"},strokeSetter:function(a,c,b){this.setAttr("strokecolor",this.renderer.color(a,b,c,this))},"stroke-widthSetter":function(a,c,b){b.stroked=!!a;
this[c]=a;k(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,c){this.setAttr(c,a)},visibilitySetter:function(a,c,b){"inherit"===a&&(a="visible");this.shadows&&v(this.shadows,function(b){b.style[c]=a});"DIV"===b.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(b.style[c]=a?"visible":"hidden"),c="top");b.style[c]=a},xSetter:function(a,c,b){this[c]=a;"x"===c?c="left":"y"===c&&(c="top");this.updateClipping?(this[c]=a,this.updateClipping()):b.style[c]=a},zIndexSetter:function(a,
c,b){b.style[c]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(c,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1<I.navigator.userAgent.indexOf("MSIE 8.0"),init:function(a,c,b){var m,d;this.alignedObjects=[];m=this.createElement("div").css({position:"relative"});d=m.element;a.appendChild(m.element);this.isVML=!0;this.box=d;this.boxWrapper=m;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,
b,!1);if(!t.namespaces.hcv){t.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{t.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(y){t.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\