  



/* jqplot 1.0.9 | (c) 2009-2016 Chris Leonello | jplot.com
   jsDate | (c) 2010-2016 Chris Leonello
 */
!function(a){function b(b){a.jqplot.ElemContainer.call(this),this.name=b,this._series=[],this.show=!1,this.tickRenderer=a.jqplot.AxisTickRenderer,this.tickOptions={},this.labelRenderer=a.jqplot.AxisLabelRenderer,this.labelOptions={},this.label=null,this.showLabel=!0,this.min=null,this.max=null,this.autoscale=!1,this.pad=1.2,this.padMax=null,this.padMin=null,this.ticks=[],this.numberTicks,this.tickInterval,this.renderer=a.jqplot.LinearAxisRenderer,this.rendererOptions={},this.showTicks=!0,this.showTickMarks=!0,this.showMinorTicks=!0,this.drawMajorGridlines=!0,this.drawMinorGridlines=!1,this.drawMajorTickMarks=!0,this.drawMinorTickMarks=!0,this.useSeriesColor=!1,this.borderWidth=null,this.borderColor=null,this.scaleToHiddenSeries=!1,this._dataBounds={min:null,max:null},this._intervalStats=[],this._offsets={min:null,max:null},this._ticks=[],this._label=null,this.syncTicks=null,this.tickSpacing=75,this._min=null,this._max=null,this._tickInterval=null,this._numberTicks=null,this.__ticks=null,this._options={}}function c(b){a.jqplot.ElemContainer.call(this),this.show=!1,this.location="ne",this.labels=[],this.showLabels=!0,this.showSwatches=!0,this.placement="insideGrid",this.xoffset=0,this.yoffset=0,this.border,this.background,this.textColor,this.fontFamily,this.fontSize,this.rowSpacing="0.5em",this.renderer=a.jqplot.TableLegendRenderer,this.rendererOptions={},this.preDraw=!1,this.marginTop=null,this.marginRight=null,this.marginBottom=null,this.marginLeft=null,this.escapeHtml=!1,this._series=[],a.extend(!0,this,b)}function d(b){a.jqplot.ElemContainer.call(this),this.text=b,this.show=!0,this.fontFamily,this.fontSize,this.textAlign,this.textColor,this.renderer=a.jqplot.DivTitleRenderer,this.rendererOptions={},this.escapeHtml=!1}function e(b){b=b||{},a.jqplot.ElemContainer.call(this),this.show=!0,this.xaxis="xaxis",this._xaxis,this.yaxis="yaxis",this._yaxis,this.gridBorderWidth=2,this.renderer=a.jqplot.LineRenderer,this.rendererOptions={},this.data=[],this.gridData=[],this.label="",this.showLabel=!0,this.color,this.negativeColor,this.lineWidth=2.5,this.lineJoin="round",this.lineCap="round",this.linePattern="solid",this.shadow=!0,this.shadowAngle=45,this.shadowOffset=1.25,this.shadowDepth=3,this.shadowAlpha="0.1",this.breakOnNull=!1,this.markerRenderer=a.jqplot.MarkerRenderer,this.markerOptions={},this.showLine=!0,this.showMarker=!0,this.index,this.fill=!1,this.fillColor,this.fillAlpha,this.fillAndStroke=!1,this.disableStack=!1,this._stack=!1,this.neighborThreshold=4,this.fillToZero=!1,this.fillToValue=0,this.fillAxis="y",this.useNegativeColors=!0,this._stackData=[],this._plotData=[],this._plotValues={x:[],y:[]},this._intervals={x:{},y:{}},this._prevPlotData=[],this._prevGridData=[],this._stackAxis="y",this._primaryAxis="_xaxis",this.canvas=new a.jqplot.GenericCanvas,this.shadowCanvas=new a.jqplot.GenericCanvas,this.plugins={},this._sumy=0,this._sumx=0,this._type="",this.step=!1}function f(){a.jqplot.ElemContainer.call(this),this.drawGridlines=!0,this.gridLineColor="#cccccc",this.gridLineWidth=1,this.background="#fffdf6",this.borderColor="#999999",this.borderWidth=2,this.drawBorder=!0,this.shadow=!0,this.shadowAngle=45,this.shadowOffset=1.5,this.shadowWidth=3,this.shadowDepth=3,this.shadowColor=null,this.shadowAlpha="0.07",this._left,this._top,this._right,this._bottom,this._width,this._height,this._axes=[],this.renderer=a.jqplot.CanvasGridRenderer,this.rendererOptions={},this._offsets={top:null,bottom:null,left:null,right:null}}function g(){function h(a){for(var b,c=0;c<a.length;c++)for(var d,e=[a[c].data,a[c]._stackData,a[c]._plotData,a[c]._prevPlotData],f=0;4>f;f++)if(d=!0,b=e[f],"x"==a[c]._stackAxis){for(var g=0;g<b.length;g++)if("number"!=typeof b[g][1]){d=!1;break}d&&b.sort(function(a,b){return a[1]-b[1]})}else{for(var g=0;g<b.length;g++)if("number"!=typeof b[g][0]){d=!1;break}d&&b.sort(function(a,b){return a[0]-b[0]})}}function i(a){var b,c,d=a.data.plot,e=d.eventCanvas._elem.offset(),f={x:a.pageX-e.left,y:a.pageY-e.top},g={xaxis:null,yaxis:null,x2axis:null,y2axis:null,y3axis:null,y4axis:null,y5axis:null,y6axis:null,y7axis:null,y8axis:null,y9axis:null,yMidAxis:null},h=["xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis","yMidAxis"],i=d.axes;for(b=11;b>0;b--)c=h[b-1],i[c].show&&(g[c]=i[c].series_p2u(f[c.charAt(0)]));return{offsets:e,gridPos:f,dataPos:g}}function j(b,c){function d(a,b,c){var d=(b[1]-c[1])/(b[0]-c[0]),e=b[1]-d*b[0],f=a+b[1];return[(f-e)/d,f]}var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x=c.series;for(g=c.seriesStack.length-1;g>=0;g--)switch(e=c.seriesStack[g],h=x[e],u=h._highlightThreshold,h.renderer.constructor){case a.jqplot.BarRenderer:for(j=b.x,k=b.y,f=0;f<h._barPoints.length;f++)if(t=h._barPoints[f],s=h.gridData[f],j>t[0][0]&&j<t[2][0]&&(k>t[2][1]&&k<t[0][1]||k<t[2][1]&&k>t[0][1]))return{seriesIndex:h.index,pointIndex:f,gridData:s,data:h.data[f],points:h._barPoints[f]};break;case a.jqplot.PyramidRenderer:for(j=b.x,k=b.y,f=0;f<h._barPoints.length;f++)if(t=h._barPoints[f],s=h.gridData[f],j>t[0][0]+u[0][0]&&j<t[2][0]+u[2][0]&&k>t[2][1]&&k<t[0][1])return{seriesIndex:h.index,pointIndex:f,gridData:s,data:h.data[f],points:h._barPoints[f]};break;case a.jqplot.DonutRenderer:if(n=h.startAngle/180*Math.PI,j=b.x-h._center[0],k=b.y-h._center[1],i=Math.sqrt(Math.pow(j,2)+Math.pow(k,2)),j>0&&-k>=0?l=2*Math.PI-Math.atan(-k/j):j>0&&0>-k?l=-Math.atan(-k/j):0>j?l=Math.PI-Math.atan(-k/j):0==j&&-k>0?l=3*Math.PI/2:0==j&&0>-k?l=Math.PI/2:0==j&&0==k&&(l=0),n&&(l-=n,0>l?l+=2*Math.PI:l>2*Math.PI&&(l-=2*Math.PI)),m=h.sliceMargin/180*Math.PI,i<h._radius&&i>h._innerRadius)for(f=0;f<h.gridData.length;f++)if(o=f>0?h.gridData[f-1][1]+m:m,p=h.gridData[f][1],l>o&&p>l)return{seriesIndex:h.index,pointIndex:f,gridData:[b.x,b.y],data:h.data[f]};break;case a.jqplot.PieRenderer:if(n=h.startAngle/180*Math.PI,j=b.x-h._center[0],k=b.y-h._center[1],i=Math.sqrt(Math.pow(j,2)+Math.pow(k,2)),j>0&&-k>=0?l=2*Math.PI-Math.atan(-k/j):j>0&&0>-k?l=-Math.atan(-k/j):0>j?l=Math.PI-Math.atan(-k/j):0==j&&-k>0?l=3*Math.PI/2:0==j&&0>-k?l=Math.PI/2:0==j&&0==k&&(l=0),n&&(l-=n,0>l?l+=2*Math.PI:l>2*Math.PI&&(l-=2*Math.PI)),m=h.sliceMargin/180*Math.PI,i<h._radius)for(f=0;f<h.gridData.length;f++)if(o=f>0?h.gridData[f-1][1]+m:m,p=h.gridData[f][1],l>o&&p>l)return{seriesIndex:h.index,pointIndex:f,gridData:[b.x,b.y],data:h.data[f]};break;case a.jqplot.BubbleRenderer:j=b.x,k=b.y;var y=null;if(h.show){for(var f=0;f<h.gridData.length;f++)s=h.gridData[f],r=Math.sqrt((j-s[0])*(j-s[0])+(k-s[1])*(k-s[1])),r<=s[2]&&(q>=r||null==q)&&(q=r,y={seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]});if(null!=y)return y}break;case a.jqplot.FunnelRenderer:j=b.x,k=b.y;var z,A,B,C=h._vertices,D=C[0],E=C[C.length-1];for(z=d(k,D[0],E[3]),A=d(k,D[1],E[2]),f=0;f<C.length;f++)if(B=C[f],k>=B[0][1]&&k<=B[3][1]&&j>=z[0]&&j<=A[0])return{seriesIndex:h.index,pointIndex:f,gridData:null,data:h.data[f]};break;case a.jqplot.LineRenderer:if(j=b.x,k=b.y,i=h.renderer,h.show){if(!(!(h.fill||h.renderer.bands.show&&h.renderer.bands.fill)||c.plugins.highlighter&&c.plugins.highlighter.show)){var F=!1;if(j>h._boundingBox[0][0]&&j<h._boundingBox[1][0]&&k>h._boundingBox[1][1]&&k<h._boundingBox[0][1])for(var G,H=h._areaPoints.length,f=H-1,G=0;H>G;G++){var I=[h._areaPoints[G][0],h._areaPoints[G][1]],J=[h._areaPoints[f][0],h._areaPoints[f][1]];(I[1]<k&&J[1]>=k||J[1]<k&&I[1]>=k)&&I[0]+(k-I[1])/(J[1]-I[1])*(J[0]-I[0])<j&&(F=!F),f=G}if(F)return{seriesIndex:e,pointIndex:null,gridData:h.gridData,data:h.data,points:h._areaPoints};break}w=h.markerRenderer.size/2+h.neighborThreshold,v=w>0?w:0;for(var f=0;f<h.gridData.length;f++)if(s=h.gridData[f],i.constructor==a.jqplot.OHLCRenderer)if(i.candleStick){var K=h._yaxis.series_u2p;if(j>=s[0]-i._bodyWidth/2&&j<=s[0]+i._bodyWidth/2&&k>=K(h.data[f][2])&&k<=K(h.data[f][3]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else if(i.hlc){var K=h._yaxis.series_u2p;if(j>=s[0]-i._tickLength&&j<=s[0]+i._tickLength&&k>=K(h.data[f][1])&&k<=K(h.data[f][2]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else{var K=h._yaxis.series_u2p;if(j>=s[0]-i._tickLength&&j<=s[0]+i._tickLength&&k>=K(h.data[f][2])&&k<=K(h.data[f][3]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else if(null!=s[0]&&null!=s[1]&&(r=Math.sqrt((j-s[0])*(j-s[0])+(k-s[1])*(k-s[1])),v>=r&&(q>=r||null==q)))return q=r,{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}break;default:if(j=b.x,k=b.y,i=h.renderer,h.show){w=h.markerRenderer.size/2+h.neighborThreshold,v=w>0?w:0;for(var f=0;f<h.gridData.length;f++)if(s=h.gridData[f],i.constructor==a.jqplot.OHLCRenderer)if(i.candleStick){var K=h._yaxis.series_u2p;if(j>=s[0]-i._bodyWidth/2&&j<=s[0]+i._bodyWidth/2&&k>=K(h.data[f][2])&&k<=K(h.data[f][3]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else if(i.hlc){var K=h._yaxis.series_u2p;if(j>=s[0]-i._tickLength&&j<=s[0]+i._tickLength&&k>=K(h.data[f][1])&&k<=K(h.data[f][2]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else{var K=h._yaxis.series_u2p;if(j>=s[0]-i._tickLength&&j<=s[0]+i._tickLength&&k>=K(h.data[f][2])&&k<=K(h.data[f][3]))return{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}else if(r=Math.sqrt((j-s[0])*(j-s[0])+(k-s[1])*(k-s[1])),v>=r&&(q>=r||null==q))return q=r,{seriesIndex:e,pointIndex:f,gridData:s,data:h.data[f]}}}return null}this.animate=!1,this.animateReplot=!1,this.axes={xaxis:new b("xaxis"),yaxis:new b("yaxis"),x2axis:new b("x2axis"),y2axis:new b("y2axis"),y3axis:new b("y3axis"),y4axis:new b("y4axis"),y5axis:new b("y5axis"),y6axis:new b("y6axis"),y7axis:new b("y7axis"),y8axis:new b("y8axis"),y9axis:new b("y9axis"),yMidAxis:new b("yMidAxis")},this.baseCanvas=new a.jqplot.GenericCanvas,this.captureRightClick=!1,this.data=[],this.dataRenderer,this.dataRendererOptions,this.defaults={axesDefaults:{},axes:{xaxis:{},yaxis:{},x2axis:{},y2axis:{},y3axis:{},y4axis:{},y5axis:{},y6axis:{},y7axis:{},y8axis:{},y9axis:{},yMidAxis:{}},seriesDefaults:{},series:[]},this.defaultAxisStart=1,this.drawIfHidden=!1,this.eventCanvas=new a.jqplot.GenericCanvas,this.fillBetween={series1:null,series2:null,color:null,baseSeries:0,fill:!0},this.fontFamily,this.fontSize,this.grid=new f,this.legend=new c,this.noDataIndicator={show:!1,indicator:"Loading Data...",axes:{xaxis:{min:0,max:10,tickInterval:2,show:!0},yaxis:{min:0,max:12,tickInterval:3,show:!0}}},this.negativeSeriesColors=a.jqplot.config.defaultNegativeColors,this.options={},this.previousSeriesStack=[],this.plugins={},this.series=[],this.seriesStack=[],this.seriesColors=a.jqplot.config.defaultColors,this.sortData=!0,this.stackSeries=!1,this.syncXTicks=!0,this.syncYTicks=!0,this.target=null,this.targetId=null,this.textColor,this.title=new d,this._drawCount=0,this._sumy=0,this._sumx=0,this._stackData=[],this._plotData=[],this._width=null,this._height=null,this._plotDimensions={height:null,width:null},this._gridPadding={top:null,right:null,bottom:null,left:null},this._defaultGridPadding={top:10,right:10,bottom:23,left:10},this._addDomReference=a.jqplot.config.addDomReference,this.preInitHooks=new a.jqplot.HooksManager,this.postInitHooks=new a.jqplot.HooksManager,this.preParseOptionsHooks=new a.jqplot.HooksManager,this.postParseOptionsHooks=new a.jqplot.HooksManager,this.preDrawHooks=new a.jqplot.HooksManager,this.postDrawHooks=new a.jqplot.HooksManager,this.preDrawSeriesHooks=new a.jqplot.HooksManager,this.postDrawSeriesHooks=new a.jqplot.HooksManager,this.preDrawLegendHooks=new a.jqplot.HooksManager,this.addLegendRowHooks=new a.jqplot.HooksManager,this.preSeriesInitHooks=new a.jqplot.HooksManager,this.postSeriesInitHooks=new a.jqplot.HooksManager,this.preParseSeriesOptionsHooks=new a.jqplot.HooksManager,this.postParseSeriesOptionsHooks=new a.jqplot.HooksManager,this.eventListenerHooks=new a.jqplot.EventListenerManager,this.preDrawSeriesShadowHooks=new a.jqplot.HooksManager,this.postDrawSeriesShadowHooks=new a.jqplot.HooksManager,this.colorGenerator=new a.jqplot.ColorGenerator,this.negativeColorGenerator=new a.jqplot.ColorGenerator,this.canvasManager=new a.jqplot.CanvasManager,this.themeEngine=new a.jqplot.ThemeEngine;this.init=function(c,d,e){e=e||{};for(var f=0;f<a.jqplot.preInitHooks.length;f++)a.jqplot.preInitHooks[f].call(this,c,d,e);for(var f=0;f<this.preInitHooks.hooks.length;f++)this.preInitHooks.hooks[f].call(this,c,d,e);if(this.targetId="#"+c,this.target=a("#"+c),this._addDomReference&&this.target.data("jqplot",this),this.target.removeClass("jqplot-error"),!this.target.get(0))throw new Error("No plot target specified");if("static"==this.target.css("position")&&this.target.css("position","relative"),this.target.hasClass("jqplot-target")||this.target.addClass("jqplot-target"),this.target.height())this._height=g=this.target.height();else{var g;g=e&&e.height?parseInt(e.height,10):this.target.attr("data-height")?parseInt(this.target.attr("data-height"),10):parseInt(a.jqplot.config.defaultHeight,10),this._height=g,this.target.css("height",g+"px")}if(this.target.width())this._width=i=this.target.width();else{var i;i=e&&e.width?parseInt(e.width,10):this.target.attr("data-width")?parseInt(this.target.attr("data-width"),10):parseInt(a.jqplot.config.defaultWidth,10),this._width=i,this.target.css("width",i+"px")}for(var f=0,j=G.length;j>f;f++)this.axes[G[f]]=new b(G[f]);if(this._plotDimensions.height=this._height,this._plotDimensions.width=this._width,this.grid._plotDimensions=this._plotDimensions,this.title._plotDimensions=this._plotDimensions,this.baseCanvas._plotDimensions=this._plotDimensions,this.eventCanvas._plotDimensions=this._plotDimensions,this.legend._plotDimensions=this._plotDimensions,this._height<=0||this._width<=0||!this._height||!this._width)throw new Error("Canvas dimension not set");if(e.dataRenderer&&a.isFunction(e.dataRenderer)&&(e.dataRendererOptions&&(this.dataRendererOptions=e.dataRendererOptions),this.dataRenderer=e.dataRenderer,d=this.dataRenderer(d,this,this.dataRendererOptions)),e.noDataIndicator&&a.isPlainObject(e.noDataIndicator)&&a.extend(!0,this.noDataIndicator,e.noDataIndicator),null==d||0==a.isArray(d)||0==d.length||0==a.isArray(d[0])||0==d[0].length){if(0==this.noDataIndicator.show)throw new Error("No data specified");for(var k in this.noDataIndicator.axes)for(var l in this.noDataIndicator.axes[k])this.axes[k][l]=this.noDataIndicator.axes[k][l];this.postDrawHooks.add(function(){var b=this.eventCanvas.getHeight(),c=this.eventCanvas.getWidth(),d=a('<div class="jqplot-noData-container" style="position:absolute;"></div>');this.target.append(d),d.height(b),d.width(c),d.css("top",this.eventCanvas._offsets.top),d.css("left",this.eventCanvas._offsets.left);var e=a('<div class="jqplot-noData-contents" style="text-align:center; position:relative; margin-left:auto; margin-right:auto;"></div>');d.append(e),e.html(this.noDataIndicator.indicator);var f=e.height(),g=e.width();e.height(f),e.width(g),e.css("top",(b-f)/2+"px")})}this.data=a.extend(!0,[],d),this.parseOptions(e),this.textColor&&this.target.css("color",this.textColor),this.fontFamily&&this.target.css("font-family",this.fontFamily),this.fontSize&&this.target.css("font-size",this.fontSize),this.title.init(),this.legend.init(),this._sumy=0,this._sumx=0,this.computePlotData();for(var f=0;f<this.series.length;f++){this.seriesStack.push(f),this.previousSeriesStack.push(f),this.series[f].shadowCanvas._plotDimensions=this._plotDimensions,this.series[f].canvas._plotDimensions=this._plotDimensions;for(var m=0;m<a.jqplot.preSeriesInitHooks.length;m++)a.jqplot.preSeriesInitHooks[m].call(this.series[f],c,this.data,this.options.seriesDefaults,this.options.series[f],this);for(var m=0;m<this.preSeriesInitHooks.hooks.length;m++)this.preSeriesInitHooks.hooks[m].call(this.series[f],c,this.data,this.options.seriesDefaults,this.options.series[f],this);this.series[f]._plotDimensions=this._plotDimensions,this.series[f].init(f,this.grid.borderWidth,this);for(var m=0;m<a.jqplot.postSeriesInitHooks.length;m++)a.jqplot.postSeriesInitHooks[m].call(this.series[f],c,this.data,this.options.seriesDefaults,this.options.series[f],this);for(var m=0;m<this.postSeriesInitHooks.hooks.length;m++)this.postSeriesInitHooks.hooks[m].call(this.series[f],c,this.data,this.options.seriesDefaults,this.options.series[f],this);this._sumy+=this.series[f]._sumy,this._sumx+=this.series[f]._sumx}for(var n,o,f=0,j=G.length;j>f;f++)n=G[f],o=this.axes[n],o._plotDimensions=this._plotDimensions,o.init(),null==this.axes[n].borderColor&&("x"!==n.charAt(0)&&o.useSeriesColor===!0&&o.show?o.borderColor=o._series[0].color:o.borderColor=this.grid.borderColor);this.sortData&&h(this.series),this.grid.init(),this.grid._axes=this.axes,this.legend._series=this.series;for(var f=0;f<a.jqplot.postInitHooks.length;f++)a.jqplot.postInitHooks[f].call(this,c,this.data,e);for(var f=0;f<this.postInitHooks.hooks.length;f++)this.postInitHooks.hooks[f].call(this,c,this.data,e)},this.resetAxesScale=function(b,c){var d=c||{},e=b||this.axes;if(e===!0&&(e=this.axes),a.isArray(e))for(var f=0;f<e.length;f++)this.axes[e[f]].resetScale(d[e[f]]);else if("object"==typeof e)for(var g in e)this.axes[g].resetScale(d[g])},this.reInitialize=function(c,d){for(var e=a.extend(!0,{},this.options,d),f=this.targetId.substr(1),g=null==c?this.data:c,i=0;i<a.jqplot.preInitHooks.length;i++)a.jqplot.preInitHooks[i].call(this,f,g,e);for(var i=0;i<this.preInitHooks.hooks.length;i++)this.preInitHooks.hooks[i].call(this,f,g,e);if(this._height=this.target.height(),this._width=this.target.width(),this._height<=0||this._width<=0||!this._height||!this._width)throw new Error("Target dimension not set");this._plotDimensions.height=this._height,this._plotDimensions.width=this._width,this.grid._plotDimensions=this._plotDimensions,this.title._plotDimensions=this._plotDimensions,this.baseCanvas._plotDimensions=this._plotDimensions,this.eventCanvas._plotDimensions=this._plotDimensions,this.legend._plotDimensions=this._plotDimensions;for(var j,k,l,m,i=0,n=G.length;n>i;i++){j=G[i],m=this.axes[j],k=m._ticks;for(var l=0,o=k.length;o>l;l++){var p=k[l]._elem;p&&(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==F&&window.G_vmlCanvasManager.uninitElement(p.get(0)),p.emptyForce(),p=null,k._elem=null)}k=null,delete m.ticks,delete m._ticks,this.axes[j]=new b(j),this.axes[j]._plotWidth=this._width,this.axes[j]._plotHeight=this._height}c&&(e.dataRenderer&&a.isFunction(e.dataRenderer)&&(e.dataRendererOptions&&(this.dataRendererOptions=e.dataRendererOptions),this.dataRenderer=e.dataRenderer,c=this.dataRenderer(c,this,this.dataRendererOptions)),this.data=a.extend(!0,[],c)),d&&this.parseOptions(e),this.title._plotWidth=this._width,this.textColor&&this.target.css("color",this.textColor),this.fontFamily&&this.target.css("font-family",this.fontFamily),this.fontSize&&this.target.css("font-size",this.fontSize),this.title.init(),this.legend.init(),this._sumy=0,this._sumx=0,this.seriesStack=[],this.previousSeriesStack=[],this.computePlotData();for(var i=0,n=this.series.length;n>i;i++){this.seriesStack.push(i),this.previousSeriesStack.push(i),this.series[i].shadowCanvas._plotDimensions=this._plotDimensions,this.series[i].canvas._plotDimensions=this._plotDimensions;for(var l=0;l<a.jqplot.preSeriesInitHooks.length;l++)a.jqplot.preSeriesInitHooks[l].call(this.series[i],f,this.data,this.options.seriesDefaults,this.options.series[i],this);for(var l=0;l<this.preSeriesInitHooks.hooks.length;l++)this.preSeriesInitHooks.hooks[l].call(this.series[i],f,this.data,this.options.seriesDefaults,this.options.series[i],this);this.series[i]._plotDimensions=this._plotDimensions,this.series[i].init(i,this.grid.borderWidth,this);for(var l=0;l<a.jqplot.postSeriesInitHooks.length;l++)a.jqplot.postSeriesInitHooks[l].call(this.series[i],f,this.data,this.options.seriesDefaults,this.options.series[i],this);for(var l=0;l<this.postSeriesInitHooks.hooks.length;l++)this.postSeriesInitHooks.hooks[l].call(this.series[i],f,this.data,this.options.seriesDefaults,this.options.series[i],this);this._sumy+=this.series[i]._sumy,this._sumx+=this.series[i]._sumx}for(var i=0,n=G.length;n>i;i++)j=G[i],m=this.axes[j],m._plotDimensions=this._plotDimensions,m.init(),null==m.borderColor&&("x"!==j.charAt(0)&&m.useSeriesColor===!0&&m.show?m.borderColor=m._series[0].color:m.borderColor=this.grid.borderColor);this.sortData&&h(this.series),this.grid.init(),this.grid._axes=this.axes,this.legend._series=this.series;for(var i=0,n=a.jqplot.postInitHooks.length;n>i;i++)a.jqplot.postInitHooks[i].call(this,f,this.data,e);for(var i=0,n=this.postInitHooks.hooks.length;n>i;i++)this.postInitHooks.hooks[i].call(this,f,this.data,e)},this.quickInit=function(){if(this._height=this.target.height(),this._width=this.target.width(),this._height<=0||this._width<=0||!this._height||!this._width)throw new Error("Target dimension not set");this._plotDimensions.height=this._height,this._plotDimensions.width=this._width,this.grid._plotDimensions=this._plotDimensions,this.title._plotDimensions=this._plotDimensions,this.baseCanvas._plotDimensions=this._plotDimensions,this.eventCanvas._plotDimensions=this._plotDimensions,this.legend._plotDimensions=this._plotDimensions;for(var b in this.axes)this.axes[b]._plotWidth=this._width,this.axes[b]._plotHeight=this._height;this.title._plotWidth=this._width,this.textColor&&this.target.css("color",this.textColor),this.fontFamily&&this.target.css("font-family",this.fontFamily),this.fontSize&&this.target.css("font-size",this.fontSize),this._sumy=0,this._sumx=0,this.computePlotData();for(var c=0;c<this.series.length;c++)"line"===this.series[c]._type&&this.series[c].renderer.bands.show&&this.series[c].renderer.initBands.call(this.series[c],this.series[c].renderer.options,this),this.series[c]._plotDimensions=this._plotDimensions,this.series[c].canvas._plotDimensions=this._plotDimensions,this._sumy+=this.series[c]._sumy,this._sumx+=this.series[c]._sumx;for(var d,e=0;12>e;e++){d=G[e];for(var f=this.axes[d]._ticks,c=0;c<f.length;c++){var g=f[c]._elem;g&&(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==F&&window.G_vmlCanvasManager.uninitElement(g.get(0)),g.emptyForce(),g=null,f._elem=null)}f=null,this.axes[d]._plotDimensions=this._plotDimensions,this.axes[d]._ticks=[]}this.sortData&&h(this.series),this.grid._axes=this.axes,this.legend._series=this.series},this.computePlotData=function(){this._plotData=[],this._stackData=[];var b,c,d;for(c=0,d=this.series.length;d>c;c++){b=this.series[c],this._plotData.push([]),this._stackData.push([]);var e=b.data;this._plotData[c]=a.extend(!0,[],e),this._stackData[c]=a.extend(!0,[],e),b._plotData=this._plotData[c],b._stackData=this._stackData[c];var f={x:[],y:[]};if(this.stackSeries&&!b.disableStack){b._stack=!0;for(var g="x"===b._stackAxis?0:1,h=0,i=e.length;i>h;h++){var j=e[h][g];if(null==j&&(j=0),this._plotData[c][h][g]=j,this._stackData[c][h][g]=j,c>0)for(var k=c;k--;){var l=this._plotData[k][h][g];if(j*l>=0){this._plotData[c][h][g]+=l,this._stackData[c][h][g]+=l;break}}}}else{for(var m=0;m<b.data.length;m++)f.x.push(b.data[m][0]),f.y.push(b.data[m][1]);this._stackData.push(b.data),this.series[c]._stackData=b.data,this._plotData.push(b.data),b._plotData=b.data,b._plotValues=f}for(c>0&&(b._prevPlotData=this.series[c-1]._plotData),b._sumy=0,b._sumx=0,m=b.data.length-1;m>-1;m--)b._sumy+=b.data[m][1],b._sumx+=b.data[m][0]}},this.populatePlotData=function(b,c){this._plotData=[],this._stackData=[],b._stackData=[],b._plotData=[];var d={x:[],y:[]};if(this.stackSeries&&!b.disableStack){b._stack=!0;for(var e,f,g,h,i="x"===b._stackAxis?0:1,j=a.extend(!0,[],b.data),k=a.extend(!0,[],b.data),l=0;c>l;l++)for(var m=this.series[l].data,n=0;n<m.length;n++)g=m[n],e=null!=g[0]?g[0]:0,f=null!=g[1]?g[1]:0,j[n][0]+=e,j[n][1]+=f,h=i?f:e,b.data[n][i]*h>=0&&(k[n][i]+=h);for(var o=0;o<k.length;o++)d.x.push(k[o][0]),d.y.push(k[o][1]);this._plotData.push(k),this._stackData.push(j),b._stackData=j,b._plotData=k,b._plotValues=d}else{for(var o=0;o<b.data.length;o++)d.x.push(b.data[o][0]),d.y.push(b.data[o][1]);this._stackData.push(b.data),this.series[c]._stackData=b.data,this._plotData.push(b.data),b._plotData=b.data,b._plotValues=d}for(c>0&&(b._prevPlotData=this.series[c-1]._plotData),b._sumy=0,b._sumx=0,o=b.data.length-1;o>-1;o--)b._sumy+=b.data[o][1],b._sumx+=b.data[o][0]},this.getNextSeriesColor=function(a){var b=0,c=a.seriesColors;return function(){return b<c.length?c[b++]:(b=0,c[b++])}}(this),this.parseOptions=function(b){for(var c=0;c<this.preParseOptionsHooks.hooks.length;c++)this.preParseOptionsHooks.hooks[c].call(this,b);for(var c=0;c<a.jqplot.preParseOptionsHooks.length;c++)a.jqplot.preParseOptionsHooks[c].call(this,b);this.options=a.extend(!0,{},this.defaults,b);var d=this.options;if(this.animate=d.animate,this.animateReplot=d.animateReplot,this.stackSeries=d.stackSeries,a.isPlainObject(d.fillBetween))for(var f,g=["series1","series2","color","baseSeries","fill"],c=0,h=g.length;h>c;c++)f=g[c],null!=d.fillBetween[f]&&(this.fillBetween[f]=d.fillBetween[f]);d.seriesColors&&(this.seriesColors=d.seriesColors),d.negativeSeriesColors&&(this.negativeSeriesColors=d.negativeSeriesColors),d.captureRightClick&&(this.captureRightClick=d.captureRightClick),this.defaultAxisStart=b&&null!=b.defaultAxisStart?b.defaultAxisStart:this.defaultAxisStart,this.colorGenerator.setColors(this.seriesColors),this.negativeColorGenerator.setColors(this.negativeSeriesColors),a.extend(!0,this._gridPadding,d.gridPadding),this.sortData=null!=d.sortData?d.sortData:this.sortData;for(var c=0;12>c;c++){var i=G[c],j=this.axes[i];j._options=a.extend(!0,{},d.axesDefaults,d.axes[i]),a.extend(!0,j,d.axesDefaults,d.axes[i]),j._plotWidth=this._width,j._plotHeight=this._height}var k=function(b,c,d){var e,f,g=[];if(c=c||"vertical",a.isArray(b[0]))a.extend(!0,g,b);else for(e=0,f=b.length;f>e;e++)"vertical"==c?g.push([d+e,b[e]]):g.push([b[e],d+e]);return g};this.series=[];for(var c=0;c<this.data.length;c++){for(var l=a.extend(!0,{index:c},{seriesColors:this.seriesColors,negativeSeriesColors:this.negativeSeriesColors},this.options.seriesDefaults,this.options.series[c],{rendererOptions:{animation:{show:this.animate}}}),g=new e(l),m=0;m<a.jqplot.preParseSeriesOptionsHooks.length;m++)a.jqplot.preParseSeriesOptionsHooks[m].call(g,this.options.seriesDefaults,this.options.series[c]);for(var m=0;m<this.preParseSeriesOptionsHooks.hooks.length;m++)this.preParseSeriesOptionsHooks.hooks[m].call(g,this.options.seriesDefaults,this.options.series[c]);a.extend(!0,g,l);var n="vertical";switch(g.renderer===a.jqplot.BarRenderer&&g.rendererOptions&&"horizontal"==g.rendererOptions.barDirection&&(n="horizontal",g._stackAxis="x",g._primaryAxis="_yaxis"),g.data=k(this.data[c],n,this.defaultAxisStart),g.xaxis){case"xaxis":g._xaxis=this.axes.xaxis;break;case"x2axis":g._xaxis=this.axes.x2axis}g._yaxis=this.axes[g.yaxis],g._xaxis._series.push(g),g._yaxis._series.push(g),g.show?(g._xaxis.show=!0,g._yaxis.show=!0):(g._xaxis.scaleToHiddenSeries&&(g._xaxis.show=!0),g._yaxis.scaleToHiddenSeries&&(g._yaxis.show=!0)),g.label||(g.label="Series "+(c+1).toString()),this.series.push(g);for(var m=0;m<a.jqplot.postParseSeriesOptionsHooks.length;m++)a.jqplot.postParseSeriesOptionsHooks[m].call(this.series[c],this.options.seriesDefaults,this.options.series[c]);for(var m=0;m<this.postParseSeriesOptionsHooks.hooks.length;m++)this.postParseSeriesOptionsHooks.hooks[m].call(this.series[c],this.options.seriesDefaults,this.options.series[c])}a.extend(!0,this.grid,this.options.grid);for(var c=0,h=G.length;h>c;c++){var i=G[c],j=this.axes[i];null==j.borderWidth&&(j.borderWidth=this.grid.borderWidth)}"string"==typeof this.options.title?this.title.text=this.options.title:"object"==typeof this.options.title&&a.extend(!0,this.title,this.options.title),this.title._plotWidth=this._width,this.legend.setOptions(this.options.legend);for(var c=0;c<a.jqplot.postParseOptionsHooks.length;c++)a.jqplot.postParseOptionsHooks[c].call(this,b);for(var c=0;c<this.postParseOptionsHooks.hooks.length;c++)this.postParseOptionsHooks.hooks[c].call(this,b)},this.destroy=function(){this.canvasManager.freeAllCanvases(),this.eventCanvas&&this.eventCanvas._elem&&this.eventCanvas._elem.unbind(),this.target.empty(),this.target[0].innerHTML=""},this.replot=function(b){var c=b||{},d=c.data||null,e=c.clear===!1?!1:!0,f=c.resetAxes||!1;delete c.data,delete c.clear,delete c.resetAxes,this.target.trigger("jqplotPreReplot"),e&&this.destroy(),d||!a.isEmptyObject(c)?this.reInitialize(d,c):this.quickInit(),f&&this.resetAxesScale(f,c.axes),this.draw(),this.target.trigger("jqplotPostReplot")},this.redraw=function(a){a=null!=a?a:!0,this.target.trigger("jqplotPreRedraw"),a&&(this.canvasManager.freeAllCanvases(),this.eventCanvas._elem.unbind(),this.target.empty());for(var b in this.axes)this.axes[b]._ticks=[];this.computePlotData(),this._sumy=0,this._sumx=0;for(var c=0,d=this.series.length;d>c;c++)this._sumy+=this.series[c]._sumy,this._sumx+=this.series[c]._sumx;this.draw(),this.target.trigger("jqplotPostRedraw")},this.draw=function(){if(this.drawIfHidden||this.target.is(":visible")){this.target.trigger("jqplotPreDraw");var b,c,d;for(b=0,d=a.jqplot.preDrawHooks.length;d>b;b++)a.jqplot.preDrawHooks[b].call(this);for(b=0,d=this.preDrawHooks.hooks.length;d>b;b++)this.preDrawHooks.hooks[b].apply(this,this.preDrawSeriesHooks.args[b]);this.target.append(this.baseCanvas.createElement({left:0,right:0,top:0,bottom:0},"jqplot-base-canvas",null,this)),this.baseCanvas.setContext(),this.target.append(this.title.draw()),this.title.pack({top:0,left:0});var e=this.legend.draw({},this),f={top:0,left:0,bottom:0,right:0};if("outsideGrid"==this.legend.placement){switch(this.target.append(e),this.legend.location){case"n":f.top+=this.legend.getHeight();break;case"s":f.bottom+=this.legend.getHeight();break;case"ne":case"e":case"se":f.right+=this.legend.getWidth();break;case"nw":case"w":case"sw":f.left+=this.legend.getWidth();break;default:f.right+=this.legend.getWidth()}e=e.detach()}var g,h=this.axes;for(b=0;12>b;b++)g=G[b],this.target.append(h[g].draw(this.baseCanvas._ctx,this)),h[g].set();h.yaxis.show&&(f.left+=h.yaxis.getWidth());var i,j=["y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"],k=[0,0,0,0,0,0,0,0],l=0;for(i=0;8>i;i++)h[j[i]].show&&(l+=h[j[i]].getWidth(),k[i]=l);if(f.right+=l,h.x2axis.show&&(f.top+=h.x2axis.getHeight()),this.title.show&&(f.top+=this.title.getHeight()),h.xaxis.show&&(f.bottom+=h.xaxis.getHeight()),this.options.gridDimensions&&a.isPlainObject(this.options.gridDimensions)){var m=parseInt(this.options.gridDimensions.width,10)||0,n=parseInt(this.options.gridDimensions.height,10)||0,o=(this._width-f.left-f.right-m)/2,p=(this._height-f.top-f.bottom-n)/2;p>=0&&o>=0&&(f.top+=p,f.bottom+=p,f.left+=o,f.right+=o)}var q=["top","bottom","left","right"];for(var i in q)null==this._gridPadding[q[i]]&&f[q[i]]>0?this._gridPadding[q[i]]=f[q[i]]:null==this._gridPadding[q[i]]&&(this._gridPadding[q[i]]=this._defaultGridPadding[q[i]]);var r=this._gridPadding;for("outsideGrid"===this.legend.placement&&(r={top:this.title.getHeight(),left:0,right:0,bottom:0},"s"===this.legend.location&&(r.left=this._gridPadding.left,r.right=this._gridPadding.right)),h.xaxis.pack({position:"absolute",bottom:this._gridPadding.bottom-h.xaxis.getHeight(),left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right}),h.yaxis.pack({position:"absolute",top:0,left:this._gridPadding.left-h.yaxis.getWidth(),height:this._height},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top}),h.x2axis.pack({position:"absolute",top:this._gridPadding.top-h.x2axis.getHeight(),left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right}),b=8;b>0;b--)h[j[b-1]].pack({position:"absolute",top:0,right:this._gridPadding.right-k[b-1]},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top});var s=(this._width-this._gridPadding.left-this._gridPadding.right)/2+this._gridPadding.left-h.yMidAxis.getWidth()/2;h.yMidAxis.pack({position:"absolute",top:0,left:s,zIndex:9,textAlign:"center"},{min:this._height-this._gridPadding.bottom,
max:this._gridPadding.top}),this.target.append(this.grid.createElement(this._gridPadding,this)),this.grid.draw();var t=this.series,u=t.length;for(b=0,d=u;d>b;b++)c=this.seriesStack[b],this.target.append(t[c].shadowCanvas.createElement(this._gridPadding,"jqplot-series-shadowCanvas",null,this)),t[c].shadowCanvas.setContext(),t[c].shadowCanvas._elem.data("seriesIndex",c);for(b=0,d=u;d>b;b++)c=this.seriesStack[b],this.target.append(t[c].canvas.createElement(this._gridPadding,"jqplot-series-canvas",null,this)),t[c].canvas.setContext(),t[c].canvas._elem.data("seriesIndex",c);this.target.append(this.eventCanvas.createElement(this._gridPadding,"jqplot-event-canvas",null,this)),this.eventCanvas.setContext(),this.eventCanvas._ctx.fillStyle="rgba(0,0,0,0)",this.eventCanvas._ctx.fillRect(0,0,this.eventCanvas._ctx.canvas.width,this.eventCanvas._ctx.canvas.height),this.bindCustomEvents(),this.legend.preDraw?(this.eventCanvas._elem.before(e),this.legend.pack(r),this.legend._elem?this.drawSeries({legendInfo:{location:this.legend.location,placement:this.legend.placement,width:this.legend.getWidth(),height:this.legend.getHeight(),xoffset:this.legend.xoffset,yoffset:this.legend.yoffset}}):this.drawSeries()):(this.drawSeries(),u&&a(t[u-1].canvas._elem).after(e),this.legend.pack(r));for(var b=0,d=a.jqplot.eventListenerHooks.length;d>b;b++)this.eventCanvas._elem.bind(a.jqplot.eventListenerHooks[b][0],{plot:this},a.jqplot.eventListenerHooks[b][1]);for(var b=0,d=this.eventListenerHooks.hooks.length;d>b;b++)this.eventCanvas._elem.bind(this.eventListenerHooks.hooks[b][0],{plot:this},this.eventListenerHooks.hooks[b][1]);var v=this.fillBetween;if("number"==typeof v.series1)v.fill&&v.series1!==v.series2&&v.series1<u&&v.series2<u&&"line"===t[v.series1]._type&&"line"===t[v.series2]._type&&this.doFillBetweenLines();else if(null!=v.series1&&null!=v.series2){var w=!1;if(v.series1.length===v.series2.length)for(var x=0,y=0,z=0;z<v.series1.length;z++){if(x=v.series1[z],y=v.series2[z],!(x!==y&&u>x&&u>y&&"line"===t[x]._type&&"line"===t[y]._type)){w=!1;break}w=!0}v.fill&&w&&this.doFillBetweenLines()}for(var b=0,d=a.jqplot.postDrawHooks.length;d>b;b++)a.jqplot.postDrawHooks[b].call(this);for(var b=0,d=this.postDrawHooks.hooks.length;d>b;b++)this.postDrawHooks.hooks[b].apply(this,this.postDrawHooks.args[b]);this.target.is(":visible")&&(this._drawCount+=1);var A,B,C,D;for(b=0,d=u;d>b;b++)A=t[b],B=A.renderer,C=".jqplot-point-label.jqplot-series-"+b,B.animation&&B.animation._supported&&B.animation.show&&(this._drawCount<2||this.animateReplot)&&(D=this.target.find(C),D.stop(!0,!0).hide(),A.canvas._elem.stop(!0,!0).hide(),A.shadowCanvas._elem.stop(!0,!0).hide(),A.canvas._elem.jqplotEffect("blind",{mode:"show",direction:B.animation.direction},B.animation.speed),A.shadowCanvas._elem.jqplotEffect("blind",{mode:"show",direction:B.animation.direction},B.animation.speed),D.fadeIn(.8*B.animation.speed));D=null,this.target.trigger("jqplotPostDraw",[this])}},g.prototype.doFillBetweenLines=function(){function a(a,e){var f=c[a],g=c[e];if(g.renderer.smooth)var h=g.renderer._smoothedData.slice(0).reverse();else var h=g.gridData.slice(0).reverse();if(f.renderer.smooth)var i=f.renderer._smoothedData.concat(h);else var i=f.gridData.concat(h);var j=null!==b.color?b.color:c[d].fillColor,k=null!==b.baseSeries?b.baseSeries:a,l=c[k].renderer.shapeRenderer,m={fillStyle:j,fill:!0,closePath:!0};l.draw(f.shadowCanvas._ctx,i,m)}var b=this.fillBetween,c=this.series,d=b.series1,e=b.series2,f=0,g=0;if("number"==typeof d&&"number"==typeof e)f=e>d?d:e,g=e>d?e:d,a(f,g);else for(var h=0;h<d.length;h++)f=d[h]<e[h]?d[h]:e[h],g=e[h]>d[h]?e[h]:d[h],a(f,g)},this.bindCustomEvents=function(){this.eventCanvas._elem.bind("click",{plot:this},this.onClick),this.eventCanvas._elem.bind("dblclick",{plot:this},this.onDblClick),this.eventCanvas._elem.bind("mousedown",{plot:this},this.onMouseDown),this.eventCanvas._elem.bind("mousemove",{plot:this},this.onMouseMove),this.eventCanvas._elem.bind("mouseenter",{plot:this},this.onMouseEnter),this.eventCanvas._elem.bind("mouseleave",{plot:this},this.onMouseLeave),this.captureRightClick?(this.eventCanvas._elem.bind("mouseup",{plot:this},this.onRightClick),this.eventCanvas._elem.get(0).oncontextmenu=function(){return!1}):this.eventCanvas._elem.bind("mouseup",{plot:this},this.onMouseUp)},this.onClick=function(b){var c=i(b),d=b.data.plot,e=j(c.gridPos,d),f=a.Event("jqplotClick");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])},this.onDblClick=function(b){var c=i(b),d=b.data.plot,e=j(c.gridPos,d),f=a.Event("jqplotDblClick");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])},this.onMouseDown=function(b){var c=i(b),d=b.data.plot,e=j(c.gridPos,d),f=a.Event("jqplotMouseDown");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])},this.onMouseUp=function(b){var c=i(b),d=a.Event("jqplotMouseUp");d.pageX=b.pageX,d.pageY=b.pageY,a(this).trigger(d,[c.gridPos,c.dataPos,null,b.data.plot])},this.onRightClick=function(b){var c=i(b),d=b.data.plot,e=j(c.gridPos,d);if(d.captureRightClick)if(3==b.which){var f=a.Event("jqplotRightClick");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])}else{var f=a.Event("jqplotMouseUp");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])}},this.onMouseMove=function(b){var c=i(b),d=b.data.plot,e=j(c.gridPos,d),f=a.Event("jqplotMouseMove");f.pageX=b.pageX,f.pageY=b.pageY,a(this).trigger(f,[c.gridPos,c.dataPos,e,d])},this.onMouseEnter=function(b){var c=i(b),d=b.data.plot,e=a.Event("jqplotMouseEnter");e.pageX=b.pageX,e.pageY=b.pageY,e.relatedTarget=b.relatedTarget,a(this).trigger(e,[c.gridPos,c.dataPos,null,d])},this.onMouseLeave=function(b){var c=i(b),d=b.data.plot,e=a.Event("jqplotMouseLeave");e.pageX=b.pageX,e.pageY=b.pageY,e.relatedTarget=b.relatedTarget,a(this).trigger(e,[c.gridPos,c.dataPos,null,d])},this.drawSeries=function(b,c){var d,e,f;if(c="number"==typeof b&&null==c?b:c,b="object"==typeof b?b:{},c!=F)e=this.series[c],f=e.shadowCanvas._ctx,f.clearRect(0,0,f.canvas.width,f.canvas.height),e.drawShadow(f,b,this),f=e.canvas._ctx,f.clearRect(0,0,f.canvas.width,f.canvas.height),e.draw(f,b,this),e.renderer.constructor==a.jqplot.BezierCurveRenderer&&c<this.series.length-1&&this.drawSeries(c+1);else for(d=0;d<this.series.length;d++)e=this.series[d],f=e.shadowCanvas._ctx,f.clearRect(0,0,f.canvas.width,f.canvas.height),e.drawShadow(f,b,this),f=e.canvas._ctx,f.clearRect(0,0,f.canvas.width,f.canvas.height),e.draw(f,b,this);b=c=d=e=f=null},this.moveSeriesToFront=function(b){b=parseInt(b,10);var c=a.inArray(b,this.seriesStack);if(-1!=c){if(c==this.seriesStack.length-1)return void(this.previousSeriesStack=this.seriesStack.slice(0));var d=this.seriesStack[this.seriesStack.length-1],e=this.series[b].canvas._elem.detach(),f=this.series[b].shadowCanvas._elem.detach();this.series[d].shadowCanvas._elem.after(f),this.series[d].canvas._elem.after(e),this.previousSeriesStack=this.seriesStack.slice(0),this.seriesStack.splice(c,1),this.seriesStack.push(b)}},this.moveSeriesToBack=function(b){b=parseInt(b,10);var c=a.inArray(b,this.seriesStack);if(0!=c&&-1!=c){var d=this.seriesStack[0],e=this.series[b].canvas._elem.detach(),f=this.series[b].shadowCanvas._elem.detach();this.series[d].shadowCanvas._elem.before(f),this.series[d].canvas._elem.before(e),this.previousSeriesStack=this.seriesStack.slice(0),this.seriesStack.splice(c,1),this.seriesStack.unshift(b)}},this.restorePreviousSeriesOrder=function(){var a,b,c,d,e,f;if(this.seriesStack!=this.previousSeriesStack){for(a=1;a<this.previousSeriesStack.length;a++)e=this.previousSeriesStack[a],f=this.previousSeriesStack[a-1],b=this.series[e].canvas._elem.detach(),c=this.series[e].shadowCanvas._elem.detach(),this.series[f].shadowCanvas._elem.after(c),this.series[f].canvas._elem.after(b);d=this.seriesStack.slice(0),this.seriesStack=this.previousSeriesStack.slice(0),this.previousSeriesStack=d}},this.restoreOriginalSeriesOrder=function(){var a,b,c,d=[];for(a=0;a<this.series.length;a++)d.push(a);if(this.seriesStack!=d)for(this.previousSeriesStack=this.seriesStack.slice(0),this.seriesStack=d,a=1;a<this.seriesStack.length;a++)b=this.series[a].canvas._elem.detach(),c=this.series[a].shadowCanvas._elem.detach(),this.series[a-1].shadowCanvas._elem.after(c),this.series[a-1].canvas._elem.after(b)},this.activateTheme=function(a){this.themeEngine.activate(this,a)}}function h(a,b){return(3.4182054+b)*Math.pow(a,-.3534992)}function i(a){var b=(Math.exp(2*a)-1)/(Math.exp(2*a)+1);return b}function j(a){function b(a,b){return a-b==0?Math.pow(10,10):a-b}var c=this.renderer.smooth,d=this.canvas.getWidth(),e=this._xaxis.series_p2u,f=this._yaxis.series_p2u,g=null,i=a.length/d,j=[],k=[];g=isNaN(parseFloat(c))?h(i,.5):parseFloat(c);for(var l=[],m=[],n=0,o=a.length;o>n;n++)l.push(a[n][1]),m.push(a[n][0]);for(var p,q,r,s,t=a.length-1,u=1,v=a.length;v>u;u++){for(var w=[],x=[],y=0;2>y;y++){var n=u-1+y;0==n||n==t?w[y]=Math.pow(10,10):l[n+1]-l[n]==0||l[n]-l[n-1]==0?w[y]=0:(m[n+1]-m[n])/(l[n+1]-l[n])+(m[n]-m[n-1])/(l[n]-l[n-1])==0?w[y]=0:(l[n+1]-l[n])*(l[n]-l[n-1])<0?w[y]=0:w[y]=2/(b(m[n+1],m[n])/(l[n+1]-l[n])+b(m[n],m[n-1])/(l[n]-l[n-1]))}1==u?w[0]=1.5*(l[1]-l[0])/b(m[1],m[0])-w[1]/2:u==t&&(w[1]=1.5*(l[t]-l[t-1])/b(m[t],m[t-1])-w[0]/2),x[0]=-2*(w[1]+2*w[0])/b(m[u],m[u-1])+6*(l[u]-l[u-1])/Math.pow(b(m[u],m[u-1]),2),x[1]=2*(2*w[1]+w[0])/b(m[u],m[u-1])-6*(l[u]-l[u-1])/Math.pow(b(m[u],m[u-1]),2),s=1/6*(x[1]-x[0])/b(m[u],m[u-1]),r=.5*(m[u]*x[0]-m[u-1]*x[1])/b(m[u],m[u-1]),q=(l[u]-l[u-1]-r*(Math.pow(m[u],2)-Math.pow(m[u-1],2))-s*(Math.pow(m[u],3)-Math.pow(m[u-1],3)))/b(m[u],m[u-1]),p=l[u-1]-q*m[u-1]-r*Math.pow(m[u-1],2)-s*Math.pow(m[u-1],3);for(var z,A,B=(m[u]-m[u-1])/g,y=0,o=g;o>y;y++)z=[],A=m[u-1]+y*B,z.push(A),z.push(p+q*A+r*Math.pow(A,2)+s*Math.pow(A,3)),j.push(z),k.push([e(z[0]),f(z[1])])}return j.push(a[n]),k.push([e(a[n][0]),f(a[n][1])]),[j,k]}function k(a){var b,c,d,e,f,g,j,k,l,m,n,o,p,q,r,s,t,u,v=this.renderer.smooth,w=this.renderer.tension,x=this.canvas.getWidth(),y=this._xaxis.series_p2u,z=this._yaxis.series_p2u,A=null,B=null,C=null,D=null,E=null,F=null,G=null,H=a.length/x,I=[],J=[];A=isNaN(parseFloat(v))?h(H,.5):parseFloat(v),isNaN(parseFloat(w))||(w=parseFloat(w));for(var K=0,L=a.length-1;L>K;K++)for(null===w?(E=Math.abs((a[K+1][1]-a[K][1])/(a[K+1][0]-a[K][0])),q=.3,r=.6,s=(r-q)/2,t=2.5,u=-1.4,G=E/t+u,C=s*i(G)-s*i(u)+q,K>0&&(F=Math.abs((a[K][1]-a[K-1][1])/(a[K][0]-a[K-1][0]))),G=F/t+u,D=s*i(G)-s*i(u)+q,B=(C+D)/2):B=w,b=0;A>b;b++)c=b/A,d=(1+2*c)*Math.pow(1-c,2),e=c*Math.pow(1-c,2),f=Math.pow(c,2)*(3-2*c),g=Math.pow(c,2)*(c-1),a[K-1]?(j=B*(a[K+1][0]-a[K-1][0]),k=B*(a[K+1][1]-a[K-1][1])):(j=B*(a[K+1][0]-a[K][0]),k=B*(a[K+1][1]-a[K][1])),a[K+2]?(l=B*(a[K+2][0]-a[K][0]),m=B*(a[K+2][1]-a[K][1])):(l=B*(a[K+1][0]-a[K][0]),m=B*(a[K+1][1]-a[K][1])),n=d*a[K][0]+f*a[K+1][0]+e*j+g*l,o=d*a[K][1]+f*a[K+1][1]+e*k+g*m,p=[n,o],I.push(p),J.push([y(n),z(o)]);return I.push(a[L]),J.push([y(a[L][0]),z(a[L][1])]),[I,J]}function l(b,c,d){for(var e=0;e<this.series.length;e++)this.series[e].renderer.constructor==a.jqplot.LineRenderer&&this.series[e].highlightMouseOver&&(this.series[e].highlightMouseDown=!1)}function m(){this.plugins.lineRenderer&&this.plugins.lineRenderer.highlightCanvas&&(this.plugins.lineRenderer.highlightCanvas.resetCanvas(),this.plugins.lineRenderer.highlightCanvas=null),this.plugins.lineRenderer.highlightedSeriesIndex=null,this.plugins.lineRenderer.highlightCanvas=new a.jqplot.GenericCanvas,this.eventCanvas._elem.before(this.plugins.lineRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-lineRenderer-highlight-canvas",this._plotDimensions,this)),this.plugins.lineRenderer.highlightCanvas.setContext(),this.eventCanvas._elem.bind("mouseleave",{plot:this},function(a){o(a.data.plot)})}function n(a,b,c,d){var e=a.series[b],f=a.plugins.lineRenderer.highlightCanvas;f._ctx.clearRect(0,0,f._ctx.canvas.width,f._ctx.canvas.height),e._highlightedPoint=c,a.plugins.lineRenderer.highlightedSeriesIndex=b;var g={fillStyle:e.highlightColor};"line"===e.type&&e.renderer.bands.show&&(g.fill=!0,g.closePath=!0),e.renderer.shapeRenderer.draw(f._ctx,d,g),f=null}function o(a){var b=a.plugins.lineRenderer.highlightCanvas;b._ctx.clearRect(0,0,b._ctx.canvas.width,b._ctx.canvas.height);for(var c=0;c<a.series.length;c++)a.series[c]._highlightedPoint=null;a.plugins.lineRenderer.highlightedSeriesIndex=null,a.target.trigger("jqplotDataUnhighlight"),b=null}function p(a,b,c,d,e){if(d){var f=[d.seriesIndex,d.pointIndex,d.data],g=jQuery.Event("jqplotDataMouseOver");if(g.pageX=a.pageX,g.pageY=a.pageY,e.target.trigger(g,f),e.series[f[0]].highlightMouseOver&&f[0]!=e.plugins.lineRenderer.highlightedSeriesIndex){var h=jQuery.Event("jqplotDataHighlight");h.which=a.which,h.pageX=a.pageX,h.pageY=a.pageY,e.target.trigger(h,f),n(e,d.seriesIndex,d.pointIndex,d.points)}}else null==d&&o(e)}function q(a,b,c,d,e){if(d){var f=[d.seriesIndex,d.pointIndex,d.data];if(e.series[f[0]].highlightMouseDown&&f[0]!=e.plugins.lineRenderer.highlightedSeriesIndex){var g=jQuery.Event("jqplotDataHighlight");g.which=a.which,g.pageX=a.pageX,g.pageY=a.pageY,e.target.trigger(g,f),n(e,d.seriesIndex,d.pointIndex,d.points)}}else null==d&&o(e)}function r(a,b,c,d,e){var f=e.plugins.lineRenderer.highlightedSeriesIndex;null!=f&&e.series[f].highlightMouseDown&&o(e)}function s(a,b,c,d,e){if(d){var f=[d.seriesIndex,d.pointIndex,d.data],g=jQuery.Event("jqplotDataClick");g.which=a.which,g.pageX=a.pageX,g.pageY=a.pageY,e.target.trigger(g,f)}}function t(a,b,c,d,e){if(d){var f=[d.seriesIndex,d.pointIndex,d.data],g=e.plugins.lineRenderer.highlightedSeriesIndex;null!=g&&e.series[g].highlightMouseDown&&o(e);var h=jQuery.Event("jqplotDataRightClick");h.which=a.which,h.pageX=a.pageX,h.pageY=a.pageY,e.target.trigger(h,f)}}function u(a){var b;if(a=Math.abs(a),a>=10)b="%d";else if(a>1)b=a===parseInt(a,10)?"%d":"%.1f";else{var c=-Math.floor(Math.log(a)/Math.LN10);b="%."+c+"f"}return b}function v(b,c,d){for(var e,f,g,h,i,j,k,l=Math.floor(d/2),m=Math.ceil(1.5*d),n=Number.MAX_VALUE,o=c-b,p=a.jqplot.getSignificantFigures,q=0,r=m-l+1;r>q;q++)j=l+q,e=o/(j-1),f=p(e),e=Math.abs(d-j)+f.digitsRight,n>e?(n=e,g=j,k=f.digitsRight):e===n&&f.digitsRight<k&&(g=j,k=f.digitsRight);return h=Math.max(k,Math.max(p(b).digitsRight,p(c).digitsRight)),i=0===h?"%d":"%."+h+"f",e=o/(g-1),[b,c,g,i,e]}function w(a,b){b=b||7;var c,d=a/(b-1),e=Math.pow(10,Math.floor(Math.log(d)/Math.LN10)),f=d/e;return c=1>e?f>5?10*e:f>2?5*e:f>1?2*e:e:f>5?10*e:f>4?5*e:f>3?4*e:f>2?3*e:f>1?2*e:e}function x(a,b){b=b||1;var c,d=Math.floor(Math.log(a)/Math.LN10),e=Math.pow(10,d),f=a/e;return f/=b,c=.38>=f?.1:1.6>=f?.2:4>=f?.5:8>=f?1:16>=f?2:5,c*e}function y(a,b){var c,d,e=Math.floor(Math.log(a)/Math.LN10),f=Math.pow(10,e),g=a/f;return g/=b,d=.38>=g?.1:1.6>=g?.2:4>=g?.5:8>=g?1:16>=g?2:5,c=d*f,[c,d,f]}function z(a,b){return a-b}function A(a){if(null==a||"object"!=typeof a)return a;var b=new a.constructor;for(var c in a)b[c]=A(a[c]);return b}function B(a,b){if(null!=b&&"object"==typeof b)for(var c in b)"highlightColors"==c&&(a[c]=A(b[c])),null!=b[c]&&"object"==typeof b[c]?(a.hasOwnProperty(c)||(a[c]={}),B(a[c],b[c])):a[c]=b[c]}function C(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;d>c;c++)if(b[c]===a)return c;return-1}function D(a){return null===a?"[object Null]":Object.prototype.toString.call(a)}function E(b,c,d,e){return a.isPlainObject(b)?b:(b={effect:b},c===F&&(c={}),a.isFunction(c)&&(e=c,d=null,c={}),("number"===a.type(c)||a.fx.speeds[c])&&(e=d,d=c,c={}),a.isFunction(d)&&(e=d,d=null),c&&a.extend(b,c),d=d||c.duration,b.duration=a.fx.off?0:"number"==typeof d?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,b.complete=e||c.complete,b)}var F;a.fn.emptyForce=function(){for(var b,c=0;null!=(b=a(this)[c]);c++){if(1===b.nodeType&&a.cleanData(b.getElementsByTagName("*")),a.jqplot.use_excanvas)b.outerHTML="";else for(;b.firstChild;)b.removeChild(b.firstChild);b=null}return a(this)},a.fn.removeChildForce=function(a){for(;a.firstChild;)this.removeChildForce(a.firstChild),a.removeChild(a.firstChild)},a.fn.jqplot=function(){for(var b=[],c=[],d=0,e=arguments.length;e>d;d++)a.isArray(arguments[d])?b.push(arguments[d]):a.isPlainObject(arguments[d])&&c.push(arguments[d]);return this.each(function(d){var e,f,g,h,i=a(this),j=b.length,k=c.length;g=j>d?b[d]:j?b[j-1]:null,h=k>d?c[d]:k?c[k-1]:null,e=i.attr("id"),e===F&&(e="jqplot_target_"+a.jqplot.targetCounter++,i.attr("id",e)),f=a.jqplot(e,g,h),i.data("jqplot",f)})},a.jqplot=function(b,c,d){var e=null,f=null;3===arguments.length?(e=c,f=d):2===arguments.length&&(a.isArray(c)?e=c:a.isPlainObject(c)&&(f=c)),null===e&&null!==f&&f.data&&(e=f.data);var h=new g;if(a("#"+b).removeClass("jqplot-error"),!a.jqplot.config.catchErrors)return h.init(b,e,f),h.draw(),h.themeEngine.init.call(h),h;try{return h.init(b,e,f),h.draw(),h.themeEngine.init.call(h),h}catch(i){var j=a.jqplot.config.errorMessage||i.message;a("#"+b).append('<div class="jqplot-error-message">'+j+"</div>"),a("#"+b).addClass("jqplot-error"),document.getElementById(b).style.background=a.jqplot.config.errorBackground,document.getElementById(b).style.border=a.jqplot.config.errorBorder,document.getElementById(b).style.fontFamily=a.jqplot.config.errorFontFamily,document.getElementById(b).style.fontSize=a.jqplot.config.errorFontSize,document.getElementById(b).style.fontStyle=a.jqplot.config.errorFontStyle,document.getElementById(b).style.fontWeight=a.jqplot.config.errorFontWeight}},a.jqplot.version="1.0.9",a.jqplot.revision="d96a669",a.jqplot.targetCounter=1,a.jqplot.CanvasManager=function(){"undefined"==typeof a.jqplot.CanvasManager.canvases&&(a.jqplot.CanvasManager.canvases=[],a.jqplot.CanvasManager.free=[]);var b=[];this.getCanvas=function(){var c,d=!0;if(!a.jqplot.use_excanvas)for(var e=0,f=a.jqplot.CanvasManager.canvases.length;f>e;e++)if(a.jqplot.CanvasManager.free[e]===!0){d=!1,c=a.jqplot.CanvasManager.canvases[e],a.jqplot.CanvasManager.free[e]=!1,b.push(e);break}return d&&(c=document.createElement("canvas"),b.push(a.jqplot.CanvasManager.canvases.length),a.jqplot.CanvasManager.canvases.push(c),a.jqplot.CanvasManager.free.push(!1)),c},this.initCanvas=function(b){if(a.jqplot.use_excanvas)return window.G_vmlCanvasManager.initElement(b);var c=b.getContext("2d"),d=1;window.devicePixelRatio>1&&(c.webkitBackingStorePixelRatio===F||c.webkitBackingStorePixelRatio<2)&&(d=window.devicePixelRatio);var e=b.width,f=b.height;return b.width=d*b.width,b.height=d*b.height,b.style.width=e+"px",b.style.height=f+"px",c.save(),c.scale(d,d),b},this.freeAllCanvases=function(){for(var a=0,c=b.length;c>a;a++)this.freeCanvas(b[a]);b=[]},this.freeCanvas=function(b){if(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==F)window.G_vmlCanvasManager.uninitElement(a.jqplot.CanvasManager.canvases[b]),a.jqplot.CanvasManager.canvases[b]=null;else{var c=a.jqplot.CanvasManager.canvases[b];c.getContext("2d").clearRect(0,0,c.width,c.height),a(c).unbind().removeAttr("class").removeAttr("style"),a(c).css({left:"",top:"",position:""}),c.width=0,c.height=0,a.jqplot.CanvasManager.free[b]=!0}}},a.jqplot.log=function(){window.console&&window.console.log.apply(window.console,arguments)},a.jqplot.config={addDomReference:!1,enablePlugins:!1,defaultHeight:300,defaultWidth:400,UTCAdjust:!1,timezoneOffset:new Date(6e4*(new Date).getTimezoneOffset()),errorMessage:"",errorBackground:"",errorBorder:"",errorFontFamily:"",errorFontSize:"",errorFontStyle:"",errorFontWeight:"",catchErrors:!1,defaultTickFormatString:"%.1f",defaultColors:["#4bb2c5","#EAA228","#c5b47f","#579575","#839557","#958c12","#953579","#4b5de4","#d8b83f","#ff5800","#0085cc","#c747a3","#cddf54","#FBD178","#26B4E3","#bd70c7"],defaultNegativeColors:["#498991","#C08840","#9F9274","#546D61","#646C4A","#6F6621","#6E3F5F","#4F64B0","#A89050","#C45923","#187399","#945381","#959E5C","#C7AF7B","#478396","#907294"],dashLength:4,gapLength:4,dotGapLength:2.5,srcLocation:"jqplot/src/",pluginLocation:"jqplot/src/plugins/"},a.jqplot.arrayMax=function(a){return Math.max.apply(Math,a)},a.jqplot.arrayMin=function(a){return Math.min.apply(Math,a)},a.jqplot.enablePlugins=a.jqplot.config.enablePlugins,a.jqplot.support_canvas=function(){return"undefined"==typeof a.jqplot.support_canvas.result&&(a.jqplot.support_canvas.result=!!document.createElement("canvas").getContext),a.jqplot.support_canvas.result},a.jqplot.support_canvas_text=function(){return"undefined"==typeof a.jqplot.support_canvas_text.result&&(window.G_vmlCanvasManager!==F&&window.G_vmlCanvasManager._version>887?a.jqplot.support_canvas_text.result=!0:a.jqplot.support_canvas_text.result=!(!document.createElement("canvas").getContext||"function"!=typeof document.createElement("canvas").getContext("2d").fillText)),a.jqplot.support_canvas_text.result},a.jqplot.use_excanvas=a.support.boxModel&&a.support.objectAll&&$support.leadingWhitespace||a.jqplot.support_canvas()?!1:!0,a.jqplot.preInitHooks=[],a.jqplot.postInitHooks=[],a.jqplot.preParseOptionsHooks=[],a.jqplot.postParseOptionsHooks=[],a.jqplot.preDrawHooks=[],a.jqplot.postDrawHooks=[],a.jqplot.preDrawSeriesHooks=[],a.jqplot.postDrawSeriesHooks=[],a.jqplot.preDrawLegendHooks=[],a.jqplot.addLegendRowHooks=[],a.jqplot.preSeriesInitHooks=[],a.jqplot.postSeriesInitHooks=[],a.jqplot.preParseSeriesOptionsHooks=[],a.jqplot.postParseSeriesOptionsHooks=[],a.jqplot.eventListenerHooks=[],a.jqplot.preDrawSeriesShadowHooks=[],a.jqplot.postDrawSeriesShadowHooks=[],a.jqplot.ElemContainer=function(){this._elem,this._plotWidth,this._plotHeight,this._plotDimensions={height:null,width:null}},a.jqplot.ElemContainer.prototype.createElement=function(b,c,d,e,f){this._offsets=c;var g=d||"jqplot",h=document.createElement(b);return this._elem=a(h),this._elem.addClass(g),this._elem.css(e),this._elem.attr(f),h=null,this._elem},a.jqplot.ElemContainer.prototype.getWidth=function(){return this._elem?this._elem.outerWidth(!0):null},a.jqplot.ElemContainer.prototype.getHeight=function(){return this._elem?this._elem.outerHeight(!0):null},a.jqplot.ElemContainer.prototype.getPosition=function(){return this._elem?this._elem.position():{top:null,left:null,bottom:null,right:null}},a.jqplot.ElemContainer.prototype.getTop=function(){return this.getPosition().top},a.jqplot.ElemContainer.prototype.getLeft=function(){return this.getPosition().left},a.jqplot.ElemContainer.prototype.getBottom=function(){return this._elem.css("bottom")},a.jqplot.ElemContainer.prototype.getRight=function(){return this._elem.css("right")},b.prototype=new a.jqplot.ElemContainer,b.prototype.constructor=b,b.prototype.init=function(){a.isFunction(this.renderer)&&(this.renderer=new this.renderer),this.tickOptions.axis=this.name,null==this.tickOptions.showMark&&(this.tickOptions.showMark=this.showTicks),null==this.tickOptions.showMark&&(this.tickOptions.showMark=this.showTickMarks),null==this.tickOptions.showLabel&&(this.tickOptions.showLabel=this.showTicks),null==this.label||""==this.label?this.showLabel=!1:this.labelOptions.label=this.label,0==this.showLabel&&(this.labelOptions.show=!1),0==this.pad&&(this.pad=1),0==this.padMax&&(this.padMax=1),0==this.padMin&&(this.padMin=1),null==this.padMax&&(this.padMax=(this.pad-1)/2+1),null==this.padMin&&(this.padMin=(this.pad-1)/2+1),this.pad=this.padMax+this.padMin-1,(null!=this.min||null!=this.max)&&(this.autoscale=!1),null==this.syncTicks&&this.name.indexOf("y")>-1?this.syncTicks=!0:null==this.syncTicks&&(this.syncTicks=!1),this.renderer.init.call(this,this.rendererOptions)},b.prototype.draw=function(a,b){return this.__ticks&&(this.__ticks=null),this.renderer.draw.call(this,a,b)},b.prototype.set=function(){this.renderer.set.call(this)},b.prototype.pack=function(a,b){this.show&&this.renderer.pack.call(this,a,b),null==this._min&&(this._min=this.min,this._max=this.max,this._tickInterval=this.tickInterval,this._numberTicks=this.numberTicks,this.__ticks=this._ticks)},b.prototype.reset=function(){this.renderer.reset.call(this)},b.prototype.resetScale=function(b){a.extend(!0,this,{min:null,max:null,numberTicks:null,tickInterval:null,_ticks:[],ticks:[]},b),this.resetDataBounds()},b.prototype.resetDataBounds=function(){var b=this._dataBounds;b.min=null,b.max=null;for(var c,d,e,f=this.show?!0:!1,g=0;g<this._series.length;g++)if(d=this._series[g],d.show||this.scaleToHiddenSeries){e=d._plotData,"line"===d._type&&d.renderer.bands.show&&"x"!==this.name.charAt(0)&&(e=[[0,d.renderer.bands._min],[1,d.renderer.bands._max]]);var h=1,i=1;null!=d._type&&"ohlc"==d._type&&(h=3,i=2);for(var j=0,c=e.length;c>j;j++)"xaxis"==this.name||"x2axis"==this.name?((null!=e[j][0]&&e[j][0]<b.min||null==b.min)&&(b.min=e[j][0]),(null!=e[j][0]&&e[j][0]>b.max||null==b.max)&&(b.max=e[j][0])):((null!=e[j][h]&&e[j][h]<b.min||null==b.min)&&(b.min=e[j][h]),(null!=e[j][i]&&e[j][i]>b.max||null==b.max)&&(b.max=e[j][i]));f&&d.renderer.constructor!==a.jqplot.BarRenderer?f=!1:f&&this._options.hasOwnProperty("forceTickAt0")&&0==this._options.forceTickAt0?f=!1:f&&d.renderer.constructor===a.jqplot.BarRenderer&&("vertical"==d.barDirection&&"xaxis"!=this.name&&"x2axis"!=this.name?(null!=this._options.pad||null!=this._options.padMin)&&(f=!1):"horizontal"!=d.barDirection||"xaxis"!=this.name&&"x2axis"!=this.name||(null!=this._options.pad||null!=this._options.padMin)&&(f=!1))}f&&this.renderer.constructor===a.jqplot.LinearAxisRenderer&&b.min>=0&&(this.padMin=1,this.forceTickAt0=!0)},c.prototype=new a.jqplot.ElemContainer,c.prototype.constructor=c,c.prototype.setOptions=function(b){if(a.extend(!0,this,b),"inside"==this.placement&&(this.placement="insideGrid"),this.xoffset>0){if("insideGrid"==this.placement)switch(this.location){case"nw":case"w":case"sw":null==this.marginLeft&&(this.marginLeft=this.xoffset+"px"),this.marginRight="0px";break;case"ne":case"e":case"se":default:null==this.marginRight&&(this.marginRight=this.xoffset+"px"),this.marginLeft="0px"}else if("outside"==this.placement)switch(this.location){case"nw":case"w":case"sw":null==this.marginRight&&(this.marginRight=this.xoffset+"px"),this.marginLeft="0px";break;case"ne":case"e":case"se":default:null==this.marginLeft&&(this.marginLeft=this.xoffset+"px"),this.marginRight="0px"}this.xoffset=0}if(this.yoffset>0){if("outside"==this.placement)switch(this.location){case"sw":case"s":case"se":null==this.marginTop&&(this.marginTop=this.yoffset+"px"),this.marginBottom="0px";break;case"ne":case"n":case"nw":default:null==this.marginBottom&&(this.marginBottom=this.yoffset+"px"),this.marginTop="0px"}else if("insideGrid"==this.placement)switch(this.location){case"sw":case"s":case"se":null==this.marginBottom&&(this.marginBottom=this.yoffset+"px"),this.marginTop="0px";break;case"ne":case"n":case"nw":default:null==this.marginTop&&(this.marginTop=this.yoffset+"px"),this.marginBottom="0px"}this.yoffset=0}},c.prototype.init=function(){a.isFunction(this.renderer)&&(this.renderer=new this.renderer),this.renderer.init.call(this,this.rendererOptions)},c.prototype.draw=function(b,c){for(var d=0;d<a.jqplot.preDrawLegendHooks.length;d++)a.jqplot.preDrawLegendHooks[d].call(this,b);return this.renderer.draw.call(this,b,c)},c.prototype.pack=function(a){this.renderer.pack.call(this,a)},d.prototype=new a.jqplot.ElemContainer,d.prototype.constructor=d,d.prototype.init=function(){a.isFunction(this.renderer)&&(this.renderer=new this.renderer),this.renderer.init.call(this,this.rendererOptions)},d.prototype.draw=function(a){return this.renderer.draw.call(this,a)},d.prototype.pack=function(){this.renderer.pack.call(this)},e.prototype=new a.jqplot.ElemContainer,e.prototype.constructor=e,e.prototype.init=function(b,c,d){this.index=b,this.gridBorderWidth=c;var e,f,g=this.data,h=[];for(e=0,f=g.length;f>e;e++)if(this.breakOnNull)h.push(g[e]);else{if(null==g[e]||null==g[e][0]||null==g[e][1])continue;h.push(g[e])}if(this.data=h,this.color||(this.color=d.colorGenerator.get(this.index)),this.negativeColor||(this.negativeColor=d.negativeColorGenerator.get(this.index)),this.fillColor||(this.fillColor=this.color),this.fillAlpha){var i=a.jqplot.normalize2rgb(this.fillColor),i=a.jqplot.getColorComponents(i);this.fillColor="rgba("+i[0]+","+i[1]+","+i[2]+","+this.fillAlpha+")"}a.isFunction(this.renderer)&&(this.renderer=new this.renderer),this.renderer.init.call(this,this.rendererOptions,d),this.markerRenderer=new this.markerRenderer,this.markerOptions.color||(this.markerOptions.color=this.color),null==this.markerOptions.show&&(this.markerOptions.show=this.showMarker),this.showMarker=this.markerOptions.show,this.markerRenderer.init(this.markerOptions)},e.prototype.draw=function(b,c,d){var e=c==F?{}:c;b=b==F?this.canvas._ctx:b;var f,g,h;for(f=0;f<a.jqplot.preDrawSeriesHooks.length;f++)a.jqplot.preDrawSeriesHooks[f].call(this,b,e);for(this.show&&(this.renderer.setGridData.call(this,d),e.preventJqPlotSeriesDrawTrigger||a(b.canvas).trigger("jqplotSeriesDraw",[this.data,this.gridData]),g=[],g=e.data?e.data:this._stack?this._plotData:this.data,h=e.gridData||this.renderer.makeGridData.call(this,g,d),"line"===this._type&&this.renderer.smooth&&this.renderer._smoothedData.length&&(h=this.renderer._smoothedData),this.renderer.draw.call(this,b,h,e,d)),f=0;f<a.jqplot.postDrawSeriesHooks.length;f++)a.jqplot.postDrawSeriesHooks[f].call(this,b,e,d);b=c=d=f=g=h=null},e.prototype.drawShadow=function(b,c,d){var e=c==F?{}:c;b=b==F?this.shadowCanvas._ctx:b;var f,g,h;for(f=0;f<a.jqplot.preDrawSeriesShadowHooks.length;f++)a.jqplot.preDrawSeriesShadowHooks[f].call(this,b,e);for(this.shadow&&(this.renderer.setGridData.call(this,d),g=[],g=e.data?e.data:this._stack?this._plotData:this.data,h=e.gridData||this.renderer.makeGridData.call(this,g,d),this.renderer.drawShadow.call(this,b,h,e,d)),f=0;f<a.jqplot.postDrawSeriesShadowHooks.length;f++)a.jqplot.postDrawSeriesShadowHooks[f].call(this,b,e);b=c=d=f=g=h=null},e.prototype.toggleDisplay=function(a,b){var c,d;c=a.data.series?a.data.series:this,a.data.speed&&(d=a.data.speed),d?c.canvas._elem.is(":hidden")||!c.show?(c.show=!0,c.canvas._elem.removeClass("jqplot-series-hidden"),c.shadowCanvas._elem&&c.shadowCanvas._elem.fadeIn(d),c.canvas._elem.fadeIn(d,b),c.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+c.index).fadeIn(d)):(c.show=!1,c.canvas._elem.addClass("jqplot-series-hidden"),c.shadowCanvas._elem&&c.shadowCanvas._elem.fadeOut(d),c.canvas._elem.fadeOut(d,b),c.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+c.index).fadeOut(d)):c.canvas._elem.is(":hidden")||!c.show?(c.show=!0,c.canvas._elem.removeClass("jqplot-series-hidden"),c.shadowCanvas._elem&&c.shadowCanvas._elem.show(),c.canvas._elem.show(0,b),c.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+c.index).show()):(c.show=!1,c.canvas._elem.addClass("jqplot-series-hidden"),c.shadowCanvas._elem&&c.shadowCanvas._elem.hide(),c.canvas._elem.hide(0,b),c.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+c.index).hide())},f.prototype=new a.jqplot.ElemContainer,f.prototype.constructor=f,f.prototype.init=function(){a.isFunction(this.renderer)&&(this.renderer=new this.renderer),this.renderer.init.call(this,this.rendererOptions)},f.prototype.createElement=function(a,b){return this._offsets=a,this.renderer.createElement.call(this,b)},f.prototype.draw=function(){this.renderer.draw.call(this)},a.jqplot.GenericCanvas=function(){a.jqplot.ElemContainer.call(this),this._ctx},a.jqplot.GenericCanvas.prototype=new a.jqplot.ElemContainer,a.jqplot.GenericCanvas.prototype.constructor=a.jqplot.GenericCanvas,a.jqplot.GenericCanvas.prototype.createElement=function(b,c,d,e){this._offsets=b;var f="jqplot";c!=F&&(f=c);var g;return g=e.canvasManager.getCanvas(),null!=d&&(this._plotDimensions=d),g.width=this._plotDimensions.width-this._offsets.left-this._offsets.right,g.height=this._plotDimensions.height-this._offsets.top-this._offsets.bottom,this._elem=a(g),this._elem.css({position:"absolute",left:this._offsets.left,top:this._offsets.top}),this._elem.addClass(f),g=e.canvasManager.initCanvas(g),g=null,this._elem},a.jqplot.GenericCanvas.prototype.setContext=function(){return this._ctx=this._elem.get(0).getContext("2d"),this._ctx;
},a.jqplot.GenericCanvas.prototype.resetCanvas=function(){this._elem&&(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==F&&window.G_vmlCanvasManager.uninitElement(this._elem.get(0)),this._elem.emptyForce()),this._ctx=null},a.jqplot.HooksManager=function(){this.hooks=[],this.args=[]},a.jqplot.HooksManager.prototype.addOnce=function(a,b){b=b||[];for(var c=!1,d=0,e=this.hooks.length;e>d;d++)this.hooks[d]==a&&(c=!0);c||(this.hooks.push(a),this.args.push(b))},a.jqplot.HooksManager.prototype.add=function(a,b){b=b||[],this.hooks.push(a),this.args.push(b)},a.jqplot.EventListenerManager=function(){this.hooks=[]},a.jqplot.EventListenerManager.prototype.addOnce=function(a,b){for(var c,d,e=!1,d=0,f=this.hooks.length;f>d;d++)c=this.hooks[d],c[0]==a&&c[1]==b&&(e=!0);e||this.hooks.push([a,b])},a.jqplot.EventListenerManager.prototype.add=function(a,b){this.hooks.push([a,b])};var G=["yMidAxis","xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];a.jqplot.computeHighlightColors=function(b){var c;if(a.isArray(b)){c=[];for(var d=0;d<b.length;d++){for(var e=a.jqplot.getColorComponents(b[d]),f=[e[0],e[1],e[2]],g=f[0]+f[1]+f[2],h=0;3>h;h++)f[h]=g>660?.85*f[h]:.73*f[h]+90,f[h]=parseInt(f[h],10),f[h]>255?255:f[h];f[3]=.3+.35*e[3],c.push("rgba("+f[0]+","+f[1]+","+f[2]+","+f[3]+")")}}else{for(var e=a.jqplot.getColorComponents(b),f=[e[0],e[1],e[2]],g=f[0]+f[1]+f[2],h=0;3>h;h++)f[h]=g>660?.85*f[h]:.73*f[h]+90,f[h]=parseInt(f[h],10),f[h]>255?255:f[h];f[3]=.3+.35*e[3],c="rgba("+f[0]+","+f[1]+","+f[2]+","+f[3]+")"}return c},a.jqplot.ColorGenerator=function(b){b=b||a.jqplot.config.defaultColors;var c=0;this.next=function(){return c<b.length?b[c++]:(c=0,b[c++])},this.previous=function(){return c>0?b[c--]:(c=b.length-1,b[c])},this.get=function(a){var c=a-b.length*Math.floor(a/b.length);return b[c]},this.setColors=function(a){b=a},this.reset=function(){c=0},this.getIndex=function(){return c},this.setIndex=function(a){c=a}},a.jqplot.hex2rgb=function(a,b){a=a.replace("#",""),3==a.length&&(a=a.charAt(0)+a.charAt(0)+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2));var c;return c="rgba("+parseInt(a.slice(0,2),16)+", "+parseInt(a.slice(2,4),16)+", "+parseInt(a.slice(4,6),16),b&&(c+=", "+b),c+=")"},a.jqplot.rgb2hex=function(a){for(var b=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *(?:, *[0-9.]*)?\)/,c=a.match(b),d="#",e=1;4>e;e++){var f;-1!=c[e].search(/%/)?(f=parseInt(255*c[e]/100,10).toString(16),1==f.length&&(f="0"+f)):(f=parseInt(c[e],10).toString(16),1==f.length&&(f="0"+f)),d+=f}return d},a.jqplot.normalize2rgb=function(b,c){if(-1!=b.search(/^ *rgba?\(/))return b;if(-1!=b.search(/^ *#?[0-9a-fA-F]?[0-9a-fA-F]/))return a.jqplot.hex2rgb(b,c);throw new Error("Invalid color spec")},a.jqplot.getColorComponents=function(b){b=a.jqplot.colorKeywordMap[b]||b;for(var c=a.jqplot.normalize2rgb(b),d=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *,? *([0-9.]* *)?\)/,e=c.match(d),f=[],g=1;4>g;g++)-1!=e[g].search(/%/)?f[g-1]=parseInt(255*e[g]/100,10):f[g-1]=parseInt(e[g],10);return f[3]=parseFloat(e[4])?parseFloat(e[4]):1,f},a.jqplot.colorKeywordMap={aliceblue:"rgb(240, 248, 255)",antiquewhite:"rgb(250, 235, 215)",aqua:"rgb( 0, 255, 255)",aquamarine:"rgb(127, 255, 212)",azure:"rgb(240, 255, 255)",beige:"rgb(245, 245, 220)",bisque:"rgb(255, 228, 196)",black:"rgb( 0, 0, 0)",blanchedalmond:"rgb(255, 235, 205)",blue:"rgb( 0, 0, 255)",blueviolet:"rgb(138, 43, 226)",brown:"rgb(165, 42, 42)",burlywood:"rgb(222, 184, 135)",cadetblue:"rgb( 95, 158, 160)",chartreuse:"rgb(127, 255, 0)",chocolate:"rgb(210, 105, 30)",coral:"rgb(255, 127, 80)",cornflowerblue:"rgb(100, 149, 237)",cornsilk:"rgb(255, 248, 220)",crimson:"rgb(220, 20, 60)",cyan:"rgb( 0, 255, 255)",darkblue:"rgb( 0, 0, 139)",darkcyan:"rgb( 0, 139, 139)",darkgoldenrod:"rgb(184, 134, 11)",darkgray:"rgb(169, 169, 169)",darkgreen:"rgb( 0, 100, 0)",darkgrey:"rgb(169, 169, 169)",darkkhaki:"rgb(189, 183, 107)",darkmagenta:"rgb(139, 0, 139)",darkolivegreen:"rgb( 85, 107, 47)",darkorange:"rgb(255, 140, 0)",darkorchid:"rgb(153, 50, 204)",darkred:"rgb(139, 0, 0)",darksalmon:"rgb(233, 150, 122)",darkseagreen:"rgb(143, 188, 143)",darkslateblue:"rgb( 72, 61, 139)",darkslategray:"rgb( 47, 79, 79)",darkslategrey:"rgb( 47, 79, 79)",darkturquoise:"rgb( 0, 206, 209)",darkviolet:"rgb(148, 0, 211)",deeppink:"rgb(255, 20, 147)",deepskyblue:"rgb( 0, 191, 255)",dimgray:"rgb(105, 105, 105)",dimgrey:"rgb(105, 105, 105)",dodgerblue:"rgb( 30, 144, 255)",firebrick:"rgb(178, 34, 34)",floralwhite:"rgb(255, 250, 240)",forestgreen:"rgb( 34, 139, 34)",fuchsia:"rgb(255, 0, 255)",gainsboro:"rgb(220, 220, 220)",ghostwhite:"rgb(248, 248, 255)",gold:"rgb(255, 215, 0)",goldenrod:"rgb(218, 165, 32)",gray:"rgb(128, 128, 128)",grey:"rgb(128, 128, 128)",green:"rgb( 0, 128, 0)",greenyellow:"rgb(173, 255, 47)",honeydew:"rgb(240, 255, 240)",hotpink:"rgb(255, 105, 180)",indianred:"rgb(205, 92, 92)",indigo:"rgb( 75, 0, 130)",ivory:"rgb(255, 255, 240)",khaki:"rgb(240, 230, 140)",lavender:"rgb(230, 230, 250)",lavenderblush:"rgb(255, 240, 245)",lawngreen:"rgb(124, 252, 0)",lemonchiffon:"rgb(255, 250, 205)",lightblue:"rgb(173, 216, 230)",lightcoral:"rgb(240, 128, 128)",lightcyan:"rgb(224, 255, 255)",lightgoldenrodyellow:"rgb(250, 250, 210)",lightgray:"rgb(211, 211, 211)",lightgreen:"rgb(144, 238, 144)",lightgrey:"rgb(211, 211, 211)",lightpink:"rgb(255, 182, 193)",lightsalmon:"rgb(255, 160, 122)",lightseagreen:"rgb( 32, 178, 170)",lightskyblue:"rgb(135, 206, 250)",lightslategray:"rgb(119, 136, 153)",lightslategrey:"rgb(119, 136, 153)",lightsteelblue:"rgb(176, 196, 222)",lightyellow:"rgb(255, 255, 224)",lime:"rgb( 0, 255, 0)",limegreen:"rgb( 50, 205, 50)",linen:"rgb(250, 240, 230)",magenta:"rgb(255, 0, 255)",maroon:"rgb(128, 0, 0)",mediumaquamarine:"rgb(102, 205, 170)",mediumblue:"rgb( 0, 0, 205)",mediumorchid:"rgb(186, 85, 211)",mediumpurple:"rgb(147, 112, 219)",mediumseagreen:"rgb( 60, 179, 113)",mediumslateblue:"rgb(123, 104, 238)",mediumspringgreen:"rgb( 0, 250, 154)",mediumturquoise:"rgb( 72, 209, 204)",mediumvioletred:"rgb(199, 21, 133)",midnightblue:"rgb( 25, 25, 112)",mintcream:"rgb(245, 255, 250)",mistyrose:"rgb(255, 228, 225)",moccasin:"rgb(255, 228, 181)",navajowhite:"rgb(255, 222, 173)",navy:"rgb( 0, 0, 128)",oldlace:"rgb(253, 245, 230)",olive:"rgb(128, 128, 0)",olivedrab:"rgb(107, 142, 35)",orange:"rgb(255, 165, 0)",orangered:"rgb(255, 69, 0)",orchid:"rgb(218, 112, 214)",palegoldenrod:"rgb(238, 232, 170)",palegreen:"rgb(152, 251, 152)",paleturquoise:"rgb(175, 238, 238)",palevioletred:"rgb(219, 112, 147)",papayawhip:"rgb(255, 239, 213)",peachpuff:"rgb(255, 218, 185)",peru:"rgb(205, 133, 63)",pink:"rgb(255, 192, 203)",plum:"rgb(221, 160, 221)",powderblue:"rgb(176, 224, 230)",purple:"rgb(128, 0, 128)",red:"rgb(255, 0, 0)",rosybrown:"rgb(188, 143, 143)",royalblue:"rgb( 65, 105, 225)",saddlebrown:"rgb(139, 69, 19)",salmon:"rgb(250, 128, 114)",sandybrown:"rgb(244, 164, 96)",seagreen:"rgb( 46, 139, 87)",seashell:"rgb(255, 245, 238)",sienna:"rgb(160, 82, 45)",silver:"rgb(192, 192, 192)",skyblue:"rgb(135, 206, 235)",slateblue:"rgb(106, 90, 205)",slategray:"rgb(112, 128, 144)",slategrey:"rgb(112, 128, 144)",snow:"rgb(255, 250, 250)",springgreen:"rgb( 0, 255, 127)",steelblue:"rgb( 70, 130, 180)",tan:"rgb(210, 180, 140)",teal:"rgb( 0, 128, 128)",thistle:"rgb(216, 191, 216)",tomato:"rgb(255, 99, 71)",turquoise:"rgb( 64, 224, 208)",violet:"rgb(238, 130, 238)",wheat:"rgb(245, 222, 179)",white:"rgb(255, 255, 255)",whitesmoke:"rgb(245, 245, 245)",yellow:"rgb(255, 255, 0)",yellowgreen:"rgb(154, 205, 50)"},a.jqplot.AxisLabelRenderer=function(b){a.jqplot.ElemContainer.call(this),this.axis,this.show=!0,this.label="",this.fontFamily=null,this.fontSize=null,this.textColor=null,this._elem,this.escapeHTML=!1,a.extend(!0,this,b)},a.jqplot.AxisLabelRenderer.prototype=new a.jqplot.ElemContainer,a.jqplot.AxisLabelRenderer.prototype.constructor=a.jqplot.AxisLabelRenderer,a.jqplot.AxisLabelRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.AxisLabelRenderer.prototype.draw=function(b,c){return this._elem&&(this._elem.emptyForce(),this._elem=null),this._elem=a('<div style="position:absolute;" class="jqplot-'+this.axis+'-label"></div>'),Number(this.label)&&this._elem.css("white-space","nowrap"),this.escapeHTML?this._elem.text(this.label):this._elem.html(this.label),this.fontFamily&&this._elem.css("font-family",this.fontFamily),this.fontSize&&this._elem.css("font-size",this.fontSize),this.textColor&&this._elem.css("color",this.textColor),this._elem},a.jqplot.AxisLabelRenderer.prototype.pack=function(){},a.jqplot.AxisTickRenderer=function(b){a.jqplot.ElemContainer.call(this),this.mark="outside",this.axis,this.showMark=!0,this.showGridline=!0,this.isMinorTick=!1,this.size=4,this.markSize=6,this.show=!0,this.showLabel=!0,this.label=null,this.value=null,this._styles={},this.formatter=a.jqplot.DefaultTickFormatter,this.prefix="",this.suffix="",this.formatString="",this.fontFamily,this.fontSize,this.textColor,this.escapeHTML=!1,this._elem,this._breakTick=!1,a.extend(!0,this,b)},a.jqplot.AxisTickRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.AxisTickRenderer.prototype=new a.jqplot.ElemContainer,a.jqplot.AxisTickRenderer.prototype.constructor=a.jqplot.AxisTickRenderer,a.jqplot.AxisTickRenderer.prototype.setTick=function(a,b,c){return this.value=a,this.axis=b,c&&(this.isMinorTick=!0),this},a.jqplot.AxisTickRenderer.prototype.draw=function(){null===this.label&&(this.label=this.prefix+this.formatter(this.formatString,this.value)+this.suffix);var b={position:"absolute"};Number(this.label)&&(b.whitSpace="nowrap"),this._elem&&(this._elem.emptyForce(),this._elem=null),this._elem=a(document.createElement("div")),this._elem.addClass("jqplot-"+this.axis+"-tick"),this.escapeHTML?this._elem.text(this.label):this._elem.html(this.label),this._elem.css(b);for(var c in this._styles)this._elem.css(c,this._styles[c]);return this.fontFamily&&this._elem.css("font-family",this.fontFamily),this.fontSize&&this._elem.css("font-size",this.fontSize),this.textColor&&this._elem.css("color",this.textColor),this._breakTick&&this._elem.addClass("jqplot-breakTick"),this._elem},a.jqplot.DefaultTickFormatter=function(b,c){return"number"==typeof c?(b||(b=a.jqplot.config.defaultTickFormatString),a.jqplot.sprintf(b,c)):String(c)},a.jqplot.PercentTickFormatter=function(b,c){return"number"==typeof c?(c=100*c,b||(b=a.jqplot.config.defaultTickFormatString),a.jqplot.sprintf(b,c)):String(c)},a.jqplot.AxisTickRenderer.prototype.pack=function(){},a.jqplot.CanvasGridRenderer=function(){this.shadowRenderer=new a.jqplot.ShadowRenderer},a.jqplot.CanvasGridRenderer.prototype.init=function(b){this._ctx,a.extend(!0,this,b);var c={lineJoin:"miter",lineCap:"round",fill:!1,isarc:!1,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.shadowWidth,closePath:!1,strokeStyle:this.shadowColor};this.renderer.shadowRenderer.init(c)},a.jqplot.CanvasGridRenderer.prototype.createElement=function(b){var c;this._elem&&(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==F&&(c=this._elem.get(0),window.G_vmlCanvasManager.uninitElement(c),c=null),this._elem.emptyForce(),this._elem=null),c=b.canvasManager.getCanvas();var d=this._plotDimensions.width,e=this._plotDimensions.height;return c.width=d,c.height=e,this._elem=a(c),this._elem.addClass("jqplot-grid-canvas"),this._elem.css({position:"absolute",left:0,top:0}),c=b.canvasManager.initCanvas(c),this._top=this._offsets.top,this._bottom=e-this._offsets.bottom,this._left=this._offsets.left,this._right=d-this._offsets.right,this._width=this._right-this._left,this._height=this._bottom-this._top,c=null,this._elem},a.jqplot.CanvasGridRenderer.prototype.draw=function(){function b(b,d,e,f,g){c.save(),g=g||{},(null==g.lineWidth||0!=g.lineWidth)&&(a.extend(!0,c,g),c.beginPath(),c.moveTo(b,d),c.lineTo(e,f),c.stroke(),c.restore())}this._ctx=this._elem.get(0).getContext("2d");var c=this._ctx,d=this._axes;c.save(),c.clearRect(0,0,this._plotDimensions.width,this._plotDimensions.height),c.fillStyle=this.backgroundColor||this.background,c.fillRect(this._left,this._top,this._width,this._height),c.save(),c.lineJoin="miter",c.lineCap="butt",c.lineWidth=this.gridLineWidth,c.strokeStyle=this.gridLineColor;for(var e,f,g,h,i=["xaxis","yaxis","x2axis","y2axis"],j=4;j>0;j--){var k=i[j-1],l=d[k],m=l._ticks,n=m.length;if(l.show){if(l.drawBaseline){var o={};switch(null!==l.baselineWidth&&(o.lineWidth=l.baselineWidth),null!==l.baselineColor&&(o.strokeStyle=l.baselineColor),k){case"xaxis":b(this._left,this._bottom,this._right,this._bottom,o);break;case"yaxis":b(this._left,this._bottom,this._left,this._top,o);break;case"x2axis":b(this._left,this._bottom,this._right,this._bottom,o);break;case"y2axis":b(this._right,this._bottom,this._right,this._top,o)}}for(var p=n;p>0;p--){var q=m[p-1];if(q.show){var r=Math.round(l.u2p(q.value))+.5;switch(k){case"xaxis":if(q.showGridline&&this.drawGridlines&&(!q.isMinorTick&&l.drawMajorGridlines||q.isMinorTick&&l.drawMinorGridlines)&&b(r,this._top,r,this._bottom),q.showMark&&q.mark&&(!q.isMinorTick&&l.drawMajorTickMarks||q.isMinorTick&&l.drawMinorTickMarks)){g=q.markSize,h=q.mark;var r=Math.round(l.u2p(q.value))+.5;switch(h){case"outside":e=this._bottom,f=this._bottom+g;break;case"inside":e=this._bottom-g,f=this._bottom;break;case"cross":e=this._bottom-g,f=this._bottom+g;break;default:e=this._bottom,f=this._bottom+g}this.shadow&&this.renderer.shadowRenderer.draw(c,[[r,e],[r,f]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:.75*this.gridLineWidth,depth:2,fill:!1,closePath:!1}),b(r,e,r,f)}break;case"yaxis":if(q.showGridline&&this.drawGridlines&&(!q.isMinorTick&&l.drawMajorGridlines||q.isMinorTick&&l.drawMinorGridlines)&&b(this._right,r,this._left,r),q.showMark&&q.mark&&(!q.isMinorTick&&l.drawMajorTickMarks||q.isMinorTick&&l.drawMinorTickMarks)){g=q.markSize,h=q.mark;var r=Math.round(l.u2p(q.value))+.5;switch(h){case"outside":e=this._left-g,f=this._left;break;case"inside":e=this._left,f=this._left+g;break;case"cross":e=this._left-g,f=this._left+g;break;default:e=this._left-g,f=this._left}this.shadow&&this.renderer.shadowRenderer.draw(c,[[e,r],[f,r]],{lineCap:"butt",lineWidth:1.5*this.gridLineWidth,offset:.75*this.gridLineWidth,fill:!1,closePath:!1}),b(e,r,f,r,{strokeStyle:l.borderColor})}break;case"x2axis":if(q.showGridline&&this.drawGridlines&&(!q.isMinorTick&&l.drawMajorGridlines||q.isMinorTick&&l.drawMinorGridlines)&&b(r,this._bottom,r,this._top),q.showMark&&q.mark&&(!q.isMinorTick&&l.drawMajorTickMarks||q.isMinorTick&&l.drawMinorTickMarks)){g=q.markSize,h=q.mark;var r=Math.round(l.u2p(q.value))+.5;switch(h){case"outside":e=this._top-g,f=this._top;break;case"inside":e=this._top,f=this._top+g;break;case"cross":e=this._top-g,f=this._top+g;break;default:e=this._top-g,f=this._top}this.shadow&&this.renderer.shadowRenderer.draw(c,[[r,e],[r,f]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:.75*this.gridLineWidth,depth:2,fill:!1,closePath:!1}),b(r,e,r,f)}break;case"y2axis":if(q.showGridline&&this.drawGridlines&&(!q.isMinorTick&&l.drawMajorGridlines||q.isMinorTick&&l.drawMinorGridlines)&&b(this._left,r,this._right,r),q.showMark&&q.mark&&(!q.isMinorTick&&l.drawMajorTickMarks||q.isMinorTick&&l.drawMinorTickMarks)){g=q.markSize,h=q.mark;var r=Math.round(l.u2p(q.value))+.5;switch(h){case"outside":e=this._right,f=this._right+g;break;case"inside":e=this._right-g,f=this._right;break;case"cross":e=this._right-g,f=this._right+g;break;default:e=this._right,f=this._right+g}this.shadow&&this.renderer.shadowRenderer.draw(c,[[e,r],[f,r]],{lineCap:"butt",lineWidth:1.5*this.gridLineWidth,offset:.75*this.gridLineWidth,fill:!1,closePath:!1}),b(e,r,f,r,{strokeStyle:l.borderColor})}}}}q=null}l=null,m=null}i=["y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis","yMidAxis"];for(var j=7;j>0;j--){var l=d[i[j-1]],m=l._ticks;if(l.show){var s=m[l.numberTicks-1],t=m[0],u=l.getLeft(),v=[[u,s.getTop()+s.getHeight()/2],[u,t.getTop()+t.getHeight()/2+1]];this.shadow&&this.renderer.shadowRenderer.draw(c,v,{lineCap:"butt",fill:!1,closePath:!1}),b(v[0][0],v[0][1],v[1][0],v[1][1],{lineCap:"butt",strokeStyle:l.borderColor,lineWidth:l.borderWidth});for(var p=m.length;p>0;p--){var q=m[p-1];g=q.markSize,h=q.mark;var r=Math.round(l.u2p(q.value))+.5;if(q.showMark&&q.mark){switch(h){case"outside":e=u,f=u+g;break;case"inside":e=u-g,f=u;break;case"cross":e=u-g,f=u+g;break;default:e=u,f=u+g}v=[[e,r],[f,r]],this.shadow&&this.renderer.shadowRenderer.draw(c,v,{lineCap:"butt",lineWidth:1.5*this.gridLineWidth,offset:.75*this.gridLineWidth,fill:!1,closePath:!1}),b(e,r,f,r,{strokeStyle:l.borderColor})}q=null}t=null}l=null,m=null}if(c.restore(),this.shadow){var v=[[this._left,this._bottom],[this._right,this._bottom],[this._right,this._top]];this.renderer.shadowRenderer.draw(c,v)}0!=this.borderWidth&&this.drawBorder&&(b(this._left,this._top,this._right,this._top,{lineCap:"round",strokeStyle:d.x2axis.borderColor,lineWidth:d.x2axis.borderWidth}),b(this._right,this._top,this._right,this._bottom,{lineCap:"round",strokeStyle:d.y2axis.borderColor,lineWidth:d.y2axis.borderWidth}),b(this._right,this._bottom,this._left,this._bottom,{lineCap:"round",strokeStyle:d.xaxis.borderColor,lineWidth:d.xaxis.borderWidth}),b(this._left,this._bottom,this._left,this._top,{lineCap:"round",strokeStyle:d.yaxis.borderColor,lineWidth:d.yaxis.borderWidth})),c.restore(),c=null,d=null},a.jqplot.DivTitleRenderer=function(){},a.jqplot.DivTitleRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.DivTitleRenderer.prototype.draw=function(){this._elem&&(this._elem.emptyForce(),this._elem=null);var b=(this.renderer,document.createElement("div"));if(this._elem=a(b),this._elem.addClass("jqplot-title"),this.text){if(this.text){var c;this.color?c=this.color:this.textColor&&(c=this.textColor);var d={position:"absolute",top:"0px",left:"0px"};this._plotWidth&&(d.width=this._plotWidth+"px"),this.fontSize&&(d.fontSize=this.fontSize),"string"==typeof this.textAlign?d.textAlign=this.textAlign:d.textAlign="center",c&&(d.color=c),this.paddingBottom&&(d.paddingBottom=this.paddingBottom),this.fontFamily&&(d.fontFamily=this.fontFamily),this._elem.css(d),this.escapeHtml?this._elem.text(this.text):this._elem.html(this.text)}}else this.show=!1,this._elem.height(0),this._elem.width(0);return b=null,this._elem},a.jqplot.DivTitleRenderer.prototype.pack=function(){};var H=.1;a.jqplot.LinePattern=function(b,c){var d={dotted:[H,a.jqplot.config.dotGapLength],dashed:[a.jqplot.config.dashLength,a.jqplot.config.gapLength],solid:null};if("string"==typeof c)if("."===c[0]||"-"===c[0]){var e=c;c=[];for(var f=0,g=e.length;g>f;f++){if("."===e[f])c.push(H);else{if("-"!==e[f])continue;c.push(a.jqplot.config.dashLength)}c.push(a.jqplot.config.gapLength)}}else c=d[c];if(!c||!c.length)return b;var h=0,i=c[0],j=0,k=0,l=0,m=0,n=function(a,c){b.moveTo(a,c),j=a,k=c,l=a,m=c},o=function(a,d){var e=b.lineWidth,f=a-j,g=d-k,l=Math.sqrt(f*f+g*g);if(l>0&&e>0)for(f/=l,g/=l;;){var m=e*i;if(!(l>m)){j=a,k=d,0==(1&h)?b.lineTo(j,k):b.moveTo(j,k),i-=l/e;break}j+=m*f,k+=m*g,0==(1&h)?b.lineTo(j,k):b.moveTo(j,k),l-=m,h++,h>=c.length&&(h=0),i=c[h]}},p=function(){b.beginPath()},q=function(){o(l,m)};return{moveTo:n,lineTo:o,beginPath:p,closePath:q}},a.jqplot.LineRenderer=function(){this.shapeRenderer=new a.jqplot.ShapeRenderer,this.shadowRenderer=new a.jqplot.ShadowRenderer},a.jqplot.LineRenderer.prototype.init=function(b,c){b=b||{},this._type="line",this.renderer.animation={show:!1,direction:"left",speed:2500,_supported:!0},this.renderer.smooth=!1,this.renderer.tension=null,this.renderer.constrainSmoothing=!0,this.renderer._smoothedData=[],this.renderer._smoothedPlotData=[],this.renderer._hiBandGridData=[],this.renderer._lowBandGridData=[],this.renderer._hiBandSmoothedData=[],this.renderer._lowBandSmoothedData=[],this.renderer.bandData=[],this.renderer.bands={show:!1,hiData:[],lowData:[],color:this.color,showLines:!1,fill:!0,fillColor:null,_min:null,_max:null,interval:"3%"};var d={highlightMouseOver:b.highlightMouseOver,highlightMouseDown:b.highlightMouseDown,highlightColor:b.highlightColor};delete b.highlightMouseOver,delete b.highlightMouseDown,delete b.highlightColor,a.extend(!0,this.renderer,b),this.renderer.options=b,this.renderer.bandData.length>1&&(!b.bands||null==b.bands.show)?this.renderer.bands.show=!0:b.bands&&null==b.bands.show&&null!=b.bands.interval&&(this.renderer.bands.show=!0),this.fill&&(this.renderer.bands.show=!1),this.renderer.bands.show&&this.renderer.initBands.call(this,this.renderer.options,c),this._stack&&(this.renderer.smooth=!1);var e={lineJoin:this.lineJoin,lineCap:this.lineCap,fill:this.fill,isarc:!1,strokeStyle:this.color,fillStyle:this.fillColor,lineWidth:this.lineWidth,linePattern:this.linePattern,closePath:this.fill};this.renderer.shapeRenderer.init(e);var f=b.shadowOffset;null==f&&(f=this.lineWidth>2.5?1.25*(1+.6*(Math.atan(this.lineWidth/2.5)/.785398163-1)):1.25*Math.atan(this.lineWidth/2.5)/.785398163);var g={lineJoin:this.lineJoin,lineCap:this.lineCap,fill:this.fill,isarc:!1,angle:this.shadowAngle,offset:f,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.lineWidth,linePattern:this.linePattern,closePath:this.fill};if(this.renderer.shadowRenderer.init(g),this._areaPoints=[],this._boundingBox=[[],[]],!this.isTrendline&&this.fill||this.renderer.bands.show){if(this.highlightMouseOver=!0,this.highlightMouseDown=!1,this.highlightColor=null,d.highlightMouseDown&&null==d.highlightMouseOver&&(d.highlightMouseOver=!1),a.extend(!0,this,{highlightMouseOver:d.highlightMouseOver,highlightMouseDown:d.highlightMouseDown,highlightColor:d.highlightColor}),!this.highlightColor){var h=this.renderer.bands.show?this.renderer.bands.fillColor:this.fillColor;this.highlightColor=a.jqplot.computeHighlightColors(h)}this.highlighter&&(this.highlighter.show=!1)}!this.isTrendline&&c&&(c.plugins.lineRenderer={},c.postInitHooks.addOnce(l),c.postDrawHooks.addOnce(m),c.eventListenerHooks.addOnce("jqplotMouseMove",p),c.eventListenerHooks.addOnce("jqplotMouseDown",q),c.eventListenerHooks.addOnce("jqplotMouseUp",r),c.eventListenerHooks.addOnce("jqplotClick",s),c.eventListenerHooks.addOnce("jqplotRightClick",t))},a.jqplot.LineRenderer.prototype.initBands=function(b,c){var d=b.bandData||[],e=this.renderer.bands;e.hiData=[],e.lowData=[];var f=this.data;if(e._max=null,e._min=null,2==d.length)if(a.isArray(d[0][0])){for(var g,h=0,i=0,j=0,k=d[0].length;k>j;j++)g=d[0][j],(null!=g[1]&&g[1]>e._max||null==e._max)&&(e._max=g[1]),(null!=g[1]&&g[1]<e._min||null==e._min)&&(e._min=g[1]);for(var j=0,k=d[1].length;k>j;j++)g=d[1][j],(null!=g[1]&&g[1]>e._max||null==e._max)&&(e._max=g[1],i=1),(null!=g[1]&&g[1]<e._min||null==e._min)&&(e._min=g[1],h=1);i===h&&(e.show=!1),e.hiData=d[i],e.lowData=d[h]}else if(d[0].length===f.length&&d[1].length===f.length)for(var l=d[0][0]>d[1][0]?0:1,m=l?0:1,j=0,k=f.length;k>j;j++)e.hiData.push([f[j][0],d[l][j]]),e.lowData.push([f[j][0],d[m][j]]);else e.show=!1;else if(d.length>2&&!a.isArray(d[0][0]))for(var l=d[0][0]>d[0][1]?0:1,m=l?0:1,j=0,k=d.length;k>j;j++)e.hiData.push([f[j][0],d[j][l]]),e.lowData.push([f[j][0],d[j][m]]);else{var n=e.interval,o=null,p=null,q=null,r=null;if(a.isArray(n)?(o=n[0],p=n[1]):o=n,isNaN(o)?"%"===o.charAt(o.length-1)&&(q="multiply",o=parseFloat(o)/100+1):(o=parseFloat(o),q="add"),null!==p&&isNaN(p)?"%"===p.charAt(p.length-1)&&(r="multiply",p=parseFloat(p)/100+1):null!==p&&(p=parseFloat(p),r="add"),null!==o){if(null===p&&(p=-o,r=q,"multiply"===r&&(p+=2)),p>o){var s=o;o=p,p=s,s=q,q=r,r=s}for(var j=0,k=f.length;k>j;j++){switch(q){case"add":e.hiData.push([f[j][0],f[j][1]+o]);break;case"multiply":e.hiData.push([f[j][0],f[j][1]*o])}switch(r){case"add":e.lowData.push([f[j][0],f[j][1]+p]);break;case"multiply":e.lowData.push([f[j][0],f[j][1]*p])}}}else e.show=!1}for(var t=e.hiData,u=e.lowData,j=0,k=t.length;k>j;j++)(null!=t[j][1]&&t[j][1]>e._max||null==e._max)&&(e._max=t[j][1]);for(var j=0,k=u.length;k>j;j++)(null!=u[j][1]&&u[j][1]<e._min||null==e._min)&&(e._min=u[j][1]);if(null===e.fillColor){var v=a.jqplot.getColorComponents(e.color);v[3]=.5*v[3],e.fillColor="rgba("+v[0]+", "+v[1]+", "+v[2]+", "+v[3]+")"}},a.jqplot.LineRenderer.prototype.setGridData=function(a){var b=this._xaxis.series_u2p,c=this._yaxis.series_u2p,d=this._plotData,e=this._prevPlotData;this.gridData=[],this._prevGridData=[],this.renderer._smoothedData=[],this.renderer._smoothedPlotData=[],this.renderer._hiBandGridData=[],this.renderer._lowBandGridData=[],this.renderer._hiBandSmoothedData=[],this.renderer._lowBandSmoothedData=[];for(var f=this.renderer.bands,g=!1,h=0,i=d.length;i>h;h++)null!=d[h][0]&&null!=d[h][1]?this.gridData.push([b.call(this._xaxis,d[h][0]),c.call(this._yaxis,d[h][1])]):null==d[h][0]?(g=!0,this.gridData.push([null,c.call(this._yaxis,d[h][1])])):null==d[h][1]&&(g=!0,this.gridData.push([b.call(this._xaxis,d[h][0]),null])),null!=e[h]&&null!=e[h][0]&&null!=e[h][1]?this._prevGridData.push([b.call(this._xaxis,e[h][0]),c.call(this._yaxis,e[h][1])]):null!=e[h]&&null==e[h][0]?this._prevGridData.push([null,c.call(this._yaxis,e[h][1])]):null!=e[h]&&null!=e[h][0]&&null==e[h][1]&&this._prevGridData.push([b.call(this._xaxis,e[h][0]),null]);if(g&&(this.renderer.smooth=!1,"line"===this._type&&(f.show=!1)),"line"===this._type&&f.show){for(var h=0,i=f.hiData.length;i>h;h++)this.renderer._hiBandGridData.push([b.call(this._xaxis,f.hiData[h][0]),c.call(this._yaxis,f.hiData[h][1])]);for(var h=0,i=f.lowData.length;i>h;h++)this.renderer._lowBandGridData.push([b.call(this._xaxis,f.lowData[h][0]),c.call(this._yaxis,f.lowData[h][1])])}if("line"===this._type&&this.renderer.smooth&&this.gridData.length>2){var l;this.renderer.constrainSmoothing?(l=j.call(this,this.gridData),this.renderer._smoothedData=l[0],this.renderer._smoothedPlotData=l[1],f.show&&(l=j.call(this,this.renderer._hiBandGridData),this.renderer._hiBandSmoothedData=l[0],l=j.call(this,this.renderer._lowBandGridData),this.renderer._lowBandSmoothedData=l[0]),l=null):(l=k.call(this,this.gridData),this.renderer._smoothedData=l[0],this.renderer._smoothedPlotData=l[1],f.show&&(l=k.call(this,this.renderer._hiBandGridData),this.renderer._hiBandSmoothedData=l[0],l=k.call(this,this.renderer._lowBandGridData),this.renderer._lowBandSmoothedData=l[0]),l=null)}},a.jqplot.LineRenderer.prototype.makeGridData=function(a,b){var c=this._xaxis.series_u2p,d=this._yaxis.series_u2p,e=[];this.renderer._smoothedData=[],this.renderer._smoothedPlotData=[],this.renderer._hiBandGridData=[],this.renderer._lowBandGridData=[],this.renderer._hiBandSmoothedData=[],this.renderer._lowBandSmoothedData=[];for(var f=this.renderer.bands,g=!1,h=0;h<a.length;h++)null!=a[h][0]&&null!=a[h][1]?(this.step&&h>0&&e.push([c.call(this._xaxis,a[h][0]),d.call(this._yaxis,a[h-1][1])]),e.push([c.call(this._xaxis,a[h][0]),d.call(this._yaxis,a[h][1])])):null==a[h][0]?(g=!0,e.push([null,d.call(this._yaxis,a[h][1])])):null==a[h][1]&&(g=!0,e.push([c.call(this._xaxis,a[h][0]),null]));if(g&&(this.renderer.smooth=!1,"line"===this._type&&(f.show=!1)),"line"===this._type&&f.show){for(var h=0,i=f.hiData.length;i>h;h++)this.renderer._hiBandGridData.push([c.call(this._xaxis,f.hiData[h][0]),d.call(this._yaxis,f.hiData[h][1])]);for(var h=0,i=f.lowData.length;i>h;h++)this.renderer._lowBandGridData.push([c.call(this._xaxis,f.lowData[h][0]),d.call(this._yaxis,f.lowData[h][1])])}if("line"===this._type&&this.renderer.smooth&&e.length>2){var l;this.renderer.constrainSmoothing?(l=j.call(this,e),this.renderer._smoothedData=l[0],this.renderer._smoothedPlotData=l[1],f.show&&(l=j.call(this,this.renderer._hiBandGridData),this.renderer._hiBandSmoothedData=l[0],l=j.call(this,this.renderer._lowBandGridData),this.renderer._lowBandSmoothedData=l[0]),l=null):(l=k.call(this,e),this.renderer._smoothedData=l[0],this.renderer._smoothedPlotData=l[1],f.show&&(l=k.call(this,this.renderer._hiBandGridData),this.renderer._hiBandSmoothedData=l[0],l=k.call(this,this.renderer._lowBandGridData),this.renderer._lowBandSmoothedData=l[0]),l=null)}return e},a.jqplot.LineRenderer.prototype.draw=function(b,c,d,e){var f,g,h,i,j,k=a.extend(!0,{},d),l=k.shadow!=F?k.shadow:this.shadow,m=k.showLine!=F?k.showLine:this.showLine,n=k.fill!=F?k.fill:this.fill,o=k.fillAndStroke!=F?k.fillAndStroke:this.fillAndStroke;if(b.save(),c.length){if(m)if(n){if(this.fillToZero){var p=this.negativeColor;this.useNegativeColors||(p=k.fillStyle);var q=!1,r=k.fillStyle;if(o)var s=c.slice(0);if(0!=this.index&&this._stack){for(var t=this._prevGridData,f=t.length;f>0;f--)c.push(t[f-1]);l&&this.renderer.shadowRenderer.draw(b,c,k),this._areaPoints=c,this.renderer.shapeRenderer.draw(b,c,k)}else{var u=[],v=this.renderer.smooth?this.renderer._smoothedPlotData:this._plotData;this._areaPoints=[];var w=this._yaxis.series_u2p(this.fillToValue);this._xaxis.series_u2p(this.fillToValue);if(k.closePath=!0,"y"==this.fillAxis){u.push([c[0][0],w]),this._areaPoints.push([c[0][0],w]);for(var f=0;f<c.length-1;f++)if(u.push(c[f]),this._areaPoints.push(c[f]),v[f][1]*v[f+1][1]<=0){v[f][1]<0?(q=!0,k.fillStyle=p):(q=!1,k.fillStyle=r);var x=c[f][0]+(c[f+1][0]-c[f][0])*(w-c[f][1])/(c[f+1][1]-c[f][1]);u.push([x,w]),this._areaPoints.push([x,w]),l&&this.renderer.shadowRenderer.draw(b,u,k),this.renderer.shapeRenderer.draw(b,u,k),u=[[x,w]]}v[c.length-1][1]<0?(q=!0,k.fillStyle=p):(q=!1,k.fillStyle=r),u.push(c[c.length-1]),this._areaPoints.push(c[c.length-1]),u.push([c[c.length-1][0],w]),this._areaPoints.push([c[c.length-1][0],w])}l&&this.renderer.shadowRenderer.draw(b,u,k),this.renderer.shapeRenderer.draw(b,u,k)}}else{if(o)var s=c.slice(0);if(0!=this.index&&this._stack)for(var t=this._prevGridData,f=t.length;f>0;f--)c.push(t[f-1]);else{var y=b.canvas.height;c.unshift([c[0][0],y]);var z=c.length;c.push([c[z-1][0],y])}this._areaPoints=c,l&&this.renderer.shadowRenderer.draw(b,c,k),this.renderer.shapeRenderer.draw(b,c,k)}if(o){var A=a.extend(!0,{},k,{fill:!1,closePath:!1});if(this.renderer.shapeRenderer.draw(b,s,A),this.markerRenderer.show)for(this.renderer.smooth&&(s=this.gridData),f=0;f<s.length;f++)this.markerRenderer.draw(s[f][0],s[f][1],b,k.markerOptions)}}else{if(this.renderer.bands.show){var B,C=a.extend(!0,{},k);this.renderer.bands.showLines&&(B=this.renderer.smooth?this.renderer._hiBandSmoothedData:this.renderer._hiBandGridData,this.renderer.shapeRenderer.draw(b,B,k),B=this.renderer.smooth?this.renderer._lowBandSmoothedData:this.renderer._lowBandGridData,this.renderer.shapeRenderer.draw(b,B,C)),this.renderer.bands.fill&&(B=this.renderer.smooth?this.renderer._hiBandSmoothedData.concat(this.renderer._lowBandSmoothedData.reverse()):this.renderer._hiBandGridData.concat(this.renderer._lowBandGridData.reverse()),this._areaPoints=B,C.closePath=!0,C.fill=!0,C.fillStyle=this.renderer.bands.fillColor,this.renderer.shapeRenderer.draw(b,B,C))}l&&this.renderer.shadowRenderer.draw(b,c,k),this.renderer.shapeRenderer.draw(b,c,k)}var g=i=h=j=null;for(f=0;f<this._areaPoints.length;f++){var D=this._areaPoints[f];(g>D[0]||null==g)&&(g=D[0]),(j<D[1]||null==j)&&(j=D[1]),(i<D[0]||null==i)&&(i=D[0]),(h>D[1]||null==h)&&(h=D[1])}if("line"===this.type&&this.renderer.bands.show&&(j=this._yaxis.series_u2p(this.renderer.bands._min),h=this._yaxis.series_u2p(this.renderer.bands._max)),this._boundingBox=[[g,j],[i,h]],this.markerRenderer.show&&!n)for(this.renderer.smooth&&(c=this.gridData),f=0;f<c.length;f++)null!=c[f][0]&&null!=c[f][1]&&this.markerRenderer.draw(c[f][0],c[f][1],b,k.markerOptions)}b.restore()},a.jqplot.LineRenderer.prototype.drawShadow=function(a,b,c){},a.jqplot.LinearAxisRenderer=function(){},a.jqplot.LinearAxisRenderer.prototype.init=function(b){this.breakPoints=null,this.breakTickLabel="&asymp;",this.drawBaseline=!0,this.baselineWidth=null,this.baselineColor=null,this.forceTickAt0=!1,this.forceTickAt100=!1,this.tickInset=0,this.minorTicks=0,this.alignTicks=!1,this._autoFormatString="",this._overrideFormatString=!1,this._scalefact=1,a.extend(!0,this,b),this.breakPoints&&(a.isArray(this.breakPoints)?(this.breakPoints.length<2||this.breakPoints[1]<=this.breakPoints[0])&&(this.breakPoints=null):this.breakPoints=null),
null!=this.numberTicks&&this.numberTicks<2&&(this.numberTicks=2),this.resetDataBounds()},a.jqplot.LinearAxisRenderer.prototype.draw=function(b,c){if(this.show){this.renderer.createTicks.call(this,c);if(this._elem&&(this._elem.emptyForce(),this._elem=null),this._elem=a(document.createElement("div")),this._elem.addClass("jqplot-axis jqplot-"+this.name),this._elem.css("position","absolute"),"xaxis"==this.name||"x2axis"==this.name?this._elem.width(this._plotDimensions.width):this._elem.height(this._plotDimensions.height),this.labelOptions.axis=this.name,this._label=new this.labelRenderer(this.labelOptions),this._label.show){var d=this._label.draw(b,c);d.appendTo(this._elem),d=null}for(var e,f=this._ticks,g=0;g<f.length;g++)e=f[g],e.show&&e.showLabel&&(!e.isMinorTick||this.showMinorTicks)&&this._elem.append(e.draw(b,c));e=null,f=null}return this._elem},a.jqplot.LinearAxisRenderer.prototype.reset=function(){this.min=this._options.min,this.max=this._options.max,this.tickInterval=this._options.tickInterval,this.numberTicks=this._options.numberTicks,this._autoFormatString="",this._overrideFormatString&&this.tickOptions&&this.tickOptions.formatString&&(this.tickOptions.formatString="")},a.jqplot.LinearAxisRenderer.prototype.set=function(){var b,c=0,d=0,e=0,f=null==this._label?!1:this._label.show;if(this.show){for(var g,h=this._ticks,i=0;i<h.length;i++)g=h[i],g._breakTick||!g.show||!g.showLabel||g.isMinorTick&&!this.showMinorTicks||(b="xaxis"==this.name||"x2axis"==this.name?g._elem.outerHeight(!0):g._elem.outerWidth(!0),b>c&&(c=b));g=null,h=null,f&&(d=this._label._elem.outerWidth(!0),e=this._label._elem.outerHeight(!0)),"xaxis"==this.name?(c+=e,this._elem.css({height:c+"px",left:"0px",bottom:"0px"})):"x2axis"==this.name?(c+=e,this._elem.css({height:c+"px",left:"0px",top:"0px"})):"yaxis"==this.name?(c+=d,this._elem.css({width:c+"px",left:"0px",top:"0px"}),f&&this._label.constructor==a.jqplot.AxisLabelRenderer&&this._label._elem.css("width",d+"px")):(c+=d,this._elem.css({width:c+"px",right:"0px",top:"0px"}),f&&this._label.constructor==a.jqplot.AxisLabelRenderer&&this._label._elem.css("width",d+"px"))}},a.jqplot.LinearAxisRenderer.prototype.createTicks=function(b){var c,d,e,f,g=this._ticks,h=this.ticks,i=this.name,j=this._dataBounds,k="x"===this.name.charAt(0)?this._plotDimensions.width:this._plotDimensions.height,l=this.min,m=this.max,n=this.numberTicks,o=this.tickInterval,p=30;if(this._scalefact=(Math.max(k,p+1)-p)/300,h.length){for(f=0;f<h.length;f++){var q=h[f],r=new this.tickRenderer(this.tickOptions);a.isArray(q)?(r.value=q[0],this.breakPoints?q[0]==this.breakPoints[0]?(r.label=this.breakTickLabel,r._breakTick=!0,r.showGridline=!1,r.showMark=!1):q[0]>this.breakPoints[0]&&q[0]<=this.breakPoints[1]?(r.show=!1,r.showGridline=!1,r.label=q[1]):r.label=q[1]:r.label=q[1],r.setTick(q[0],this.name),this._ticks.push(r)):a.isPlainObject(q)?(a.extend(!0,r,q),r.axis=this.name,this._ticks.push(r)):(r.value=q,this.breakPoints&&(q==this.breakPoints[0]?(r.label=this.breakTickLabel,r._breakTick=!0,r.showGridline=!1,r.showMark=!1):q>this.breakPoints[0]&&q<=this.breakPoints[1]&&(r.show=!1,r.showGridline=!1)),r.setTick(q,this.name),this._ticks.push(r))}this.numberTicks=h.length,this.min=this._ticks[0].value,this.max=this._ticks[this.numberTicks-1].value,this.tickInterval=(this.max-this.min)/(this.numberTicks-1)}else{k="xaxis"==i||"x2axis"==i?this._plotDimensions.width:this._plotDimensions.height;var s=this.numberTicks;this.alignTicks&&("x2axis"===this.name&&b.axes.xaxis.show?s=b.axes.xaxis.numberTicks:"y"===this.name.charAt(0)&&"yaxis"!==this.name&&"yMidAxis"!==this.name&&b.axes.yaxis.show&&(s=b.axes.yaxis.numberTicks)),c=null!=this.min?this.min:j.min,d=null!=this.max?this.max:j.max;var t,u,v,w=d-c;if(null!=this.tickOptions&&this.tickOptions.formatString||(this._overrideFormatString=!0),null==this.min||null==this.max&&null==this.tickInterval&&!this.autoscale){this.forceTickAt0&&(c>0&&(c=0),0>d&&(d=0)),this.forceTickAt100&&(c>100&&(c=100),100>d&&(d=100));var x=!1,y=!1;null!=this.min?x=!0:null!=this.max&&(y=!0);var z=a.jqplot.LinearTickGenerator(c,d,this._scalefact,s,x,y),A=null!=this.min?c:c+w*(this.padMin-1),B=null!=this.max?d:d-w*(this.padMax-1);(A>c||d>B)&&(A=null!=this.min?c:c-w*(this.padMin-1),B=null!=this.max?d:d+w*(this.padMax-1),z=a.jqplot.LinearTickGenerator(A,B,this._scalefact,s,x,y)),this.min=z[0],this.max=z[1],this.numberTicks=z[2],this._autoFormatString=z[3],this.tickInterval=z[4]}else{if(c==d){var C=.05;c>0&&(C=Math.max(Math.log(c)/Math.LN10,.05)),c-=C,d+=C}if(this.autoscale&&null==this.min&&null==this.max){for(var D,E,F,G=!1,H=!1,f=0;f<this._series.length;f++){var I=this._series[f],J="x"==I.fillAxis?I._xaxis.name:I._yaxis.name;if(this.name==J){for(var K=I._plotValues[I.fillAxis],L=K[0],M=K[0],N=1;N<K.length;N++)K[N]<L?L=K[N]:K[N]>M&&(M=K[N]);var O=(M-L)/M;I.renderer.constructor==a.jqplot.BarRenderer?L>=0&&(I.fillToZero||O>.1)?G=!0:(G=!1,H=I.fill&&I.fillToZero&&0>L&&M>0?!0:!1):I.fill?L>=0&&(I.fillToZero||O>.1)?G=!0:0>L&&M>0&&I.fillToZero?(G=!1,H=!0):(G=!1,H=!1):0>L&&(G=!1)}}if(G)this.numberTicks=2+Math.ceil((k-(this.tickSpacing-1))/this.tickSpacing),this.min=0,l=0,E=d/(this.numberTicks-1),v=Math.pow(10,Math.abs(Math.floor(Math.log(E)/Math.LN10))),E/v==parseInt(E/v,10)&&(E+=v),this.tickInterval=Math.ceil(E/v)*v,this.max=this.tickInterval*(this.numberTicks-1);else if(H){this.numberTicks=2+Math.ceil((k-(this.tickSpacing-1))/this.tickSpacing);var P=Math.ceil(Math.abs(c)/w*(this.numberTicks-1)),Q=this.numberTicks-1-P;E=Math.max(Math.abs(c/P),Math.abs(d/Q)),v=Math.pow(10,Math.abs(Math.floor(Math.log(E)/Math.LN10))),this.tickInterval=Math.ceil(E/v)*v,this.max=this.tickInterval*Q,this.min=-this.tickInterval*P}else null==this.numberTicks&&(this.tickInterval?this.numberTicks=3+Math.ceil(w/this.tickInterval):this.numberTicks=2+Math.ceil((k-(this.tickSpacing-1))/this.tickSpacing)),null==this.tickInterval?(E=w/(this.numberTicks-1),v=1>E?Math.pow(10,Math.abs(Math.floor(Math.log(E)/Math.LN10))):1,this.tickInterval=Math.ceil(E*v*this.pad)/v):v=1/this.tickInterval,D=this.tickInterval*(this.numberTicks-1),F=(D-w)/2,null==this.min&&(this.min=Math.floor(v*(c-F))/v),null==this.max&&(this.max=this.min+D);var R,S=a.jqplot.getSignificantFigures(this.tickInterval);if(S.digitsLeft>=S.significantDigits)R="%d";else{var v=Math.max(0,5-S.digitsLeft);v=Math.min(v,S.digitsRight),R="%."+v+"f"}this._autoFormatString=R}else{t=null!=this.min?this.min:c-w*(this.padMin-1),u=null!=this.max?this.max:d+w*(this.padMax-1),w=u-t,null==this.numberTicks&&(null!=this.tickInterval?this.numberTicks=Math.ceil((u-t)/this.tickInterval)+1:k>100?this.numberTicks=parseInt(3+(k-100)/75,10):this.numberTicks=2),null==this.tickInterval&&(this.tickInterval=w/(this.numberTicks-1)),null==this.max&&(u=t+this.tickInterval*(this.numberTicks-1)),null==this.min&&(t=u-this.tickInterval*(this.numberTicks-1));var R,S=a.jqplot.getSignificantFigures(this.tickInterval);if(S.digitsLeft>=S.significantDigits)R="%d";else{var v=Math.max(0,5-S.digitsLeft);v=Math.min(v,S.digitsRight),R="%."+v+"f"}this._autoFormatString=R,this.min=t,this.max=u}if(this.renderer.constructor==a.jqplot.LinearAxisRenderer&&""==this._autoFormatString){w=this.max-this.min;var T=new this.tickRenderer(this.tickOptions),U=T.formatString||a.jqplot.config.defaultTickFormatString,U=U.match(a.jqplot.sprintf.regex)[0],V=0;if(U){if(U.search(/[fFeEgGpP]/)>-1){var W=U.match(/\%\.(\d{0,})?[eEfFgGpP]/);V=W?parseInt(W[1],10):6}else U.search(/[di]/)>-1&&(V=0);var X=Math.pow(10,-V);if(this.tickInterval<X&&null==n&&null==o)if(this.tickInterval=X,null==m&&null==l){this.min=Math.floor(this._dataBounds.min/X)*X,this.min==this._dataBounds.min&&(this.min=this._dataBounds.min-this.tickInterval),this.max=Math.ceil(this._dataBounds.max/X)*X,this.max==this._dataBounds.max&&(this.max=this._dataBounds.max+this.tickInterval);var Y=(this.max-this.min)/this.tickInterval;Y=Y.toFixed(11),Y=Math.ceil(Y),this.numberTicks=Y+1}else if(null==m){var Y=(this._dataBounds.max-this.min)/this.tickInterval;Y=Y.toFixed(11),this.numberTicks=Math.ceil(Y)+2,this.max=this.min+this.tickInterval*(this.numberTicks-1)}else if(null==l){var Y=(this.max-this._dataBounds.min)/this.tickInterval;Y=Y.toFixed(11),this.numberTicks=Math.ceil(Y)+2,this.min=this.max-this.tickInterval*(this.numberTicks-1)}else this.numberTicks=Math.ceil((m-l)/this.tickInterval)+1,this.min=Math.floor(l*Math.pow(10,V))/Math.pow(10,V),this.max=Math.ceil(m*Math.pow(10,V))/Math.pow(10,V),this.numberTicks=Math.ceil((this.max-this.min)/this.tickInterval)+1}}}this._overrideFormatString&&""!=this._autoFormatString&&(this.tickOptions=this.tickOptions||{},this.tickOptions.formatString=this._autoFormatString);for(var r,Z,f=0;f<this.numberTicks;f++){if(e=this.min+f*this.tickInterval,r=new this.tickRenderer(this.tickOptions),r.setTick(e,this.name),this._ticks.push(r),f<this.numberTicks-1)for(var N=0;N<this.minorTicks;N++)e+=this.tickInterval/(this.minorTicks+1),Z=a.extend(!0,{},this.tickOptions,{name:this.name,value:e,label:"",isMinorTick:!0}),r=new this.tickRenderer(Z),this._ticks.push(r);r=null}}this.tickInset&&(this.min=this.min-this.tickInset*this.tickInterval,this.max=this.max+this.tickInset*this.tickInterval),g=null},a.jqplot.LinearAxisRenderer.prototype.resetTickValues=function(b){if(a.isArray(b)&&b.length==this._ticks.length){for(var c,d=0;d<b.length;d++)c=this._ticks[d],c.value=b[d],c.label=c.formatter(c.formatString,b[d]),c.label=c.prefix+c.label,c._elem.html(c.label);c=null,this.min=a.jqplot.arrayMin(b),this.max=a.jqplot.arrayMax(b),this.pack()}},a.jqplot.LinearAxisRenderer.prototype.pack=function(b,c){b=b||{},c=c||this._offsets;var d=this._ticks,e=this.max,f=this.min,g=c.max,h=c.min,i=null==this._label?!1:this._label.show;for(var j in b)this._elem.css(j,b[j]);this._offsets=c;var k=g-h,l=e-f;if(this.breakPoints?(l=l-this.breakPoints[1]+this.breakPoints[0],this.p2u=function(a){return(a-h)*l/k+f},this.u2p=function(a){return a>this.breakPoints[0]&&a<this.breakPoints[1]&&(a=this.breakPoints[0]),a<=this.breakPoints[0]?(a-f)*k/l+h:(a-this.breakPoints[1]+this.breakPoints[0]-f)*k/l+h},"x"==this.name.charAt(0)?(this.series_u2p=function(a){return a>this.breakPoints[0]&&a<this.breakPoints[1]&&(a=this.breakPoints[0]),a<=this.breakPoints[0]?(a-f)*k/l:(a-this.breakPoints[1]+this.breakPoints[0]-f)*k/l},this.series_p2u=function(a){return a*l/k+f}):(this.series_u2p=function(a){return a>this.breakPoints[0]&&a<this.breakPoints[1]&&(a=this.breakPoints[0]),a>=this.breakPoints[1]?(a-e)*k/l:(a+this.breakPoints[1]-this.breakPoints[0]-e)*k/l},this.series_p2u=function(a){return a*l/k+e})):(this.p2u=function(a){return(a-h)*l/k+f},this.u2p=function(a){return(a-f)*k/l+h},"xaxis"==this.name||"x2axis"==this.name?(this.series_u2p=function(a){return(a-f)*k/l},this.series_p2u=function(a){return a*l/k+f}):(this.series_u2p=function(a){return(a-e)*k/l},this.series_p2u=function(a){return a*l/k+e})),this.show)if("xaxis"==this.name||"x2axis"==this.name){for(var m=0;m<d.length;m++){var n=d[m];if(n.show&&n.showLabel){var o;if(n.constructor==a.jqplot.CanvasAxisTickRenderer&&n.angle){var p="xaxis"==this.name?1:-1;switch(n.labelPosition){case"auto":o=p*n.angle<0?-n.getWidth()+n._textRenderer.height*Math.sin(-n._textRenderer.angle)/2:-n._textRenderer.height*Math.sin(n._textRenderer.angle)/2;break;case"end":o=-n.getWidth()+n._textRenderer.height*Math.sin(-n._textRenderer.angle)/2;break;case"start":o=-n._textRenderer.height*Math.sin(n._textRenderer.angle)/2;break;case"middle":o=-n.getWidth()/2+n._textRenderer.height*Math.sin(-n._textRenderer.angle)/2;break;default:o=-n.getWidth()/2+n._textRenderer.height*Math.sin(-n._textRenderer.angle)/2}}else o=-n.getWidth()/2;var q=this.u2p(n.value)+o+"px";n._elem.css("left",q),n.pack()}}if(i){var r=this._label._elem.outerWidth(!0);this._label._elem.css("left",h+k/2-r/2+"px"),"xaxis"==this.name?this._label._elem.css("bottom","0px"):this._label._elem.css("top","0px"),this._label.pack()}}else{for(var m=0;m<d.length;m++){var n=d[m];if(n.show&&n.showLabel){var o;if(n.constructor==a.jqplot.CanvasAxisTickRenderer&&n.angle){var p="yaxis"==this.name?1:-1;switch(n.labelPosition){case"auto":case"end":o=p*n.angle<0?-n._textRenderer.height*Math.cos(-n._textRenderer.angle)/2:-n.getHeight()+n._textRenderer.height*Math.cos(n._textRenderer.angle)/2;break;case"start":o=n.angle>0?-n._textRenderer.height*Math.cos(-n._textRenderer.angle)/2:-n.getHeight()+n._textRenderer.height*Math.cos(n._textRenderer.angle)/2;break;case"middle":o=-n.getHeight()/2;break;default:o=-n.getHeight()/2}}else o=-n.getHeight()/2;var q=this.u2p(n.value)+o+"px";n._elem.css("top",q),n.pack()}}if(i){var s=this._label._elem.outerHeight(!0);this._label._elem.css("top",g-k/2-s/2+"px"),"yaxis"==this.name?this._label._elem.css("left","0px"):this._label._elem.css("right","0px"),this._label.pack()}}d=null};a.jqplot.LinearTickGenerator=function(b,c,d,e,f,g){if(f=null===f?!1:f,g=null===g||f?!1:g,b===c&&(c=c?0:1),d=d||1,b>c){var h=c;c=b,b=h}var i=[],j=x(c-b,d),k=a.jqplot.getSignificantFigures;if(null==e)if(f||g){if(f){i[0]=b,i[2]=Math.ceil((c-b)/j+1),i[1]=b+(i[2]-1)*j;var l=k(b).digitsRight,m=k(j).digitsRight;m>l?i[3]=u(j):i[3]="%."+l+"f",i[4]=j}else if(g){i[1]=c,i[2]=Math.ceil((c-b)/j+1),i[0]=c-(i[2]-1)*j;var n=k(c).digitsRight,m=k(j).digitsRight;m>n?i[3]=u(j):i[3]="%."+n+"f",i[4]=j}}else i[0]=Math.floor(b/j)*j,i[1]=Math.ceil(c/j)*j,i[2]=Math.round((i[1]-i[0])/j+1),i[3]=u(j),i[4]=j;else{var o=[];if(o[0]=Math.floor(b/j)*j,o[1]=Math.ceil(c/j)*j,o[2]=Math.round((o[1]-o[0])/j+1),o[3]=u(j),o[4]=j,o[2]===e)i=o;else{var p=w(o[1]-o[0],e);i[0]=o[0],i[2]=e,i[4]=p,i[3]=u(p),i[1]=i[0]+(i[2]-1)*i[4]}}return i},a.jqplot.LinearTickGenerator.bestLinearInterval=x,a.jqplot.LinearTickGenerator.bestInterval=w,a.jqplot.LinearTickGenerator.bestLinearComponents=y,a.jqplot.LinearTickGenerator.bestConstrainedInterval=v,a.jqplot.MarkerRenderer=function(b){this.show=!0,this.style="filledCircle",this.lineWidth=2,this.size=9,this.color="#666666",this.shadow=!0,this.shadowAngle=45,this.shadowOffset=1,this.shadowDepth=3,this.shadowAlpha="0.07",this.shadowRenderer=new a.jqplot.ShadowRenderer,this.shapeRenderer=new a.jqplot.ShapeRenderer,a.extend(!0,this,b)},a.jqplot.MarkerRenderer.prototype.init=function(b){a.extend(!0,this,b);var c={angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,lineWidth:this.lineWidth,depth:this.shadowDepth,closePath:!0};-1!=this.style.indexOf("filled")&&(c.fill=!0),-1!=this.style.indexOf("ircle")&&(c.isarc=!0,c.closePath=!1),this.shadowRenderer.init(c);var d={fill:!1,isarc:!1,strokeStyle:this.color,fillStyle:this.color,lineWidth:this.lineWidth,closePath:!0};-1!=this.style.indexOf("filled")&&(d.fill=!0),-1!=this.style.indexOf("ircle")&&(d.isarc=!0,d.closePath=!1),this.shapeRenderer.init(d)},a.jqplot.MarkerRenderer.prototype.drawDiamond=function(a,b,c,d,e){var f=1.2,g=this.size/2/f,h=this.size/2*f,i=[[a-g,b],[a,b+h],[a+g,b],[a,b-h]];this.shadow&&this.shadowRenderer.draw(c,i),this.shapeRenderer.draw(c,i,e)},a.jqplot.MarkerRenderer.prototype.drawPlus=function(b,c,d,e,f){var g=1,h=this.size/2*g,i=this.size/2*g,j=[[b,c-i],[b,c+i]],k=[[b+h,c],[b-h,c]],l=a.extend(!0,{},this.options,{closePath:!1});this.shadow&&(this.shadowRenderer.draw(d,j,{closePath:!1}),this.shadowRenderer.draw(d,k,{closePath:!1})),this.shapeRenderer.draw(d,j,l),this.shapeRenderer.draw(d,k,l)},a.jqplot.MarkerRenderer.prototype.drawX=function(b,c,d,e,f){var g=1,h=this.size/2*g,i=this.size/2*g,j=a.extend(!0,{},this.options,{closePath:!1}),k=[[b-h,c-i],[b+h,c+i]],l=[[b-h,c+i],[b+h,c-i]];this.shadow&&(this.shadowRenderer.draw(d,k,{closePath:!1}),this.shadowRenderer.draw(d,l,{closePath:!1})),this.shapeRenderer.draw(d,k,j),this.shapeRenderer.draw(d,l,j)},a.jqplot.MarkerRenderer.prototype.drawDash=function(a,b,c,d,e){var f=1,g=this.size/2*f,h=(this.size/2*f,[[a-g,b],[a+g,b]]);this.shadow&&this.shadowRenderer.draw(c,h),this.shapeRenderer.draw(c,h,e)},a.jqplot.MarkerRenderer.prototype.drawLine=function(a,b,c,d,e){var f=[a,b];this.shadow&&this.shadowRenderer.draw(c,f),this.shapeRenderer.draw(c,f,e)},a.jqplot.MarkerRenderer.prototype.drawSquare=function(a,b,c,d,e){var f=1,g=this.size/2/f,h=this.size/2*f,i=[[a-g,b-h],[a-g,b+h],[a+g,b+h],[a+g,b-h]];this.shadow&&this.shadowRenderer.draw(c,i),this.shapeRenderer.draw(c,i,e)},a.jqplot.MarkerRenderer.prototype.drawCircle=function(a,b,c,d,e){var f=this.size/2,g=2*Math.PI,h=[a,b,f,0,g,!0];this.shadow&&this.shadowRenderer.draw(c,h),this.shapeRenderer.draw(c,h,e)},a.jqplot.MarkerRenderer.prototype.draw=function(a,b,c,d){if(d=d||{},null==d.show||0!=d.show)switch(d.color&&!d.fillStyle&&(d.fillStyle=d.color),d.color&&!d.strokeStyle&&(d.strokeStyle=d.color),this.style){case"diamond":this.drawDiamond(a,b,c,!1,d);break;case"filledDiamond":this.drawDiamond(a,b,c,!0,d);break;case"circle":this.drawCircle(a,b,c,!1,d);break;case"filledCircle":this.drawCircle(a,b,c,!0,d);break;case"square":this.drawSquare(a,b,c,!1,d);break;case"filledSquare":this.drawSquare(a,b,c,!0,d);break;case"x":this.drawX(a,b,c,!0,d);break;case"plus":this.drawPlus(a,b,c,!0,d);break;case"dash":this.drawDash(a,b,c,!0,d);break;case"line":this.drawLine(a,b,c,!1,d);break;default:this.drawDiamond(a,b,c,!1,d)}},a.jqplot.ShadowRenderer=function(b){this.angle=45,this.offset=1,this.alpha=.07,this.lineWidth=1.5,this.lineJoin="miter",this.lineCap="round",this.closePath=!1,this.fill=!1,this.depth=3,this.strokeStyle="rgba(0,0,0,0.1)",this.isarc=!1,a.extend(!0,this,b)},a.jqplot.ShadowRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.ShadowRenderer.prototype.draw=function(b,c,d){b.save();var e=null!=d?d:{},f=null!=e.fill?e.fill:this.fill,g=null!=e.fillRect?e.fillRect:this.fillRect,h=null!=e.closePath?e.closePath:this.closePath,i=null!=e.offset?e.offset:this.offset,j=null!=e.alpha?e.alpha:this.alpha,k=null!=e.depth?e.depth:this.depth,l=null!=e.isarc?e.isarc:this.isarc,m=null!=e.linePattern?e.linePattern:this.linePattern;b.lineWidth=null!=e.lineWidth?e.lineWidth:this.lineWidth,b.lineJoin=null!=e.lineJoin?e.lineJoin:this.lineJoin,b.lineCap=null!=e.lineCap?e.lineCap:this.lineCap,b.strokeStyle=e.strokeStyle||this.strokeStyle||"rgba(0,0,0,"+j+")",b.fillStyle=e.fillStyle||this.fillStyle||"rgba(0,0,0,"+j+")";for(var n=0;k>n;n++){var o=a.jqplot.LinePattern(b,m);if(b.translate(Math.cos(this.angle*Math.PI/180)*i,Math.sin(this.angle*Math.PI/180)*i),o.beginPath(),l)b.arc(c[0],c[1],c[2],c[3],c[4],!0);else if(g)g&&b.fillRect(c[0],c[1],c[2],c[3]);else if(c&&c.length)for(var p=!0,q=0;q<c.length;q++)null!=c[q][0]&&null!=c[q][1]?p?(o.moveTo(c[q][0],c[q][1]),p=!1):o.lineTo(c[q][0],c[q][1]):p=!0;h&&o.closePath(),f?b.fill():b.stroke()}b.restore()},a.jqplot.ShapeRenderer=function(b){this.lineWidth=1.5,this.linePattern="solid",this.lineJoin="miter",this.lineCap="round",this.closePath=!1,this.fill=!1,this.isarc=!1,this.fillRect=!1,this.strokeRect=!1,this.clearRect=!1,this.strokeStyle="#999999",this.fillStyle="#999999",a.extend(!0,this,b)},a.jqplot.ShapeRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.ShapeRenderer.prototype.draw=function(b,c,d){b.save();var e=null!=d?d:{},f=null!=e.fill?e.fill:this.fill,g=null!=e.closePath?e.closePath:this.closePath,h=null!=e.fillRect?e.fillRect:this.fillRect,i=null!=e.strokeRect?e.strokeRect:this.strokeRect,j=null!=e.clearRect?e.clearRect:this.clearRect,k=null!=e.isarc?e.isarc:this.isarc,l=null!=e.linePattern?e.linePattern:this.linePattern,m=a.jqplot.LinePattern(b,l);if(b.lineWidth=e.lineWidth||this.lineWidth,b.lineJoin=e.lineJoin||this.lineJoin,b.lineCap=e.lineCap||this.lineCap,b.strokeStyle=e.strokeStyle||e.color||this.strokeStyle,b.fillStyle=e.fillStyle||this.fillStyle,b.beginPath(),k)return b.arc(c[0],c[1],c[2],c[3],c[4],!0),g&&b.closePath(),f?b.fill():b.stroke(),void b.restore();if(j)return b.clearRect(c[0],c[1],c[2],c[3]),void b.restore();if(h||i){if(h&&b.fillRect(c[0],c[1],c[2],c[3]),i)return b.strokeRect(c[0],c[1],c[2],c[3]),void b.restore()}else if(c&&c.length){for(var n=!0,o=0;o<c.length;o++)null!=c[o][0]&&null!=c[o][1]?n?(m.moveTo(c[o][0],c[o][1]),n=!1):m.lineTo(c[o][0],c[o][1]):n=!0;g&&m.closePath(),f?b.fill():b.stroke()}b.restore()},a.jqplot.TableLegendRenderer=function(){},a.jqplot.TableLegendRenderer.prototype.init=function(b){a.extend(!0,this,b)},a.jqplot.TableLegendRenderer.prototype.addrow=function(b,c,d,e){var f,g,h,i,j,k=d?this.rowSpacing+"px":"0px";h=document.createElement("tr"),f=a(h),f.addClass("jqplot-table-legend"),h=null,e?f.prependTo(this._elem):f.appendTo(this._elem),this.showSwatches&&(g=a(document.createElement("td")),g.addClass("jqplot-table-legend jqplot-table-legend-swatch"),g.css({textAlign:"center",paddingTop:k}),i=a(document.createElement("div")),i.addClass("jqplot-table-legend-swatch-outline"),j=a(document.createElement("div")),j.addClass("jqplot-table-legend-swatch"),j.css({backgroundColor:c,borderColor:c}),f.append(g.append(i.append(j)))),this.showLabels&&(g=a(document.createElement("td")),g.addClass("jqplot-table-legend jqplot-table-legend-label"),g.css("paddingTop",k),f.append(g),this.escapeHtml?g.text(b):g.html(b)),g=null,i=null,j=null,f=null,h=null},a.jqplot.TableLegendRenderer.prototype.draw=function(){if(this._elem&&(this._elem.emptyForce(),this._elem=null),this.show){var b=this._series,c=document.createElement("table");this._elem=a(c),this._elem.addClass("jqplot-table-legend");var d={position:"absolute"};this.background&&(d.background=this.background),this.border&&(d.border=this.border),this.fontSize&&(d.fontSize=this.fontSize),this.fontFamily&&(d.fontFamily=this.fontFamily),this.textColor&&(d.textColor=this.textColor),null!=this.marginTop&&(d.marginTop=this.marginTop),null!=this.marginBottom&&(d.marginBottom=this.marginBottom),null!=this.marginLeft&&(d.marginLeft=this.marginLeft),null!=this.marginRight&&(d.marginRight=this.marginRight);for(var e,f=!1,g=!1,h=0;h<b.length;h++)if(e=b[h],(e._stack||e.renderer.constructor==a.jqplot.BezierCurveRenderer)&&(g=!0),e.show&&e.showLabel){var i=this.labels[h]||e.label.toString();if(i){var j=e.color;g&&h<b.length-1?f=!0:g&&h==b.length-1&&(f=!1),this.renderer.addrow.call(this,i,j,f,g),f=!0}for(var k=0;k<a.jqplot.addLegendRowHooks.length;k++){var l=a.jqplot.addLegendRowHooks[k].call(this,e);l&&(this.renderer.addrow.call(this,l.label,l.color,f),f=!0)}i=null}}return this._elem},a.jqplot.TableLegendRenderer.prototype.pack=function(a){if(this.show)if("insideGrid"==this.placement)switch(this.location){case"nw":var b=a.left,c=a.top;this._elem.css("left",b),this._elem.css("top",c);break;case"n":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2,c=a.top;this._elem.css("left",b),this._elem.css("top",c);break;case"ne":var b=a.right,c=a.top;this._elem.css({right:b,top:c});break;case"e":var b=a.right,c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({right:b,top:c});break;case"se":var b=a.right,c=a.bottom;this._elem.css({right:b,bottom:c});break;case"s":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2,c=a.bottom;this._elem.css({left:b,bottom:c});break;case"sw":var b=a.left,c=a.bottom;this._elem.css({left:b,bottom:c});break;case"w":var b=a.left,c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({left:b,top:c});break;default:var b=a.right,c=a.bottom;this._elem.css({right:b,bottom:c})}else if("outside"==this.placement)switch(this.location){case"nw":var b=this._plotDimensions.width-a.left,c=a.top;this._elem.css("right",b),this._elem.css("top",c);break;case"n":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2,c=this._plotDimensions.height-a.top;this._elem.css("left",b),this._elem.css("bottom",c);break;case"ne":var b=this._plotDimensions.width-a.right,c=a.top;this._elem.css({left:b,top:c});break;case"e":var b=this._plotDimensions.width-a.right,c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({left:b,top:c});break;case"se":var b=this._plotDimensions.width-a.right,c=a.bottom;this._elem.css({left:b,bottom:c});break;case"s":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2,c=this._plotDimensions.height-a.bottom;this._elem.css({left:b,top:c});break;case"sw":var b=this._plotDimensions.width-a.left,c=a.bottom;this._elem.css({right:b,bottom:c});break;case"w":var b=this._plotDimensions.width-a.left,c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({right:b,top:c});break;default:var b=a.right,c=a.bottom;this._elem.css({right:b,bottom:c})}else switch(this.location){case"nw":this._elem.css({left:0,top:a.top});break;case"n":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2;this._elem.css({left:b,top:a.top});break;case"ne":this._elem.css({right:0,top:a.top});break;case"e":var c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({right:a.right,top:c});break;case"se":this._elem.css({right:a.right,bottom:a.bottom});break;case"s":var b=(a.left+(this._plotDimensions.width-a.right))/2-this.getWidth()/2;this._elem.css({left:b,bottom:a.bottom});break;case"sw":this._elem.css({left:a.left,bottom:a.bottom});break;case"w":var c=(a.top+(this._plotDimensions.height-a.bottom))/2-this.getHeight()/2;this._elem.css({left:a.left,top:c});break;default:this._elem.css({right:a.right,bottom:a.bottom})}},a.jqplot.ThemeEngine=function(){this.themes={},this.activeTheme=null},a.jqplot.ThemeEngine.prototype.init=function(){var b,c,d,e=new a.jqplot.Theme({_name:"Default"});for(b in e.target)"textColor"==b?e.target[b]=this.target.css("color"):e.target[b]=this.target.css(b);if(this.title.show&&this.title._elem)for(b in e.title)"textColor"==b?e.title[b]=this.title._elem.css("color"):e.title[b]=this.title._elem.css(b);for(b in e.grid)e.grid[b]=this.grid[b];if(null==e.grid.backgroundColor&&null!=this.grid.background&&(e.grid.backgroundColor=this.grid.background),this.legend.show&&this.legend._elem)for(b in e.legend)"textColor"==b?e.legend[b]=this.legend._elem.css("color"):e.legend[b]=this.legend._elem.css(b);var f;for(c=0;c<this.series.length;c++){f=this.series[c],f.renderer.constructor==a.jqplot.LineRenderer?e.series.push(new L):f.renderer.constructor==a.jqplot.BarRenderer?e.series.push(new N):f.renderer.constructor==a.jqplot.PieRenderer?e.series.push(new O):f.renderer.constructor==a.jqplot.DonutRenderer?e.series.push(new P):f.renderer.constructor==a.jqplot.FunnelRenderer?e.series.push(new Q):f.renderer.constructor==a.jqplot.MeterGaugeRenderer?e.series.push(new R):e.series.push({});for(b in e.series[c])e.series[c][b]=f[b]}var g,h;for(b in this.axes){if(h=this.axes[b],g=e.axes[b]=new I,g.borderColor=h.borderColor,g.borderWidth=h.borderWidth,h._ticks&&h._ticks[0])for(d in g.ticks)h._ticks[0].hasOwnProperty(d)?g.ticks[d]=h._ticks[0][d]:h._ticks[0]._elem&&(g.ticks[d]=h._ticks[0]._elem.css(d));if(h._label&&h._label.show)for(d in g.label)h._label[d]?g.label[d]=h._label[d]:h._label._elem&&("textColor"==d?g.label[d]=h._label._elem.css("color"):g.label[d]=h._label._elem.css(d))}this.themeEngine._add(e),this.themeEngine.activeTheme=this.themeEngine.themes[e._name]},a.jqplot.ThemeEngine.prototype.get=function(a){return a?this.themes[a]:this.activeTheme},a.jqplot.ThemeEngine.prototype.getThemeNames=function(){var a=[];for(var b in this.themes)a.push(b);return a.sort(z)},a.jqplot.ThemeEngine.prototype.getThemes=function(){var a=[],b=[];for(var c in this.themes)a.push(c);a.sort(z);for(var d=0;d<a.length;d++)b.push(this.themes[a[d]]);return b},a.jqplot.ThemeEngine.prototype.activate=function(b,c){var d=!1;if(!c&&this.activeTheme&&this.activeTheme._name&&(c=this.activeTheme._name),!this.themes.hasOwnProperty(c))throw new Error("No theme of that name");var e=this.themes[c];this.activeTheme=e;var f,g=["xaxis","x2axis","yaxis","y2axis"];for(p=0;p<g.length;p++){var h=g[p];null!=e.axesStyles.borderColor&&(b.axes[h].borderColor=e.axesStyles.borderColor),null!=e.axesStyles.borderWidth&&(b.axes[h].borderWidth=e.axesStyles.borderWidth)}for(var i in b.axes){var j=b.axes[i];if(j.show){var k=e.axes[i]||{},l=e.axesStyles,m=a.jqplot.extend(!0,{},k,l);if(f=null!=e.axesStyles.borderColor?e.axesStyles.borderColor:m.borderColor,null!=m.borderColor&&(j.borderColor=m.borderColor,d=!0),f=null!=e.axesStyles.borderWidth?e.axesStyles.borderWidth:m.borderWidth,null!=m.borderWidth&&(j.borderWidth=m.borderWidth,d=!0),j._ticks&&j._ticks[0])for(var n in m.ticks)f=m.ticks[n],null!=f&&(j.tickOptions[n]=f,j._ticks=[],d=!0);if(j._label&&j._label.show)for(var n in m.label)f=m.label[n],null!=f&&(j.labelOptions[n]=f,d=!0)}}for(var o in e.grid)null!=e.grid[o]&&(b.grid[o]=e.grid[o]);if(d||b.grid.draw(),b.legend.show)for(o in e.legend)null!=e.legend[o]&&(b.legend[o]=e.legend[o]);if(b.title.show)for(o in e.title)null!=e.title[o]&&(b.title[o]=e.title[o]);var p;for(p=0;p<e.series.length;p++){var q={};for(o in e.series[p])f=null!=e.seriesStyles[o]?e.seriesStyles[o]:e.series[p][o],null!=f&&(q[o]=f,"color"==o?(b.series[p].renderer.shapeRenderer.fillStyle=f,b.series[p].renderer.shapeRenderer.strokeStyle=f,b.series[p][o]=f):"lineWidth"==o||"linePattern"==o?(b.series[p].renderer.shapeRenderer[o]=f,b.series[p][o]=f):"markerOptions"==o?(B(b.series[p].markerOptions,f),B(b.series[p].markerRenderer,f)):b.series[p][o]=f,d=!0)}d&&(b.target.empty(),b.draw());for(o in e.target)null!=e.target[o]&&b.target.css(o,e.target[o])},a.jqplot.ThemeEngine.prototype._add=function(a,b){if(b&&(a._name=b),a._name||(a._name=Date.parse(new Date)),this.themes.hasOwnProperty(a._name))throw new Error("jqplot.ThemeEngine Error: Theme already in use");this.themes[a._name]=a},a.jqplot.ThemeEngine.prototype.remove=function(a){return"Default"==a?!1:delete this.themes[a]},a.jqplot.ThemeEngine.prototype.newTheme=function(b,c){"object"==typeof b&&(c=c||b,b=null),b=c&&c._name?c._name:b||Date.parse(new Date);var d=this.copy(this.themes.Default._name,b);return a.jqplot.extend(d,c),d},a.jqplot.clone=A,a.jqplot.merge=B,a.jqplot.extend=function(){var b,c=arguments[0]||{},d=1,e=arguments.length,f=!1;for("boolean"==typeof c&&(f=c,c=arguments[1]||{},d=2),"object"!=typeof c&&"[object Function]"===!toString.call(c)&&(c={});e>d;d++)if(null!=(b=arguments[d]))for(var g in b){var h=c[g],i=b[g];c!==i&&(f&&i&&"object"==typeof i&&!i.nodeType?c[g]=a.jqplot.extend(f,h||(null!=i.length?[]:{}),i):i!==F&&(c[g]=i))}return c},a.jqplot.ThemeEngine.prototype.rename=function(a,b){if("Default"==a||"Default"==b)throw new Error("jqplot.ThemeEngine Error: Cannot rename from/to Default");if(this.themes.hasOwnProperty(b))throw new Error("jqplot.ThemeEngine Error: New name already in use.");if(this.themes.hasOwnProperty(a)){var c=this.copy(a,b);return this.remove(a),c}throw new Error("jqplot.ThemeEngine Error: Old name or new name invalid")},a.jqplot.ThemeEngine.prototype.copy=function(b,c,d){if("Default"==c)throw new Error("jqplot.ThemeEngine Error: Cannot copy over Default theme");if(!this.themes.hasOwnProperty(b)){var e="jqplot.ThemeEngine Error: Source name invalid";throw new Error(e)}if(this.themes.hasOwnProperty(c)){var e="jqplot.ThemeEngine Error: Target name invalid";throw new Error(e)}var f=A(this.themes[b]);return f._name=c,a.jqplot.extend(!0,f,d),this._add(f),f},a.jqplot.Theme=function(b,c){"object"==typeof b&&(c=c||b,b=null),b=b||Date.parse(new Date),this._name=b,this.target={backgroundColor:null},this.legend={textColor:null,fontFamily:null,fontSize:null,border:null,background:null},this.title={textColor:null,fontFamily:null,fontSize:null,textAlign:null},this.seriesStyles={},this.series=[],this.grid={drawGridlines:null,gridLineColor:null,gridLineWidth:null,backgroundColor:null,borderColor:null,borderWidth:null,shadow:null},this.axesStyles={label:{},ticks:{}},this.axes={},"string"==typeof c?this._name=c:"object"==typeof c&&a.jqplot.extend(!0,this,c)};var I=function(){this.borderColor=null,this.borderWidth=null,this.ticks=new J,this.label=new K},J=function(){this.show=null,this.showGridline=null,this.showLabel=null,this.showMark=null,this.size=null,this.textColor=null,this.whiteSpace=null,this.fontSize=null,this.fontFamily=null},K=function(){this.textColor=null,this.whiteSpace=null,this.fontSize=null,
this.fontFamily=null,this.fontWeight=null},L=function(){this.color=null,this.lineWidth=null,this.linePattern=null,this.shadow=null,this.fillColor=null,this.showMarker=null,this.markerOptions=new M},M=function(){this.show=null,this.style=null,this.lineWidth=null,this.size=null,this.color=null,this.shadow=null},N=function(){this.color=null,this.seriesColors=null,this.lineWidth=null,this.shadow=null,this.barPadding=null,this.barMargin=null,this.barWidth=null,this.highlightColors=null},O=function(){this.seriesColors=null,this.padding=null,this.sliceMargin=null,this.fill=null,this.shadow=null,this.startAngle=null,this.lineWidth=null,this.highlightColors=null},P=function(){this.seriesColors=null,this.padding=null,this.sliceMargin=null,this.fill=null,this.shadow=null,this.startAngle=null,this.lineWidth=null,this.innerDiameter=null,this.thickness=null,this.ringMargin=null,this.highlightColors=null},Q=function(){this.color=null,this.lineWidth=null,this.shadow=null,this.padding=null,this.sectionMargin=null,this.seriesColors=null,this.highlightColors=null},R=function(){this.padding=null,this.backgroundColor=null,this.ringColor=null,this.tickColor=null,this.ringWidth=null,this.intervalColors=null,this.intervalInnerRadius=null,this.intervalOuterRadius=null,this.hubRadius=null,this.needleThickness=null,this.needlePad=null};a.fn.jqplotChildText=function(){return a(this).contents().filter(function(){return 3==this.nodeType}).text()},a.fn.jqplotGetComputedFontStyle=function(){for(var a=window.getComputedStyle?window.getComputedStyle(this[0],""):this[0].currentStyle,b=a["font-style"]?["font-style","font-weight","font-size","font-family"]:["fontStyle","fontWeight","fontSize","fontFamily"],c=[],d=0;d<b.length;++d){var e=String(a[b[d]]);e&&"normal"!=e&&c.push(e)}return c.join(" ")},a.fn.jqplotToImageCanvas=function(b){function c(b){var c=parseInt(a(b).css("line-height"),10);return isNaN(c)&&(c=1.2*parseInt(a(b).css("font-size"),10)),c}function d(b,d,e,f,g,h){for(var i=c(b),j=a(b).innerWidth(),k=(a(b).innerHeight(),e.split(/\s+/)),l=k.length,m="",n=[],o=g,p=f,q=0;l>q;q++)m+=k[q],d.measureText(m).width>j&&m.length>k[q].length&&(n.push(q),m="",q--);if(0===n.length)"center"===a(b).css("textAlign")&&(p=f+(h-d.measureText(m).width)/2-s),d.fillText(e,p,g);else{m=k.slice(0,n[0]).join(" "),"center"===a(b).css("textAlign")&&(p=f+(h-d.measureText(m).width)/2-s),d.fillText(m,p,o),o+=i;for(var q=1,r=n.length;r>q;q++)m=k.slice(n[q-1],n[q]).join(" "),"center"===a(b).css("textAlign")&&(p=f+(h-d.measureText(m).width)/2-s),d.fillText(m,p,o),o+=i;m=k.slice(n[q-1],k.length).join(" "),"center"===a(b).css("textAlign")&&(p=f+(h-d.measureText(m).width)/2-s),d.fillText(m,p,o)}}function e(b,c,f){var g=b.tagName.toLowerCase(),h=a(b).position(),i=window.getComputedStyle?window.getComputedStyle(b,""):b.currentStyle,j=c+h.left+parseInt(i.marginLeft,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.paddingLeft,10),k=f+h.top+parseInt(i.marginTop,10)+parseInt(i.borderTopWidth,10)+parseInt(i.paddingTop,10),l=m.width;if("div"!=g&&"span"!=g||a(b).hasClass("jqplot-highlighter-tooltip"))if("table"===g&&a(b).hasClass("jqplot-table-legend")){w.strokeStyle=a(b).css("border-top-color"),w.fillStyle=a(b).css("background-color"),w.fillRect(j,k,a(b).innerWidth(),a(b).innerHeight()),parseInt(a(b).css("border-top-width"),10)>0&&w.strokeRect(j,k,a(b).innerWidth(),a(b).innerHeight()),a(b).find("div.jqplot-table-legend-swatch-outline").each(function(){var b=a(this);w.strokeStyle=b.css("border-top-color");var c=j+b.position().left,d=k+b.position().top;w.strokeRect(c,d,b.innerWidth(),b.innerHeight()),c+=parseInt(b.css("padding-left"),10),d+=parseInt(b.css("padding-top"),10);var e=b.innerHeight()-2*parseInt(b.css("padding-top"),10),f=b.innerWidth()-2*parseInt(b.css("padding-left"),10),g=b.children("div.jqplot-table-legend-swatch");w.fillStyle=g.css("background-color"),w.fillRect(c,d,f,e)}),a(b).find("td.jqplot-table-legend-label").each(function(){var b=a(this),c=j+b.position().left,e=k+b.position().top+parseInt(b.css("padding-top"),10);w.font=b.jqplotGetComputedFontStyle(),w.fillStyle=b.css("color"),d(b,w,b.text(),c,e,l)})}else"canvas"==g&&w.drawImage(b,j,k);else{a(b).children().each(function(){e(this,j,k)});var n=a(b).jqplotChildText();n&&(w.font=a(b).jqplotGetComputedFontStyle(),w.fillStyle=a(b).css("color"),d(b,w,n,j,k,l))}}b=b||{};var f=null==b.x_offset?0:b.x_offset,g=null==b.y_offset?0:b.y_offset,h=null==b.backgroundColor?"rgb(255,255,255)":b.backgroundColor;if(0==a(this).width()||0==a(this).height())return null;if(a.jqplot.use_excanvas)return null;for(var i,j,k,l,m=document.createElement("canvas"),n=a(this).outerHeight(!0),o=a(this).outerWidth(!0),p=a(this).offset(),q=p.left,r=p.top,s=0,t=0,u=["jqplot-table-legend","jqplot-xaxis-tick","jqplot-x2axis-tick","jqplot-yaxis-tick","jqplot-y2axis-tick","jqplot-y3axis-tick","jqplot-y4axis-tick","jqplot-y5axis-tick","jqplot-y6axis-tick","jqplot-y7axis-tick","jqplot-y8axis-tick","jqplot-y9axis-tick","jqplot-xaxis-label","jqplot-x2axis-label","jqplot-yaxis-label","jqplot-y2axis-label","jqplot-y3axis-label","jqplot-y4axis-label","jqplot-y5axis-label","jqplot-y6axis-label","jqplot-y7axis-label","jqplot-y8axis-label","jqplot-y9axis-label"],v=0;v<u.length;v++)a(this).find("."+u[v]).each(function(){i=a(this).offset().top-r,j=a(this).offset().left-q,l=j+a(this).outerWidth(!0)+s,k=i+a(this).outerHeight(!0)+t,-s>j&&(o=o-s-j,s=-j),-t>i&&(n=n-t-i,t=-i),l>o&&(o=l),k>n&&(n=k)});m.width=o+Number(f),m.height=n+Number(g);var w=m.getContext("2d");return w.save(),w.fillStyle=h,w.fillRect(0,0,m.width,m.height),w.restore(),w.translate(s,t),w.textAlign="left",w.textBaseline="top",a(this).children().each(function(){e(this,f,g)}),m},a.fn.jqplotToImageStr=function(b){var c=a(this).jqplotToImageCanvas(b);return c?c.toDataURL("image/png"):null},a.fn.jqplotToImageElem=function(b){var c=document.createElement("img"),d=a(this).jqplotToImageStr(b);return c.src=d,c},a.fn.jqplotToImageElemStr=function(b){var c="<img src="+a(this).jqplotToImageStr(b)+" />";return c},a.fn.jqplotSaveImage=function(){var b=a(this).jqplotToImageStr({});b&&(window.location.href=b.replace("image/png","image/octet-stream"))},a.fn.jqplotViewImage=function(){var b=a(this).jqplotToImageElemStr({});a(this).jqplotToImageStr({});if(b){var c=window.open("");c.document.open("image/png"),c.document.write(b),c.document.close(),c=null}};var S=function(){switch(this.syntax=S.config.syntax,this._type="jsDate",this.proxy=new Date,this.options={},this.locale=S.regional.getLocale(),this.formatString="",this.defaultCentury=S.config.defaultCentury,arguments.length){case 0:break;case 1:if("[object Object]"==D(arguments[0])&&"jsDate"!=arguments[0]._type){var a=this.options=arguments[0];this.syntax=a.syntax||this.syntax,this.defaultCentury=a.defaultCentury||this.defaultCentury,this.proxy=S.createDate(a.date)}else this.proxy=S.createDate(arguments[0]);break;default:for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c]);this.proxy=new Date,this.proxy.setFullYear.apply(this.proxy,b.slice(0,3)),b.slice(3).length&&this.proxy.setHours.apply(this.proxy,b.slice(3))}};S.config={defaultLocale:"en",syntax:"perl",defaultCentury:1900},S.prototype.add=function(a,b){var c=V[b]||V.day;return"number"==typeof c?this.proxy.setTime(this.proxy.getTime()+c*a):c.add(this,a),this},S.prototype.clone=function(){return new S(this.proxy.getTime())},S.prototype.getUtcOffset=function(){return 6e4*this.proxy.getTimezoneOffset()},S.prototype.diff=function(a,b,c){if(a=new S(a),null===a)return null;var d=V[b]||V.day;if("number"==typeof d)var e=(this.proxy.getTime()-a.proxy.getTime())/d;else var e=d.diff(this.proxy,a.proxy);return c?e:Math[e>0?"floor":"ceil"](e)},S.prototype.getAbbrDayName=function(){return S.regional[this.locale].dayNamesShort[this.proxy.getDay()]},S.prototype.getAbbrMonthName=function(){return S.regional[this.locale].monthNamesShort[this.proxy.getMonth()]},S.prototype.getAMPM=function(){return this.proxy.getHours()>=12?"PM":"AM"},S.prototype.getAmPm=function(){return this.proxy.getHours()>=12?"pm":"am"},S.prototype.getCentury=function(){return parseInt(this.proxy.getFullYear()/100,10)},S.prototype.getDate=function(){return this.proxy.getDate()},S.prototype.getDay=function(){return this.proxy.getDay()},S.prototype.getDayOfWeek=function(){var a=this.proxy.getDay();return 0===a?7:a},S.prototype.getDayOfYear=function(){var a=this.proxy,b=a-new Date(""+a.getFullYear()+"/1/1 GMT");return b+=6e4*a.getTimezoneOffset(),a=null,parseInt(b/6e4/60/24,10)+1},S.prototype.getDayName=function(){return S.regional[this.locale].dayNames[this.proxy.getDay()]},S.prototype.getFullWeekOfYear=function(){var a=this.proxy,b=this.getDayOfYear(),c=6-a.getDay(),d=parseInt((b+c)/7,10);return d},S.prototype.getFullYear=function(){return this.proxy.getFullYear()},S.prototype.getGmtOffset=function(){var a=this.proxy.getTimezoneOffset()/60,b=0>a?"+":"-";return a=Math.abs(a),b+U(Math.floor(a),2)+":"+U(a%1*60,2)},S.prototype.getHours=function(){return this.proxy.getHours()},S.prototype.getHours12=function(){var a=this.proxy.getHours();return a>12?a-12:0==a?12:a},S.prototype.getIsoWeek=function(){var a=this.proxy,b=this.getWeekOfYear(),c=new Date(""+a.getFullYear()+"/1/1").getDay(),d=b+(c>4||1>=c?0:1);return 53==d&&new Date(""+a.getFullYear()+"/12/31").getDay()<4?d=1:0===d&&(a=new S(new Date(""+(a.getFullYear()-1)+"/12/31")),d=a.getIsoWeek()),a=null,d},S.prototype.getMilliseconds=function(){return this.proxy.getMilliseconds()},S.prototype.getMinutes=function(){return this.proxy.getMinutes()},S.prototype.getMonth=function(){return this.proxy.getMonth()},S.prototype.getMonthName=function(){return S.regional[this.locale].monthNames[this.proxy.getMonth()]},S.prototype.getMonthNumber=function(){return this.proxy.getMonth()+1},S.prototype.getSeconds=function(){return this.proxy.getSeconds()},S.prototype.getShortYear=function(){return this.proxy.getYear()%100},S.prototype.getTime=function(){return this.proxy.getTime()},S.prototype.getTimezoneAbbr=function(){return this.proxy.toString().replace(/^.*\(([^)]+)\)$/,"$1")},S.prototype.getTimezoneName=function(){var a=/(?:\((.+)\)$| ([A-Z]{3}) )/.exec(this.toString());return a[1]||a[2]||"GMT"+this.getGmtOffset()},S.prototype.getTimezoneOffset=function(){return this.proxy.getTimezoneOffset()},S.prototype.getWeekOfYear=function(){var a=this.getDayOfYear(),b=7-this.getDayOfWeek(),c=parseInt((a+b)/7,10);return c},S.prototype.getUnix=function(){return Math.round(this.proxy.getTime()/1e3,0)},S.prototype.getYear=function(){return this.proxy.getYear()},S.prototype.next=function(a){return a=a||"day",this.clone().add(1,a)},S.prototype.set=function(){switch(arguments.length){case 0:this.proxy=new Date;break;case 1:if("[object Object]"==D(arguments[0])&&"jsDate"!=arguments[0]._type){var a=this.options=arguments[0];this.syntax=a.syntax||this.syntax,this.defaultCentury=a.defaultCentury||this.defaultCentury,this.proxy=S.createDate(a.date)}else this.proxy=S.createDate(arguments[0]);break;default:for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c]);this.proxy=new Date,this.proxy.setFullYear.apply(this.proxy,b.slice(0,3)),b.slice(3).length&&this.proxy.setHours.apply(this.proxy,b.slice(3))}return this},S.prototype.setDate=function(a){return this.proxy.setDate(a),this},S.prototype.setFullYear=function(){return this.proxy.setFullYear.apply(this.proxy,arguments),this},S.prototype.setHours=function(){return this.proxy.setHours.apply(this.proxy,arguments),this},S.prototype.setMilliseconds=function(a){return this.proxy.setMilliseconds(a),this},S.prototype.setMinutes=function(){return this.proxy.setMinutes.apply(this.proxy,arguments),this},S.prototype.setMonth=function(){return this.proxy.setMonth.apply(this.proxy,arguments),this},S.prototype.setSeconds=function(){return this.proxy.setSeconds.apply(this.proxy,arguments),this},S.prototype.setTime=function(a){return this.proxy.setTime(a),this},S.prototype.setYear=function(){return this.proxy.setYear.apply(this.proxy,arguments),this},S.prototype.strftime=function(a){return a=a||this.formatString||S.regional[this.locale].formatString,S.strftime(this,a,this.syntax)},S.prototype.toString=function(){return this.proxy.toString()},S.prototype.toYmdInt=function(){return 1e4*this.proxy.getFullYear()+100*this.getMonthNumber()+this.proxy.getDate()},S.regional={en:{monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],formatString:"%Y-%m-%d %H:%M:%S"},fr:{monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthNamesShort:["Jan","Fév","Mar","Avr","Mai","Jun","Jul","Aoû","Sep","Oct","Nov","Déc"],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],formatString:"%Y-%m-%d %H:%M:%S"},de:{monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],formatString:"%Y-%m-%d %H:%M:%S"},es:{monthNames:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthNamesShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],dayNames:["Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado"],dayNamesShort:["Dom","Lun","Mar","Mi&eacute;","Juv","Vie","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},ru:{monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],formatString:"%Y-%m-%d %H:%M:%S"},ar:{monthNames:["كانون الثاني","شباط","آذار","نيسان","آذار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["السبت","الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة"],dayNamesShort:["سبت","أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة"],formatString:"%Y-%m-%d %H:%M:%S"},pt:{monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},"pt-BR":{monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},pl:{monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Paź","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Ni","Pn","Wt","Śr","Cz","Pt","Sb"],formatString:"%Y-%m-%d %H:%M:%S"},nl:{monthNames:["Januari","Februari","Maart","April","Mei","Juni","July","Augustus","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:",".Zaterdag,dayNamesShort:["Zo","Ma","Di","Wo","Do","Vr","Za"],formatString:"%Y-%m-%d %H:%M:%S"},sv:{monthNames:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthNamesShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],dayNames:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],dayNamesShort:["sön","mån","tis","ons","tor","fre","lör"],formatString:"%Y-%m-%d %H:%M:%S"},it:{monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],formatString:"%d-%m-%Y %H:%M:%S"}},S.regional["en-US"]=S.regional["en-GB"]=S.regional.en,S.regional.getLocale=function(){var a=S.config.defaultLocale;return document&&document.getElementsByTagName("html")&&document.getElementsByTagName("html")[0].lang&&(a=document.getElementsByTagName("html")[0].lang,S.regional.hasOwnProperty(a)||(a=S.config.defaultLocale)),a};var T=864e5,U=function(a,b){a=String(a);var c=b-a.length,d=String(Math.pow(10,c)).slice(1);return d.concat(a)},V={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:T,week:7*T,month:{add:function(a,b){V.year.add(a,Math[b>0?"floor":"ceil"](b/12));var c=a.getMonth()+b%12;12==c?(c=0,a.setYear(a.getFullYear()+1)):-1==c&&(c=11,a.setYear(a.getFullYear()-1)),a.setMonth(c)},diff:function(a,b){var c=a.getFullYear()-b.getFullYear(),d=a.getMonth()-b.getMonth()+12*c,e=a.getDate()-b.getDate();return d+e/30}},year:{add:function(a,b){a.setYear(a.getFullYear()+Math[b>0?"floor":"ceil"](b))},diff:function(a,b){return V.month.diff(a,b)/12}}};for(var W in V)"s"!=W.substring(W.length-1)&&(V[W+"s"]=V[W]);var X=function(a,b,c){if(S.formats[c].shortcuts[b])return S.strftime(a,S.formats[c].shortcuts[b],c);var d=(S.formats[c].codes[b]||"").split("."),e=a["get"+d[0]]?a["get"+d[0]]():"";return d[1]&&(e=U(e,d[1])),e};S.strftime=function(a,b,c,d){var e="perl",f=S.regional.getLocale();c&&S.formats.hasOwnProperty(c)?e=c:c&&S.regional.hasOwnProperty(c)&&(f=c),d&&S.formats.hasOwnProperty(d)?e=d:d&&S.regional.hasOwnProperty(d)&&(f=d),("[object Object]"!=D(a)||"jsDate"!=a._type)&&(a=new S(a),a.locale=f),b||(b=a.formatString||S.regional[f].formatString);for(var g,h=b||"%Y-%m-%d",i="";h.length>0;)(g=h.match(S.formats[e].codes.matcher))?(i+=h.slice(0,g.index),i+=(g[1]||"")+X(a,g[2],e),h=h.slice(g.index+g[0].length)):(i+=h,h="");return i},S.formats={ISO:"%Y-%m-%dT%H:%M:%S.%N%G",SQL:"%Y-%m-%d %H:%M:%S"},S.formats.perl={codes:{matcher:/()%(#?(%|[a-z]))/i,Y:"FullYear",y:"ShortYear.2",m:"MonthNumber.2","#m":"MonthNumber",B:"MonthName",b:"AbbrMonthName",d:"Date.2","#d":"Date",e:"Date",A:"DayName",a:"AbbrDayName",w:"Day",H:"Hours.2","#H":"Hours",I:"Hours12.2","#I":"Hours12",p:"AMPM",M:"Minutes.2","#M":"Minutes",S:"Seconds.2","#S":"Seconds",s:"Unix",N:"Milliseconds.3","#N":"Milliseconds",O:"TimezoneOffset",Z:"TimezoneName",G:"GmtOffset"},shortcuts:{F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",D:"%m/%d/%y","#c":"%a %b %e %H:%M:%S %Y",v:"%e-%b-%Y",R:"%H:%M",r:"%I:%M:%S %p",t:"	",n:"\n","%":"%"}},S.formats.php={codes:{matcher:/()%((%|[a-z]))/i,a:"AbbrDayName",A:"DayName",d:"Date.2",e:"Date",j:"DayOfYear.3",u:"DayOfWeek",w:"Day",U:"FullWeekOfYear.2",V:"IsoWeek.2",W:"WeekOfYear.2",b:"AbbrMonthName",B:"MonthName",m:"MonthNumber.2",h:"AbbrMonthName",C:"Century.2",y:"ShortYear.2",Y:"FullYear",H:"Hours.2",I:"Hours12.2",l:"Hours12",p:"AMPM",P:"AmPm",M:"Minutes.2",S:"Seconds.2",s:"Unix",O:"TimezoneOffset",z:"GmtOffset",Z:"TimezoneAbbr"},shortcuts:{D:"%m/%d/%y",F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",R:"%H:%M",r:"%I:%M:%S %p",t:"	",n:"\n","%":"%"}},S.createDate=function(a){function b(a,b){var c,d,e,f,g=parseFloat(b[1]),h=parseFloat(b[2]),i=parseFloat(b[3]),j=S.config.defaultCentury;return g>31?(d=i,e=h,c=j+g):(d=h,e=g,c=j+i),f=e+"/"+d+"/"+c,a.replace(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})/,f)}if(null==a)return new Date;if(a instanceof Date)return a;if("number"==typeof a)return new Date(a);var c=String(a).replace(/^\s*(.+)\s*$/g,"$1");c=c.replace(/^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,4})/,"$1/$2/$3"),c=c.replace(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{4})/i,"$1 $2 $3");var d=c.match(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{2})\D*/i);if(d&&d.length>3){var e=parseFloat(d[3]),f=S.config.defaultCentury+e;f=String(f),c=c.replace(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{2})\D*/i,d[1]+" "+d[2]+" "+f)}d=c.match(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})[^0-9]/),d&&d.length>3&&(c=b(c,d));var d=c.match(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})$/);d&&d.length>3&&(c=b(c,d));for(var g,h,i,j=0,k=S.matchers.length,l=c;k>j;){if(h=Date.parse(l),!isNaN(h))return new Date(h);if(g=S.matchers[j],"function"==typeof g){if(i=g.call(S,l),i instanceof Date)return i}else l=c.replace(g[0],g[1]);j++}return NaN},S.daysInMonth=function(a,b){return 2==b?29==new Date(a,1,29).getDate()?29:28:[F,31,F,31,30,31,30,31,31,30,31,30,31][b]},S.matchers=[[/(3[01]|[0-2]\d)\s*\.\s*(1[0-2]|0\d)\s*\.\s*([1-9]\d{3})/,"$2/$1/$3"],[/([1-9]\d{3})\s*-\s*(1[0-2]|0\d)\s*-\s*(3[01]|[0-2]\d)/,"$2/$3/$1"],function(a){var b=a.match(/^(?:(.+)\s+)?([012]?\d)(?:\s*\:\s*(\d\d))?(?:\s*\:\s*(\d\d(\.\d*)?))?\s*(am|pm)?\s*$/i);if(b){if(b[1]){var c=this.createDate(b[1]);if(isNaN(c))return}else{var c=new Date;c.setMilliseconds(0)}var d=parseFloat(b[2]);return b[6]&&(d="am"==b[6].toLowerCase()?12==d?0:d:12==d?12:d+12),c.setHours(d,parseInt(b[3]||0,10),parseInt(b[4]||0,10),1e3*(parseFloat(b[5]||0)||0)),c}return a},function(a){var b=a.match(/^(?:(.+))[T|\s+]([012]\d)(?:\:(\d\d))(?:\:(\d\d))(?:\.\d+)([\+\-]\d\d\:\d\d)$/i);if(b){if(b[1]){var c=this.createDate(b[1]);if(isNaN(c))return}else{var c=new Date;c.setMilliseconds(0)}var d=parseFloat(b[2]);return c.setHours(d,parseInt(b[3],10),parseInt(b[4],10),1e3*parseFloat(b[5])),c}return a},function(a){var b=a.match(/^([0-3]?\d)\s*[-\/.\s]{1}\s*([a-zA-Z]{3,9})\s*[-\/.\s]{1}\s*([0-3]?\d)$/);if(b){var c,d,e,f=new Date,g=S.config.defaultCentury,h=parseFloat(b[1]),i=parseFloat(b[3]);h>31?(d=i,c=g+h):(d=h,c=g+i);var e=C(b[2],S.regional[S.regional.getLocale()].monthNamesShort);return-1==e&&(e=C(b[2],S.regional[S.regional.getLocale()].monthNames)),f.setFullYear(c,e,d),f.setHours(0,0,0,0),f}return a}],a.jsDate=S,a.jqplot.sprintf=function(){function b(a,b,c,d){var e=a.length>=b?"":Array(1+b-a.length>>>0).join(c);return d?a+e:e+a}function c(b){for(var c=new String(b),d=10;d>0&&c!=(c=c.replace(/^(\d+)(\d{3})/,"$1"+a.jqplot.sprintf.thousandsSeparator+"$2"));d--);return c}function d(a,c,d,e,f,g){var h=e-a.length;if(h>0){var i=" ";g&&(i="&nbsp;"),a=d||!f?b(a,e,i,d):a.slice(0,c.length)+b("",h,"0",!0)+a.slice(c.length)}return a}function e(a,c,e,f,g,h,i,j){var k=a>>>0;return e=e&&k&&{2:"0b",8:"0",16:"0x"}[c]||"",a=e+b(k.toString(c),h||0,"0",!1),d(a,e,f,g,i,j)}function f(a,b,c,e,f,g){return null!=e&&(a=a.slice(0,e)),d(a,"",b,c,f,g)}var g=arguments,h=0,i=g[h++];return i.replace(a.jqplot.sprintf.regex,function(i,j,k,l,m,n,o){if("%%"==i)return"%";for(var p=!1,q="",r=!1,s=!1,t=!1,u=!1,v=0;k&&v<k.length;v++)switch(k.charAt(v)){case" ":q=" ";break;case"+":q="+";break;case"-":p=!0;break;case"0":r=!0;break;case"#":s=!0;break;case"&":t=!0;break;case"'":u=!0}if(l=l?"*"==l?+g[h++]:"*"==l.charAt(0)?+g[l.slice(1,-1)]:+l:0,0>l&&(l=-l,p=!0),!isFinite(l))throw new Error("$.jqplot.sprintf: (minimum-)width must be finite");n=n?"*"==n?+g[h++]:"*"==n.charAt(0)?+g[n.slice(1,-1)]:+n:"fFeE".indexOf(o)>-1?6:"d"==o?0:void 0;var w=j?g[j.slice(0,-1)]:g[h++];switch(o){case"s":return null==w?"":f(String(w),p,l,n,r,t);case"c":return f(String.fromCharCode(+w),p,l,n,r,t);case"b":return e(w,2,s,p,l,n,r,t);case"o":return e(w,8,s,p,l,n,r,t);case"x":return e(w,16,s,p,l,n,r,t);case"X":return e(w,16,s,p,l,n,r,t).toUpperCase();case"u":return e(w,10,s,p,l,n,r,t);case"i":var x=parseInt(+w,10);if(isNaN(x))return"";var y=0>x?"-":q,z=u?c(String(Math.abs(x))):String(Math.abs(x));return w=y+b(z,n,"0",!1),d(w,y,p,l,r,t);case"d":var x=Math.round(+w);if(isNaN(x))return"";var y=0>x?"-":q,z=u?c(String(Math.abs(x))):String(Math.abs(x));return w=y+b(z,n,"0",!1),d(w,y,p,l,r,t);case"e":case"E":case"f":case"F":case"g":case"G":var x=+w;if(isNaN(x))return"";var y=0>x?"-":q,A=["toExponential","toFixed","toPrecision"]["efg".indexOf(o.toLowerCase())],B=["toString","toUpperCase"]["eEfFgG".indexOf(o)%2],z=Math.abs(x)[A](n),C=z.toString().split(".");C[0]=u?c(C[0]):C[0],z=C.join(a.jqplot.sprintf.decimalMark),w=y+z;var D=d(w,y,p,l,r,t)[B]();return D;case"p":case"P":var x=+w;if(isNaN(x))return"";var y=0>x?"-":q,C=String(Number(Math.abs(x)).toExponential()).split(/e|E/),E=-1!=C[0].indexOf(".")?C[0].length-1:String(x).length,F=C[1]<0?-C[1]-1:0;if(Math.abs(x)<1)w=n>=E+F?y+Math.abs(x).toPrecision(E):n-1>=E?y+Math.abs(x).toExponential(E-1):y+Math.abs(x).toExponential(n-1);else{var G=n>=E?E:n;w=y+Math.abs(x).toPrecision(G)}var B=["toString","toUpperCase"]["pP".indexOf(o)%2];return d(w,y,p,l,r,t)[B]();case"n":return"";default:return i}})},a.jqplot.sprintf.thousandsSeparator=",",a.jqplot.sprintf.decimalMark=".",a.jqplot.sprintf.regex=/%%|%(\d+\$)?([-+#0&\' ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([nAscboxXuidfegpEGP])/g,a.jqplot.getSignificantFigures=function(a){var b=String(Number(Math.abs(a)).toExponential()).split(/e|E/),c=-1!=b[0].indexOf(".")?b[0].length-1:b[0].length,d=b[1]<0?-b[1]-1:0,e=parseInt(b[1],10),f=e+1>0?e+1:0,g=f>=c?0:c-e-1;return{significantDigits:c,digitsLeft:f,digitsRight:g,zeros:d,exponent:e}},a.jqplot.getPrecision=function(b){return a.jqplot.getSignificantFigures(b).digitsRight};var Y=a.uiBackCompat!==!1;a.jqplot.effects={effect:{}};var Z="jqplot.storage.";a.extend(a.jqplot.effects,{version:"1.9pre",save:function(a,b){for(var c=0;c<b.length;c++)null!==b[c]&&a.data(Z+b[c],a[0].style[b[c]])},restore:function(a,b){for(var c=0;c<b.length;c++)null!==b[c]&&a.css(b[c],a.data(Z+b[c]))},setMode:function(a,b){return"toggle"===b&&(b=a.is(":hidden")?"show":"hide"),b},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:b.width(),height:b.height()},f=document.activeElement;return b.wrap(d),(b[0]===f||a.contains(b[0],f))&&a(f).focus(),d=b.parent(),"static"===b.css("position")?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),b.css(e),d.css(c).show()},removeWrapper:function(b){var c=document.activeElement;return b.parent().is(".ui-effects-wrapper")&&(b.parent().replaceWith(b),(b[0]===c||a.contains(b[0],c))&&a(c).focus()),b}}),a.fn.extend({jqplotEffect:function(b,c,d,e){function f(b){function c(){a.isFunction(e)&&e.call(d[0]),a.isFunction(b)&&b()}var d=a(this),e=g.complete,f=g.mode;(d.is(":hidden")?"hide"===f:"show"===f)?c():j.call(d[0],g,c)}var g=E.apply(this,arguments),h=g.mode,i=g.queue,j=a.jqplot.effects.effect[g.effect],k=!j&&Y&&a.jqplot.effects[g.effect];return a.fx.off||!j&&!k?h?this[h](g.duration,g.complete):this.each(function(){g.complete&&g.complete.call(this)}):j?i===!1?this.each(f):this.queue(i||"fx",f):k.call(this,{options:g,duration:g.duration,callback:g.complete,mode:g.mode})}});var $=/up|down|vertical/,_=/up|left|vertical|horizontal/;a.jqplot.effects.effect.blind=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","height","width"],i=a.jqplot.effects.setMode(g,b.mode||"hide"),j=b.direction||"up",k=$.test(j),l=k?"height":"width",m=k?"top":"left",n=_.test(j),o={},p="show"===i;g.parent().is(".ui-effects-wrapper")?a.jqplot.effects.save(g.parent(),h):a.jqplot.effects.save(g,h),g.show(),f=parseInt(g.css("top"),10),d=a.jqplot.effects.createWrapper(g).css({overflow:"hidden"}),e=k?d[l]()+f:d[l](),o[l]=p?String(e):"0",n||(g.css(k?"bottom":"right",0).css(k?"top":"left","").css({position:"absolute"}),o[m]=p?"0":String(e)),p&&(d.css(l,0),n||d.css(m,e)),d.animate(o,{duration:b.duration,easing:b.easing,queue:!1,complete:function(){"hide"===i&&g.hide(),a.jqplot.effects.restore(g,h),a.jqplot.effects.removeWrapper(g),c()}})}}(jQuery);
/*
    http://www.JSON.org/json2.js
    2011-10-19

    Public Domain.

    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.

    See http://www.JSON.org/js.html


    This code should be minified before deployment.
    See http://javascript.crockford.com/jsmin.html

    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
    NOT CONTROL.


    This file creates a global JSON object containing two methods: stringify
    and parse.

        JSON.stringify(value, replacer, space)
            value       any JavaScript value, usually an object or array.

            replacer    an optional parameter that determines how object
                        values are stringified for objects. It can be a
                        function or an array of strings.

            space       an optional parameter that specifies the indentation
                        of nested structures. If it is omitted, the text will
                        be packed without extra whitespace. If it is a number,
                        it will specify the number of spaces to indent at each
                        level. If it is a string (such as '\t' or '&nbsp;'),
                        it contains the characters used to indent at each level.

            This method produces a JSON text from a JavaScript value.

            When an object value is found, if the object contains a toJSON
            method, its toJSON method will be called and the result will be
            stringified. A toJSON method does not serialize: it returns the
            value represented by the name/value pair that should be serialized,
            or undefined if nothing should be serialized. The toJSON method
            will be passed the key associated with the value, and this will be
            bound to the value

            For example, this would serialize Dates as ISO strings.

                Date.prototype.toJSON = function (key) {
                    function f(n) {
                        // Format integers to have at least two digits.
                        return n < 10 ? '0' + n : n;
                    }

                    return this.getUTCFullYear()   + '-' +
                         f(this.getUTCMonth() + 1) + '-' +
                         f(this.getUTCDate())      + 'T' +
                         f(this.getUTCHours())     + ':' +
                         f(this.getUTCMinutes())   + ':' +
                         f(this.getUTCSeconds())   + 'Z';
                };

            You can provide an optional replacer method. It will be passed the
            key and value of each member, with this bound to the containing
            object. The value that is returned from your method will be
            serialized. If your method returns undefined, then the member will
            be excluded from the serialization.

            If the replacer parameter is an array of strings, then it will be
            used to select the members to be serialized. It filters the results
            such that only members with keys listed in the replacer array are
            stringified.

            Values that do not have JSON representations, such as undefined or
            functions, will not be serialized. Such values in objects will be
            dropped; in arrays they will be replaced with null. You can use
            a replacer function to replace those with JSON values.
            JSON.stringify(undefined) returns undefined.

            The optional space parameter produces a stringification of the
            value that is filled with line breaks and indentation to make it
            easier to read.

            If the space parameter is a non-empty string, then that string will
            be used for indentation. If the space parameter is a number, then
            the indentation will be that many spaces.

            Example:

            text = JSON.stringify(['e', {pluribus: 'unum'}]);
            // text is '["e",{"pluribus":"unum"}]'


            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'

            text = JSON.stringify([new Date()], function (key, value) {
                return this[key] instanceof Date ?
                    'Date(' + this[key] + ')' : value;
            });
            // text is '["Date(---current time---)"]'


        JSON.parse(text, reviver)
            This method parses a JSON text to produce an object or array.
            It can throw a SyntaxError exception.

            The optional reviver parameter is a function that can filter and
            transform the results. It receives each of the keys and values,
            and its return value is used instead of the original value.
            If it returns what it received, then the structure is not modified.
            If it returns undefined then the member is deleted.

            Example:

            // Parse the text. Values that look like ISO date strings will
            // be converted to Date objects.

            myData = JSON.parse(text, function (key, value) {
                var a;
                if (typeof value === 'string') {
                    a =
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
                    if (a) {
                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
                    }
                }
                return value;
            });

            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
                var d;
                if (typeof value === 'string' &&
                        value.slice(0, 5) === 'Date(' &&
                        value.slice(-1) === ')') {
                    d = new Date(value.slice(5, -1));
                    if (d) {
                        return d;
                    }
                }
                return value;
            });


    This is a reference implementation. You are free to copy, modify, or
    redistribute.
*/

/*jslint evil: true, regexp: true */

/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
    lastIndex, length, parse, prototype, push, replace, slice, stringify,
    test, toJSON, toString, valueOf
*/


// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.

var JSON;
if (!JSON) {
    JSON = {};
}

(function () {
    'use strict';

    function f(n) {
        // Format integers to have at least two digits.
        return n < 10 ? '0' + n : n;
    }

    if (typeof Date.prototype.toJSON !== 'function') {

        Date.prototype.toJSON = function (key) {

            return isFinite(this.valueOf())
                ? this.getUTCFullYear()     + '-' +
                    f(this.getUTCMonth() + 1) + '-' +
                    f(this.getUTCDate())      + 'T' +
                    f(this.getUTCHours())     + ':' +
                    f(this.getUTCMinutes())   + ':' +
                    f(this.getUTCSeconds())   + 'Z'
                : null;
        };

        String.prototype.toJSON      =
            Number.prototype.toJSON  =
            Boolean.prototype.toJSON = function (key) {
                return this.valueOf();
            };
    }

    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        gap,
        indent,
        meta = {    // table of character substitutions
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        },
        rep;


    function quote(string) {

// If the string contains no control characters, no quote characters, and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe escape
// sequences.

        escapable.lastIndex = 0;
        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
            var c = meta[a];
            return typeof c === 'string'
                ? c
                : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
        }) + '"' : '"' + string + '"';
    }


    function str(key, holder) {

// Produce a string from holder[key].

        var i,          // The loop counter.
            k,          // The member key.
            v,          // The member value.
            length,
            mind = gap,
            partial,
            value = holder[key];

// If the value has a toJSON method, call it to obtain a replacement value.

        if (value && typeof value === 'object' &&
                typeof value.toJSON === 'function') {
            value = value.toJSON(key);
        }

// If we were called with a replacer function, then call the replacer to
// obtain a replacement value.

        if (typeof rep === 'function') {
            value = rep.call(holder, key, value);
        }

// What happens next depends on the value's type.

        switch (typeof value) {
        case 'string':
            return quote(value);

        case 'number':

// JSON numbers must be finite. Encode non-finite numbers as null.

            return isFinite(value) ? String(value) : 'null';

        case 'boolean':
        case 'null':

// If the value is a boolean or null, convert it to a string. Note:
// typeof null does not produce 'null'. The case is included here in
// the remote chance that this gets fixed someday.

            return String(value);

// If the type is 'object', we might be dealing with an object or an array or
// null.

        case 'object':

// Due to a specification blunder in ECMAScript, typeof null is 'object',
// so watch out for that case.

            if (!value) {
                return 'null';
            }

// Make an array to hold the partial results of stringifying this object value.

            gap += indent;
            partial = [];

// Is the value an array?

            if (Object.prototype.toString.apply(value) === '[object Array]') {

// The value is an array. Stringify every element. Use null as a placeholder
// for non-JSON values.

                length = value.length;
                for (i = 0; i < length; i += 1) {
                    partial[i] = str(i, value) || 'null';
                }

// Join all of the elements together, separated with commas, and wrap them in
// brackets.

                v = partial.length === 0
                    ? '[]'
                    : gap
                    ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
                    : '[' + partial.join(',') + ']';
                gap = mind;
                return v;
            }

// If the replacer is an array, use it to select the members to be stringified.

            if (rep && typeof rep === 'object') {
                length = rep.length;
                for (i = 0; i < length; i += 1) {
                    if (typeof rep[i] === 'string') {
                        k = rep[i];
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            } else {

// Otherwise, iterate through all of the keys in the object.

                for (k in value) {
                    if (Object.prototype.hasOwnProperty.call(value, k)) {
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            }

// Join all of the member texts together, separated with commas,
// and wrap them in braces.

            v = partial.length === 0
                ? '{}'
                : gap
                ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
                : '{' + partial.join(',') + '}';
            gap = mind;
            return v;
        }
    }

// If the JSON object does not yet have a stringify method, give it one.

    if (typeof JSON.stringify !== 'function') {
        JSON.stringify = function (value, replacer, space) {

// The stringify method takes a value and an optional replacer, and an optional
// space parameter, and returns a JSON text. The replacer can be a function
// that can replace values, or an array of strings that will select the keys.
// A default replacer method can be provided. Use of the space parameter can
// produce text that is more easily readable.

            var i;
            gap = '';
            indent = '';

// If the space parameter is a number, make an indent string containing that
// many spaces.

            if (typeof space === 'number') {
                for (i = 0; i < space; i += 1) {
                    indent += ' ';
                }

// If the space parameter is a string, it will be used as the indent string.

            } else if (typeof space === 'string') {
                indent = space;
            }

// If there is a replacer, it must be a function or an array.
// Otherwise, throw an error.

            rep = replacer;
            if (replacer && typeof replacer !== 'function' &&
                    (typeof replacer !== 'object' ||
                    typeof replacer.length !== 'number')) {
                throw new Error('JSON.stringify');
            }

// Make a fake root object containing our value under the key of ''.
// Return the result of stringifying the value.

            return str('', {'': value});
        };
    }


// If the JSON object does not yet have a parse method, give it one.

    if (typeof JSON.parse !== 'function') {
        JSON.parse = function (text, reviver) {

// The parse method takes a text and an optional reviver function, and returns
// a JavaScript value if the text is a valid JSON text.

            var j;

            function walk(holder, key) {

// The walk method is used to recursively walk the resulting structure so
// that modifications can be made.

                var k, v, value = holder[key];
                if (value && typeof value === 'object') {
                    for (k in value) {
                        if (Object.prototype.hasOwnProperty.call(value, k)) {
                            v = walk(value, k);
                            if (v !== undefined) {
                                value[k] = v;
                            } else {
                                delete value[k];
                            }
                        }
                    }
                }
                return reviver.call(holder, key, value);
            }


// Parsing happens in four stages. In the first stage, we replace certain
// Unicode characters with escape sequences. JavaScript handles many characters
// incorrectly, either silently deleting them, or treating them as line endings.

            text = String(text);
            cx.lastIndex = 0;
            if (cx.test(text)) {
                text = text.replace(cx, function (a) {
                    return '\\u' +
                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                });
            }

// In the second stage, we run the text against regular expressions that look
// for non-JSON patterns. We are especially concerned with '()' and 'new'
// because they can cause invocation, and '=' because it can cause mutation.
// But just to be safe, we want to reject all unexpected forms.

// We split the second stage into 4 regexp operations in order to work around
// crippling inefficiencies in IE's and Safari's regexp engines. First we
// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
// replace all simple value tokens with ']' characters. Third, we delete all
// open brackets that follow a colon or comma or that begin the text. Finally,
// we look to see that the remaining characters are only whitespace or ']' or
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.

            if (/^[\],:{}\s]*$/
                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {

// In the third stage we use the eval function to compile the text into a
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We wrap the text
// in parens to eliminate the ambiguity.

                j = eval('(' + text + ')');

// In the optional fourth stage, we recursively walk the new structure, passing
// each name/value pair to a reviver function for possible transformation.

                return typeof reviver === 'function'
                    ? walk({'': j}, '')
                    : j;
            }

// If the text is not JSON parseable, then a SyntaxError is thrown.

            throw new SyntaxError('JSON.parse');
        };
    }
}());

!function(i){function t(t,e,s,h){if("horizontal"==this.rendererOptions.barDirection&&(this._stackAxis="x",this._primaryAxis="_yaxis"),1==this.rendererOptions.waterfall){this._data=i.extend(!0,[],this.data);for(var r=0,a=this.rendererOptions.barDirection&&"vertical"!==this.rendererOptions.barDirection&&this.transposedData!==!1?0:1,l=0;l<this.data.length;l++)r+=this.data[l][a],l>0&&(this.data[l][a]+=this.data[l-1][a]);this.data[this.data.length]=1==a?[this.data.length+1,r]:[r,this.data.length+1],this._data[this._data.length]=1==a?[this._data.length+1,r]:[r,this._data.length+1]}if(this.rendererOptions.groups>1){this.breakOnNull=!0;for(var n=this.data.length,o=parseInt(n/this.rendererOptions.groups,10),d=0,l=o;l<n;l+=o)this.data.splice(l+d,0,[null,null]),this._plotData.splice(l+d,0,[null,null]),this._stackData.splice(l+d,0,[null,null]),d++;for(l=0;l<this.data.length;l++)"_xaxis"==this._primaryAxis?(this.data[l][0]=l+1,this._plotData[l][0]=l+1,this._stackData[l][0]=l+1):(this.data[l][1]=l+1,this._plotData[l][1]=l+1,this._stackData[l][1]=l+1)}}function e(i,t,s,h,r){var a,l,n=i,o=i-1,d="x"===r?0:1;return n>0?(l=h.series[o]._plotData[t][d],a=s*l<0?e(o,t,s,h,r):h.series[o].gridData[t][d]):a=0===d?h.series[n]._xaxis.series_u2p(0):h.series[n]._yaxis.series_u2p(0),a}function s(t,e,s){for(var h=0;h<this.series.length;h++)this.series[h].renderer.constructor==i.jqplot.BarRenderer&&this.series[h].highlightMouseOver&&(this.series[h].highlightMouseDown=!1)}function h(){this.plugins.barRenderer&&this.plugins.barRenderer.highlightCanvas&&(this.plugins.barRenderer.highlightCanvas.resetCanvas(),this.plugins.barRenderer.highlightCanvas=null),this.plugins.barRenderer={highlightedSeriesIndex:null},this.plugins.barRenderer.highlightCanvas=new i.jqplot.GenericCanvas,this.eventCanvas._elem.before(this.plugins.barRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-barRenderer-highlight-canvas",this._plotDimensions,this)),this.plugins.barRenderer.highlightCanvas.setContext(),this.eventCanvas._elem.bind("mouseleave",{plot:this},function(i){a(i.data.plot)})}function r(i,t,e,s){var h=i.series[t],r=i.plugins.barRenderer.highlightCanvas;r._ctx.clearRect(0,0,r._ctx.canvas.width,r._ctx.canvas.height),h._highlightedPoint=e,i.plugins.barRenderer.highlightedSeriesIndex=t;var a={fillStyle:h.highlightColors[e]};h.renderer.shapeRenderer.draw(r._ctx,s,a),r=null}function a(i){var t=i.plugins.barRenderer.highlightCanvas;t._ctx.clearRect(0,0,t._ctx.canvas.width,t._ctx.canvas.height);for(var e=0;e<i.series.length;e++)i.series[e]._highlightedPoint=null;i.plugins.barRenderer.highlightedSeriesIndex=null,i.target.trigger("jqplotDataUnhighlight"),t=null}function l(i,t,e,s,h){if(s){var l=[s.seriesIndex,s.pointIndex,s.data],n=jQuery.Event("jqplotDataMouseOver");if(n.pageX=i.pageX,n.pageY=i.pageY,h.target.trigger(n,l),h.series[l[0]].show&&h.series[l[0]].highlightMouseOver&&(l[0]!=h.plugins.barRenderer.highlightedSeriesIndex||l[1]!=h.series[l[0]]._highlightedPoint)){var o=jQuery.Event("jqplotDataHighlight");o.which=i.which,o.pageX=i.pageX,o.pageY=i.pageY,h.target.trigger(o,l),r(h,s.seriesIndex,s.pointIndex,s.points)}}else null==s&&a(h)}function n(i,t,e,s,h){if(s){var l=[s.seriesIndex,s.pointIndex,s.data];if(h.series[l[0]].highlightMouseDown&&(l[0]!=h.plugins.barRenderer.highlightedSeriesIndex||l[1]!=h.series[l[0]]._highlightedPoint)){var n=jQuery.Event("jqplotDataHighlight");n.which=i.which,n.pageX=i.pageX,n.pageY=i.pageY,h.target.trigger(n,l),r(h,s.seriesIndex,s.pointIndex,s.points)}}else null==s&&a(h)}function o(i,t,e,s,h){var r=h.plugins.barRenderer.highlightedSeriesIndex;null!=r&&h.series[r].highlightMouseDown&&a(h)}function d(i,t,e,s,h){if(s){var r=[s.seriesIndex,s.pointIndex,s.data],a=jQuery.Event("jqplotDataClick");a.which=i.which,a.pageX=i.pageX,a.pageY=i.pageY,h.target.trigger(a,r)}}function g(i,t,e,s,h){if(s){var r=[s.seriesIndex,s.pointIndex,s.data],l=h.plugins.barRenderer.highlightedSeriesIndex;null!=l&&h.series[l].highlightMouseDown&&a(h);var n=jQuery.Event("jqplotDataRightClick");n.which=i.which,n.pageX=i.pageX,n.pageY=i.pageY,h.target.trigger(n,r)}}i.jqplot.BarRenderer=function(){i.jqplot.LineRenderer.call(this)},i.jqplot.BarRenderer.prototype=new i.jqplot.LineRenderer,i.jqplot.BarRenderer.prototype.constructor=i.jqplot.BarRenderer,i.jqplot.BarRenderer.prototype.init=function(t,e){this.barPadding=8,this.barMargin=10,this.barDirection="vertical",this.barWidth=null,this.shadowOffset=2,this.shadowDepth=5,this.shadowAlpha=.08,this.waterfall=!1,this.groups=1,this.varyBarColor=!1,this.highlightMouseOver=!0,this.highlightMouseDown=!1,this.highlightColors=[],this.transposedData=!0,this.renderer.animation={show:!1,direction:"down",speed:3e3,_supported:!0},this._type="bar",t.highlightMouseDown&&null==t.highlightMouseOver&&(t.highlightMouseOver=!1),i.extend(!0,this,t),i.extend(!0,this.renderer,t),this.fill=!0,"horizontal"===this.barDirection&&this.rendererOptions.animation&&null==this.rendererOptions.animation.direction&&(this.renderer.animation.direction="left"),this.waterfall&&(this.fillToZero=!1,this.disableStack=!0),"vertical"==this.barDirection?(this._primaryAxis="_xaxis",this._stackAxis="y",this.fillAxis="y"):(this._primaryAxis="_yaxis",this._stackAxis="x",this.fillAxis="x"),this._highlightedPoint=null,this._plotSeriesInfo=null,this._dataColors=[],this._barPoints=[];var r={lineJoin:"miter",lineCap:"round",fill:!0,isarc:!1,strokeStyle:this.color,fillStyle:this.color,closePath:this.fill};this.renderer.shapeRenderer.init(r);var a={lineJoin:"miter",lineCap:"round",fill:!0,isarc:!1,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,closePath:this.fill};this.renderer.shadowRenderer.init(a),e.postInitHooks.addOnce(s),e.postDrawHooks.addOnce(h),e.eventListenerHooks.addOnce("jqplotMouseMove",l),e.eventListenerHooks.addOnce("jqplotMouseDown",n),e.eventListenerHooks.addOnce("jqplotMouseUp",o),e.eventListenerHooks.addOnce("jqplotClick",d),e.eventListenerHooks.addOnce("jqplotRightClick",g)},i.jqplot.preSeriesInitHooks.push(t),i.jqplot.BarRenderer.prototype.calcSeriesNumbers=function(){for(var t,e,s=0,h=0,r=this[this._primaryAxis],a=0;a<r._series.length;a++)t=r._series[a],t===this&&(e=a),t.renderer.constructor==i.jqplot.BarRenderer&&(s+=t.data.length,h+=1);return[s,h,e]},i.jqplot.BarRenderer.prototype.setBarWidth=function(){var i=0,t=0,e=this[this._primaryAxis],s=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);i=s[0],t=s[1];var h=e.numberTicks,r=(h-1)/2;return"xaxis"==e.name||"x2axis"==e.name?this._stack?this.barWidth=(e._offsets.max-e._offsets.min)/i*t-this.barMargin:this.barWidth=((e._offsets.max-e._offsets.min)/r-this.barPadding*(t-1)-2*this.barMargin)/t:this._stack?this.barWidth=(e._offsets.min-e._offsets.max)/i*t-this.barMargin:this.barWidth=((e._offsets.min-e._offsets.max)/r-this.barPadding*(t-1)-2*this.barMargin)/t,[i,t]},i.jqplot.BarRenderer.prototype.draw=function(t,s,h,r){var a,l=i.extend({},h),n=void 0!=l.shadow?l.shadow:this.shadow,o=void 0!=l.showLine?l.showLine:this.showLine;void 0!=l.fill?l.fill:this.fill,this.xaxis,this.yaxis,this._xaxis.series_u2p,this._yaxis.series_u2p;this._dataColors=[],this._barPoints=[],null!=this.barWidth&&null!=this.rendererOptions.barWidth||this.renderer.setBarWidth.call(this);var d=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this),g=(d[0],d[1]),p=d[2],u=[];if(this._stack?this._barNudge=0:this._barNudge=(-Math.abs(g/2-.5)+p)*(this.barWidth+this.barPadding),o){var _=new i.jqplot.ColorGenerator(this.negativeSeriesColors),c=new i.jqplot.ColorGenerator(this.seriesColors),f=_.get(this.index);this.useNegativeColors||(f=l.fillStyle);var x,v,b,w=l.fillStyle;if("vertical"==this.barDirection){for(var a=0;a<s.length;a++)if(this._stack||null!=this.data[a][1]){if(u=[],x=s[a][0]+this._barNudge,b=this._stack&&this._prevGridData.length?e(this.index,a,this._plotData[a][1],r,"y"):this.fillToZero?this._yaxis.series_u2p(0):this.waterfall&&a>0&&a<this.gridData.length-1?this.gridData[a-1][1]:this.waterfall&&0==a&&a<this.gridData.length-1?this._yaxis.min<=0&&this._yaxis.max>=0?this._yaxis.series_u2p(0):this._yaxis.min>0?t.canvas.height:0:this.waterfall&&a==this.gridData.length-1?this._yaxis.min<=0&&this._yaxis.max>=0?this._yaxis.series_u2p(0):this._yaxis.min>0?t.canvas.height:0:t.canvas.height,this.fillToZero&&this._plotData[a][1]<0||this.waterfall&&this._data[a][1]<0?this.varyBarColor&&!this._stack?this.useNegativeColors?l.fillStyle=_.next():l.fillStyle=c.next():l.fillStyle=f:this.varyBarColor&&!this._stack?l.fillStyle=c.next():l.fillStyle=w,!this.fillToZero||this._plotData[a][1]>=0?(u.push([x-this.barWidth/2,b]),u.push([x-this.barWidth/2,s[a][1]]),u.push([x+this.barWidth/2,s[a][1]]),u.push([x+this.barWidth/2,b])):(u.push([x-this.barWidth/2,s[a][1]]),u.push([x-this.barWidth/2,b]),u.push([x+this.barWidth/2,b]),u.push([x+this.barWidth/2,s[a][1]])),this._barPoints.push(u),n&&!this._stack){var y=i.extend(!0,{},l);delete y.fillStyle,this.renderer.shadowRenderer.draw(t,u,y)}var D=l.fillStyle||this.color;this._dataColors.push(D),this.renderer.shapeRenderer.draw(t,u,l)}}else if("horizontal"==this.barDirection)for(var a=0;a<s.length;a++)if(this._stack||null!=this.data[a][0]){if(u=[],x=s[a][1]-this._barNudge,v=this._stack&&this._prevGridData.length?e(this.index,a,this._plotData[a][0],r,"x"):this.fillToZero?this._xaxis.series_u2p(0):this.waterfall&&a>0&&a<this.gridData.length-1?this.gridData[a-1][0]:this.waterfall&&0==a&&a<this.gridData.length-1?this._xaxis.min<=0&&this._xaxis.max>=0?this._xaxis.series_u2p(0):(this._xaxis.min>0,0):this.waterfall&&a==this.gridData.length-1?this._xaxis.min<=0&&this._xaxis.max>=0?this._xaxis.series_u2p(0):this._xaxis.min>0?0:t.canvas.width:0,this.fillToZero&&this._plotData[a][0]<0||this.waterfall&&this._data[a][0]<0?this.varyBarColor&&!this._stack?this.useNegativeColors?l.fillStyle=_.next():l.fillStyle=c.next():l.fillStyle=f:this.varyBarColor&&!this._stack?l.fillStyle=c.next():l.fillStyle=w,!this.fillToZero||this._plotData[a][0]>=0?(u.push([v,x+this.barWidth/2]),u.push([v,x-this.barWidth/2]),u.push([s[a][0],x-this.barWidth/2]),u.push([s[a][0],x+this.barWidth/2])):(u.push([s[a][0],x+this.barWidth/2]),u.push([s[a][0],x-this.barWidth/2]),u.push([v,x-this.barWidth/2]),u.push([v,x+this.barWidth/2])),this._barPoints.push(u),n&&!this._stack){var y=i.extend(!0,{},l);delete y.fillStyle,this.renderer.shadowRenderer.draw(t,u,y)}var D=l.fillStyle||this.color;this._dataColors.push(D),this.renderer.shapeRenderer.draw(t,u,l)}}if(0==this.highlightColors.length)this.highlightColors=i.jqplot.computeHighlightColors(this._dataColors);else if("string"==typeof this.highlightColors){var d=this.highlightColors;this.highlightColors=[];for(var a=0;a<this._dataColors.length;a++)this.highlightColors.push(d)}},i.jqplot.BarRenderer.prototype.drawShadow=function(i,t,s,h){var r,a,l,n,o,d=void 0!=s?s:{},g=(void 0!=d.shadow?d.shadow:this.shadow,void 0!=d.showLine?d.showLine:this.showLine);void 0!=d.fill?d.fill:this.fill,this.xaxis,this.yaxis,this._xaxis.series_u2p,this._yaxis.series_u2p;if(this._stack&&this.shadow){null==this.barWidth&&this.renderer.setBarWidth.call(this);var p=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);if(l=p[0],n=p[1],o=p[2],this._stack?this._barNudge=0:this._barNudge=(-Math.abs(n/2-.5)+o)*(this.barWidth+this.barPadding),g)if("vertical"==this.barDirection){for(var r=0;r<t.length;r++)if(null!=this.data[r][1]){a=[];var u,_=t[r][0]+this._barNudge;u=this._stack&&this._prevGridData.length?e(this.index,r,this._plotData[r][1],h,"y"):this.fillToZero?this._yaxis.series_u2p(0):i.canvas.height,a.push([_-this.barWidth/2,u]),a.push([_-this.barWidth/2,t[r][1]]),a.push([_+this.barWidth/2,t[r][1]]),a.push([_+this.barWidth/2,u]),this.renderer.shadowRenderer.draw(i,a,d)}}else if("horizontal"==this.barDirection)for(var r=0;r<t.length;r++)if(null!=this.data[r][0]){a=[];var c,_=t[r][1]-this._barNudge;c=this._stack&&this._prevGridData.length?e(this.index,r,this._plotData[r][0],h,"x"):this.fillToZero?this._xaxis.series_u2p(0):0,a.push([c,_+this.barWidth/2]),a.push([t[r][0],_+this.barWidth/2]),a.push([t[r][0],_-this.barWidth/2]),a.push([c,_-this.barWidth/2]),this.renderer.shadowRenderer.draw(i,a,d)}}}}(jQuery);
!function(t){t.jqplot.CanvasAxisLabelRenderer=function(e){this.angle=0,this.axis,this.show=!0,this.showLabel=!0,this.label="",this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif',this.fontSize="11pt",this.fontWeight="normal",this.fontStretch=1,this.textColor="#666666",this.enableFontSupport=!0,this.pt2px=null,this._elem,this._ctx,this._plotWidth,this._plotHeight,this._plotDimensions={height:null,width:null},t.extend(!0,this,e),null==e.angle&&"xaxis"!=this.axis&&"x2axis"!=this.axis&&(this.angle=-90);var i={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};this.pt2px&&(i.pt2px=this.pt2px),this.enableFontSupport&&t.jqplot.support_canvas_text()?this._textRenderer=new t.jqplot.CanvasFontRenderer(i):this._textRenderer=new t.jqplot.CanvasTextRenderer(i)},t.jqplot.CanvasAxisLabelRenderer.prototype.init=function(e){t.extend(!0,this,e),this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})},t.jqplot.CanvasAxisLabelRenderer.prototype.getWidth=function(t){if(this._elem)return this._elem.outerWidth(!0);var e=this._textRenderer,i=e.getWidth(t),n=e.getHeight(t),s=Math.abs(Math.sin(e.angle)*n)+Math.abs(Math.cos(e.angle)*i);return s},t.jqplot.CanvasAxisLabelRenderer.prototype.getHeight=function(t){if(this._elem)return this._elem.outerHeight(!0);var e=this._textRenderer,i=e.getWidth(t),n=e.getHeight(t),s=Math.abs(Math.cos(e.angle)*n)+Math.abs(Math.sin(e.angle)*i);return s},t.jqplot.CanvasAxisLabelRenderer.prototype.getAngleRad=function(){var t=this.angle*Math.PI/180;return t},t.jqplot.CanvasAxisLabelRenderer.prototype.draw=function(e,i){this._elem&&(t.jqplot.use_excanvas&&void 0!==window.G_vmlCanvasManager.uninitElement&&window.G_vmlCanvasManager.uninitElement(this._elem.get(0)),this._elem.emptyForce(),this._elem=null);var n=i.canvasManager.getCanvas();this._textRenderer.setText(this.label,e);var s=this.getWidth(e),a=this.getHeight(e);return n.width=s,n.height=a,n.style.width=s,n.style.height=a,n=i.canvasManager.initCanvas(n),this._elem=t(n),this._elem.css({position:"absolute"}),this._elem.addClass("jqplot-"+this.axis+"-label"),n=null,this._elem},t.jqplot.CanvasAxisLabelRenderer.prototype.pack=function(){this._textRenderer.draw(this._elem.get(0).getContext("2d"),this.label)}}(jQuery);
!function(t){t.jqplot.CanvasTextRenderer=function(i){this.fontStyle="normal",this.fontVariant="normal",this.fontWeight="normal",this.fontSize="10px",this.fontFamily="sans-serif",this.fontStretch=1,this.fillStyle="#666666",this.angle=0,this.textAlign="start",this.textBaseline="alphabetic",this.text,this.width,this.height,this.pt2px=1.28,t.extend(!0,this,i),this.normalizedFontSize=this.normalizeFontSize(this.fontSize),this.setHeight()},t.jqplot.CanvasTextRenderer.prototype.init=function(i){t.extend(!0,this,i),this.normalizedFontSize=this.normalizeFontSize(this.fontSize),this.setHeight()},t.jqplot.CanvasTextRenderer.prototype.normalizeFontSize=function(t){t=String(t);var i=parseFloat(t);return t.indexOf("px")>-1?i/this.pt2px:t.indexOf("pt")>-1?i:t.indexOf("em")>-1?12*i:t.indexOf("%")>-1?12*i/100:i/this.pt2px},t.jqplot.CanvasTextRenderer.prototype.fontWeight2Float=function(t){if(Number(t))return t/400;switch(t){case"normal":return 1;case"bold":return 1.75;case"bolder":return 2.25;case"lighter":return.75;default:return 1}},t.jqplot.CanvasTextRenderer.prototype.getText=function(){return this.text},t.jqplot.CanvasTextRenderer.prototype.setText=function(t,i){return this.text=t,this.setWidth(i),this},t.jqplot.CanvasTextRenderer.prototype.getWidth=function(t){return this.width},t.jqplot.CanvasTextRenderer.prototype.setWidth=function(t,i){return i?this.width=i:this.width=this.measure(t,this.text),this},t.jqplot.CanvasTextRenderer.prototype.getHeight=function(t){return this.height},t.jqplot.CanvasTextRenderer.prototype.setHeight=function(t){return t?this.height=t:this.height=this.normalizedFontSize*this.pt2px,this},t.jqplot.CanvasTextRenderer.prototype.letter=function(t){return this.letters[t]},t.jqplot.CanvasTextRenderer.prototype.ascent=function(){return this.normalizedFontSize},t.jqplot.CanvasTextRenderer.prototype.descent=function(){return 7*this.normalizedFontSize/25},t.jqplot.CanvasTextRenderer.prototype.measure=function(t,i){for(var h=0,n=i.length,e=0;e<n;e++){var s=this.letter(i.charAt(e));s&&(h+=s.width*this.normalizedFontSize/25*this.fontStretch)}return h},t.jqplot.CanvasTextRenderer.prototype.draw=function(t,i){var h=0,n=.72*this.height,e=0,s=i.length,o=this.normalizedFontSize/25;t.save();var a,r;-Math.PI/2<=this.angle&&this.angle<=0||3*Math.PI/2<=this.angle&&this.angle<=2*Math.PI?(a=0,r=-Math.sin(this.angle)*this.width):0<this.angle&&this.angle<=Math.PI/2||2*-Math.PI<=this.angle&&this.angle<=3*-Math.PI/2?(a=Math.sin(this.angle)*this.height,r=0):-Math.PI<this.angle&&this.angle<-Math.PI/2||Math.PI<=this.angle&&this.angle<=3*Math.PI/2?(a=-Math.cos(this.angle)*this.width,r=-Math.sin(this.angle)*this.width-Math.cos(this.angle)*this.height):(3*-Math.PI/2<this.angle&&this.angle<Math.PI||Math.PI/2<this.angle&&this.angle<Math.PI)&&(a=Math.sin(this.angle)*this.height-Math.cos(this.angle)*this.width,r=-Math.cos(this.angle)*this.height),t.strokeStyle=this.fillStyle,t.fillStyle=this.fillStyle,t.translate(a,r),t.rotate(this.angle),t.lineCap="round";var p=this.normalizedFontSize>30?2:2+(30-this.normalizedFontSize)/20;t.lineWidth=p*o*this.fontWeight2Float(this.fontWeight);for(var d=0;d<s;d++){var l=this.letter(i.charAt(d));if(l){t.beginPath();for(var w=1,g=0;g<l.points.length;g++){var f=l.points[g];f[0]!=-1||f[1]!=-1?w?(t.moveTo(h+f[0]*o*this.fontStretch,n-f[1]*o),w=!1):t.lineTo(h+f[0]*o*this.fontStretch,n-f[1]*o):w=1}t.stroke(),h+=l.width*o*this.fontStretch}}return t.restore(),e},t.jqplot.CanvasTextRenderer.prototype.letters={" ":{width:16,points:[]},"!":{width:10,points:[[5,21],[5,7],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},'"':{width:16,points:[[4,21],[4,14],[-1,-1],[12,21],[12,14]]},"#":{width:21,points:[[11,25],[4,-7],[-1,-1],[17,25],[10,-7],[-1,-1],[4,12],[18,12],[-1,-1],[3,6],[17,6]]},$:{width:20,points:[[8,25],[8,-4],[-1,-1],[12,25],[12,-4],[-1,-1],[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},"%":{width:24,points:[[21,21],[3,0],[-1,-1],[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],[10,20],[13,19],[16,19],[19,20],[21,21],[-1,-1],[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]]},"&":{width:26,points:[[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]]},"'":{width:10,points:[[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]]},"(":{width:14,points:[[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]]},")":{width:14,points:[[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]]},"*":{width:16,points:[[8,21],[8,9],[-1,-1],[3,18],[13,12],[-1,-1],[13,18],[3,12]]},"+":{width:26,points:[[13,18],[13,0],[-1,-1],[4,9],[22,9]]},",":{width:10,points:[[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"-":{width:18,points:[[6,9],[12,9]]},".":{width:10,points:[[5,2],[4,1],[5,0],[6,1],[5,2]]},"/":{width:22,points:[[20,25],[2,-7]]},0:{width:20,points:[[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]]},1:{width:20,points:[[6,17],[8,18],[11,21],[11,0]]},2:{width:20,points:[[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]]},3:{width:20,points:[[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},4:{width:20,points:[[13,21],[3,7],[18,7],[-1,-1],[13,21],[13,0]]},5:{width:20,points:[[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},6:{width:20,points:[[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]]},7:{width:20,points:[[17,21],[7,0],[-1,-1],[3,21],[17,21]]},8:{width:20,points:[[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]]},9:{width:20,points:[[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]]},":":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},";":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"<":{width:24,points:[[20,18],[4,9],[20,0]]},"=":{width:26,points:[[4,12],[22,12],[-1,-1],[4,6],[22,6]]},">":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}},t.jqplot.CanvasFontRenderer=function(i){i=i||{},i.pt2px||(i.pt2px=1.5),t.jqplot.CanvasTextRenderer.call(this,i)},t.jqplot.CanvasFontRenderer.prototype=new t.jqplot.CanvasTextRenderer({}),t.jqplot.CanvasFontRenderer.prototype.constructor=t.jqplot.CanvasFontRenderer,t.jqplot.CanvasFontRenderer.prototype.measure=function(t,i){var h=this.fontSize+" "+this.fontFamily;t.save(),t.font=h;var n=t.measureText(i).width;return t.restore(),n},t.jqplot.CanvasFontRenderer.prototype.draw=function(t,i){var h=0,n=.72*this.height;t.save();var e,s;-Math.PI/2<=this.angle&&this.angle<=0||3*Math.PI/2<=this.angle&&this.angle<=2*Math.PI?(e=0,s=-Math.sin(this.angle)*this.width):0<this.angle&&this.angle<=Math.PI/2||2*-Math.PI<=this.angle&&this.angle<=3*-Math.PI/2?(e=Math.sin(this.angle)*this.height,s=0):-Math.PI<this.angle&&this.angle<-Math.PI/2||Math.PI<=this.angle&&this.angle<=3*Math.PI/2?(e=-Math.cos(this.angle)*this.width,s=-Math.sin(this.angle)*this.width-Math.cos(this.angle)*this.height):(3*-Math.PI/2<this.angle&&this.angle<Math.PI||Math.PI/2<this.angle&&this.angle<Math.PI)&&(e=Math.sin(this.angle)*this.height-Math.cos(this.angle)*this.width,s=-Math.cos(this.angle)*this.height),t.strokeStyle=this.fillStyle,t.fillStyle=this.fillStyle;var o=this.fontSize+" "+this.fontFamily;t.font=o,t.translate(e,s),t.rotate(this.angle),t.fillText(i,h,n),t.restore()}}(jQuery);
!function(o){function t(t,e,r){var i=r.plugins.cursor,n="",a=!1;if(i.showTooltipGridPosition&&(n=t.x+", "+t.y,a=!0),i.showTooltipUnitPosition)for(var l,d=0;d<i.tooltipAxisGroups.length;d++){if(l=i.tooltipAxisGroups[d],a&&(n+="<br />"),i.useAxesFormatters)for(var c=0;c<l.length;c++){c&&(n+=", ");var u=r.axes[l[c]]._ticks[0].formatter,p=r.axes[l[c]]._ticks[0].formatString;n+=u(p,e[l[c]])}else n+=o.jqplot.sprintf(i.tooltipFormatString,e[l[0]],e[l[1]]);a=!0}if(i.showTooltipDataPosition)for(var m=r.series,g=s(r,t.x,t.y),a=!1,d=0;d<m.length;d++)if(m[d].show){var h=m[d].index,f=m[d].label.toString(),v=o.inArray(h,g.indices),x=void 0,_=void 0;if(v!=-1){var w=g.data[v].data;if(i.useAxesFormatters){var z=m[d]._xaxis._ticks[0].formatter,y=m[d]._yaxis._ticks[0].formatter,k=m[d]._xaxis._ticks[0].formatString,j=m[d]._yaxis._ticks[0].formatString;x=z(k,w[0]),_=y(j,w[1])}else x=w[0],_=w[1];a&&(n+="<br />"),n+=o.jqplot.sprintf(i.tooltipFormatString,f,x,_),a=!0}}i._tooltipElem.html(n)}function e(t,e){var r=e.plugins.cursor,i=r.cursorCanvas._ctx;i.clearRect(0,0,i.canvas.width,i.canvas.height),r.showVerticalLine&&r.shapeRenderer.draw(i,[[t.x,0],[t.x,i.canvas.height]]),r.showHorizontalLine&&r.shapeRenderer.draw(i,[[0,t.y],[i.canvas.width,t.y]]);var n=s(e,t.x,t.y);if(r.showCursorLegend)for(var a=o(e.targetId+" td.jqplot-cursor-legend-label"),l=0;l<a.length;l++){var d=o(a[l]).data("seriesIndex"),c=e.series[d],u=c.label.toString(),p=o.inArray(d,n.indices),m=void 0,g=void 0;if(p!=-1){var h=n.data[p].data;if(r.useAxesFormatters){var f=c._xaxis._ticks[0].formatter,v=c._yaxis._ticks[0].formatter,x=c._xaxis._ticks[0].formatString,_=c._yaxis._ticks[0].formatString;m=f(x,h[0]),g=v(_,h[1])}else m=h[0],g=h[1]}e.legend.escapeHtml?o(a[l]).text(o.jqplot.sprintf(r.cursorLegendFormatString,u,m,g)):o(a[l]).html(o.jqplot.sprintf(r.cursorLegendFormatString,u,m,g))}i=null}function s(o,t,e){for(var s,r,i,n,a,l,d={indices:[],data:[]},c=o.plugins.cursor,r=0;r<o.series.length;r++)if(s=o.series[r],n=s.renderer,s.show){l=c.intersectionThreshold,s.showMarker&&(l+=s.markerRenderer.size/2);for(var i=0;i<s.gridData.length;i++)a=s.gridData[i],c.showVerticalLine&&Math.abs(t-a[0])<=l&&(d.indices.push(r),d.data.push({seriesIndex:r,pointIndex:i,gridData:a,data:s.data[i]}))}return d}function r(o,t){var e=t.plugins.cursor,s=e._tooltipElem;switch(e.tooltipLocation){case"nw":var r=o.x+t._gridPadding.left-s.outerWidth(!0)-e.tooltipOffset,i=o.y+t._gridPadding.top-e.tooltipOffset-s.outerHeight(!0);break;case"n":var r=o.x+t._gridPadding.left-s.outerWidth(!0)/2,i=o.y+t._gridPadding.top-e.tooltipOffset-s.outerHeight(!0);break;case"ne":var r=o.x+t._gridPadding.left+e.tooltipOffset,i=o.y+t._gridPadding.top-e.tooltipOffset-s.outerHeight(!0);break;case"e":var r=o.x+t._gridPadding.left+e.tooltipOffset,i=o.y+t._gridPadding.top-s.outerHeight(!0)/2;break;case"se":var r=o.x+t._gridPadding.left+e.tooltipOffset,i=o.y+t._gridPadding.top+e.tooltipOffset;break;case"s":var r=o.x+t._gridPadding.left-s.outerWidth(!0)/2,i=o.y+t._gridPadding.top+e.tooltipOffset;break;case"sw":var r=o.x+t._gridPadding.left-s.outerWidth(!0)-e.tooltipOffset,i=o.y+t._gridPadding.top+e.tooltipOffset;break;case"w":var r=o.x+t._gridPadding.left-s.outerWidth(!0)-e.tooltipOffset,i=o.y+t._gridPadding.top-s.outerHeight(!0)/2;break;default:var r=o.x+t._gridPadding.left+e.tooltipOffset,i=o.y+t._gridPadding.top+e.tooltipOffset}s.css("left",r),s.css("top",i),s=null}function i(o){var t=o._gridPadding,e=o.plugins.cursor,s=e._tooltipElem;switch(e.tooltipLocation){case"nw":var r=t.left+e.tooltipOffset,i=t.top+e.tooltipOffset;s.css("left",r),s.css("top",i);break;case"n":var r=(t.left+(o._plotDimensions.width-t.right))/2-s.outerWidth(!0)/2,i=t.top+e.tooltipOffset;s.css("left",r),s.css("top",i);break;case"ne":var r=t.right+e.tooltipOffset,i=t.top+e.tooltipOffset;s.css({right:r,top:i});break;case"e":var r=t.right+e.tooltipOffset,i=(t.top+(o._plotDimensions.height-t.bottom))/2-s.outerHeight(!0)/2;s.css({right:r,top:i});break;case"se":var r=t.right+e.tooltipOffset,i=t.bottom+e.tooltipOffset;s.css({right:r,bottom:i});break;case"s":var r=(t.left+(o._plotDimensions.width-t.right))/2-s.outerWidth(!0)/2,i=t.bottom+e.tooltipOffset;s.css({left:r,bottom:i});break;case"sw":var r=t.left+e.tooltipOffset,i=t.bottom+e.tooltipOffset;s.css({left:r,bottom:i});break;case"w":var r=t.left+e.tooltipOffset,i=(t.top+(o._plotDimensions.height-t.bottom))/2-s.outerHeight(!0)/2;s.css({left:r,top:i});break;default:var r=t.right-e.tooltipOffset,i=t.bottom+e.tooltipOffset;s.css({right:r,bottom:i})}s=null}function n(o,t,e,s,r){o.preventDefault(),o.stopImmediatePropagation();var i=r.plugins.cursor;i.clickReset&&i.resetZoom(r,i);var n=window.getSelection;return document.selection&&document.selection.empty?document.selection.empty():n&&!n().isCollapsed&&n().collapse(),!1}function a(o,t,e,s,r){o.preventDefault(),o.stopImmediatePropagation();var i=r.plugins.cursor;i.dblClickReset&&i.resetZoom(r,i);var n=window.getSelection;return document.selection&&document.selection.empty?document.selection.empty():n&&!n().isCollapsed&&n().collapse(),!1}function l(t,e,s,r,i){var n=i.plugins.cursor;if(n.onGrid=!1,n.show){if(o(t.target).css("cursor",n.previousCursor),!n.showTooltip||n._zoom.zooming&&n.showTooltipOutsideZoom&&!n.constrainOutsideZoom||(n._tooltipElem.empty(),n._tooltipElem.hide()),n.zoom&&(n._zoom.gridpos=e,n._zoom.datapos=s),n.showVerticalLine||n.showHorizontalLine){var a=n.cursorCanvas._ctx;a.clearRect(0,0,a.canvas.width,a.canvas.height),a=null}if(n.showCursorLegend)for(var l=o(i.targetId+" td.jqplot-cursor-legend-label"),d=0;d<l.length;d++){var c=o(l[d]).data("seriesIndex"),u=i.series[c],p=u.label.toString();i.legend.escapeHtml?o(l[d]).text(o.jqplot.sprintf(n.cursorLegendFormatString,p,void 0,void 0)):o(l[d]).html(o.jqplot.sprintf(n.cursorLegendFormatString,p,void 0,void 0))}}}function d(o,s,n,a,l){var d=l.plugins.cursor;d.onGrid=!0,d.show&&(d.previousCursor=o.target.style.cursor,o.target.style.cursor=d.style,d.showTooltip&&(t(s,n,l),d.followMouse?r(s,l):i(l),d._tooltipElem.show()),(d.showVerticalLine||d.showHorizontalLine)&&e(s,l))}function c(o,s,i,n,a){var l=a.plugins.cursor;l.show&&(l.showTooltip&&(t(s,i,a),l.followMouse&&r(s,a)),(l.showVerticalLine||l.showHorizontalLine)&&e(s,a))}function u(o){var t,e,s=o.data.plot,r=s.eventCanvas._elem.offset(),i={x:o.pageX-r.left,y:o.pageY-r.top},n={xaxis:null,yaxis:null,x2axis:null,y2axis:null,y3axis:null,y4axis:null,y5axis:null,y6axis:null,y7axis:null,y8axis:null,y9axis:null,yMidAxis:null},a=["xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis","yMidAxis"],l=s.axes;for(t=11;t>0;t--)e=a[t-1],l[e].show&&(n[e]=l[e].series_p2u(i[e.charAt(0)]));return{offsets:r,gridPos:i,dataPos:n}}function p(o){var e=o.data.plot,s=e.plugins.cursor;if(s.show&&s.zoom&&s._zoom.started&&!s.zoomTarget){o.preventDefault();var i=s.zoomCanvas._ctx,n=u(o),a=n.gridPos,l=n.dataPos;s._zoom.gridpos=a,s._zoom.datapos=l,s._zoom.zooming=!0;var d=a.x,c=a.y,p=i.canvas.height,m=i.canvas.width;s.showTooltip&&!s.onGrid&&s.showTooltipOutsideZoom&&(t(a,l,e),s.followMouse&&r(a,e)),"x"==s.constrainZoomTo?s._zoom.end=[d,p]:"y"==s.constrainZoomTo?s._zoom.end=[m,c]:s._zoom.end=[d,c];var g=window.getSelection;document.selection&&document.selection.empty?document.selection.empty():g&&!g().isCollapsed&&g().collapse(),h.call(s),i=null}}function m(t,e,s,r,i){var n=i.plugins.cursor;i.plugins.mobile?o(document).one("vmouseup.jqplot_cursor",{plot:i},g):o(document).one("mouseup.jqplot_cursor",{plot:i},g);i.axes;if(void 0!=document.onselectstart&&(n._oldHandlers.onselectstart=document.onselectstart,document.onselectstart=function(){return!1}),void 0!=document.ondrag&&(n._oldHandlers.ondrag=document.ondrag,document.ondrag=function(){return!1}),void 0!=document.onmousedown&&(n._oldHandlers.onmousedown=document.onmousedown,document.onmousedown=function(){return!1}),n.zoom){if(!n.zoomProxy){var a=n.zoomCanvas._ctx;a.clearRect(0,0,a.canvas.width,a.canvas.height),a=null}"x"==n.constrainZoomTo?n._zoom.start=[e.x,0]:"y"==n.constrainZoomTo?n._zoom.start=[0,e.y]:n._zoom.start=[e.x,e.y],n._zoom.started=!0;for(var l in s)n._zoom.axes.start[l]=s[l];i.plugins.mobile?o(document).bind("vmousemove.jqplotCursor",{plot:i},p):o(document).bind("mousemove.jqplotCursor",{plot:i},p)}}function g(t){var e=t.data.plot,s=e.plugins.cursor;if(s.zoom&&s._zoom.zooming&&!s.zoomTarget){var r=s._zoom.gridpos.x,i=s._zoom.gridpos.y,n=s._zoom.datapos,a=s.zoomCanvas._ctx.canvas.height,l=s.zoomCanvas._ctx.canvas.width,d=e.axes;if(s.constrainOutsideZoom&&!s.onGrid){r<0?r=0:r>l&&(r=l),i<0?i=0:i>a&&(i=a);for(var c in n)n[c]&&("x"==c.charAt(0)?n[c]=d[c].series_p2u(r):n[c]=d[c].series_p2u(i))}"x"==s.constrainZoomTo?i=a:"y"==s.constrainZoomTo&&(r=l),s._zoom.end=[r,i],s._zoom.gridpos={x:r,y:i},s.doZoom(s._zoom.gridpos,n,e,s)}s._zoom.started=!1,s._zoom.zooming=!1,o(document).unbind("mousemove.jqplotCursor",p),void 0!=document.onselectstart&&null!=s._oldHandlers.onselectstart&&(document.onselectstart=s._oldHandlers.onselectstart,s._oldHandlers.onselectstart=null),void 0!=document.ondrag&&null!=s._oldHandlers.ondrag&&(document.ondrag=s._oldHandlers.ondrag,s._oldHandlers.ondrag=null),void 0!=document.onmousedown&&null!=s._oldHandlers.onmousedown&&(document.onmousedown=s._oldHandlers.onmousedown,s._oldHandlers.onmousedown=null)}function h(){var o,t,e,s,r=this._zoom.start,i=this._zoom.end,n=this.zoomCanvas._ctx;i[0]>r[0]?(o=r[0],s=i[0]-r[0]):(o=i[0],s=r[0]-i[0]),i[1]>r[1]?(t=r[1],e=i[1]-r[1]):(t=i[1],e=r[1]-i[1]),n.fillStyle="rgba(0,0,0,0.2)",n.strokeStyle="#999999",n.lineWidth=1,n.clearRect(0,0,n.canvas.width,n.canvas.height),n.fillRect(0,0,n.canvas.width,n.canvas.height),n.clearRect(o,t,s,e),n.strokeRect(o,t,s,e),n=null}o.jqplot.Cursor=function(t){this.style="crosshair",this.previousCursor="auto",this.show=o.jqplot.config.enablePlugins,this.showTooltip=!0,this.followMouse=!1,this.tooltipLocation="se",this.tooltipOffset=6,this.showTooltipGridPosition=!1,this.showTooltipUnitPosition=!0,this.showTooltipDataPosition=!1,this.tooltipFormatString="%.4P, %.4P",this.useAxesFormatters=!0,this.tooltipAxisGroups=[],this.zoom=!1,this.zoomProxy=!1,this.zoomTarget=!1,this.looseZoom=!0,this.clickReset=!1,this.dblClickReset=!0,this.showVerticalLine=!1,this.showHorizontalLine=!1,this.constrainZoomTo="none",this.shapeRenderer=new o.jqplot.ShapeRenderer,this._zoom={start:[],end:[],started:!1,zooming:!1,isZoomed:!1,axes:{start:{},end:{}},gridpos:{},datapos:{}},this._tooltipElem,this.zoomCanvas,this.cursorCanvas,this.intersectionThreshold=2,this.showCursorLegend=!1,this.cursorLegendFormatString=o.jqplot.Cursor.cursorLegendFormatString,this._oldHandlers={onselectstart:null,ondrag:null,onmousedown:null},this.constrainOutsideZoom=!0,this.showTooltipOutsideZoom=!1,this.onGrid=!1,o.extend(!0,this,t)},o.jqplot.Cursor.cursorLegendFormatString="%s x:%s, y:%s",o.jqplot.Cursor.init=function(t,e,s){var r=s||{};this.plugins.cursor=new o.jqplot.Cursor(r.cursor);var i=this.plugins.cursor;i.show&&(o.jqplot.eventListenerHooks.push(["jqplotMouseEnter",d]),o.jqplot.eventListenerHooks.push(["jqplotMouseLeave",l]),o.jqplot.eventListenerHooks.push(["jqplotMouseMove",c]),i.showCursorLegend&&(s.legend=s.legend||{},s.legend.renderer=o.jqplot.CursorLegendRenderer,s.legend.formatString=this.plugins.cursor.cursorLegendFormatString,s.legend.show=!0),i.zoom&&(o.jqplot.eventListenerHooks.push(["jqplotMouseDown",m]),i.clickReset&&o.jqplot.eventListenerHooks.push(["jqplotClick",n]),i.dblClickReset&&o.jqplot.eventListenerHooks.push(["jqplotDblClick",a])),this.resetZoom=function(){var o=this.axes;if(i.zoomProxy){var t=this.plugins.cursor.zoomCanvas._ctx;t.clearRect(0,0,t.canvas.width,t.canvas.height),t=null}else{for(var e in o)o[e].reset(),o[e]._ticks=[],void 0!==i._zoom.axes[e]&&(o[e]._autoFormatString=i._zoom.axes[e].tickFormatString);this.redraw()}this.plugins.cursor._zoom.isZoomed=!1,this.target.trigger("jqplotResetZoom",[this,this.plugins.cursor])},i.showTooltipDataPosition&&(i.showTooltipUnitPosition=!1,i.showTooltipGridPosition=!1,void 0==r.cursor.tooltipFormatString&&(i.tooltipFormatString=o.jqplot.Cursor.cursorLegendFormatString)))},o.jqplot.Cursor.postDraw=function(){var t=this.plugins.cursor;t.zoomCanvas&&(t.zoomCanvas.resetCanvas(),t.zoomCanvas=null),t.cursorCanvas&&(t.cursorCanvas.resetCanvas(),t.cursorCanvas=null),t._tooltipElem&&(t._tooltipElem.emptyForce(),t._tooltipElem=null),t.zoom&&(t.zoomCanvas=new o.jqplot.GenericCanvas,this.eventCanvas._elem.before(t.zoomCanvas.createElement(this._gridPadding,"jqplot-zoom-canvas",this._plotDimensions,this)),t.zoomCanvas.setContext());var e=document.createElement("div");if(t._tooltipElem=o(e),e=null,t._tooltipElem.addClass("jqplot-cursor-tooltip"),t._tooltipElem.css({position:"absolute",display:"none"}),t.zoomCanvas?t.zoomCanvas._elem.before(t._tooltipElem):this.eventCanvas._elem.before(t._tooltipElem),(t.showVerticalLine||t.showHorizontalLine)&&(t.cursorCanvas=new o.jqplot.GenericCanvas,this.eventCanvas._elem.before(t.cursorCanvas.createElement(this._gridPadding,"jqplot-cursor-canvas",this._plotDimensions,this)),t.cursorCanvas.setContext()),t.showTooltipUnitPosition&&0===t.tooltipAxisGroups.length){for(var s,r=this.series,i=[],n=0;n<r.length;n++){s=r[n];var a=s.xaxis+","+s.yaxis;o.inArray(a,i)==-1&&i.push(a)}for(var n=0;n<i.length;n++)t.tooltipAxisGroups.push(i[n].split(","))}},o.jqplot.Cursor.zoomProxy=function(o,t){function e(t,e,s,i,n){r.doZoom(e,s,o,n)}function s(t,e,s){o.resetZoom()}var r=o.plugins.cursor,i=t.plugins.cursor;r.zoomTarget=!0,r.zoom=!0,r.style="auto",r.dblClickReset=!1,i.zoom=!0,i.zoomProxy=!0,t.target.bind("jqplotZoom",e),t.target.bind("jqplotResetZoom",s)},o.jqplot.Cursor.prototype.resetZoom=function(o,t){var e=o.axes,s=t._zoom.axes;if(!o.plugins.cursor.zoomProxy&&t._zoom.isZoomed){for(var r in e)e[r].reset(),e[r]._ticks=[],e[r]._autoFormatString=s[r].tickFormatString;o.redraw(),t._zoom.isZoomed=!1}else{var i=t.zoomCanvas._ctx;i.clearRect(0,0,i.canvas.width,i.canvas.height),i=null}o.target.trigger("jqplotResetZoom",[o,t])},o.jqplot.Cursor.resetZoom=function(o){o.resetZoom()},o.jqplot.Cursor.prototype.doZoom=function(t,e,s,r){var i,n,a,l,d,c,u,p=r,m=s.axes,g=p._zoom.axes,h=g.start,f=(g.end,s.plugins.cursor.zoomCanvas._ctx);if("none"==p.constrainZoomTo&&Math.abs(t.x-p._zoom.start[0])>6&&Math.abs(t.y-p._zoom.start[1])>6||"x"==p.constrainZoomTo&&Math.abs(t.x-p._zoom.start[0])>6||"y"==p.constrainZoomTo&&Math.abs(t.y-p._zoom.start[1])>6){if(!s.plugins.cursor.zoomProxy){for(var v in e)void 0==p._zoom.axes[v]&&(p._zoom.axes[v]={},p._zoom.axes[v].numberTicks=m[v].numberTicks,p._zoom.axes[v].tickInterval=m[v].tickInterval,p._zoom.axes[v].daTickInterval=m[v].daTickInterval,p._zoom.axes[v].min=m[v].min,p._zoom.axes[v].max=m[v].max,p._zoom.axes[v].tickFormatString=null!=m[v].tickOptions?m[v].tickOptions.formatString:""),("none"==p.constrainZoomTo||"x"==p.constrainZoomTo&&"x"==v.charAt(0)||"y"==p.constrainZoomTo&&"y"==v.charAt(0))&&(i=e[v],null!=i&&(i>h[v]?(a=h[v],l=i):(n=h[v]-i,a=i,l=h[v]),d=m[v],c=null,d.alignTicks&&("x2axis"===d.name&&s.axes.xaxis.show?c=s.axes.xaxis.numberTicks:"y"===d.name.charAt(0)&&"yaxis"!==d.name&&"yMidAxis"!==d.name&&s.axes.yaxis.show&&(c=s.axes.yaxis.numberTicks)),!this.looseZoom||m[v].renderer.constructor!==o.jqplot.LinearAxisRenderer&&m[v].renderer.constructor!==o.jqplot.LogAxisRenderer?(m[v].min=a,m[v].max=l,m[v].tickInterval=null,m[v].numberTicks=null,m[v].daTickInterval=null):(u=o.jqplot.LinearTickGenerator(a,l,d._scalefact,c),m[v].tickInset&&u[0]<m[v].min+m[v].tickInset*m[v].tickInterval&&(u[0]+=u[4],u[2]-=1),m[v].tickInset&&u[1]>m[v].max-m[v].tickInset*m[v].tickInterval&&(u[1]-=u[4],u[2]-=1),m[v].renderer.constructor===o.jqplot.LogAxisRenderer&&u[0]<m[v].min&&(u[0]+=u[4],u[2]-=1),m[v].min=u[0],m[v].max=u[1],m[v]._autoFormatString=u[3],m[v].numberTicks=u[2],m[v].tickInterval=u[4],m[v].daTickInterval=[u[4]/1e3,"seconds"]),m[v]._ticks=[]));f.clearRect(0,0,f.canvas.width,f.canvas.height),s.redraw(),p._zoom.isZoomed=!0,f=null}s.target.trigger("jqplotZoom",[t,e,s,r])}},o.jqplot.preInitHooks.push(o.jqplot.Cursor.init),o.jqplot.postDrawHooks.push(o.jqplot.Cursor.postDraw),o.jqplot.CursorLegendRenderer=function(t){o.jqplot.TableLegendRenderer.call(this,t),this.formatString="%s"},o.jqplot.CursorLegendRenderer.prototype=new o.jqplot.TableLegendRenderer,o.jqplot.CursorLegendRenderer.prototype.constructor=o.jqplot.CursorLegendRenderer,o.jqplot.CursorLegendRenderer.prototype.draw=function(){function t(t,e,s,r){var i=s?this.rowSpacing:"0",n=o('<tr class="jqplot-legend jqplot-cursor-legend"></tr>').appendTo(this._elem);n.data("seriesIndex",r),o('<td class="jqplot-legend jqplot-cursor-legend-swatch" style="padding-top:'+i+';"><div style="border:1px solid #cccccc;padding:0.2em;"><div class="jqplot-cursor-legend-swatch" style="background-color:'+e+';"></div></div></td>').appendTo(n);var a=o('<td class="jqplot-legend jqplot-cursor-legend-label" style="vertical-align:middle;padding-top:'+i+';"></td>');a.appendTo(n),a.data("seriesIndex",r),this.escapeHtml?a.text(t):a.html(t),n=null,a=null}if(this._elem&&(this._elem.emptyForce(),this._elem=null),this.show){var e,s=this._series,r=document.createElement("table");this._elem=o(r),r=null,this._elem.addClass("jqplot-legend jqplot-cursor-legend"),this._elem.css("position","absolute");for(var i=!1,n=0;n<s.length;n++)if(e=s[n],e.show&&e.showLabel){var a=o.jqplot.sprintf(this.formatString,e.label.toString());if(a){var l=e.color;e._stack&&!e.fill&&(l=""),t.call(this,a,l,i,n),i=!0}for(var d=0;d<o.jqplot.addLegendRowHooks.length;d++){var c=o.jqplot.addLegendRowHooks[d].call(this,e);c&&(t.call(this,c.label,c.color,i),i=!0)}}s=e=null,delete s,delete e}return this._elem}}(jQuery);
!function(t){function i(t,i,e){for(var s,a,n,r=Number.MAX_VALUE,h=0,l=m.length;h<l;h++)s=Math.abs(e-m[h]),s<r&&(r=s,a=m[h],n=o[h]);return[a,n]}t.jqplot.DateAxisRenderer=function(){t.jqplot.LinearAxisRenderer.call(this),this.date=new t.jsDate};var e=1e3,s=60*e,a=60*s,n=24*a,r=7*n,h=30.4368499*n,l=365.242199*n,o=["%M:%S.%#N","%M:%S.%#N","%M:%S.%#N","%M:%S","%M:%S","%M:%S","%M:%S","%H:%M:%S","%H:%M:%S","%H:%M","%H:%M","%H:%M","%H:%M","%H:%M","%H:%M","%a %H:%M","%a %H:%M","%b %e %H:%M","%b %e %H:%M","%b %e %H:%M","%b %e %H:%M","%v","%v","%v","%v","%v","%v","%v"],m=[.1*e,.2*e,.5*e,e,2*e,5*e,10*e,15*e,30*e,s,2*s,5*s,10*s,15*s,30*s,a,2*a,4*a,6*a,8*a,12*a,n,2*n,3*n,4*n,5*n,r,2*r];t.jqplot.DateAxisRenderer.prototype=new t.jqplot.LinearAxisRenderer,t.jqplot.DateAxisRenderer.prototype.constructor=t.jqplot.DateAxisRenderer,t.jqplot.DateTickFormatter=function(i,e){return i||(i="%Y/%m/%d"),t.jsDate.strftime(e,i)},t.jqplot.DateAxisRenderer.prototype.init=function(i){this.tickOptions.formatter=t.jqplot.DateTickFormatter,this.tickInset=0,this.drawBaseline=!0,this.baselineWidth=null,this.baselineColor=null,this.daTickInterval=null,this._daTickInterval=null,t.extend(!0,this,i);for(var e,s,a,n,r,h,l,o=this._dataBounds,m=0;m<this._series.length;m++){e={intervals:[],frequencies:{},sortedIntervals:[],min:null,max:null,mean:null},s=0,a=this._series[m],n=a.data,r=a._plotData,h=a._stackData,l=0;for(var c=0;c<n.length;c++)"xaxis"==this.name||"x2axis"==this.name?(n[c][0]=new t.jsDate(n[c][0]).getTime(),r[c][0]=new t.jsDate(n[c][0]).getTime(),h[c][0]=new t.jsDate(n[c][0]).getTime(),(null!=n[c][0]&&n[c][0]<o.min||null==o.min)&&(o.min=n[c][0]),(null!=n[c][0]&&n[c][0]>o.max||null==o.max)&&(o.max=n[c][0]),c>0&&(l=Math.abs(n[c][0]-n[c-1][0]),e.intervals.push(l),e.frequencies.hasOwnProperty(l)?e.frequencies[l]+=1:e.frequencies[l]=1),s+=l):(n[c][1]=new t.jsDate(n[c][1]).getTime(),r[c][1]=new t.jsDate(n[c][1]).getTime(),h[c][1]=new t.jsDate(n[c][1]).getTime(),(null!=n[c][1]&&n[c][1]<o.min||null==o.min)&&(o.min=n[c][1]),(null!=n[c][1]&&n[c][1]>o.max||null==o.max)&&(o.max=n[c][1]),c>0&&(l=Math.abs(n[c][1]-n[c-1][1]),e.intervals.push(l),e.frequencies.hasOwnProperty(l)?e.frequencies[l]+=1:e.frequencies[l]=1)),s+=l;if(a.renderer.bands){if(a.renderer.bands.hiData.length)for(var u=a.renderer.bands.hiData,c=0,k=u.length;c<k;c++)"xaxis"===this.name||"x2axis"===this.name?(u[c][0]=new t.jsDate(u[c][0]).getTime(),(null!=u[c][0]&&u[c][0]>o.max||null==o.max)&&(o.max=u[c][0])):(u[c][1]=new t.jsDate(u[c][1]).getTime(),(null!=u[c][1]&&u[c][1]>o.max||null==o.max)&&(o.max=u[c][1]));if(a.renderer.bands.lowData.length)for(var u=a.renderer.bands.lowData,c=0,k=u.length;c<k;c++)"xaxis"===this.name||"x2axis"===this.name?(u[c][0]=new t.jsDate(u[c][0]).getTime(),(null!=u[c][0]&&u[c][0]<o.min||null==o.min)&&(o.min=u[c][0])):(u[c][1]=new t.jsDate(u[c][1]).getTime(),(null!=u[c][1]&&u[c][1]<o.min||null==o.min)&&(o.min=u[c][1]))}for(var v in e.frequencies)e.sortedIntervals.push({interval:v,frequency:e.frequencies[v]});e.sortedIntervals.sort(function(t,i){return i.frequency-t.frequency}),e.min=t.jqplot.arrayMin(e.intervals),e.max=t.jqplot.arrayMax(e.intervals),e.mean=s/n.length,this._intervalStats.push(e),e=s=a=n=r=h=null}o=null},t.jqplot.DateAxisRenderer.prototype.reset=function(){this.min=this._options.min,this.max=this._options.max,this.tickInterval=this._options.tickInterval,this.numberTicks=this._options.numberTicks,this._autoFormatString="",this._overrideFormatString&&this.tickOptions&&this.tickOptions.formatString&&(this.tickOptions.formatString=""),this.daTickInterval=this._daTickInterval},t.jqplot.DateAxisRenderer.prototype.createTicks=function(e){var s,a,r,o,m=this._ticks,c=this.ticks,u=this.name,k=this._dataBounds,v=(this._intervalStats,"x"===this.name.charAt(0)?this._plotDimensions.width:this._plotDimensions.height),d=30,T=1,g=null;if(null!=this.tickInterval)if(Number(this.tickInterval))g=[Number(this.tickInterval),"seconds"];else if("string"==typeof this.tickInterval){var w=this.tickInterval.split(" ");1==w.length?g=[1,w[0]]:2==w.length&&(g=[w[0],w[1]])}this.tickInterval;s=new t.jsDate(null!=this.min?this.min:k.min).getTime(),a=new t.jsDate(null!=this.max?this.max:k.max).getTime();var x=e.plugins.cursor;x&&x._zoom&&x._zoom.zooming&&(this.min=null,this.max=null);var f=a-s;if(null!=this.tickOptions&&this.tickOptions.formatString||(this._overrideFormatString=!0),c.length){for(o=0;o<c.length;o++){var p=c[o],M=new this.tickRenderer(this.tickOptions);p.constructor==Array?(M.value=new t.jsDate(p[0]).getTime(),M.label=p[1],this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),M.setTick(M.value,this.name),this._ticks.push(M)):(M.value=new t.jsDate(p).getTime(),this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),M.setTick(M.value,this.name),this._ticks.push(M))}this.numberTicks=c.length,this.min=this._ticks[0].value,this.max=this._ticks[this.numberTicks-1].value,this.daTickInterval=[(this.max-this.min)/(this.numberTicks-1)/1e3,"seconds"]}else if(null==this.min&&null==this.max&&k.min==k.max){var _=t.extend(!0,{},this.tickOptions,{name:this.name,value:null}),D=3e5;this.min=k.min-D,this.max=k.max+D,this.numberTicks=3;for(var o=this.min;o<=this.max;o+=D){_.value=o;var M=new this.tickRenderer(_);this._overrideFormatString&&""!=this._autoFormatString&&(M.formatString=this._autoFormatString),M.showLabel=!1,M.showMark=!1,this._ticks.push(M)}this.showTicks&&(this._ticks[1].showLabel=!0),this.showTickMarks&&(this._ticks[1].showTickMarks=!0)}else if(null==this.min&&null==this.max){var b,j,I=t.extend(!0,{},this.tickOptions,{name:this.name,value:null});if(this.tickInterval||this.numberTicks)this.tickInterval?j=new t.jsDate(0).add(g[0],g[1]).getTime():this.numberTicks&&(b=this.numberTicks,j=(a-s)/(b-1));else{var S=Math.max(v,d+1),q=115;this.tickRenderer===t.jqplot.CanvasAxisTickRenderer&&this.tickOptions.angle&&(q=115-40*Math.abs(Math.sin(this.tickOptions.angle/180*Math.PI))),b=Math.ceil((S-d)/q+1),j=(a-s)/(b-1)}if(j<=19*n){var F=i(s,a,j),y=F[0];this._autoFormatString=F[1],s=new t.jsDate(s),s=Math.floor((s.getTime()-s.getUtcOffset())/y)*y+s.getUtcOffset(),b=Math.ceil((a-s)/y)+1,this.min=s,this.max=s+(b-1)*y,this.max<a&&(this.max+=y,b+=1),this.tickInterval=y,this.numberTicks=b;for(var o=0;o<b;o++)I.value=this.min+o*y,M=new this.tickRenderer(I),this._overrideFormatString&&""!=this._autoFormatString&&(M.formatString=this._autoFormatString),this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),this._ticks.push(M);T=this.tickInterval}else if(j<=9*h){this._autoFormatString="%v";var H=Math.round(j/h);H<1?H=1:H>6&&(H=6);var R=new t.jsDate(s).setDate(1).setHours(0,0,0,0),O=new t.jsDate(a),A=new t.jsDate(a).setDate(1).setHours(0,0,0,0);O.getTime()!==A.getTime()&&(A=A.add(1,"month"));var L=A.diff(R,"month");b=Math.ceil(L/H)+1,this.min=R.getTime(),this.max=R.clone().add((b-1)*H,"month").getTime(),this.numberTicks=b;for(var o=0;o<b;o++)0===o?I.value=R.getTime():I.value=R.add(H,"month").getTime(),M=new this.tickRenderer(I),this._overrideFormatString&&""!=this._autoFormatString&&(M.formatString=this._autoFormatString),this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),this._ticks.push(M);T=H*h}else{this._autoFormatString="%v";var H=Math.round(j/l);H<1&&(H=1);var R=new t.jsDate(s).setMonth(0,1).setHours(0,0,0,0),A=new t.jsDate(a).add(1,"year").setMonth(0,1).setHours(0,0,0,0),N=A.diff(R,"year");b=Math.ceil(N/H)+1,this.min=R.getTime(),this.max=R.clone().add((b-1)*H,"year").getTime(),this.numberTicks=b;for(var o=0;o<b;o++)0===o?I.value=R.getTime():I.value=R.add(H,"year").getTime(),M=new this.tickRenderer(I),this._overrideFormatString&&""!=this._autoFormatString&&(M.formatString=this._autoFormatString),this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),this._ticks.push(M);T=H*l}}else{if(v="xaxis"==u||"x2axis"==u?this._plotDimensions.width:this._plotDimensions.height,null!=this.min&&null!=this.max&&null!=this.numberTicks&&(this.tickInterval=null),null!=this.tickInterval&&null!=g&&(this.daTickInterval=g),s==a){var z=432e5;s-=z,a+=z}f=a-s;var B,P;2+parseInt(Math.max(0,v-100)/100,10);if(B=null!=this.min?new t.jsDate(this.min).getTime():s-f/2*(this.padMin-1),P=null!=this.max?new t.jsDate(this.max).getTime():a+f/2*(this.padMax-1),this.min=B,this.max=P,f=this.max-this.min,null==this.numberTicks)if(null!=this.daTickInterval){var U=new t.jsDate(this.max).diff(this.min,this.daTickInterval[1],!0);this.numberTicks=Math.ceil(U/this.daTickInterval[0])+1,this.max=new t.jsDate(this.min).add((this.numberTicks-1)*this.daTickInterval[0],this.daTickInterval[1]).getTime()}else v>200?this.numberTicks=parseInt(3+(v-200)/100,10):this.numberTicks=2;T=f/(this.numberTicks-1)/1e3,null==this.daTickInterval&&(this.daTickInterval=[T,"seconds"]);for(var o=0;o<this.numberTicks;o++){var s=new t.jsDate(this.min);r=s.add(o*this.daTickInterval[0],this.daTickInterval[1]).getTime();var M=new this.tickRenderer(this.tickOptions);this.showTicks?this.showTickMarks||(M.showMark=!1):(M.showLabel=!1,M.showMark=!1),M.setTick(r,this.name),this._ticks.push(M)}}this.tickInset&&(this.min=this.min-this.tickInset*T,this.max=this.max+this.tickInset*T),null==this._daTickInterval&&(this._daTickInterval=this.daTickInterval),m=null}}(jQuery);
!function(e){e.jqplot.EnhancedLegendRenderer=function(){e.jqplot.TableLegendRenderer.call(this)},e.jqplot.EnhancedLegendRenderer.prototype=new e.jqplot.TableLegendRenderer,e.jqplot.EnhancedLegendRenderer.prototype.constructor=e.jqplot.EnhancedLegendRenderer,e.jqplot.EnhancedLegendRenderer.prototype.init=function(s){this.numberRows=null,this.numberColumns=null,this.seriesToggle="normal",this.seriesToggleReplot=!1,this.disableIEFading=!0,e.extend(!0,this,s),this.seriesToggle&&e.jqplot.postDrawHooks.push(t)},e.jqplot.EnhancedLegendRenderer.prototype.draw=function(t,n){if(this.show){var l,o=this._series,i="position:absolute;";i+=this.background?"background:"+this.background+";":"",i+=this.border?"border:"+this.border+";":"",i+=this.fontSize?"font-size:"+this.fontSize+";":"",i+=this.fontFamily?"font-family:"+this.fontFamily+";":"",i+=this.textColor?"color:"+this.textColor+";":"",i+=null!=this.marginTop?"margin-top:"+this.marginTop+";":"",i+=null!=this.marginBottom?"margin-bottom:"+this.marginBottom+";":"",i+=null!=this.marginLeft?"margin-left:"+this.marginLeft+";":"",i+=null!=this.marginRight?"margin-right:"+this.marginRight+";":"",this._elem=e('<table class="jqplot-table-legend" style="'+i+'"></table>'),this.seriesToggle&&this._elem.css("z-index","3");var d,a,r=!1,h=!1;this.numberRows?(d=this.numberRows,a=this.numberColumns?this.numberColumns:Math.ceil(o.length/d)):this.numberColumns?(a=this.numberColumns,d=Math.ceil(o.length/this.numberColumns)):(d=o.length,a=1);var p,g,c,m,u,b,f,w,q,j=0;for(p=o.length-1;p>=0;p--)(1==a&&o[p]._stack||o[p].renderer.constructor==e.jqplot.BezierCurveRenderer)&&(h=!0);for(p=0;p<d;p++){for(c=e(document.createElement("tr")),c.addClass("jqplot-table-legend"),h?c.prependTo(this._elem):c.appendTo(this._elem),g=0;g<a;g++){if(j<o.length&&(o[j].show||o[j].showLabel)&&(l=o[j],b=this.labels[j]||l.label.toString())){var C=l.color;if(r=h?p!=d-1:p>0,f=r?this.rowSpacing:"0",m=e(document.createElement("td")),m.addClass("jqplot-table-legend jqplot-table-legend-swatch"),m.css({textAlign:"center",paddingTop:f}),w=e(document.createElement("div")),w.addClass("jqplot-table-legend-swatch-outline"),q=e(document.createElement("div")),q.addClass("jqplot-table-legend-swatch"),q.css({backgroundColor:C,borderColor:C}),m.append(w.append(q)),u=e(document.createElement("td")),u.addClass("jqplot-table-legend jqplot-table-legend-label"),u.css("paddingTop",f),this.escapeHtml?u.text(b):u.html(b),h?(this.showLabels&&u.prependTo(c),this.showSwatches&&m.prependTo(c)):(this.showSwatches&&m.appendTo(c),this.showLabels&&u.appendTo(c)),this.seriesToggle){var v;"string"!=typeof this.seriesToggle&&"number"!=typeof this.seriesToggle||e.jqplot.use_excanvas&&this.disableIEFading||(v=this.seriesToggle),this.showSwatches&&(m.bind("click",{series:l,speed:v,plot:n,replot:this.seriesToggleReplot},s),m.addClass("jqplot-seriesToggle")),this.showLabels&&(u.bind("click",{series:l,speed:v,plot:n,replot:this.seriesToggleReplot},s),u.addClass("jqplot-seriesToggle")),!l.show&&l.showLabel&&(m.addClass("jqplot-series-hidden"),u.addClass("jqplot-series-hidden"))}r=!0}j++}m=u=w=q=null}}return this._elem};var s=function(s){var t=s.data,n=t.series,l=t.replot,o=t.plot,i=t.speed,d=n.index,a=!1;!n.canvas._elem.is(":hidden")&&n.show||(a=!0);var r=function(){if(l){var s={};if(e.isPlainObject(l)&&e.extend(!0,s,l),o.replot(s),a&&i){var t=o.series[d];t.shadowCanvas._elem&&t.shadowCanvas._elem.hide().fadeIn(i),t.canvas._elem.hide().fadeIn(i),t.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+t.index).hide().fadeIn(i)}}else{var t=o.series[d];t.canvas._elem.is(":hidden")||!t.show?("undefined"!=typeof o.options.legend.showSwatches&&o.options.legend.showSwatches!==!0||o.legend._elem.find("td").eq(2*d).addClass("jqplot-series-hidden"),"undefined"!=typeof o.options.legend.showLabels&&o.options.legend.showLabels!==!0||o.legend._elem.find("td").eq(2*d+1).addClass("jqplot-series-hidden")):("undefined"!=typeof o.options.legend.showSwatches&&o.options.legend.showSwatches!==!0||o.legend._elem.find("td").eq(2*d).removeClass("jqplot-series-hidden"),"undefined"!=typeof o.options.legend.showLabels&&o.options.legend.showLabels!==!0||o.legend._elem.find("td").eq(2*d+1).removeClass("jqplot-series-hidden"))}};n.toggleDisplay(s,r)},t=function(){if(this.legend.renderer.constructor==e.jqplot.EnhancedLegendRenderer&&this.legend.seriesToggle){var s=this.legend._elem.detach();this.eventCanvas._elem.after(s)}}}(jQuery);

!function(t){function i(i,e){var o=i.plugins.highlighter,r=i.series[e.seriesIndex],s=r.markerRenderer,l=o.markerRenderer;l.style=s.style,l.lineWidth=s.lineWidth+o.lineWidthAdjust,l.size=s.size+o.sizeAdjust;var h=t.jqplot.getColorComponents(s.color),a=[h[0],h[1],h[2]],n=h[3]>=.6?.6*h[3]:h[3]*(2-h[3]);l.color="rgba("+a[0]+","+a[1]+","+a[2]+","+n+")",l.init(),l.draw(r.gridData[e.pointIndex][0],r.gridData[e.pointIndex][1],o.highlightCanvas._ctx)}function e(i,e,o){var h=i.plugins.highlighter,a=h._tooltipElem,n=e.highlighter||{},g=t.extend(!0,{},h,n);if(g.useAxesFormatters){for(var p,d=e._xaxis._ticks[0].formatter,f=e._yaxis._ticks[0].formatter,u=e._xaxis._ticks[0].formatString,c=e._yaxis._ticks[0].formatString,v=d(u,o.data[0]),x=[],m=1;m<g.yvalues+1;m++)x.push(f(c,o.data[m]));if("string"==typeof g.formatString)switch(g.tooltipAxes){case"both":case"xy":x.unshift(v),x.unshift(g.formatString),p=t.jqplot.sprintf.apply(t.jqplot.sprintf,x);break;case"yx":x.push(v),x.unshift(g.formatString),p=t.jqplot.sprintf.apply(t.jqplot.sprintf,x);break;case"x":p=t.jqplot.sprintf.apply(t.jqplot.sprintf,[g.formatString,v]);break;case"y":x.unshift(g.formatString),p=t.jqplot.sprintf.apply(t.jqplot.sprintf,x);break;default:x.unshift(v),x.unshift(g.formatString),p=t.jqplot.sprintf.apply(t.jqplot.sprintf,x)}else switch(g.tooltipAxes){case"both":case"xy":p=v;for(var m=0;m<x.length;m++)p+=g.tooltipSeparator+x[m];break;case"yx":p="";for(var m=0;m<x.length;m++)p+=x[m]+g.tooltipSeparator;p+=v;break;case"x":p=v;break;case"y":p=x.join(g.tooltipSeparator);break;default:p=v;for(var m=0;m<x.length;m++)p+=g.tooltipSeparator+x[m]}}else{var p;"string"==typeof g.formatString?p=t.jqplot.sprintf.apply(t.jqplot.sprintf,[g.formatString].concat(o.data)):"both"==g.tooltipAxes||"xy"==g.tooltipAxes?p=t.jqplot.sprintf(g.tooltipFormatString,o.data[0])+g.tooltipSeparator+t.jqplot.sprintf(g.tooltipFormatString,o.data[1]):"yx"==g.tooltipAxes?p=t.jqplot.sprintf(g.tooltipFormatString,o.data[1])+g.tooltipSeparator+t.jqplot.sprintf(g.tooltipFormatString,o.data[0]):"x"==g.tooltipAxes?p=t.jqplot.sprintf(g.tooltipFormatString,o.data[0]):"y"==g.tooltipAxes&&(p=t.jqplot.sprintf(g.tooltipFormatString,o.data[1]))}t.isFunction(g.tooltipContentEditor)&&(p=g.tooltipContentEditor(p,o.seriesIndex,o.pointIndex,i)),a.html(p);var j={x:o.gridData[0],y:o.gridData[1]},_=0,w=.707;1==e.markerRenderer.show&&(_=(e.markerRenderer.size+g.sizeAdjust)/2);var q=r;switch(e.fillToZero&&e.fill&&o.data[1]<0&&(q=l),q[s[g.tooltipLocation]]){case"nw":var y=j.x+i._gridPadding.left-a.outerWidth(!0)-g.tooltipOffset-w*_,S=j.y+i._gridPadding.top-g.tooltipOffset-a.outerHeight(!0)-w*_;break;case"n":var y=j.x+i._gridPadding.left-a.outerWidth(!0)/2,S=j.y+i._gridPadding.top-g.tooltipOffset-a.outerHeight(!0)-_;break;case"ne":var y=j.x+i._gridPadding.left+g.tooltipOffset+w*_,S=j.y+i._gridPadding.top-g.tooltipOffset-a.outerHeight(!0)-w*_;break;case"e":var y=j.x+i._gridPadding.left+g.tooltipOffset+_,S=j.y+i._gridPadding.top-a.outerHeight(!0)/2;break;case"se":var y=j.x+i._gridPadding.left+g.tooltipOffset+w*_,S=j.y+i._gridPadding.top+g.tooltipOffset+w*_;break;case"s":var y=j.x+i._gridPadding.left-a.outerWidth(!0)/2,S=j.y+i._gridPadding.top+g.tooltipOffset+_;break;case"sw":var y=j.x+i._gridPadding.left-a.outerWidth(!0)-g.tooltipOffset-w*_,S=j.y+i._gridPadding.top+g.tooltipOffset+w*_;break;case"w":var y=j.x+i._gridPadding.left-a.outerWidth(!0)-g.tooltipOffset-_,S=j.y+i._gridPadding.top-a.outerHeight(!0)/2;break;default:var y=j.x+i._gridPadding.left-a.outerWidth(!0)-g.tooltipOffset-w*_,S=j.y+i._gridPadding.top-g.tooltipOffset-a.outerHeight(!0)-w*_}a.css("left",y),a.css("top",S),g.fadeTooltip?a.stop(!0,!0).fadeIn(g.tooltipFadeSpeed):a.show(),a=null}function o(t,o,r,s,l){var h=l.plugins.highlighter,a=l.plugins.cursor;if(h.show)if(null==s&&h.isHighlighting){var n=jQuery.Event("jqplotHighlighterUnhighlight");l.target.trigger(n);var g=h.highlightCanvas._ctx;g.clearRect(0,0,g.canvas.width,g.canvas.height),h.fadeTooltip?h._tooltipElem.fadeOut(h.tooltipFadeSpeed):h._tooltipElem.hide(),h.bringSeriesToFront&&l.restorePreviousSeriesOrder(),h.isHighlighting=!1,h.currentNeighbor=null,g=null}else if(null!=s&&l.series[s.seriesIndex].showHighlight&&!h.isHighlighting){var n=jQuery.Event("jqplotHighlighterHighlight");n.which=t.which,n.pageX=t.pageX,n.pageY=t.pageY;var p=[s.seriesIndex,s.pointIndex,s.data,l];l.target.trigger(n,p),h.isHighlighting=!0,h.currentNeighbor=s,h.showMarker&&i(l,s),!l.series[s.seriesIndex].show||!h.showTooltip||a&&a._zoom.started||e(l,l.series[s.seriesIndex],s),h.bringSeriesToFront&&l.moveSeriesToFront(s.seriesIndex)}else if(null!=s&&h.isHighlighting&&h.currentNeighbor!=s&&l.series[s.seriesIndex].showHighlight){var g=h.highlightCanvas._ctx;g.clearRect(0,0,g.canvas.width,g.canvas.height),h.isHighlighting=!0,h.currentNeighbor=s,h.showMarker&&i(l,s),!l.series[s.seriesIndex].show||!h.showTooltip||a&&a._zoom.started||e(l,l.series[s.seriesIndex],s),h.bringSeriesToFront&&l.moveSeriesToFront(s.seriesIndex)}}t.jqplot.eventListenerHooks.push(["jqplotMouseMove",o]),t.jqplot.Highlighter=function(i){this.show=t.jqplot.config.enablePlugins,this.markerRenderer=new t.jqplot.MarkerRenderer({shadow:!1}),this.showMarker=!0,this.lineWidthAdjust=2.5,this.sizeAdjust=5,this.showTooltip=!0,this.tooltipLocation="nw",this.fadeTooltip=!0,this.tooltipFadeSpeed="fast",this.tooltipOffset=2,this.tooltipAxes="both",this.tooltipSeparator=", ",this.tooltipContentEditor=null,this.useAxesFormatters=!0,this.tooltipFormatString="%.5P",this.formatString=null,this.yvalues=1,this.bringSeriesToFront=!1,this._tooltipElem,this.isHighlighting=!1,this.currentNeighbor=null,t.extend(!0,this,i)};var r=["nw","n","ne","e","se","s","sw","w"],s={nw:0,n:1,ne:2,e:3,se:4,s:5,sw:6,w:7},l=["se","s","sw","w","nw","n","ne","e"];t.jqplot.Highlighter.init=function(i,e,o){var r=o||{};this.plugins.highlighter=new t.jqplot.Highlighter(r.highlighter)},t.jqplot.Highlighter.parseOptions=function(t,i){this.showHighlight=!0},t.jqplot.Highlighter.postPlotDraw=function(){this.plugins.highlighter&&this.plugins.highlighter.highlightCanvas&&(this.plugins.highlighter.highlightCanvas.resetCanvas(),this.plugins.highlighter.highlightCanvas=null),this.plugins.highlighter&&this.plugins.highlighter._tooltipElem&&(this.plugins.highlighter._tooltipElem.emptyForce(),this.plugins.highlighter._tooltipElem=null),this.plugins.highlighter.highlightCanvas=new t.jqplot.GenericCanvas,this.eventCanvas._elem.before(this.plugins.highlighter.highlightCanvas.createElement(this._gridPadding,"jqplot-highlight-canvas",this._plotDimensions,this)),this.plugins.highlighter.highlightCanvas.setContext();var i=document.createElement("div");this.plugins.highlighter._tooltipElem=t(i),i=null,this.plugins.highlighter._tooltipElem.addClass("jqplot-highlighter-tooltip"),this.plugins.highlighter._tooltipElem.css({position:"absolute",display:"none"}),this.eventCanvas._elem.before(this.plugins.highlighter._tooltipElem)},t.jqplot.preInitHooks.push(t.jqplot.Highlighter.init),t.jqplot.preParseSeriesOptionsHooks.push(t.jqplot.Highlighter.parseOptions),t.jqplot.postDrawHooks.push(t.jqplot.Highlighter.postPlotDraw)}(jQuery);
!function(t){t.jqplot.PointLabels=function(e){this.show=t.jqplot.config.enablePlugins,this.location="n",this.labelsFromSeries=!1,this.seriesLabelIndex=null,this.labels=[],this._labels=[],this.stackedValue=!1,this.ypadding=6,this.xpadding=6,this.escapeHTML=!0,this.edgeTolerance=-5,this.formatter=t.jqplot.DefaultTickFormatter,this.formatString="",this.hideZeros=!1,this._elems=[],t.extend(!0,this,e)};var e={nw:0,n:1,ne:2,e:3,se:4,s:5,sw:6,w:7},s=["se","s","sw","w","nw","n","ne","e"];t.jqplot.PointLabels.init=function(e,s,i,a,l){var r=t.extend(!0,{},i,a);r.pointLabels=r.pointLabels||{},this.renderer.constructor!==t.jqplot.BarRenderer||"horizontal"!==this.barDirection||r.pointLabels.location||(r.pointLabels.location="e"),this.plugins.pointLabels=new t.jqplot.PointLabels(r.pointLabels),this.plugins.pointLabels.setLabels.call(this)},t.jqplot.PointLabels.prototype.setLabels=function(){var e,s=this.plugins.pointLabels;if(e=null!=s.seriesLabelIndex?s.seriesLabelIndex:this.renderer.constructor===t.jqplot.BarRenderer&&"horizontal"===this.barDirection?this._plotData[0].length<3?0:this._plotData[0].length-1:0===this._plotData.length?0:this._plotData[0].length-1,s._labels=[],0===s.labels.length||s.labelsFromSeries)if(s.stackedValue){if(this._plotData.length&&this._plotData[0].length)for(var i=0;i<this._plotData.length;i++)s._labels.push(this._plotData[i][e])}else{var a=this.data;if(this.renderer.constructor===t.jqplot.BarRenderer&&this.waterfall&&(a=this._data),a.length&&a[0].length)for(var i=0;i<a.length;i++)s._labels.push(a[i][e]);a=null}else s.labels.length&&(s._labels=s.labels)},t.jqplot.PointLabels.prototype.xOffset=function(t,e,s){e=e||this.location,s=s||this.xpadding;var i;switch(e){case"nw":i=-t.outerWidth(!0)-this.xpadding;break;case"n":i=-t.outerWidth(!0)/2;break;case"ne":i=this.xpadding;break;case"e":i=this.xpadding;break;case"se":i=this.xpadding;break;case"s":i=-t.outerWidth(!0)/2;break;case"sw":i=-t.outerWidth(!0)-this.xpadding;break;case"w":i=-t.outerWidth(!0)-this.xpadding;break;default:i=-t.outerWidth(!0)-this.xpadding}return i},t.jqplot.PointLabels.prototype.yOffset=function(t,e,s){e=e||this.location,s=s||this.xpadding;var i;switch(e){case"nw":i=-t.outerHeight(!0)-this.ypadding;break;case"n":i=-t.outerHeight(!0)-this.ypadding;break;case"ne":i=-t.outerHeight(!0)-this.ypadding;break;case"e":i=-t.outerHeight(!0)/2;break;case"se":i=this.ypadding;break;case"s":i=this.ypadding;break;case"sw":i=this.ypadding;break;case"w":i=-t.outerHeight(!0)/2;break;default:i=-t.outerHeight(!0)-this.ypadding}return i},t.jqplot.PointLabels.draw=function(i,a,l){var r=this.plugins.pointLabels;r.setLabels.call(this);for(var o=0;o<r._elems.length;o++)r._elems[o]&&r._elems[o].emptyForce();if(r._elems.splice(0,r._elems.length),r.show){var n="_"+this._stackAxis+"axis";r.formatString||(r.formatString=this[n]._ticks[0].formatString,r.formatter=this[n]._ticks[0].formatter);for(var h,p,d=this._plotData,c=(this._prevPlotData,this._xaxis),b=this._yaxis,o=0,g=r._labels.length;o<g;o++){var u=r._labels[o];if(!(null==u||r.hideZeros&&0==parseFloat(u))){u=r.formatter(r.formatString,u),p=document.createElement("div"),r._elems[o]=t(p),h=r._elems[o],h.addClass("jqplot-point-label jqplot-series-"+this.index+" jqplot-point-"+o),h.css("position","absolute"),h.insertAfter(i.canvas),r.escapeHTML?h.text(u):h.html(u);var f=r.location;(this.fillToZero&&d[o][1]<0||this.fillToZero&&"bar"===this._type&&"horizontal"===this.barDirection&&d[o][0]<0||(this.waterfall&&parseInt(u,10))<0)&&(f=s[e[f]]);var _=c.u2p(d[o][0])+r.xOffset(h,f),k=b.u2p(d[o][1])+r.yOffset(h,f);this._stack&&!r.stackedValue&&("vertical"===this.barDirection?k=(this._barPoints[o][0][1]+this._barPoints[o][1][1])/2+l._gridPadding.top-.5*h.outerHeight(!0):_=(this._barPoints[o][2][0]+this._barPoints[o][0][0])/2+l._gridPadding.left-.5*h.outerWidth(!0)),this.renderer.constructor==t.jqplot.BarRenderer&&("vertical"==this.barDirection?_+=this._barNudge:k-=this._barNudge),h.css("left",_),h.css("top",k);var v=_+h.width(),L=k+h.height(),m=r.edgeTolerance,w=t(i.canvas).position().left,x=t(i.canvas).position().top,j=i.canvas.width+w,q=i.canvas.height+x;(_-m<w||k-m<x||v+m>j||L+m>q)&&h.remove(),h=null,p=null}}}},t.jqplot.postSeriesInitHooks.push(t.jqplot.PointLabels.init),t.jqplot.postDrawSeriesHooks.push(t.jqplot.PointLabels.draw)}(jQuery);
/*! jQuery-ui-Slider-Pips - v1.5.5 - 2014-05-14
* Copyright (c) 2014 Simon Goellner <simey.me@gmail.com>; Licensed  */
!function(a){"use strict";var b={pips:function(b){function c(b){var c=a(b).data("value"),d=a(e.element);if(e.options.range){var f=d.slider("values");f[0]===f[1]?c<f[0]?d.slider("values",[c,f[1]]):d.slider("values",[f[0],c]):Math.abs(f[0]-c)===Math.abs(f[1]-c)?d.slider("values",[c,c]):Math.abs(f[0]-c)<Math.abs(f[1]-c)?d.slider("values",[c,f[1]]):d.slider("values",[f[0],c])}else d.slider("value",c)}function d(a){var b,c,d=a,i="ui-slider-pip",j="";"first"===a?d=0:"last"===a&&(d=g);var k=e.options.min+e.options.step*d,l=k.toString().replace(".","-");b=h.labels?h.labels[d]:k,"undefined"==typeof b&&(b=""),"first"===a?(c="0%",i+=" ui-slider-pip-first",i+="label"===h.first?" ui-slider-pip-label":"",i+=!1===h.first?" ui-slider-pip-hide":""):"last"===a?(c="100%",i+=" ui-slider-pip-last",i+="label"===h.last?" ui-slider-pip-label":"",i+=!1===h.last?" ui-slider-pip-hide":""):(c=(100/g*a).toFixed(4)+"%",i+="label"===h.rest?" ui-slider-pip-label":"",i+=!1===h.rest?" ui-slider-pip-hide":""),i+=" ui-slider-pip-"+l,j="horizontal"===e.options.orientation?"left: "+c:"bottom: "+c,f+='<span class="'+i+'" style="'+j+'"><span class="ui-slider-line"></span><span class="ui-slider-label" data-value="'+k+'">'+h.formatLabel(b)+"</span></span>"}var e=this,f="",g=(e.options.max-e.options.min)/e.options.step,h={first:"label",last:"label",rest:"pip",labels:!1,prefix:"",suffix:"",step:g>100?Math.floor(.05*g):1,formatLabel:function(a){return this.prefix+a+this.suffix}};a.extend(h,b),e.element.addClass("ui-slider-pips").find(".ui-slider-pip").remove(),h.step=Math.round(h.step),d("first");for(var i=1;g>i;i++)0===i%h.step&&d(i);d("last"),e.element.append(f),e.element.on("mousedown",".ui-slider-label",function(a){a.stopPropagation(),c(this)})}};a.extend(!0,a.ui.slider.prototype,b)}(jQuery),function(a){"use strict";var b={"float":function(b){var c,d,e=this,f=[],g={handle:!0,pips:!1,labels:!1,prefix:"",suffix:"",event:"slidechange slide",formatLabel:function(a){return this.prefix+a+this.suffix}};a.extend(g,b),e.options.value<e.options.min&&(e.options.value=e.options.min),e.options.value>e.options.max&&(e.options.value=e.options.max),e.options.values&&(e.options.values[0]<e.options.min&&(e.options.values[0]=e.options.min),e.options.values[1]<e.options.min&&(e.options.values[1]=e.options.min),e.options.values[0]>e.options.max&&(e.options.values[0]=e.options.max),e.options.values[1]>e.options.max&&(e.options.values[1]=e.options.max)),e.element.addClass("ui-slider-float").find(".ui-slider-tip, .ui-slider-tip-label").remove(),g.handle&&(e.options.values?(g.labels?(f[0]=g.labels[e.options.values[0]-e.options.min],f[1]=g.labels[e.options.values[1]-e.options.min],"undefined"==typeof f[0]&&(f[0]=e.options.values[0]),"undefined"==typeof f[1]&&(f[1]=e.options.values[1])):(f[0]=e.options.values[0],f[1]=e.options.values[1]),c=[a('<span class="ui-slider-tip">'+g.formatLabel(f[0])+"</span>"),a('<span class="ui-slider-tip">'+g.formatLabel(f[1])+"</span>")]):(g.labels?(d=g.labels[e.options.value-e.options.min],"undefined"==typeof d&&(d=e.options.value)):d=e.options.value,c=a('<span class="ui-slider-tip">'+g.formatLabel(d)+"</span>")),e.element.find(".ui-slider-handle").each(function(b,d){a(d).append(c[b])})),g.pips&&e.element.find(".ui-slider-label").each(function(b,c){var d=a(c).clone().removeClass("ui-slider-label").addClass("ui-slider-tip-label");d.insertAfter(a(c))}),"slide"!==g.event&&"slidechange"!==g.event&&"slide slidechange"!==g.event&&"slidechange slide"!==g.event&&(g.event="slidechange slide"),e.element.on(g.event,function(b,c){var d;g.labels?(d=g.labels[c.value-e.options.min],"undefined"==typeof d&&(d=c.value)):d=c.value,a(c.handle).find(".ui-slider-tip").html(g.formatLabel(d))})}};a.extend(!0,a.ui.slider.prototype,b)}(jQuery);
/*! jQuery-ui-Slider-Pips - v1.5.5 - 2014-05-14
* Copyright (c) 2014 Simon Goellner <simey.me@gmail.com>; Licensed  */
!function(a){"use strict";var b={pips:function(b){function c(b){var c=a(b).data("value"),d=a(e.element);if(e.options.range){var f=d.slider("values");f[0]===f[1]?c<f[0]?d.slider("values",[c,f[1]]):d.slider("values",[f[0],c]):Math.abs(f[0]-c)===Math.abs(f[1]-c)?d.slider("values",[c,c]):Math.abs(f[0]-c)<Math.abs(f[1]-c)?d.slider("values",[c,f[1]]):d.slider("values",[f[0],c])}else d.slider("value",c)}function d(a){var b,c,d=a,i="ui-slider-pip",j="";"first"===a?d=0:"last"===a&&(d=g);var k=e.options.min+e.options.step*d,l=k.toString().replace(".","-");b=h.labels?h.labels[d]:k,"undefined"==typeof b&&(b=""),"first"===a?(c="0%",i+=" ui-slider-pip-first",i+="label"===h.first?" ui-slider-pip-label":"",i+=!1===h.first?" ui-slider-pip-hide":""):"last"===a?(c="100%",i+=" ui-slider-pip-last",i+="label"===h.last?" ui-slider-pip-label":"",i+=!1===h.last?" ui-slider-pip-hide":""):(c=(100/g*a).toFixed(4)+"%",i+="label"===h.rest?" ui-slider-pip-label":"",i+=!1===h.rest?" ui-slider-pip-hide":""),i+=" ui-slider-pip-"+l,j="horizontal"===e.options.orientation?"left: "+c:"bottom: "+c,f+='<span class="'+i+'" style="'+j+'"><span class="ui-slider-line"></span><span class="ui-slider-label" data-value="'+k+'">'+h.formatLabel(b)+"</span></span>"}var e=this,f="",g=(e.options.max-e.options.min)/e.options.step,h={first:"label",last:"label",rest:"pip",labels:!1,prefix:"",suffix:"",step:g>100?Math.floor(.05*g):1,formatLabel:function(a){return this.prefix+a+this.suffix}};a.extend(h,b),e.element.addClass("ui-slider-pips").find(".ui-slider-pip").remove(),h.step=Math.round(h.step),d("first");for(var i=1;g>i;i++)0===i%h.step&&d(i);d("last"),e.element.append(f),e.element.on("mousedown",".ui-slider-label",function(a){a.stopPropagation(),c(this)})}};a.extend(!0,a.ui.slider.prototype,b)}(jQuery),function(a){"use strict";var b={"float":function(b){var c,d,e=this,f=[],g={handle:!0,pips:!1,labels:!1,prefix:"",suffix:"",event:"slidechange slide",formatLabel:function(a){return this.prefix+a+this.suffix}};a.extend(g,b),e.options.value<e.options.min&&(e.options.value=e.options.min),e.options.value>e.options.max&&(e.options.value=e.options.max),e.options.values&&(e.options.values[0]<e.options.min&&(e.options.values[0]=e.options.min),e.options.values[1]<e.options.min&&(e.options.values[1]=e.options.min),e.options.values[0]>e.options.max&&(e.options.values[0]=e.options.max),e.options.values[1]>e.options.max&&(e.options.values[1]=e.options.max)),e.element.addClass("ui-slider-float").find(".ui-slider-tip, .ui-slider-tip-label").remove(),g.handle&&(e.options.values?(g.labels?(f[0]=g.labels[e.options.values[0]-e.options.min],f[1]=g.labels[e.options.values[1]-e.options.min],"undefined"==typeof f[0]&&(f[0]=e.options.values[0]),"undefined"==typeof f[1]&&(f[1]=e.options.values[1])):(f[0]=e.options.values[0],f[1]=e.options.values[1]),c=[a('<span class="ui-slider-tip">'+g.formatLabel(f[0])+"</span>"),a('<span class="ui-slider-tip">'+g.formatLabel(f[1])+"</span>")]):(g.labels?(d=g.labels[e.options.value-e.options.min],"undefined"==typeof d&&(d=e.options.value)):d=e.options.value,c=a('<span class="ui-slider-tip">'+g.formatLabel(d)+"</span>")),e.element.find(".ui-slider-handle").each(function(b,d){a(d).append(c[b])})),g.pips&&e.element.find(".ui-slider-label").each(function(b,c){var d=a(c).clone().removeClass("ui-slider-label").addClass("ui-slider-tip-label");d.insertAfter(a(c))}),"slide"!==g.event&&"slidechange"!==g.event&&"slide slidechange"!==g.event&&"slidechange slide"!==g.event&&(g.event="slidechange slide"),e.element.on(g.event,function(b,c){var d;g.labels?(d=g.labels[c.value-e.options.min],"undefined"==typeof d&&(d=c.value)):d=c.value,a(c.handle).find(".ui-slider-tip").html(g.formatLabel(d))})}};a.extend(!0,a.ui.slider.prototype,b)}(jQuery);
/*
 * qTip2 - Pretty powerful tooltips - v2.2.1
 * http://qtip2.com
 *
 * Copyright (c) 2014 
 * Released under the MIT licenses
 * http://jquery.org/license
 *
 * Date: Sat Sep 6 2014 06:25 EDT-0400
 * Plugins: tips viewport imagemap svg modal ie6
 * Styles: core basic css3
 */
/*global window: false, jQuery: false, console: false, define: false */

/* Cache window, document, undefined */
(function( window, document, undefined ) {

// Uses AMD or browser globals to create a jQuery plugin.
(function( factory ) {
	//"use strict";
	if(typeof define === 'function' && define.amd) {
		define(['jquery'], factory);
	}
	else if(jQuery && !jQuery.fn.qtip) {
		factory(jQuery);
	}
}
(function($) {
	//"use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
;// Munge the primitives - Paul Irish tip
var TRUE = true,
FALSE = false,
NULL = null,

// Common variables
X = 'x', Y = 'y',
WIDTH = 'width',
HEIGHT = 'height',

// Positioning sides
TOP = 'top',
LEFT = 'left',
BOTTOM = 'bottom',
RIGHT = 'right',
CENTER = 'center',

// Position adjustment types
FLIP = 'flip',
FLIPINVERT = 'flipinvert',
SHIFT = 'shift',

// Shortcut vars
QTIP, PROTOTYPE, CORNER, CHECKS,
PLUGINS = {},
NAMESPACE = 'qtip',
ATTR_HAS = 'data-hasqtip',
ATTR_ID = 'data-qtip-id',
WIDGET = ['ui-widget', 'ui-tooltip'],
SELECTOR = '.'+NAMESPACE,
INACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '),

CLASS_FIXED = NAMESPACE+'-fixed',
CLASS_DEFAULT = NAMESPACE + '-default',
CLASS_FOCUS = NAMESPACE + '-focus',
CLASS_HOVER = NAMESPACE + '-hover',
CLASS_DISABLED = NAMESPACE+'-disabled',

replaceSuffix = '_replacedByqTip',
oldtitle = 'oldtitle',
trackingBound,

// Browser detection
BROWSER = {
	/*
	 * IE version detection
	 *
	 * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment
	 * Credit to James Padolsey for the original implemntation!
	 */
	ie: (function(){
		for (
			var v = 4, i = document.createElement("div");
			(i.innerHTML = "<!--[if gt IE " + v + "]><i></i><![endif]-->") && i.getElementsByTagName("i")[0];
			v+=1
		) {}
		return v > 4 ? v : NaN;
	}()),

	/*
	 * iOS version detection
	 */
	iOS: parseFloat(
		('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1])
		.replace('undefined', '3_2').replace('_', '.').replace('_', '')
	) || FALSE
};
;function QTip(target, options, id, attr) {
	// Elements and ID
	this.id = id;
	this.target = target;
	this.tooltip = NULL;
	this.elements = { target: target };

	// Internal constructs
	this._id = NAMESPACE + '-' + id;
	this.timers = { img: {} };
	this.options = options;
	this.plugins = {};

	// Cache object
	this.cache = {
		event: {},
		target: $(),
		disabled: FALSE,
		attr: attr,
		onTooltip: FALSE,
		lastClass: ''
	};

	// Set the initial flags
	this.rendered = this.destroyed = this.disabled = this.waiting =
		this.hiddenDuringWait = this.positioning = this.triggering = FALSE;
}
PROTOTYPE = QTip.prototype;

PROTOTYPE._when = function(deferreds) {
	return $.when.apply($, deferreds);
};

PROTOTYPE.render = function(show) {
	if(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit

	var self = this,
		options = this.options,
		cache = this.cache,
		elements = this.elements,
		text = options.content.text,
		title = options.content.title,
		button = options.content.button,
		posOptions = options.position,
		namespace = '.'+this._id+' ',
		deferreds = [],
		tooltip;

	// Add ARIA attributes to target
	$.attr(this.target[0], 'aria-describedby', this._id);

	// Create public position object that tracks current position corners
	cache.posClass = this._createPosClass(
		(this.position = { my: posOptions.my, at: posOptions.at }).my
	);

	// Create tooltip element
	this.tooltip = elements.tooltip = tooltip = $('<div/>', {
		'id': this._id,
		'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, cache.posClass ].join(' '),
		'width': options.style.width || '',
		'height': options.style.height || '',
		'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse,

		/* ARIA specific attributes */
		'role': 'alert',
		'aria-live': 'polite',
		'aria-atomic': FALSE,
		'aria-describedby': this._id + '-content',
		'aria-hidden': TRUE
	})
	.toggleClass(CLASS_DISABLED, this.disabled)
	.attr(ATTR_ID, this.id)
	.data(NAMESPACE, this)
	.appendTo(posOptions.container)
	.append(
		// Create content element
		elements.content = $('<div />', {
			'class': NAMESPACE + '-content',
			'id': this._id + '-content',
			'aria-atomic': TRUE
		})
	);

	// Set rendered flag and prevent redundant reposition calls for now
	this.rendered = -1;
	this.positioning = TRUE;

	// Create title...
	if(title) {
		this._createTitle();

		// Update title only if its not a callback (called in toggle if so)
		if(!$.isFunction(title)) {
			deferreds.push( this._updateTitle(title, FALSE) );
		}
	}

	// Create button
	if(button) { this._createButton(); }

	// Set proper rendered flag and update content if not a callback function (called in toggle)
	if(!$.isFunction(text)) {
		deferreds.push( this._updateContent(text, FALSE) );
	}
	this.rendered = TRUE;

	// Setup widget classes
	this._setWidget();

	// Initialize 'render' plugins
	$.each(PLUGINS, function(name) {
		var instance;
		if(this.initialize === 'render' && (instance = this(self))) {
			self.plugins[name] = instance;
		}
	});

	// Unassign initial events and assign proper events
	this._unassignEvents();
	this._assignEvents();

	// When deferreds have completed
	this._when(deferreds).then(function() {
		// tooltiprender event
		self._trigger('render');

		// Reset flags
		self.positioning = FALSE;

		// Show tooltip if not hidden during wait period
		if(!self.hiddenDuringWait && (options.show.ready || show)) {
			self.toggle(TRUE, cache.event, FALSE);
		}
		self.hiddenDuringWait = FALSE;
	});

	// Expose API
	QTIP.api[this.id] = this;

	return this;
};

PROTOTYPE.destroy = function(immediate) {
	// Set flag the signify destroy is taking place to plugins
	// and ensure it only gets destroyed once!
	if(this.destroyed) { return this.target; }

	function process() {
		if(this.destroyed) { return; }
		this.destroyed = TRUE;

		var target = this.target,
			title = target.attr(oldtitle),
			timer;

		// Destroy tooltip if rendered
		if(this.rendered) {
			this.tooltip.stop(1,0).find('*').remove().end().remove();
		}

		// Destroy all plugins
		$.each(this.plugins, function(name) {
			this.destroy && this.destroy();
		});

		// Clear timers
		for(timer in this.timers) {
			clearTimeout(this.timers[timer]);
		}

		// Remove api object and ARIA attributes
		target.removeData(NAMESPACE)
			.removeAttr(ATTR_ID)
			.removeAttr(ATTR_HAS)
			.removeAttr('aria-describedby');

		// Reset old title attribute if removed
		if(this.options.suppress && title) {
			target.attr('title', title).removeAttr(oldtitle);
		}

		// Remove qTip events associated with this API
		this._unassignEvents();

		// Remove ID from used id objects, and delete object references
		// for better garbage collection and leak protection
		this.options = this.elements = this.cache = this.timers =
			this.plugins = this.mouse = NULL;

		// Delete epoxsed API object
		delete QTIP.api[this.id];
	}

	// If an immediate destory is needed
	if((immediate !== TRUE || this.triggering === 'hide') && this.rendered) {
		this.tooltip.one('tooltiphidden', $.proxy(process, this));
		!this.triggering && this.hide();
	}

	// If we're not in the process of hiding... process
	else { process.call(this); }

	return this.target;
};
;function invalidOpt(a) {
	return a === NULL || $.type(a) !== 'object';
}

function invalidContent(c) {
	return !( $.isFunction(c) || (c && c.attr) || c.length || ($.type(c) === 'object' && (c.jquery || c.then) ));
}

// Option object sanitizer
function sanitizeOptions(opts) {
	var content, text, ajax, once;

	if(invalidOpt(opts)) { return FALSE; }

	if(invalidOpt(opts.metadata)) {
		opts.metadata = { type: opts.metadata };
	}

	if('content' in opts) {
		content = opts.content;

		if(invalidOpt(content) || content.jquery || content.done) {
			content = opts.content = {
				text: (text = invalidContent(content) ? FALSE : content)
			};
		}
		else { text = content.text; }

		// DEPRECATED - Old content.ajax plugin functionality
		// Converts it into the proper Deferred syntax
		if('ajax' in content) {
			ajax = content.ajax;
			once = ajax && ajax.once !== FALSE;
			delete content.ajax;

			content.text = function(event, api) {
				var loading = text || $(this).attr(api.options.content.attr) || 'Loading...',

				deferred = $.ajax(
					$.extend({}, ajax, { context: api })
				)
				.then(ajax.success, NULL, ajax.error)
				.then(function(content) {
					if(content && once) { api.set('content.text', content); }
					return content;
				},
				function(xhr, status, error) {
					if(api.destroyed || xhr.status === 0) { return; }
					api.set('content.text', status + ': ' + error);
				});

				return !once ? (api.set('content.text', loading), deferred) : loading;
			};
		}

		if('title' in content) {
			if($.isPlainObject(content.title)) {
				content.button = content.title.button;
				content.title = content.title.text;
			}

			if(invalidContent(content.title || FALSE)) {
				content.title = FALSE;
			}
		}
	}

	if('position' in opts && invalidOpt(opts.position)) {
		opts.position = { my: opts.position, at: opts.position };
	}

	if('show' in opts && invalidOpt(opts.show)) {
		opts.show = opts.show.jquery ? { target: opts.show } :
			opts.show === TRUE ? { ready: TRUE } : { event: opts.show };
	}

	if('hide' in opts && invalidOpt(opts.hide)) {
		opts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide };
	}

	if('style' in opts && invalidOpt(opts.style)) {
		opts.style = { classes: opts.style };
	}

	// Sanitize plugin options
	$.each(PLUGINS, function() {
		this.sanitize && this.sanitize(opts);
	});

	return opts;
}

// Setup builtin .set() option checks
CHECKS = PROTOTYPE.checks = {
	builtin: {
		// Core checks
		'^id$': function(obj, o, v, prev) {
			var id = v === TRUE ? QTIP.nextid : v,
				new_id = NAMESPACE + '-' + id;

			if(id !== FALSE && id.length > 0 && !$('#'+new_id).length) {
				this._id = new_id;

				if(this.rendered) {
					this.tooltip[0].id = this._id;
					this.elements.content[0].id = this._id + '-content';
					this.elements.title[0].id = this._id + '-title';
				}
			}
			else { obj[o] = prev; }
		},
		'^prerender': function(obj, o, v) {
			v && !this.rendered && this.render(this.options.show.ready);
		},

		// Content checks
		'^content.text$': function(obj, o, v) {
			this._updateContent(v);
		},
		'^content.attr$': function(obj, o, v, prev) {
			if(this.options.content.text === this.target.attr(prev)) {
				this._updateContent( this.target.attr(v) );
			}
		},
		'^content.title$': function(obj, o, v) {
			// Remove title if content is null
			if(!v) { return this._removeTitle(); }

			// If title isn't already created, create it now and update
			v && !this.elements.title && this._createTitle();
			this._updateTitle(v);
		},
		'^content.button$': function(obj, o, v) {
			this._updateButton(v);
		},
		'^content.title.(text|button)$': function(obj, o, v) {
			this.set('content.'+o, v); // Backwards title.text/button compat
		},

		// Position checks
		'^position.(my|at)$': function(obj, o, v){
			'string' === typeof v && (this.position[o] = obj[o] = new CORNER(v, o === 'at'));
		},
		'^position.container$': function(obj, o, v){
			this.rendered && this.tooltip.appendTo(v);
		},

		// Show checks
		'^show.ready$': function(obj, o, v) {
			v && (!this.rendered && this.render(TRUE) || this.toggle(TRUE));
		},

		// Style checks
		'^style.classes$': function(obj, o, v, p) {
			this.rendered && this.tooltip.removeClass(p).addClass(v);
		},
		'^style.(width|height)': function(obj, o, v) {
			this.rendered && this.tooltip.css(o, v);
		},
		'^style.widget|content.title': function() {
			this.rendered && this._setWidget();
		},
		'^style.def': function(obj, o, v) {
			this.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v);
		},

		// Events check
		'^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) {
			this.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v);
		},

		// Properties which require event reassignment
		'^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() {
			if(!this.rendered) { return; }

			// Set tracking flag
			var posOptions = this.options.position;
			this.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse);

			// Reassign events
			this._unassignEvents();
			this._assignEvents();
		}
	}
};

// Dot notation converter
function convertNotation(options, notation) {
	var i = 0, obj, option = options,

	// Split notation into array
	levels = notation.split('.');

	// Loop through
	while( option = option[ levels[i++] ] ) {
		if(i < levels.length) { obj = option; }
	}

	return [obj || options, levels.pop()];
}

PROTOTYPE.get = function(notation) {
	if(this.destroyed) { return this; }

	var o = convertNotation(this.options, notation.toLowerCase()),
		result = o[0][ o[1] ];

	return result.precedance ? result.string() : result;
};

function setCallback(notation, args) {
	var category, rule, match;

	for(category in this.checks) {
		for(rule in this.checks[category]) {
			if(match = (new RegExp(rule, 'i')).exec(notation)) {
				args.push(match);

				if(category === 'builtin' || this.plugins[category]) {
					this.checks[category][rule].apply(
						this.plugins[category] || this, args
					);
				}
			}
		}
	}
}

var rmove = /^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,
	rrender = /^prerender|show\.ready/i;

PROTOTYPE.set = function(option, value) {
	if(this.destroyed) { return this; }

	var rendered = this.rendered,
		reposition = FALSE,
		options = this.options,
		checks = this.checks,
		name;

	// Convert singular option/value pair into object form
	if('string' === typeof option) {
		name = option; option = {}; option[name] = value;
	}
	else { option = $.extend({}, option); }

	// Set all of the defined options to their new values
	$.each(option, function(notation, value) {
		if(rendered && rrender.test(notation)) {
			delete option[notation]; return;
		}

		// Set new obj value
		var obj = convertNotation(options, notation.toLowerCase()), previous;
		previous = obj[0][ obj[1] ];
		obj[0][ obj[1] ] = value && value.nodeType ? $(value) : value;

		// Also check if we need to reposition
		reposition = rmove.test(notation) || reposition;

		// Set the new params for the callback
		option[notation] = [obj[0], obj[1], value, previous];
	});

	// Re-sanitize options
	sanitizeOptions(options);

	/*
	 * Execute any valid callbacks for the set options
	 * Also set positioning flag so we don't get loads of redundant repositioning calls.
	 */
	this.positioning = TRUE;
	$.each(option, $.proxy(setCallback, this));
	this.positioning = FALSE;

	// Update position if needed
	if(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) {
		this.reposition( options.position.target === 'mouse' ? NULL : this.cache.event );
	}

	return this;
};
;PROTOTYPE._update = function(content, element, reposition) {
	var self = this,
		cache = this.cache;

	// Make sure tooltip is rendered and content is defined. If not return
	if(!this.rendered || !content) { return FALSE; }

	// Use function to parse content
	if($.isFunction(content)) {
		content = content.call(this.elements.target, cache.event, this) || '';
	}

	// Handle deferred content
	if($.isFunction(content.then)) {
		cache.waiting = TRUE;
		return content.then(function(c) {
			cache.waiting = FALSE;
			return self._update(c, element);
		}, NULL, function(e) {
			return self._update(e, element);
		});
	}

	// If content is null... return false
	if(content === FALSE || (!content && content !== '')) { return FALSE; }

	// Append new content if its a DOM array and show it if hidden
	if(content.jquery && content.length > 0) {
		element.empty().append(
			content.css({ display: 'block', visibility: 'visible' })
		);
	}

	// Content is a regular string, insert the new content
	else { element.html(content); }

	// Wait for content to be loaded, and reposition
	return this._waitForContent(element).then(function(images) {
		if(self.rendered && self.tooltip[0].offsetWidth > 0) {
			self.reposition(cache.event, !images.length);
		}
	});
};

PROTOTYPE._waitForContent = function(element) {
	var cache = this.cache;

	// Set flag
	cache.waiting = TRUE;

	// If imagesLoaded is included, ensure images have loaded and return promise
	return ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) )
		.done(function() { cache.waiting = FALSE; })
		.promise();
};

PROTOTYPE._updateContent = function(content, reposition) {
	this._update(content, this.elements.content, reposition);
};

PROTOTYPE._updateTitle = function(content, reposition) {
	if(this._update(content, this.elements.title, reposition) === FALSE) {
		this._removeTitle(FALSE);
	}
};

PROTOTYPE._createTitle = function()
{
	var elements = this.elements,
		id = this._id+'-title';

	// Destroy previous title element, if present
	if(elements.titlebar) { this._removeTitle(); }

	// Create title bar and title elements
	elements.titlebar = $('<div />', {
		'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '')
	})
	.append(
		elements.title = $('<div />', {
			'id': id,
			'class': NAMESPACE + '-title',
			'aria-atomic': TRUE
		})
	)
	.insertBefore(elements.content)

	// Button-specific events
	.delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) {
		$(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down');
	})
	.delegate('.qtip-close', 'mouseover mouseout', function(event){
		$(this).toggleClass('ui-state-hover', event.type === 'mouseover');
	});

	// Create button if enabled
	if(this.options.content.button) { this._createButton(); }
};

PROTOTYPE._removeTitle = function(reposition)
{
	var elements = this.elements;

	if(elements.title) {
		elements.titlebar.remove();
		elements.titlebar = elements.title = elements.button = NULL;

		// Reposition if enabled
		if(reposition !== FALSE) { this.reposition(); }
	}
};
;PROTOTYPE._createPosClass = function(my) {
	return NAMESPACE + '-pos-' + (my || this.options.position.my).abbrev();
};

PROTOTYPE.reposition = function(event, effect) {
	if(!this.rendered || this.positioning || this.destroyed) { return this; }

	// Set positioning flag
	this.positioning = TRUE;

	var cache = this.cache,
		tooltip = this.tooltip,
		posOptions = this.options.position,
		target = posOptions.target,
		my = posOptions.my,
		at = posOptions.at,
		viewport = posOptions.viewport,
		container = posOptions.container,
		adjust = posOptions.adjust,
		method = adjust.method.split(' '),
		tooltipWidth = tooltip.outerWidth(FALSE),
		tooltipHeight = tooltip.outerHeight(FALSE),
		targetWidth = 0,
		targetHeight = 0,
		type = tooltip.css('position'),
		position = { left: 0, top: 0 },
		visible = tooltip[0].offsetWidth > 0,
		isScroll = event && event.type === 'scroll',
		win = $(window),
		doc = container[0].ownerDocument,
		mouse = this.mouse,
		pluginCalculations, offset, adjusted, newClass;

	// Check if absolute position was passed
	if($.isArray(target) && target.length === 2) {
		// Force left top and set position
		at = { x: LEFT, y: TOP };
		position = { left: target[0], top: target[1] };
	}

	// Check if mouse was the target
	else if(target === 'mouse') {
		// Force left top to allow flipping
		at = { x: LEFT, y: TOP };

		// Use the mouse origin that caused the show event, if distance hiding is enabled
		if((!adjust.mouse || this.options.hide.distance) && cache.origin && cache.origin.pageX) {
			event =  cache.origin;
		}

		// Use cached event for resize/scroll events
		else if(!event || (event && (event.type === 'resize' || event.type === 'scroll'))) {
			event = cache.event;
		}

		// Otherwise, use the cached mouse coordinates if available
		else if(mouse && mouse.pageX) {
			event = mouse;
		}

		// Calculate body and container offset and take them into account below
		if(type !== 'static') { position = container.offset(); }
		if(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) {
			offset = $(document.body).offset();
		}

		// Use event coordinates for position
		position = {
			left: event.pageX - position.left + (offset && offset.left || 0),
			top: event.pageY - position.top + (offset && offset.top || 0)
		};

		// Scroll events are a pain, some browsers
		if(adjust.mouse && isScroll && mouse) {
			position.left -= (mouse.scrollX || 0) - win.scrollLeft();
			position.top -= (mouse.scrollY || 0) - win.scrollTop();
		}
	}

	// Target wasn't mouse or absolute...
	else {
		// Check if event targetting is being used
		if(target === 'event') {
			if(event && event.target && event.type !== 'scroll' && event.type !== 'resize') {
				cache.target = $(event.target);
			}
			else if(!event.target) {
				cache.target = this.elements.target;
			}
		}
		else if(target !== 'event'){
			cache.target = $(target.jquery ? target : this.elements.target);
		}
		target = cache.target;

		// Parse the target into a jQuery object and make sure there's an element present
		target = $(target).eq(0);
		if(target.length === 0) { return this; }

		// Check if window or document is the target
		else if(target[0] === document || target[0] === window) {
			targetWidth = BROWSER.iOS ? window.innerWidth : target.width();
			targetHeight = BROWSER.iOS ? window.innerHeight : target.height();

			if(target[0] === window) {
				position = {
					top: (viewport || target).scrollTop(),
					left: (viewport || target).scrollLeft()
				};
			}
		}

		// Check if the target is an <AREA> element
		else if(PLUGINS.imagemap && target.is('area')) {
			pluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE);
		}

		// Check if the target is an SVG element
		else if(PLUGINS.svg && target && target[0].ownerSVGElement) {
			pluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE);
		}

		// Otherwise use regular jQuery methods
		else {
			targetWidth = target.outerWidth(FALSE);
			targetHeight = target.outerHeight(FALSE);
			position = target.offset();
		}

		// Parse returned plugin values into proper variables
		if(pluginCalculations) {
			targetWidth = pluginCalculations.width;
			targetHeight = pluginCalculations.height;
			offset = pluginCalculations.offset;
			position = pluginCalculations.position;
		}

		// Adjust position to take into account offset parents
		position = this.reposition.offset(target, position, container);

		// Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2)
		if((BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1) ||
			(BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33) ||
			(!BROWSER.iOS && type === 'fixed')
		){
			position.left -= win.scrollLeft();
			position.top -= win.scrollTop();
		}

		// Adjust position relative to target
		if(!pluginCalculations || (pluginCalculations && pluginCalculations.adjustable !== FALSE)) {
			position.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0;
			position.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0;
		}
	}

	// Adjust position relative to tooltip
	position.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0);
	position.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0);

	// Use viewport adjustment plugin if enabled
	if(PLUGINS.viewport) {
		adjusted = position.adjusted = PLUGINS.viewport(
			this, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight
		);

		// Apply offsets supplied by positioning plugin (if used)
		if(offset && adjusted.left) { position.left += offset.left; }
		if(offset && adjusted.top) {  position.top += offset.top; }

		// Apply any new 'my' position
		if(adjusted.my) { this.position.my = adjusted.my; }
	}

	// Viewport adjustment is disabled, set values to zero
	else { position.adjusted = { left: 0, top: 0 }; }

	// Set tooltip position class if it's changed
	if(cache.posClass !== (newClass = this._createPosClass(this.position.my))) {
		tooltip.removeClass(cache.posClass).addClass( (cache.posClass = newClass) );
	}

	// tooltipmove event
	if(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; }
	delete position.adjusted;

	// If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly
	if(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) {
		tooltip.css(position);
	}

	// Use custom function if provided
	else if($.isFunction(posOptions.effect)) {
		posOptions.effect.call(tooltip, this, $.extend({}, position));
		tooltip.queue(function(next) {
			// Reset attributes to avoid cross-browser rendering bugs
			$(this).css({ opacity: '', height: '' });
			if(BROWSER.ie) { this.style.removeAttribute('filter'); }

			next();
		});
	}

	// Set positioning flag
	this.positioning = FALSE;

	return this;
};

// Custom (more correct for qTip!) offset calculator
PROTOTYPE.reposition.offset = function(elem, pos, container) {
	if(!container[0]) { return pos; }

	var ownerDocument = $(elem[0].ownerDocument),
		quirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat',
		parent = container[0],
		scrolled, position, parentOffset, overflow;

	function scroll(e, i) {
		pos.left += i * e.scrollLeft();
		pos.top += i * e.scrollTop();
	}

	// Compensate for non-static containers offset
	do {
		if((position = $.css(parent, 'position')) !== 'static') {
			if(position === 'fixed') {
				parentOffset = parent.getBoundingClientRect();
				scroll(ownerDocument, -1);
			}
			else {
				parentOffset = $(parent).position();
				parentOffset.left += (parseFloat($.css(parent, 'borderLeftWidth')) || 0);
				parentOffset.top += (parseFloat($.css(parent, 'borderTopWidth')) || 0);
			}

			pos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0);
			pos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0);

			// If this is the first parent element with an overflow of "scroll" or "auto", store it
			if(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); }
		}
	}
	while((parent = parent.offsetParent));

	// Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode)
	if(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) {
		scroll(scrolled, 1);
	}

	return pos;
};

// Corner class
var C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) {
	corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase();
	this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase();
	this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase();
	this.forceY = !!forceY;

	var f = corner.charAt(0);
	this.precedance = (f === 't' || f === 'b' ? Y : X);
}).prototype;

C.invert = function(z, center) {
	this[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z];
};

C.string = function(join) {
	var x = this.x, y = this.y;

	var result = x !== y ?
		(x === 'center' || y !== 'center' && (this.precedance === Y || this.forceY) ? 
			[y,x] : [x,y]
		) :
	[x];

	return join !== false ? result.join(' ') : result;
};

C.abbrev = function() {
	var result = this.string(false);
	return result[0].charAt(0) + (result[1] && result[1].charAt(0) || '');
};

C.clone = function() {
	return new CORNER( this.string(), this.forceY );
};

;
PROTOTYPE.toggle = function(state, event) {
	var cache = this.cache,
		options = this.options,
		tooltip = this.tooltip;

	// Try to prevent flickering when tooltip overlaps show element
	if(event) {
		if((/over|enter/).test(event.type) && cache.event && (/out|leave/).test(cache.event.type) &&
			options.show.target.add(event.target).length === options.show.target.length &&
			tooltip.has(event.relatedTarget).length) {
			return this;
		}

		// Cache event
		cache.event = $.event.fix(event);
	}

	// If we're currently waiting and we've just hidden... stop it
	this.waiting && !state && (this.hiddenDuringWait = TRUE);

	// Render the tooltip if showing and it isn't already
	if(!this.rendered) { return state ? this.render(1) : this; }
	else if(this.destroyed || this.disabled) { return this; }

	var type = state ? 'show' : 'hide',
		opts = this.options[type],
		otherOpts = this.options[ !state ? 'show' : 'hide' ],
		posOptions = this.options.position,
		contentOptions = this.options.content,
		width = this.tooltip.css('width'),
		visible = this.tooltip.is(':visible'),
		animate = state || opts.target.length === 1,
		sameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target,
		identicalState, allow, showEvent, delay, after;

	// Detect state if valid one isn't provided
	if((typeof state).search('boolean|number')) { state = !visible; }

	// Check if the tooltip is in an identical state to the new would-be state
	identicalState = !tooltip.is(':animated') && visible === state && sameTarget;

	// Fire tooltip(show/hide) event and check if destroyed
	allow = !identicalState ? !!this._trigger(type, [90]) : NULL;

	// Check to make sure the tooltip wasn't destroyed in the callback
	if(this.destroyed) { return this; }

	// If the user didn't stop the method prematurely and we're showing the tooltip, focus it
	if(allow !== FALSE && state) { this.focus(event); }

	// If the state hasn't changed or the user stopped it, return early
	if(!allow || identicalState) { return this; }

	// Set ARIA hidden attribute
	$.attr(tooltip[0], 'aria-hidden', !!!state);

	// Execute state specific properties
	if(state) {
		// Store show origin coordinates
		this.mouse && (cache.origin = $.event.fix(this.mouse));

		// Update tooltip content & title if it's a dynamic function
		if($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); }
		if($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); }

		// Cache mousemove events for positioning purposes (if not already tracking)
		if(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) {
			$(document).bind('mousemove.'+NAMESPACE, this._storeMouse);
			trackingBound = TRUE;
		}

		// Update the tooltip position (set width first to prevent viewport/max-width issues)
		if(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); }
		this.reposition(event, arguments[2]);
		if(!width) { tooltip.css('width', ''); }

		// Hide other tooltips if tooltip is solo
		if(!!opts.solo) {
			(typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo))
				.not(tooltip).not(opts.target).qtip('hide', $.Event('tooltipsolo'));
		}
	}
	else {
		// Clear show timer if we're hiding
		clearTimeout(this.timers.show);

		// Remove cached origin on hide
		delete cache.origin;

		// Remove mouse tracking event if not needed (all tracking qTips are hidden)
		if(trackingBound && !$(SELECTOR+'[tracking="true"]:visible', opts.solo).not(tooltip).length) {
			$(document).unbind('mousemove.'+NAMESPACE);
			trackingBound = FALSE;
		}

		// Blur the tooltip
		this.blur(event);
	}

	// Define post-animation, state specific properties
	after = $.proxy(function() {
		if(state) {
			// Prevent antialias from disappearing in IE by removing filter
			if(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); }

			// Remove overflow setting to prevent tip bugs
			tooltip.css('overflow', '');

			// Autofocus elements if enabled
			if('string' === typeof opts.autofocus) {
				$(this.options.show.autofocus, tooltip).focus();
			}

			// If set, hide tooltip when inactive for delay period
			this.options.show.target.trigger('qtip-'+this.id+'-inactive');
		}
		else {
			// Reset CSS states
			tooltip.css({
				display: '',
				visibility: '',
				opacity: '',
				left: '',
				top: ''
			});
		}

		// tooltipvisible/tooltiphidden events
		this._trigger(state ? 'visible' : 'hidden');
	}, this);

	// If no effect type is supplied, use a simple toggle
	if(opts.effect === FALSE || animate === FALSE) {
		tooltip[ type ]();
		after();
	}

	// Use custom function if provided
	else if($.isFunction(opts.effect)) {
		tooltip.stop(1, 1);
		opts.effect.call(tooltip, this);
		tooltip.queue('fx', function(n) {
			after(); n();
		});
	}

	// Use basic fade function by default
	else { tooltip.fadeTo(90, state ? 1 : 0, after); }

	// If inactive hide method is set, active it
	if(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); }

	return this;
};

PROTOTYPE.show = function(event) { return this.toggle(TRUE, event); };

PROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); };
;PROTOTYPE.focus = function(event) {
	if(!this.rendered || this.destroyed) { return this; }

	var qtips = $(SELECTOR),
		tooltip = this.tooltip,
		curIndex = parseInt(tooltip[0].style.zIndex, 10),
		newIndex = QTIP.zindex + qtips.length,
		focusedElem;

	// Only update the z-index if it has changed and tooltip is not already focused
	if(!tooltip.hasClass(CLASS_FOCUS)) {
		// tooltipfocus event
		if(this._trigger('focus', [newIndex], event)) {
			// Only update z-index's if they've changed
			if(curIndex !== newIndex) {
				// Reduce our z-index's and keep them properly ordered
				qtips.each(function() {
					if(this.style.zIndex > curIndex) {
						this.style.zIndex = this.style.zIndex - 1;
					}
				});

				// Fire blur event for focused tooltip
				qtips.filter('.' + CLASS_FOCUS).qtip('blur', event);
			}

			// Set the new z-index
			tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;
		}
	}

	return this;
};

PROTOTYPE.blur = function(event) {
	if(!this.rendered || this.destroyed) { return this; }

	// Set focused status to FALSE
	this.tooltip.removeClass(CLASS_FOCUS);

	// tooltipblur event
	this._trigger('blur', [ this.tooltip.css('zIndex') ], event);

	return this;
};
;PROTOTYPE.disable = function(state) {
	if(this.destroyed) { return this; }

	// If 'toggle' is passed, toggle the current state
	if(state === 'toggle') {
		state = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled);
	}

	// Disable if no state passed
	else if('boolean' !== typeof state) {
		state = TRUE;
	}

	if(this.rendered) {
		this.tooltip.toggleClass(CLASS_DISABLED, state)
			.attr('aria-disabled', state);
	}

	this.disabled = !!state;

	return this;
};

PROTOTYPE.enable = function() { return this.disable(FALSE); };
;PROTOTYPE._createButton = function()
{
	var self = this,
		elements = this.elements,
		tooltip = elements.tooltip,
		button = this.options.content.button,
		isString = typeof button === 'string',
		close = isString ? button : 'Close tooltip';

	if(elements.button) { elements.button.remove(); }

	// Use custom button if one was supplied by user, else use default
	if(button.jquery) {
		elements.button = button;
	}
	else {
		elements.button = $('<a />', {
			'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'),
			'title': close,
			'aria-label': close
		})
		.prepend(
			$('<span />', {
				'class': 'ui-icon ui-icon-close',
				'html': '&times;'
			})
		);
	}

	// Create button and setup attributes
	elements.button.appendTo(elements.titlebar || tooltip)
		.attr('role', 'button')
		.click(function(event) {
			if(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); }
			return FALSE;
		});
};

PROTOTYPE._updateButton = function(button)
{
	// Make sure tooltip is rendered and if not, return
	if(!this.rendered) { return FALSE; }

	var elem = this.elements.button;
	if(button) { this._createButton(); }
	else { elem.remove(); }
};
;// Widget class creator
function createWidgetClass(cls) {
	return WIDGET.concat('').join(cls ? '-'+cls+' ' : ' ');
}

// Widget class setter method
PROTOTYPE._setWidget = function()
{
	var on = this.options.style.widget,
		elements = this.elements,
		tooltip = elements.tooltip,
		disabled = tooltip.hasClass(CLASS_DISABLED);

	tooltip.removeClass(CLASS_DISABLED);
	CLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled';
	tooltip.toggleClass(CLASS_DISABLED, disabled);

	tooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on);

	if(elements.content) {
		elements.content.toggleClass( createWidgetClass('content'), on);
	}
	if(elements.titlebar) {
		elements.titlebar.toggleClass( createWidgetClass('header'), on);
	}
	if(elements.button) {
		elements.button.toggleClass(NAMESPACE+'-icon', !on);
	}
};
;function delay(callback, duration) {
	// If tooltip has displayed, start hide timer
	if(duration > 0) {
		return setTimeout(
			$.proxy(callback, this), duration
		);
	}
	else{ callback.call(this); }
}

function showMethod(event) {
	if(this.tooltip.hasClass(CLASS_DISABLED)) { return; }

	// Clear hide timers
	clearTimeout(this.timers.show);
	clearTimeout(this.timers.hide);

	// Start show timer
	this.timers.show = delay.call(this,
		function() { this.toggle(TRUE, event); },
		this.options.show.delay
	);
}

function hideMethod(event) {
	if(this.tooltip.hasClass(CLASS_DISABLED) || this.destroyed) { return; }

	// Check if new target was actually the tooltip element
	var relatedTarget = $(event.relatedTarget),
		ontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0],
		ontoTarget = relatedTarget[0] === this.options.show.target[0];

	// Clear timers and stop animation queue
	clearTimeout(this.timers.show);
	clearTimeout(this.timers.hide);

	// Prevent hiding if tooltip is fixed and event target is the tooltip.
	// Or if mouse positioning is enabled and cursor momentarily overlaps
	if(this !== relatedTarget[0] &&
		(this.options.position.target === 'mouse' && ontoTooltip) ||
		(this.options.hide.fixed && (
			(/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget))
		))
	{
		try {
			event.preventDefault();
			event.stopImmediatePropagation();
		} catch(e) {}

		return;
	}

	// If tooltip has displayed, start hide timer
	this.timers.hide = delay.call(this,
		function() { this.toggle(FALSE, event); },
		this.options.hide.delay,
		this
	);
}

function inactiveMethod(event) {
	if(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return; }

	// Clear timer
	clearTimeout(this.timers.inactive);

	this.timers.inactive = delay.call(this,
		function(){ this.hide(event); },
		this.options.hide.inactive
	);
}

function repositionMethod(event) {
	if(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); }
}

// Store mouse coordinates
PROTOTYPE._storeMouse = function(event) {
	(this.mouse = $.event.fix(event)).type = 'mousemove';
	return this;
};

// Bind events
PROTOTYPE._bind = function(targets, events, method, suffix, context) {
	if(!targets || !method || !events.length) { return; }
	var ns = '.' + this._id + (suffix ? '-'+suffix : '');
	$(targets).bind(
		(events.split ? events : events.join(ns + ' ')) + ns,
		$.proxy(method, context || this)
	);
	return this;
};
PROTOTYPE._unbind = function(targets, suffix) {
	targets && $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : ''));
	return this;
};

// Global delegation helper
function delegate(selector, events, method) {
	$(document.body).delegate(selector,
		(events.split ? events : events.join('.'+NAMESPACE + ' ')) + '.'+NAMESPACE,
		function() {
			var api = QTIP.api[ $.attr(this, ATTR_ID) ];
			api && !api.disabled && method.apply(api, arguments);
		}
	);
}
// Event trigger
PROTOTYPE._trigger = function(type, args, event) {
	var callback = $.Event('tooltip'+type);
	callback.originalEvent = (event && $.extend({}, event)) || this.cache.event || NULL;

	this.triggering = type;
	this.tooltip.trigger(callback, [this].concat(args || []));
	this.triggering = FALSE;

	return !callback.isDefaultPrevented();
};

PROTOTYPE._bindEvents = function(showEvents, hideEvents, showTargets, hideTargets, showMethod, hideMethod) {
	// Get tasrgets that lye within both
	var similarTargets = showTargets.filter( hideTargets ).add( hideTargets.filter(showTargets) ),
		toggleEvents = [];

	// If hide and show targets are the same...
	if(similarTargets.length) {

		// Filter identical show/hide events
		$.each(hideEvents, function(i, type) {
			var showIndex = $.inArray(type, showEvents);

			// Both events are identical, remove from both hide and show events
			// and append to toggleEvents
			showIndex > -1 && toggleEvents.push( showEvents.splice( showIndex, 1 )[0] );
		});

		// Toggle events are special case of identical show/hide events, which happen in sequence
		if(toggleEvents.length) {
			// Bind toggle events to the similar targets
			this._bind(similarTargets, toggleEvents, function(event) {
				var state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false;
				(state ? hideMethod : showMethod).call(this, event);
			});

			// Remove the similar targets from the regular show/hide bindings
			showTargets = showTargets.not(similarTargets);
			hideTargets = hideTargets.not(similarTargets);
		}
	}

	// Apply show/hide/toggle events
	this._bind(showTargets, showEvents, showMethod);
	this._bind(hideTargets, hideEvents, hideMethod);
};

PROTOTYPE._assignInitialEvents = function(event) {
	var options = this.options,
		showTarget = options.show.target,
		hideTarget = options.hide.target,
		showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
		hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];

	// Catch remove/removeqtip events on target element to destroy redundant tooltips
	this._bind(this.elements.target, ['remove', 'removeqtip'], function(event) {
		this.destroy(true);
	}, 'destroy');

	/*
	 * Make sure hoverIntent functions properly by using mouseleave as a hide event if
	 * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
	 */
	if(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) {
		hideEvents.push('mouseleave');
	}

	/*
	 * Also make sure initial mouse targetting works correctly by caching mousemove coords
	 * on show targets before the tooltip has rendered. Also set onTarget when triggered to
	 * keep mouse tracking working.
	 */
	this._bind(showTarget, 'mousemove', function(event) {
		this._storeMouse(event);
		this.cache.onTarget = TRUE;
	});

	// Define hoverIntent function
	function hoverIntent(event) {
		// Only continue if tooltip isn't disabled
		if(this.disabled || this.destroyed) { return FALSE; }

		// Cache the event data
		this.cache.event = event && $.event.fix(event);
		this.cache.target = event && $(event.target);

		// Start the event sequence
		clearTimeout(this.timers.show);
		this.timers.show = delay.call(this,
			function() { this.render(typeof event === 'object' || options.show.ready); },
			options.prerender ? 0 : options.show.delay
		);
	}

	// Filter and bind events
	this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() {
		if(!this.timers) { return FALSE; }
		clearTimeout(this.timers.show);
	});

	// Prerendering is enabled, create tooltip now
	if(options.show.ready || options.prerender) { hoverIntent.call(this, event); }
};

// Event assignment method
PROTOTYPE._assignEvents = function() {
	var self = this,
		options = this.options,
		posOptions = options.position,

		tooltip = this.tooltip,
		showTarget = options.show.target,
		hideTarget = options.hide.target,
		containerTarget = posOptions.container,
		viewportTarget = posOptions.viewport,
		documentTarget = $(document),
		bodyTarget = $(document.body),
		windowTarget = $(window),

		showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
		hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];


	// Assign passed event callbacks
	$.each(options.events, function(name, callback) {
		self._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip);
	});

	// Hide tooltips when leaving current window/frame (but not select/option elements)
	if(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') {
		this._bind(documentTarget, ['mouseout', 'blur'], function(event) {
			if(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) {
				this.hide(event);
			}
		});
	}

	// Enable hide.fixed by adding appropriate class
	if(options.hide.fixed) {
		hideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) );
	}

	/*
	 * Make sure hoverIntent functions properly by using mouseleave to clear show timer if
	 * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
	 */
	else if(/mouse(over|enter)/i.test(options.show.event)) {
		this._bind(hideTarget, 'mouseleave', function() {
			clearTimeout(this.timers.show);
		});
	}

	// Hide tooltip on document mousedown if unfocus events are enabled
	if(('' + options.hide.event).indexOf('unfocus') > -1) {
		this._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) {
			var elem = $(event.target),
				enabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0,
				isAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0;

			if(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor &&
				!this.target.has(elem[0]).length && enabled
			) {
				this.hide(event);
			}
		});
	}

	// Check if the tooltip hides when inactive
	if('number' === typeof options.hide.inactive) {
		// Bind inactive method to show target(s) as a custom event
		this._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod, 'inactive');

		// Define events which reset the 'inactive' event handler
		this._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod);
	}

	// Filter and bind events
	this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod);

	// Mouse movement bindings
	this._bind(showTarget.add(tooltip), 'mousemove', function(event) {
		// Check if the tooltip hides when mouse is moved a certain distance
		if('number' === typeof options.hide.distance) {
			var origin = this.cache.origin || {},
				limit = this.options.hide.distance,
				abs = Math.abs;

			// Check if the movement has gone beyond the limit, and hide it if so
			if(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) {
				this.hide(event);
			}
		}

		// Cache mousemove coords on show targets
		this._storeMouse(event);
	});

	// Mouse positioning events
	if(posOptions.target === 'mouse') {
		// If mouse adjustment is on...
		if(posOptions.adjust.mouse) {
			// Apply a mouseleave event so we don't get problems with overlapping
			if(options.hide.event) {
				// Track if we're on the target or not
				this._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) {
					if(!this.cache) {return FALSE; }
					this.cache.onTarget = event.type === 'mouseenter';
				});
			}

			// Update tooltip position on mousemove
			this._bind(documentTarget, 'mousemove', function(event) {
				// Update the tooltip position only if the tooltip is visible and adjustment is enabled
				if(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) {
					this.reposition(event);
				}
			});
		}
	}

	// Adjust positions of the tooltip on window resize if enabled
	if(posOptions.adjust.resize || viewportTarget.length) {
		this._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod );
	}

	// Adjust tooltip position on scroll of the window or viewport element if present
	if(posOptions.adjust.scroll) {
		this._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod );
	}
};

// Un-assignment method
PROTOTYPE._unassignEvents = function() {
	var options = this.options,
		showTargets = options.show.target,
		hideTargets = options.hide.target,
		targets = $.grep([
			this.elements.target[0],
			this.rendered && this.tooltip[0],
			options.position.container[0],
			options.position.viewport[0],
			options.position.container.closest('html')[0], // unfocus
			window,
			document
		], function(i) {
			return typeof i === 'object';
		});

	// Add show and hide targets if they're valid
	if(showTargets && showTargets.toArray) {
		targets = targets.concat(showTargets.toArray());
	}
	if(hideTargets && hideTargets.toArray) {
		targets = targets.concat(hideTargets.toArray());
	}

	// Unbind the events
	this._unbind(targets)
		._unbind(targets, 'destroy')
		._unbind(targets, 'inactive');
};

// Apply common event handlers using delegate (avoids excessive .bind calls!)
$(function() {
	delegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) {
		var state = event.type === 'mouseenter',
			tooltip = $(event.currentTarget),
			target = $(event.relatedTarget || event.target),
			options = this.options;

		// On mouseenter...
		if(state) {
			// Focus the tooltip on mouseenter (z-index stacking)
			this.focus(event);

			// Clear hide timer on tooltip hover to prevent it from closing
			tooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide);
		}

		// On mouseleave...
		else {
			// When mouse tracking is enabled, hide when we leave the tooltip and not onto the show target (if a hide event is set)
			if(options.position.target === 'mouse' && options.position.adjust.mouse &&
				options.hide.event && options.show.target && !target.closest(options.show.target[0]).length) {
				this.hide(event);
			}
		}

		// Add hover class
		tooltip.toggleClass(CLASS_HOVER, state);
	});

	// Define events which reset the 'inactive' event handler
	delegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod);
});
;// Initialization method
function init(elem, id, opts) {
	var obj, posOptions, attr, config, title,

	// Setup element references
	docBody = $(document.body),

	// Use document body instead of document element if needed
	newTarget = elem[0] === document ? docBody : elem,

	// Grab metadata from element if plugin is present
	metadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL,

	// If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise
	metadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL,

	// Grab data from metadata.name (or data-qtipopts as fallback) using .data() method,
	html5 = elem.data(opts.metadata.name || 'qtipopts');

	// If we don't get an object returned attempt to parse it manualyl without parseJSON
	try { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; } catch(e) {}

	// Merge in and sanitize metadata
	config = $.extend(TRUE, {}, QTIP.defaults, opts,
		typeof html5 === 'object' ? sanitizeOptions(html5) : NULL,
		sanitizeOptions(metadata5 || metadata));

	// Re-grab our positioning options now we've merged our metadata and set id to passed value
	posOptions = config.position;
	config.id = id;

	// Setup missing content if none is detected
	if('boolean' === typeof config.content.text) {
		attr = elem.attr(config.content.attr);

		// Grab from supplied attribute if available
		if(config.content.attr !== FALSE && attr) { config.content.text = attr; }

		// No valid content was found, abort render
		else { return FALSE; }
	}

	// Setup target options
	if(!posOptions.container.length) { posOptions.container = docBody; }
	if(posOptions.target === FALSE) { posOptions.target = newTarget; }
	if(config.show.target === FALSE) { config.show.target = newTarget; }
	if(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); }
	if(config.hide.target === FALSE) { config.hide.target = newTarget; }
	if(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; }

	// Ensure we only use a single container
	posOptions.container = posOptions.container.eq(0);

	// Convert position corner values into x and y strings
	posOptions.at = new CORNER(posOptions.at, TRUE);
	posOptions.my = new CORNER(posOptions.my);

	// Destroy previous tooltip if overwrite is enabled, or skip element if not
	if(elem.data(NAMESPACE)) {
		if(config.overwrite) {
			elem.qtip('destroy', true);
		}
		else if(config.overwrite === FALSE) {
			return FALSE;
		}
	}

	// Add has-qtip attribute
	elem.attr(ATTR_HAS, id);

	// Remove title attribute and store it if present
	if(config.suppress && (title = elem.attr('title'))) {
		// Final attr call fixes event delegatiom and IE default tooltip showing problem
		elem.removeAttr('title').attr(oldtitle, title).attr('title', '');
	}

	// Initialize the tooltip and add API reference
	obj = new QTip(elem, config, id, !!attr);
	elem.data(NAMESPACE, obj);

	return obj;
}

// jQuery $.fn extension method
QTIP = $.fn.qtip = function(options, notation, newValue)
{
	var command = ('' + options).toLowerCase(), // Parse command
		returned = NULL,
		args = $.makeArray(arguments).slice(1),
		event = args[args.length - 1],
		opts = this[0] ? $.data(this[0], NAMESPACE) : NULL;

	// Check for API request
	if((!arguments.length && opts) || command === 'api') {
		return opts;
	}

	// Execute API command if present
	else if('string' === typeof options) {
		this.each(function() {
			var api = $.data(this, NAMESPACE);
			if(!api) { return TRUE; }

			// Cache the event if possible
			if(event && event.timeStamp) { api.cache.event = event; }

			// Check for specific API commands
			if(notation && (command === 'option' || command === 'options')) {
				if(newValue !== undefined || $.isPlainObject(notation)) {
					api.set(notation, newValue);
				}
				else {
					returned = api.get(notation);
					return FALSE;
				}
			}

			// Execute API command
			else if(api[command]) {
				api[command].apply(api, args);
			}
		});

		return returned !== NULL ? returned : this;
	}

	// No API commands. validate provided options and setup qTips
	else if('object' === typeof options || !arguments.length) {
		// Sanitize options first
		opts = sanitizeOptions($.extend(TRUE, {}, options));

		return this.each(function(i) {
			var api, id;

			// Find next available ID, or use custom ID if provided
			id = $.isArray(opts.id) ? opts.id[i] : opts.id;
			id = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id;

			// Initialize the qTip and re-grab newly sanitized options
			api = init($(this), id, opts);
			if(api === FALSE) { return TRUE; }
			else { QTIP.api[id] = api; }

			// Initialize plugins
			$.each(PLUGINS, function() {
				if(this.initialize === 'initialize') { this(api); }
			});

			// Assign initial pre-render events
			api._assignInitialEvents(event);
		});
	}
};

// Expose class
$.qtip = QTip;

// Populated in render method
QTIP.api = {};
;$.each({
	/* Allow other plugins to successfully retrieve the title of an element with a qTip applied */
	attr: function(attr, val) {
		if(this.length) {
			var self = this[0],
				title = 'title',
				api = $.data(self, 'qtip');

			if(attr === title && api && 'object' === typeof api && api.options.suppress) {
				if(arguments.length < 2) {
					return $.attr(self, oldtitle);
				}

				// If qTip is rendered and title was originally used as content, update it
				if(api && api.options.content.attr === title && api.cache.attr) {
					api.set('content.text', val);
				}

				// Use the regular attr method to set, then cache the result
				return this.attr(oldtitle, val);
			}
		}

		return $.fn['attr'+replaceSuffix].apply(this, arguments);
	},

	/* Allow clone to correctly retrieve cached title attributes */
	clone: function(keepData) {
		var titles = $([]), title = 'title',

		// Clone our element using the real clone method
		elems = $.fn['clone'+replaceSuffix].apply(this, arguments);

		// Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false
		if(!keepData) {
			elems.filter('['+oldtitle+']').attr('title', function() {
				return $.attr(this, oldtitle);
			})
			.removeAttr(oldtitle);
		}

		return elems;
	}
}, function(name, func) {
	if(!func || $.fn[name+replaceSuffix]) { return TRUE; }

	var old = $.fn[name+replaceSuffix] = $.fn[name];
	$.fn[name] = function() {
		return func.apply(this, arguments) || old.apply(this, arguments);
	};
});

/* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar).
 * This snippet is taken directly from jQuery UI source code found here:
 *     http://code.jquery.com/ui/jquery-ui-git.js
 */
if(!$.ui) {
	$['cleanData'+replaceSuffix] = $.cleanData;
	$.cleanData = function( elems ) {
		for(var i = 0, elem; (elem = $( elems[i] )).length; i++) {
			if(elem.attr(ATTR_HAS)) {
				try { elem.triggerHandler('removeqtip'); }
				catch( e ) {}
			}
		}
		$['cleanData'+replaceSuffix].apply(this, arguments);
	};
}
;// qTip version
QTIP.version = '2.2.1';

// Base ID for all qTips
QTIP.nextid = 0;

// Inactive events array
QTIP.inactiveEvents = INACTIVE_EVENTS;

// Base z-index for all qTips
QTIP.zindex = 15000;

// Define configuration defaults
QTIP.defaults = {
	prerender: FALSE,
	id: FALSE,
	overwrite: TRUE,
	suppress: TRUE,
	content: {
		text: TRUE,
		attr: 'title',
		title: FALSE,
		button: FALSE
	},
	position: {
		my: 'top left',
		at: 'bottom right',
		target: FALSE,
		container: FALSE,
		viewport: FALSE,
		adjust: {
			x: 0, y: 0,
			mouse: TRUE,
			scroll: TRUE,
			resize: TRUE,
			method: 'flipinvert flipinvert'
		},
		effect: function(api, pos, viewport) {
			$(this).animate(pos, {
				duration: 200,
				queue: FALSE
			});
		}
	},
	show: {
		target: FALSE,
		event: 'mouseenter',
		effect: TRUE,
		delay: 90,
		solo: FALSE,
		ready: FALSE,
		autofocus: FALSE
	},
	hide: {
		target: FALSE,
		event: 'mouseleave',
		effect: TRUE,
		delay: 0,
		fixed: FALSE,
		inactive: FALSE,
		leave: 'window',
		distance: FALSE
	},
	style: {
		classes: '',
		widget: FALSE,
		width: FALSE,
		height: FALSE,
		def: TRUE
	},
	events: {
		render: NULL,
		move: NULL,
		show: NULL,
		hide: NULL,
		toggle: NULL,
		visible: NULL,
		hidden: NULL,
		focus: NULL,
		blur: NULL
	}
};
;var TIP,

// .bind()/.on() namespace
TIPNS = '.qtip-tip',

// Common CSS strings
MARGIN = 'margin',
BORDER = 'border',
COLOR = 'color',
BG_COLOR = 'background-color',
TRANSPARENT = 'transparent',
IMPORTANT = ' !important',

// Check if the browser supports <canvas/> elements
HASCANVAS = !!document.createElement('canvas').getContext,

// Invalid colour values used in parseColours()
INVALID = /rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i;

// Camel-case method, taken from jQuery source
// http://code.jquery.com/jquery-1.8.0.js
function camel(s) { return s.charAt(0).toUpperCase() + s.slice(1); }

/*
 * Modified from Modernizr's testPropsAll()
 * http://modernizr.com/downloads/modernizr-latest.js
 */
var cssProps = {}, cssPrefixes = ["Webkit", "O", "Moz", "ms"];
function vendorCss(elem, prop) {
	var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
		props = (prop + ' ' + cssPrefixes.join(ucProp + ' ') + ucProp).split(' '),
		cur, val, i = 0;

	// If the property has already been mapped...
	if(cssProps[prop]) { return elem.css(cssProps[prop]); }

	while((cur = props[i++])) {
		if((val = elem.css(cur)) !== undefined) {
			return cssProps[prop] = cur, val;
		}
	}
}

// Parse a given elements CSS property into an int
function intCss(elem, prop) {
	return Math.ceil(parseFloat(vendorCss(elem, prop)));
}


// VML creation (for IE only)
if(!HASCANVAS) {
	var createVML = function(tag, props, style) {
		return '<qtipvml:'+tag+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(props||'')+
			' style="behavior: url(#default#VML); '+(style||'')+ '" />';
	};
}

// Canvas only definitions
else {
	var PIXEL_RATIO = window.devicePixelRatio || 1,
		BACKING_STORE_RATIO = (function() {
			var context = document.createElement('canvas').getContext('2d');
			return context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio ||
					context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || 1;
		}()),
		SCALE = PIXEL_RATIO / BACKING_STORE_RATIO;
}


function Tip(qtip, options) {
	this._ns = 'tip';
	this.options = options;
	this.offset = options.offset;
	this.size = [ options.width, options.height ];

	// Initialize
	this.init( (this.qtip = qtip) );
}

$.extend(Tip.prototype, {
	init: function(qtip) {
		var context, tip;

		// Create tip element and prepend to the tooltip
		tip = this.element = qtip.elements.tip = $('<div />', { 'class': NAMESPACE+'-tip' }).prependTo(qtip.tooltip);

		// Create tip drawing element(s)
		if(HASCANVAS) {
			// save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()!
			context = $('<canvas />').appendTo(this.element)[0].getContext('2d');

			// Setup constant parameters
			context.lineJoin = 'miter';
			context.miterLimit = 100000;
			context.save();
		}
		else {
			context = createVML('shape', 'coordorigin="0,0"', 'position:absolute;');
			this.element.html(context + context);

			// Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML
			qtip._bind( $('*', tip).add(tip), ['click', 'mousedown'], function(event) { event.stopPropagation(); }, this._ns);
		}

		// Bind update events
		qtip._bind(qtip.tooltip, 'tooltipmove', this.reposition, this._ns, this);

		// Create it
		this.create();
	},

	_swapDimensions: function() {
		this.size[0] = this.options.height;
		this.size[1] = this.options.width;
	},
	_resetDimensions: function() {
		this.size[0] = this.options.width;
		this.size[1] = this.options.height;
	},

	_useTitle: function(corner) {
		var titlebar = this.qtip.elements.titlebar;
		return titlebar && (
			corner.y === TOP || (corner.y === CENTER && this.element.position().top + (this.size[1] / 2) + this.options.offset < titlebar.outerHeight(TRUE))
		);
	},

	_parseCorner: function(corner) {
		var my = this.qtip.options.position.my;

		// Detect corner and mimic properties
		if(corner === FALSE || my === FALSE) {
			corner = FALSE;
		}
		else if(corner === TRUE) {
			corner = new CORNER( my.string() );
		}
		else if(!corner.string) {
			corner = new CORNER(corner);
			corner.fixed = TRUE;
		}

		return corner;
	},

	_parseWidth: function(corner, side, use) {
		var elements = this.qtip.elements,
			prop = BORDER + camel(side) + 'Width';

		return (use ? intCss(use, prop) : (
			intCss(elements.content, prop) ||
			intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||
			intCss(elements.tooltip, prop)
		)) || 0;
	},

	_parseRadius: function(corner) {
		var elements = this.qtip.elements,
			prop = BORDER + camel(corner.y) + camel(corner.x) + 'Radius';

		return BROWSER.ie < 9 ? 0 :
			intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||
			intCss(elements.tooltip, prop) || 0;
	},

	_invalidColour: function(elem, prop, compare) {
		var val = elem.css(prop);
		return !val || (compare && val === elem.css(compare)) || INVALID.test(val) ? FALSE : val;
	},

	_parseColours: function(corner) {
		var elements = this.qtip.elements,
			tip = this.element.css('cssText', ''),
			borderSide = BORDER + camel(corner[ corner.precedance ]) + camel(COLOR),
			colorElem = this._useTitle(corner) && elements.titlebar || elements.content,
			css = this._invalidColour, color = [];

		// Attempt to detect the background colour from various elements, left-to-right precedance
		color[0] = css(tip, BG_COLOR) || css(colorElem, BG_COLOR) || css(elements.content, BG_COLOR) ||
			css(elements.tooltip, BG_COLOR) || tip.css(BG_COLOR);

		// Attempt to detect the correct border side colour from various elements, left-to-right precedance
		color[1] = css(tip, borderSide, COLOR) || css(colorElem, borderSide, COLOR) ||
			css(elements.content, borderSide, COLOR) || css(elements.tooltip, borderSide, COLOR) || elements.tooltip.css(borderSide);

		// Reset background and border colours
		$('*', tip).add(tip).css('cssText', BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';');

		return color;
	},

	_calculateSize: function(corner) {
		var y = corner.precedance === Y,
			width = this.options['width'],
			height = this.options['height'],
			isCenter = corner.abbrev() === 'c',
			base = (y ? width: height) * (isCenter ? 0.5 : 1),
			pow = Math.pow,
			round = Math.round,
			bigHyp, ratio, result,

		smallHyp = Math.sqrt( pow(base, 2) + pow(height, 2) ),
		hyp = [ (this.border / base) * smallHyp, (this.border / height) * smallHyp ];

		hyp[2] = Math.sqrt( pow(hyp[0], 2) - pow(this.border, 2) );
		hyp[3] = Math.sqrt( pow(hyp[1], 2) - pow(this.border, 2) );

		bigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]);
		ratio = bigHyp / smallHyp;

		result = [ round(ratio * width), round(ratio * height) ];
		return y ? result : result.reverse();
	},

	// Tip coordinates calculator
	_calculateTip: function(corner, size, scale) {
		scale = scale || 1;
		size = size || this.size;

		var width = size[0] * scale,
			height = size[1] * scale,
			width2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2),

		// Define tip coordinates in terms of height and width values
		tips = {
			br:	[0,0,		width,height,	width,0],
			bl:	[0,0,		width,0,		0,height],
			tr:	[0,height,	width,0,		width,height],
			tl:	[0,0,		0,height,		width,height],
			tc:	[0,height,	width2,0,		width,height],
			bc:	[0,0,		width,0,		width2,height],
			rc:	[0,0,		width,height2,	0,height],
			lc:	[width,0,	width,height,	0,height2]
		};

		// Set common side shapes
		tips.lt = tips.br; tips.rt = tips.bl;
		tips.lb = tips.tr; tips.rb = tips.tl;

		return tips[ corner.abbrev() ];
	},

	// Tip coordinates drawer (canvas)
	_drawCoords: function(context, coords) {
		context.beginPath();
		context.moveTo(coords[0], coords[1]);
		context.lineTo(coords[2], coords[3]);
		context.lineTo(coords[4], coords[5]);
		context.closePath();
	},

	create: function() {
		// Determine tip corner
		var c = this.corner = (HASCANVAS || BROWSER.ie) && this._parseCorner(this.options.corner);

		// If we have a tip corner...
		if( (this.enabled = !!this.corner && this.corner.abbrev() !== 'c') ) {
			// Cache it
			this.qtip.cache.corner = c.clone();

			// Create it
			this.update();
		}

		// Toggle tip element
		this.element.toggle(this.enabled);

		return this.corner;
	},

	update: function(corner, position) {
		if(!this.enabled) { return this; }

		var elements = this.qtip.elements,
			tip = this.element,
			inner = tip.children(),
			options = this.options,
			curSize = this.size,
			mimic = options.mimic,
			round = Math.round,
			color, precedance, context,
			coords, bigCoords, translate, newSize, border, BACKING_STORE_RATIO;

		// Re-determine tip if not already set
		if(!corner) { corner = this.qtip.cache.corner || this.corner; }

		// Use corner property if we detect an invalid mimic value
		if(mimic === FALSE) { mimic = corner; }

		// Otherwise inherit mimic properties from the corner object as necessary
		else {
			mimic = new CORNER(mimic);
			mimic.precedance = corner.precedance;

			if(mimic.x === 'inherit') { mimic.x = corner.x; }
			else if(mimic.y === 'inherit') { mimic.y = corner.y; }
			else if(mimic.x === mimic.y) {
				mimic[ corner.precedance ] = corner[ corner.precedance ];
			}
		}
		precedance = mimic.precedance;

		// Ensure the tip width.height are relative to the tip position
		if(corner.precedance === X) { this._swapDimensions(); }
		else { this._resetDimensions(); }

		// Update our colours
		color = this.color = this._parseColours(corner);

		// Detect border width, taking into account colours
		if(color[1] !== TRANSPARENT) {
			// Grab border width
			border = this.border = this._parseWidth(corner, corner[corner.precedance]);

			// If border width isn't zero, use border color as fill if it's not invalid (1.0 style tips)
			if(options.border && border < 1 && !INVALID.test(color[1])) { color[0] = color[1]; }

			// Set border width (use detected border width if options.border is true)
			this.border = border = options.border !== TRUE ? options.border : border;
		}

		// Border colour was invalid, set border to zero
		else { this.border = border = 0; }

		// Determine tip size
		newSize = this.size = this._calculateSize(corner);
		tip.css({
			width: newSize[0],
			height: newSize[1],
			lineHeight: newSize[1]+'px'
		});

		// Calculate tip translation
		if(corner.precedance === Y) {
			translate = [
				round(mimic.x === LEFT ? border : mimic.x === RIGHT ? newSize[0] - curSize[0] - border : (newSize[0] - curSize[0]) / 2),
				round(mimic.y === TOP ? newSize[1] - curSize[1] : 0)
			];
		}
		else {
			translate = [
				round(mimic.x === LEFT ? newSize[0] - curSize[0] : 0),
				round(mimic.y === TOP ? border : mimic.y === BOTTOM ? newSize[1] - curSize[1] - border : (newSize[1] - curSize[1]) / 2)
			];
		}

		// Canvas drawing implementation
		if(HASCANVAS) {
			// Grab canvas context and clear/save it
			context = inner[0].getContext('2d');
			context.restore(); context.save();
			context.clearRect(0,0,6000,6000);

			// Calculate coordinates
			coords = this._calculateTip(mimic, curSize, SCALE);
			bigCoords = this._calculateTip(mimic, this.size, SCALE);

			// Set the canvas size using calculated size
			inner.attr(WIDTH, newSize[0] * SCALE).attr(HEIGHT, newSize[1] * SCALE);
			inner.css(WIDTH, newSize[0]).css(HEIGHT, newSize[1]);

			// Draw the outer-stroke tip
			this._drawCoords(context, bigCoords);
			context.fillStyle = color[1];
			context.fill();

			// Draw the actual tip
			context.translate(translate[0] * SCALE, translate[1] * SCALE);
			this._drawCoords(context, coords);
			context.fillStyle = color[0];
			context.fill();
		}

		// VML (IE Proprietary implementation)
		else {
			// Calculate coordinates
			coords = this._calculateTip(mimic);

			// Setup coordinates string
			coords = 'm' + coords[0] + ',' + coords[1] + ' l' + coords[2] +
				',' + coords[3] + ' ' + coords[4] + ',' + coords[5] + ' xe';

			// Setup VML-specific offset for pixel-perfection
			translate[2] = border && /^(r|b)/i.test(corner.string()) ?
				BROWSER.ie === 8 ? 2 : 1 : 0;

			// Set initial CSS
			inner.css({
				coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),
				antialias: ''+(mimic.string().indexOf(CENTER) > -1),
				left: translate[0] - (translate[2] * Number(precedance === X)),
				top: translate[1] - (translate[2] * Number(precedance === Y)),
				width: newSize[0] + border,
				height: newSize[1] + border
			})
			.each(function(i) {
				var $this = $(this);

				// Set shape specific attributes
				$this[ $this.prop ? 'prop' : 'attr' ]({
					coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),
					path: coords,
					fillcolor: color[0],
					filled: !!i,
					stroked: !i
				})
				.toggle(!!(border || i));

				// Check if border is enabled and add stroke element
				!i && $this.html( createVML(
					'stroke', 'weight="'+(border*2)+'px" color="'+color[1]+'" miterlimit="1000" joinstyle="miter"'
				) );
			});
		}

		// Opera bug #357 - Incorrect tip position
		// https://github.com/Craga89/qTip2/issues/367
		window.opera && setTimeout(function() {
			elements.tip.css({
				display: 'inline-block',
				visibility: 'visible'
			});
		}, 1);

		// Position if needed
		if(position !== FALSE) { this.calculate(corner, newSize); }
	},

	calculate: function(corner, size) {
		if(!this.enabled) { return FALSE; }

		var self = this,
			elements = this.qtip.elements,
			tip = this.element,
			userOffset = this.options.offset,
			isWidget = elements.tooltip.hasClass('ui-widget'),
			position = {  },
			precedance, corners;

		// Inherit corner if not provided
		corner = corner || this.corner;
		precedance = corner.precedance;

		// Determine which tip dimension to use for adjustment
		size = size || this._calculateSize(corner);

		// Setup corners and offset array
		corners = [ corner.x, corner.y ];
		if(precedance === X) { corners.reverse(); }

		// Calculate tip position
		$.each(corners, function(i, side) {
			var b, bc, br;

			if(side === CENTER) {
				b = precedance === Y ? LEFT : TOP;
				position[ b ] = '50%';
				position[MARGIN+'-' + b] = -Math.round(size[ precedance === Y ? 0 : 1 ] / 2) + userOffset;
			}
			else {
				b = self._parseWidth(corner, side, elements.tooltip);
				bc = self._parseWidth(corner, side, elements.content);
				br = self._parseRadius(corner);

				position[ side ] = Math.max(-self.border, i ? bc : (userOffset + (br > b ? br : -b)));
			}
		});

		// Adjust for tip size
		position[ corner[precedance] ] -= size[ precedance === X ? 0 : 1 ];

		// Set and return new position
		tip.css({ margin: '', top: '', bottom: '', left: '', right: '' }).css(position);
		return position;
	},

	reposition: function(event, api, pos, viewport) {
		if(!this.enabled) { return; }

		var cache = api.cache,
			newCorner = this.corner.clone(),
			adjust = pos.adjusted,
			method = api.options.position.adjust.method.split(' '),
			horizontal = method[0],
			vertical = method[1] || method[0],
			shift = { left: FALSE, top: FALSE, x: 0, y: 0 },
			offset, css = {}, props;

		function shiftflip(direction, precedance, popposite, side, opposite) {
			// Horizontal - Shift or flip method
			if(direction === SHIFT && newCorner.precedance === precedance && adjust[side] && newCorner[popposite] !== CENTER) {
				newCorner.precedance = newCorner.precedance === X ? Y : X;
			}
			else if(direction !== SHIFT && adjust[side]){
				newCorner[precedance] = newCorner[precedance] === CENTER ?
					(adjust[side] > 0 ? side : opposite) : (newCorner[precedance] === side ? opposite : side);
			}
		}

		function shiftonly(xy, side, opposite) {
			if(newCorner[xy] === CENTER) {
				css[MARGIN+'-'+side] = shift[xy] = offset[MARGIN+'-'+side] - adjust[side];
			}
			else {
				props = offset[opposite] !== undefined ?
					[ adjust[side], -offset[side] ] : [ -adjust[side], offset[side] ];

				if( (shift[xy] = Math.max(props[0], props[1])) > props[0] ) {
					pos[side] -= adjust[side];
					shift[side] = FALSE;
				}

				css[ offset[opposite] !== undefined ? opposite : side ] = shift[xy];
			}
		}

		// If our tip position isn't fixed e.g. doesn't adjust with viewport...
		if(this.corner.fixed !== TRUE) {
			// Perform shift/flip adjustments
			shiftflip(horizontal, X, Y, LEFT, RIGHT);
			shiftflip(vertical, Y, X, TOP, BOTTOM);

			// Update and redraw the tip if needed (check cached details of last drawn tip)
			if(newCorner.string() !== cache.corner.string() || cache.cornerTop !== adjust.top || cache.cornerLeft !== adjust.left) {
				this.update(newCorner, FALSE);
			}
		}

		// Setup tip offset properties
		offset = this.calculate(newCorner);

		// Readjust offset object to make it left/top
		if(offset.right !== undefined) { offset.left = -offset.right; }
		if(offset.bottom !== undefined) { offset.top = -offset.bottom; }
		offset.user = this.offset;

		// Perform shift adjustments
		if(shift.left = (horizontal === SHIFT && !!adjust.left)) { shiftonly(X, LEFT, RIGHT); }
		if(shift.top = (vertical === SHIFT && !!adjust.top)) { shiftonly(Y, TOP, BOTTOM); }

		/*
		* If the tip is adjusted in both dimensions, or in a
		* direction that would cause it to be anywhere but the
		* outer border, hide it!
		*/
		this.element.css(css).toggle(
			!((shift.x && shift.y) || (newCorner.x === CENTER && shift.y) || (newCorner.y === CENTER && shift.x))
		);

		// Adjust position to accomodate tip dimensions
		pos.left -= offset.left.charAt ? offset.user :
			horizontal !== SHIFT || shift.top || !shift.left && !shift.top ? offset.left + this.border : 0;
		pos.top -= offset.top.charAt ? offset.user :
			vertical !== SHIFT || shift.left || !shift.left && !shift.top ? offset.top + this.border : 0;

		// Cache details
		cache.cornerLeft = adjust.left; cache.cornerTop = adjust.top;
		cache.corner = newCorner.clone();
	},

	destroy: function() {
		// Unbind events
		this.qtip._unbind(this.qtip.tooltip, this._ns);

		// Remove the tip element(s)
		if(this.qtip.elements.tip) {
			this.qtip.elements.tip.find('*')
				.remove().end().remove();
		}
	}
});

TIP = PLUGINS.tip = function(api) {
	return new Tip(api, api.options.style.tip);
};

// Initialize tip on render
TIP.initialize = 'render';

// Setup plugin sanitization options
TIP.sanitize = function(options) {
	if(options.style && 'tip' in options.style) {
		var opts = options.style.tip;
		if(typeof opts !== 'object') { opts = options.style.tip = { corner: opts }; }
		if(!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; }
	}
};

// Add new option checks for the plugin
CHECKS.tip = {
	'^position.my|style.tip.(corner|mimic|border)$': function() {
		// Make sure a tip can be drawn
		this.create();

		// Reposition the tooltip
		this.qtip.reposition();
	},
	'^style.tip.(height|width)$': function(obj) {
		// Re-set dimensions and redraw the tip
		this.size = [ obj.width, obj.height ];
		this.update();

		// Reposition the tooltip
		this.qtip.reposition();
	},
	'^content.title|style.(classes|widget)$': function() {
		this.update();
	}
};

// Extend original qTip defaults
$.extend(TRUE, QTIP.defaults, {
	style: {
		tip: {
			corner: TRUE,
			mimic: FALSE,
			width: 6,
			height: 6,
			border: TRUE,
			offset: 0
		}
	}
});
;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight)
{
	var target = posOptions.target,
		tooltip = api.elements.tooltip,
		my = posOptions.my,
		at = posOptions.at,
		adjust = posOptions.adjust,
		method = adjust.method.split(' '),
		methodX = method[0],
		methodY = method[1] || method[0],
		viewport = posOptions.viewport,
		container = posOptions.container,
		cache = api.cache,
		adjusted = { left: 0, top: 0 },
		fixed, newMy, containerOffset, containerStatic,
		viewportWidth, viewportHeight, viewportScroll, viewportOffset;

	// If viewport is not a jQuery element, or it's the window/document, or no adjustment method is used... return
	if(!viewport.jquery || target[0] === window || target[0] === document.body || adjust.method === 'none') {
		return adjusted;
	}

	// Cach container details
	containerOffset = container.offset() || adjusted;
	containerStatic = container.css('position') === 'static';

	// Cache our viewport details
	fixed = tooltip.css('position') === 'fixed';
	viewportWidth = viewport[0] === window ? viewport.width() : viewport.outerWidth(FALSE);
	viewportHeight = viewport[0] === window ? viewport.height() : viewport.outerHeight(FALSE);
	viewportScroll = { left: fixed ? 0 : viewport.scrollLeft(), top: fixed ? 0 : viewport.scrollTop() };
	viewportOffset = viewport.offset() || adjusted;

	// Generic calculation method
	function calculate(side, otherSide, type, adjust, side1, side2, lengthName, targetLength, elemLength) {
		var initialPos = position[side1],
			mySide = my[side],
			atSide = at[side],
			isShift = type === SHIFT,
			myLength = mySide === side1 ? elemLength : mySide === side2 ? -elemLength : -elemLength / 2,
			atLength = atSide === side1 ? targetLength : atSide === side2 ? -targetLength : -targetLength / 2,
			sideOffset = viewportScroll[side1] + viewportOffset[side1] - (containerStatic ? 0 : containerOffset[side1]),
			overflow1 = sideOffset - initialPos,
			overflow2 = initialPos + elemLength - (lengthName === WIDTH ? viewportWidth : viewportHeight) - sideOffset,
			offset = myLength - (my.precedance === side || mySide === my[otherSide] ? atLength : 0) - (atSide === CENTER ? targetLength / 2 : 0);

		// shift
		if(isShift) {
			offset = (mySide === side1 ? 1 : -1) * myLength;

			// Adjust position but keep it within viewport dimensions
			position[side1] += overflow1 > 0 ? overflow1 : overflow2 > 0 ? -overflow2 : 0;
			position[side1] = Math.max(
				-containerOffset[side1] + viewportOffset[side1],
				initialPos - offset,
				Math.min(
					Math.max(
						-containerOffset[side1] + viewportOffset[side1] + (lengthName === WIDTH ? viewportWidth : viewportHeight),
						initialPos + offset
					),
					position[side1],

					// Make sure we don't adjust complete off the element when using 'center'
					mySide === 'center' ? initialPos - myLength : 1E9
				)
			);

		}

		// flip/flipinvert
		else {
			// Update adjustment amount depending on if using flipinvert or flip
			adjust *= (type === FLIPINVERT ? 2 : 0);

			// Check for overflow on the left/top
			if(overflow1 > 0 && (mySide !== side1 || overflow2 > 0)) {
				position[side1] -= offset + adjust;
				newMy.invert(side, side1);
			}

			// Check for overflow on the bottom/right
			else if(overflow2 > 0 && (mySide !== side2 || overflow1 > 0)  ) {
				position[side1] -= (mySide === CENTER ? -offset : offset) + adjust;
				newMy.invert(side, side2);
			}

			// Make sure we haven't made things worse with the adjustment and reset if so
			if(position[side1] < viewportScroll && -position[side1] > overflow2) {
				position[side1] = initialPos; newMy = my.clone();
			}
		}

		return position[side1] - initialPos;
	}

	// Set newMy if using flip or flipinvert methods
	if(methodX !== 'shift' || methodY !== 'shift') { newMy = my.clone(); }

	// Adjust position based onviewport and adjustment options
	adjusted = {
		left: methodX !== 'none' ? calculate( X, Y, methodX, adjust.x, LEFT, RIGHT, WIDTH, targetWidth, elemWidth ) : 0,
		top: methodY !== 'none' ? calculate( Y, X, methodY, adjust.y, TOP, BOTTOM, HEIGHT, targetHeight, elemHeight ) : 0,
		my: newMy
	};

	return adjusted;
};
;PLUGINS.polys = {
	// POLY area coordinate calculator
	//	Special thanks to Ed Cradock for helping out with this.
	//	Uses a binary search algorithm to find suitable coordinates.
	polygon: function(baseCoords, corner) {
		var result = {
			width: 0, height: 0,
			position: {
				top: 1e10, right: 0,
				bottom: 0, left: 1e10
			},
			adjustable: FALSE
		},
		i = 0, next,
		coords = [],
		compareX = 1, compareY = 1,
		realX = 0, realY = 0,
		newWidth, newHeight;

		// First pass, sanitize coords and determine outer edges
		i = baseCoords.length; while(i--) {
			next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ];

			if(next[0] > result.position.right){ result.position.right = next[0]; }
			if(next[0] < result.position.left){ result.position.left = next[0]; }
			if(next[1] > result.position.bottom){ result.position.bottom = next[1]; }
			if(next[1] < result.position.top){ result.position.top = next[1]; }

			coords.push(next);
		}

		// Calculate height and width from outer edges
		newWidth = result.width = Math.abs(result.position.right - result.position.left);
		newHeight = result.height = Math.abs(result.position.bottom - result.position.top);

		// If it's the center corner...
		if(corner.abbrev() === 'c') {
			result.position = {
				left: result.position.left + (result.width / 2),
				top: result.position.top + (result.height / 2)
			};
		}
		else {
			// Second pass, use a binary search algorithm to locate most suitable coordinate
			while(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0)
			{
				newWidth = Math.floor(newWidth / 2);
				newHeight = Math.floor(newHeight / 2);

				if(corner.x === LEFT){ compareX = newWidth; }
				else if(corner.x === RIGHT){ compareX = result.width - newWidth; }
				else{ compareX += Math.floor(newWidth / 2); }

				if(corner.y === TOP){ compareY = newHeight; }
				else if(corner.y === BOTTOM){ compareY = result.height - newHeight; }
				else{ compareY += Math.floor(newHeight / 2); }

				i = coords.length; while(i--)
				{
					if(coords.length < 2){ break; }

					realX = coords[i][0] - result.position.left;
					realY = coords[i][1] - result.position.top;

					if((corner.x === LEFT && realX >= compareX) ||
					(corner.x === RIGHT && realX <= compareX) ||
					(corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) ||
					(corner.y === TOP && realY >= compareY) ||
					(corner.y === BOTTOM && realY <= compareY) ||
					(corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) {
						coords.splice(i, 1);
					}
				}
			}
			result.position = { left: coords[0][0], top: coords[0][1] };
		}

		return result;
	},

	rect: function(ax, ay, bx, by) {
		return {
			width: Math.abs(bx - ax),
			height: Math.abs(by - ay),
			position: {
				left: Math.min(ax, bx),
				top: Math.min(ay, by)
			}
		};
	},

	_angles: {
		tc: 3 / 2, tr: 7 / 4, tl: 5 / 4,
		bc: 1 / 2, br: 1 / 4, bl: 3 / 4,
		rc: 2, lc: 1, c: 0
	},
	ellipse: function(cx, cy, rx, ry, corner) {
		var c = PLUGINS.polys._angles[ corner.abbrev() ],
			rxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ),
			rys = ry * Math.sin( c * Math.PI );

		return {
			width: (rx * 2) - Math.abs(rxc),
			height: (ry * 2) - Math.abs(rys),
			position: {
				left: cx + rxc,
				top: cy + rys
			},
			adjustable: FALSE
		};
	},
	circle: function(cx, cy, r, corner) {
		return PLUGINS.polys.ellipse(cx, cy, r, r, corner);
	}
};
;PLUGINS.imagemap = function(api, area, corner, adjustMethod)
{
	if(!area.jquery) { area = $(area); }

	var shape = (area.attr('shape') || 'rect').toLowerCase().replace('poly', 'polygon'),
		image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'),
		coordsString = $.trim(area.attr('coords')),
		coordsArray = coordsString.replace(/,$/, '').split(','),
		imageOffset, coords, i, next, result, len;

	// If we can't find the image using the map...
	if(!image.length) { return FALSE; }

	// Pass coordinates string if polygon
	if(shape === 'polygon') {
		result = PLUGINS.polys.polygon(coordsArray, corner);
	}

	// Otherwise parse the coordinates and pass them as arguments
	else if(PLUGINS.polys[shape]) {
		for(i = -1, len = coordsArray.length, coords = []; ++i < len;) {
			coords.push( parseInt(coordsArray[i], 10) );
		}

		result = PLUGINS.polys[shape].apply(
			this, coords.concat(corner)
		);
	}

	// If no shapre calculation method was found, return false
	else { return FALSE; }

	// Make sure we account for padding and borders on the image
	imageOffset = image.offset();
	imageOffset.left += Math.ceil((image.outerWidth(FALSE) - image.width()) / 2);
	imageOffset.top += Math.ceil((image.outerHeight(FALSE) - image.height()) / 2);

	// Add image position to offset coordinates
	result.position.left += imageOffset.left;
	result.position.top += imageOffset.top;

	return result;
};
;PLUGINS.svg = function(api, svg, corner)
{
	var doc = $(document),
		elem = svg[0],
		root = $(elem.ownerSVGElement),
		ownerDocument = elem.ownerDocument,
		strokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2,
		frameOffset, mtx, transformed, viewBox,
		len, next, i, points,
		result, position, dimensions;

	// Ascend the parentNode chain until we find an element with getBBox()
	while(!elem.getBBox) { elem = elem.parentNode; }
	if(!elem.getBBox || !elem.parentNode) { return FALSE; }

	// Determine which shape calculation to use
	switch(elem.nodeName) {
		case 'ellipse':
		case 'circle':
			result = PLUGINS.polys.ellipse(
				elem.cx.baseVal.value,
				elem.cy.baseVal.value,
				(elem.rx || elem.r).baseVal.value + strokeWidth2,
				(elem.ry || elem.r).baseVal.value + strokeWidth2,
				corner
			);
		break;

		case 'line':
		case 'polygon':
		case 'polyline':
			// Determine points object (line has none, so mimic using array)
			points = elem.points || [
				{ x: elem.x1.baseVal.value, y: elem.y1.baseVal.value },
				{ x: elem.x2.baseVal.value, y: elem.y2.baseVal.value }
			];

			for(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) {
				next = points.getItem ? points.getItem(i) : points[i];
				result.push.apply(result, [next.x, next.y]);
			}

			result = PLUGINS.polys.polygon(result, corner);
		break;

		// Unknown shape or rectangle? Use bounding box
		default:
			result = elem.getBBox();
			result = {
				width: result.width,
				height: result.height,
				position: {
					left: result.x,
					top: result.y
				}
			};
		break;
	}

	// Shortcut assignments
	position = result.position;
	root = root[0];

	// Convert position into a pixel value
	if(root.createSVGPoint) {
		mtx = elem.getScreenCTM();
		points = root.createSVGPoint();

		points.x = position.left;
		points.y = position.top;
		transformed = points.matrixTransform( mtx );
		position.left = transformed.x;
		position.top = transformed.y;
	}

	// Check the element is not in a child document, and if so, adjust for frame elements offset
	if(ownerDocument !== document && api.position.target !== 'mouse') {
		frameOffset = $((ownerDocument.defaultView || ownerDocument.parentWindow).frameElement).offset();
		if(frameOffset) {
			position.left += frameOffset.left;
			position.top += frameOffset.top;
		}
	}

	// Adjust by scroll offset of owner document
	ownerDocument = $(ownerDocument);
	position.left += ownerDocument.scrollLeft();
	position.top += ownerDocument.scrollTop();

	return result;
};
;var MODAL, OVERLAY,
	MODALCLASS = 'qtip-modal',
	MODALSELECTOR = '.'+MODALCLASS;

OVERLAY = function()
{
	var self = this,
		focusableElems = {},
		current, onLast,
		prevState, elem;

	// Modified code from jQuery UI 1.10.0 source
	// http://code.jquery.com/ui/1.10.0/jquery-ui.js
	function focusable(element) {
		// Use the defined focusable checker when possible
		if($.expr[':'].focusable) { return $.expr[':'].focusable; }

		var isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')),
			nodeName = element.nodeName && element.nodeName.toLowerCase(),
			map, mapName, img;

		if('area' === nodeName) {
			map = element.parentNode;
			mapName = map.name;
			if(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {
				return false;
			}
			img = $('img[usemap=#' + mapName + ']')[0];
			return !!img && img.is(':visible');
		}
		return (/input|select|textarea|button|object/.test( nodeName ) ?
				!element.disabled :
				'a' === nodeName ?
					element.href || isTabIndexNotNaN :
					isTabIndexNotNaN
			);
	}

	// Focus inputs using cached focusable elements (see update())
	function focusInputs(blurElems) {
		// Blurring body element in IE causes window.open windows to unfocus!
		if(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); }

		// Focus the inputs
		else { focusableElems.first().focus(); }
	}

	// Steal focus from elements outside tooltip
	function stealFocus(event) {
		if(!elem.is(':visible')) { return; }

		var target = $(event.target),
			tooltip = current.tooltip,
			container = target.closest(SELECTOR),
			targetOnTop;

		// Determine if input container target is above this
		targetOnTop = container.length < 1 ? FALSE :
			(parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10));

		// If we're showing a modal, but focus has landed on an input below
		// this modal, divert focus to the first visible input in this modal
		// or if we can't find one... the tooltip itself
		if(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) {
			focusInputs(target);
		}

		// Detect when we leave the last focusable element...
		onLast = event.target === focusableElems[focusableElems.length - 1];
	}

	$.extend(self, {
		init: function() {
			// Create document overlay
			elem = self.elem = $('<div />', {
				id: 'qtip-overlay',
				html: '<div></div>',
				mousedown: function() { return FALSE; }
			})
			.hide();

			// Make sure we can't focus anything outside the tooltip
			$(document.body).bind('focusin'+MODALSELECTOR, stealFocus);

			// Apply keyboard "Escape key" close handler
			$(document).bind('keydown'+MODALSELECTOR, function(event) {
				if(current && current.options.show.modal.escape && event.keyCode === 27) {
					current.hide(event);
				}
			});

			// Apply click handler for blur option
			elem.bind('click'+MODALSELECTOR, function(event) {
				if(current && current.options.show.modal.blur) {
					current.hide(event);
				}
			});

			return self;
		},

		update: function(api) {
			// Update current API reference
			current = api;

			// Update focusable elements if enabled
			if(api.options.show.modal.stealfocus !== FALSE) {
				focusableElems = api.tooltip.find('*').filter(function() {
					return focusable(this);
				});
			}
			else { focusableElems = []; }
		},

		toggle: function(api, state, duration) {
			var docBody = $(document.body),
				tooltip = api.tooltip,
				options = api.options.show.modal,
				effect = options.effect,
				type = state ? 'show': 'hide',
				visible = elem.is(':visible'),
				visibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip),
				zindex;

			// Set active tooltip API reference
			self.update(api);

			// If the modal can steal the focus...
			// Blur the current item and focus anything in the modal we an
			if(state && options.stealfocus !== FALSE) {
				focusInputs( $(':focus') );
			}

			// Toggle backdrop cursor style on show
			elem.toggleClass('blurs', options.blur);

			// Append to body on show
			if(state) {
				elem.appendTo(document.body);
			}

			// Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible
			if((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) {
				return self;
			}

			// Stop all animations
			elem.stop(TRUE, FALSE);

			// Use custom function if provided
			if($.isFunction(effect)) {
				effect.call(elem, state);
			}

			// If no effect type is supplied, use a simple toggle
			else if(effect === FALSE) {
				elem[ type ]();
			}

			// Use basic fade function
			else {
				elem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() {
					if(!state) { elem.hide(); }
				});
			}

			// Reset position and detach from body on hide
			if(!state) {
				elem.queue(function(next) {
					elem.css({ left: '', top: '' });
					if(!$(MODALSELECTOR).length) { elem.detach(); }
					next();
				});
			}

			// Cache the state
			prevState = state;

			// If the tooltip is destroyed, set reference to null
			if(current.destroyed) { current = NULL; }

			return self;
		}
	});

	self.init();
};
OVERLAY = new OVERLAY();

function Modal(api, options) {
	this.options = options;
	this._ns = '-modal';

	this.init( (this.qtip = api) );
}

$.extend(Modal.prototype, {
	init: function(qtip) {
		var tooltip = qtip.tooltip;

		// If modal is disabled... return
		if(!this.options.on) { return this; }

		// Set overlay reference
		qtip.elements.overlay = OVERLAY.elem;

		// Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index
		tooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length);

		// Apply our show/hide/focus modal events
		qtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) {
			var oEvent = event.originalEvent;

			// Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop
			if(event.target === tooltip[0]) {
				if(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) {
					try { event.preventDefault(); } catch(e) {}
				}
				else if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) {
					this.toggle(event, event.type === 'tooltipshow', duration);
				}
			}
		}, this._ns, this);

		// Adjust modal z-index on tooltip focus
		qtip._bind(tooltip, 'tooltipfocus', function(event, api) {
			// If focus was cancelled before it reached us, don't do anything
			if(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; }

			var qtips = $(MODALSELECTOR),

			// Keep the modal's lower than other, regular qtips
			newIndex = QTIP.modal_zindex + qtips.length,
			curIndex = parseInt(tooltip[0].style.zIndex, 10);

			// Set overlay z-index
			OVERLAY.elem[0].style.zIndex = newIndex - 1;

			// Reduce modal z-index's and keep them properly ordered
			qtips.each(function() {
				if(this.style.zIndex > curIndex) {
					this.style.zIndex -= 1;
				}
			});

			// Fire blur event for focused tooltip
			qtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent);

			// Set the new z-index
			tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;

			// Set current
			OVERLAY.update(api);

			// Prevent default handling
			try { event.preventDefault(); } catch(e) {}
		}, this._ns, this);

		// Focus any other visible modals when this one hides
		qtip._bind(tooltip, 'tooltiphide', function(event) {
			if(event.target === tooltip[0]) {
				$(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event);
			}
		}, this._ns, this);
	},

	toggle: function(event, state, duration) {
		// Make sure default event hasn't been prevented
		if(event && event.isDefaultPrevented()) { return this; }

		// Toggle it
		OVERLAY.toggle(this.qtip, !!state, duration);
	},

	destroy: function() {
		// Remove modal class
		this.qtip.tooltip.removeClass(MODALCLASS);

		// Remove bound events
		this.qtip._unbind(this.qtip.tooltip, this._ns);

		// Delete element reference
		OVERLAY.toggle(this.qtip, FALSE);
		delete this.qtip.elements.overlay;
	}
});


MODAL = PLUGINS.modal = function(api) {
	return new Modal(api, api.options.show.modal);
};

// Setup sanitiztion rules
MODAL.sanitize = function(opts) {
	if(opts.show) {
		if(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; }
		else if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; }
	}
};

// Base z-index for all modal tooltips (use qTip core z-index as a base)
QTIP.modal_zindex = QTIP.zindex - 200;

// Plugin needs to be initialized on render
MODAL.initialize = 'render';

// Setup option set checks
CHECKS.modal = {
	'^show.modal.(on|blur)$': function() {
		// Initialise
		this.destroy();
		this.init();

		// Show the modal if not visible already and tooltip is visible
		this.qtip.elems.overlay.toggle(
			this.qtip.tooltip[0].offsetWidth > 0
		);
	}
};

// Extend original api defaults
$.extend(TRUE, QTIP.defaults, {
	show: {
		modal: {
			on: FALSE,
			effect: TRUE,
			blur: TRUE,
			stealfocus: TRUE,
			escape: TRUE
		}
	}
});
;var IE6,

/*
 * BGIFrame adaption (http://plugins.jquery.com/project/bgiframe)
 * Special thanks to Brandon Aaron
 */
BGIFRAME = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" ' +
	' style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); ' +
		'-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';

function Ie6(api, qtip) {
	this._ns = 'ie6';
	this.init( (this.qtip = api) );
}

$.extend(Ie6.prototype, {
	_scroll : function() {
		var overlay = this.qtip.elements.overlay;
		overlay && (overlay[0].style.top = $(window).scrollTop() + 'px');
	},

	init: function(qtip) {
		var tooltip = qtip.tooltip,
			scroll;

		// Create the BGIFrame element if needed
		if($('select, object').length < 1) {
			this.bgiframe = qtip.elements.bgiframe = $(BGIFRAME).appendTo(tooltip);

			// Update BGIFrame on tooltip move
			qtip._bind(tooltip, 'tooltipmove', this.adjustBGIFrame, this._ns, this);
		}

		// redraw() container for width/height calculations
		this.redrawContainer = $('<div/>', { id: NAMESPACE+'-rcontainer' })
			.appendTo(document.body);

		// Fixup modal plugin if present too
		if( qtip.elements.overlay && qtip.elements.overlay.addClass('qtipmodal-ie6fix') ) {
			qtip._bind(window, ['scroll', 'resize'], this._scroll, this._ns, this);
			qtip._bind(tooltip, ['tooltipshow'], this._scroll, this._ns, this);
		}

		// Set dimensions
		this.redraw();
	},

	adjustBGIFrame: function() {
		var tooltip = this.qtip.tooltip,
			dimensions = {
				height: tooltip.outerHeight(FALSE),
				width: tooltip.outerWidth(FALSE)
			},
			plugin = this.qtip.plugins.tip,
			tip = this.qtip.elements.tip,
			tipAdjust, offset;

		// Adjust border offset
		offset = parseInt(tooltip.css('borderLeftWidth'), 10) || 0;
		offset = { left: -offset, top: -offset };

		// Adjust for tips plugin
		if(plugin && tip) {
			tipAdjust = (plugin.corner.precedance === 'x') ? [WIDTH, LEFT] : [HEIGHT, TOP];
			offset[ tipAdjust[1] ] -= tip[ tipAdjust[0] ]();
		}

		// Update bgiframe
		this.bgiframe.css(offset).css(dimensions);
	},

	// Max/min width simulator function
	redraw: function() {
		if(this.qtip.rendered < 1 || this.drawing) { return this; }

		var tooltip = this.qtip.tooltip,
			style = this.qtip.options.style,
			container = this.qtip.options.position.container,
			perc, width, max, min;

		// Set drawing flag
		this.qtip.drawing = 1;

		// If tooltip has a set height/width, just set it... like a boss!
		if(style.height) { tooltip.css(HEIGHT, style.height); }
		if(style.width) { tooltip.css(WIDTH, style.width); }

		// Simulate max/min width if not set width present...
		else {
			// Reset width and add fluid class
			tooltip.css(WIDTH, '').appendTo(this.redrawContainer);

			// Grab our tooltip width (add 1 if odd so we don't get wrapping problems.. huzzah!)
			width = tooltip.width();
			if(width % 2 < 1) { width += 1; }

			// Grab our max/min properties
			max = tooltip.css('maxWidth') || '';
			min = tooltip.css('minWidth') || '';

			// Parse into proper pixel values
			perc = (max + min).indexOf('%') > -1 ? container.width() / 100 : 0;
		max = ((max.indexOf('%') > -1 ? perc : 1) * parseInt(max, 10)) || width;
			min = ((min.indexOf('%') > -1 ? perc : 1) * parseInt(min, 10)) || 0;

			// Determine new dimension size based on max/min/current values
			width = max + min ? Math.min(Math.max(width, min), max) : width;

			// Set the newly calculated width and remvoe fluid class
			tooltip.css(WIDTH, Math.round(width)).appendTo(container);
		}

		// Set drawing flag
		this.drawing = 0;

		return this;
	},

	destroy: function() {
		// Remove iframe
		this.bgiframe && this.bgiframe.remove();

		// Remove bound events
		this.qtip._unbind([window, this.qtip.tooltip], this._ns);
	}
});

IE6 = PLUGINS.ie6 = function(api) {
	// Proceed only if the browser is IE6
	return BROWSER.ie === 6 ? new Ie6(api) : FALSE;
};

IE6.initialize = 'render';

CHECKS.ie6 = {
	'^content|style$': function() {
		this.redraw();
	}
};
;}));
}( window, document ));

/*
 Highcharts JS v9.2.2 (2021-08-24)

 (c) 2009-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict';(function(aa,M){"object"===typeof module&&module.exports?(M["default"]=M,module.exports=aa.document?M(aa):M):"function"===typeof define&&define.amd?define("highcharts/highcharts",function(){return M(aa)}):(aa.Highcharts&&aa.Highcharts.error(16,!0),aa.Highcharts=M(aa))})("undefined"!==typeof window?window:this,function(aa){function M(r,a,C,E){r.hasOwnProperty(a)||(r[a]=E.apply(null,C))}var a={};M(a,"Core/Globals.js",[],function(){var r="undefined"!==typeof aa?aa:"undefined"!==typeof window?
window:{},a;(function(a){a.SVG_NS="http://www.w3.org/2000/svg";a.product="Highcharts";a.version="9.2.2";a.win=r;a.doc=a.win.document;a.svg=a.doc&&a.doc.createElementNS&&!!a.doc.createElementNS(a.SVG_NS,"svg").createSVGRect;a.userAgent=a.win.navigator&&a.win.navigator.userAgent||"";a.isChrome=-1!==a.userAgent.indexOf("Chrome");a.isFirefox=-1!==a.userAgent.indexOf("Firefox");a.isMS=/(edge|msie|trident)/i.test(a.userAgent)&&!a.win.opera;a.isSafari=!a.isChrome&&-1!==a.userAgent.indexOf("Safari");a.isTouchDevice=
/(Mobile|Android|Windows Phone)/.test(a.userAgent);a.isWebKit=-1!==a.userAgent.indexOf("AppleWebKit");a.deg2rad=2*Math.PI/360;a.hasBidiBug=a.isFirefox&&4>parseInt(a.userAgent.split("Firefox/")[1],10);a.hasTouch=!!a.win.TouchEvent;a.marginNames=["plotTop","marginRight","marginBottom","plotLeft"];a.noop=function(){};a.supportsPassiveEvents=function(){var r=!1;if(!a.isMS){var w=Object.defineProperty({},"passive",{get:function(){r=!0}});a.win.addEventListener&&a.win.removeEventListener&&(a.win.addEventListener("testPassive",
a.noop,w),a.win.removeEventListener("testPassive",a.noop,w))}return r}();a.charts=[];a.dateFormats={};a.seriesTypes={};a.symbolSizes={};a.chartCount=0})(a||(a={}));"";return a});M(a,"Core/Utilities.js",[a["Core/Globals.js"]],function(a){function r(b,d,e,p){var y=d?"Highcharts error":"Highcharts warning";32===b&&(b=y+": Deprecated member");var F=m(b),c=F?y+" #"+b+": www.highcharts.com/errors/"+b+"/":b.toString();if("undefined"!==typeof p){var k="";F&&(c+="?");I(p,function(b,K){k+="\n - "+K+": "+b;
F&&(c+=encodeURI(K)+"="+encodeURI(b))});c+=k}B(a,"displayError",{chart:e,code:b,message:c,params:p},function(){if(d)throw Error(c);h.console&&-1===r.messages.indexOf(c)&&console.warn(c)});r.messages.push(c)}function C(b,d){var y={};I(b,function(h,c){if(J(b[c],!0)&&!b.nodeType&&d[c])h=C(b[c],d[c]),Object.keys(h).length&&(y[c]=h);else if(J(b[c])||b[c]!==d[c])y[c]=b[c]});return y}function E(b,d){return parseInt(b,d||10)}function z(b){return"string"===typeof b}function x(b){b=Object.prototype.toString.call(b);
return"[object Array]"===b||"[object Array Iterator]"===b}function J(b,d){return!!b&&"object"===typeof b&&(!d||!x(b))}function u(b){return J(b)&&"number"===typeof b.nodeType}function n(b){var d=b&&b.constructor;return!(!J(b,!0)||u(b)||!d||!d.name||"Object"===d.name)}function m(b){return"number"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinity<b}function g(b){return"undefined"!==typeof b&&null!==b}function c(b,d,h){var y;z(d)?g(h)?b.setAttribute(d,h):b&&b.getAttribute&&((y=b.getAttribute(d))||"class"!==
d||(y=b.getAttribute(d+"Name"))):I(d,function(d,y){b.setAttribute(y,d)});return y}function e(b,d){var y;b||(b={});for(y in d)b[y]=d[y];return b}function l(){for(var b=arguments,d=b.length,h=0;h<d;h++){var c=b[h];if("undefined"!==typeof c&&null!==c)return c}}function f(b,d){a.isMS&&!a.svg&&d&&"undefined"!==typeof d.opacity&&(d.filter="alpha(opacity="+100*d.opacity+")");e(b.style,d)}function v(b,d,h,c,p){b=t.createElement(b);d&&e(b,d);p&&f(b,{padding:"0",border:"none",margin:"0"});h&&f(b,h);c&&c.appendChild(b);
return b}function q(b,d){return parseFloat(b.toPrecision(d||14))}function k(b,d,c){var y=a.getStyle||k;if("width"===d)return d=Math.min(b.offsetWidth,b.scrollWidth),c=b.getBoundingClientRect&&b.getBoundingClientRect().width,c<d&&c>=d-1&&(d=Math.floor(c)),Math.max(0,d-(y(b,"padding-left",!0)||0)-(y(b,"padding-right",!0)||0));if("height"===d)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-(y(b,"padding-top",!0)||0)-(y(b,"padding-bottom",!0)||0));h.getComputedStyle||r(27,!0);if(b=h.getComputedStyle(b,
void 0)){var e=b.getPropertyValue(d);l(c,"opacity"!==d)&&(e=E(e))}return e}function I(b,d,h){for(var y in b)Object.hasOwnProperty.call(b,y)&&d.call(h||b[y],b[y],y,b)}function D(b,d,h){function y(d,H){var K=b.removeEventListener||a.removeEventListenerPolyfill;K&&K.call(b,d,H,!1)}function c(h){var H;if(b.nodeName){if(d){var K={};K[d]=!0}else K=h;I(K,function(b,d){if(h[d])for(H=h[d].length;H--;)y(d,h[d][H].fn)})}}var e="function"===typeof b&&b.prototype||b;if(Object.hasOwnProperty.call(e,"hcEvents")){var p=
e.hcEvents;d?(e=p[d]||[],h?(p[d]=e.filter(function(b){return h!==b.fn}),y(d,h)):(c(p),p[d]=[])):(c(p),delete e.hcEvents)}}function B(b,d,h,c){h=h||{};if(t.createEvent&&(b.dispatchEvent||b.fireEvent&&b!==a)){var y=t.createEvent("Events");y.initEvent(d,!0,!0);h=e(y,h);b.dispatchEvent?b.dispatchEvent(h):b.fireEvent(d,h)}else if(b.hcEvents){h.target||e(h,{preventDefault:function(){h.defaultPrevented=!0},target:b,type:d});y=[];for(var p=b,k=!1;p.hcEvents;)Object.hasOwnProperty.call(p,"hcEvents")&&p.hcEvents[d]&&
(y.length&&(k=!0),y.unshift.apply(y,p.hcEvents[d])),p=Object.getPrototypeOf(p);k&&y.sort(function(b,d){return b.order-d.order});y.forEach(function(d){!1===d.fn.call(b,h)&&h.preventDefault()})}c&&!h.defaultPrevented&&c.call(b,h)}var O=a.charts,t=a.doc,h=a.win;(r||(r={})).messages=[];var d;Math.easeInOutSine=function(b){return-.5*(Math.cos(Math.PI*b)-1)};var b=Array.prototype.find?function(b,d){return b.find(d)}:function(b,d){var h,y=b.length;for(h=0;h<y;h++)if(d(b[h],h))return b[h]};I({map:"map",each:"forEach",
grep:"filter",reduce:"reduce",some:"some"},function(b,d){a[d]=function(h){var y;r(32,!1,void 0,(y={},y["Highcharts."+d]="use Array."+b,y));return Array.prototype[b].apply(h,[].slice.call(arguments,1))}});var p,G=function(){var b=Math.random().toString(36).substring(2,9)+"-",d=0;return function(){return"highcharts-"+(p?"":b)+d++}}();h.jQuery&&(h.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new (a[z(b[0])?b.shift():"Chart"])(this[0],b[0],b[1]),this):O[c(this[0],
"data-highcharts-chart")]});b={addEvent:function(b,d,h,c){void 0===c&&(c={});var y="function"===typeof b&&b.prototype||b;Object.hasOwnProperty.call(y,"hcEvents")||(y.hcEvents={});y=y.hcEvents;a.Point&&b instanceof a.Point&&b.series&&b.series.chart&&(b.series.chart.runTrackerClick=!0);var p=b.addEventListener||a.addEventListenerPolyfill;p&&p.call(b,d,h,a.supportsPassiveEvents?{passive:void 0===c.passive?-1!==d.indexOf("touch"):c.passive,capture:!1}:!1);y[d]||(y[d]=[]);y[d].push({fn:h,order:"number"===
typeof c.order?c.order:Infinity});y[d].sort(function(b,d){return b.order-d.order});return function(){D(b,d,h)}},arrayMax:function(b){for(var d=b.length,h=b[0];d--;)b[d]>h&&(h=b[d]);return h},arrayMin:function(b){for(var d=b.length,h=b[0];d--;)b[d]<h&&(h=b[d]);return h},attr:c,clamp:function(b,d,h){return b>d?b<h?b:h:d},cleanRecursively:C,clearTimeout:function(b){g(b)&&clearTimeout(b)},correctFloat:q,createElement:v,css:f,defined:g,destroyObjectProperties:function(b,d){I(b,function(h,c){h&&h!==d&&
h.destroy&&h.destroy();delete b[c]})},discardElement:function(b){d||(d=v("div"));b&&d.appendChild(b);d.innerHTML=""},erase:function(b,d){for(var h=b.length;h--;)if(b[h]===d){b.splice(h,1);break}},error:r,extend:e,extendClass:function(b,d){var h=function(){};h.prototype=new b;e(h.prototype,d);return h},find:b,fireEvent:B,getMagnitude:function(b){return Math.pow(10,Math.floor(Math.log(b)/Math.LN10))},getNestedProperty:function(b,d){for(b=b.split(".");b.length&&g(d);){var c=b.shift();if("undefined"===
typeof c||"__proto__"===c)return;d=d[c];if(!g(d)||"function"===typeof d||"number"===typeof d.nodeType||d===h)return}return d},getStyle:k,inArray:function(b,d,h){r(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"});return d.indexOf(b,h)},isArray:x,isClass:n,isDOMElement:u,isFunction:function(b){return"function"===typeof b},isNumber:m,isObject:J,isString:z,keys:function(b){r(32,!1,void 0,{"Highcharts.keys":"use Object.keys"});return Object.keys(b)},merge:function(){var b,d=arguments,h={},c=function(b,
d){"object"!==typeof b&&(b={});I(d,function(h,H){"__proto__"!==H&&"constructor"!==H&&(!J(h,!0)||n(h)||u(h)?b[H]=d[H]:b[H]=c(b[H]||{},h))});return b};!0===d[0]&&(h=d[1],d=Array.prototype.slice.call(d,2));var p=d.length;for(b=0;b<p;b++)h=c(h,d[b]);return h},normalizeTickInterval:function(b,d,h,c,p){var e=b;h=l(h,1);var k=b/h;d||(d=p?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===c&&(1===h?d=d.filter(function(b){return 0===b%1}):.1>=h&&(d=[1/h])));for(c=0;c<d.length&&!(e=d[c],p&&e*h>=b||!p&&k<=(d[c]+
(d[c+1]||d[c]))/2);c++);return e=q(e*h,-Math.round(Math.log(.001)/Math.LN10))},objectEach:I,offset:function(b){var d=t.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:b.top+(h.pageYOffset||d.scrollTop)-(d.clientTop||0),left:b.left+(h.pageXOffset||d.scrollLeft)-(d.clientLeft||0),width:b.width,height:b.height}},pad:function(b,d,h){return Array((d||2)+1-String(b).replace("-","").length).join(h||"0")+b},pick:l,pInt:E,relativeLength:function(b,
d,h){return/%$/.test(b)?d*parseFloat(b)/100+(h||0):parseFloat(b)},removeEvent:D,splat:function(b){return x(b)?b:[b]},stableSort:function(b,d){var h=b.length,c,p;for(p=0;p<h;p++)b[p].safeI=p;b.sort(function(b,h){c=d(b,h);return 0===c?b.safeI-h.safeI:c});for(p=0;p<h;p++)delete b[p].safeI},syncTimeout:function(b,d,h){if(0<d)return setTimeout(b,d,h);b.call(0,h);return-1},timeUnits:{millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},uniqueKey:G,useSerialIds:function(b){return p=
l(b,p)},wrap:function(b,d,h){var c=b[d];b[d]=function(){var b=Array.prototype.slice.call(arguments),d=arguments,p=this;p.proceed=function(){c.apply(p,arguments.length?arguments:d)};b.unshift(c);b=h.apply(this,b);p.proceed=null;return b}}};"";return b});M(a,"Core/Color/Palette.js",[],function(){return{colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),backgroundColor:"#ffffff",neutralColor100:"#000000",neutralColor80:"#333333",neutralColor60:"#666666",
neutralColor40:"#999999",neutralColor20:"#cccccc",neutralColor10:"#e6e6e6",neutralColor5:"#f2f2f2",neutralColor3:"#f7f7f7",highlightColor100:"#003399",highlightColor80:"#335cad",highlightColor60:"#6685c2",highlightColor20:"#ccd6eb",highlightColor10:"#e6ebf5",positiveColor:"#06b535",negativeColor:"#f21313"}});M(a,"Core/Chart/ChartDefaults.js",[a["Core/Color/Palette.js"]],function(a){return{panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,
spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},zoomBySingleTouch:!1,width:null,height:null,borderColor:a.highlightColor80,backgroundColor:a.backgroundColor,plotBorderColor:a.neutralColor20}});M(a,"Core/Color/Color.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w){var r=w.isNumber,E=w.merge,z=w.pInt;w=function(){function x(r){this.rgba=[NaN,NaN,NaN,NaN];this.input=r;var u=a.Color;if(u&&u!==x)return new u(r);if(!(this instanceof x))return new x(r);
this.init(r)}x.parse=function(a){return a?new x(a):x.None};x.prototype.init=function(a){var u;if("object"===typeof a&&"undefined"!==typeof a.stops)this.stops=a.stops.map(function(c){return new x(c[1])});else if("string"===typeof a){this.input=a=x.names[a.toLowerCase()]||a;if("#"===a.charAt(0)){var n=a.length;var m=parseInt(a.substr(1),16);7===n?u=[(m&16711680)>>16,(m&65280)>>8,m&255,1]:4===n&&(u=[(m&3840)>>4|(m&3840)>>8,(m&240)>>4|m&240,(m&15)<<4|m&15,1])}if(!u)for(m=x.parsers.length;m--&&!u;){var g=
x.parsers[m];(n=g.regex.exec(a))&&(u=g.parse(n))}}u&&(this.rgba=u)};x.prototype.get=function(a){var u=this.input,n=this.rgba;if("object"===typeof u&&"undefined"!==typeof this.stops){var m=E(u);m.stops=[].slice.call(m.stops);this.stops.forEach(function(g,c){m.stops[c]=[m.stops[c][0],g.get(a)]});return m}return n&&r(n[0])?"rgb"===a||!a&&1===n[3]?"rgb("+n[0]+","+n[1]+","+n[2]+")":"a"===a?""+n[3]:"rgba("+n.join(",")+")":u};x.prototype.brighten=function(a){var u=this.rgba;if(this.stops)this.stops.forEach(function(m){m.brighten(a)});
else if(r(a)&&0!==a)for(var n=0;3>n;n++)u[n]+=z(255*a),0>u[n]&&(u[n]=0),255<u[n]&&(u[n]=255);return this};x.prototype.setOpacity=function(a){this.rgba[3]=a;return this};x.prototype.tweenTo=function(a,u){var n=this.rgba,m=a.rgba;if(!r(n[0])||!r(m[0]))return a.input||"none";a=1!==m[3]||1!==n[3];return(a?"rgba(":"rgb(")+Math.round(m[0]+(n[0]-m[0])*(1-u))+","+Math.round(m[1]+(n[1]-m[1])*(1-u))+","+Math.round(m[2]+(n[2]-m[2])*(1-u))+(a?","+(m[3]+(n[3]-m[3])*(1-u)):"")+")"};x.names={white:"#ffffff",black:"#000000"};
x.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[z(a[1]),z(a[2]),z(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[z(a[1]),z(a[2]),z(a[3]),1]}}];x.None=new x("");return x}();"";return w});M(a,"Core/Time.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w){var r=a.win,E=w.defined,z=w.error,x=w.extend,J=w.isObject,u=w.merge,
n=w.objectEach,m=w.pad,g=w.pick,c=w.splat,e=w.timeUnits,l=a.isSafari&&r.Intl&&r.Intl.DateTimeFormat.prototype.formatRange,f=a.isSafari&&r.Intl&&!r.Intl.DateTimeFormat.prototype.formatRange;w=function(){function v(c){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=r.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(c)}v.prototype.get=function(c,e){if(this.variableTimezone||this.timezoneOffset){var k=e.getTime(),f=k-this.getTimezoneOffset(e);e.setTime(f);c=e["getUTC"+
c]();e.setTime(k);return c}return this.useUTC?e["getUTC"+c]():e["get"+c]()};v.prototype.set=function(c,e,f){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===c||"Seconds"===c||"Minutes"===c&&0===this.getTimezoneOffset(e)%36E5)return e["setUTC"+c](f);var k=this.getTimezoneOffset(e);k=e.getTime()-k;e.setTime(k);e["setUTC"+c](f);c=this.getTimezoneOffset(e);k=e.getTime()+c;return e.setTime(k)}return this.useUTC||l&&"FullYear"===c?e["setUTC"+c](f):e["set"+c](f)};v.prototype.update=function(c){var e=
g(c&&c.useUTC,!0);this.options=c=u(!0,this.options||{},c);this.Date=c.Date||r.Date||Date;this.timezoneOffset=(this.useUTC=e)&&c.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=e&&!(!c.getTimezoneOffset&&!c.timezone)};v.prototype.makeTime=function(c,e,l,v,B,a){if(this.useUTC){var k=this.Date.UTC.apply(0,arguments);var h=this.getTimezoneOffset(k);k+=h;var d=this.getTimezoneOffset(k);h!==d?k+=d-h:h-36E5!==this.getTimezoneOffset(k-36E5)||f||(k-=36E5)}else k=(new this.Date(c,
e,g(l,1),g(v,0),g(B,0),g(a,0))).getTime();return k};v.prototype.timezoneOffsetFunction=function(){var c=this,e=this.options,f=e.moment||r.moment;if(!this.useUTC)return function(c){return 6E4*(new Date(c.toString())).getTimezoneOffset()};if(e.timezone){if(f)return function(c){return 6E4*-f.tz(c,e.timezone).utcOffset()};z(25)}return this.useUTC&&e.getTimezoneOffset?function(c){return 6E4*e.getTimezoneOffset(c.valueOf())}:function(){return 6E4*(c.timezoneOffset||0)}};v.prototype.dateFormat=function(c,
e,f){if(!E(e)||isNaN(e))return a.defaultOptions.lang&&a.defaultOptions.lang.invalidDate||"";c=g(c,"%Y-%m-%d %H:%M:%S");var k=this,l=new this.Date(e),q=this.get("Hours",l),t=this.get("Day",l),h=this.get("Date",l),d=this.get("Month",l),b=this.get("FullYear",l),p=a.defaultOptions.lang,G=p&&p.weekdays,y=p&&p.shortWeekdays;l=x({a:y?y[t]:G[t].substr(0,3),A:G[t],d:m(h),e:m(h,2," "),w:t,b:p.shortMonths[d],B:p.months[d],m:m(d+1),o:d+1,y:b.toString().substr(2,2),Y:b,H:m(q),k:q,I:m(q%12||12),l:q%12||12,M:m(this.get("Minutes",
l)),p:12>q?"AM":"PM",P:12>q?"am":"pm",S:m(l.getSeconds()),L:m(Math.floor(e%1E3),3)},a.dateFormats);n(l,function(b,d){for(;-1!==c.indexOf("%"+d);)c=c.replace("%"+d,"function"===typeof b?b.call(k,e):b)});return f?c.substr(0,1).toUpperCase()+c.substr(1):c};v.prototype.resolveDTLFormat=function(e){return J(e,!0)?e:(e=c(e),{main:e[0],from:e[1],to:e[2]})};v.prototype.getTimeTicks=function(c,k,f,l){var q=this,v=[],t={},h=new q.Date(k),d=c.unitRange,b=c.count||1,p;l=g(l,1);if(E(k)){q.set("Milliseconds",h,
d>=e.second?0:b*Math.floor(q.get("Milliseconds",h)/b));d>=e.second&&q.set("Seconds",h,d>=e.minute?0:b*Math.floor(q.get("Seconds",h)/b));d>=e.minute&&q.set("Minutes",h,d>=e.hour?0:b*Math.floor(q.get("Minutes",h)/b));d>=e.hour&&q.set("Hours",h,d>=e.day?0:b*Math.floor(q.get("Hours",h)/b));d>=e.day&&q.set("Date",h,d>=e.month?1:Math.max(1,b*Math.floor(q.get("Date",h)/b)));if(d>=e.month){q.set("Month",h,d>=e.year?0:b*Math.floor(q.get("Month",h)/b));var G=q.get("FullYear",h)}d>=e.year&&q.set("FullYear",
h,G-G%b);d===e.week&&(G=q.get("Day",h),q.set("Date",h,q.get("Date",h)-G+l+(G<l?-7:0)));G=q.get("FullYear",h);l=q.get("Month",h);var y=q.get("Date",h),a=q.get("Hours",h);k=h.getTime();!q.variableTimezone&&q.useUTC||!E(f)||(p=f-k>4*e.month||q.getTimezoneOffset(k)!==q.getTimezoneOffset(f));k=h.getTime();for(h=1;k<f;)v.push(k),k=d===e.year?q.makeTime(G+h*b,0):d===e.month?q.makeTime(G,l+h*b):!p||d!==e.day&&d!==e.week?p&&d===e.hour&&1<b?q.makeTime(G,l,y,a+h*b):k+d*b:q.makeTime(G,l,y+h*b*(d===e.day?1:7)),
h++;v.push(k);d<=e.hour&&1E4>v.length&&v.forEach(function(b){0===b%18E5&&"000000000"===q.dateFormat("%H%M%S%L",b)&&(t[b]="day")})}v.info=x(c,{higherRanks:t,totalRange:d*b});return v};v.prototype.getDateFormat=function(c,k,f,g){var l=this.dateFormat("%m-%d %H:%M:%S.%L",k),q={millisecond:15,second:12,minute:9,hour:6,day:3},t="millisecond";for(h in e){if(c===e.week&&+this.dateFormat("%w",k)===f&&"00:00:00.000"===l.substr(6)){var h="week";break}if(e[h]>c){h=t;break}if(q[h]&&l.substr(q[h])!=="01-01 00:00:00.000".substr(q[h]))break;
"week"!==h&&(t=h)}if(h)var d=this.resolveDTLFormat(g[h]).main;return d};return v}();"";return w});M(a,"Core/DefaultOptions.js",[a["Core/Chart/ChartDefaults.js"],a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Color/Palette.js"],a["Core/Time.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){w=w.parse;var r=x.merge,u={colors:E.colors,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:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:a,title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},
caption:{margin:15,text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},labels:{style:{position:"absolute",color:E.neutralColor80}},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:E.neutralColor40,borderRadius:0,navigation:{activeColor:E.highlightColor100,inactiveColor:E.neutralColor20},itemStyle:{color:E.neutralColor80,cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},
itemHoverStyle:{color:E.neutralColor100},itemHiddenStyle:{color:E.neutralColor20},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:E.backgroundColor,opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:C.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:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:C.isTouchDevice?25:10,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/>',backgroundColor:w(E.neutralColor3).setOpacity(.85).get(),borderWidth:1,
shadow:!0,stickOnContact:!1,style:{color:E.neutralColor80,cursor:"default",fontSize:"12px",whiteSpace:"nowrap"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:E.neutralColor40,fontSize:"9px"},text:"Highcharts.com"}};u.chart.styledMode=!1;"";var n=new z(r(u.global,u.time));a={defaultOptions:u,defaultTime:n,getOptions:function(){return u},setOptions:function(a){r(!0,u,a);if(a.time||a.global)C.time?
C.time.update(r(u.global,u.time,a.global,a.time)):C.time=n;return u}};"";return a});M(a,"Core/Animation/Fx.js",[a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w,C){var r=a.parse,z=w.win,x=C.isNumber,J=C.objectEach;return function(){function a(a,m,g){this.pos=NaN;this.options=m;this.elem=a;this.prop=g}a.prototype.dSetter=function(){var a=this.paths,m=a&&a[0];a=a&&a[1];var g=this.now||0,c=[];if(1!==g&&m&&a)if(m.length===a.length&&1>g)for(var e=0;e<a.length;e++){for(var l=
m[e],f=a[e],v=[],q=0;q<f.length;q++){var k=l[q],I=f[q];x(k)&&x(I)&&("A"!==f[0]||4!==q&&5!==q)?v[q]=k+g*(I-k):v[q]=I}c.push(v)}else c=a;else c=this.toD||[];this.elem.attr("d",c,void 0,!0)};a.prototype.update=function(){var a=this.elem,m=this.prop,g=this.now,c=this.options.step;if(this[m+"Setter"])this[m+"Setter"]();else a.attr?a.element&&a.attr(m,g,null,!0):a.style[m]=g+this.unit;c&&c.call(a,g,this)};a.prototype.run=function(n,m,g){var c=this,e=c.options,l=function(e){return l.stopped?!1:c.step(e)},
f=z.requestAnimationFrame||function(c){setTimeout(c,13)},v=function(){for(var c=0;c<a.timers.length;c++)a.timers[c]()||a.timers.splice(c--,1);a.timers.length&&f(v)};n!==m||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=n,this.end=m,this.unit=g,this.now=this.start,this.pos=0,l.elem=this.elem,l.prop=this.prop,l()&&1===a.timers.push(l)&&f(v)):(delete e.curAnim[this.prop],e.complete&&0===Object.keys(e.curAnim).length&&e.complete.call(this.elem))};a.prototype.step=function(a){var m=
+new Date,g=this.options,c=this.elem,e=g.complete,l=g.duration,f=g.curAnim;if(c.attr&&!c.element)a=!1;else if(a||m>=l+this.startTime){this.now=this.end;this.pos=1;this.update();var v=f[this.prop]=!0;J(f,function(c){!0!==c&&(v=!1)});v&&e&&e.call(c);a=!1}else this.pos=g.easing((m-this.startTime)/l),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0;return a};a.prototype.initPath=function(a,m,g){function c(c,e){for(;c.length<D;){var f=c[0],h=e[D-c.length];h&&"M"===f[0]&&(c[0]="C"===
h[0]?["C",f[1],f[2],f[1],f[2],f[1],f[2]]:["L",f[1],f[2]]);c.unshift(f);v&&(f=c.pop(),c.push(c[c.length-1],f))}}function e(c,e){for(;c.length<D;)if(e=c[Math.floor(c.length/q)-1].slice(),"C"===e[0]&&(e[1]=e[5],e[2]=e[6]),v){var f=c[Math.floor(c.length/q)].slice();c.splice(c.length/2,0,e,f)}else c.push(e)}var l=a.startX,f=a.endX;g=g.slice();var v=a.isArea,q=v?2:1;m=m&&m.slice();if(!m)return[g,g];if(l&&f&&f.length){for(a=0;a<l.length;a++)if(l[a]===f[0]){var k=a;break}else if(l[0]===f[f.length-l.length+
a]){k=a;var I=!0;break}else if(l[l.length-1]===f[f.length-l.length+a]){k=l.length-a;break}"undefined"===typeof k&&(m=[])}if(m.length&&x(k)){var D=g.length+k*q;I?(c(m,g),e(g,m)):(c(g,m),e(m,g))}return[m,g]};a.prototype.fillSetter=function(){a.prototype.strokeSetter.apply(this,arguments)};a.prototype.strokeSetter=function(){this.elem.attr(this.prop,r(this.start).tweenTo(r(this.end),this.pos),null,!0)};a.timers=[];return a}()});M(a,"Core/Animation/AnimationUtilities.js",[a["Core/Animation/Fx.js"],a["Core/Utilities.js"]],
function(a,w){function r(c){return n(c)?m({duration:500,defer:0},c):{duration:c?500:0,defer:0}}function E(c,g){for(var e=a.timers.length;e--;)a.timers[e].elem!==c||g&&g!==a.timers[e].prop||(a.timers[e].stopped=!0)}var z=w.defined,x=w.getStyle,J=w.isArray,u=w.isNumber,n=w.isObject,m=w.merge,g=w.objectEach,c=w.pick;return{animate:function(c,l,f){var e,q="",k,I;if(!n(f)){var D=arguments;f={duration:D[2],easing:D[3],complete:D[4]}}u(f.duration)||(f.duration=400);f.easing="function"===typeof f.easing?
f.easing:Math[f.easing]||Math.easeInOutSine;f.curAnim=m(l);g(l,function(g,v){E(c,v);I=new a(c,f,v);k=void 0;"d"===v&&J(l.d)?(I.paths=I.initPath(c,c.pathArray,l.d),I.toD=l.d,e=0,k=1):c.attr?e=c.attr(v):(e=parseFloat(x(c,v))||0,"opacity"!==v&&(q="px"));k||(k=g);"string"===typeof k&&k.match("px")&&(k=k.replace(/px/g,""));I.run(e,k,q)})},animObject:r,getDeferredAnimation:function(c,g,f){var e=r(g),a=0,k=0;(f?[f]:c.series).forEach(function(c){c=r(c.options.animation);a=g&&z(g.defer)?e.defer:Math.max(a,
c.duration+c.defer);k=Math.min(e.duration,c.duration)});c.renderer.forExport&&(a=0);return{defer:Math.max(0,a-k),duration:Math.min(a,k)}},setAnimation:function(e,g){g.renderer.globalAnimation=c(e,g.options.chart.animation,!0)},stop:E}});M(a,"Core/Renderer/HTML/AST.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w){var r=a.SVG_NS,E=w.attr,z=w.createElement,x=w.discardElement,J=w.error,u=w.isString,n=w.objectEach,m=w.splat;try{var g=!!(new DOMParser).parseFromString("","text/html")}catch(c){g=
!1}w=function(){function c(c){this.nodes="string"===typeof c?this.parseMarkup(c):c}c.filterUserAttributes=function(e){n(e,function(g,f){var a=!0;-1===c.allowedAttributes.indexOf(f)&&(a=!1);-1!==["background","dynsrc","href","lowsrc","src"].indexOf(f)&&(a=u(g)&&c.allowedReferences.some(function(c){return 0===g.indexOf(c)}));a||(J("Highcharts warning: Invalid attribute '"+f+"' in config"),delete e[f])});return e};c.setElementHTML=function(e,g){e.innerHTML="";g&&(new c(g)).addToDOM(e)};c.prototype.addToDOM=
function(e){function g(e,l){var f;m(e).forEach(function(e){var k=e.tagName,q=e.textContent?a.doc.createTextNode(e.textContent):void 0;if(k)if("#text"===k)var v=q;else if(-1!==c.allowedTags.indexOf(k)){k=a.doc.createElementNS("svg"===k?r:l.namespaceURI||r,k);var m=e.attributes||{};n(e,function(c,h){"tagName"!==h&&"attributes"!==h&&"children"!==h&&"textContent"!==h&&(m[h]=c)});E(k,c.filterUserAttributes(m));q&&k.appendChild(q);g(e.children||[],k);v=k}else J("Highcharts warning: Invalid tagName '"+k+
"' in config");v&&l.appendChild(v);f=v});return f}return g(this.nodes,e)};c.prototype.parseMarkup=function(c){var e=[];c=c.trim();if(g)c=(new DOMParser).parseFromString(c,"text/html");else{var f=z("div");f.innerHTML=c;c={body:f}}var a=function(c,e){var f=c.nodeName.toLowerCase(),k={tagName:f};"#text"===f&&(k.textContent=c.textContent||"");if(f=c.attributes){var g={};[].forEach.call(f,function(c){g[c.name]=c.value});k.attributes=g}if(c.childNodes.length){var l=[];[].forEach.call(c.childNodes,function(c){a(c,
l)});l.length&&(k.children=l)}e.push(k)};[].forEach.call(c.body.childNodes,function(c){return a(c,e)});f&&x(f);return e};c.allowedAttributes="aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align textAnchor textLength type valign width x x1 x2 y y1 y2 zIndex".split(" ");
c.allowedReferences="https:// http:// mailto: / ../ ./ #".split(" ");c.allowedTags="a b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text thead tbody tspan td th tr u ul #text".split(" ");return c}();"";return w});M(a,"Core/FormatUtilities.js",[a["Core/DefaultOptions.js"],
a["Core/Utilities.js"]],function(a,w){function r(a,g,c,e){a=+a||0;g=+g;var l=E.lang,f=(a.toString().split(".")[1]||"").split("e")[0].length,v=a.toString().split("e"),q=g;if(-1===g)g=Math.min(f,20);else if(!J(g))g=2;else if(g&&v[1]&&0>v[1]){var k=g+ +v[1];0<=k?(v[0]=(+v[0]).toExponential(k).split("e")[0],g=k):(v[0]=v[0].split(".")[0]||0,a=20>g?(v[0]*Math.pow(10,v[1])).toFixed(g):0,v[1]=0)}k=(Math.abs(v[1]?v[0]:a)+Math.pow(10,-Math.max(g,f)-1)).toFixed(g);f=String(n(k));var m=3<f.length?f.length%3:
0;c=u(c,l.decimalPoint);e=u(e,l.thousandsSep);a=(0>a?"-":"")+(m?f.substr(0,m)+e:"");a=0>+v[1]&&!q?"0":a+f.substr(m).replace(/(\d{3})(?=\d)/g,"$1"+e);g&&(a+=c+k.slice(-g));v[1]&&0!==+a&&(a+="e"+v[1]);return a}var E=a.defaultOptions,z=a.defaultTime,x=w.getNestedProperty,J=w.isNumber,u=w.pick,n=w.pInt;return{dateFormat:function(a,g,c){return z.dateFormat(a,g,c)},format:function(a,g,c){var e="{",l=!1,f=/f$/,v=/\.([0-9])/,q=E.lang,k=c&&c.time||z;c=c&&c.numberFormatter||r;for(var m=[];a;){var D=a.indexOf(e);
if(-1===D)break;var B=a.slice(0,D);if(l){B=B.split(":");e=x(B.shift()||"",g);if(B.length&&"number"===typeof e)if(B=B.join(":"),f.test(B)){var u=parseInt((B.match(v)||["","-1"])[1],10);null!==e&&(e=c(e,u,q.decimalPoint,-1<B.indexOf(",")?q.thousandsSep:""))}else e=k.dateFormat(B,e);m.push(e)}else m.push(B);a=a.slice(D+1);e=(l=!l)?"}":"{"}m.push(a);return m.join("")},numberFormat:r}});M(a,"Core/Renderer/RendererUtilities.js",[a["Core/Utilities.js"]],function(a){var r=a.clamp,C=a.pick,E=a.stableSort,
z;(function(a){function x(a,n,m){var g=a,c=g.reducedLen||n,e=function(c,e){return(e.rank||0)-(c.rank||0)},l=function(c,e){return c.target-e.target},f,v=!0,q=[],k=0;for(f=a.length;f--;)k+=a[f].size;if(k>c){E(a,e);for(k=f=0;k<=c;)k+=a[f].size,f++;q=a.splice(f-1,a.length)}E(a,l);for(a=a.map(function(c){return{size:c.size,targets:[c.target],align:C(c.align,.5)}});v;){for(f=a.length;f--;)c=a[f],e=(Math.min.apply(0,c.targets)+Math.max.apply(0,c.targets))/2,c.pos=r(e-c.size*c.align,0,n-c.size);f=a.length;
for(v=!1;f--;)0<f&&a[f-1].pos+a[f-1].size>a[f].pos&&(a[f-1].size+=a[f].size,a[f-1].targets=a[f-1].targets.concat(a[f].targets),a[f-1].align=.5,a[f-1].pos+a[f-1].size>n&&(a[f-1].pos=n-a[f-1].size),a.splice(f,1),v=!0)}g.push.apply(g,q);f=0;a.some(function(c){var e=0;return(c.targets||[]).some(function(){g[f].pos=c.pos+e;if("undefined"!==typeof m&&Math.abs(g[f].pos-g[f].target)>m)return g.slice(0,f+1).forEach(function(c){return delete c.pos}),g.reducedLen=(g.reducedLen||n)-.1*n,g.reducedLen>.1*n&&x(g,
n,m),!0;e+=g[f].size;f++;return!1})});E(g,l);return g}a.distribute=x})(z||(z={}));return z});M(a,"Core/Renderer/SVG/SVGElement.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Renderer/HTML/AST.js"],a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Color/Palette.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){var r=a.animate,u=a.animObject,n=a.stop,m=E.deg2rad,g=E.doc,c=E.noop,e=E.svg,l=E.SVG_NS,f=E.win,v=x.addEvent,q=x.attr,k=x.createElement,I=x.css,D=x.defined,B=x.erase,O=x.extend,
t=x.fireEvent,h=x.isArray,d=x.isFunction,b=x.isNumber,p=x.isString,G=x.merge,y=x.objectEach,L=x.pick,F=x.pInt,P=x.syncTimeout,S=x.uniqueKey;a=function(){function a(){this.element=void 0;this.onEvents={};this.opacity=1;this.renderer=void 0;this.SVG_NS=l;this.symbolCustomAttribs="x y width height r start end innerR anchorX anchorY rounded".split(" ")}a.prototype._defaultGetter=function(b){b=L(this[b+"Value"],this[b],this.element?this.element.getAttribute(b):null,0);/^[\-0-9\.]+$/.test(b)&&(b=parseFloat(b));
return b};a.prototype._defaultSetter=function(b,d,c){c.setAttribute(d,b)};a.prototype.add=function(b){var d=this.renderer,c=this.element;b&&(this.parentGroup=b);this.parentInverted=b&&b.inverted;"undefined"!==typeof this.textStr&&"text"===this.element.nodeName&&d.buildText(this);this.added=!0;if(!b||b.handleZ||this.zIndex)var K=this.zIndexSetter();K||(b?b.element:d.box).appendChild(c);if(this.onAdd)this.onAdd();return this};a.prototype.addClass=function(b,d){var c=d?"":this.attr("class")||"";b=(b||
"").split(/ /g).reduce(function(b,d){-1===c.indexOf(d)&&b.push(d);return b},c?[c]:[]).join(" ");b!==c&&this.attr("class",b);return this};a.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};a.prototype.align=function(b,d,c){var K={},h=this.renderer,H=h.alignedObjects,a,e,A;if(b){if(this.alignOptions=b,this.alignByTranslate=d,!c||p(c))this.alignTo=a=c||"renderer",B(H,this),H.push(this),c=void 0}else b=this.alignOptions,d=this.alignByTranslate,a=this.alignTo;
c=L(c,h[a],"scrollablePlotBox"===a?h.plotBox:void 0,h);a=b.align;var f=b.verticalAlign;h=(c.x||0)+(b.x||0);H=(c.y||0)+(b.y||0);"right"===a?e=1:"center"===a&&(e=2);e&&(h+=(c.width-(b.width||0))/e);K[d?"translateX":"x"]=Math.round(h);"bottom"===f?A=1:"middle"===f&&(A=2);A&&(H+=(c.height-(b.height||0))/A);K[d?"translateY":"y"]=Math.round(H);this[this.placed?"animate":"attr"](K);this.placed=!0;this.alignAttr=K;return this};a.prototype.alignSetter=function(b){var d={left:"start",center:"middle",right:"end"};
d[b]&&(this.alignValue=b,this.element.setAttribute("text-anchor",d[b]))};a.prototype.animate=function(b,d,c){var h=this,H=u(L(d,this.renderer.globalAnimation,!0));d=H.defer;L(g.hidden,g.msHidden,g.webkitHidden,!1)&&(H.duration=0);0!==H.duration?(c&&(H.complete=c),P(function(){h.element&&r(h,b,H)},d)):(this.attr(b,void 0,c),y(b,function(b,d){H.step&&H.step.call(this,b,{prop:d,pos:1,elem:this})},this));return this};a.prototype.applyTextOutline=function(b){var d=this.element;-1!==b.indexOf("contrast")&&
(b=b.replace(/contrast/g,this.renderer.getContrast(d.style.fill)));var c=b.split(" ");b=c[c.length-1];if((c=c[0])&&"none"!==c&&E.svg){this.fakeTS=!0;this.ySetter=this.xSetter;c=c.replace(/(^[\d\.]+)(.*?)$/g,function(b,d,c){return 2*Number(d)+c});this.removeTextOutline();var h=g.createElementNS(l,"tspan");q(h,{"class":"highcharts-text-outline",fill:b,stroke:b,"stroke-width":c,"stroke-linejoin":"round"});[].forEach.call(d.childNodes,function(b){var d=b.cloneNode(!0);d.removeAttribute&&["fill","stroke",
"stroke-width","stroke"].forEach(function(b){return d.removeAttribute(b)});h.appendChild(d)});var a=g.createElementNS(l,"tspan");a.textContent="\u200b";["x","y"].forEach(function(b){var c=d.getAttribute(b);c&&a.setAttribute(b,c)});h.appendChild(a);d.insertBefore(h,d.firstChild)}};a.prototype.attr=function(b,d,c,h){var K=this.element,H=this.symbolCustomAttribs,a,e=this,A,p;if("string"===typeof b&&"undefined"!==typeof d){var f=b;b={};b[f]=d}"string"===typeof b?e=(this[b+"Getter"]||this._defaultGetter).call(this,
b,K):(y(b,function(d,c){A=!1;h||n(this,c);this.symbolName&&-1!==H.indexOf(c)&&(a||(this.symbolAttr(b),a=!0),A=!0);!this.rotation||"x"!==c&&"y"!==c||(this.doTransform=!0);A||(p=this[c+"Setter"]||this._defaultSetter,p.call(this,d,c,K),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(c)&&this.updateShadows(c,d,p))},this),this.afterSetters());c&&c.call(this);return e};a.prototype.clip=function(b){return this.attr("clip-path",b?"url("+this.renderer.url+"#"+b.id+
")":"none")};a.prototype.crisp=function(b,d){d=d||b.strokeWidth||0;var c=Math.round(d)%2/2;b.x=Math.floor(b.x||this.x||0)+c;b.y=Math.floor(b.y||this.y||0)+c;b.width=Math.floor((b.width||this.width||0)-2*c);b.height=Math.floor((b.height||this.height||0)-2*c);D(b.strokeWidth)&&(b.strokeWidth=d);return b};a.prototype.complexColor=function(b,d,c){var K=this.renderer,a,H,e,p,A,f,k,g,l,q,v=[],F;t(this.renderer,"complexColor",{args:arguments},function(){b.radialGradient?H="radialGradient":b.linearGradient&&
(H="linearGradient");if(H){e=b[H];A=K.gradients;f=b.stops;l=c.radialReference;h(e)&&(b[H]=e={x1:e[0],y1:e[1],x2:e[2],y2:e[3],gradientUnits:"userSpaceOnUse"});"radialGradient"===H&&l&&!D(e.gradientUnits)&&(p=e,e=G(e,K.getRadialAttr(l,p),{gradientUnits:"userSpaceOnUse"}));y(e,function(b,d){"id"!==d&&v.push(d,b)});y(f,function(b){v.push(b)});v=v.join(",");if(A[v])q=A[v].attr("id");else{e.id=q=S();var N=A[v]=K.createElement(H).attr(e).add(K.defs);N.radAttr=p;N.stops=[];f.forEach(function(b){0===b[1].indexOf("rgba")?
(a=C.parse(b[1]),k=a.get("rgb"),g=a.get("a")):(k=b[1],g=1);b=K.createElement("stop").attr({offset:b[0],"stop-color":k,"stop-opacity":g}).add(N);N.stops.push(b)})}F="url("+K.url+"#"+q+")";c.setAttribute(d,F);c.gradient=v;b.toString=function(){return F}}})};a.prototype.css=function(b){var d=this.styles,c={},h=this.element,a=["textOutline","textOverflow","width"],p="",f=!d;b&&b.color&&(b.fill=b.color);d&&y(b,function(b,h){d&&d[h]!==b&&(c[h]=b,f=!0)});if(f){d&&(b=O(d,c));if(b)if(null===b.width||"auto"===
b.width)delete this.textWidth;else if("text"===h.nodeName.toLowerCase()&&b.width)var k=this.textWidth=F(b.width);this.styles=b;k&&!e&&this.renderer.forExport&&delete b.width;if(h.namespaceURI===this.SVG_NS){var A=function(b,d){return"-"+d.toLowerCase()};y(b,function(b,d){-1===a.indexOf(d)&&(p+=d.replace(/([A-Z])/g,A)+":"+b+";")});p&&q(h,"style",p)}else I(h,b);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),b&&b.textOutline&&this.applyTextOutline(b.textOutline))}return this};
a.prototype.dashstyleSetter=function(b){var d=this["stroke-width"];"inherit"===d&&(d=1);if(b=b&&b.toLowerCase()){var c=b.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=c.length;b--;)c[b]=""+F(c[b])*L(d,NaN);b=c.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",b)}};a.prototype.destroy=
function(){var b=this,d=b.element||{},c=b.renderer,h=d.ownerSVGElement,a=c.isSVG&&"SPAN"===d.nodeName&&b.parentGroup||void 0;d.onclick=d.onmouseout=d.onmouseover=d.onmousemove=d.point=null;n(b);if(b.clipPath&&h){var e=b.clipPath;[].forEach.call(h.querySelectorAll("[clip-path],[CLIP-PATH]"),function(b){-1<b.getAttribute("clip-path").indexOf(e.element.id)&&b.removeAttribute("clip-path")});b.clipPath=e.destroy()}if(b.stops){for(h=0;h<b.stops.length;h++)b.stops[h].destroy();b.stops.length=0;b.stops=void 0}b.safeRemoveChild(d);
for(c.styledMode||b.destroyShadows();a&&a.div&&0===a.div.childNodes.length;)d=a.parentGroup,b.safeRemoveChild(a.div),delete a.div,a=d;b.alignTo&&B(c.alignedObjects,b);y(b,function(d,c){b[c]&&b[c].parentGroup===b&&b[c].destroy&&b[c].destroy();delete b[c]})};a.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(b){this.safeRemoveChild(b)},this);this.shadows=void 0};a.prototype.destroyTextPath=function(b,d){var c=b.getElementsByTagName("text")[0];if(c){if(c.removeAttribute("dx"),
c.removeAttribute("dy"),d.element.setAttribute("id",""),this.textPathWrapper&&c.getElementsByTagName("textPath").length){for(b=this.textPathWrapper.element.childNodes;b.length;)c.appendChild(b[0]);c.removeChild(this.textPathWrapper.element)}}else if(b.getAttribute("dx")||b.getAttribute("dy"))b.removeAttribute("dx"),b.removeAttribute("dy");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};a.prototype.dSetter=function(b,d,c){h(b)&&("string"===typeof b[0]&&(b=this.renderer.pathToSegments(b)),
this.pathArray=b,b=b.reduce(function(b,d,c){return d&&d.join?(c?b+" ":"")+d.join(" "):(d||"").toString()},""));/(NaN| {2}|^$)/.test(b)&&(b="M 0 0");this[d]!==b&&(c.setAttribute(d,b),this[d]=b)};a.prototype.fadeOut=function(b){var d=this;d.animate({opacity:0},{duration:L(b,150),complete:function(){d.attr({y:-9999}).hide()}})};a.prototype.fillSetter=function(b,d,c){"string"===typeof b?c.setAttribute(d,b):b&&this.complexColor(b,d,c)};a.prototype.getBBox=function(b,c){var h=this.renderer,K=this.element,
e=this.styles,p=this.textStr,f=h.cache,k=h.cacheKeys,A=K.namespaceURI===this.SVG_NS;c=L(c,this.rotation,0);var g=h.styledMode?K&&a.prototype.getStyle.call(K,"font-size"):e&&e.fontSize,y;if(D(p)){var G=p.toString();-1===G.indexOf("<")&&(G=G.replace(/[0-9]/g,"0"));G+=["",c,g,this.textWidth,e&&e.textOverflow,e&&e.fontWeight].join()}G&&!b&&(y=f[G]);if(!y){if(A||h.forExport){try{var l=this.fakeTS&&function(b){var d=K.querySelector(".highcharts-text-outline");d&&I(d,{display:b})};d(l)&&l("none");y=K.getBBox?
O({},K.getBBox()):{width:K.offsetWidth,height:K.offsetHeight};d(l)&&l("")}catch(Y){""}if(!y||0>y.width)y={width:0,height:0}}else y=this.htmlGetBBox();h.isSVG&&(b=y.width,h=y.height,A&&(y.height=h={"11px,17":14,"13px,20":16}[e&&e.fontSize+","+Math.round(h)]||h),c&&(e=c*m,y.width=Math.abs(h*Math.sin(e))+Math.abs(b*Math.cos(e)),y.height=Math.abs(h*Math.cos(e))+Math.abs(b*Math.sin(e))));if(G&&(""===p||0<y.height)){for(;250<k.length;)delete f[k.shift()];f[G]||k.push(G);f[G]=y}}return y};a.prototype.getStyle=
function(b){return f.getComputedStyle(this.element||this,"").getPropertyValue(b)};a.prototype.hasClass=function(b){return-1!==(""+this.attr("class")).split(" ").indexOf(b)};a.prototype.hide=function(b){b?this.attr({y:-9999}):this.attr({visibility:"hidden"});return this};a.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};a.prototype.init=function(b,d){this.element="span"===d?k(d):g.createElementNS(this.SVG_NS,d);this.renderer=b;t(this,"afterInit")};a.prototype.invert=function(b){this.inverted=
b;this.updateTransform();return this};a.prototype.on=function(b,d){var c=this.onEvents;if(c[b])c[b]();c[b]=v(this.element,b,d);return this};a.prototype.opacitySetter=function(b,d,c){this.opacity=b=Number(Number(b).toFixed(3));c.setAttribute(d,b)};a.prototype.removeClass=function(b){return this.attr("class",(""+this.attr("class")).replace(p(b)?new RegExp("(^| )"+b+"( |$)"):b," ").replace(/ +/g," ").trim())};a.prototype.removeTextOutline=function(){var b=this.element.querySelector("tspan.highcharts-text-outline");
b&&this.safeRemoveChild(b)};a.prototype.safeRemoveChild=function(b){var d=b.parentNode;d&&d.removeChild(b)};a.prototype.setRadialReference=function(b){var d=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=b;d&&d.radAttr&&d.animate(this.renderer.getRadialAttr(b,d.radAttr));return this};a.prototype.setTextPath=function(d,h){var a=this.element,K=this.text?this.text.element:a,e={textAnchor:"text-anchor"},p=!1,f=this.textPathWrapper,k=!f;h=G(!0,{enabled:!0,
attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},h);var A=w.filterUserAttributes(h.attributes);if(d&&h&&h.enabled){f&&null===f.element.parentNode?(k=!0,f=f.destroy()):f&&this.removeTextOutline.call(f.parentGroup);this.options&&this.options.padding&&(A.dx=-this.options.padding);f||(this.textPathWrapper=f=this.renderer.createElement("textPath"),p=!0);var g=f.element;(h=d.element.getAttribute("id"))||d.element.setAttribute("id",h=S());if(k)for(K.setAttribute("y",0),b(A.dx)&&K.setAttribute("x",
-A.dx),d=[].slice.call(K.childNodes),k=0;k<d.length;k++){var l=d[k];l.nodeType!==Node.TEXT_NODE&&"tspan"!==l.nodeName||g.appendChild(l)}p&&f&&f.add({element:K});g.setAttributeNS("http://www.w3.org/1999/xlink","href",this.renderer.url+"#"+h);D(A.dy)&&(g.parentNode.setAttribute("dy",A.dy),delete A.dy);D(A.dx)&&(g.parentNode.setAttribute("dx",A.dx),delete A.dx);y(A,function(b,d){g.setAttribute(e[d]||d,b)});a.removeAttribute("transform");this.removeTextOutline.call(f);this.text&&!this.renderer.styledMode&&
this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=c}else f&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(a,d),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};a.prototype.shadow=function(b,d,c){var h=[],a=this.element,e=this.oldShadowOptions,H={color:z.neutralColor100,offsetX:this.parentInverted?-1:1,offsetY:this.parentInverted?-1:1,opacity:.15,width:3},
p=!1,A;!0===b?A=H:"object"===typeof b&&(A=O(H,b));A&&(A&&e&&y(A,function(b,d){b!==e[d]&&(p=!0)}),p&&this.destroyShadows(),this.oldShadowOptions=A);if(!A)this.destroyShadows();else if(!this.shadows){var f=A.opacity/A.width;var k=this.parentInverted?"translate("+A.offsetY+", "+A.offsetX+")":"translate("+A.offsetX+", "+A.offsetY+")";for(H=1;H<=A.width;H++){var g=a.cloneNode(!1);var G=2*A.width+1-2*H;q(g,{stroke:b.color||z.neutralColor100,"stroke-opacity":f*H,"stroke-width":G,transform:k,fill:"none"});
g.setAttribute("class",(g.getAttribute("class")||"")+" highcharts-shadow");c&&(q(g,"height",Math.max(q(g,"height")-G,0)),g.cutHeight=G);d?d.element.appendChild(g):a.parentNode&&a.parentNode.insertBefore(g,a);h.push(g)}this.shadows=h}return this};a.prototype.show=function(b){return this.attr({visibility:b?"inherit":"visible"})};a.prototype.strokeSetter=function(b,d,c){this[d]=b;this.stroke&&this["stroke-width"]?(a.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",
this["stroke-width"]),this.hasStroke=!0):"stroke-width"===d&&0===b&&this.hasStroke?(c.removeAttribute("stroke"),this.hasStroke=!1):this.renderer.styledMode&&this["stroke-width"]&&(c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0)};a.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this["stroke-width"]||0;var b=this.getStyle("stroke-width"),d=0;if(b.indexOf("px")===b.length-2)d=F(b);else if(""!==b){var c=g.createElementNS(l,"rect");q(c,{width:b,"stroke-width":0});
this.element.parentNode.appendChild(c);d=c.getBBox().width;c.parentNode.removeChild(c)}return d};a.prototype.symbolAttr=function(b){var d=this;"x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function(c){d[c]=L(b[c],d[c])});d.attr({d:d.renderer.symbols[d.symbolName](d.x,d.y,d.width,d.height,d)})};a.prototype.textSetter=function(b){b!==this.textStr&&(delete this.textPxLength,this.textStr=b,this.added&&this.renderer.buildText(this))};a.prototype.titleSetter=function(b){var d=
this.element,c=d.getElementsByTagName("title")[0]||g.createElementNS(this.SVG_NS,"title");d.insertBefore?d.insertBefore(c,d.firstChild):d.appendChild(c);c.textContent=String(L(b,"")).replace(/<[^>]*>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">")};a.prototype.toFront=function(){var b=this.element;b.parentNode.appendChild(b);return this};a.prototype.translate=function(b,d){return this.attr({translateX:b,translateY:d})};a.prototype.updateShadows=function(b,d,c){var h=this.shadows;if(h)for(var a=h.length;a--;)c.call(h[a],
"height"===b?Math.max(d-(h[a].cutHeight||0),0):"d"===b?this.d:d,b,h[a])};a.prototype.updateTransform=function(){var b=this.scaleX,d=this.scaleY,c=this.inverted,h=this.rotation,a=this.matrix,e=this.element,p=this.translateX||0,f=this.translateY||0;c&&(p+=this.width,f+=this.height);p=["translate("+p+","+f+")"];D(a)&&p.push("matrix("+a.join(",")+")");c?p.push("rotate(90) scale(-1,1)"):h&&p.push("rotate("+h+" "+L(this.rotationOriginX,e.getAttribute("x"),0)+" "+L(this.rotationOriginY,e.getAttribute("y")||
0)+")");(D(b)||D(d))&&p.push("scale("+L(b,1)+" "+L(d,1)+")");p.length&&e.setAttribute("transform",p.join(" "))};a.prototype.visibilitySetter=function(b,d,c){"inherit"===b?c.removeAttribute(d):this[d]!==b&&c.setAttribute(d,b);this[d]=b};a.prototype.xGetter=function(b){"circle"===this.element.nodeName&&("x"===b?b="cx":"y"===b&&(b="cy"));return this._defaultGetter(b)};a.prototype.zIndexSetter=function(b,d){var c=this.renderer,h=this.parentGroup,a=(h||c).element||c.box,e=this.element;c=a===c.box;var p=
!1;var f=this.added;var A;D(b)?(e.setAttribute("data-z-index",b),b=+b,this[d]===b&&(f=!1)):D(this[d])&&e.removeAttribute("data-z-index");this[d]=b;if(f){(b=this.zIndex)&&h&&(h.handleZ=!0);d=a.childNodes;for(A=d.length-1;0<=A&&!p;A--){h=d[A];f=h.getAttribute("data-z-index");var k=!D(f);if(h!==e)if(0>b&&k&&!c&&!A)a.insertBefore(e,d[A]),p=!0;else if(F(f)<=b||k&&(!D(b)||0<=b))a.insertBefore(e,d[A+1]||null),p=!0}p||(a.insertBefore(e,d[c?3:0]||null),p=!0)}return p};return a}();a.prototype["stroke-widthSetter"]=
a.prototype.strokeSetter;a.prototype.yGetter=a.prototype.xGetter;a.prototype.matrixSetter=a.prototype.rotationOriginXSetter=a.prototype.rotationOriginYSetter=a.prototype.rotationSetter=a.prototype.scaleXSetter=a.prototype.scaleYSetter=a.prototype.translateXSetter=a.prototype.translateYSetter=a.prototype.verticalAlignSetter=function(b,d){this[d]=b;this.doTransform=!0};"";return a});M(a,"Core/Renderer/RendererRegistry.js",[a["Core/Globals.js"]],function(a){var r;(function(r){r.rendererTypes={};var w;
r.getRendererType=function(a){void 0===a&&(a=w);return r.rendererTypes[a]||r.rendererTypes[w]};r.registerRendererType=function(C,x,E){r.rendererTypes[C]=x;if(!w||E)w=C,a.Renderer=x}})(r||(r={}));return r});M(a,"Core/Renderer/SVG/SVGLabel.js",[a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,w){var r=this&&this.__extends||function(){var a=function(g,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var e in a)a.hasOwnProperty(e)&&
(c[e]=a[e])};return a(g,c)};return function(g,c){function e(){this.constructor=g}a(g,c);g.prototype=null===c?Object.create(c):(e.prototype=c.prototype,new e)}}(),E=w.defined,z=w.extend,x=w.isNumber,J=w.merge,u=w.pick,n=w.removeEvent;return function(m){function g(c,a,l,f,v,q,k,I,D,B){var e=m.call(this)||this;e.paddingLeftSetter=e.paddingSetter;e.paddingRightSetter=e.paddingSetter;e.init(c,"g");e.textStr=a;e.x=l;e.y=f;e.anchorX=q;e.anchorY=k;e.baseline=D;e.className=B;e.addClass("button"===B?"highcharts-no-tooltip":
"highcharts-label");B&&e.addClass("highcharts-"+B);e.text=c.text(void 0,0,0,I).attr({zIndex:1});var t;"string"===typeof v&&((t=/^url\((.*?)\)$/.test(v))||e.renderer.symbols[v])&&(e.symbolKey=v);e.bBox=g.emptyBBox;e.padding=3;e.baselineOffset=0;e.needsBox=c.styledMode||t;e.deferredAttr={};e.alignFactor=0;return e}r(g,m);g.prototype.alignSetter=function(c){c={left:0,center:.5,right:1}[c];c!==this.alignFactor&&(this.alignFactor=c,this.bBox&&x(this.xSetting)&&this.attr({x:this.xSetting}))};g.prototype.anchorXSetter=
function(c,a){this.anchorX=c;this.boxAttr(a,Math.round(c)-this.getCrispAdjust()-this.xSetting)};g.prototype.anchorYSetter=function(c,a){this.anchorY=c;this.boxAttr(a,c-this.ySetting)};g.prototype.boxAttr=function(c,a){this.box?this.box.attr(c,a):this.deferredAttr[c]=a};g.prototype.css=function(c){if(c){var e={};c=J(c);g.textProps.forEach(function(a){"undefined"!==typeof c[a]&&(e[a]=c[a],delete c[a])});this.text.css(e);var l="width"in e;"fontSize"in e||"fontWeight"in e?this.updateTextPadding():l&&
this.updateBoxSize()}return a.prototype.css.call(this,c)};g.prototype.destroy=function(){n(this.element,"mouseenter");n(this.element,"mouseleave");this.text&&this.text.destroy();this.box&&(this.box=this.box.destroy());a.prototype.destroy.call(this)};g.prototype.fillSetter=function(c,a){c&&(this.needsBox=!0);this.fill=c;this.boxAttr(a,c)};g.prototype.getBBox=function(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();var c=this.padding,a=u(this.paddingLeft,c);return{width:this.width,
height:this.height,x:this.bBox.x-a,y:this.bBox.y-c}};g.prototype.getCrispAdjust=function(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2};g.prototype.heightSetter=function(c){this.heightSetting=c};g.prototype.onAdd=function(){var c=this.textStr;this.text.add(this);this.attr({text:E(c)?c:"",x:this.x,y:this.y});this.box&&E(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})};g.prototype.paddingSetter=
function(c,a){x(c)?c!==this[a]&&(this[a]=c,this.updateTextPadding()):this[a]=void 0};g.prototype.rSetter=function(c,a){this.boxAttr(a,c)};g.prototype.shadow=function(c){c&&!this.renderer.styledMode&&(this.updateBoxSize(),this.box&&this.box.shadow(c));return this};g.prototype.strokeSetter=function(c,a){this.stroke=c;this.boxAttr(a,c)};g.prototype["stroke-widthSetter"]=function(c,a){c&&(this.needsBox=!0);this["stroke-width"]=c;this.boxAttr(a,c)};g.prototype["text-alignSetter"]=function(c){this.textAlign=
c};g.prototype.textSetter=function(c){"undefined"!==typeof c&&this.text.attr({text:c});this.updateTextPadding()};g.prototype.updateBoxSize=function(){var c=this.text.element.style,a={},l=this.padding,f=this.bBox=x(this.widthSetting)&&x(this.heightSetting)&&!this.textAlign||!E(this.text.textStr)?g.emptyBBox:this.text.getBBox();this.width=this.getPaddedWidth();this.height=(this.heightSetting||f.height||0)+2*l;c=this.renderer.fontMetrics(c&&c.fontSize,this.text);this.baselineOffset=l+Math.min((this.text.firstLineMetrics||
c).b,f.height||Infinity);this.heightSetting&&(this.baselineOffset+=(this.heightSetting-c.h)/2);this.needsBox&&(this.box||(l=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),l.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),l.add(this)),l=this.getCrispAdjust(),a.x=l,a.y=(this.baseline?-this.baselineOffset:0)+l,a.width=Math.round(this.width),a.height=Math.round(this.height),this.box.attr(z(a,this.deferredAttr)),
this.deferredAttr={})};g.prototype.updateTextPadding=function(){var c=this.text;this.updateBoxSize();var a=this.baseline?0:this.baselineOffset,g=u(this.paddingLeft,this.padding);E(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(g+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(g!==c.x||a!==c.y)c.attr("x",g),c.hasBoxWidthChanged&&(this.bBox=c.getBBox(!0)),"undefined"!==typeof a&&c.attr("y",a);c.x=g;c.y=a};g.prototype.widthSetter=function(c){this.widthSetting=
x(c)?c:void 0};g.prototype.getPaddedWidth=function(){var c=this.padding,a=u(this.paddingLeft,c);c=u(this.paddingRight,c);return(this.widthSetting||this.bBox.width||0)+a+c};g.prototype.xSetter=function(c){this.x=c;this.alignFactor&&(c-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0);this.xSetting=Math.round(c);this.attr("translateX",this.xSetting)};g.prototype.ySetter=function(c){this.ySetting=this.y=Math.round(c);this.attr("translateY",this.ySetting)};g.emptyBBox={width:0,height:0,
x:0,y:0};g.textProps="color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width".split(" ");return g}(a)});M(a,"Core/Renderer/SVG/Symbols.js",[a["Core/Utilities.js"]],function(a){function r(a,n,m,g,c){var e=[];if(c){var l=c.start||0,f=J(c.r,m);m=J(c.r,g||m);var v=(c.end||0)-.001;g=c.innerR;var q=J(c.open,.001>Math.abs((c.end||0)-l-2*Math.PI)),k=Math.cos(l),I=Math.sin(l),D=Math.cos(v),B=Math.sin(v);l=J(c.longArc,.001>v-l-Math.PI?0:1);
e.push(["M",a+f*k,n+m*I],["A",f,m,0,l,J(c.clockwise,1),a+f*D,n+m*B]);z(g)&&e.push(q?["M",a+g*D,n+g*B]:["L",a+g*D,n+g*B],["A",g,g,0,l,z(c.clockwise)?1-c.clockwise:0,a+g*k,n+g*I]);q||e.push(["Z"])}return e}function C(a,n,m,g,c){return c&&c.r?E(a,n,m,g,c):[["M",a,n],["L",a+m,n],["L",a+m,n+g],["L",a,n+g],["Z"]]}function E(a,n,m,g,c){c=c&&c.r||0;return[["M",a+c,n],["L",a+m-c,n],["C",a+m,n,a+m,n,a+m,n+c],["L",a+m,n+g-c],["C",a+m,n+g,a+m,n+g,a+m-c,n+g],["L",a+c,n+g],["C",a,n+g,a,n+g,a,n+g-c],["L",a,n+c],
["C",a,n,a,n,a+c,n]]}var z=a.defined,x=a.isNumber,J=a.pick;return{arc:r,callout:function(a,n,m,g,c){var e=Math.min(c&&c.r||0,m,g),l=e+6,f=c&&c.anchorX;c=c&&c.anchorY||0;var v=E(a,n,m,g,{r:e});if(!x(f))return v;a+f>=m?c>n+l&&c<n+g-l?v.splice(3,1,["L",a+m,c-6],["L",a+m+6,c],["L",a+m,c+6],["L",a+m,n+g-e]):v.splice(3,1,["L",a+m,g/2],["L",f,c],["L",a+m,g/2],["L",a+m,n+g-e]):0>=a+f?c>n+l&&c<n+g-l?v.splice(7,1,["L",a,c+6],["L",a-6,c],["L",a,c-6],["L",a,n+e]):v.splice(7,1,["L",a,g/2],["L",f,c],["L",a,g/2],
["L",a,n+e]):c&&c>g&&f>a+l&&f<a+m-l?v.splice(5,1,["L",f+6,n+g],["L",f,n+g+6],["L",f-6,n+g],["L",a+e,n+g]):c&&0>c&&f>a+l&&f<a+m-l&&v.splice(1,1,["L",f-6,n],["L",f,n-6],["L",f+6,n],["L",m-e,n]);return v},circle:function(a,n,m,g){return r(a+m/2,n+g/2,m/2,g/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(a,n,m,g){return[["M",a+m/2,n],["L",a+m,n+g/2],["L",a+m/2,n+g],["L",a,n+g/2],["Z"]]},rect:C,roundedRect:E,square:C,triangle:function(a,n,m,g){return[["M",a+m/2,n],["L",a+m,n+g],["L",a,
n+g],["Z"]]},"triangle-down":function(a,n,m,g){return[["M",a,n],["L",a+m,n],["L",a+m/2,n+g],["Z"]]}}});M(a,"Core/Renderer/SVG/TextBuilder.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w,C){var r=w.doc,z=w.SVG_NS,x=C.attr,J=C.isString,u=C.objectEach,n=C.pick;return function(){function m(a){var c=a.styles;this.renderer=a.renderer;this.svgElement=a;this.width=a.textWidth;this.textLineHeight=c&&c.lineHeight;this.textOutline=c&&c.textOutline;this.ellipsis=
!(!c||"ellipsis"!==c.textOverflow);this.noWrap=!(!c||"nowrap"!==c.whiteSpace);this.fontSize=c&&c.fontSize}m.prototype.buildSVG=function(){var g=this.svgElement,c=g.element,e=g.renderer,l=n(g.textStr,"").toString(),f=-1!==l.indexOf("<"),v=c.childNodes;e=this.width&&!g.added&&e.box;var q=/<br.*?>/g,k=[l,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,this.fontSize,this.width].join();if(k!==g.textCache){g.textCache=k;delete g.actualWidth;for(k=v.length;k--;)c.removeChild(v[k]);f||this.ellipsis||
this.width||-1!==l.indexOf(" ")&&(!this.noWrap||q.test(l))?""!==l&&(e&&e.appendChild(c),l=new a(l),this.modifyTree(l.nodes),l.addToDOM(g.element),this.modifyDOM(),this.ellipsis&&-1!==(c.textContent||"").indexOf("\u2026")&&g.attr("title",this.unescapeEntities(g.textStr||"",["&lt;","&gt;"])),e&&e.removeChild(c)):c.appendChild(r.createTextNode(this.unescapeEntities(l)));J(this.textOutline)&&g.applyTextOutline&&g.applyTextOutline(this.textOutline)}};m.prototype.modifyDOM=function(){var a=this,c=this.svgElement,
e=x(c.element,"x");c.firstLineMetrics=void 0;for(var l;l=c.element.firstChild;)if(/^[\s\u200B]*$/.test(l.textContent||" "))c.element.removeChild(l);else break;[].forEach.call(c.element.querySelectorAll("tspan.highcharts-br"),function(f,g){f.nextSibling&&f.previousSibling&&(0===g&&1===f.previousSibling.nodeType&&(c.firstLineMetrics=c.renderer.fontMetrics(void 0,f.previousSibling)),x(f,{dy:a.getLineHeight(f.nextSibling),x:e}))});var f=this.width||0;if(f){var v=function(k,g){var l=k.textContent||"",
q=l.replace(/([^\^])-/g,"$1- ").split(" "),v=!a.noWrap&&(1<q.length||1<c.element.childNodes.length),t=a.getLineHeight(g),h=0,d=c.actualWidth;if(a.ellipsis)l&&a.truncate(k,l,void 0,0,Math.max(0,f-parseInt(a.fontSize||12,10)),function(b,d){return b.substring(0,d)+"\u2026"});else if(v){l=[];for(v=[];g.firstChild&&g.firstChild!==k;)v.push(g.firstChild),g.removeChild(g.firstChild);for(;q.length;)q.length&&!a.noWrap&&0<h&&(l.push(k.textContent||""),k.textContent=q.join(" ").replace(/- /g,"-")),a.truncate(k,
void 0,q,0===h?d||0:0,f,function(b,d){return q.slice(0,d).join(" ").replace(/- /g,"-")}),d=c.actualWidth,h++;v.forEach(function(b){g.insertBefore(b,k)});l.forEach(function(b){g.insertBefore(r.createTextNode(b),k);b=r.createElementNS(z,"tspan");b.textContent="\u200b";x(b,{dy:t,x:e});g.insertBefore(b,k)})}},q=function(a){[].slice.call(a.childNodes).forEach(function(e){e.nodeType===Node.TEXT_NODE?v(e,a):(-1!==e.className.baseVal.indexOf("highcharts-br")&&(c.actualWidth=0),q(e))})};q(c.element)}};m.prototype.getLineHeight=
function(a){var c;a=a.nodeType===Node.TEXT_NODE?a.parentElement:a;this.renderer.styledMode||(c=a&&/(px|em)$/.test(a.style.fontSize)?a.style.fontSize:this.fontSize||this.renderer.style.fontSize||12);return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(c,a||this.svgElement.element).h};m.prototype.modifyTree=function(a){var c=this,e=function(g,f){var l=g.tagName,q=c.renderer.styledMode,k=g.attributes||{};if("b"===l||"strong"===l)q?k["class"]="highcharts-strong":
k.style="font-weight:bold;"+(k.style||"");else if("i"===l||"em"===l)q?k["class"]="highcharts-emphasized":k.style="font-style:italic;"+(k.style||"");J(k.style)&&(k.style=k.style.replace(/(;| |^)color([ :])/,"$1fill$2"));"br"===l&&(k["class"]="highcharts-br",g.textContent="\u200b",(f=a[f+1])&&f.textContent&&(f.textContent=f.textContent.replace(/^ +/gm,"")));"#text"!==l&&"a"!==l&&(g.tagName="tspan");g.attributes=k;g.children&&g.children.filter(function(c){return"#text"!==c.tagName}).forEach(e)};a.forEach(e)};
m.prototype.truncate=function(a,c,e,l,f,v){var g=this.svgElement,k=g.renderer,m=g.rotation,D=[],B=e?1:0,n=(c||e||"").length,t=n,h,d=function(b,d){d=d||b;var h=a.parentNode;if(h&&"undefined"===typeof D[d])if(h.getSubStringLength)try{D[d]=l+h.getSubStringLength(0,e?d+1:d)}catch(L){""}else k.getSpanWidth&&(a.textContent=v(c||e,b),D[d]=l+k.getSpanWidth(g,a));return D[d]};g.rotation=0;var b=d(a.textContent.length);if(l+b>f){for(;B<=n;)t=Math.ceil((B+n)/2),e&&(h=v(e,t)),b=d(t,h&&h.length-1),B===n?B=n+1:
b>f?n=t-1:B=t;0===n?a.textContent="":c&&n===c.length-1||(a.textContent=h||v(c||e,t))}e&&e.splice(0,t);g.actualWidth=b;g.rotation=m};m.prototype.unescapeEntities=function(a,c){u(this.renderer.escapes,function(e,g){c&&-1!==c.indexOf(e)||(a=a.toString().replace(new RegExp(e,"g"),g))});return a};return m}()});M(a,"Core/Renderer/SVG/SVGRenderer.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Color/Palette.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Renderer/SVG/SVGElement.js"],
a["Core/Renderer/SVG/SVGLabel.js"],a["Core/Renderer/SVG/Symbols.js"],a["Core/Renderer/SVG/TextBuilder.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x,J,u,n,m){var g=C.charts,c=C.deg2rad,e=C.doc,l=C.isFirefox,f=C.isMS,v=C.isWebKit,q=C.noop,k=C.SVG_NS,I=C.symbolSizes,D=C.win,B=m.addEvent,r=m.attr,t=m.createElement,h=m.css,d=m.defined,b=m.destroyObjectProperties,p=m.extend,G=m.isArray,y=m.isNumber,L=m.isObject,F=m.isString,P=m.merge,S=m.pick,Q=m.pInt,V=m.uniqueKey,fa;C=function(){function H(b,d,c,
a,h,e,p){this.width=this.url=this.style=this.isSVG=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(b,d,c,a,h,e,p)}H.prototype.init=function(b,d,c,a,p,A,H){var K=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}),f=K.element;H||K.css(this.getStyle(a));b.appendChild(f);r(b,"dir","ltr");-1===b.innerHTML.indexOf("xmlns")&&r(f,"xmlns",this.SVG_NS);this.isSVG=
!0;this.box=f;this.boxWrapper=K;this.alignedObjects=[];this.url=this.getReferenceURL();this.createElement("desc").add().element.appendChild(e.createTextNode("Created with Highcharts 9.2.2"));this.defs=this.createElement("defs").add();this.allowHTML=A;this.forExport=p;this.styledMode=H;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(d,c,!1);var k;l&&b.getBoundingClientRect&&(d=function(){h(b,{left:0,top:0});k=b.getBoundingClientRect();h(b,{left:Math.ceil(k.left)-k.left+
"px",top:Math.ceil(k.top)-k.top+"px"})},d(),this.unSubPixelFix=B(D,"resize",d))};H.prototype.definition=function(b){return(new a([b])).addToDOM(this.defs.element)};H.prototype.getReferenceURL=function(){if((l||v)&&e.getElementsByTagName("base").length){if(!d(fa)){var b=V();b=(new a([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:b},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",
width:8,height:8,"clip-path":"url(#"+b+")",fill:"rgba(0,0,0,0.001)"}}]}])).addToDOM(e.body);h(b,{position:"fixed",top:0,left:0,zIndex:9E5});var c=e.elementFromPoint(6,6);fa="hitme"===(c&&c.id);e.body.removeChild(b)}if(fa)return D.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""};H.prototype.getStyle=function(b){return this.style=p({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},b)};H.prototype.setStyle=
function(b){this.boxWrapper.css(this.getStyle(b))};H.prototype.isHidden=function(){return!this.boxWrapper.getBBox().width};H.prototype.destroy=function(){var d=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();b(this.gradients||{});this.gradients=null;d&&(this.defs=d.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null};H.prototype.createElement=function(b){var d=new this.Element;d.init(this,b);return d};H.prototype.getRadialAttr=function(b,d){return{cx:b[0]-
b[2]/2+(d.cx||0)*b[2],cy:b[1]-b[2]/2+(d.cy||0)*b[2],r:(d.r||0)*b[2]}};H.prototype.buildText=function(b){(new n(b)).buildSVG()};H.prototype.getContrast=function(b){b=w.parse(b).rgba;b[0]*=1;b[1]*=1.2;b[2]*=.5;return 459<b[0]+b[1]+b[2]?"#000000":"#FFFFFF"};H.prototype.button=function(b,d,c,h,e,A,H,k,g,y){var K=this.label(b,d,c,g,void 0,void 0,y,void 0,"button"),G=this.styledMode,l=0,t=e?P(e):{};b=t&&t.style||{};t=a.filterUserAttributes(t);K.attr(P({padding:8,r:2},t));if(!G){t=P({fill:E.neutralColor3,
stroke:E.neutralColor20,"stroke-width":1,style:{color:E.neutralColor80,cursor:"pointer",fontWeight:"normal"}},{style:b},t);var N=t.style;delete t.style;A=P(t,{fill:E.neutralColor10},a.filterUserAttributes(A||{}));var q=A.style;delete A.style;H=P(t,{fill:E.highlightColor10,style:{color:E.neutralColor100,fontWeight:"bold"}},a.filterUserAttributes(H||{}));var v=H.style;delete H.style;k=P(t,{style:{color:E.neutralColor20}},a.filterUserAttributes(k||{}));var F=k.style;delete k.style}B(K.element,f?"mouseover":
"mouseenter",function(){3!==l&&K.setState(1)});B(K.element,f?"mouseout":"mouseleave",function(){3!==l&&K.setState(l)});K.setState=function(b){1!==b&&(K.state=l=b);K.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][b||0]);G||K.attr([t,A,H,k][b||0]).css([N,q,v,F][b||0])};G||K.attr(t).css(p({cursor:"default"},N));return K.on("touchstart",function(b){return b.stopPropagation()}).on("click",function(b){3!==l&&h.call(K,
b)})};H.prototype.crispLine=function(b,c,a){void 0===a&&(a="round");var h=b[0],e=b[1];d(h[1])&&h[1]===e[1]&&(h[1]=e[1]=Math[a](h[1])-c%2/2);d(h[2])&&h[2]===e[2]&&(h[2]=e[2]=Math[a](h[2])+c%2/2);return b};H.prototype.path=function(b){var d=this.styledMode?{}:{fill:"none"};G(b)?d.d=b:L(b)&&p(d,b);return this.createElement("path").attr(d)};H.prototype.circle=function(b,d,c){b=L(b)?b:"undefined"===typeof b?{}:{x:b,y:d,r:c};d=this.createElement("circle");d.xSetter=d.ySetter=function(b,d,c){c.setAttribute("c"+
d,b)};return d.attr(b)};H.prototype.arc=function(b,d,c,a,h,e){L(b)?(a=b,d=a.y,c=a.r,b=a.x):a={innerR:a,start:h,end:e};b=this.symbol("arc",b,d,c,c,a);b.r=c;return b};H.prototype.rect=function(b,d,c,a,h,e){h=L(b)?b.r:h;var p=this.createElement("rect");b=L(b)?b:"undefined"===typeof b?{}:{x:b,y:d,width:Math.max(c,0),height:Math.max(a,0)};this.styledMode||("undefined"!==typeof e&&(b["stroke-width"]=e,b=p.crisp(b)),b.fill="none");h&&(b.r=h);p.rSetter=function(b,d,c){p.r=b;r(c,{rx:b,ry:b})};p.rGetter=function(){return p.r||
0};return p.attr(b)};H.prototype.setSize=function(b,d,c){this.width=b;this.height=d;this.boxWrapper.animate({width:b,height:d},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:S(c,!0)?void 0:0});this.alignElements()};H.prototype.g=function(b){var d=this.createElement("g");return b?d.attr({"class":"highcharts-"+b}):d};H.prototype.image=function(b,d,c,a,h,e){var A={preserveAspectRatio:"none"},H=function(b,d){b.setAttributeNS?b.setAttributeNS("http://www.w3.org/1999/xlink",
"href",d):b.setAttribute("hc-svg-href",d)};1<arguments.length&&p(A,{x:d,y:c,width:a,height:h});var f=this.createElement("image").attr(A);A=function(d){H(f.element,b);e.call(f,d)};if(e){H(f.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");var K=new D.Image;B(K,"load",A);K.src=b;K.complete&&A({})}else H(f.element,b);return f};H.prototype.symbol=function(b,c,a,H,f,A){var K=this,k=/^url\((.*?)\)$/,y=k.test(b),G=!y&&(this.symbols[b]?b:"circle"),l=G&&this.symbols[G],
q;if(l){"number"===typeof c&&(q=l.call(this.symbols,Math.round(c||0),Math.round(a||0),H||0,f||0,A));var v=this.path(q);K.styledMode||v.attr("fill","none");p(v,{symbolName:G||void 0,x:c,y:a,width:H,height:f});A&&p(v,A)}else if(y){var F=b.match(k)[1];var m=v=this.image(F);m.imgwidth=S(I[F]&&I[F].width,A&&A.width);m.imgheight=S(I[F]&&I[F].height,A&&A.height);var L=function(b){return b.attr({width:b.width,height:b.height})};["width","height"].forEach(function(b){m[b+"Setter"]=function(b,c){var a=this["img"+
c];this[c]=b;d(a)&&(A&&"within"===A.backgroundSize&&this.width&&this.height&&(a=Math.round(a*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(c,a),this.alignByTranslate||(b=((this[c]||0)-a)/2,this.attr("width"===c?{translateX:b}:{translateY:b})))}});d(c)&&m.attr({x:c,y:a});m.isImg=!0;d(m.imgwidth)&&d(m.imgheight)?L(m):(m.attr({width:0,height:0}),t("img",{onload:function(){var b=g[K.chartIndex];0===this.width&&(h(this,{position:"absolute",top:"-999em"}),
e.body.appendChild(this));I[F]={width:this.width,height:this.height};m.imgwidth=this.width;m.imgheight=this.height;m.element&&L(m);this.parentNode&&this.parentNode.removeChild(this);K.imgCount--;if(!K.imgCount&&b&&!b.hasLoaded)b.onload()},src:F}),this.imgCount++)}return v};H.prototype.clipRect=function(b,d,c,a){var h=V()+"-",e=this.createElement("clipPath").attr({id:h}).add(this.defs);b=this.rect(b,d,c,a,0).add(e);b.id=h;b.clipPath=e;b.count=0;return b};H.prototype.text=function(b,c,a,h){var e={};
if(h&&(this.allowHTML||!this.forExport))return this.html(b,c,a);e.x=Math.round(c||0);a&&(e.y=Math.round(a));d(b)&&(e.text=b);b=this.createElement("text").attr(e);if(!h||this.forExport&&!this.allowHTML)b.xSetter=function(b,d,c){for(var a=c.getElementsByTagName("tspan"),h=c.getAttribute(d),e=0,p;e<a.length;e++)p=a[e],p.getAttribute(d)===h&&p.setAttribute(d,b);c.setAttribute(d,b)};return b};H.prototype.fontMetrics=function(b,d){b=!this.styledMode&&/px/.test(b)||!D.getComputedStyle?b||d&&d.style&&d.style.fontSize||
this.style&&this.style.fontSize:d&&x.prototype.getStyle.call(d,"font-size");b=/px/.test(b)?Q(b):12;d=24>b?b+3:Math.round(1.2*b);return{h:d,b:Math.round(.8*d),f:b}};H.prototype.rotCorr=function(b,d,a){var h=b;d&&a&&(h=Math.max(h*Math.cos(d*c),4));return{x:-b/3*Math.sin(d*c),y:h}};H.prototype.pathToSegments=function(b){for(var d=[],c=[],a={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},h=0;h<b.length;h++)F(c[0])&&y(b[h])&&c.length===a[c[0].toUpperCase()]&&b.splice(h,0,c[0].replace("M","L").replace("m","l")),
"string"===typeof b[h]&&(c.length&&d.push(c.slice(0)),c.length=0),c.push(b[h]);d.push(c.slice(0));return d};H.prototype.label=function(b,d,c,a,h,e,p,H,f){return new J(this,b,d,c,a,h,e,p,H,f)};H.prototype.alignElements=function(){this.alignedObjects.forEach(function(b){return b.align()})};return H}();p(C.prototype,{Element:x,SVG_NS:k,escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},symbols:u,draw:q});z.registerRendererType("svg",C,!0);"";return C});M(a,"Core/Renderer/HTML/HTMLElement.js",
[a["Core/Globals.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,w,C){var r=this&&this.__extends||function(){var c=function(a,e){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var e in a)a.hasOwnProperty(e)&&(c[e]=a[e])};return c(a,e)};return function(a,e){function f(){this.constructor=a}c(a,e);a.prototype=null===e?Object.create(e):(f.prototype=e.prototype,new f)}}(),z=a.isFirefox,x=a.isMS,J=a.isWebKit,u=a.win,
n=C.css,m=C.defined,g=C.extend,c=C.pick,e=C.pInt;return function(a){function f(){return null!==a&&a.apply(this,arguments)||this}r(f,a);f.compose=function(c){if(-1===f.composedClasses.indexOf(c)){f.composedClasses.push(c);var a=f.prototype,e=c.prototype;e.getSpanCorrection=a.getSpanCorrection;e.htmlCss=a.htmlCss;e.htmlGetBBox=a.htmlGetBBox;e.htmlUpdateTransform=a.htmlUpdateTransform;e.setSpanRotation=a.setSpanRotation}return c};f.prototype.getSpanCorrection=function(c,a,e){this.xCorr=-c*e;this.yCorr=
-a};f.prototype.htmlCss=function(a){var e="SPAN"===this.element.tagName&&a&&"width"in a,f=c(e&&a.width,void 0);if(e){delete a.width;this.textWidth=f;var l=!0}a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=g(this.styles,a);n(this.element,a);l&&this.htmlUpdateTransform();return this};f.prototype.htmlGetBBox=function(){var c=this.element;return{x:c.offsetLeft,y:c.offsetTop,width:c.offsetWidth,height:c.offsetHeight}};f.prototype.htmlUpdateTransform=function(){if(this.added){var c=
this.renderer,a=this.element,f=this.translateX||0,g=this.translateY||0,l=this.x||0,B=this.y||0,r=this.textAlign||"left",t={left:0,center:.5,right:1}[r],h=this.styles;h=h&&h.whiteSpace;n(a,{marginLeft:f,marginTop:g});!c.styledMode&&this.shadows&&this.shadows.forEach(function(b){n(b,{marginLeft:f+1,marginTop:g+1})});this.inverted&&[].forEach.call(a.childNodes,function(b){c.invertChild(b,a)});if("SPAN"===a.tagName){var d=this.rotation,b=this.textWidth&&e(this.textWidth),p=[d,r,a.innerHTML,this.textWidth,
this.textAlign].join(),G=void 0;(G=b!==this.oldTextWidth)&&!(G=b>this.oldTextWidth)&&((G=this.textPxLength)||(n(a,{width:"",whiteSpace:h||"nowrap"}),G=a.offsetWidth),G=G>b);G&&(/[ \-]/.test(a.textContent||a.innerText)||"ellipsis"===a.style.textOverflow)?(n(a,{width:b+"px",display:"block",whiteSpace:h||"normal"}),this.oldTextWidth=b,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;p!==this.cTT&&(G=c.fontMetrics(a.style.fontSize,a).b,!m(d)||d===(this.oldRotation||0)&&r===this.oldAlign||this.setSpanRotation(d,
t,G),this.getSpanCorrection(!m(d)&&this.textPxLength||a.offsetWidth,G,t,d,r));n(a,{left:l+(this.xCorr||0)+"px",top:B+(this.yCorr||0)+"px"});this.cTT=p;this.oldRotation=d;this.oldAlign=r}}else this.alignOnAdd=!0};f.prototype.setSpanRotation=function(c,a,e){var f={},g=x&&!/Edge/.test(u.navigator.userAgent)?"-ms-transform":J?"-webkit-transform":z?"MozTransform":u.opera?"-o-transform":void 0;g&&(f[g]=f.transform="rotate("+c+"deg)",f[g+(z?"Origin":"-origin")]=f.transformOrigin=100*a+"% "+e+"px",n(this.element,
f))};f.composedClasses=[];return f}(w)});M(a,"Core/Renderer/HTML/HTMLRenderer.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=this&&this.__extends||function(){var a=function(g,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(g,c)};return function(g,c){function e(){this.constructor=
g}a(g,c);g.prototype=null===c?Object.create(c):(e.prototype=c.prototype,new e)}}(),x=E.attr,J=E.createElement,u=E.extend,n=E.pick;return function(m){function g(){return null!==m&&m.apply(this,arguments)||this}r(g,m);g.compose=function(c){-1===g.composedClasses.indexOf(c)&&(g.composedClasses.push(c),c.prototype.html=g.prototype.html);return c};g.prototype.html=function(c,e,g){var f=this.createElement("span"),l=f.element,q=f.renderer,k=q.isSVG,m=function(c,a){["opacity","visibility"].forEach(function(e){c[e+
"Setter"]=function(f,h,d){var b=c.div?c.div.style:a;w.prototype[e+"Setter"].call(this,f,h,d);b&&(b[h]=f)}});c.addedSetters=!0};f.textSetter=function(c){c!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,a.setElementHTML(this.element,n(c,"")),this.textStr=c,f.doTransform=!0)};k&&m(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(c,a){"align"===a?f.alignValue=f.textAlign=c:f[a]=c;f.doTransform=!0};f.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),
this.doTransform=!1)};f.attr({text:c,x:Math.round(e),y:Math.round(g)}).css({position:"absolute"});q.styledMode||f.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});l.style.whiteSpace="nowrap";f.css=f.htmlCss;k&&(f.add=function(c){var a=q.box.parentNode,e=[];if(this.parentGroup=c){var g=c.div;if(!g){for(;c;)e.push(c),c=c.parentGroup;e.reverse().forEach(function(c){function d(b,d){c[d]=b;"translateX"===d?k.left=b+"px":k.top=b+"px";c.doTransform=!0}var b=x(c.element,"class"),h=c.styles||
{};g=c.div=c.div||J("div",b?{className:b}:void 0,{position:"absolute",left:(c.translateX||0)+"px",top:(c.translateY||0)+"px",display:c.display,opacity:c.opacity,cursor:h.cursor,pointerEvents:h.pointerEvents,visibility:c.visibility},g||a);var k=g.style;u(c,{classSetter:function(b){return function(d){this.element.setAttribute("class",d);b.className=d}}(g),on:function(){e[0].div&&f.on.apply({element:e[0].div,onEvents:c.onEvents},arguments);return c},translateXSetter:d,translateYSetter:d});c.addedSetters||
m(c)})}}else g=a;g.appendChild(l);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f};g.composedClasses=[];return g}(C)});M(a,"Core/Axis/AxisDefaults.js",[a["Core/Color/Palette.js"]],function(a){var r;(function(r){r.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},
week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:void 0,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,x:0,zIndex:7,style:{color:a.neutralColor60,cursor:"default",fontSize:"11px"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minPadding:.01,offset:void 0,
opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:a.neutralColor60}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:a.neutralColor5,minorGridLineWidth:1,minorTickColor:a.neutralColor40,lineColor:a.highlightColor20,lineWidth:1,gridLineColor:a.neutralColor10,gridLineWidth:void 0,
tickColor:a.highlightColor20};r.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){var a=this.axis.chart.numberFormatter;return a(this.total,-1)},style:{color:a.neutralColor100,fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0};
r.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};r.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};r.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};r.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}}})(r||(r={}));return r});M(a,"Core/Foundation.js",[a["Core/Utilities.js"]],function(a){var r=a.addEvent,C=a.isFunction,E=a.objectEach,z=a.removeEvent;return{registerEventOptions:function(a,w){a.eventOptions=
a.eventOptions||{};E(w.events,function(u,n){a.eventOptions[n]!==u&&(a.eventOptions[n]&&(z(a,n,a.eventOptions[n]),delete a.eventOptions[n]),C(u)&&(a.eventOptions[n]=u,r(a,n,u)))})}}});M(a,"Core/Axis/Tick.js",[a["Core/FormatUtilities.js"],a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,w,C){var r=w.deg2rad,z=C.clamp,x=C.correctFloat,J=C.defined,u=C.destroyObjectProperties,n=C.extend,m=C.fireEvent,g=C.isNumber,c=C.merge,e=C.objectEach,l=C.pick;w=function(){function f(c,a,e,f,g){this.isNewLabel=
this.isNew=!0;this.axis=c;this.pos=a;this.type=e||"";this.parameters=g||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;m(this,"init");e||f||this.addLabel()}f.prototype.addLabel=function(){var c=this,e=c.axis,f=e.options,I=e.chart,D=e.categories,B=e.logarithmic,r=e.names,t=c.pos,h=l(c.options&&c.options.labels,f.labels),d=e.tickPositions,b=t===d[0],p=t===d[d.length-1],G=(!h.step||1===h.step)&&1===e.tickInterval;d=d.info;var y=c.label,L;D=this.parameters.category||
(D?l(D[t],r[t],t):t);B&&g(D)&&(D=x(B.lin2log(D)));if(e.dateTime)if(d){var F=I.time.resolveDTLFormat(f.dateTimeLabelFormats[!f.grid&&d.higherRanks[t]||d.unitName]);var P=F.main}else g(D)&&(P=e.dateTime.getXDateFormat(D,f.dateTimeLabelFormats||{}));c.isFirst=b;c.isLast=p;var S={axis:e,chart:I,dateTimeLabelFormat:P,isFirst:b,isLast:p,pos:t,tick:c,tickPositionInfo:d,value:D};m(this,"labelFormat",S);var Q=function(b){return h.formatter?h.formatter.call(b,b):h.format?(b.text=e.defaultLabelFormatter.call(b),
a.format(h.format,b,I)):e.defaultLabelFormatter.call(b,b)};f=Q.call(S,S);var u=F&&F.list;c.shortenLabel=u?function(){for(L=0;L<u.length;L++)if(n(S,{dateTimeLabelFormat:u[L]}),y.attr({text:Q.call(S,S)}),y.getBBox().width<e.getSlotWidth(c)-2*h.padding)return;y.attr({text:""})}:void 0;G&&e._addedPlotLB&&c.moveLabel(f,h);J(y)||c.movedLabel?y&&y.textStr!==f&&!G&&(!y.textWidth||h.style.width||y.styles.width||y.css({width:null}),y.attr({text:f}),y.textPxLength=y.getBBox().width):(c.label=y=c.createLabel({x:0,
y:0},f,h),c.rotation=0)};f.prototype.createLabel=function(a,e,f){var g=this.axis,k=g.chart;if(a=J(e)&&f.enabled?k.renderer.text(e,a.x,a.y,f.useHTML).add(g.labelGroup):null)k.styledMode||a.css(c(f.style)),a.textPxLength=a.getBBox().width;return a};f.prototype.destroy=function(){u(this,this.axis)};f.prototype.getPosition=function(c,a,e,f){var g=this.axis,k=g.chart,l=f&&k.oldChartHeight||k.chartHeight;c={x:c?x(g.translate(a+e,null,null,f)+g.transB):g.left+g.offset+(g.opposite?(f&&k.oldChartWidth||k.chartWidth)-
g.right-g.left:0),y:c?l-g.bottom+g.offset-(g.opposite?g.height:0):x(l-g.translate(a+e,null,null,f)-g.transB)};c.y=z(c.y,-1E5,1E5);m(this,"afterGetPosition",{pos:c});return c};f.prototype.getLabelPosition=function(c,a,e,f,g,l,n,t){var h=this.axis,d=h.transA,b=h.isLinked&&h.linkedParent?h.linkedParent.reversed:h.reversed,p=h.staggerLines,k=h.tickRotCorr||{x:0,y:0},y=f||h.reserveSpaceDefault?0:-h.labelOffset*("center"===h.labelAlign?.5:1),q={},F=g.y;J(F)||(F=0===h.side?e.rotation?-8:-e.getBBox().height:
2===h.side?k.y+8:Math.cos(e.rotation*r)*(k.y-e.getBBox(!1,0).height/2));c=c+g.x+y+k.x-(l&&f?l*d*(b?-1:1):0);a=a+F-(l&&!f?l*d*(b?1:-1):0);p&&(e=n/(t||1)%p,h.opposite&&(e=p-e-1),a+=h.labelOffset/p*e);q.x=c;q.y=Math.round(a);m(this,"afterGetLabelPosition",{pos:q,tickmarkOffset:l,index:n});return q};f.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0};f.prototype.getMarkPath=function(c,a,e,f,g,l){return l.crispLine([["M",c,a],["L",c+(g?0:-e),
a+(g?e:0)]],f)};f.prototype.handleOverflow=function(c){var a=this.axis,e=a.options.labels,f=c.x,g=a.chart.chartWidth,m=a.chart.spacing,v=l(a.labelLeft,Math.min(a.pos,m[3]));m=l(a.labelRight,Math.max(a.isRadial?0:a.pos+a.len,g-m[1]));var t=this.label,h=this.rotation,d={left:0,center:.5,right:1}[a.labelAlign||t.attr("align")],b=t.getBBox().width,p=a.getSlotWidth(this),G={},y=p,L=1,F;if(h||"justify"!==e.overflow)0>h&&f-d*b<v?F=Math.round(f/Math.cos(h*r)-v):0<h&&f+d*b>m&&(F=Math.round((g-f)/Math.cos(h*
r)));else if(g=f+(1-d)*b,f-d*b<v?y=c.x+y*(1-d)-v:g>m&&(y=m-c.x+y*d,L=-1),y=Math.min(p,y),y<p&&"center"===a.labelAlign&&(c.x+=L*(p-y-d*(p-Math.min(b,y)))),b>y||a.autoRotation&&(t.styles||{}).width)F=y;F&&(this.shortenLabel?this.shortenLabel():(G.width=Math.floor(F)+"px",(e.style||{}).textOverflow||(G.textOverflow="ellipsis"),t.css(G)))};f.prototype.moveLabel=function(c,a){var f=this,g=f.label,l=f.axis,m=l.reversed,q=!1;g&&g.textStr===c?(f.movedLabel=g,q=!0,delete f.label):e(l.ticks,function(a){q||
a.isNew||a===f||!a.label||a.label.textStr!==c||(f.movedLabel=a.label,q=!0,a.labelPos=f.movedLabel.xy,delete a.label)});if(!q&&(f.labelPos||g)){var t=f.labelPos||g.xy;g=l.horiz?m?0:l.width+l.left:t.x;l=l.horiz?t.y:m?l.width+l.left:0;f.movedLabel=f.createLabel({x:g,y:l},c,a);f.movedLabel&&f.movedLabel.attr({opacity:0})}};f.prototype.render=function(a,c,e){var f=this.axis,g=f.horiz,k=this.pos,q=l(this.tickmarkOffset,f.tickmarkOffset);k=this.getPosition(g,k,q,c);q=k.x;var t=k.y;f=g&&q===f.pos+f.len||
!g&&t===f.pos?-1:1;g=l(e,this.label&&this.label.newOpacity,1);e=l(e,1);this.isActive=!0;this.renderGridLine(c,e,f);this.renderMark(k,e,f);this.renderLabel(k,c,g,a);this.isNew=!1;m(this,"afterRender")};f.prototype.renderGridLine=function(c,a,e){var f=this.axis,g=f.options,k={},m=this.pos,t=this.type,h=l(this.tickmarkOffset,f.tickmarkOffset),d=f.chart.renderer,b=this.gridLine,p=g.gridLineWidth,G=g.gridLineColor,y=g.gridLineDashStyle;"minor"===this.type&&(p=g.minorGridLineWidth,G=g.minorGridLineColor,
y=g.minorGridLineDashStyle);b||(f.chart.styledMode||(k.stroke=G,k["stroke-width"]=p||0,k.dashstyle=y),t||(k.zIndex=1),c&&(a=0),this.gridLine=b=d.path().attr(k).addClass("highcharts-"+(t?t+"-":"")+"grid-line").add(f.gridGroup));if(b&&(e=f.getPlotLinePath({value:m+h,lineWidth:b.strokeWidth()*e,force:"pass",old:c})))b[c||this.isNew?"attr":"animate"]({d:e,opacity:a})};f.prototype.renderMark=function(c,a,e){var f=this.axis,g=f.options,k=f.chart.renderer,m=this.type,t=f.tickSize(m?m+"Tick":"tick"),h=c.x;
c=c.y;var d=l(g["minor"!==m?"tickWidth":"minorTickWidth"],!m&&f.isXAxis?1:0);g=g["minor"!==m?"tickColor":"minorTickColor"];var b=this.mark,p=!b;t&&(f.opposite&&(t[0]=-t[0]),b||(this.mark=b=k.path().addClass("highcharts-"+(m?m+"-":"")+"tick").add(f.axisGroup),f.chart.styledMode||b.attr({stroke:g,"stroke-width":d})),b[p?"attr":"animate"]({d:this.getMarkPath(h,c,t[0],b.strokeWidth()*e,f.horiz,k),opacity:a}))};f.prototype.renderLabel=function(c,a,e,f){var k=this.axis,m=k.horiz,q=k.options,t=this.label,
h=q.labels,d=h.step;k=l(this.tickmarkOffset,k.tickmarkOffset);var b=c.x;c=c.y;var p=!0;t&&g(b)&&(t.xy=c=this.getLabelPosition(b,c,t,m,h,k,f,d),this.isFirst&&!this.isLast&&!q.showFirstLabel||this.isLast&&!this.isFirst&&!q.showLastLabel?p=!1:!m||h.step||h.rotation||a||0===e||this.handleOverflow(c),d&&f%d&&(p=!1),p&&g(c.y)?(c.opacity=e,t[this.isNewLabel?"attr":"animate"](c),this.isNewLabel=!1):(t.attr("y",-9999),this.isNewLabel=!0))};f.prototype.replaceMovedLabel=function(){var c=this.label,a=this.axis,
e=a.reversed;if(c&&!this.isNew){var f=a.horiz?e?a.left:a.width+a.left:c.xy.x;e=a.horiz?c.xy.y:e?a.width+a.top:a.top;c.animate({x:f,y:e,opacity:0},void 0,c.destroy);delete this.label}a.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return f}();"";return w});M(a,"Core/Axis/Axis.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/AxisDefaults.js"],a["Core/Color/Color.js"],a["Core/Color/Palette.js"],a["Core/DefaultOptions.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Axis/Tick.js"],
a["Core/Utilities.js"]],function(a,w,C,E,z,x,J,u,n){var m=a.animObject,g=z.defaultOptions,c=x.registerEventOptions,e=J.deg2rad,l=n.arrayMax,f=n.arrayMin,v=n.clamp,q=n.correctFloat,k=n.defined,r=n.destroyObjectProperties,D=n.erase,B=n.error,O=n.extend,t=n.fireEvent,h=n.getMagnitude,d=n.isArray,b=n.isNumber,p=n.isString,G=n.merge,y=n.normalizeTickInterval,L=n.objectEach,F=n.pick,P=n.relativeLength,S=n.removeEvent,Q=n.splat,V=n.syncTimeout;a=function(){function a(b,a){this.zoomEnabled=this.width=this.visible=
this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=
this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(b,a)}a.prototype.init=function(a,d){var h=d.isX;this.chart=a;this.horiz=a.inverted&&!this.isZAxis?!h:h;this.isXAxis=h;this.coll=this.coll||(h?"xAxis":"yAxis");t(this,"init",{userOptions:d});this.opposite=F(d.opposite,this.opposite);this.side=F(d.side,this.side,this.horiz?
this.opposite?0:2:this.opposite?1:3);this.setOptions(d);var e=this.options,f=e.labels,p=e.type;this.userOptions=d;this.minPixelPadding=0;this.reversed=F(e.reversed,this.reversed);this.visible=e.visible;this.zoomEnabled=e.zoomEnabled;this.hasNames="category"===p||!0===e.categories;this.categories=e.categories||this.hasNames;this.names||(this.names=[],this.names.keys={});this.plotLinesAndBandsGroups={};this.positiveValuesOnly=!!this.logarithmic;this.isLinked=k(e.linkedTo);this.ticks={};this.labelEdge=
[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=e.minRange||e.maxZoom;this.range=e.range;this.offset=e.offset||0;this.min=this.max=null;d=F(e.crosshair,Q(a.options.tooltip.crosshairs)[h?0:1]);this.crosshair=!0===d?{}:d;-1===a.axes.indexOf(this)&&(h?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&!this.isZAxis&&h&&"undefined"===typeof this.reversed&&(this.reversed=
!0);this.labelRotation=b(f.rotation)?f.rotation:void 0;c(this,e);t(this,"afterInit")};a.prototype.setOptions=function(b){this.options=G(w.defaultXAxisOptions,"yAxis"===this.coll&&w.defaultYAxisOptions,[w.defaultTopAxisOptions,w.defaultRightAxisOptions,w.defaultBottomAxisOptions,w.defaultLeftAxisOptions][this.side],G(g[this.coll],b));t(this,"afterSetOptions",{userOptions:b})};a.prototype.defaultLabelFormatter=function(a){var d=this.axis;a=this.chart.numberFormatter;var c=b(this.value)?this.value:NaN,
e=d.chart.time,h=this.dateTimeLabelFormat,f=g.lang,p=f.numericSymbols;f=f.numericSymbolMagnitude||1E3;var H=d.logarithmic?Math.abs(c):d.tickInterval,y=p&&p.length;if(d.categories)var k=""+this.value;else if(h)k=e.dateFormat(h,c);else if(y&&1E3<=H)for(;y--&&"undefined"===typeof k;)d=Math.pow(f,y+1),H>=d&&0===10*c%d&&null!==p[y]&&0!==c&&(k=a(c/d,-1)+p[y]);"undefined"===typeof k&&(k=1E4<=Math.abs(c)?a(c,-1):a(c,-1,void 0,""));return k};a.prototype.getSeriesExtremes=function(){var a=this,d=a.chart,c;
t(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.stacking&&a.stacking.buildStacks();a.series.forEach(function(e){if(e.visible||!d.options.chart.ignoreHiddenSeries){var h=e.options,f=h.threshold;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=f&&(f=null);if(a.isXAxis){if(h=e.xData,h.length){h=a.logarithmic?h.filter(a.validatePositiveValue):h;c=e.getXExtremes(h);var p=c.min;var g=c.max;b(p)||p instanceof Date||(h=h.filter(b),
c=e.getXExtremes(h),p=c.min,g=c.max);h.length&&(a.dataMin=Math.min(F(a.dataMin,p),p),a.dataMax=Math.max(F(a.dataMax,g),g))}}else if(e=e.applyExtremes(),b(e.dataMin)&&(p=e.dataMin,a.dataMin=Math.min(F(a.dataMin,p),p)),b(e.dataMax)&&(g=e.dataMax,a.dataMax=Math.max(F(a.dataMax,g),g)),k(f)&&(a.threshold=f),!h.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});t(this,"afterGetSeriesExtremes")};a.prototype.translate=function(a,d,c,e,h,f){var p=this.linkedParent||this,g=e&&p.old?p.old.min:p.min,
H=p.minPixelPadding;h=(p.isOrdinal||p.brokenAxis&&p.brokenAxis.hasBreaks||p.logarithmic&&h)&&p.lin2val;var K=1,y=0;e=e&&p.old?p.old.transA:p.transA;e||(e=p.transA);c&&(K*=-1,y=p.len);p.reversed&&(K*=-1,y-=K*(p.sector||p.len));d?(a=(a*K+y-H)/e+g,h&&(a=p.lin2val(a))):(h&&(a=p.val2lin(a)),a=b(g)?K*(a-g)*e+y+K*H+(b(f)?e*f:0):void 0);return a};a.prototype.toPixels=function(b,a){return this.translate(b,!1,!this.horiz,null,!0)+(a?0:this.pos)};a.prototype.toValue=function(b,a){return this.translate(b-(a?
0:this.pos),!0,!this.horiz,null,!0)};a.prototype.getPlotLinePath=function(a){function d(b,a,d){if("pass"!==m&&b<a||b>d)m?b=v(b,a,d):r=!0;return b}var c=this,e=c.chart,h=c.left,f=c.top,p=a.old,g=a.value,H=a.lineWidth,y=p&&e.oldChartHeight||e.chartHeight,k=p&&e.oldChartWidth||e.chartWidth,G=c.transB,l=a.translatedValue,m=a.force,L,q,n,B,r;a={value:g,lineWidth:H,old:p,force:m,acrossPanes:a.acrossPanes,translatedValue:l};t(this,"getPlotLinePath",a,function(a){l=F(l,c.translate(g,null,null,p));l=v(l,-1E5,
1E5);L=n=Math.round(l+G);q=B=Math.round(y-l-G);b(l)?c.horiz?(q=f,B=y-c.bottom,L=n=d(L,h,h+c.width)):(L=h,n=k-c.right,q=B=d(q,f,f+c.height)):(r=!0,m=!1);a.path=r&&!m?null:e.renderer.crispLine([["M",L,q],["L",n,B]],H||1)});return a.path};a.prototype.getLinearTickPositions=function(b,a,d){var c=q(Math.floor(a/b)*b);d=q(Math.ceil(d/b)*b);var e=[],h;q(c+b)===c&&(h=20);if(this.single)return[a];for(a=c;a<=d;){e.push(a);a=q(a+b,h);if(a===f)break;var f=a}return e};a.prototype.getMinorTickInterval=function(){var b=
this.options;return!0===b.minorTicks?F(b.minorTickInterval,"auto"):!1===b.minorTicks?null:b.minorTickInterval};a.prototype.getMinorTickPositions=function(){var b=this.options,a=this.tickPositions,d=this.minorTickInterval,c=this.pointRangePadding||0,e=this.min-c;c=this.max+c;var h=c-e,f=[];if(h&&h/d<this.len/3){var p=this.logarithmic;if(p)this.paddedTicks.forEach(function(b,a,c){a&&f.push.apply(f,p.getLogTickPositions(d,c[a-1],c[a],!0))});else if(this.dateTime&&"auto"===this.getMinorTickInterval())f=
f.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(d),e,c,b.startOfWeek));else for(b=e+(a[0]-e)%d;b<=c&&b!==f[0];b+=d)f.push(b)}0!==f.length&&this.trimTicks(f);return f};a.prototype.adjustForMinRange=function(){var b=this.options,a=this.logarithmic,d=this.min,c=this.max,e=0,h,p,g,y;this.isXAxis&&"undefined"===typeof this.minRange&&!a&&(k(b.min)||k(b.max)?this.minRange=null:(this.series.forEach(function(b){g=b.xData;y=b.xIncrement?1:g.length-1;if(1<g.length)for(h=y;0<h;h--)if(p=g[h]-
g[h-1],!e||p<e)e=p}),this.minRange=Math.min(5*e,this.dataMax-this.dataMin)));if(c-d<this.minRange){var G=this.dataMax-this.dataMin>=this.minRange;var t=this.minRange;var m=(t-c+d)/2;m=[d-m,F(b.min,d-m)];G&&(m[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);d=l(m);c=[d+t,F(b.max,d+t)];G&&(c[2]=a?a.log2lin(this.dataMax):this.dataMax);c=f(c);c-d<t&&(m[0]=c-t,m[1]=F(b.min,c-t),d=l(m))}this.min=d;this.max=c};a.prototype.getClosest=function(){var b;this.categories?b=1:this.series.forEach(function(a){var d=
a.closestPointRange,c=a.visible||!a.chart.options.chart.ignoreHiddenSeries;!a.noSharedTooltip&&k(d)&&c&&(b=k(b)?Math.min(b,d):d)});return b};a.prototype.nameToX=function(b){var a=d(this.categories),c=a?this.categories:this.names,e=b.options.x;b.series.requireSorting=!1;k(e)||(e=this.options.uniqueNames?a?c.indexOf(b.name):F(c.keys[b.name],-1):b.series.autoIncrement());if(-1===e){if(!a)var h=c.length}else h=e;"undefined"!==typeof h&&(this.names[h]=b.name,this.names.keys[b.name]=h);return h};a.prototype.updateNames=
function(){var b=this,a=this.names;0<a.length&&(Object.keys(a.keys).forEach(function(b){delete a.keys[b]}),a.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)b.max=Math.max(b.max,a.xData.length-1),a.processData(),a.generatePoints();a.data.forEach(function(d,c){if(d&&d.options&&"undefined"!==typeof d.name){var e=b.nameToX(d);"undefined"!==typeof e&&e!==d.x&&(d.x=e,a.xData[c]=e)}})}))};a.prototype.setAxisTranslation=function(){var b=
this,a=b.max-b.min,d=b.linkedParent,c=!!b.categories,e=b.isXAxis,h=b.axisPointRange||0,f=0,g=0,y=b.transA;if(e||c||h){var k=b.getClosest();d?(f=d.minPointOffset,g=d.pointRangePadding):b.series.forEach(function(a){var d=c?1:e?F(a.options.pointRange,k,0):b.axisPointRange||0,A=a.options.pointPlacement;h=Math.max(h,d);if(!b.single||c)a=a.is("xrange")?!e:e,f=Math.max(f,a&&p(A)?0:d/2),g=Math.max(g,a&&"on"===A?0:d)});d=b.ordinal&&b.ordinal.slope&&k?b.ordinal.slope/k:1;b.minPointOffset=f*=d;b.pointRangePadding=
g*=d;b.pointRange=Math.min(h,b.single&&c?1:a);e&&(b.closestPointRange=k)}b.translationSlope=b.transA=y=b.staticScale||b.len/(a+g||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=y*f;t(this,"afterSetAxisTranslation")};a.prototype.minFromRange=function(){return this.max-this.range};a.prototype.setTickInterval=function(a){var d=this,c=d.chart,e=d.logarithmic,f=d.options,p=d.isXAxis,g=d.isLinked,l=f.tickPixelInterval,G=d.categories,H=d.softThreshold,m=f.maxPadding,L=f.minPadding,n=f.tickInterval,
v=b(d.threshold)?d.threshold:null;d.dateTime||G||g||this.getTickAmount();var r=F(d.userMin,f.min);var P=F(d.userMax,f.max);if(g){d.linkedParent=c[d.coll][f.linkedTo];var D=d.linkedParent.getExtremes();d.min=F(D.min,D.dataMin);d.max=F(D.max,D.dataMax);f.type!==d.linkedParent.options.type&&B(11,1,c)}else{if(H&&k(v))if(d.dataMin>=v)D=v,L=0;else if(d.dataMax<=v){var I=v;m=0}d.min=F(r,D,d.dataMin);d.max=F(P,I,d.dataMax)}e&&(d.positiveValuesOnly&&!a&&0>=Math.min(d.min,F(d.dataMin,d.min))&&B(10,1,c),d.min=
q(e.log2lin(d.min),16),d.max=q(e.log2lin(d.max),16));d.range&&k(d.max)&&(d.userMin=d.min=r=Math.max(d.dataMin,d.minFromRange()),d.userMax=P=d.max,d.range=null);t(d,"foundExtremes");d.beforePadding&&d.beforePadding();d.adjustForMinRange();!(G||d.axisPointRange||d.stacking&&d.stacking.usePercentage||g)&&k(d.min)&&k(d.max)&&(c=d.max-d.min)&&(!k(r)&&L&&(d.min-=c*L),!k(P)&&m&&(d.max+=c*m));b(d.userMin)||(b(f.softMin)&&f.softMin<d.min&&(d.min=r=f.softMin),b(f.floor)&&(d.min=Math.max(d.min,f.floor)));b(d.userMax)||
(b(f.softMax)&&f.softMax>d.max&&(d.max=P=f.softMax),b(f.ceiling)&&(d.max=Math.min(d.max,f.ceiling)));H&&k(d.dataMin)&&(v=v||0,!k(r)&&d.min<v&&d.dataMin>=v?d.min=d.options.minRange?Math.min(v,d.max-d.minRange):v:!k(P)&&d.max>v&&d.dataMax<=v&&(d.max=d.options.minRange?Math.max(v,d.min+d.minRange):v));b(d.min)&&b(d.max)&&!this.chart.polar&&d.min>d.max&&(k(d.options.min)?d.max=d.min:k(d.options.max)&&(d.min=d.max));d.tickInterval=d.min===d.max||"undefined"===typeof d.min||"undefined"===typeof d.max?1:
g&&d.linkedParent&&!n&&l===d.linkedParent.options.tickPixelInterval?n=d.linkedParent.tickInterval:F(n,this.tickAmount?(d.max-d.min)/Math.max(this.tickAmount-1,1):void 0,G?1:(d.max-d.min)*l/Math.max(d.len,l));p&&!a&&(d.series.forEach(function(b){b.forceCrop=b.forceCropping&&b.forceCropping();b.processData(d.min!==(d.old&&d.old.min)||d.max!==(d.old&&d.old.max))}),t(this,"postProcessData"));d.setAxisTranslation();t(this,"initialAxisTranslation");d.pointRange&&!n&&(d.tickInterval=Math.max(d.pointRange,
d.tickInterval));a=F(f.minTickInterval,d.dateTime&&!d.series.some(function(b){return b.noSharedTooltip})?d.closestPointRange:0);!n&&d.tickInterval<a&&(d.tickInterval=a);d.dateTime||d.logarithmic||n||(d.tickInterval=y(d.tickInterval,void 0,h(d.tickInterval),F(f.allowDecimals,.5>d.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(d.tickInterval=d.unsquish());this.setTickPositions()};a.prototype.setTickPositions=function(){var b=this.options,d=b.tickPositions,a=this.getMinorTickInterval(),
c=this.hasVerticalPanning(),e="colorAxis"===this.coll,h=(e||!c)&&b.startOnTick;c=(e||!c)&&b.endOnTick;e=b.tickPositioner;this.tickmarkOffset=this.categories&&"between"===b.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a&&this.tickInterval?this.tickInterval/5:a;this.single=this.min===this.max&&k(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==b.allowDecimals);this.tickPositions=a=d&&d.slice();!a&&(this.ordinal&&this.ordinal.positions||!((this.max-
this.min)/this.tickInterval>Math.max(2*this.len,200))?a=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,b.units),this.min,this.max,b.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(a=[this.min,this.max],B(19,!1,this.chart)),a.length>this.len&&(a=[a[0],a.pop()],a[0]===a[1]&&
(a.length=1)),this.tickPositions=a,e&&(e=e.apply(this,[this.min,this.max])))&&(this.tickPositions=a=e);this.paddedTicks=a.slice(0);this.trimTicks(a,h,c);this.isLinked||(this.single&&2>a.length&&!this.categories&&!this.series.some(function(b){return b.is("heatmap")&&"between"===b.options.pointPlacement})&&(this.min-=.5,this.max+=.5),d||e||this.adjustTickAmount());t(this,"afterSetTickPositions")};a.prototype.trimTicks=function(b,d,a){var c=b[0],e=b[b.length-1],h=!this.isOrdinal&&this.minPointOffset||
0;t(this,"trimTicks");if(!this.isLinked){if(d&&-Infinity!==c)this.min=c;else for(;this.min-h>b[0];)b.shift();if(a)this.max=e;else for(;this.max+h<b[b.length-1];)b.pop();0===b.length&&k(c)&&!this.options.tickPositions&&b.push((e+c)/2)}};a.prototype.alignToOthers=function(){var b={},d=this.options,a;!1!==this.chart.options.chart.alignTicks&&d.alignTicks&&!1!==d.startOnTick&&!1!==d.endOnTick&&!this.logarithmic&&this.chart[this.coll].forEach(function(d){var c=d.options;c=[d.horiz?c.left:c.top,c.width,
c.height,c.pane].join();d.series.length&&(b[c]?a=!0:b[c]=1)});return a};a.prototype.getTickAmount=function(){var b=this.options,d=b.tickPixelInterval,a=b.tickAmount;!k(b.tickInterval)&&!a&&this.len<d&&!this.isRadial&&!this.logarithmic&&b.startOnTick&&b.endOnTick&&(a=2);!a&&this.alignToOthers()&&(a=Math.ceil(this.len/d)+1);4>a&&(this.finalTickAmt=a,a=5);this.tickAmount=a};a.prototype.adjustTickAmount=function(){var d=this.options,a=this.tickInterval,c=this.tickPositions,e=this.tickAmount,h=this.finalTickAmt,
f=c&&c.length,p=F(this.threshold,this.softThreshold?0:null);if(this.hasData()&&b(this.min)&&b(this.max)){if(f<e){for(;c.length<e;)c.length%2||this.min===p?c.push(q(c[c.length-1]+a)):c.unshift(q(c[0]-a));this.transA*=(f-1)/(e-1);this.min=d.startOnTick?c[0]:Math.min(this.min,c[0]);this.max=d.endOnTick?c[c.length-1]:Math.max(this.max,c[c.length-1])}else f>e&&(this.tickInterval*=2,this.setTickPositions());if(k(h)){for(a=d=c.length;a--;)(3===h&&1===a%2||2>=h&&0<a&&a<d-1)&&c.splice(a,1);this.finalTickAmt=
void 0}}};a.prototype.setScale=function(){var b=!1,d=!1;this.series.forEach(function(a){b=b||a.isDirtyData||a.isDirty;d=d||a.xAxis&&a.xAxis.isDirty||!1});this.setAxisSize();var a=this.len!==(this.old&&this.old.len);a||b||d||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.isDirty||(this.isDirty=
a||this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max))):this.stacking&&this.stacking.cleanStacks();b&&this.panningState&&(this.panningState.isDirty=!0);t(this,"afterSetScale")};a.prototype.setExtremes=function(b,d,a,c,e){var h=this,f=h.chart;a=F(a,!0);h.series.forEach(function(b){delete b.kdTree});e=O(e,{min:b,max:d});t(h,"setExtremes",e,function(){h.userMin=b;h.userMax=d;h.eventArgs=e;a&&f.redraw(c)})};a.prototype.zoom=function(b,d){var a=this,c=this.dataMin,e=this.dataMax,
h=this.options,f=Math.min(c,F(h.min,c)),p=Math.max(e,F(h.max,e));b={newMin:b,newMax:d};t(this,"zoom",b,function(b){var d=b.newMin,h=b.newMax;if(d!==a.min||h!==a.max)a.allowZoomOutside||(k(c)&&(d<f&&(d=f),d>p&&(d=p)),k(e)&&(h<f&&(h=f),h>p&&(h=p))),a.displayBtn="undefined"!==typeof d||"undefined"!==typeof h,a.setExtremes(d,h,!1,void 0,{trigger:"zoom"});b.zoomed=!0});return b.zoomed};a.prototype.setAxisSize=function(){var b=this.chart,d=this.options,a=d.offsets||[0,0,0,0],c=this.horiz,e=this.width=Math.round(P(F(d.width,
b.plotWidth-a[3]+a[1]),b.plotWidth)),h=this.height=Math.round(P(F(d.height,b.plotHeight-a[0]+a[2]),b.plotHeight)),f=this.top=Math.round(P(F(d.top,b.plotTop+a[0]),b.plotHeight,b.plotTop));d=this.left=Math.round(P(F(d.left,b.plotLeft+a[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-h-f;this.right=b.chartWidth-e-d;this.len=Math.max(c?e:h,0);this.pos=c?d:f};a.prototype.getExtremes=function(){var b=this.logarithmic;return{min:b?q(b.lin2log(this.min)):this.min,max:b?q(b.lin2log(this.max)):this.max,
dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};a.prototype.getThreshold=function(b){var d=this.logarithmic,a=d?d.lin2log(this.min):this.min;d=d?d.lin2log(this.max):this.max;null===b||-Infinity===b?b=a:Infinity===b?b=d:a>b?b=a:d<b&&(b=d);return this.translate(b,0,1,0,1)};a.prototype.autoLabelAlign=function(b){var d=(F(b,0)-90*this.side+720)%360;b={align:"center"};t(this,"autoLabelAlign",b,function(b){15<d&&165>d?b.align="right":195<d&&345>d&&(b.align="left")});
return b.align};a.prototype.tickSize=function(b){var d=this.options,a=F(d["tick"===b?"tickWidth":"minorTickWidth"],"tick"===b&&this.isXAxis&&!this.categories?1:0),c=d["tick"===b?"tickLength":"minorTickLength"];if(a&&c){"inside"===d[b+"Position"]&&(c=-c);var e=[c,a]}b={tickSize:e};t(this,"afterTickSize",b);return b.tickSize};a.prototype.labelMetrics=function(){var b=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[b]&&
this.ticks[b].label)};a.prototype.unsquish=function(){var d=this.options.labels,a=this.horiz,c=this.tickInterval,h=this.len/(((this.categories?1:0)+this.max-this.min)/c),f=d.rotation,p=this.labelMetrics(),g=Math.max(this.max-this.min,0),y=function(b){var d=b/(h||1);d=1<d?Math.ceil(d):1;d*c>g&&Infinity!==b&&Infinity!==h&&g&&(d=Math.ceil(g/c));return q(d*c)},k=c,l,G,t=Number.MAX_VALUE;if(a){if(!d.staggerLines&&!d.step)if(b(f))var m=[f];else h<d.autoRotationLimit&&(m=d.autoRotation);m&&m.forEach(function(b){if(b===
f||b&&-90<=b&&90>=b){G=y(Math.abs(p.h/Math.sin(e*b)));var d=G+Math.abs(b/360);d<t&&(t=d,l=b,k=G)}})}else d.step||(k=y(p.h));this.autoRotation=m;this.labelRotation=F(l,b(f)?f:0);return k};a.prototype.getSlotWidth=function(d){var a=this.chart,c=this.horiz,e=this.options.labels,h=Math.max(this.tickPositions.length-(this.categories?0:1),1),f=a.margin[3];if(d&&b(d.slotWidth))return d.slotWidth;if(c&&2>e.step)return e.rotation?0:(this.staggerLines||1)*this.len/h;if(!c){d=e.style.width;if(void 0!==d)return parseInt(String(d),
10);if(f)return f-a.spacing[3]}return.33*a.chartWidth};a.prototype.renderUnsquish=function(){var b=this.chart,d=b.renderer,a=this.tickPositions,c=this.ticks,e=this.options.labels,h=e.style,f=this.horiz,g=this.getSlotWidth(),y=Math.max(1,Math.round(g-2*e.padding)),k={},G=this.labelMetrics(),l=h.textOverflow,t=0;p(e.rotation)||(k.rotation=e.rotation||0);a.forEach(function(b){b=c[b];b.movedLabel&&b.replaceMovedLabel();b&&b.label&&b.label.textPxLength>t&&(t=b.label.textPxLength)});this.maxLabelLength=
t;if(this.autoRotation)t>y&&t>G.h?k.rotation=this.labelRotation:this.labelRotation=0;else if(g){var m=y;if(!l){var F="clip";for(y=a.length;!f&&y--;){var L=a[y];if(L=c[L].label)L.styles&&"ellipsis"===L.styles.textOverflow?L.css({textOverflow:"clip"}):L.textPxLength>g&&L.css({width:g+"px"}),L.getBBox().height>this.len/a.length-(G.h-G.f)&&(L.specificTextOverflow="ellipsis")}}}k.rotation&&(m=t>.5*b.chartHeight?.33*b.chartHeight:t,l||(F="ellipsis"));if(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))k.align=
this.labelAlign;a.forEach(function(b){var d=(b=c[b])&&b.label,a=h.width,e={};d&&(d.attr(k),b.shortenLabel?b.shortenLabel():m&&!a&&"nowrap"!==h.whiteSpace&&(m<d.textPxLength||"SPAN"===d.element.tagName)?(e.width=m+"px",l||(e.textOverflow=d.specificTextOverflow||F),d.css(e)):d.styles&&d.styles.width&&!e.width&&!a&&d.css({width:null}),delete d.specificTextOverflow,b.rotation=k.rotation)},this);this.tickRotCorr=d.rotCorr(G.b,this.labelRotation||0,0!==this.side)};a.prototype.hasData=function(){return this.series.some(function(b){return b.hasData()})||
this.options.showEmpty&&k(this.min)&&k(this.max)};a.prototype.addTitle=function(b){var d=this.chart.renderer,a=this.horiz,c=this.opposite,e=this.options.title,h=this.chart.styledMode,f;this.axisTitle||((f=e.textAlign)||(f=(a?{low:"left",middle:"center",high:"right"}:{low:c?"right":"left",middle:"center",high:c?"left":"right"})[e.align]),this.axisTitle=d.text(e.text||"",0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation,align:f}).addClass("highcharts-axis-title"),h||this.axisTitle.css(G(e.style)),this.axisTitle.add(this.axisGroup),
this.axisTitle.isNew=!0);h||e.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"});this.axisTitle[b?"show":"hide"](b)};a.prototype.generateTick=function(b){var d=this.ticks;d[b]?d[b].addLabel():d[b]=new u(this,b)};a.prototype.getOffset=function(){var b=this,d=this,a=d.chart,c=a.renderer,e=d.options,h=d.tickPositions,f=d.ticks,p=d.horiz,g=d.side,y=a.inverted&&!d.isZAxis?[1,0,3,2][g]:g,G=d.hasData(),l=e.title,m=e.labels,q=a.axisOffset;a=a.clipOffset;var v=[-1,1,1,-1][g],n=e.className,
B=d.axisParent,r,P=0,D=0,ca=0;d.showAxis=r=G||e.showEmpty;d.staggerLines=d.horiz&&m.staggerLines||void 0;if(!d.axisGroup){var ia=function(d,a,e){return c.g(d).attr({zIndex:e}).addClass("highcharts-"+b.coll.toLowerCase()+a+" "+(b.isRadial?"highcharts-radial-axis"+a+" ":"")+(n||"")).add(B)};d.gridGroup=ia("grid","-grid",e.gridZIndex);d.axisGroup=ia("axis","",e.zIndex);d.labelGroup=ia("axis-labels","-labels",m.zIndex)}G||d.isLinked?(h.forEach(function(b){d.generateTick(b)}),d.renderUnsquish(),d.reserveSpaceDefault=
0===g||2===g||{1:"left",3:"right"}[g]===d.labelAlign,F(m.reserveSpace,"center"===d.labelAlign?!0:null,d.reserveSpaceDefault)&&h.forEach(function(b){ca=Math.max(f[b].getLabelSize(),ca)}),d.staggerLines&&(ca*=d.staggerLines),d.labelOffset=ca*(d.opposite?-1:1)):L(f,function(b,d){b.destroy();delete f[d]});if(l&&l.text&&!1!==l.enabled&&(d.addTitle(r),r&&!1!==l.reserveSpace)){d.titleOffset=P=d.axisTitle.getBBox()[p?"height":"width"];var I=l.offset;D=k(I)?0:F(l.margin,p?5:10)}d.renderLine();d.offset=v*F(e.offset,
q[g]?q[g]+(e.margin||0):0);d.tickRotCorr=d.tickRotCorr||{x:0,y:0};l=0===g?-d.labelMetrics().h:2===g?d.tickRotCorr.y:0;G=Math.abs(ca)+D;ca&&(G=G-l+v*(p?F(m.y,d.tickRotCorr.y+8*v):m.x));d.axisTitleMargin=F(I,G);d.getMaxLabelDimensions&&(d.maxLabelDimensions=d.getMaxLabelDimensions(f,h));p=this.tickSize("tick");q[g]=Math.max(q[g],(d.axisTitleMargin||0)+P+v*d.offset,G,h&&h.length&&p?p[0]+v*d.offset:0);e=e.offset?0:2*Math.floor(d.axisLine.strokeWidth()/2);a[y]=Math.max(a[y],e);t(this,"afterGetOffset")};
a.prototype.getLinePath=function(b){var d=this.chart,a=this.opposite,c=this.offset,e=this.horiz,h=this.left+(a?this.width:0)+c;c=d.chartHeight-this.bottom-(a?this.height:0)+c;a&&(b*=-1);return d.renderer.crispLine([["M",e?this.left:h,e?c:this.top],["L",e?d.chartWidth-this.right:h,e?c:d.chartHeight-this.bottom]],b)};a.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,
"stroke-width":this.options.lineWidth,zIndex:7}))};a.prototype.getTitlePosition=function(){var b=this.horiz,d=this.left,a=this.top,c=this.len,e=this.options.title,h=b?d:a,f=this.opposite,p=this.offset,g=e.x,y=e.y,k=this.axisTitle,G=this.chart.renderer.fontMetrics(e.style.fontSize,k);k=Math.max(k.getBBox(null,0).height-G.h-1,0);c={low:h+(b?0:c),middle:h+c/2,high:h+(b?c:0)}[e.align];d=(b?a+this.height:d)+(b?1:-1)*(f?-1:1)*this.axisTitleMargin+[-k,k,G.f,-k][this.side];b={x:b?c+g:d+(f?this.width:0)+p+
g,y:b?d+y-(f?this.height:0)+p:c+y};t(this,"afterGetTitlePosition",{titlePosition:b});return b};a.prototype.renderMinorTick=function(b,d){var a=this.minorTicks;a[b]||(a[b]=new u(this,b,"minor"));d&&a[b].isNew&&a[b].render(null,!0);a[b].render(null,!1,1)};a.prototype.renderTick=function(b,d,a){var c=this.ticks;if(!this.isLinked||b>=this.min&&b<=this.max||this.grid&&this.grid.isColumn)c[b]||(c[b]=new u(this,b)),a&&c[b].isNew&&c[b].render(d,!0,-1),c[b].render(d)};a.prototype.render=function(){var d=this,
a=d.chart,c=d.logarithmic,e=d.options,h=d.isLinked,f=d.tickPositions,p=d.axisTitle,g=d.ticks,y=d.minorTicks,k=d.alternateBands,G=e.stackLabels,l=e.alternateGridColor,F=d.tickmarkOffset,q=d.axisLine,v=d.showAxis,n=m(a.renderer.globalAnimation),B,r;d.labelEdge.length=0;d.overlap=!1;[g,y,k].forEach(function(b){L(b,function(b){b.isActive=!1})});if(d.hasData()||h){var P=d.chart.hasRendered&&d.old&&b(d.old.min);d.minorTickInterval&&!d.categories&&d.getMinorTickPositions().forEach(function(b){d.renderMinorTick(b,
P)});f.length&&(f.forEach(function(b,a){d.renderTick(b,a,P)}),F&&(0===d.min||d.single)&&(g[-1]||(g[-1]=new u(d,-1,null,!0)),g[-1].render(-1)));l&&f.forEach(function(b,e){r="undefined"!==typeof f[e+1]?f[e+1]+F:d.max-F;0===e%2&&b<d.max&&r<=d.max+(a.polar?-F:F)&&(k[b]||(k[b]=new J.PlotLineOrBand(d)),B=b+F,k[b].options={from:c?c.lin2log(B):B,to:c?c.lin2log(r):r,color:l,className:"highcharts-alternate-grid"},k[b].render(),k[b].isActive=!0)});d._addedPlotLB||(d._addedPlotLB=!0,(e.plotLines||[]).concat(e.plotBands||
[]).forEach(function(b){d.addPlotBandOrLine(b)}))}[g,y,k].forEach(function(b){var d=[],c=n.duration;L(b,function(b,a){b.isActive||(b.render(a,!1,0),b.isActive=!1,d.push(a))});V(function(){for(var a=d.length;a--;)b[d[a]]&&!b[d[a]].isActive&&(b[d[a]].destroy(),delete b[d[a]])},b!==k&&a.hasRendered&&c?c:0)});q&&(q[q.isPlaced?"animate":"attr"]({d:this.getLinePath(q.strokeWidth())}),q.isPlaced=!0,q[v?"show":"hide"](v));p&&v&&(e=d.getTitlePosition(),b(e.y)?(p[p.isNew?"attr":"animate"](e),p.isNew=!1):(p.attr("y",
-9999),p.isNew=!0));G&&G.enabled&&d.stacking&&d.stacking.renderStackTotals();d.old={len:d.len,max:d.max,min:d.min,transA:d.transA,userMax:d.userMax,userMin:d.userMin};d.isDirty=!1;t(this,"afterRender")};a.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(b){b.render()}));this.series.forEach(function(b){b.isDirty=!0})};a.prototype.getKeepProps=function(){return this.keepProps||a.keepProps};a.prototype.destroy=function(b){var d=this,a=d.plotLinesAndBands,
c=this.eventOptions;t(this,"destroy",{keepEvents:b});b||S(d);[d.ticks,d.minorTicks,d.alternateBands].forEach(function(b){r(b)});if(a)for(b=a.length;b--;)a[b].destroy();"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" ").forEach(function(b){d[b]&&(d[b]=d[b].destroy())});for(var e in d.plotLinesAndBandsGroups)d.plotLinesAndBandsGroups[e]=d.plotLinesAndBandsGroups[e].destroy();L(d,function(b,a){-1===d.getKeepProps().indexOf(a)&&delete d[a]});this.eventOptions=c};a.prototype.drawCrosshair=
function(b,d){var a=this.crosshair,c=F(a&&a.snap,!0),e=this.chart,h,f=this.cross;t(this,"drawCrosshair",{e:b,point:d});b||(b=this.cross&&this.cross.e);if(a&&!1!==(k(d)||!c)){c?k(d)&&(h=F("colorAxis"!==this.coll?d.crosshairPos:null,this.isXAxis?d.plotX:this.len-d.plotY)):h=b&&(this.horiz?b.chartX-this.pos:this.len-b.chartY+this.pos);if(k(h)){var p={value:d&&(this.isXAxis?d.x:F(d.stackY,d.y)),translatedValue:h};e.polar&&O(p,{isCrosshair:!0,chartX:b&&b.chartX,chartY:b&&b.chartY,point:d});p=this.getPlotLinePath(p)||
null}if(!k(p)){this.hideCrosshair();return}c=this.categories&&!this.isRadial;f||(this.cross=f=e.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(c?"category ":"thin ")+(a.className||"")).attr({zIndex:F(a.zIndex,2)}).add(),e.styledMode||(f.attr({stroke:a.color||(c?C.parse(E.highlightColor20).setOpacity(.25).get():E.neutralColor20),"stroke-width":F(a.width,1)}).css({"pointer-events":"none"}),a.dashStyle&&f.attr({dashstyle:a.dashStyle})));f.show().attr({d:p});c&&!a.width&&f.attr({"stroke-width":this.transA});
this.cross.e=b}else this.hideCrosshair();t(this,"afterDrawCrosshair",{e:b,point:d})};a.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();t(this,"afterHideCrosshair")};a.prototype.hasVerticalPanning=function(){var b=this.chart.options.chart.panning;return!!(b&&b.enabled&&/y/.test(b.type))};a.prototype.validatePositiveValue=function(d){return b(d)&&0<d};a.prototype.update=function(b,d){var a=this.chart;b=G(this.userOptions,b);this.destroy(!0);this.init(a,b);a.isDirtyBox=!0;F(d,!0)&&a.redraw()};
a.prototype.remove=function(b){for(var d=this.chart,a=this.coll,c=this.series,e=c.length;e--;)c[e]&&c[e].remove(!1);D(d.axes,this);D(d[a],this);d[a].forEach(function(b,d){b.options.index=b.userOptions.index=d});this.destroy();d.isDirtyBox=!0;F(b,!0)&&d.redraw()};a.prototype.setTitle=function(b,d){this.update({title:b},d)};a.prototype.setCategories=function(b,d){this.update({categories:b},d)};a.defaultOptions=w.defaultXAxisOptions;a.keepProps="extKey hcEvents names series userMax userMin".split(" ");
return a}();"";return a});M(a,"Core/Axis/DateTimeAxis.js",[a["Core/Utilities.js"]],function(a){var r=a.addEvent,C=a.getMagnitude,E=a.normalizeTickInterval,z=a.timeUnits,x;(function(a){function u(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function n(a){"datetime"!==a.userOptions.type?this.dateTime=void 0:this.dateTime||(this.dateTime=new g(this))}var m=[];a.compose=function(a){-1===m.indexOf(a)&&(m.push(a),a.keepProps.push("dateTime"),a.prototype.getTimeTicks=u,r(a,"init",
n));return a};var g=function(){function a(a){this.axis=a}a.prototype.normalizeTimeTickInterval=function(a,c){var e=c||[["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]];c=e[e.length-1];var g=z[c[0]],l=c[1],k;for(k=0;k<e.length&&!(c=e[k],g=z[c[0]],l=c[1],e[k+1]&&a<=(g*l[l.length-1]+z[e[k+1][0]])/2);k++);g===z.year&&a<5*g&&(l=[1,2,5]);a=E(a/g,l,"year"===c[0]?
Math.max(C(a/g),1):1);return{unitRange:g,count:a,unitName:c[0]}};a.prototype.getXDateFormat=function(a,c){var e=this.axis;return e.closestPointRange?e.chart.time.getDateFormat(e.closestPointRange,a,e.options.startOfWeek,c)||c.year:c.day};return a}();a.Additions=g})(x||(x={}));return x});M(a,"Core/Axis/LogarithmicAxis.js",[a["Core/Utilities.js"]],function(a){var r=a.addEvent,C=a.getMagnitude,E=a.normalizeTickInterval,z=a.pick,x;(function(a){function u(a){var c=this.logarithmic;"logarithmic"!==a.userOptions.type?
this.logarithmic=void 0:c||(this.logarithmic=new g(this))}function n(){var a=this.logarithmic;a&&(this.lin2val=function(c){return a.lin2log(c)},this.val2lin=function(c){return a.log2lin(c)})}var m=[];a.compose=function(a){-1===m.indexOf(a)&&(m.push(a),a.keepProps.push("logarithmic"),r(a,"init",u),r(a,"afterInit",n));return a};var g=function(){function a(a){this.axis=a}a.prototype.getLogTickPositions=function(a,c,f,g){var e=this.axis,k=e.len,l=e.options,m=[];g||(this.minorAutoInterval=void 0);if(.5<=
a)a=Math.round(a),m=e.getLinearTickPositions(a,c,f);else if(.08<=a){var n=Math.floor(c),v,t=l=void 0;for(k=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];n<f+1&&!t;n++){var h=k.length;for(v=0;v<h&&!t;v++){var d=this.log2lin(this.lin2log(n)*k[v]);d>c&&(!g||l<=f)&&"undefined"!==typeof l&&m.push(l);l>f&&(t=!0);l=d}}}else c=this.lin2log(c),f=this.lin2log(f),a=g?e.getMinorTickInterval():l.tickInterval,a=z("auto"===a?null:a,this.minorAutoInterval,l.tickPixelInterval/(g?5:1)*(f-c)/((g?k/e.tickPositions.length:
k)||1)),a=E(a,void 0,C(a)),m=e.getLinearTickPositions(a,c,f).map(this.log2lin),g||(this.minorAutoInterval=a/5);g||(e.tickInterval=a);return m};a.prototype.lin2log=function(a){return Math.pow(10,a)};a.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};return a}();a.Additions=g})(x||(x={}));return x});M(a,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[a["Core/Utilities.js"]],function(a){var r=a.erase,C=a.extend,E=a.isNumber,z;(function(a){var x=[],u;a.compose=function(a,g){u||(u=a);-1===
x.indexOf(g)&&(x.push(g),C(g.prototype,n.prototype));return g};var n=function(){function a(){}a.prototype.getPlotBandPath=function(a,c,e){void 0===e&&(e=this.options);var g=this.getPlotLinePath({value:c,force:!0,acrossPanes:e.acrossPanes}),f=[],m=this.horiz;c=!E(this.min)||!E(this.max)||a<this.min&&c<this.min||a>this.max&&c>this.max;a=this.getPlotLinePath({value:a,force:!0,acrossPanes:e.acrossPanes});e=1;if(a&&g){if(c){var q=a.toString()===g.toString();e=0}for(c=0;c<a.length;c+=2){var k=a[c],n=a[c+
1],r=g[c],B=g[c+1];"M"!==k[0]&&"L"!==k[0]||"M"!==n[0]&&"L"!==n[0]||"M"!==r[0]&&"L"!==r[0]||"M"!==B[0]&&"L"!==B[0]||(m&&r[1]===k[1]?(r[1]+=e,B[1]+=e):m||r[2]!==k[2]||(r[2]+=e,B[2]+=e),f.push(["M",k[1],k[2]],["L",n[1],n[2]],["L",B[1],B[2]],["L",r[1],r[2]],["Z"]));f.isFlat=q}}return f};a.prototype.addPlotBand=function(a){return this.addPlotBandOrLine(a,"plotBands")};a.prototype.addPlotLine=function(a){return this.addPlotBandOrLine(a,"plotLines")};a.prototype.addPlotBandOrLine=function(a,c){var e=this,
g=this.userOptions,f=new u(this,a);this.visible&&(f=f.render());if(f){this._addedPlotLB||(this._addedPlotLB=!0,(g.plotLines||[]).concat(g.plotBands||[]).forEach(function(a){e.addPlotBandOrLine(a)}));if(c){var m=g[c]||[];m.push(a);g[c]=m}this.plotLinesAndBands.push(f)}return f};a.prototype.removePlotBandOrLine=function(a){var c=this.plotLinesAndBands,e=this.options,g=this.userOptions;if(c){for(var f=c.length;f--;)c[f].id===a&&c[f].destroy();[e.plotLines||[],g.plotLines||[],e.plotBands||[],g.plotBands||
[]].forEach(function(c){for(f=c.length;f--;)(c[f]||{}).id===a&&r(c,c[f])})}};a.prototype.removePlotBand=function(a){this.removePlotBandOrLine(a)};a.prototype.removePlotLine=function(a){this.removePlotBandOrLine(a)};return a}()})(z||(z={}));return z});M(a,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[a["Core/Color/Palette.js"],a["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],a["Core/Utilities.js"]],function(a,w,C){var r=C.arrayMax,z=C.arrayMin,x=C.defined,J=C.destroyObjectProperties,u=C.erase,n=
C.fireEvent,m=C.merge,g=C.objectEach,c=C.pick;C=function(){function e(a,c){this.axis=a;c&&(this.options=c,this.id=c.id)}e.compose=function(a){return w.compose(e,a)};e.prototype.render=function(){n(this,"render");var e=this,f=e.axis,v=f.horiz,q=f.logarithmic,k=e.options,r=k.color,D=c(k.zIndex,0),B=k.events,u={},t=f.chart.renderer,h=k.label,d=e.label,b=k.to,p=k.from,G=k.value,y=e.svgElem,L=[],F=x(p)&&x(b);L=x(G);var P=!y,S={"class":"highcharts-plot-"+(F?"band ":"line ")+(k.className||"")},Q=F?"bands":
"lines";q&&(p=q.log2lin(p),b=q.log2lin(b),G=q.log2lin(G));f.chart.styledMode||(L?(S.stroke=r||a.neutralColor40,S["stroke-width"]=c(k.width,1),k.dashStyle&&(S.dashstyle=k.dashStyle)):F&&(S.fill=r||a.highlightColor10,k.borderWidth&&(S.stroke=k.borderColor,S["stroke-width"]=k.borderWidth)));u.zIndex=D;Q+="-"+D;(q=f.plotLinesAndBandsGroups[Q])||(f.plotLinesAndBandsGroups[Q]=q=t.g("plot-"+Q).attr(u).add());P&&(e.svgElem=y=t.path().attr(S).add(q));if(L)L=f.getPlotLinePath({value:G,lineWidth:y.strokeWidth(),
acrossPanes:k.acrossPanes});else if(F)L=f.getPlotBandPath(p,b,k);else return;!e.eventsAdded&&B&&(g(B,function(b,d){y.on(d,function(b){B[d].apply(e,[b])})}),e.eventsAdded=!0);(P||!y.d)&&L&&L.length?y.attr({d:L}):y&&(L?(y.show(!0),y.animate({d:L})):y.d&&(y.hide(),d&&(e.label=d=d.destroy())));h&&(x(h.text)||x(h.formatter))&&L&&L.length&&0<f.width&&0<f.height&&!L.isFlat?(h=m({align:v&&F&&"center",x:v?!F&&4:10,verticalAlign:!v&&F&&"middle",y:v?F?16:10:F?6:-4,rotation:v&&!F&&90},h),this.renderLabel(h,L,
F,D)):d&&d.hide();return e};e.prototype.renderLabel=function(a,c,e,g){var f=this.axis,l=f.chart.renderer,q=this.label;q||(this.label=q=l.text(this.getLabelText(a),0,0,a.useHTML).attr({align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(e?"band":"line")+"-label "+(a.className||""),zIndex:g}).add(),f.chart.styledMode||q.css(m({textOverflow:"ellipsis"},a.style)));g=c.xBounds||[c[0][1],c[1][1],e?c[2][1]:c[0][1]];c=c.yBounds||[c[0][2],c[1][2],e?c[2][2]:c[0][2]];e=z(g);l=z(c);q.align(a,
!1,{x:e,y:l,width:r(g)-e,height:r(c)-l});q.alignValue&&"left"!==q.alignValue||q.css({width:(90===q.rotation?f.height-(q.alignAttr.y-f.top):f.width-(q.alignAttr.x-f.left))+"px"});q.show(!0)};e.prototype.getLabelText=function(a){return x(a.formatter)?a.formatter.call(this):a.text};e.prototype.destroy=function(){u(this.axis.plotLinesAndBands,this);delete this.axis;J(this)};return e}();"";"";return C});M(a,"Core/Tooltip.js",[a["Core/FormatUtilities.js"],a["Core/Globals.js"],a["Core/Color/Palette.js"],
a["Core/Renderer/RendererUtilities.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){var r=a.format,u=w.doc,n=E.distribute,m=x.addEvent,g=x.clamp,c=x.css,e=x.defined,l=x.discardElement,f=x.extend,v=x.fireEvent,q=x.isArray,k=x.isNumber,I=x.isString,D=x.merge,B=x.pick,O=x.splat,t=x.syncTimeout;a=function(){function a(a,b){this.container=void 0;this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=
a;this.init(a,b)}a.prototype.applyFilter=function(){var a=this.chart;a.renderer.definition({tagName:"filter",attributes:{id:"drop-shadow-"+a.index,opacity:.5},children:[{tagName:"feGaussianBlur",attributes:{"in":"SourceAlpha",stdDeviation:1}},{tagName:"feOffset",attributes:{dx:1,dy:1}},{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",attributes:{type:"linear",slope:.3}}]},{tagName:"feMerge",children:[{tagName:"feMergeNode"},{tagName:"feMergeNode",attributes:{"in":"SourceGraphic"}}]}]})};
a.prototype.bodyFormatter=function(a){return a.map(function(b){var a=b.series.tooltipOptions;return(a[(b.point.formatPrefix||"point")+"Formatter"]||b.point.tooltipFormatter).call(b.point,a[(b.point.formatPrefix||"point")+"Format"]||"")})};a.prototype.cleanSplit=function(a){this.chart.series.forEach(function(b){var d=b&&b.tt;d&&(!d.isActive||a?b.tt=d.destroy():d.isActive=!1)})};a.prototype.defaultFormatter=function(a){var b=this.points||O(this);var d=[a.tooltipFooterHeaderFormatter(b[0])];d=d.concat(a.bodyFormatter(b));
d.push(a.tooltipFooterHeaderFormatter(b[0],!0));return d};a.prototype.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(),l(this.container));x.clearTimeout(this.hideTimer);x.clearTimeout(this.tooltipTimeout)};a.prototype.getAnchor=function(a,b){var d=this.chart,c=d.pointer,e=d.inverted,h=d.plotTop,f=d.plotLeft,g,k,t=0,l=0;a=O(a);this.followPointer&&b?("undefined"===
typeof b.chartX&&(b=c.normalize(b)),c=[b.chartX-f,b.chartY-h]):a[0].tooltipPos?c=a[0].tooltipPos:(a.forEach(function(b){g=b.series.yAxis;k=b.series.xAxis;t+=b.plotX||0;l+=b.plotLow?(b.plotLow+(b.plotHigh||0))/2:b.plotY||0;k&&g&&(e?(t+=h+d.plotHeight-k.len-k.pos,l+=f+d.plotWidth-g.len-g.pos):(t+=k.pos-f,l+=g.pos-h))}),t/=a.length,l/=a.length,c=[e?d.plotWidth-l:t,e?d.plotHeight-t:l],this.shared&&1<a.length&&b&&(e?c[0]=b.chartX-f:c[1]=b.chartY-h));return c.map(Math.round)};a.prototype.getLabel=function(){var a=
this,b=this.chart.styledMode,h=this.options,f="tooltip"+(e(h.className)?" "+h.className:""),g=h.style.pointerEvents||(!this.followPointer&&h.stickOnContact?"auto":"none"),k=function(){a.inContact=!0},t=function(b){var d=a.chart.hoverSeries;a.inContact=a.shouldStickOnContact()&&a.chart.pointer.inClass(b.relatedTarget,"highcharts-tooltip");if(!a.inContact&&d&&d.onMouseOut)d.onMouseOut()},l,q=this.chart.renderer;if(!this.label){if(this.outside){var n=this.chart.options.chart.style,v=z.getRendererType();
this.container=l=w.doc.createElement("div");l.className="highcharts-tooltip-container";c(l,{position:"absolute",top:"1px",pointerEvents:g,zIndex:Math.max(this.options.style.zIndex||0,(n&&n.zIndex||0)+3)});m(l,"mouseenter",k);m(l,"mouseleave",t);w.doc.body.appendChild(l);this.renderer=q=new v(l,0,0,n,void 0,void 0,q.styledMode)}this.split?this.label=q.g(f):(this.label=q.label("",0,0,h.shape,void 0,void 0,h.useHTML,void 0,f).attr({padding:h.padding,r:h.borderRadius}),b||this.label.attr({fill:h.backgroundColor,
"stroke-width":h.borderWidth}).css(h.style).css({pointerEvents:g}).shadow(h.shadow));b&&h.shadow&&(this.applyFilter(),this.label.attr({filter:"url(#drop-shadow-"+this.chart.index+")"}));if(a.outside&&!a.split){var r=this.label,B=r.xSetter,D=r.ySetter;r.xSetter=function(b){B.call(r,a.distance);l.style.left=b+"px"};r.ySetter=function(b){D.call(r,a.distance);l.style.top=b+"px"}}this.label.on("mouseenter",k).on("mouseleave",t).attr({zIndex:8}).add()}return this.label};a.prototype.getPosition=function(a,
b,c){var d=this.chart,e=this.distance,h={},f=d.inverted&&c.h||0,g=this.outside,p=g?u.documentElement.clientWidth-2*e:d.chartWidth,k=g?Math.max(u.body.scrollHeight,u.documentElement.scrollHeight,u.body.offsetHeight,u.documentElement.offsetHeight,u.documentElement.clientHeight):d.chartHeight,l=d.pointer.getChartPosition(),t=function(h){var f="x"===h;return[h,f?p:k,f?a:b].concat(g?[f?a*l.scaleX:b*l.scaleY,f?l.left-e+(c.plotX+d.plotLeft)*l.scaleX:l.top-e+(c.plotY+d.plotTop)*l.scaleY,0,f?p:k]:[f?a:b,f?
c.plotX+d.plotLeft:c.plotY+d.plotTop,f?d.plotLeft:d.plotTop,f?d.plotLeft+d.plotWidth:d.plotTop+d.plotHeight])},m=t("y"),q=t("x"),n,v=!this.followPointer&&B(c.ttBelow,!d.inverted===!!c.negative),r=function(b,a,d,c,p,k,y){var t=g?"y"===b?e*l.scaleY:e*l.scaleX:e,G=(d-c)/2,A=c<p-e,m=p+e+c<a,F=p-t-d+G;p=p+t-G;if(v&&m)h[b]=p;else if(!v&&A)h[b]=F;else if(A)h[b]=Math.min(y-c,0>F-f?F:F-f);else if(m)h[b]=Math.max(k,p+f+d>a?p:p+f);else return!1},D=function(b,a,d,c,f){var g;f<e||f>a-e?g=!1:h[b]=f<d/2?1:f>a-c/
2?a-c-2:f-d/2;return g},A=function(b){var a=m;m=q;q=a;n=b},U=function(){!1!==r.apply(0,m)?!1!==D.apply(0,q)||n||(A(!0),U()):n?h.x=h.y=0:(A(!0),U())};(d.inverted||1<this.len)&&A();U();return h};a.prototype.hide=function(a){var b=this;x.clearTimeout(this.hideTimer);a=B(a,this.options.hideDelay);this.isHidden||(this.hideTimer=t(function(){b.getLabel().fadeOut(a?void 0:a);b.isHidden=!0},a))};a.prototype.init=function(a,b){this.chart=a;this.options=b;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=
!0;this.split=b.split&&!a.inverted&&!a.polar;this.shared=b.shared||this.split;this.outside=B(b.outside,!(!a.scrollablePixelsX&&!a.scrollablePixelsY))};a.prototype.shouldStickOnContact=function(){return!(this.followPointer||!this.options.stickOnContact)};a.prototype.isStickyOnContact=function(){return!(!this.shouldStickOnContact()||!this.inContact)};a.prototype.move=function(a,b,c,e){var d=this,h=d.now,g=!1!==d.options.animation&&!d.isHidden&&(1<Math.abs(a-h.x)||1<Math.abs(b-h.y)),p=d.followPointer||
1<d.len;f(h,{x:g?(2*h.x+a)/3:a,y:g?(h.y+b)/2:b,anchorX:p?void 0:g?(2*h.anchorX+c)/3:c,anchorY:p?void 0:g?(h.anchorY+e)/2:e});d.getLabel().attr(h);d.drawTracker();g&&(x.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){d&&d.move(a,b,c,e)},32))};a.prototype.refresh=function(a,b){var d=this.chart,c=this.options,e=O(a),h=e[0],f=[],g=c.formatter||this.defaultFormatter,k=this.shared,l=d.styledMode,t={};if(c.enabled){x.clearTimeout(this.hideTimer);this.followPointer=!this.split&&
h.series.tooltipOptions.followPointer;var m=this.getAnchor(a,b),n=m[0],r=m[1];!k||!q(a)&&a.series&&a.series.noSharedTooltip?t=h.getLabelConfig():(d.pointer.applyInactiveState(e),e.forEach(function(b){b.setState("hover");f.push(b.getLabelConfig())}),t={x:h.category,y:h.y},t.points=f);this.len=f.length;a=g.call(t,this);g=h.series;this.distance=B(g.tooltipOptions.distance,16);if(!1===a)this.hide();else{if(this.split)this.renderSplit(a,e);else if(e=n,k=r,b&&d.pointer.isDirectTouch&&(e=b.chartX-d.plotLeft,
k=b.chartY-d.plotTop),d.polar||!1===g.options.clip||g.shouldShowTooltip(e,k))b=this.getLabel(),c.style.width&&!l||b.css({width:this.chart.spacingBox.width+"px"}),b.attr({text:a&&a.join?a.join(""):a}),b.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+B(h.colorIndex,g.colorIndex)),l||b.attr({stroke:c.borderColor||h.color||g.color||C.neutralColor60}),this.updatePosition({plotX:n,plotY:r,negative:h.negative,ttBelow:h.ttBelow,h:m[2]||0});else{this.hide();return}this.isHidden&&this.label&&
this.label.attr({opacity:1}).show();this.isHidden=!1}v(this,"refresh")}};a.prototype.renderSplit=function(a,b){function d(b,a,d,e,h){void 0===h&&(h=!0);d?(a=Y?0:J,b=g(b-e/2,N.left,N.right-e-(c.outside?T:0))):(a-=da,b=h?b-e-z:b+z,b=g(b,h?b:N.left,N.right));return{x:b,y:a}}var c=this,e=c.chart,h=c.chart,k=h.chartWidth,l=h.chartHeight,t=h.plotHeight,m=h.plotLeft,q=h.plotTop,r=h.pointer,v=h.scrollablePixelsY;v=void 0===v?0:v;var D=h.scrollablePixelsX,x=h.scrollingContainer;x=void 0===x?{scrollLeft:0,
scrollTop:0}:x;var w=x.scrollLeft;x=x.scrollTop;var O=h.styledMode,z=c.distance,A=c.options,U=c.options.positioner,N=c.outside&&"number"!==typeof D?u.documentElement.getBoundingClientRect():{left:w,right:w+k,top:x,bottom:x+l},W=c.getLabel(),X=this.renderer||e.renderer,Y=!(!e.xAxis[0]||!e.xAxis[0].opposite);e=r.getChartPosition();var T=e.left;e=e.top;var da=q+x,E=0,J=t-v;I(a)&&(a=[!1,a]);a=a.slice(0,b.length+1).reduce(function(a,e,h){if(!1!==e&&""!==e){h=b[h-1]||{isHeader:!0,plotX:b[0].plotX,plotY:t,
series:{}};var f=h.isHeader,p=f?c:h.series;e=e.toString();var k=p.tt,l=h.isHeader;var y=h.series;var G="highcharts-color-"+B(h.colorIndex,y.colorIndex,"none");k||(k={padding:A.padding,r:A.borderRadius},O||(k.fill=A.backgroundColor,k["stroke-width"]=A.borderWidth),k=X.label("",0,0,A[l?"headerShape":"shape"],void 0,void 0,A.useHTML).addClass((l?"highcharts-tooltip-header ":"")+"highcharts-tooltip-box "+G).attr(k).add(W));k.isActive=!0;k.attr({text:e});O||k.css(A.style).shadow(A.shadow).attr({stroke:A.borderColor||
h.color||y.color||C.neutralColor80});p=p.tt=k;l=p.getBBox();e=l.width+p.strokeWidth();f&&(E=l.height,J+=E,Y&&(da-=E));y=h.plotX;y=void 0===y?0:y;G=h.plotY;G=void 0===G?0:G;k=h.series;if(h.isHeader){y=m+y;var F=q+t/2}else{var n=k.xAxis,ca=k.yAxis;y=n.pos+g(y,-z,n.len+z);k.shouldShowTooltip(0,ca.pos-q+G,{ignoreX:!0})&&(F=ca.pos+G)}y=g(y,N.left-z,N.right+z);"number"===typeof F?(l=l.height+1,G=U?U.call(c,e,l,h):d(y,F,f,e),a.push({align:U?0:void 0,anchorX:y,anchorY:F,boxWidth:e,point:h,rank:B(G.rank,f?
1:0),size:l,target:G.y,tt:p,x:G.x})):p.isActive=!1}return a},[]);!U&&a.some(function(b){var a=(c.outside?T:0)+b.anchorX;return a<N.left&&a+b.boxWidth<N.right?!0:a<T-N.left+b.boxWidth&&N.right-a>a})&&(a=a.map(function(b){var a=d(b.anchorX,b.anchorY,b.point.isHeader,b.boxWidth,!1);return f(b,{target:a.y,x:a.x})}));c.cleanSplit();n(a,J);var ba=T,ea=T;a.forEach(function(b){var a=b.x,d=b.boxWidth;b=b.isHeader;b||(c.outside&&T+a<ba&&(ba=T+a),!b&&c.outside&&ba+d>ea&&(ea=T+a))});a.forEach(function(b){var a=
b.x,d=b.anchorX,e=b.pos,h=b.point.isHeader;e={visibility:"undefined"===typeof e?"hidden":"inherit",x:a,y:e+da,anchorX:d,anchorY:b.anchorY};if(c.outside&&a<d){var f=T-ba;0<f&&(h||(e.x=a+f,e.anchorX=d+f),h&&(e.x=(ea-ba)/2,e.anchorX=d+f))}b.tt.attr(e)});a=c.container;v=c.renderer;c.outside&&a&&v&&(h=W.getBBox(),v.setSize(h.width+h.x,h.height+h.y,!1),a.style.left=ba+"px",a.style.top=e+"px")};a.prototype.drawTracker=function(){if(this.followPointer||!this.options.stickOnContact)this.tracker&&this.tracker.destroy();
else{var a=this.chart,b=this.label,c=this.shared?a.hoverPoints:a.hoverPoint;if(b&&c){var e={x:0,y:0,width:0,height:0};c=this.getAnchor(c);var h=b.getBBox();c[0]+=a.plotLeft-b.translateX;c[1]+=a.plotTop-b.translateY;e.x=Math.min(0,c[0]);e.y=Math.min(0,c[1]);e.width=0>c[0]?Math.max(Math.abs(c[0]),h.width-c[0]):Math.max(Math.abs(c[0]),h.width);e.height=0>c[1]?Math.max(Math.abs(c[1]),h.height-Math.abs(c[1])):Math.max(Math.abs(c[1]),h.height);this.tracker?this.tracker.attr(e):(this.tracker=b.renderer.rect(e).addClass("highcharts-tracker").add(b),
a.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}};a.prototype.styledModeFormat=function(a){return a.replace('style="font-size: 10px"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')};a.prototype.tooltipFooterHeaderFormatter=function(a,b){var d=a.series,c=d.tooltipOptions,e=d.xAxis,h=e&&e.dateTime;e={isFooter:b,labelConfig:a};var f=c.xDateFormat,g=c[b?"footerFormat":"headerFormat"];v(this,"headerFormatter",e,function(b){h&&
!f&&k(a.key)&&(f=h.getXDateFormat(a.key,c.dateTimeLabelFormats));h&&f&&(a.point&&a.point.tooltipDateKeys||["key"]).forEach(function(b){g=g.replace("{point."+b+"}","{point."+b+":"+f+"}")});d.chart.styledMode&&(g=this.styledModeFormat(g));b.text=r(g,{point:a,series:d},this.chart)});return e.text};a.prototype.update=function(a){this.destroy();D(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,D(!0,this.options,a))};a.prototype.updatePosition=function(a){var b=this.chart,d=this.options,
e=b.pointer,h=this.getLabel();e=e.getChartPosition();var f=(d.positioner||this.getPosition).call(this,h.width,h.height,a),g=a.plotX+b.plotLeft;a=a.plotY+b.plotTop;if(this.outside){d=d.borderWidth+2*this.distance;this.renderer.setSize(h.width+d,h.height+d,!1);if(1!==e.scaleX||1!==e.scaleY)c(this.container,{transform:"scale("+e.scaleX+", "+e.scaleY+")"}),g*=e.scaleX,a*=e.scaleY;g+=e.left-f.x;a+=e.top-f.y}this.move(Math.round(f.x),Math.round(f.y||0),g,a)};return a}();"";return a});M(a,"Core/Series/Point.js",
[a["Core/Renderer/HTML/AST.js"],a["Core/Animation/AnimationUtilities.js"],a["Core/DefaultOptions.js"],a["Core/FormatUtilities.js"],a["Core/Utilities.js"]],function(a,w,C,E,z){var r=w.animObject,J=C.defaultOptions,u=E.format,n=z.addEvent,m=z.defined,g=z.erase,c=z.extend,e=z.fireEvent,l=z.getNestedProperty,f=z.isArray,v=z.isFunction,q=z.isNumber,k=z.isObject,I=z.merge,D=z.objectEach,B=z.pick,O=z.syncTimeout,t=z.removeEvent,h=z.uniqueKey;w=function(){function d(){this.colorIndex=this.category=void 0;
this.formatPrefix="point";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}d.prototype.animateBeforeDestroy=function(){var b=this,a={x:b.startXPos,opacity:0},d=b.getGraphicalProps();d.singular.forEach(function(d){b[d]=b[d].animate("dataLabel"===d?{x:b[d].startXPos,y:b[d].startYPos,opacity:0}:a)});d.plural.forEach(function(a){b[a].forEach(function(a){a.element&&a.animate(c({x:b.startXPos},a.startYPos?
{x:a.startXPos,y:a.startYPos}:{}))})})};d.prototype.applyOptions=function(b,a){var e=this.series,h=e.options.pointValKey||e.pointValKey;b=d.prototype.optionsToObject.call(this,b);c(this,b);this.options=this.options?c(this.options,b):b;b.group&&delete this.group;b.dataLabels&&delete this.dataLabels;h&&(this.y=d.prototype.getNestedProperty.call(this,h));this.formatPrefix=(this.isNull=B(this.isValid&&!this.isValid(),null===this.x||!q(this.y)))?"null":"point";this.selected&&(this.state="select");"name"in
this&&"undefined"===typeof a&&e.xAxis&&e.xAxis.hasNames&&(this.x=e.xAxis.nameToX(this));"undefined"===typeof this.x&&e?this.x="undefined"===typeof a?e.autoIncrement():a:q(b.x)&&e.options.relativeXValue&&(this.x=e.autoIncrement(b.x));return this};d.prototype.destroy=function(){function b(){if(a.graphic||a.dataLabel||a.dataLabels)t(a),a.destroyElements();for(f in a)a[f]=null}var a=this,d=a.series,c=d.chart;d=d.options.dataSorting;var e=c.hoverPoints,h=r(a.series.chart.renderer.globalAnimation),f;a.legendItem&&
c.legend.destroyItem(a);e&&(a.setState(),g(e,a),e.length||(c.hoverPoints=null));if(a===c.hoverPoint)a.onMouseOut();d&&d.enabled?(this.animateBeforeDestroy(),O(b,h.duration)):b();c.pointCount--};d.prototype.destroyElements=function(b){var a=this;b=a.getGraphicalProps(b);b.singular.forEach(function(b){a[b]=a[b].destroy()});b.plural.forEach(function(b){a[b].forEach(function(b){b.element&&b.destroy()});delete a[b]})};d.prototype.firePointEvent=function(b,a,d){var c=this,h=this.series.options;(h.point.events[b]||
c.options&&c.options.events&&c.options.events[b])&&c.importEvents();"click"===b&&h.allowPointSelect&&(d=function(b){c.select&&c.select(null,b.ctrlKey||b.metaKey||b.shiftKey)});e(c,b,a,d)};d.prototype.getClassName=function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+("undefined"!==typeof this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:
"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")};d.prototype.getGraphicalProps=function(b){var a=this,d=[],c={singular:[],plural:[]},e;b=b||{graphic:1,dataLabel:1};b.graphic&&d.push("graphic","upperGraphic","shadowGroup");b.dataLabel&&d.push("dataLabel","dataLabelUpper","connector");for(e=d.length;e--;){var h=d[e];a[h]&&c.singular.push(h)}["dataLabel","connector"].forEach(function(d){var e=d+"s";b[d]&&a[e]&&c.plural.push(e)});return c};d.prototype.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}};d.prototype.getNestedProperty=function(b){if(b)return 0===b.indexOf("custom.")?l(b,this.options):this[b]};d.prototype.getZone=function(){var b=this.series,a=b.zones;b=b.zoneAxis||"y";var d,c=0;for(d=a[c];this[b]>=d.value;)d=a[++c];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=
d&&d.color&&!this.options.color?d.color:this.nonZonedColor;return d};d.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};d.prototype.init=function(b,a,d){this.series=b;this.applyOptions(a,d);this.id=m(this.id)?this.id:h();this.resolveColor();b.chart.pointCount++;e(this,"afterInit");return this};d.prototype.optionsToObject=function(b){var a=this.series,c=a.options.keys,e=c||a.pointArrayMap||["y"],h=e.length,g={},k=
0,l=0;if(q(b)||null===b)g[e[0]]=b;else if(f(b))for(!c&&b.length>h&&(a=typeof b[0],"string"===a?g.name=b[0]:"number"===a&&(g.x=b[0]),k++);l<h;)c&&"undefined"===typeof b[k]||(0<e[l].indexOf(".")?d.prototype.setNestedProperty(g,b[k],e[l]):g[e[l]]=b[k]),k++,l++;else"object"===typeof b&&(g=b,b.dataLabels&&(a._hasPointLabels=!0),b.marker&&(a._hasPointMarkers=!0));return g};d.prototype.resolveColor=function(){var b=this.series,a=b.chart.styledMode;var d=b.chart.options.chart.colorCount;delete this.nonZonedColor;
if(b.options.colorByPoint){if(!a){d=b.options.colors||b.chart.options.colors;var c=d[b.colorCounter];d=d.length}a=b.colorCounter;b.colorCounter++;b.colorCounter===d&&(b.colorCounter=0)}else a||(c=b.color),a=b.colorIndex;this.colorIndex=B(this.options.colorIndex,a);this.color=B(this.options.color,c)};d.prototype.setNestedProperty=function(b,a,d){d.split(".").reduce(function(b,d,c,e){b[d]=e.length-1===c?a:k(b[d],!0)?b[d]:{};return b[d]},b);return b};d.prototype.tooltipFormatter=function(b){var a=this.series,
d=a.tooltipOptions,c=B(d.valueDecimals,""),e=d.valuePrefix||"",h=d.valueSuffix||"";a.chart.styledMode&&(b=a.chart.tooltip.styledModeFormat(b));(a.pointArrayMap||["y"]).forEach(function(a){a="{point."+a;if(e||h)b=b.replace(RegExp(a+"}","g"),e+a+"}"+h);b=b.replace(RegExp(a+"}","g"),a+":,."+c+"f}")});return u(b,{point:this,series:this.series},a.chart)};d.prototype.update=function(b,a,d,c){function e(){h.applyOptions(b);var c=g&&h.hasDummyGraphic;c=null===h.y?!c:c;g&&c&&(h.graphic=g.destroy(),delete h.hasDummyGraphic);
k(b,!0)&&(g&&g.element&&b&&b.marker&&"undefined"!==typeof b.marker.symbol&&(h.graphic=g.destroy()),b&&b.dataLabels&&h.dataLabel&&(h.dataLabel=h.dataLabel.destroy()),h.connector&&(h.connector=h.connector.destroy()));t=h.index;f.updateParallelArrays(h,t);l.data[t]=k(l.data[t],!0)||k(b,!0)?h.options:B(b,l.data[t]);f.isDirty=f.isDirtyData=!0;!f.fixedBox&&f.hasCartesianSeries&&(p.isDirtyBox=!0);"point"===l.legendType&&(p.isDirtyLegend=!0);a&&p.redraw(d)}var h=this,f=h.series,g=h.graphic,p=f.chart,l=f.options,
t;a=B(a,!0);!1===c?e():h.firePointEvent("update",{options:b},e)};d.prototype.remove=function(b,a){this.series.removePoint(this.series.data.indexOf(this),b,a)};d.prototype.select=function(b,a){var d=this,c=d.series,e=c.chart;this.selectedStaging=b=B(b,!d.selected);d.firePointEvent(b?"select":"unselect",{accumulate:a},function(){d.selected=d.options.selected=b;c.options.data[c.data.indexOf(d)]=d.options;d.setState(b&&"select");a||e.getSelectedPoints().forEach(function(b){var a=b.series;b.selected&&
b!==d&&(b.selected=b.options.selected=!1,a.options.data[a.data.indexOf(b)]=b.options,b.setState(e.hoverPoints&&a.options.inactiveOtherPoints?"inactive":""),b.firePointEvent("unselect"))})});delete this.selectedStaging};d.prototype.onMouseOver=function(b){var a=this.series.chart,d=a.pointer;b=b?d.normalize(b):d.getChartCoordinatesFromPoint(this,a.inverted);d.runPointActions(b,this)};d.prototype.onMouseOut=function(){var b=this.series.chart;this.firePointEvent("mouseOut");this.series.options.inactiveOtherPoints||
(b.hoverPoints||[]).forEach(function(b){b.setState()});b.hoverPoints=b.hoverPoint=null};d.prototype.importEvents=function(){if(!this.hasImportedEvents){var b=this,a=I(b.series.options.point,b.options).events;b.events=a;D(a,function(a,d){v(a)&&n(b,d,a)});this.hasImportedEvents=!0}};d.prototype.setState=function(b,d){var h=this.series,f=this.state,g=h.options.states[b||"normal"]||{},k=J.plotOptions[h.type].marker&&h.options.marker,p=k&&!1===k.enabled,l=k&&k.states&&k.states[b||"normal"]||{},t=!1===
l.enabled,m=this.marker||{},n=h.chart,v=k&&h.markerAttribs,r=h.halo,D,I=h.stateMarkerGraphic;b=b||"";if(!(b===this.state&&!d||this.selected&&"select"!==b||!1===g.enabled||b&&(t||p&&!1===l.enabled)||b&&m.states&&m.states[b]&&!1===m.states[b].enabled)){this.state=b;v&&(D=h.markerAttribs(this,b));if(this.graphic&&!this.hasDummyGraphic){f&&this.graphic.removeClass("highcharts-point-"+f);b&&this.graphic.addClass("highcharts-point-"+b);if(!n.styledMode){var u=h.pointAttribs(this,b);var x=B(n.options.chart.animation,
g.animation);h.options.inactiveOtherPoints&&q(u.opacity)&&((this.dataLabels||[]).forEach(function(b){b&&b.animate({opacity:u.opacity},x)}),this.connector&&this.connector.animate({opacity:u.opacity},x));this.graphic.animate(u,x)}D&&this.graphic.animate(D,B(n.options.chart.animation,l.animation,k.animation));I&&I.hide()}else{if(b&&l){f=m.symbol||h.symbol;I&&I.currentSymbol!==f&&(I=I.destroy());if(D)if(I)I[d?"animate":"attr"]({x:D.x,y:D.y});else f&&(h.stateMarkerGraphic=I=n.renderer.symbol(f,D.x,D.y,
D.width,D.height).add(h.markerGroup),I.currentSymbol=f);!n.styledMode&&I&&I.attr(h.pointAttribs(this,b))}I&&(I[b&&this.isInside?"show":"hide"](),I.element.point=this,I.addClass(this.getClassName(),!0))}g=g.halo;D=(I=this.graphic||I)&&I.visibility||"inherit";g&&g.size&&I&&"hidden"!==D&&!this.isCluster?(r||(h.halo=r=n.renderer.path().add(I.parentGroup)),r.show()[d?"animate":"attr"]({d:this.haloPath(g.size)}),r.attr({"class":"highcharts-halo highcharts-color-"+B(this.colorIndex,h.colorIndex)+(this.className?
" "+this.className:""),visibility:D,zIndex:-1}),r.point=this,n.styledMode||r.attr(c({fill:this.color||h.color,"fill-opacity":g.opacity},a.filterUserAttributes(g.attributes||{})))):r&&r.point&&r.point.haloPath&&r.animate({d:r.point.haloPath(0)},null,r.hide);e(this,"afterSetState",{state:b})}};d.prototype.haloPath=function(b){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-b,this.plotY-b,2*b,2*b)};return d}();"";return w});M(a,"Core/Pointer.js",[a["Core/Color/Color.js"],a["Core/Globals.js"],
a["Core/Color/Palette.js"],a["Core/Tooltip.js"],a["Core/Utilities.js"]],function(a,w,C,E,z){var r=a.parse,J=w.charts,u=w.noop,n=z.addEvent,m=z.attr,g=z.css,c=z.defined,e=z.extend,l=z.find,f=z.fireEvent,v=z.isNumber,q=z.isObject,k=z.objectEach,I=z.offset,D=z.pick,B=z.splat;a=function(){function a(a,c){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.eventsToUnbind=[];this.chart=a;this.hasDragged=!1;this.options=c;this.init(a,c)}a.prototype.applyInactiveState=function(a){var c=[],
d;(a||[]).forEach(function(b){d=b.series;c.push(d);d.linkedParent&&c.push(d.linkedParent);d.linkedSeries&&(c=c.concat(d.linkedSeries));d.navigatorSeries&&c.push(d.navigatorSeries)});this.chart.series.forEach(function(b){-1===c.indexOf(b)?b.setState("inactive",!0):b.options.inactiveOtherPoints&&b.setAllPointsToState("inactive")})};a.prototype.destroy=function(){var c=this;this.eventsToUnbind.forEach(function(a){return a()});this.eventsToUnbind=[];w.chartCount||(a.unbindDocumentMouseUp&&(a.unbindDocumentMouseUp=
a.unbindDocumentMouseUp()),a.unbindDocumentTouchEnd&&(a.unbindDocumentTouchEnd=a.unbindDocumentTouchEnd()));clearInterval(c.tooltipTimeout);k(c,function(a,d){c[d]=void 0})};a.prototype.drag=function(a){var c=this.chart,d=c.options.chart,b=this.zoomHor,e=this.zoomVert,f=c.plotLeft,g=c.plotTop,k=c.plotWidth,l=c.plotHeight,t=this.mouseDownX||0,m=this.mouseDownY||0,n=q(d.panning)?d.panning&&d.panning.enabled:d.panning,v=d.panKey&&a[d.panKey+"Key"],B=a.chartX,D=a.chartY,I=this.selectionMarker;if(!I||!I.touch)if(B<
f?B=f:B>f+k&&(B=f+k),D<g?D=g:D>g+l&&(D=g+l),this.hasDragged=Math.sqrt(Math.pow(t-B,2)+Math.pow(m-D,2)),10<this.hasDragged){var u=c.isInsidePlot(t-f,m-g,{visiblePlotOnly:!0});c.hasCartesianSeries&&(this.zoomX||this.zoomY)&&u&&!v&&!I&&(this.selectionMarker=I=c.renderer.rect(f,g,b?1:k,e?1:l,0).attr({"class":"highcharts-selection-marker",zIndex:7}).add(),c.styledMode||I.attr({fill:d.selectionMarkerFill||r(C.highlightColor80).setOpacity(.25).get()}));I&&b&&(b=B-t,I.attr({width:Math.abs(b),x:(0<b?0:b)+
t}));I&&e&&(b=D-m,I.attr({height:Math.abs(b),y:(0<b?0:b)+m}));u&&!I&&n&&c.pan(a,d.panning)}};a.prototype.dragStart=function(a){var c=this.chart;c.mouseIsDown=a.type;c.cancelClick=!1;c.mouseDownX=this.mouseDownX=a.chartX;c.mouseDownY=this.mouseDownY=a.chartY};a.prototype.drop=function(a){var h=this,d=this.chart,b=this.hasPinched;if(this.selectionMarker){var k={originalEvent:a,xAxis:[],yAxis:[]},l=this.selectionMarker,t=l.attr?l.attr("x"):l.x,m=l.attr?l.attr("y"):l.y,q=l.attr?l.attr("width"):l.width,
n=l.attr?l.attr("height"):l.height,r;if(this.hasDragged||b)d.axes.forEach(function(d){if(d.zoomEnabled&&c(d.min)&&(b||h[{xAxis:"zoomX",yAxis:"zoomY"}[d.coll]])&&v(t)&&v(m)){var e=d.horiz,f="touchend"===a.type?d.minPixelPadding:0,g=d.toValue((e?t:m)+f);e=d.toValue((e?t+q:m+n)-f);k[d.coll].push({axis:d,min:Math.min(g,e),max:Math.max(g,e)});r=!0}}),r&&f(d,"selection",k,function(a){d.zoom(e(a,b?{animation:!1}:null))});v(d.index)&&(this.selectionMarker=this.selectionMarker.destroy());b&&this.scaleGroups()}d&&
v(d.index)&&(g(d.container,{cursor:d._cursor}),d.cancelClick=10<this.hasDragged,d.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};a.prototype.findNearestKDPoint=function(a,c,d){var b=this.chart,e=b.hoverPoint;b=b.tooltip;if(e&&b&&b.isStickyOnContact())return e;var h;a.forEach(function(b){var a=!(b.noSharedTooltip&&c)&&0>b.options.findNearestPointBy.indexOf("y");b=b.searchPoint(d,a);if((a=q(b,!0)&&b.series)&&!(a=!q(h,!0))){a=h.distX-b.distX;var e=h.dist-b.dist,f=(b.series.group&&
b.series.group.zIndex)-(h.series.group&&h.series.group.zIndex);a=0<(0!==a&&c?a:0!==e?e:0!==f?f:h.series.index>b.series.index?-1:1)}a&&(h=b)});return h};a.prototype.getChartCoordinatesFromPoint=function(a,c){var d=a.series,b=d.xAxis;d=d.yAxis;var e=a.shapeArgs;if(b&&d){var h=D(a.clientX,a.plotX),f=a.plotY||0;a.isNode&&e&&v(e.x)&&v(e.y)&&(h=e.x,f=e.y);return c?{chartX:d.len+d.pos-f,chartY:b.len+b.pos-h}:{chartX:h+b.pos,chartY:f+d.pos}}if(e&&e.x&&e.y)return{chartX:e.x,chartY:e.y}};a.prototype.getChartPosition=
function(){if(this.chartPosition)return this.chartPosition;var a=this.chart.container,c=I(a);this.chartPosition={left:c.left,top:c.top,scaleX:1,scaleY:1};var d=a.offsetWidth;a=a.offsetHeight;2<d&&2<a&&(this.chartPosition.scaleX=c.width/d,this.chartPosition.scaleY=c.height/a);return this.chartPosition};a.prototype.getCoordinates=function(a){var c={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(d){c[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return c};
a.prototype.getHoverData=function(a,c,d,b,e,g){var h=[];b=!(!b||!a);var k={chartX:g?g.chartX:void 0,chartY:g?g.chartY:void 0,shared:e};f(this,"beforeGetHoverData",k);var p=c&&!c.stickyTracking?[c]:d.filter(function(b){return k.filter?k.filter(b):b.visible&&!(!e&&b.directTouch)&&D(b.options.enableMouseTracking,!0)&&b.stickyTracking});var t=b||!g?a:this.findNearestKDPoint(p,e,g);c=t&&t.series;t&&(e&&!c.noSharedTooltip?(p=d.filter(function(b){return k.filter?k.filter(b):b.visible&&!(!e&&b.directTouch)&&
D(b.options.enableMouseTracking,!0)&&!b.noSharedTooltip}),p.forEach(function(b){var a=l(b.points,function(b){return b.x===t.x&&!b.isNull});q(a)&&(b.chart.isBoosting&&(a=b.getPoint(a)),h.push(a))})):h.push(t));k={hoverPoint:t};f(this,"afterGetHoverData",k);return{hoverPoint:k.hoverPoint,hoverSeries:c,hoverPoints:h}};a.prototype.getPointFromEvent=function(a){a=a.target;for(var c;a&&!c;)c=a.point,a=a.parentNode;return c};a.prototype.onTrackerMouseOut=function(a){a=a.relatedTarget||a.toElement;var c=
this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!c||!a||c.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+c.index)&&this.inClass(a,"highcharts-tracker")))c.onMouseOut()};a.prototype.inClass=function(a,c){for(var d;a;){if(d=m(a,"class")){if(-1!==d.indexOf(c))return!0;if(-1!==d.indexOf("highcharts-container"))return!1}a=a.parentNode}};a.prototype.init=function(a,c){this.options=c;this.chart=a;this.runChartClick=!(!c.chart.events||!c.chart.events.click);this.pinchDown=
[];this.lastValidTouch={};E&&(a.tooltip=new E(a,c.tooltip),this.followTouchMove=D(c.tooltip.followTouchMove,!0));this.setDOMEvents()};a.prototype.normalize=function(a,c){var d=a.touches,b=d?d.length?d.item(0):D(d.changedTouches,a.changedTouches)[0]:a;c||(c=this.getChartPosition());d=b.pageX-c.left;b=b.pageY-c.top;d/=c.scaleX;b/=c.scaleY;return e(a,{chartX:Math.round(d),chartY:Math.round(b)})};a.prototype.onContainerClick=function(a){var c=this.chart,d=c.hoverPoint;a=this.normalize(a);var b=c.plotLeft,
g=c.plotTop;c.cancelClick||(d&&this.inClass(a.target,"highcharts-tracker")?(f(d.series,"click",e(a,{point:d})),c.hoverPoint&&d.firePointEvent("click",a)):(e(a,this.getCoordinates(a)),c.isInsidePlot(a.chartX-b,a.chartY-g,{visiblePlotOnly:!0})&&f(c,"click",a)))};a.prototype.onContainerMouseDown=function(a){var c=1===((a.buttons||a.button)&1);a=this.normalize(a);if(w.isFirefox&&0!==a.button)this.onContainerMouseMove(a);if("undefined"===typeof a.button||c)this.zoomOption(a),c&&a.preventDefault&&a.preventDefault(),
this.dragStart(a)};a.prototype.onContainerMouseLeave=function(c){var e=J[D(a.hoverChartIndex,-1)],d=this.chart.tooltip;d&&d.shouldStickOnContact()&&this.inClass(c.relatedTarget,"highcharts-tooltip-container")||(c=this.normalize(c),e&&(c.relatedTarget||c.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=void 0),d&&!d.isHidden&&this.reset())};a.prototype.onContainerMouseEnter=function(a){delete this.chartPosition};a.prototype.onContainerMouseMove=function(a){var c=this.chart;a=this.normalize(a);
this.setHoverChartIndex();a.preventDefault||(a.returnValue=!1);("mousedown"===c.mouseIsDown||this.touchSelect(a))&&this.drag(a);c.openMenu||!this.inClass(a.target,"highcharts-tracker")&&!c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop,{visiblePlotOnly:!0})||(this.inClass(a.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(a))};a.prototype.onDocumentTouchEnd=function(c){var e=J[D(a.hoverChartIndex,-1)];e&&e.pointer.drop(c)};a.prototype.onContainerTouchMove=function(a){if(this.touchSelect(a))this.onContainerMouseMove(a);
else this.touch(a)};a.prototype.onContainerTouchStart=function(a){if(this.touchSelect(a))this.onContainerMouseDown(a);else this.zoomOption(a),this.touch(a,!0)};a.prototype.onDocumentMouseMove=function(a){var c=this.chart,d=this.chartPosition;a=this.normalize(a,d);var b=c.tooltip;!d||b&&b.isStickyOnContact()||c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop,{visiblePlotOnly:!0})||this.inClass(a.target,"highcharts-tracker")||this.reset()};a.prototype.onDocumentMouseUp=function(c){var e=J[D(a.hoverChartIndex,
-1)];e&&e.pointer.drop(c)};a.prototype.pinch=function(a){var c=this,d=c.chart,b=c.pinchDown,f=a.touches||[],g=f.length,k=c.lastValidTouch,l=c.hasZoom,m={},t=1===g&&(c.inClass(a.target,"highcharts-tracker")&&d.runTrackerClick||c.runChartClick),q={},n=c.selectionMarker;1<g?c.initiated=!0:1===g&&this.followTouchMove&&(c.initiated=!1);l&&c.initiated&&!t&&!1!==a.cancelable&&a.preventDefault();[].map.call(f,function(b){return c.normalize(b)});"touchstart"===a.type?([].forEach.call(f,function(a,d){b[d]=
{chartX:a.chartX,chartY:a.chartY}}),k.x=[b[0].chartX,b[1]&&b[1].chartX],k.y=[b[0].chartY,b[1]&&b[1].chartY],d.axes.forEach(function(b){if(b.zoomEnabled){var a=d.bounds[b.horiz?"h":"v"],c=b.minPixelPadding,e=b.toPixels(Math.min(D(b.options.min,b.dataMin),b.dataMin)),h=b.toPixels(Math.max(D(b.options.max,b.dataMax),b.dataMax)),f=Math.max(e,h);a.min=Math.min(b.pos,Math.min(e,h)-c);a.max=Math.max(b.pos+b.len,f+c)}}),c.res=!0):c.followTouchMove&&1===g?this.runPointActions(c.normalize(a)):b.length&&(n||
(c.selectionMarker=n=e({destroy:u,touch:!0},d.plotBox)),c.pinchTranslate(b,f,m,n,q,k),c.hasPinched=l,c.scaleGroups(m,q),c.res&&(c.res=!1,this.reset(!1,0)))};a.prototype.pinchTranslate=function(a,c,d,b,e,f){this.zoomHor&&this.pinchTranslateDirection(!0,a,c,d,b,e,f);this.zoomVert&&this.pinchTranslateDirection(!1,a,c,d,b,e,f)};a.prototype.pinchTranslateDirection=function(a,c,d,b,e,f,g,k){var h=this.chart,l=a?"x":"y",p=a?"X":"Y",m="chart"+p,y=a?"width":"height",t=h["plot"+(a?"Left":"Top")],q=h.inverted,
n=h.bounds[a?"h":"v"],r=1===c.length,v=c[0][m],B=!r&&c[1][m];c=function(){"number"===typeof I&&20<Math.abs(v-B)&&(D=k||Math.abs(N-I)/Math.abs(v-B));A=(t-N)/D+v;G=h["plot"+(a?"Width":"Height")]/D};var G,A,D=k||1,N=d[0][m],I=!r&&d[1][m];c();d=A;if(d<n.min){d=n.min;var L=!0}else d+G>n.max&&(d=n.max-G,L=!0);L?(N-=.8*(N-g[l][0]),"number"===typeof I&&(I-=.8*(I-g[l][1])),c()):g[l]=[N,I];q||(f[l]=A-t,f[y]=G);f=q?1/D:D;e[y]=G;e[l]=d;b[q?a?"scaleY":"scaleX":"scale"+p]=D;b["translate"+p]=f*t+(N-f*v)};a.prototype.reset=
function(a,c){var d=this.chart,b=d.hoverSeries,e=d.hoverPoint,h=d.hoverPoints,f=d.tooltip,g=f&&f.shared?h:e;a&&g&&B(g).forEach(function(b){b.series.isCartesian&&"undefined"===typeof b.plotX&&(a=!1)});if(a)f&&g&&B(g).length&&(f.refresh(g),f.shared&&h?h.forEach(function(b){b.setState(b.state,!0);b.series.isCartesian&&(b.series.xAxis.crosshair&&b.series.xAxis.drawCrosshair(null,b),b.series.yAxis.crosshair&&b.series.yAxis.drawCrosshair(null,b))}):e&&(e.setState(e.state,!0),d.axes.forEach(function(b){b.crosshair&&
e.series[b.coll]===b&&b.drawCrosshair(null,e)})));else{if(e)e.onMouseOut();h&&h.forEach(function(b){b.setState()});if(b)b.onMouseOut();f&&f.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());d.axes.forEach(function(b){b.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}};a.prototype.runPointActions=function(c,e){var d=this.chart,b=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,h=b?b.shared:!1,f=e||d.hoverPoint,g=f&&f.series||d.hoverSeries;e=this.getHoverData(f,
g,d.series,(!c||"touchmove"!==c.type)&&(!!e||g&&g.directTouch&&this.isDirectTouch),h,c);f=e.hoverPoint;g=e.hoverSeries;var k=e.hoverPoints;e=g&&g.tooltipOptions.followPointer&&!g.tooltipOptions.split;h=h&&g&&!g.noSharedTooltip;if(f&&(f!==d.hoverPoint||b&&b.isHidden)){(d.hoverPoints||[]).forEach(function(b){-1===k.indexOf(b)&&b.setState()});if(d.hoverSeries!==g)g.onMouseOver();this.applyInactiveState(k);(k||[]).forEach(function(b){b.setState("hover")});d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");
if(!f.series)return;d.hoverPoints=k;d.hoverPoint=f;f.firePointEvent("mouseOver");b&&b.refresh(h?k:f,c)}else e&&b&&!b.isHidden&&(f=b.getAnchor([{}],c),d.isInsidePlot(f[0],f[1],{visiblePlotOnly:!0})&&b.updatePosition({plotX:f[0],plotY:f[1]}));this.unDocMouseMove||(this.unDocMouseMove=n(d.container.ownerDocument,"mousemove",function(b){var d=J[a.hoverChartIndex];if(d)d.pointer.onDocumentMouseMove(b)}),this.eventsToUnbind.push(this.unDocMouseMove));d.axes.forEach(function(b){var a=D((b.crosshair||{}).snap,
!0),e;a&&((e=d.hoverPoint)&&e.series[b.coll]===b||(e=l(k,function(a){return a.series[b.coll]===b})));e||!a?b.drawCrosshair(c,e):b.hideCrosshair()})};a.prototype.scaleGroups=function(a,c){var d=this.chart;d.series.forEach(function(b){var e=a||b.getPlotBox();b.xAxis&&b.xAxis.zoomEnabled&&b.group&&(b.group.attr(e),b.markerGroup&&(b.markerGroup.attr(e),b.markerGroup.clip(c?d.clipRect:null)),b.dataLabelsGroup&&b.dataLabelsGroup.attr(e))});d.clipRect.attr(c||d.clipBox)};a.prototype.setDOMEvents=function(){var c=
this,e=this.chart.container,d=e.ownerDocument;e.onmousedown=this.onContainerMouseDown.bind(this);e.onmousemove=this.onContainerMouseMove.bind(this);e.onclick=this.onContainerClick.bind(this);this.eventsToUnbind.push(n(e,"mouseenter",this.onContainerMouseEnter.bind(this)));this.eventsToUnbind.push(n(e,"mouseleave",this.onContainerMouseLeave.bind(this)));a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=n(d,"mouseup",this.onDocumentMouseUp.bind(this)));for(var b=this.chart.renderTo.parentElement;b&&
"BODY"!==b.tagName;)this.eventsToUnbind.push(n(b,"scroll",function(){delete c.chartPosition})),b=b.parentElement;w.hasTouch&&(this.eventsToUnbind.push(n(e,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(n(e,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=n(d,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))};a.prototype.setHoverChartIndex=function(){var c=this.chart,e=w.charts[D(a.hoverChartIndex,
-1)];if(e&&e!==c)e.pointer.onContainerMouseLeave({relatedTarget:!0});e&&e.mouseIsDown||(a.hoverChartIndex=c.index)};a.prototype.touch=function(a,c){var d=this.chart,b;this.setHoverChartIndex();if(1===a.touches.length)if(a=this.normalize(a),(b=d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0}))&&!d.openMenu){c&&this.runPointActions(a);if("touchmove"===a.type){c=this.pinchDown;var e=c[0]?4<=Math.sqrt(Math.pow(c[0].chartX-a.chartX,2)+Math.pow(c[0].chartY-a.chartY,2)):!1}D(e,
!0)&&this.pinch(a)}else c&&this.reset();else 2===a.touches.length&&this.pinch(a)};a.prototype.touchSelect=function(a){return!(!this.chart.options.chart.zoomBySingleTouch||!a.touches||1!==a.touches.length)};a.prototype.zoomOption=function(a){var c=this.chart,d=c.options.chart;c=c.inverted;var b=d.zoomType||"";/touch/.test(a.type)&&(b=D(d.pinchType,b));this.zoomX=a=/x/.test(b);this.zoomY=d=/y/.test(b);this.zoomHor=a&&!c||d&&c;this.zoomVert=d&&!c||a&&c;this.hasZoom=a||d};return a}();"";return a});M(a,
"Core/MSPointer.js",[a["Core/Globals.js"],a["Core/Pointer.js"],a["Core/Utilities.js"]],function(a,w,C){function r(){var a=[];a.item=function(a){return this[a]};e(f,function(c){a.push({pageX:c.pageX,pageY:c.pageY,target:c.target})});return a}function z(a,c,e,f){var g=J[w.hoverChartIndex||NaN];"touch"!==a.pointerType&&a.pointerType!==a.MSPOINTER_TYPE_TOUCH||!g||(g=g.pointer,f(a),g[c]({type:e,target:a.currentTarget,preventDefault:n,touches:r()}))}var x=this&&this.__extends||function(){var a=function(c,
e){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(c,e)};return function(c,e){function f(){this.constructor=c}a(c,e);c.prototype=null===e?Object.create(e):(f.prototype=e.prototype,new f)}}(),J=a.charts,u=a.doc,n=a.noop,m=a.win,g=C.addEvent,c=C.css,e=C.objectEach,l=C.removeEvent,f={},v=!!m.PointerEvent;return function(e){function k(){return null!==e&&e.apply(this,arguments)||this}x(k,e);k.isRequired=
function(){return!(a.hasTouch||!m.PointerEvent&&!m.MSPointerEvent)};k.prototype.batchMSEvents=function(a){a(this.chart.container,v?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,v?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(u,v?"pointerup":"MSPointerUp",this.onDocumentPointerUp)};k.prototype.destroy=function(){this.batchMSEvents(l);e.prototype.destroy.call(this)};k.prototype.init=function(a,f){e.prototype.init.call(this,a,f);this.hasZoom&&c(a.container,
{"-ms-touch-action":"none","touch-action":"none"})};k.prototype.onContainerPointerDown=function(a){z(a,"onContainerTouchStart","touchstart",function(a){f[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})};k.prototype.onContainerPointerMove=function(a){z(a,"onContainerTouchMove","touchmove",function(a){f[a.pointerId]={pageX:a.pageX,pageY:a.pageY};f[a.pointerId].target||(f[a.pointerId].target=a.currentTarget)})};k.prototype.onDocumentPointerUp=function(a){z(a,"onDocumentTouchEnd",
"touchend",function(a){delete f[a.pointerId]})};k.prototype.setDOMEvents=function(){e.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(g)};return k}(w)});M(a,"Core/Legend/Legend.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/FormatUtilities.js"],a["Core/Globals.js"],a["Core/Series/Point.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){var r=a.animObject,u=a.setAnimation,n=w.format;a=C.isFirefox;var m=C.marginNames;
C=C.win;var g=z.distribute,c=x.addEvent,e=x.createElement,l=x.css,f=x.defined,v=x.discardElement,q=x.find,k=x.fireEvent,I=x.isNumber,D=x.merge,B=x.pick,O=x.relativeLength,t=x.stableSort,h=x.syncTimeout;z=x.wrap;x=function(){function a(a,d){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=
this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=void 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,d)}a.prototype.init=function(a,d){this.chart=a;this.setOptions(d);d.enabled&&(this.render(),c(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=c(this.chart,"render",function(){this.legend.proximatePositions();
this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};a.prototype.setOptions=function(a){var b=B(a.padding,8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=D(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=B(a.symbolWidth,16);this.pages=[];this.proximate="proximate"===a.layout&&!this.chart.inverted;this.baseline=void 0};
a.prototype.update=function(a,d){var b=this.chart;this.setOptions(D(!0,this.options,a));this.destroy();b.isDirtyLegend=b.isDirtyBox=!0;B(d,!0)&&b.redraw();k(this,"afterUpdate")};a.prototype.colorizeItem=function(a,d){a.legendGroup[d?"removeClass":"addClass"]("highcharts-legend-item-hidden");if(!this.chart.styledMode){var b=this.options,c=a.legendItem,e=a.legendLine,h=a.legendSymbol,f=this.itemHiddenStyle.color;b=d?b.itemStyle.color:f;var g=d?a.color||f:f,l=a.options&&a.options.marker,p={fill:g};c&&
c.css({fill:b,color:b});e&&e.attr({stroke:g});h&&(l&&h.isMarker&&(p=a.pointAttribs(),d||(p.stroke=p.fill=f)),h.attr(p))}k(this,"afterColorizeItem",{item:a,visible:d})};a.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};a.prototype.positionItem=function(a){var b=this,d=this.options,c=d.symbolPadding,e=!d.rtl,h=a._legendItemPos;d=h[0];h=h[1];var g=a.checkbox,l=a.legendGroup;l&&l.element&&(c={translateX:e?d:this.legendWidth-
d-2*c-4,translateY:h},e=function(){k(b,"afterPositionItem",{item:a})},f(l.translateY)?l.animate(c,void 0,e):(l.attr(c),e()));g&&(g.x=d,g.y=h)};a.prototype.destroyItem=function(a){var b=a.checkbox;["legendItem","legendLine","legendSymbol","legendGroup"].forEach(function(b){a[b]&&(a[b]=a[b].destroy())});b&&v(a.checkbox)};a.prototype.destroy=function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(b){["legendItem","legendGroup"].forEach(a,b)});"clipRect up down pager nav box title group".split(" ").forEach(a,
this);this.display=null};a.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,d=this.clipHeight||this.legendHeight,c=this.titleHeight;if(a){var e=a.translateY;this.allItems.forEach(function(b){var h=b.checkbox;if(h){var f=e+c+h.y+(this.scrollOffset||0)+3;l(h,{left:a.translateX+b.checkboxOffset+h.x-20+"px",top:f+"px",display:this.proximate||f>e-6&&f<e+d-6?"":"none"})}},this)}};a.prototype.renderTitle=function(){var a=this.options,d=this.padding,c=a.title,e=0;c.text&&(this.title||
(this.title=this.chart.renderer.label(c.text,d-3,d-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(c.style),this.title.add(this.group)),c.width||this.title.css({width:this.maxLegendWidth+"px"}),a=this.title.getBBox(),e=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:e}));this.titleHeight=e};a.prototype.setText=function(a){var b=this.options;a.legendItem.attr({text:b.labelFormat?n(b.labelFormat,a,this.chart):b.labelFormatter.call(a)})};
a.prototype.renderItem=function(a){var b=this.chart,d=b.renderer,c=this.options,e=this.symbolWidth,h=c.symbolPadding||0,f=this.itemStyle,g=this.itemHiddenStyle,k="horizontal"===c.layout?B(c.itemDistance,20):0,l=!c.rtl,m=!a.series,n=!m&&a.series.drawLegendSymbol?a.series:a,q=n.options,t=this.createCheckboxForItem&&q&&q.showCheckbox,v=c.useHTML,r=a.options.className,I=a.legendItem;q=e+h+k+(t?20:0);I||(a.legendGroup=d.g("legend-item").addClass("highcharts-"+n.type+"-series highcharts-color-"+a.colorIndex+
(r?" "+r:"")+(m?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=I=d.text("",l?e+h:-h,this.baseline||0,v),b.styledMode||I.css(D(a.visible?f:g)),I.attr({align:l?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=d.fontMetrics(b.styledMode?12:f.fontSize,I),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,I.attr("y",this.baseline),this.symbolHeight=c.symbolHeight||this.fontMetrics.f,c.squareSymbol&&(this.symbolWidth=B(c.symbolWidth,
Math.max(this.symbolHeight,16)),q=this.symbolWidth+h+k+(t?20:0),l&&I.attr("x",this.symbolWidth+h))),n.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,I,v));t&&!a.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(a);this.colorizeItem(a,a.visible);!b.styledMode&&f.width||I.css({width:(c.itemWidth||this.widthOption||b.spacingBox.width)-q+"px"});this.setText(a);b=I.getBBox();a.itemWidth=a.checkboxOffset=c.itemWidth||a.legendItemWidth||b.width+q;this.maxItemWidth=Math.max(this.maxItemWidth,
a.itemWidth);this.totalItemWidth+=a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||b.height||this.symbolHeight)};a.prototype.layoutItem=function(a){var b=this.options,d=this.padding,c="horizontal"===b.layout,e=a.itemHeight,h=this.itemMarginBottom,f=this.itemMarginTop,g=c?B(b.itemDistance,20):0,k=this.maxLegendWidth;b=b.alignColumns&&this.totalItemWidth>k?this.maxItemWidth:a.itemWidth;c&&this.itemX-d+b>k&&(this.itemX=d,this.lastLineHeight&&(this.itemY+=f+this.lastLineHeight+
h),this.lastLineHeight=0);this.lastItemY=f+this.itemY+h;this.lastLineHeight=Math.max(e,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];c?this.itemX+=b:(this.itemY+=f+e+h,this.lastLineHeight=e);this.offsetWidth=this.widthOption||Math.max((c?this.itemX-d-(a.checkbox?0:g):b)+d,this.offsetWidth)};a.prototype.getAllItems=function(){var a=[];this.chart.series.forEach(function(b){var d=b&&b.options;b&&B(d.showInLegend,f(d.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===d.legendType?
b.data:b)))});k(this,"afterGetAllItems",{allItems:a});return a};a.prototype.getAlignment=function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)};a.prototype.adjustMargins=function(a,d){var b=this.chart,c=this.options,e=this.getAlignment();e&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(h,g){h.test(e)&&!f(a[g])&&(b[m[g]]=Math.max(b[m[g]],b.legend[(g+1)%2?"legendHeight":
"legendWidth"]+[1,-1,-1,1][g]*c[g%2?"x":"y"]+B(c.margin,12)+d[g]+(b.titleOffset[g]||0)))})};a.prototype.proximatePositions=function(){var a=this.chart,d=[],c="left"===this.options.align;this.allItems.forEach(function(b){var e;var h=c;if(b.yAxis){b.xAxis.options.reversed&&(h=!h);b.points&&(e=q(h?b.points:b.points.slice(0).reverse(),function(a){return I(a.plotY)}));h=this.itemMarginTop+b.legendItem.getBBox().height+this.itemMarginBottom;var f=b.yAxis.top-a.plotTop;b.visible?(e=e?e.plotY:b.yAxis.height,
e+=f-.3*h):e=f+b.yAxis.height;d.push({target:e,size:h,item:b})}},this);g(d,a.plotHeight).forEach(function(b){b.item._legendItemPos&&(b.item._legendItemPos[1]=a.plotTop-a.spacing[0]+b.pos)})};a.prototype.render=function(){var a=this.chart,d=a.renderer,c=this.options,e=this.padding,h=this.getAllItems(),f=this.group,g=this.box;this.itemX=e;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=O(c.width,a.spacingBox.width-e);var l=a.spacingBox.width-2*e-c.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,
2))&&(l/=2);this.maxLegendWidth=this.widthOption||l;f||(this.group=f=d.g("legend").addClass(c.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(f),this.scrollGroup=d.g().add(this.contentGroup));this.renderTitle();t(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});c.reversed&&h.reverse();this.allItems=h;this.display=l=!!h.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;h.forEach(this.renderItem,
this);h.forEach(this.layoutItem,this);h=(this.widthOption||this.offsetWidth)+e;var m=this.lastItemY+this.lastLineHeight+this.titleHeight;m=this.handleOverflow(m);m+=e;g||(this.box=g=d.rect().addClass("highcharts-legend-box").attr({r:c.borderRadius}).add(f),g.isNew=!0);a.styledMode||g.attr({stroke:c.borderColor,"stroke-width":c.borderWidth||0,fill:c.backgroundColor||"none"}).shadow(c.shadow);0<h&&0<m&&(g[g.isNew?"attr":"animate"](g.crisp.call({},{x:0,y:0,width:h,height:m},g.strokeWidth())),g.isNew=
!1);g[l?"show":"hide"]();a.styledMode&&"none"===f.getStyle("display")&&(h=m=0);this.legendWidth=h;this.legendHeight=m;l&&this.align();this.proximate||this.positionItems();k(this,"afterRender")};a.prototype.align=function(a){void 0===a&&(a=this.chart.spacingBox);var b=this.chart,d=this.options,c=a.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<b.titleOffset[0]?c+=b.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&0<b.titleOffset[2]&&(c-=b.titleOffset[2]);c!==a.y&&(a=D(a,{y:c}));this.group.align(D(d,
{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":d.verticalAlign}),!0,a)};a.prototype.handleOverflow=function(a){var b=this,d=this.chart,c=d.renderer,e=this.options,h=e.y,f="top"===e.verticalAlign,g=this.padding,k=e.maxHeight,l=e.navigation,m=B(l.animation,!0),n=l.arrowSize||12,q=this.pages,t=this.allItems,v=function(a){"number"===typeof a?N.attr({height:a}):N&&(b.clipRect=N.destroy(),b.contentGroup.clip());b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+
g+"px,9999px,"+(g+a)+"px,0)":"auto")},r=function(a){b[a]=c.circle(0,0,1.3*n).translate(n/2,n/2).add(U);d.styledMode||b[a].attr("fill","rgba(0,0,0,0.0001)");return b[a]},I,A;h=d.spacingBox.height+(f?-h:h)-g;var U=this.nav,N=this.clipRect;"horizontal"!==e.layout||"middle"===e.verticalAlign||e.floating||(h/=2);k&&(h=Math.min(h,k));q.length=0;a&&0<h&&a>h&&!1!==l.enabled?(this.clipHeight=I=Math.max(h-20-this.titleHeight-g,0),this.currentPage=B(this.currentPage,1),this.fullHeight=a,t.forEach(function(a,
b){var d=a._legendItemPos[1],c=Math.round(a.legendItem.getBBox().height),e=q.length;if(!e||d-q[e-1]>I&&(A||d)!==q[e-1])q.push(A||d),e++;a.pageIx=e-1;A&&(t[b-1].pageIx=e-1);b===t.length-1&&d+c-q[e-1]>I&&d!==A&&(q.push(d),a.pageIx=e);d!==A&&(A=d)}),N||(N=b.clipRect=c.clipRect(0,g,9999,0),b.contentGroup.clip(N)),v(I),U||(this.nav=U=c.g().attr({zIndex:1}).add(this.group),this.up=c.symbol("triangle",0,0,n,n).add(U),r("upTracker").on("click",function(){b.scroll(-1,m)}),this.pager=c.text("",15,10).addClass("highcharts-legend-navigation"),
d.styledMode||this.pager.css(l.style),this.pager.add(U),this.down=c.symbol("triangle-down",0,0,n,n).add(U),r("downTracker").on("click",function(){b.scroll(1,m)})),b.scroll(0),a=h):U&&(v(),this.nav=U.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a};a.prototype.scroll=function(a,d){var b=this,c=this.chart,e=this.pages,f=e.length,g=this.clipHeight,l=this.options.navigation,m=this.pager,p=this.padding,n=this.currentPage+a;n>f&&(n=f);0<n&&("undefined"!==typeof d&&u(d,c),this.nav.attr({translateX:p,
translateY:g+this.padding+7+this.titleHeight,visibility:"visible"}),[this.up,this.upTracker].forEach(function(a){a.attr({"class":1===n?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),m.attr({text:n+"/"+f}),[this.down,this.downTracker].forEach(function(a){a.attr({x:18+this.pager.getBBox().width,"class":n===f?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),c.styledMode||(this.up.attr({fill:1===n?l.inactiveColor:l.activeColor}),this.upTracker.css({cursor:1===
n?"default":"pointer"}),this.down.attr({fill:n===f?l.inactiveColor:l.activeColor}),this.downTracker.css({cursor:n===f?"default":"pointer"})),this.scrollOffset=-e[n-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=n,this.positionCheckboxes(),a=r(B(d,c.renderer.globalAnimation,!0)),h(function(){k(b,"afterScroll",{currentPage:n})},a.duration))};a.prototype.setItemEvents=function(a,d,c){var b=this,e=b.chart.renderer.boxWrapper,h=a instanceof E,f="highcharts-legend-"+
(h?"point":"series")+"-active",g=b.chart.styledMode,l=function(d){b.allItems.forEach(function(b){a!==b&&[b].concat(b.linkedSeries||[]).forEach(function(a){a.setState(d,!h)})})};(c?[d,a.legendSymbol]:[a.legendGroup]).forEach(function(c){if(c)c.on("mouseover",function(){a.visible&&l("inactive");a.setState("hover");a.visible&&e.addClass(f);g||d.css(b.options.itemHoverStyle)}).on("mouseout",function(){b.chart.styledMode||d.css(D(a.visible?b.itemStyle:b.itemHiddenStyle));l("");e.removeClass(f);a.setState()}).on("click",
function(b){var d=function(){a.setVisible&&a.setVisible();l(a.visible?"inactive":"")};e.removeClass(f);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,d):k(a,"legendItemClick",b,d)})})};a.prototype.createCheckboxForItem=function(a){a.checkbox=e("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);c(a.checkbox,"click",function(b){k(a.series||a,"checkboxClick",{checked:b.target.checked,
item:a},function(){a.select()})})};return a}();(/Trident\/7\.0/.test(C.navigator&&C.navigator.userAgent)||a)&&z(x.prototype,"positionItem",function(a,b){var d=this,c=function(){b._legendItemPos&&a.call(d,b)};c();d.bubbleLegend||setTimeout(c)});"";return x});M(a,"Core/Series/SeriesRegistry.js",[a["Core/Globals.js"],a["Core/DefaultOptions.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=w.defaultOptions,x=E.error,J=E.extendClass,u=E.merge,n;(function(m){function g(a,e){var c=
r.plotOptions||{},f=e.defaultOptions;e.prototype.pointClass||(e.prototype.pointClass=C);e.prototype.type=a;f&&(c[a]=f);m.seriesTypes[a]=e}m.seriesTypes=a.seriesTypes;m.getSeries=function(a,e){void 0===e&&(e={});var c=a.options.chart;c=e.type||c.type||c.defaultSeriesType||"";var f=m.seriesTypes[c];m||x(17,!0,a,{missingModuleFor:c});c=new f;"function"===typeof c.init&&c.init(a,e);return c};m.registerSeriesType=g;m.seriesType=function(a,e,l,f,n){var c=r.plotOptions||{};e=e||"";c[a]=u(c[e],l);g(a,J(m.seriesTypes[e]||
function(){},f));m.seriesTypes[a].prototype.type=a;n&&(m.seriesTypes[a].prototype.pointClass=J(C,n));return m.seriesTypes[a]}})(n||(n={}));return n});M(a,"Core/Chart/Chart.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/Axis.js"],a["Core/FormatUtilities.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Legend/Legend.js"],a["Core/MSPointer.js"],a["Core/DefaultOptions.js"],a["Core/Color/Palette.js"],a["Core/Pointer.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Series/SeriesRegistry.js"],
a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Time.js"],a["Core/Utilities.js"],a["Core/Renderer/HTML/AST.js"]],function(a,w,C,E,z,x,J,u,n,m,g,c,e,l,f,v){var q=a.animate,k=a.animObject,r=a.setAnimation,D=C.numberFormat,B=E.registerEventOptions,O=z.charts,t=z.doc,h=z.marginNames,d=z.svg,b=z.win,p=u.defaultOptions,G=u.defaultTime,y=c.seriesTypes,L=f.addEvent,F=f.attr,P=f.cleanRecursively,S=f.createElement,Q=f.css,V=f.defined,fa=f.discardElement,H=f.erase,K=f.error,M=f.extend,ha=f.find,R=f.fireEvent,
Z=f.getStyle,A=f.isArray,U=f.isNumber,N=f.isObject,W=f.isString,X=f.merge,Y=f.objectEach,T=f.pick,da=f.pInt,ka=f.relativeLength,ja=f.removeEvent,ba=f.splat,ea=f.syncTimeout,ma=f.uniqueKey;a=function(){function a(a,b,d){this.series=this.renderTo=this.renderer=this.pointer=this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.legend=this.labelCollectors=this.isResizing=this.index=this.eventOptions=this.container=this.colorCounter=
this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=this.axes=void 0;this.sharedClips={};this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=void 0;this.getArgs(a,b,d)}a.chart=function(b,d,c){return new a(b,d,c)};a.prototype.getArgs=function(a,b,d){W(a)||a.nodeName?(this.renderTo=a,this.init(b,d)):this.init(a,b)};a.prototype.init=function(a,b){var d=a.plotOptions||{};R(this,"init",{args:arguments},function(){var c=
X(p,a),e=c.chart;Y(c.plotOptions,function(a,b){N(a)&&(a.tooltip=d[b]&&X(d[b].tooltip)||void 0)});c.tooltip.userOptions=a.chart&&a.chart.forExport&&a.tooltip.userOptions||a.tooltip;this.userOptions=a;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.time=a.time&&Object.keys(a.time).length?new l(a.time):z.time;this.numberFormatter=e.numberFormatter||D;this.styledMode=e.styledMode;this.hasCartesianSeries=
e.showAxes;this.index=O.length;O.push(this);z.chartCount++;B(this,e);this.xAxis=[];this.yAxis=[];this.pointCount=this.colorCounter=this.symbolCounter=0;R(this,"afterInit");this.firstRender()})};a.prototype.initSeries=function(a){var b=this.options.chart;b=a.type||b.type||b.defaultSeriesType;var d=y[b];d||K(17,!0,this,{missingModuleFor:b});b=new d;"function"===typeof b.init&&b.init(this,a);return b};a.prototype.setSeriesData=function(){this.getSeriesOrderByLinks().forEach(function(a){a.points||a.data||
!a.enabledDataSorting||a.setData(a.options.data,!1)})};a.prototype.getSeriesOrderByLinks=function(){return this.series.concat().sort(function(a,b){return a.linkedSeries.length||b.linkedSeries.length?b.linkedSeries.length-a.linkedSeries.length:0})};a.prototype.orderSeries=function(a){var b=this.series;a=a||0;for(var d=b.length;a<d;++a)b[a]&&(b[a].index=a,b[a].name=b[a].getName())};a.prototype.isInsidePlot=function(a,b,d){void 0===d&&(d={});var c=this.inverted,e=this.plotBox,h=this.plotLeft,f=this.plotTop,
g=this.scrollablePlotBox,k=0;var l=0;d.visiblePlotOnly&&this.scrollingContainer&&(l=this.scrollingContainer,k=l.scrollLeft,l=l.scrollTop);var m=d.series;e=d.visiblePlotOnly&&g||e;g=d.inverted?b:a;b=d.inverted?a:b;a={x:g,y:b,isInsidePlot:!0};if(!d.ignoreX){var A=m&&(c?m.yAxis:m.xAxis)||{pos:h,len:Infinity};g=d.paneCoordinates?A.pos+g:h+g;g>=Math.max(k+h,A.pos)&&g<=Math.min(k+h+e.width,A.pos+A.len)||(a.isInsidePlot=!1)}!d.ignoreY&&a.isInsidePlot&&(c=m&&(c?m.xAxis:m.yAxis)||{pos:f,len:Infinity},d=d.paneCoordinates?
c.pos+b:f+b,d>=Math.max(l+f,c.pos)&&d<=Math.min(l+f+e.height,c.pos+c.len)||(a.isInsidePlot=!1));R(this,"afterIsInsidePlot",a);return a.isInsidePlot};a.prototype.redraw=function(a){R(this,"beforeRedraw");var b=this.hasCartesianSeries?this.axes:this.colorAxis||[],d=this.series,c=this.pointer,e=this.legend,h=this.userOptions.legend,f=this.renderer,g=f.isHidden(),k=[],l=this.isDirtyBox,m=this.isDirtyLegend;this.setResponsive&&this.setResponsive(!1);r(this.hasRendered?a:!1,this);g&&this.temporaryDisplay();
this.layOutTitles();for(a=d.length;a--;){var A=d[a];if(A.options.stacking||A.options.centerInCategory){var p=!0;if(A.isDirty){var n=!0;break}}}if(n)for(a=d.length;a--;)A=d[a],A.options.stacking&&(A.isDirty=!0);d.forEach(function(a){a.isDirty&&("point"===a.options.legendType?("function"===typeof a.updateTotals&&a.updateTotals(),m=!0):h&&(h.labelFormatter||h.labelFormat)&&(m=!0));a.isDirtyData&&R(a,"updatedData")});m&&e&&e.options.enabled&&(e.render(),this.isDirtyLegend=!1);p&&this.getStacks();b.forEach(function(a){a.updateNames();
a.setScale()});this.getMargins();b.forEach(function(a){a.isDirty&&(l=!0)});b.forEach(function(a){var b=a.min+","+a.max;a.extKey!==b&&(a.extKey=b,k.push(function(){R(a,"afterSetExtremes",M(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(l||p)&&a.redraw()});l&&this.drawChartBox();R(this,"predraw");d.forEach(function(a){(l||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});c&&c.reset(!0);f.draw();R(this,"redraw");R(this,"render");g&&this.temporaryDisplay(!0);k.forEach(function(a){a.call()})};
a.prototype.get=function(a){function b(b){return b.id===a||b.options&&b.options.id===a}for(var d=this.series,c=ha(this.axes,b)||ha(this.series,b),e=0;!c&&e<d.length;e++)c=ha(d[e].points||[],b);return c};a.prototype.getAxes=function(){var a=this,b=this.options,d=b.xAxis=ba(b.xAxis||{});b=b.yAxis=ba(b.yAxis||{});R(this,"getAxes");d.forEach(function(a,b){a.index=b;a.isX=!0});b.forEach(function(a,b){a.index=b});d.concat(b).forEach(function(b){new w(a,b)});R(this,"afterGetAxes")};a.prototype.getSelectedPoints=
function(){return this.series.reduce(function(a,b){b.getPointsCollection().forEach(function(b){T(b.selectedStaging,b.selected)&&a.push(b)});return a},[])};a.prototype.getSelectedSeries=function(){return this.series.filter(function(a){return a.selected})};a.prototype.setTitle=function(a,b,d){this.applyDescription("title",a);this.applyDescription("subtitle",b);this.applyDescription("caption",void 0);this.layOutTitles(d)};a.prototype.applyDescription=function(a,b){var d=this,c="title"===a?{color:n.neutralColor80,
fontSize:this.options.isStock?"16px":"18px"}:{color:n.neutralColor60};c=this.options[a]=X(!this.styledMode&&{style:c},this.options[a],b);var e=this[a];e&&b&&(this[a]=e=e.destroy());c&&!e&&(e=this.renderer.text(c.text,0,0,c.useHTML).attr({align:c.align,"class":"highcharts-"+a,zIndex:c.zIndex||4}).add(),e.update=function(b){d[{title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"}[a]](b)},this.styledMode||e.css(c.style),this[a]=e)};a.prototype.layOutTitles=function(a){var b=[0,0,0],d=this.renderer,
c=this.spacingBox;["title","subtitle","caption"].forEach(function(a){var e=this[a],h=this.options[a],f=h.verticalAlign||"top";a="title"===a?"top"===f?-3:0:"top"===f?b[0]+2:0;var g;if(e){this.styledMode||(g=h.style&&h.style.fontSize);g=d.fontMetrics(g,e).b;e.css({width:(h.width||c.width+(h.widthAdjust||0))+"px"});var k=Math.round(e.getBBox(h.useHTML).height);e.align(M({y:"bottom"===f?g:a+g,height:k},h),!1,"spacingBox");h.floating||("top"===f?b[0]=Math.ceil(b[0]+k):"bottom"===f&&(b[2]=Math.ceil(b[2]+
k)))}},this);b[0]&&"top"===(this.options.title.verticalAlign||"top")&&(b[0]+=this.options.title.margin);b[2]&&"bottom"===this.options.caption.verticalAlign&&(b[2]+=this.options.caption.margin);var e=!this.titleOffset||this.titleOffset.join(",")!==b.join(",");this.titleOffset=b;R(this,"afterLayOutTitles");!this.isDirtyBox&&e&&(this.isDirtyBox=this.isDirtyLegend=e,this.hasRendered&&T(a,!0)&&this.isDirtyBox&&this.redraw())};a.prototype.getChartSize=function(){var a=this.options.chart,b=a.width;a=a.height;
var d=this.renderTo;V(b)||(this.containerWidth=Z(d,"width"));V(a)||(this.containerHeight=Z(d,"height"));this.chartWidth=Math.max(0,b||this.containerWidth||600);this.chartHeight=Math.max(0,ka(a,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))};a.prototype.temporaryDisplay=function(a){var b=this.renderTo;if(a)for(;b&&b.style;)b.hcOrigStyle&&(Q(b,b.hcOrigStyle),delete b.hcOrigStyle),b.hcOrigDetached&&(t.body.removeChild(b),b.hcOrigDetached=!1),b=b.parentNode;else for(;b&&b.style;){t.body.contains(b)||
b.parentNode||(b.hcOrigDetached=!0,t.body.appendChild(b));if("none"===Z(b,"display",!1)||b.hcOricDetached)b.hcOrigStyle={display:b.style.display,height:b.style.height,overflow:b.style.overflow},a={display:"block",overflow:"hidden"},b!==this.renderTo&&(a.height=0),Q(b,a),b.offsetWidth||b.style.setProperty("display","block","important");b=b.parentNode;if(b===t.body)break}};a.prototype.setClassName=function(a){this.container.className="highcharts-container "+(a||"")};a.prototype.getContainer=function(){var a=
this.options,b=a.chart,c=ma(),h,f=this.renderTo;f||(this.renderTo=f=b.renderTo);W(f)&&(this.renderTo=f=t.getElementById(f));f||K(13,!0,this);var k=da(F(f,"data-highcharts-chart"));U(k)&&O[k]&&O[k].hasRendered&&O[k].destroy();F(f,"data-highcharts-chart",this.index);f.innerHTML="";b.skipClone||f.offsetWidth||this.temporaryDisplay();this.getChartSize();k=this.chartWidth;var l=this.chartHeight;Q(f,{overflow:"hidden"});this.styledMode||(h=M({position:"relative",overflow:"hidden",width:k+"px",height:l+
"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},b.style||{}));this.container=c=S("div",{id:c},h,f);this._cursor=c.style.cursor;this.renderer=new (b.renderer||!d?g.getRendererType(b.renderer):e)(c,k,l,void 0,b.forExport,a.exporting&&a.exporting.allowHTML,this.styledMode);r(void 0,this);this.setClassName(b.className);if(this.styledMode)for(var m in a.defs)this.renderer.definition(a.defs[m]);
else this.renderer.setStyle(b.style);this.renderer.chartIndex=this.index;R(this,"afterGetContainer")};a.prototype.getMargins=function(a){var b=this.spacing,d=this.margin,c=this.titleOffset;this.resetMargins();c[0]&&!V(d[0])&&(this.plotTop=Math.max(this.plotTop,c[0]+b[0]));c[2]&&!V(d[2])&&(this.marginBottom=Math.max(this.marginBottom,c[2]+b[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(d,b);R(this,"getMargins");a||this.getAxisMargins()};a.prototype.getAxisMargins=function(){var a=
this,b=a.axisOffset=[0,0,0,0],d=a.colorAxis,c=a.margin,e=function(a){a.forEach(function(a){a.visible&&a.getOffset()})};a.hasCartesianSeries?e(a.axes):d&&d.length&&e(d);h.forEach(function(d,e){V(c[e])||(a[d]+=b[e])});a.setChartSize()};a.prototype.reflow=function(a){var d=this,c=d.options.chart,e=d.renderTo,h=V(c.width)&&V(c.height),g=c.width||Z(e,"width");c=c.height||Z(e,"height");e=a?a.target:b;delete d.pointer.chartPosition;if(!h&&!d.isPrinting&&g&&c&&(e===b||e===t)){if(g!==d.containerWidth||c!==
d.containerHeight)f.clearTimeout(d.reflowTimeout),d.reflowTimeout=ea(function(){d.container&&d.setSize(void 0,void 0,!1)},a?100:0);d.containerWidth=g;d.containerHeight=c}};a.prototype.setReflow=function(a){var d=this;!1===a||this.unbindReflow?!1===a&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=L(b,"resize",function(a){d.options&&d.reflow(a)}),L(this,"destroy",this.unbindReflow))};a.prototype.setSize=function(a,b,d){var c=this,e=c.renderer;c.isResizing+=1;r(d,c);d=
e.globalAnimation;c.oldChartHeight=c.chartHeight;c.oldChartWidth=c.chartWidth;"undefined"!==typeof a&&(c.options.chart.width=a);"undefined"!==typeof b&&(c.options.chart.height=b);c.getChartSize();c.styledMode||(d?q:Q)(c.container,{width:c.chartWidth+"px",height:c.chartHeight+"px"},d);c.setChartSize(!0);e.setSize(c.chartWidth,c.chartHeight,d);c.axes.forEach(function(a){a.isDirty=!0;a.setScale()});c.isDirtyLegend=!0;c.isDirtyBox=!0;c.layOutTitles();c.getMargins();c.redraw(d);c.oldChartHeight=null;R(c,
"resize");ea(function(){c&&R(c,"endResize",null,function(){--c.isResizing})},k(d).duration)};a.prototype.setChartSize=function(a){var b=this.inverted,d=this.renderer,c=this.chartWidth,e=this.chartHeight,h=this.options.chart,f=this.spacing,g=this.clipOffset,k,l,m,A;this.plotLeft=k=Math.round(this.plotLeft);this.plotTop=l=Math.round(this.plotTop);this.plotWidth=m=Math.max(0,Math.round(c-k-this.marginRight));this.plotHeight=A=Math.max(0,Math.round(e-l-this.marginBottom));this.plotSizeX=b?A:m;this.plotSizeY=
b?m:A;this.plotBorderWidth=h.plotBorderWidth||0;this.spacingBox=d.spacingBox={x:f[3],y:f[0],width:c-f[3]-f[1],height:e-f[0]-f[2]};this.plotBox=d.plotBox={x:k,y:l,width:m,height:A};b=2*Math.floor(this.plotBorderWidth/2);c=Math.ceil(Math.max(b,g[3])/2);e=Math.ceil(Math.max(b,g[0])/2);this.clipBox={x:c,y:e,width:Math.floor(this.plotSizeX-Math.max(b,g[1])/2-c),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(b,g[2])/2-e))};a||(this.axes.forEach(function(a){a.setAxisSize();a.setAxisTranslation()}),
d.alignElements());R(this,"afterSetChartSize",{skipAxes:a})};a.prototype.resetMargins=function(){R(this,"resetMargins");var a=this,b=a.options.chart;["margin","spacing"].forEach(function(d){var c=b[d],e=N(c)?c:[c,c,c,c];["Top","Right","Bottom","Left"].forEach(function(c,h){a[d][h]=T(b[d+c],e[h])})});h.forEach(function(b,d){a[b]=T(a.margin[d],a.spacing[d])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]};a.prototype.drawChartBox=function(){var a=this.options.chart,b=this.renderer,d=this.chartWidth,
c=this.chartHeight,e=this.styledMode,h=this.plotBGImage,f=a.backgroundColor,g=a.plotBackgroundColor,k=a.plotBackgroundImage,l=this.plotLeft,m=this.plotTop,A=this.plotWidth,p=this.plotHeight,n=this.plotBox,q=this.clipRect,N=this.clipBox,t=this.chartBackground,v=this.plotBackground,r=this.plotBorder,B,y="animate";t||(this.chartBackground=t=b.rect().addClass("highcharts-background").add(),y="attr");if(e)var I=B=t.strokeWidth();else{I=a.borderWidth||0;B=I+(a.shadow?8:0);f={fill:f||"none"};if(I||t["stroke-width"])f.stroke=
a.borderColor,f["stroke-width"]=I;t.attr(f).shadow(a.shadow)}t[y]({x:B/2,y:B/2,width:d-B-I%2,height:c-B-I%2,r:a.borderRadius});y="animate";v||(y="attr",this.plotBackground=v=b.rect().addClass("highcharts-plot-background").add());v[y](n);e||(v.attr({fill:g||"none"}).shadow(a.plotShadow),k&&(h?(k!==h.attr("href")&&h.attr("href",k),h.animate(n)):this.plotBGImage=b.image(k,l,m,A,p).add()));q?q.animate({width:N.width,height:N.height}):this.clipRect=b.clipRect(N);y="animate";r||(y="attr",this.plotBorder=
r=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());e||r.attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth||0,fill:"none"});r[y](r.crisp({x:l,y:m,width:A,height:p},-r.strokeWidth()));this.isDirtyBox=!1;R(this,"afterDrawChartBox")};a.prototype.propFromSeries=function(){var a=this,b=a.options.chart,d=a.options.series,c,e,h;["inverted","angular","polar"].forEach(function(f){e=y[b.type||b.defaultSeriesType];h=b[f]||e&&e.prototype[f];for(c=d&&d.length;!h&&c--;)(e=y[d[c].type])&&
e.prototype[f]&&(h=!0);a[f]=h})};a.prototype.linkSeries=function(){var a=this,b=a.series;b.forEach(function(a){a.linkedSeries.length=0});b.forEach(function(b){var d=b.options.linkedTo;W(d)&&(d=":previous"===d?a.series[b.index-1]:a.get(d))&&d.linkedParent!==b&&(d.linkedSeries.push(b),b.linkedParent=d,d.enabledDataSorting&&b.setDataSortingOptions(),b.visible=T(b.options.visible,d.options.visible,b.visible))});R(this,"afterLinkSeries")};a.prototype.renderSeries=function(){this.series.forEach(function(a){a.translate();
a.render()})};a.prototype.renderLabels=function(){var a=this,b=a.options.labels;b.items&&b.items.forEach(function(d){var c=M(b.style,d.style),e=da(c.left)+a.plotLeft,h=da(c.top)+a.plotTop+12;delete c.left;delete c.top;a.renderer.text(d.html,e,h).attr({zIndex:2}).css(c).add()})};a.prototype.render=function(){var a=this.axes,b=this.colorAxis,d=this.renderer,c=this.options,e=function(a){a.forEach(function(a){a.visible&&a.render()})},h=0;this.setTitle();this.legend=new x(this,c.legend);this.getStacks&&
this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;a.some(function(a){if(a.horiz&&a.visible&&a.options.labels.enabled&&a.series.length)return h=21,!0});var f=this.plotHeight=Math.max(this.plotHeight-h,0);a.forEach(function(a){a.setScale()});this.getAxisMargins();var g=1.1<c/this.plotWidth,k=1.05<f/this.plotHeight;if(g||k)a.forEach(function(a){(a.horiz&&g||!a.horiz&&k)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?e(a):b&&b.length&&e(b);
this.seriesGroup||(this.seriesGroup=d.g("series-group").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.hasRendered=!0};a.prototype.addCredits=function(a){var d=this,c=X(!0,this.options.credits,a);c.enabled&&!this.credits&&(this.credits=this.renderer.text(c.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){c.href&&(b.location.href=c.href)}).attr({align:c.position.align,zIndex:8}),d.styledMode||
this.credits.css(c.style),this.credits.add().align(c.position),this.credits.update=function(a){d.credits=d.credits.destroy();d.addCredits(a)})};a.prototype.destroy=function(){var a=this,b=a.axes,d=a.series,c=a.container,e=c&&c.parentNode,h;R(a,"destroy");a.renderer.forExport?H(O,a):O[a.index]=void 0;z.chartCount--;a.renderTo.removeAttribute("data-highcharts-chart");ja(a);for(h=b.length;h--;)b[h]=b[h].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(h=d.length;h--;)d[h]=
d[h].destroy();"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" ").forEach(function(b){var d=a[b];d&&d.destroy&&(a[b]=d.destroy())});c&&(c.innerHTML="",ja(c),e&&fa(c));Y(a,function(b,d){delete a[d]})};a.prototype.firstRender=function(){var a=this,b=a.options;if(!a.isReadyToRender||a.isReadyToRender()){a.getContainer();a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();
(A(b.series)?b.series:[]).forEach(function(b){a.initSeries(b)});a.linkSeries();a.setSeriesData();R(a,"beforeRender");m&&(J.isRequired()?a.pointer=new J(a,b):a.pointer=new m(a,b));a.render();a.pointer.getChartPosition();if(!a.renderer.imgCount&&!a.hasLoaded)a.onload();a.temporaryDisplay(!0)}};a.prototype.onload=function(){this.callbacks.concat([this.callback]).forEach(function(a){a&&"undefined"!==typeof this.index&&a.apply(this,[this])},this);R(this,"load");R(this,"render");V(this.index)&&this.setReflow(this.options.chart.reflow);
this.hasLoaded=!0};a.prototype.addSeries=function(a,b,d){var c=this,e;a&&(b=T(b,!0),R(c,"addSeries",{options:a},function(){e=c.initSeries(a);c.isDirtyLegend=!0;c.linkSeries();e.enabledDataSorting&&e.setData(a.data,!1);R(c,"afterAddSeries",{series:e});b&&c.redraw(d)}));return e};a.prototype.addAxis=function(a,b,d,c){return this.createAxis(b?"xAxis":"yAxis",{axis:a,redraw:d,animation:c})};a.prototype.addColorAxis=function(a,b,d){return this.createAxis("colorAxis",{axis:a,redraw:b,animation:d})};a.prototype.createAxis=
function(a,b){a=new w(this,X(b.axis,{index:this[a].length,isX:"xAxis"===a}));T(b.redraw,!0)&&this.redraw(b.animation);return a};a.prototype.showLoading=function(a){var b=this,d=b.options,c=d.loading,e=function(){h&&Q(h,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})},h=b.loadingDiv,f=b.loadingSpan;h||(b.loadingDiv=h=S("div",{className:"highcharts-loading highcharts-loading-hidden"},null,b.container));f||(b.loadingSpan=f=S("span",{className:"highcharts-loading-inner"},
null,h),L(b,"redraw",e));h.className="highcharts-loading";v.setElementHTML(f,T(a,d.lang.loading,""));b.styledMode||(Q(h,M(c.style,{zIndex:10})),Q(f,c.labelStyle),b.loadingShown||(Q(h,{opacity:0,display:""}),q(h,{opacity:c.style.opacity||.5},{duration:c.showDuration||0})));b.loadingShown=!0;e()};a.prototype.hideLoading=function(){var a=this.options,b=this.loadingDiv;b&&(b.className="highcharts-loading highcharts-loading-hidden",this.styledMode||q(b,{opacity:0},{duration:a.loading.hideDuration||100,
complete:function(){Q(b,{display:"none"})}}));this.loadingShown=!1};a.prototype.update=function(a,b,d,c){var e=this,h={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},f=a.isResponsiveOptions,g=[],k,m;R(e,"update",{options:a});f||e.setResponsive(!1,!0);a=P(a,e.options);e.userOptions=X(e.userOptions,a);var A=a.chart;if(A){X(!0,e.options.chart,A);"className"in A&&e.setClassName(A.className);"reflow"in A&&e.setReflow(A.reflow);if("inverted"in A||"polar"in A||"type"in
A){e.propFromSeries();var p=!0}"alignTicks"in A&&(p=!0);"events"in A&&B(this,A);Y(A,function(a,b){-1!==e.propsRequireUpdateSeries.indexOf("chart."+b)&&(k=!0);-1!==e.propsRequireDirtyBox.indexOf(b)&&(e.isDirtyBox=!0);-1!==e.propsRequireReflow.indexOf(b)&&(f?e.isDirtyBox=!0:m=!0)});!e.styledMode&&A.style&&e.renderer.setStyle(e.options.chart.style||{})}!e.styledMode&&a.colors&&(this.options.colors=a.colors);a.time&&(this.time===G&&(this.time=new l(a.time)),X(!0,e.options.time,a.time));Y(a,function(b,
d){if(e[d]&&"function"===typeof e[d].update)e[d].update(b,!1);else if("function"===typeof e[h[d]])e[h[d]](b);else"colors"!==d&&-1===e.collectionsWithUpdate.indexOf(d)&&X(!0,e.options[d],a[d]);"chart"!==d&&-1!==e.propsRequireUpdateSeries.indexOf(d)&&(k=!0)});this.collectionsWithUpdate.forEach(function(b){if(a[b]){var c=[];e[b].forEach(function(a,b){a.options.isInternal||c.push(T(a.options.index,b))});ba(a[b]).forEach(function(a,h){var f=V(a.id),g;f&&(g=e.get(a.id));!g&&e[b]&&(g=e[b][c?c[h]:h])&&f&&
V(g.options.id)&&(g=void 0);g&&g.coll===b&&(g.update(a,!1),d&&(g.touched=!0));!g&&d&&e.collectionsWithInit[b]&&(e.collectionsWithInit[b][0].apply(e,[a].concat(e.collectionsWithInit[b][1]||[]).concat([!1])).touched=!0)});d&&e[b].forEach(function(a){a.touched||a.options.isInternal?delete a.touched:g.push(a)})}});g.forEach(function(a){a.chart&&a.remove&&a.remove(!1)});p&&e.axes.forEach(function(a){a.update({},!1)});k&&e.getSeriesOrderByLinks().forEach(function(a){a.chart&&a.update({},!1)},this);p=A&&
A.width;A=A&&(W(A.height)?ka(A.height,p||e.chartWidth):A.height);m||U(p)&&p!==e.chartWidth||U(A)&&A!==e.chartHeight?e.setSize(p,A,c):T(b,!0)&&e.redraw(c);R(e,"afterUpdate",{options:a,redraw:b,animation:c})};a.prototype.setSubtitle=function(a,b){this.applyDescription("subtitle",a);this.layOutTitles(b)};a.prototype.setCaption=function(a,b){this.applyDescription("caption",a);this.layOutTitles(b)};a.prototype.showResetZoom=function(){function a(){b.zoomOut()}var b=this,d=p.lang,c=b.options.chart.resetZoomButton,
e=c.theme,h=e.states,f="chart"===c.relativeTo||"spacingBox"===c.relativeTo?null:"scrollablePlotBox";R(this,"beforeShowResetZoom",null,function(){b.resetZoomButton=b.renderer.button(d.resetZoom,null,null,a,e,h&&h.hover).attr({align:c.position.align,title:d.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(c.position,!1,f)});R(this,"afterShowResetZoom")};a.prototype.zoomOut=function(){R(this,"selection",{resetSelection:!0},this.zoom)};a.prototype.zoom=function(a){var b=this,d=b.pointer,
c=b.inverted?d.mouseDownX:d.mouseDownY,e=!1,h;!a||a.resetSelection?(b.axes.forEach(function(a){h=a.zoom()}),d.initiated=!1):a.xAxis.concat(a.yAxis).forEach(function(a){var f=a.axis,g=b.inverted?f.left:f.top,k=b.inverted?g+f.width:g+f.height,l=f.isXAxis,A=!1;if(!l&&c>=g&&c<=k||l||!V(c))A=!0;d[l?"zoomX":"zoomY"]&&A&&(h=f.zoom(a.min,a.max),f.displayBtn&&(e=!0))});var f=b.resetZoomButton;e&&!f?b.showResetZoom():!e&&N(f)&&(b.resetZoomButton=f.destroy());h&&b.redraw(T(b.options.chart.animation,a&&a.animation,
100>b.pointCount))};a.prototype.pan=function(a,b){var d=this,c=d.hoverPoints;b="object"===typeof b?b:{enabled:b,type:"x"};var e=d.options.chart,h=d.options.mapNavigation&&d.options.mapNavigation.enabled;e&&e.panning&&(e.panning=b);var f=b.type,g;R(this,"pan",{originalEvent:a},function(){c&&c.forEach(function(a){a.setState()});var b=d.xAxis;"xy"===f?b=b.concat(d.yAxis):"y"===f&&(b=d.yAxis);var e={};b.forEach(function(b){if(b.options.panningEnabled&&!b.options.isInternal){var c=b.horiz,k=a[c?"chartX":
"chartY"];c=c?"mouseDownX":"mouseDownY";var l=d[c],A=b.minPointOffset||0,m=b.reversed&&!d.inverted||!b.reversed&&d.inverted?-1:1,p=b.getExtremes(),n=b.toValue(l-k,!0)+A*m,q=b.toValue(l+b.len-k,!0)-(A*m||b.isXAxis&&b.pointRangePadding||0),t=q<n;m=b.hasVerticalPanning();l=t?q:n;n=t?n:q;var N=b.panningState;!m||b.isXAxis||N&&!N.isDirty||b.series.forEach(function(a){var b=a.getProcessedData(!0);b=a.getExtremes(b.yData,!0);N||(N={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});U(b.dataMin)&&U(b.dataMax)&&
(N.startMin=Math.min(T(a.options.threshold,Infinity),b.dataMin,N.startMin),N.startMax=Math.max(T(a.options.threshold,-Infinity),b.dataMax,N.startMax))});m=Math.min(T(N&&N.startMin,p.dataMin),A?p.min:b.toValue(b.toPixels(p.min)-b.minPixelPadding));q=Math.max(T(N&&N.startMax,p.dataMax),A?p.max:b.toValue(b.toPixels(p.max)+b.minPixelPadding));b.panningState=N;b.isOrdinal||(A=m-l,0<A&&(n+=A,l=m),A=n-q,0<A&&(n=q,l-=A),b.series.length&&l!==p.min&&n!==p.max&&l>=m&&n<=q&&(b.setExtremes(l,n,!1,!1,{trigger:"pan"}),
d.resetZoomButton||h||l===m||n===q||!f.match("y")||(d.showResetZoom(),b.displayBtn=!1),g=!0),e[c]=k)}});Y(e,function(a,b){d[b]=a});g&&d.redraw(!1);Q(d.container,{cursor:"move"})})};return a}();M(a.prototype,{callbacks:[],collectionsWithInit:{xAxis:[a.prototype.addAxis,[!0]],yAxis:[a.prototype.addAxis,[!1]],series:[a.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),
propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")});"";return a});M(a,"Core/Legend/LegendSymbol.js",[a["Core/Utilities.js"]],function(a){var r=a.merge,C=a.pick,E;(function(a){a.drawLineMarker=function(a){var x=this.options,u=a.symbolWidth,n=a.symbolHeight,m=n/2,g=this.chart.renderer,
c=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);var e={},l=x.marker;this.chart.styledMode||(e={"stroke-width":x.lineWidth||0},x.dashStyle&&(e.dashstyle=x.dashStyle));this.legendLine=g.path([["M",0,a],["L",u,a]]).addClass("highcharts-graph").attr(e).add(c);l&&!1!==l.enabled&&u&&(x=Math.min(C(l.radius,m),m),0===this.symbol.indexOf("url")&&(l=r(l,{width:n,height:n}),x=0),this.legendSymbol=u=g.symbol(this.symbol,u/2-x,a-x,2*x,2*x,l).addClass("highcharts-point").add(c),u.isMarker=!0)};a.drawRectangle=
function(a,r){var u=a.symbolHeight,n=a.options.squareSymbol;r.legendSymbol=this.chart.renderer.rect(n?(a.symbolWidth-u)/2:0,a.baseline-u+1,n?u:a.symbolWidth,u,C(a.options.symbolRadius,u/2)).addClass("highcharts-point").attr({zIndex:3}).add(r.legendGroup)}})(E||(E={}));return E});M(a,"Core/Series/SeriesDefaults.js",[a["Core/Color/Palette.js"]],function(a){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:a.backgroundColor,
lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:a.neutralColor20,lineColor:a.neutralColor100,lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",defer:!0,formatter:function(){var a=this.series.chart.numberFormatter;return"number"!==typeof this.y?"":a(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},
cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"}});M(a,"Core/Series/Series.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/DefaultOptions.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Legend/LegendSymbol.js"],a["Core/Color/Palette.js"],
a["Core/Series/Point.js"],a["Core/Series/SeriesDefaults.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x,J,u,n,m,g){var c=a.animObject,e=a.setAnimation,l=w.defaultOptions,f=C.registerEventOptions,v=E.hasTouch,q=E.svg,k=E.win,r=n.seriesTypes,D=g.addEvent,B=g.arrayMax,O=g.arrayMin,t=g.clamp,h=g.cleanRecursively,d=g.correctFloat,b=g.defined,p=g.erase,G=g.error,y=g.extend,L=g.find,F=g.fireEvent,P=g.getNestedProperty,S=g.isArray,
Q=g.isNumber,V=g.isString,M=g.merge,H=g.objectEach,K=g.pick,la=g.removeEvent,ha=g.splat,R=g.syncTimeout;a=function(){function a(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}a.prototype.init=function(a,b){F(this,"init",{options:b});var d=this,c=a.series;this.eventsToUnbind=[];d.chart=a;d.options=d.setOptions(b);
b=d.options;d.linkedSeries=[];d.bindAxes();y(d,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});f(this,b);var e=b.events;if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(a){d[a+"Data"]||(d[a+"Data"]=[])});d.isCartesian&&(a.hasCartesianSeries=!0);var h;c.length&&(h=c[c.length-1]);d._i=K(h&&h._i,-1)+1;d.opacity=d.options.opacity;a.orderSeries(this.insert(c));b.dataSorting&&
b.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(b.data,!1);F(this,"afterInit")};a.prototype.is=function(a){return r[a]&&this instanceof r[a]};a.prototype.insert=function(a){var b=this.options.index,d;if(Q(b)){for(d=a.length;d--;)if(b>=K(a[d].options.index,a[d]._i)){a.splice(d+1,0,this);break}-1===d&&a.unshift(this);d+=1}else a.push(this);return K(d,a.length-1)};a.prototype.bindAxes=function(){var a=this,b=a.options,d=a.chart,c;F(this,"bindAxes",null,function(){(a.axisTypes||
[]).forEach(function(e){var h=0;d[e].forEach(function(d){c=d.options;if(b[e]===h&&!c.isInternal||"undefined"!==typeof b[e]&&b[e]===c.id||"undefined"===typeof b[e]&&0===c.index)a.insert(d.series),a[e]=d,d.isDirty=!0;c.isInternal||h++});a[e]||a.optionalAxis===e||G(18,!0,d)})});F(this,"afterBindAxes")};a.prototype.updateParallelArrays=function(a,b){var d=a.series,c=arguments,e=Q(b)?function(c){var e="y"===c&&d.toYData?d.toYData(a):a[c];d[c+"Data"][b]=e}:function(a){Array.prototype[b].apply(d[a+"Data"],
Array.prototype.slice.call(c,2))};d.parallelArrays.forEach(e)};a.prototype.hasData=function(){return this.visible&&"undefined"!==typeof this.dataMax&&"undefined"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length};a.prototype.autoIncrement=function(a){var b=this.options,d=b.pointIntervalUnit,c=b.relativeXValue,e=this.chart.time,h=this.xIncrement,f;h=K(h,b.pointStart,0);this.pointInterval=f=K(this.pointInterval,b.pointInterval,1);c&&Q(a)&&(f*=a);d&&(b=new e.Date(h),"day"===d?e.set("Date",
b,e.get("Date",b)+f):"month"===d?e.set("Month",b,e.get("Month",b)+f):"year"===d&&e.set("FullYear",b,e.get("FullYear",b)+f),f=b.getTime()-h);if(c&&Q(a))return h+f;this.xIncrement=h+f;return h};a.prototype.setDataSortingOptions=function(){var a=this.options;y(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});b(a.pointRange)||(a.pointRange=1)};a.prototype.setOptions=function(a){var d=this.chart,c=d.options,e=c.plotOptions,h=d.userOptions||{};a=M(a);d=d.styledMode;var f={plotOptions:e,
userOptions:a};F(this,"setOptions",f);var g=f.plotOptions[this.type],k=h.plotOptions||{};this.userOptions=f.userOptions;h=M(g,e.series,h.plotOptions&&h.plotOptions[this.type],a);this.tooltipOptions=M(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,a.tooltip);this.stickyTracking=K(a.stickyTracking,k[this.type]&&k[this.type].stickyTracking,k.series&&k.series.stickyTracking,this.tooltipOptions.shared&&
!this.noSharedTooltip?!0:h.stickyTracking);null===g.marker&&delete h.marker;this.zoneAxis=h.zoneAxis;e=this.zones=(h.zones||[]).slice();!h.negativeColor&&!h.negativeFillColor||h.zones||(c={value:h[this.zoneAxis+"Threshold"]||h.threshold||0,className:"highcharts-negative"},d||(c.color=h.negativeColor,c.fillColor=h.negativeFillColor),e.push(c));e.length&&b(e[e.length-1].value)&&e.push(d?{}:{color:this.color,fillColor:this.fillColor});F(this,"afterSetOptions",{options:h});return h};a.prototype.getName=
function(){return K(this.options.name,"Series "+(this.index+1))};a.prototype.getCyclic=function(a,d,c){var e=this.chart,h=this.userOptions,f=a+"Index",g=a+"Counter",k=c?c.length:K(e.options.chart[a+"Count"],e[a+"Count"]);if(!d){var l=K(h[f],h["_"+f]);b(l)||(e.series.length||(e[g]=0),h["_"+f]=l=e[g]%k,e[g]+=1);c&&(d=c[l])}"undefined"!==typeof l&&(this[f]=l);this[a]=d};a.prototype.getColor=function(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color=x.neutralColor20:
this.getCyclic("color",this.options.color||l.plotOptions[this.type].color,this.chart.options.colors)};a.prototype.getPointsCollection=function(){return(this.hasGroupedData?this.points:this.data)||[]};a.prototype.getSymbol=function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)};a.prototype.findPointIndex=function(a,b){var d=a.id,c=a.x,e=this.points,h=this.options.dataSorting,f,g;if(d)h=this.chart.get(d),h instanceof J&&(f=h);else if(this.linkedParent||this.enabledDataSorting||
this.options.relativeXValue)if(f=function(b){return!b.touched&&b.index===a.index},h&&h.matchByName?f=function(b){return!b.touched&&b.name===a.name}:this.options.relativeXValue&&(f=function(b){return!b.touched&&b.options.x===a.x}),f=L(e,f),!f)return;if(f){var k=f&&f.index;"undefined"!==typeof k&&(g=!0)}"undefined"===typeof k&&Q(c)&&(k=this.xData.indexOf(c,b));-1!==k&&"undefined"!==typeof k&&this.cropped&&(k=k>=this.cropStart?k-this.cropStart:k);!g&&Q(k)&&e[k]&&e[k].touched&&(k=void 0);return k};a.prototype.updateData=
function(a,d){var c=this.options,e=c.dataSorting,h=this.points,f=[],g=this.requireSorting,k=a.length===h.length,l,m,A,p=!0;this.xIncrement=null;a.forEach(function(a,d){var m=b(a)&&this.pointClass.prototype.optionsToObject.call({series:this},a)||{},p=m.x;if(m.id||Q(p)){if(m=this.findPointIndex(m,A),-1===m||"undefined"===typeof m?f.push(a):h[m]&&a!==c.data[m]?(h[m].update(a,!1,null,!1),h[m].touched=!0,g&&(A=m+1)):h[m]&&(h[m].touched=!0),!k||d!==m||e&&e.enabled||this.hasDerivedData)l=!0}else f.push(a)},
this);if(l)for(a=h.length;a--;)(m=h[a])&&!m.touched&&m.remove&&m.remove(!1,d);else!k||e&&e.enabled?p=!1:(a.forEach(function(a,b){a!==h[b].y&&h[b].update&&h[b].update(a,!1,null,!1)}),f.length=0);h.forEach(function(a){a&&(a.touched=!1)});if(!p)return!1;f.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=B(this.xData),this.autoIncrement());return!0};a.prototype.setData=function(a,b,d,c){var e=this,h=e.points,f=h&&h.length||
0,g=e.options,k=e.chart,l=g.dataSorting,m=e.xAxis,A=g.turboThreshold,p=this.xData,n=this.yData,q=e.pointArrayMap;q=q&&q.length;var t=g.keys,v,r=0,B=1,y=null;a=a||[];var N=a.length;b=K(b,!0);l&&l.enabled&&(a=this.sortData(a));!1!==c&&N&&f&&!e.cropped&&!e.hasGroupedData&&e.visible&&!e.isSeriesBoosting&&(v=this.updateData(a,d));if(!v){e.xIncrement=null;e.colorCounter=0;this.parallelArrays.forEach(function(a){e[a+"Data"].length=0});if(A&&N>A)if(y=e.getFirstValidPoint(a),Q(y))for(d=0;d<N;d++)p[d]=this.autoIncrement(),
n[d]=a[d];else if(S(y))if(q)for(d=0;d<N;d++)c=a[d],p[d]=c[0],n[d]=c.slice(1,q+1);else for(t&&(r=t.indexOf("x"),B=t.indexOf("y"),r=0<=r?r:0,B=0<=B?B:1),d=0;d<N;d++)c=a[d],p[d]=c[r],n[d]=c[B];else G(12,!1,k);else for(d=0;d<N;d++)"undefined"!==typeof a[d]&&(c={series:e},e.pointClass.prototype.applyOptions.apply(c,[a[d]]),e.updateParallelArrays(c,d));n&&V(n[0])&&G(14,!0,k);e.data=[];e.options.data=e.userOptions.data=a;for(d=f;d--;)h[d]&&h[d].destroy&&h[d].destroy();m&&(m.minRange=m.userMinRange);e.isDirty=
k.isDirtyBox=!0;e.isDirtyData=!!h;d=!1}"point"===g.legendType&&(this.processData(),this.generatePoints());b&&k.redraw(d)};a.prototype.sortData=function(a){var d=this,c=d.options.dataSorting.sortKey||"y",e=function(a,d){return b(d)&&a.pointClass.prototype.optionsToObject.call({series:a},d)||{}};a.forEach(function(b,c){a[c]=e(d,b);a[c].index=c},this);a.concat().sort(function(a,b){a=P(c,a);b=P(c,b);return b<a?-1:b>a?1:0}).forEach(function(a,b){a.x=b},this);d.linkedSeries&&d.linkedSeries.forEach(function(b){var d=
b.options,c=d.data;d.dataSorting&&d.dataSorting.enabled||!c||(c.forEach(function(d,h){c[h]=e(b,d);a[h]&&(c[h].x=a[h].x,c[h].index=h)}),b.setData(c,!1))});return a};a.prototype.getProcessedData=function(a){var b=this.xAxis,d=this.options,c=d.cropThreshold,e=a||this.getExtremesFromAll||d.getExtremesFromAll,h=this.isCartesian;a=b&&b.val2lin;d=!(!b||!b.logarithmic);var f=0,g=this.xData,k=this.yData,l=this.requireSorting;var m=!1;var A=g.length;if(b){m=b.getExtremes();var p=m.min;var n=m.max;m=b.categories&&
!b.names.length}if(h&&this.sorted&&!e&&(!c||A>c||this.forceCrop))if(g[A-1]<p||g[0]>n)g=[],k=[];else if(this.yData&&(g[0]<p||g[A-1]>n)){var q=this.cropData(this.xData,this.yData,p,n);g=q.xData;k=q.yData;f=q.start;q=!0}for(c=g.length||1;--c;)if(b=d?a(g[c])-a(g[c-1]):g[c]-g[c-1],0<b&&("undefined"===typeof t||b<t))var t=b;else 0>b&&l&&!m&&(G(15,!1,this.chart),l=!1);return{xData:g,yData:k,cropped:q,cropStart:f,closestPointRange:t}};a.prototype.processData=function(a){var b=this.xAxis;if(this.isCartesian&&
!this.isDirty&&!b.isDirty&&!this.yAxis.isDirty&&!a)return!1;a=this.getProcessedData();this.cropped=a.cropped;this.cropStart=a.cropStart;this.processedXData=a.xData;this.processedYData=a.yData;this.closestPointRange=this.basePointRange=a.closestPointRange};a.prototype.cropData=function(a,b,d,c,e){var h=a.length,f,g=0,k=h;e=K(e,this.cropShoulder);for(f=0;f<h;f++)if(a[f]>=d){g=Math.max(0,f-e);break}for(d=f;d<h;d++)if(a[d]>c){k=d+e;break}return{xData:a.slice(g,k),yData:b.slice(g,k),start:g,end:k}};a.prototype.generatePoints=
function(){var a=this.options,b=a.data,d=this.processedXData,c=this.processedYData,e=this.pointClass,h=d.length,f=this.cropStart||0,g=this.hasGroupedData,k=a.keys,l=[];a=a.dataGrouping&&a.dataGrouping.groupAll?f:0;var m,p,n=this.data;if(!n&&!g){var q=[];q.length=b.length;n=this.data=q}k&&g&&(this.options.keys=!1);for(p=0;p<h;p++){q=f+p;if(g){var t=(new e).init(this,[d[p]].concat(ha(c[p])));t.dataGroup=this.groupMap[a+p];t.dataGroup.options&&(t.options=t.dataGroup.options,y(t,t.dataGroup.options),
delete t.dataLabels)}else(t=n[q])||"undefined"===typeof b[q]||(n[q]=t=(new e).init(this,b[q],d[p]));t&&(t.index=g?a+p:q,l[p]=t)}this.options.keys=k;if(n&&(h!==(m=n.length)||g))for(p=0;p<m;p++)p!==f||g||(p+=h),n[p]&&(n[p].destroyElements(),n[p].plotX=void 0);this.data=n;this.points=l;F(this,"afterGeneratePoints")};a.prototype.getXExtremes=function(a){return{min:O(a),max:B(a)}};a.prototype.getExtremes=function(a,b){var d=this.xAxis,c=this.yAxis,e=this.processedXData||this.xData,h=[],f=this.requireSorting?
this.cropShoulder:0;c=c?c.positiveValuesOnly:!1;var g,k=0,l=0,m=0;a=a||this.stackedYData||this.processedYData||[];var p=a.length;if(d){var n=d.getExtremes();k=n.min;l=n.max}for(g=0;g<p;g++){var A=e[g];n=a[g];var q=(Q(n)||S(n))&&(n.length||0<n||!c);A=b||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!d||(e[g+f]||A)>=k&&(e[g-f]||A)<=l;if(q&&A)if(q=n.length)for(;q--;)Q(n[q])&&(h[m++]=n[q]);else h[m++]=n}a={dataMin:O(h),dataMax:B(h)};F(this,"afterGetExtremes",{dataExtremes:a});
return a};a.prototype.applyExtremes=function(){var a=this.getExtremes();this.dataMin=a.dataMin;this.dataMax=a.dataMax;return a};a.prototype.getFirstValidPoint=function(a){for(var b=a.length,d=0,c=null;null===c&&d<b;)c=a[d],d++;return c};a.prototype.translate=function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,c=a.stacking,e=this.xAxis,h=e.categories,f=this.enabledDataSorting,g=this.yAxis,k=this.points,l=k.length,m=!!this.modifyValue,p=this.pointPlacementToXValue(),
n=!!p,q=a.threshold,v=a.startFromThreshold?q:0,r=this.zoneAxis||"y",B,y,I=Number.MAX_VALUE;for(B=0;B<l;B++){var D=k[B],u=D.x,G=void 0,x=void 0,w=D.y,L=D.low,z=c&&g.stacking&&g.stacking.stacks[(this.negStacks&&w<(v?0:q)?"-":"")+this.stackKey];if(g.positiveValuesOnly&&!g.validatePositiveValue(w)||e.positiveValuesOnly&&!e.validatePositiveValue(u))D.isNull=!0;D.plotX=y=d(t(e.translate(u,0,0,0,1,p,"flags"===this.type),-1E5,1E5));if(c&&this.visible&&z&&z[u]){var C=this.getStackIndicator(C,u,this.index);
D.isNull||(G=z[u],x=G.points[C.key])}S(x)&&(L=x[0],w=x[1],L===v&&C.key===z[u].base&&(L=K(Q(q)&&q,g.min)),g.positiveValuesOnly&&0>=L&&(L=null),D.total=D.stackTotal=G.total,D.percentage=G.total&&D.y/G.total*100,D.stackY=w,this.irregularWidths||G.setOffset(this.pointXOffset||0,this.barW||0));D.yBottom=b(L)?t(g.translate(L,0,1,0,1),-1E5,1E5):null;m&&(w=this.modifyValue(w,D));D.plotY=void 0;Q(w)&&(G=g.translate(w,!1,!0,!1,!0),"undefined"!==typeof G&&(D.plotY=t(G,-1E5,1E5)));D.isInside=this.isPointInside(D);
D.clientX=n?d(e.translate(u,0,0,0,1,p)):y;D.negative=D[r]<(a[r+"Threshold"]||q||0);D.category=h&&"undefined"!==typeof h[D.x]?h[D.x]:D.x;if(!D.isNull&&!1!==D.visible){"undefined"!==typeof H&&(I=Math.min(I,Math.abs(y-H)));var H=y}D.zone=this.zones.length&&D.getZone();!D.graphic&&this.group&&f&&(D.isNew=!0)}this.closestPointRangePx=I;F(this,"afterTranslate")};a.prototype.getValidPoints=function(a,b,d){var c=this.chart;return(a||this.points||[]).filter(function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,
{inverted:c.inverted})?!1:!1!==a.visible&&(d||!a.isNull)})};a.prototype.getClipBox=function(a,b){var d=this.options,c=this.chart,e=c.inverted,h=this.xAxis,f=h&&this.yAxis,g=c.options.chart.scrollablePlotArea||{};a&&!1===d.clip&&f?a=e?{y:-c.chartWidth+f.len+f.pos,height:c.chartWidth,width:c.chartHeight,x:-c.chartHeight+h.len+h.pos}:{y:-f.pos,height:c.chartHeight,width:c.chartWidth,x:-h.pos}:(a=this.clipBox||c.clipBox,b&&(a.width=c.plotSizeX,a.x=(c.scrollablePixelsX||0)*(g.scrollPositionX||0)));return b?
{width:a.width,x:a.x}:a};a.prototype.getSharedClipKey=function(a){if(this.sharedClipKey)return this.sharedClipKey;var b=[a&&a.duration,a&&a.easing,a&&a.defer,this.getClipBox(a).height,this.options.xAxis,this.options.yAxis].join();if(!1!==this.options.clip||a)this.sharedClipKey=b;return b};a.prototype.setClip=function(a){var b=this.chart,d=this.options,c=b.renderer,e=b.inverted,h=this.clipBox,f=this.getClipBox(a),g=this.getSharedClipKey(a),k=b.sharedClips[g],l=b.sharedClips[g+"m"];a&&(f.width=0,e&&
(f.x=b.plotHeight+(!1!==d.clip?0:b.plotTop)));k?b.hasLoaded||k.attr(f):(a&&(b.sharedClips[g+"m"]=l=c.clipRect(e?(b.plotSizeX||0)+99:-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b.sharedClips[g]=k=c.clipRect(f),k.count={length:0});a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);if(!1!==d.clip||a)this.group.clip(a||h?k:b.clipRect),this.markerGroup.clip(l);a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&(h||(b.sharedClips[g]=
k.destroy()),l&&(b.sharedClips[g+"m"]=l.destroy())))};a.prototype.animate=function(a){var b=this.chart,d=c(this.options.animation),e=this.sharedClipKey;if(a)this.setClip(d);else if(e){a=b.sharedClips[e];e=b.sharedClips[e+"m"];var h=this.getClipBox(d,!0);a&&a.animate(h,d);e&&e.animate({width:h.width+99,x:h.x-(b.inverted?0:99)},d)}};a.prototype.afterAnimate=function(){this.setClip();F(this,"afterAnimate");this.finishedAnimating=!0};a.prototype.drawPoints=function(){var a=this.points,b=this.chart,d=
this.options.marker,c=this[this.specialGroup]||this.markerGroup,e=this.xAxis,h=K(d.enabled,!e||e.isRadial?!0:null,this.closestPointRangePx>=d.enabledThreshold*d.radius),f,g;if(!1!==d.enabled||this._hasPointMarkers)for(f=0;f<a.length;f++){var k=a[f];var l=(g=k.graphic)?"animate":"attr";var m=k.marker||{};var p=!!k.marker;if((h&&"undefined"===typeof m.enabled||m.enabled)&&!k.isNull&&!1!==k.visible){var n=K(m.symbol,this.symbol,"rect");var q=this.markerAttribs(k,k.selected&&"select");this.enabledDataSorting&&
(k.startXPos=e.reversed?-(q.width||0):e.width);var t=!1!==k.isInside;g?g[t?"show":"hide"](t).animate(q):t&&(0<(q.width||0)||k.hasImage)&&(k.graphic=g=b.renderer.symbol(n,q.x,q.y,q.width,q.height,p?m:d).add(c),this.enabledDataSorting&&b.hasRendered&&(g.attr({x:k.startXPos}),l="animate"));g&&"animate"===l&&g[t?"show":"hide"](t).animate(q);if(g&&!b.styledMode)g[l](this.pointAttribs(k,k.selected&&"select"));g&&g.addClass(k.getClassName(),!0)}else g&&(k.graphic=g.destroy())}};a.prototype.markerAttribs=
function(a,b){var d=this.options,c=d.marker,e=a.marker||{},h=e.symbol||c.symbol,f=K(e.radius,c.radius);b&&(c=c.states[b],b=e.states&&e.states[b],f=K(b&&b.radius,c&&c.radius,f+(c&&c.radiusPlus||0)));a.hasImage=h&&0===h.indexOf("url");a.hasImage&&(f=0);a={x:d.crisp?Math.floor(a.plotX-f):a.plotX-f,y:a.plotY-f};f&&(a.width=a.height=2*f);return a};a.prototype.pointAttribs=function(a,b){var d=this.options.marker,c=a&&a.options,e=c&&c.marker||{},h=c&&c.color,f=a&&a.color,g=a&&a.zone&&a.zone.color,k=this.color;
a=K(e.lineWidth,d.lineWidth);c=1;k=h||g||f||k;h=e.fillColor||d.fillColor||k;f=e.lineColor||d.lineColor||k;b=b||"normal";d=d.states[b];b=e.states&&e.states[b]||{};a=K(b.lineWidth,d.lineWidth,a+K(b.lineWidthPlus,d.lineWidthPlus,0));h=b.fillColor||d.fillColor||h;f=b.lineColor||d.lineColor||f;c=K(b.opacity,d.opacity,c);return{stroke:f,"stroke-width":a,fill:h,opacity:c}};a.prototype.destroy=function(a){var b=this,d=b.chart,c=/AppleWebKit\/533/.test(k.navigator.userAgent),e=b.data||[],h,f,l,n;F(b,"destroy");
this.removeEvents(a);(b.axisTypes||[]).forEach(function(a){(n=b[a])&&n.series&&(p(n.series,b),n.isDirty=n.forceRedraw=!0)});b.legendItem&&b.chart.legend.destroyItem(b);for(f=e.length;f--;)(l=e[f])&&l.destroy&&l.destroy();b.clips&&b.clips.forEach(function(a){return a.destroy()});g.clearTimeout(b.animationTimeout);H(b,function(a,b){a instanceof m&&!a.survive&&(h=c&&"group"===b?"hide":"destroy",a[h]())});d.hoverSeries===b&&(d.hoverSeries=void 0);p(d.series,b);d.orderSeries();H(b,function(d,c){a&&"hcEvents"===
c||delete b[c]})};a.prototype.applyZones=function(){var a=this,b=this.chart,d=b.renderer,c=this.zones,e=this.clips||[],h=this.graph,f=this.area,g=Math.max(b.chartWidth,b.chartHeight),k=this[(this.zoneAxis||"y")+"Axis"],l=b.inverted,m,p,n,q,v,r,B,y,D=!1;if(c.length&&(h||f)&&k&&"undefined"!==typeof k.min){var I=k.reversed;var F=k.horiz;h&&!this.showLine&&h.hide();f&&f.hide();var u=k.getExtremes();c.forEach(function(c,A){m=I?F?b.plotWidth:0:F?0:k.toPixels(u.min)||0;m=t(K(p,m),0,g);p=t(Math.round(k.toPixels(K(c.value,
u.max),!0)||0),0,g);D&&(m=p=k.toPixels(u.max));q=Math.abs(m-p);v=Math.min(m,p);r=Math.max(m,p);k.isXAxis?(n={x:l?r:v,y:0,width:q,height:g},F||(n.x=b.plotHeight-n.x)):(n={x:0,y:l?r:v,width:g,height:q},F&&(n.y=b.plotWidth-n.y));l&&d.isVML&&(n=k.isXAxis?{x:0,y:I?v:r,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});e[A]?e[A].animate(n):e[A]=d.clipRect(n);B=a["zone-area-"+A];y=a["zone-graph-"+A];h&&y&&y.clip(e[A]);f&&B&&B.clip(e[A]);D=c.value>
u.max;a.resetZones&&0===p&&(p=void 0)});this.clips=e}else a.visible&&(h&&h.show(!0),f&&f.show(!0))};a.prototype.invertGroups=function(a){function b(){["group","markerGroup"].forEach(function(b){d[b]&&(c.renderer.isVML&&d[b].attr({width:d.yAxis.len,height:d.xAxis.len}),d[b].width=d.yAxis.len,d[b].height=d.xAxis.len,d[b].invert(d.isRadialSeries?!1:a))})}var d=this,c=d.chart;d.xAxis&&(d.eventsToUnbind.push(D(c,"resize",b)),b(),d.invertGroups=b)};a.prototype.plotGroup=function(a,d,c,e,h){var f=this[a],
g=!f;c={visibility:c,zIndex:e||.1};"undefined"===typeof this.opacity||this.chart.styledMode||"inactive"===this.state||(c.opacity=this.opacity);g&&(this[a]=f=this.chart.renderer.g().add(h));f.addClass("highcharts-"+d+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(b(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(f.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);f.attr(c)[g?"attr":"animate"](this.getPlotBox());return f};
a.prototype.getPlotBox=function(){var a=this.chart,b=this.xAxis,d=this.yAxis;a.inverted&&(b=d,d=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:d?d.top:a.plotTop,scaleX:1,scaleY:1}};a.prototype.removeEvents=function(a){a||la(this);this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind.length=0)};a.prototype.render=function(){var a=this,b=a.chart,d=a.options,e=c(d.animation),h=a.visible?"inherit":"hidden",f=d.zIndex,g=a.hasRendered,k=b.seriesGroup,
l=b.inverted,m=!a.finishedAnimating&&b.renderer.isSVG&&e.duration;F(this,"render");var p=a.plotGroup("group","series",h,f,k);a.markerGroup=a.plotGroup("markerGroup","markers",h,f,k);m&&a.animate&&a.animate(!0);p.inverted=K(a.invertible,a.isCartesian)?l:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(l);!1===d.clip||a.sharedClipKey||
g||p.clip(b.clipRect);m&&a.animate&&a.animate();g||(m&&e.defer&&(m+=e.defer),a.animationTimeout=R(function(){a.afterAnimate()},m||0));a.isDirty=!1;a.hasRendered=!0;F(a,"afterRender")};a.prototype.redraw=function(){var a=this.chart,b=this.isDirty||this.isDirtyData,d=this.group,c=this.xAxis,e=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:K(c&&c.left,a.plotLeft),translateY:K(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree};
a.prototype.searchPoint=function(a,b){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-a.chartY+d.pos:a.chartX-d.pos,plotY:e?c.len-a.chartX+c.pos:a.chartY-c.pos},b,a)};a.prototype.buildKDTree=function(a){function b(a,c,e){var h=a&&a.length;if(h){var f=d.kdAxisArray[c%e];a.sort(function(a,b){return a[f]-b[f]});h=Math.floor(h/2);return{point:a[h],left:b(a.slice(0,h),c+1,e),right:b(a.slice(h+1),c+1,e)}}}this.buildingKdTree=!0;var d=this,c=-1<d.options.findNearestPointBy.indexOf("y")?
2:1;delete d.kdTree;R(function(){d.kdTree=b(d.getValidPoints(null,!d.directTouch),c,c);d.buildingKdTree=!1},d.options.kdNow||a&&"touchstart"===a.type?0:1)};a.prototype.searchKDTree=function(a,d,c){function e(a,d,c,l){var m=d.point,p=h.kdAxisArray[c%l],n=m,q=b(a[f])&&b(m[f])?Math.pow(a[f]-m[f],2):null;var t=b(a[g])&&b(m[g])?Math.pow(a[g]-m[g],2):null;t=(q||0)+(t||0);m.dist=b(t)?Math.sqrt(t):Number.MAX_VALUE;m.distX=b(q)?Math.sqrt(q):Number.MAX_VALUE;p=a[p]-m[p];t=0>p?"left":"right";q=0>p?"right":"left";
d[t]&&(t=e(a,d[t],c+1,l),n=t[k]<n[k]?t:m);d[q]&&Math.sqrt(p*p)<n[k]&&(a=e(a,d[q],c+1,l),n=a[k]<n[k]?a:n);return n}var h=this,f=this.kdAxisArray[0],g=this.kdAxisArray[1],k=d?"distX":"dist";d=-1<h.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(c);if(this.kdTree)return e(a,this.kdTree,d,d)};a.prototype.pointPlacementToXValue=function(){var a=this.options,b=a.pointRange,d=this.xAxis;a=a.pointPlacement;"between"===a&&(a=d.reversed?-.5:.5);return Q(a)?a*(b||
d.pointRange):0};a.prototype.isPointInside=function(a){return"undefined"!==typeof a.plotY&&"undefined"!==typeof a.plotX&&0<=a.plotY&&a.plotY<=this.yAxis.len&&0<=a.plotX&&a.plotX<=this.xAxis.len};a.prototype.drawTracker=function(){var a=this,b=a.options,d=b.trackByArea,c=[].concat(d?a.areaPath:a.graphPath),e=a.chart,h=e.pointer,f=e.renderer,g=e.options.tooltip.snap,k=a.tracker,l=function(b){if(e.hoverSeries!==a)a.onMouseOver()},m="rgba(192,192,192,"+(q?.0001:.002)+")";k?k.attr({d:c}):a.graph&&(a.tracker=
f.path(c).attr({visibility:a.visible?"visible":"hidden",zIndex:2}).addClass(d?"highcharts-tracker-area":"highcharts-tracker-line").add(a.group),e.styledMode||a.tracker.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:m,fill:d?m:"none","stroke-width":a.graph.strokeWidth()+(d?0:2*g)}),[a.tracker,a.markerGroup,a.dataLabelsGroup].forEach(function(a){if(a&&(a.addClass("highcharts-tracker").on("mouseover",l).on("mouseout",function(a){h.onTrackerMouseOut(a)}),b.cursor&&!e.styledMode&&a.css({cursor:b.cursor}),
v))a.on("touchstart",l)}));F(this,"afterDrawTracker")};a.prototype.addPoint=function(a,b,d,c,e){var h=this.options,f=this.data,g=this.chart,k=this.xAxis;k=k&&k.hasNames&&k.names;var l=h.data,m=this.xData,p;b=K(b,!0);var n={series:this};this.pointClass.prototype.applyOptions.apply(n,[a]);var q=n.x;var t=m.length;if(this.requireSorting&&q<m[t-1])for(p=!0;t&&m[t-1]>q;)t--;this.updateParallelArrays(n,"splice",t,0,0);this.updateParallelArrays(n,t);k&&n.name&&(k[q]=n.name);l.splice(t,0,a);p&&(this.data.splice(t,
0,null),this.processData());"point"===h.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(n,"shift"),l.shift()));!1!==e&&F(this,"addPoint",{point:n});this.isDirtyData=this.isDirty=!0;b&&g.redraw(c)};a.prototype.removePoint=function(a,b,d){var c=this,h=c.data,f=h[a],g=c.points,k=c.chart,l=function(){g&&g.length===h.length&&g.splice(a,1);h.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();
c.isDirty=!0;c.isDirtyData=!0;b&&k.redraw()};e(d,k);b=K(b,!0);f?f.firePointEvent("remove",null,l):l()};a.prototype.remove=function(a,b,d,c){function e(){h.destroy(c);f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();K(a,!0)&&f.redraw(b)}var h=this,f=h.chart;!1!==d?F(h,"remove",null,e):e()};a.prototype.update=function(a,b){a=h(a,this.userOptions);F(this,"update",{options:a});var d=this,c=d.chart,e=d.userOptions,f=d.initialType||d.type,g=c.options.plotOptions,k=r[f].prototype,l=d.finishedAnimating&&{animation:!1},
m={},p,n=["eventOptions","navigatorSeries","baseSeries"],q=a.type||e.type||c.options.chart.type,t=!(this.hasDerivedData||q&&q!==this.type||"undefined"!==typeof a.pointStart||"undefined"!==typeof a.pointInterval||"undefined"!==typeof a.relativeXValue||d.hasOptionChanged("dataGrouping")||d.hasOptionChanged("pointStart")||d.hasOptionChanged("pointInterval")||d.hasOptionChanged("pointIntervalUnit")||d.hasOptionChanged("keys"));q=q||f;t&&(n.push("data","isDirtyData","points","processedXData","processedYData",
"xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","mapMap","mapData","minY","maxY","minX","maxX"),!1!==a.visible&&n.push("area","graph"),d.parallelArrays.forEach(function(a){n.push(a+"Data")}),a.data&&(a.dataSorting&&y(d.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=M(e,l,{index:"undefined"===typeof e.index?d.index:e.index,pointStart:K(g&&g.series&&g.series.pointStart,e.pointStart,d.xData[0])},!t&&{data:d.options.data},a);t&&a.data&&(a.data=d.options.data);
n=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(n);n.forEach(function(a){n[a]=d[a];delete d[a]});g=!1;if(r[q]){if(g=q!==d.type,d.remove(!1,!1,!1,!0),g)if(Object.setPrototypeOf)Object.setPrototypeOf(d,r[q].prototype);else{l=Object.hasOwnProperty.call(d,"hcEvents")&&d.hcEvents;for(p in k)d[p]=void 0;y(d,r[q].prototype);l?d.hcEvents=l:delete d.hcEvents}}else G(17,!0,c,{missingModuleFor:q});n.forEach(function(a){d[a]=n[a]});d.init(c,a);if(t&&this.points){var v=d.options;!1===v.visible?
(m.graphic=1,m.dataLabel=1):d._hasPointLabels||(a=v.marker,k=v.dataLabels,!a||!1!==a.enabled&&(e.marker&&e.marker.symbol)===a.symbol||(m.graphic=1),k&&!1===k.enabled&&(m.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),Object.keys(m).length&&a.destroyElements(m),!1===v.showInLegend&&a.legendItem&&c.legend.destroyItem(a))},this)}d.initialType=f;c.linkSeries();g&&d.linkedSeries.length&&(d.isDirtyData=!0);F(this,"afterUpdate");K(b,!0)&&c.redraw(t?void 0:!1)};a.prototype.setName=
function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0};a.prototype.hasOptionChanged=function(a){var b=this.options[a],d=this.chart.options.plotOptions,c=this.userOptions[a];return c?b!==c:b!==K(d&&d[this.type]&&d[this.type][a],d&&d.series&&d.series[a],b)};a.prototype.onMouseOver=function(){var a=this.chart,b=a.hoverSeries;a.pointer.setHoverChartIndex();if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&F(this,"mouseOver");this.setState("hover");a.hoverSeries=
this};a.prototype.onMouseOut=function(){var a=this.options,b=this.chart,d=b.tooltip,c=b.hoverPoint;b.hoverSeries=null;if(c)c.onMouseOut();this&&a.events.mouseOut&&F(this,"mouseOut");!d||this.stickyTracking||d.shared&&!this.noSharedTooltip||d.hide();b.series.forEach(function(a){a.setState("",!0)})};a.prototype.setState=function(a,b){var d=this,c=d.options,e=d.graph,h=c.inactiveOtherPoints,f=c.states,g=K(f[a||"normal"]&&f[a||"normal"].animation,d.chart.options.chart.animation),k=c.lineWidth,l=0,m=c.opacity;
a=a||"";if(d.state!==a&&([d.group,d.markerGroup,d.dataLabelsGroup].forEach(function(b){b&&(d.state&&b.removeClass("highcharts-series-"+d.state),a&&b.addClass("highcharts-series-"+a))}),d.state=a,!d.chart.styledMode)){if(f[a]&&!1===f[a].enabled)return;a&&(k=f[a].lineWidth||k+(f[a].lineWidthPlus||0),m=K(f[a].opacity,m));if(e&&!e.dashstyle)for(c={"stroke-width":k},e.animate(c,g);d["zone-graph-"+l];)d["zone-graph-"+l].animate(c,g),l+=1;h||[d.group,d.markerGroup,d.dataLabelsGroup,d.labelBySeries].forEach(function(a){a&&
a.animate({opacity:m},g)})}b&&h&&d.points&&d.setAllPointsToState(a||void 0)};a.prototype.setAllPointsToState=function(a){this.points.forEach(function(b){b.setState&&b.setState(a)})};a.prototype.setVisible=function(a,b){var d=this,c=d.chart,e=d.legendItem,h=c.options.chart.ignoreHiddenSeries,f=d.visible,g=(d.visible=a=d.options.visible=d.userOptions.visible="undefined"===typeof a?!f:a)?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(function(a){if(d[a])d[a][g]()});if(c.hoverSeries===
d||(c.hoverPoint&&c.hoverPoint.series)===d)d.onMouseOut();e&&c.legend.colorizeItem(d,a);d.isDirty=!0;d.options.stacking&&c.series.forEach(function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});d.linkedSeries.forEach(function(b){b.setVisible(a,!1)});h&&(c.isDirtyBox=!0);F(d,g);!1!==b&&c.redraw()};a.prototype.show=function(){this.setVisible(!0)};a.prototype.hide=function(){this.setVisible(!1)};a.prototype.select=function(a){this.selected=a=this.options.selected="undefined"===typeof a?!this.selected:
a;this.checkbox&&(this.checkbox.checked=a);F(this,a?"select":"unselect")};a.prototype.shouldShowTooltip=function(a,b,d){void 0===d&&(d={});d.series=this;d.visiblePlotOnly=!0;return this.chart.isInsidePlot(a,b,d)};a.defaultOptions=u;return a}();y(a.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,drawLegendSymbol:z.drawLineMarker,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:J,requireSorting:!0,sorted:!0});n.series=
a;"";"";return a});M(a,"Extensions/ScrollablePlotArea.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/Axis.js"],a["Core/Chart/Chart.js"],a["Core/Series/Series.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){var r=a.stop,u=x.addEvent,n=x.createElement,m=x.merge,g=x.pick;u(C,"afterSetChartSize",function(a){var c=this.options.chart.scrollablePlotArea,g=c&&c.minWidth;c=c&&c.minHeight;if(!this.renderer.forExport){if(g){if(this.scrollablePixelsX=g=Math.max(0,
g-this.chartWidth)){this.scrollablePlotBox=this.renderer.scrollablePlotBox=m(this.plotBox);this.plotBox.width=this.plotWidth+=g;this.inverted?this.clipBox.height+=g:this.clipBox.width+=g;var f={1:{name:"right",value:g}}}}else c&&(this.scrollablePixelsY=g=Math.max(0,c-this.chartHeight))&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=m(this.plotBox),this.plotBox.height=this.plotHeight+=g,this.inverted?this.clipBox.width+=g:this.clipBox.height+=g,f={2:{name:"bottom",value:g}});f&&!a.skipAxes&&
this.axes.forEach(function(a){f[a.side]?a.getPlotLinePath=function(){var c=f[a.side].name,e=this[c];this[c]=e-f[a.side].value;var g=w.prototype.getPlotLinePath.apply(this,arguments);this[c]=e;return g}:(a.setAxisSize(),a.setAxisTranslation())})}});u(C,"render",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});C.prototype.setUpScrolling=function(){var a=this,e={WebkitOverflowScrolling:"touch",
overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(e.overflowX="auto");this.scrollablePixelsY&&(e.overflowY="auto");this.scrollingParent=n("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo);this.scrollingContainer=n("div",{className:"highcharts-scrolling"},e,this.scrollingParent);u(this.scrollingContainer,"scroll",function(){a.pointer&&delete a.pointer.chartPosition});this.innerContainer=n("div",{className:"highcharts-inner-container"},null,this.scrollingContainer);
this.innerContainer.appendChild(this.container);this.setUpScrolling=null};C.prototype.moveFixedElements=function(){var a=this.container,e=this.fixedRenderer,g=".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" "),f;this.scrollablePixelsX&&
!this.inverted?f=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted?f=".highcharts-xaxis":this.scrollablePixelsY&&!this.inverted?f=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(f=".highcharts-yaxis");f&&g.push(f+":not(.highcharts-radial-axis)",f+"-labels:not(.highcharts-radial-axis-labels)");g.forEach(function(c){[].forEach.call(a.querySelectorAll(c),function(a){(a.namespaceURI===e.SVG_NS?e.box:e.box.parentNode).appendChild(a);a.style.pointerEvents="auto"})})};C.prototype.applyFixed=
function(){var a=!this.fixedDiv,e=this.options.chart,l=e.scrollablePlotArea,f=z.getRendererType();a?(this.fixedDiv=n("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(e.style&&e.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=e=new f(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),
this.scrollableMask=e.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":g(l.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),u(this,"afterShowResetZoom",this.moveFixedElements),u(this,"afterDrilldown",this.moveFixedElements),u(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);if(this.scrollableDirty||a)this.scrollableDirty=!1,this.moveFixedElements();e=this.chartWidth+(this.scrollablePixelsX||
0);f=this.chartHeight+(this.scrollablePixelsY||0);r(this.container);this.container.style.width=e+"px";this.container.style.height=f+"px";this.renderer.boxWrapper.attr({width:e,height:f,viewBox:[0,0,e,f].join(" ")});this.chartBackground.attr({width:e,height:f});this.scrollingContainer.style.height=this.chartHeight+"px";a&&(l.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*l.scrollPositionX),l.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*l.scrollPositionY));
f=this.axisOffset;a=this.plotTop-f[0]-1;l=this.plotLeft-f[3]-1;e=this.plotTop+this.plotHeight+f[2]+1;f=this.plotLeft+this.plotWidth+f[1]+1;var m=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),q=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);a=this.scrollablePixelsX?[["M",0,a],["L",this.plotLeft-1,a],["L",this.plotLeft-1,e],["L",0,e],["Z"],["M",m,a],["L",this.chartWidth,a],["L",this.chartWidth,e],["L",m,e],["Z"]]:this.scrollablePixelsY?[["M",l,0],["L",l,this.plotTop-1],["L",f,this.plotTop-
1],["L",f,0],["Z"],["M",l,q],["L",l,this.chartHeight],["L",f,this.chartHeight],["L",f,q],["Z"]]:[["M",0,0]];"adjustHeight"!==this.redrawTrigger&&this.scrollableMask.attr({d:a})};u(w,"afterInit",function(){this.chart.scrollableDirty=!0});u(E,"show",function(){this.chart.scrollableDirty=!0});""});M(a,"Core/Axis/StackingAxis.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/Axis.js"],a["Core/Utilities.js"]],function(a,w,C){var r=a.getDeferredAnimation,z=C.addEvent,x=C.destroyObjectProperties,
J=C.fireEvent,u=C.isNumber,n=C.objectEach,m;(function(a){function c(){var a=this.stacking;if(a){var c=a.stacks;n(c,function(a,e){x(a);c[e]=null});a&&a.stackTotalGroup&&a.stackTotalGroup.destroy()}}function e(){this.stacking||(this.stacking=new f(this))}var g=[];a.compose=function(a){-1===g.indexOf(a)&&(g.push(a),z(a,"init",e),z(a,"destroy",c));return a};var f=function(){function a(a){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=a}a.prototype.buildStacks=function(){var a=this.axis,
c=a.series,e=a.options.reversedStacks,f=c.length,g;if(!a.isXAxis){this.usePercentage=!1;for(g=f;g--;){var l=c[e?g:f-g-1];l.setStackedPoints();l.setGroupedPoints()}for(g=0;g<f;g++)c[g].modifyStacks();J(a,"afterBuildStacks")}};a.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var a=this.stacks=this.oldStacks;n(a,function(a){n(a,function(a){a.cumulative=a.total})})}};a.prototype.resetStacks=function(){var a=this,c=a.stacks;a.axis.isXAxis||n(c,function(c){n(c,function(e,f){u(e.touched)&&
e.touched<a.stacksTouched?(e.destroy(),delete c[f]):(e.total=null,e.cumulative=null)})})};a.prototype.renderStackTotals=function(){var a=this.axis,c=a.chart,e=c.renderer,f=this.stacks;a=r(c,a.options.stackLabels&&a.options.stackLabels.animation||!1);var g=this.stackTotalGroup=this.stackTotalGroup||e.g("stack-labels").attr({visibility:"visible",zIndex:6,opacity:0}).add();g.translate(c.plotLeft,c.plotTop);n(f,function(a){n(a,function(a){a.render(g)})});g.animate({opacity:1},a)};return a}();a.Additions=
f})(m||(m={}));return m});M(a,"Extensions/Stacking.js",[a["Core/Axis/Axis.js"],a["Core/Chart/Chart.js"],a["Core/FormatUtilities.js"],a["Core/Globals.js"],a["Core/Series/Series.js"],a["Core/Axis/StackingAxis.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x,J){var r=C.format,n=J.correctFloat,m=J.defined,g=J.destroyObjectProperties,c=J.isArray,e=J.isNumber,l=J.objectEach,f=J.pick,v=function(){function a(a,c,e,f,g){var k=a.chart.inverted;this.axis=a;this.isNegative=e;this.options=c=c||{};this.x=f;this.total=
null;this.points={};this.hasValidPoints=!1;this.stack=g;this.rightCliff=this.leftCliff=0;this.alignOptions={align:c.align||(k?e?"left":"right":"center"),verticalAlign:c.verticalAlign||(k?"middle":e?"bottom":"top"),y:c.y,x:c.x};this.textAlign=c.textAlign||(k?e?"right":"left":"center")}a.prototype.destroy=function(){g(this,this.axis)};a.prototype.render=function(a){var c=this.axis.chart,e=this.options,g=e.format;g=g?r(g,this,c):e.formatter.call(this);this.label?this.label.attr({text:g,visibility:"hidden"}):
(this.label=c.renderer.label(g,null,null,e.shape,null,null,e.useHTML,!1,"stack-labels"),g={r:e.borderRadius||0,text:g,rotation:e.rotation,padding:f(e.padding,5),visibility:"hidden"},c.styledMode||(g.fill=e.backgroundColor,g.stroke=e.borderColor,g["stroke-width"]=e.borderWidth,this.label.css(e.style)),this.label.attr(g),this.label.added||this.label.add(a));this.label.labelrank=c.plotSizeY};a.prototype.setOffset=function(a,c,g,l,n){var k=this.axis,h=k.chart;l=k.translate(k.stacking.usePercentage?100:
l?l:this.total,0,0,0,1);g=k.translate(g?g:0);g=m(l)&&Math.abs(l-g);a=f(n,h.xAxis[0].translate(this.x))+a;k=m(l)&&this.getStackBox(h,this,a,l,c,g,k);c=this.label;g=this.isNegative;a="justify"===f(this.options.overflow,"justify");var d=this.textAlign;c&&k&&(n=c.getBBox(),l=c.padding,d="left"===d?h.inverted?-l:l:"right"===d?n.width:h.inverted&&"center"===d?n.width/2:h.inverted?g?n.width+l:-l:n.width/2,g=h.inverted?n.height/2:g?-l:n.height,this.alignOptions.x=f(this.options.x,0),this.alignOptions.y=f(this.options.y,
0),k.x-=d,k.y-=g,c.align(this.alignOptions,null,k),h.isInsidePlot(c.alignAttr.x+d-this.alignOptions.x,c.alignAttr.y+g-this.alignOptions.y)?c.show():(c.alignAttr.y=-9999,a=!1),a&&z.prototype.justifyDataLabel.call(this.axis,c,this.alignOptions,c.alignAttr,n,k),c.attr({x:c.alignAttr.x,y:c.alignAttr.y}),f(!a&&this.options.crop,!0)&&((h=e(c.x)&&e(c.y)&&h.isInsidePlot(c.x-l+c.width,c.y)&&h.isInsidePlot(c.x+l,c.y))||c.hide()))};a.prototype.getStackBox=function(a,c,e,f,g,l,h){var d=c.axis.reversed,b=a.inverted,
k=h.height+h.pos-(b?a.plotLeft:a.plotTop);c=c.isNegative&&!d||!c.isNegative&&d;return{x:b?c?f-h.right:f-l+h.pos-a.plotLeft:e+a.xAxis[0].transB-a.plotLeft,y:b?h.height-e-g:c?k-f-l:k-f,width:b?l:g,height:b?g:l}};return a}();w.prototype.getStacks=function(){var a=this,c=a.inverted;a.yAxis.forEach(function(a){a.stacking&&a.stacking.stacks&&a.hasVisibleSeries&&(a.stacking.oldStacks=a.stacking.stacks)});a.series.forEach(function(e){var g=e.xAxis&&e.xAxis.options||{};!e.options.stacking||!0!==e.visible&&
!1!==a.options.chart.ignoreHiddenSeries||(e.stackKey=[e.type,f(e.options.stack,""),c?g.top:g.left,c?g.height:g.width].join())})};x.compose(a);z.prototype.setGroupedPoints=function(){var a=this.yAxis.stacking;this.options.centerInCategory&&(this.is("column")||this.is("columnrange"))&&!this.options.stacking&&1<this.chart.series.length?z.prototype.setStackedPoints.call(this,"group"):a&&l(a.stacks,function(c,e){"group"===e.slice(-5)&&(l(c,function(a){return a.destroy()}),delete a.stacks[e])})};z.prototype.setStackedPoints=
function(a){var e=a||this.options.stacking;if(e&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var g=this.processedXData,l=this.processedYData,q=[],r=l.length,t=this.options,h=t.threshold,d=f(t.startFromThreshold&&h,0);t=t.stack;a=a?this.type+","+e:this.stackKey;var b="-"+a,p=this.negStacks,u=this.yAxis,y=u.stacking.stacks,x=u.stacking.oldStacks,F,w;u.stacking.stacksTouched+=1;for(w=0;w<r;w++){var z=g[w];var C=l[w];var E=this.getStackIndicator(E,z,this.index);var J=E.key;
var H=(F=p&&C<(d?0:h))?b:a;y[H]||(y[H]={});y[H][z]||(x[H]&&x[H][z]?(y[H][z]=x[H][z],y[H][z].total=null):y[H][z]=new v(u,u.options.stackLabels,F,z,t));H=y[H][z];null!==C?(H.points[J]=H.points[this.index]=[f(H.cumulative,d)],m(H.cumulative)||(H.base=J),H.touched=u.stacking.stacksTouched,0<E.index&&!1===this.singleStacks&&(H.points[J][0]=H.points[this.index+","+z+",0"][0])):H.points[J]=H.points[this.index]=null;"percent"===e?(F=F?a:b,p&&y[F]&&y[F][z]?(F=y[F][z],H.total=F.total=Math.max(F.total,H.total)+
Math.abs(C)||0):H.total=n(H.total+(Math.abs(C)||0))):"group"===e?(c(C)&&(C=C[0]),null!==C&&(H.total=(H.total||0)+1)):H.total=n(H.total+(C||0));H.cumulative="group"===e?(H.total||1)-1:f(H.cumulative,d)+(C||0);null!==C&&(H.points[J].push(H.cumulative),q[w]=H.cumulative,H.hasValidPoints=!0)}"percent"===e&&(u.stacking.usePercentage=!0);"group"!==e&&(this.stackedYData=q);u.stacking.oldStacks={}}};z.prototype.modifyStacks=function(){var a=this,c=a.stackKey,e=a.yAxis.stacking.stacks,f=a.processedXData,g,
l=a.options.stacking;a[l+"Stacker"]&&[c,"-"+c].forEach(function(c){for(var h=f.length,d,b;h--;)if(d=f[h],g=a.getStackIndicator(g,d,a.index,c),b=(d=e[c]&&e[c][d])&&d.points[g.key])a[l+"Stacker"](b,d,h)})};z.prototype.percentStacker=function(a,c,e){c=c.total?100/c.total:0;a[0]=n(a[0]*c);a[1]=n(a[1]*c);this.stackedYData[e]=a[1]};z.prototype.getStackIndicator=function(a,c,e,f){!m(a)||a.x!==c||f&&a.key!==f?a={x:c,index:0,key:f}:a.index++;a.key=[e,c,a.index].join();return a};E.StackItem=v;"";return E.StackItem});
M(a,"Series/Line/LineSeries.js",[a["Core/Color/Palette.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=this&&this.__extends||function(){var a=function(n,m){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(n,m)};return function(n,m){function g(){this.constructor=n}a(n,m);n.prototype=null===m?Object.create(m):(g.prototype=m.prototype,
new g)}}(),x=E.defined,J=E.merge;E=function(u){function n(){var a=null!==u&&u.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}r(n,u);n.prototype.drawGraph=function(){var m=this,g=this.options,c=(this.gappedPath||this.getGraphPath).call(this),e=this.chart.styledMode,l=[["graph","highcharts-graph"]];e||l[0].push(g.lineColor||this.color||a.neutralColor20,g.dashStyle);l=m.getZonesGraphs(l);l.forEach(function(a,l){var f=a[0],k=m[f],n=k?"animate":"attr";k?(k.endX=m.preventGraphAnimation?
null:c.xMap,k.animate({d:c})):c.length&&(m[f]=k=m.chart.renderer.path(c).addClass(a[1]).attr({zIndex:1}).add(m.group));k&&!e&&(f={stroke:a[2],"stroke-width":g.lineWidth,fill:m.fillGraph&&m.color||"none"},a[3]?f.dashstyle=a[3]:"square"!==g.linecap&&(f["stroke-linecap"]=f["stroke-linejoin"]="round"),k[n](f).shadow(2>l&&g.shadow));k&&(k.startX=c.xMap,k.isArea=c.isArea)})};n.prototype.getGraphPath=function(a,g,c){var e=this,l=e.options,f=[],m=[],n,k=l.step;a=a||e.points;var r=a.reversed;r&&a.reverse();
(k={right:1,center:2}[k]||k&&3)&&r&&(k=4-k);a=this.getValidPoints(a,!1,!(l.connectNulls&&!g&&!c));a.forEach(function(q,r){var v=q.plotX,t=q.plotY,h=a[r-1];(q.leftCliff||h&&h.rightCliff)&&!c&&(n=!0);q.isNull&&!x(g)&&0<r?n=!l.connectNulls:q.isNull&&!g?n=!0:(0===r||n?r=[["M",q.plotX,q.plotY]]:e.getPointSpline?r=[e.getPointSpline(a,q,r)]:k?(r=1===k?[["L",h.plotX,t]]:2===k?[["L",(h.plotX+v)/2,h.plotY],["L",(h.plotX+v)/2,t]]:[["L",v,h.plotY]],r.push(["L",v,t])):r=[["L",v,t]],m.push(q.x),k&&(m.push(q.x),
2===k&&m.push(q.x)),f.push.apply(f,r),n=!1)});f.xMap=m;return e.graphPath=f};n.prototype.getZonesGraphs=function(a){this.zones.forEach(function(g,c){c=["zone-graph-"+c,"highcharts-graph highcharts-zone-graph-"+c+" "+(g.className||"")];this.chart.styledMode||c.push(g.color||this.color,g.dashStyle||this.options.dashStyle);a.push(c)},this);return a};n.defaultOptions=J(w.defaultOptions,{});return n}(w);C.registerSeriesType("line",E);"";return E});M(a,"Series/Area/AreaSeries.js",[a["Core/Color/Color.js"],
a["Core/Legend/LegendSymbol.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=this&&this.__extends||function(){var a=function(c,e){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(c,e)};return function(c,e){function g(){this.constructor=c}a(c,e);c.prototype=null===e?Object.create(e):(g.prototype=e.prototype,new g)}}(),x=a.parse,J=C.seriesTypes.line;a=
E.extend;var u=E.merge,n=E.objectEach,m=E.pick;E=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;return c}r(c,a);c.prototype.drawGraph=function(){this.areaPath=[];a.prototype.drawGraph.apply(this);var c=this,g=this.areaPath,f=this.options,n=[["area","highcharts-area",this.color,f.fillColor]];this.zones.forEach(function(a,e){n.push(["zone-area-"+e,"highcharts-area highcharts-zone-area-"+e+" "+a.className,a.color||c.color,a.fillColor||
f.fillColor])});n.forEach(function(a){var e=a[0],l=c[e],n=l?"animate":"attr",q={};l?(l.endX=c.preventGraphAnimation?null:g.xMap,l.animate({d:g})):(q.zIndex=0,l=c[e]=c.chart.renderer.path(g).addClass(a[1]).add(c.group),l.isArea=!0);c.chart.styledMode||(q.fill=m(a[3],x(a[2]).setOpacity(m(f.fillOpacity,.75)).get()));l[n](q);l.startX=g.xMap;l.shiftUnit=f.step?2:1})};c.prototype.getGraphPath=function(a){var c=J.prototype.getGraphPath,e=this.options,g=e.stacking,n=this.yAxis,k,r=[],u=[],B=this.index,x=
n.stacking.stacks[this.stackKey],t=e.threshold,h=Math.round(n.getThreshold(e.threshold));e=m(e.connectNulls,"percent"===g);var d=function(b,d,c){var e=a[b];b=g&&x[e.x].points[B];var f=e[c+"Null"]||0;c=e[c+"Cliff"]||0;e=!0;if(c||f){var k=(f?b[0]:b[1])+c;var l=b[0]+c;e=!!f}else!g&&a[d]&&a[d].isNull&&(k=l=t);"undefined"!==typeof k&&(u.push({plotX:p,plotY:null===k?h:n.getThreshold(k),isNull:e,isCliff:!0}),r.push({plotX:p,plotY:null===l?h:n.getThreshold(l),doCurve:!1}))};a=a||this.points;g&&(a=this.getStackPoints(a));
for(k=0;k<a.length;k++){g||(a[k].leftCliff=a[k].rightCliff=a[k].leftNull=a[k].rightNull=void 0);var b=a[k].isNull;var p=m(a[k].rectPlotX,a[k].plotX);var G=g?m(a[k].yBottom,h):h;if(!b||e)e||d(k,k-1,"left"),b&&!g&&e||(u.push(a[k]),r.push({x:k,plotX:p,plotY:G})),e||d(k,k+1,"right")}k=c.call(this,u,!0,!0);r.reversed=!0;b=c.call(this,r,!0,!0);(G=b[0])&&"M"===G[0]&&(b[0]=["L",G[1],G[2]]);b=k.concat(b);b.length&&b.push(["Z"]);c=c.call(this,u,!1,e);b.xMap=k.xMap;this.areaPath=b;return c};c.prototype.getStackPoints=
function(a){var c=this,e=[],g=[],r=this.xAxis,k=this.yAxis,u=k.stacking.stacks[this.stackKey],x={},B=k.series,w=B.length,t=k.options.reversedStacks?1:-1,h=B.indexOf(c);a=a||this.points;if(this.options.stacking){for(var d=0;d<a.length;d++)a[d].leftNull=a[d].rightNull=void 0,x[a[d].x]=a[d];n(u,function(a,b){null!==a.total&&g.push(b)});g.sort(function(a,b){return a-b});var b=B.map(function(a){return a.visible});g.forEach(function(a,d){var f=0,l,n;if(x[a]&&!x[a].isNull)e.push(x[a]),[-1,1].forEach(function(e){var f=
1===e?"rightNull":"leftNull",k=0,m=u[g[d+e]];if(m)for(var p=h;0<=p&&p<w;){var r=B[p].index;l=m.points[r];l||(r===c.index?x[a][f]=!0:b[p]&&(n=u[a].points[r])&&(k-=n[1]-n[0]));p+=t}x[a][1===e?"rightCliff":"leftCliff"]=k});else{for(var p=h;0<=p&&p<w;){if(l=u[a].points[B[p].index]){f=l[1];break}p+=t}f=m(f,0);f=k.translate(f,0,1,0,1);e.push({isNull:!0,plotX:r.translate(a,0,0,0,1),x:a,plotY:f,yBottom:f})}})}return e};c.defaultOptions=u(J.defaultOptions,{threshold:0});return c}(J);a(E.prototype,{singleStacks:!1,
drawLegendSymbol:w.drawRectangle});C.registerSeriesType("area",E);"";return E});M(a,"Series/Spline/SplineSeries.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w){var r=this&&this.__extends||function(){var a=function(r,n){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,g){a.__proto__=g}||function(a,g){for(var c in g)g.hasOwnProperty(c)&&(a[c]=g[c])};return a(r,n)};return function(r,n){function m(){this.constructor=r}a(r,n);r.prototype=null===n?Object.create(n):
(m.prototype=n.prototype,new m)}}(),E=a.seriesTypes.line,z=w.merge,x=w.pick;w=function(a){function u(){var n=null!==a&&a.apply(this,arguments)||this;n.data=void 0;n.options=void 0;n.points=void 0;return n}r(u,a);u.prototype.getPointSpline=function(a,m,g){var c=m.plotX||0,e=m.plotY||0,l=a[g-1];g=a[g+1];if(l&&!l.isNull&&!1!==l.doCurve&&!m.isCliff&&g&&!g.isNull&&!1!==g.doCurve&&!m.isCliff){a=l.plotY||0;var f=g.plotX||0;g=g.plotY||0;var n=0;var r=(1.5*c+(l.plotX||0))/2.5;var k=(1.5*e+a)/2.5;f=(1.5*c+
f)/2.5;var u=(1.5*e+g)/2.5;f!==r&&(n=(u-k)*(f-c)/(f-r)+e-u);k+=n;u+=n;k>a&&k>e?(k=Math.max(a,e),u=2*e-k):k<a&&k<e&&(k=Math.min(a,e),u=2*e-k);u>g&&u>e?(u=Math.max(g,e),k=2*e-u):u<g&&u<e&&(u=Math.min(g,e),k=2*e-u);m.rightContX=f;m.rightContY=u}m=["C",x(l.rightContX,l.plotX,0),x(l.rightContY,l.plotY,0),x(r,c,0),x(k,e,0),c,e];l.rightContX=l.rightContY=void 0;return m};u.defaultOptions=z(E.defaultOptions);return u}(E);a.registerSeriesType("spline",w);"";return w});M(a,"Series/AreaSpline/AreaSplineSeries.js",
[a["Series/Area/AreaSeries.js"],a["Series/Spline/SplineSeries.js"],a["Core/Legend/LegendSymbol.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E,z){var r=this&&this.__extends||function(){var a=function(g,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(g,c)};return function(g,c){function e(){this.constructor=g}a(g,c);g.prototype=null===c?Object.create(c):
(e.prototype=c.prototype,new e)}}(),J=a.prototype,u=z.extend,n=z.merge;z=function(m){function g(){var a=null!==m&&m.apply(this,arguments)||this;a.data=void 0;a.points=void 0;a.options=void 0;return a}r(g,m);g.defaultOptions=n(w.defaultOptions,a.defaultOptions);return g}(w);u(z.prototype,{getGraphPath:J.getGraphPath,getStackPoints:J.getStackPoints,drawGraph:J.drawGraph,drawLegendSymbol:C.drawRectangle});E.registerSeriesType("areaspline",z);"";return z});M(a,"Series/Column/ColumnSeries.js",[a["Core/Animation/AnimationUtilities.js"],
a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Legend/LegendSymbol.js"],a["Core/Color/Palette.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x,J,u){var n=this&&this.__extends||function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,d){a.__proto__=d}||function(a,d){for(var b in d)d.hasOwnProperty(b)&&(a[b]=d[b])};return a(c,d)};return function(c,d){function b(){this.constructor=c}a(c,d);
c.prototype=null===d?Object.create(d):(b.prototype=d.prototype,new b)}}(),m=a.animObject,g=w.parse,c=C.hasTouch;a=C.noop;var e=u.clamp,l=u.css,f=u.defined,r=u.extend,q=u.fireEvent,k=u.isArray,I=u.isNumber,D=u.merge,B=u.pick,O=u.objectEach;u=function(a){function h(){var d=null!==a&&a.apply(this,arguments)||this;d.borderWidth=void 0;d.data=void 0;d.group=void 0;d.options=void 0;d.points=void 0;return d}n(h,a);h.prototype.animate=function(a){var b=this,d=this.yAxis,c=b.options,h=this.chart.inverted,
f={},g=h?"translateX":"translateY";if(a)f.scaleY=.001,a=e(d.toPixels(c.threshold),d.pos,d.pos+d.len),h?f.translateX=a-d.len:f.translateY=a,b.clipBox&&b.setClip(),b.group.attr(f);else{var k=Number(b.group.attr(g));b.group.animate({scaleY:1},r(m(b.options.animation),{step:function(a,c){b.group&&(f[g]=k+c.pos*(d.pos-k),b.group.attr(f))}}))}};h.prototype.init=function(d,b){a.prototype.init.apply(this,arguments);var c=this;d=c.chart;d.hasRendered&&d.series.forEach(function(a){a.type===c.type&&(a.isDirty=
!0)})};h.prototype.getColumnMetrics=function(){var a=this,b=a.options,c=a.xAxis,e=a.yAxis,h=c.options.reversedStacks;h=c.reversed&&!h||!c.reversed&&h;var f={},g,k=0;!1===b.grouping?k=1:a.chart.series.forEach(function(b){var d=b.yAxis,c=b.options;if(b.type===a.type&&(b.visible||!a.chart.options.chart.ignoreHiddenSeries)&&e.len===d.len&&e.pos===d.pos){if(c.stacking&&"group"!==c.stacking){g=b.stackKey;"undefined"===typeof f[g]&&(f[g]=k++);var h=f[g]}else!1!==c.grouping&&(h=k++);b.columnIndex=h}});var l=
Math.min(Math.abs(c.transA)*(c.ordinal&&c.ordinal.slope||b.pointRange||c.closestPointRange||c.tickInterval||1),c.len),m=l*b.groupPadding,n=(l-2*m)/(k||1);b=Math.min(b.maxPointWidth||c.len,B(b.pointWidth,n*(1-2*b.pointPadding)));a.columnMetrics={width:b,offset:(n-b)/2+(m+((a.columnIndex||0)+(h?1:0))*n-l/2)*(h?-1:1),paddedWidth:n,columnCount:k};return a.columnMetrics};h.prototype.crispCol=function(a,b,c,e){var d=this.chart,h=this.borderWidth,f=-(h%2?.5:0);h=h%2?.5:1;d.inverted&&d.renderer.isVML&&(h+=
1);this.options.crisp&&(c=Math.round(a+c)+f,a=Math.round(a)+f,c-=a);e=Math.round(b+e)+h;f=.5>=Math.abs(b)&&.5<e;b=Math.round(b)+h;e-=b;f&&e&&(--b,e+=1);return{x:a,y:b,width:c,height:e}};h.prototype.adjustForMissingColumns=function(a,b,c,e){var d=this,h=this.options.stacking;if(!c.isNull&&1<e.columnCount){var f=0,g=0;O(this.yAxis.stacking&&this.yAxis.stacking.stacks,function(a){if("number"===typeof c.x&&(a=a[c.x.toString()])){var b=a.points[d.index],e=a.total;h?(b&&(f=g),a.hasValidPoints&&g++):k(b)&&
(f=b[1],g=e||0)}});a=(c.plotX||0)+((g-1)*e.paddedWidth+b)/2-b-f*e.paddedWidth}return a};h.prototype.translate=function(){var a=this,b=a.chart,c=a.options,h=a.dense=2>a.closestPointRange*a.xAxis.transA;h=a.borderWidth=B(c.borderWidth,h?0:1);var g=a.xAxis,k=a.yAxis,l=c.threshold,m=a.translatedThreshold=k.getThreshold(l),n=B(c.minPointLength,5),r=a.getColumnMetrics(),t=r.width,q=a.pointXOffset=r.offset,v=a.dataMin,u=a.dataMax,w=a.barW=Math.max(t,1+2*h);b.inverted&&(m-=.5);c.pointPadding&&(w=Math.ceil(w));
x.prototype.translate.apply(a);a.points.forEach(function(d){var h=B(d.yBottom,m),p=999+Math.abs(h),y=d.plotX||0;p=e(d.plotY,-p,k.len+p);var x=Math.min(p,h),F=Math.max(p,h)-x,D=t,G=y+q,z=w;n&&Math.abs(F)<n&&(F=n,y=!k.reversed&&!d.negative||k.reversed&&d.negative,I(l)&&I(u)&&d.y===l&&u<=l&&(k.min||0)<l&&(v!==u||(k.max||0)<=l)&&(y=!y),x=Math.abs(x-m)>n?h-n:m-(y?n:0));f(d.options.pointWidth)&&(D=z=Math.ceil(d.options.pointWidth),G-=Math.round((D-t)/2));c.centerInCategory&&(G=a.adjustForMissingColumns(G,
D,d,r));d.barX=G;d.pointWidth=D;d.tooltipPos=b.inverted?[e(k.len+k.pos-b.plotLeft-p,k.pos-b.plotLeft,k.len+k.pos-b.plotLeft),g.len+g.pos-b.plotTop-G-z/2,F]:[g.left-b.plotLeft+G+z/2,e(p+k.pos-b.plotTop,k.pos-b.plotTop,k.len+k.pos-b.plotTop),F];d.shapeType=a.pointClass.prototype.shapeType||"rect";d.shapeArgs=a.crispCol.apply(a,d.isNull?[G,m,z,0]:[G,x,z,F])})};h.prototype.drawGraph=function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")};h.prototype.pointAttribs=function(a,
b){var d=this.options,c=this.pointAttrToOptions||{},e=c.stroke||"borderColor",h=c["stroke-width"]||"borderWidth",f=a&&a.color||this.color,k=a&&a[e]||d[e]||f;c=a&&a.options.dashStyle||d.dashStyle;var l=a&&a[h]||d[h]||this[h]||0,m=B(a&&a.opacity,d.opacity,1);if(a&&this.zones.length){var n=a.getZone();f=a.options.color||n&&(n.color||a.nonZonedColor)||this.color;n&&(k=n.borderColor||k,c=n.dashStyle||c,l=n.borderWidth||l)}b&&a&&(a=D(d.states[b],a.options.states&&a.options.states[b]||{}),b=a.brightness,
f=a.color||"undefined"!==typeof b&&g(f).brighten(a.brightness).get()||f,k=a[e]||k,l=a[h]||l,c=a.dashStyle||c,m=B(a.opacity,m));e={fill:f,stroke:k,"stroke-width":l,opacity:m};c&&(e.dashstyle=c);return e};h.prototype.drawPoints=function(){var a=this,b=this.chart,c=a.options,e=b.renderer,h=c.animationLimit||250,f;a.points.forEach(function(d){var g=d.graphic,k=!!g,l=g&&b.pointCount<h?"animate":"attr";if(I(d.plotY)&&null!==d.y){f=d.shapeArgs;g&&d.hasNewShapeType()&&(g=g.destroy());a.enabledDataSorting&&
(d.startXPos=a.xAxis.reversed?-(f?f.width||0:0):a.xAxis.width);g||(d.graphic=g=e[d.shapeType](f).add(d.group||a.group))&&a.enabledDataSorting&&b.hasRendered&&b.pointCount<h&&(g.attr({x:d.startXPos}),k=!0,l="animate");if(g&&k)g[l](D(f));if(c.borderRadius)g[l]({r:c.borderRadius});b.styledMode||g[l](a.pointAttribs(d,d.selected&&"select")).shadow(!1!==d.allowShadow&&c.shadow,null,c.stacking&&!c.borderRadius);g&&(g.addClass(d.getClassName(),!0),g.attr({visibility:d.visible?"inherit":"hidden"}))}else g&&
(d.graphic=g.destroy())})};h.prototype.drawTracker=function(){var a=this,b=a.chart,e=b.pointer,h=function(a){var b=e.getPointFromEvent(a);"undefined"!==typeof b&&(e.isDirectTouch=!0,b.onMouseOver(a))},f;a.points.forEach(function(a){f=k(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);f.forEach(function(b){b.div?b.div.point=a:b.element.point=a})});a._hasTracking||(a.trackerGroups.forEach(function(d){if(a[d]){a[d].addClass("highcharts-tracker").on("mouseover",
h).on("mouseout",function(a){e.onTrackerMouseOut(a)});if(c)a[d].on("touchstart",h);!b.styledMode&&a.options.cursor&&a[d].css(l).css({cursor:a.options.cursor})}}),a._hasTracking=!0);q(this,"afterDrawTracker")};h.prototype.remove=function(){var a=this,b=a.chart;b.hasRendered&&b.series.forEach(function(b){b.type===a.type&&(b.isDirty=!0)});x.prototype.remove.apply(a,arguments)};h.defaultOptions=D(x.defaultOptions,{borderRadius:0,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,
cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:z.neutralColor20,borderColor:z.neutralColor100}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:z.backgroundColor});return h}(x);r(u.prototype,{cropShoulder:0,directTouch:!0,drawLegendSymbol:E.drawRectangle,getSymbol:a,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]});J.registerSeriesType("column",u);"";"";return u});
M(a,"Core/Series/DataLabel.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/FormatUtilities.js"],a["Core/Color/Palette.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=a.getDeferredAnimation,x=w.format,J=E.defined,u=E.extend,n=E.fireEvent,m=E.isArray,g=E.merge,c=E.objectEach,e=E.pick,l=E.splat,f;(function(a){function f(a,c,b,f,g){var d=this,h=this.chart,k=this.isCartesian&&h.inverted,l=this.enabledDataSorting,m=e(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),n=e(a.plotY,-9999),p=c.getBBox(),r=
b.rotation,t=b.align,q=h.isInsidePlot(m,Math.round(n),{inverted:k,paneCoordinates:!0,series:d}),v=function(b){l&&d.xAxis&&!B&&d.setDataLabelStartPos(a,c,g,q,b)},B="justify"===e(b.overflow,l?"none":"justify"),x=this.visible&&!1!==a.visible&&(a.series.forceDL||l&&!B||q||e(b.inside,!!this.options.stacking)&&f&&h.isInsidePlot(m,k?f.x+1:f.y+f.height-1,{inverted:k,paneCoordinates:!0,series:d}));if(x){var w=h.renderer.fontMetrics(h.styledMode?void 0:b.style.fontSize,c).b;f=u({x:k?this.yAxis.len-n:m,y:Math.round(k?
this.xAxis.len-m:n),width:0,height:0},f);u(b,{width:p.width,height:p.height});r?(B=!1,m=h.renderer.rotCorr(w,r),m={x:f.x+(b.x||0)+f.width/2+m.x,y:f.y+(b.y||0)+{top:0,middle:.5,bottom:1}[b.verticalAlign]*f.height},v(m),c[g?"attr":"animate"](m).attr({align:t}),v=(r+720)%360,v=180<v&&360>v,"left"===t?m.y-=v?p.height:0:"center"===t?(m.x-=p.width/2,m.y-=p.height/2):"right"===t&&(m.x-=p.width,m.y-=v?0:p.height),c.placed=!0,c.alignAttr=m):(v(f),c.align(b,void 0,f),m=c.alignAttr);B&&0<=f.height?this.justifyDataLabel(c,
b,m,p,f,g):e(b.crop,!0)&&(x=h.isInsidePlot(m.x,m.y,{paneCoordinates:!0,series:d})&&h.isInsidePlot(m.x+p.width,m.y+p.height,{paneCoordinates:!0,series:d}));if(b.shape&&!r)c[g?"attr":"animate"]({anchorX:k?h.plotWidth-a.plotY:a.plotX,anchorY:k?h.plotHeight-a.plotX:a.plotY})}g&&l&&(c.placed=!1);x||l&&!B||(c.hide(!0),c.placed=!1)}function k(a,c){var b=c.filter;return b?(c=b.operator,a=a[b.property],b=b.value,">"===c&&a>b||"<"===c&&a<b||">="===c&&a>=b||"<="===c&&a<=b||"=="===c&&a==b||"==="===c&&a===b?!0:
!1):!0}function v(){var a=this,d=a.chart,b=a.options,f=a.points,g=a.hasRendered||0,t=d.renderer,q=b.dataLabels,v,u=q.animation;u=q.defer?r(d,u,a):{defer:0,duration:0};q=B(B(d.options.plotOptions&&d.options.plotOptions.series&&d.options.plotOptions.series.dataLabels,d.options.plotOptions&&d.options.plotOptions[a.type]&&d.options.plotOptions[a.type].dataLabels),q);n(this,"drawDataLabels");if(m(q)||q.enabled||a._hasPointLabels){var w=a.plotGroup("dataLabelsGroup","data-labels",g?"inherit":"hidden",q.zIndex||
6);w.attr({opacity:+g});!g&&(g=a.dataLabelsGroup)&&(a.visible&&w.show(!0),g[b.animation?"animate":"attr"]({opacity:1},u));f.forEach(function(f){v=l(B(q,f.dlOptions||f.options&&f.options.dataLabels));v.forEach(function(h,g){var l=h.enabled&&(!f.isNull||f.dataLabelOnNull)&&k(f,h),m=f.connectors?f.connectors[g]:f.connector,n=f.dataLabels?f.dataLabels[g]:f.dataLabel,p=e(h.distance,f.labelDistance),r=!n;if(l){var q=f.getLabelConfig();var v=e(h[f.formatPrefix+"Format"],h.format);q=J(v)?x(v,q,d):(h[f.formatPrefix+
"Formatter"]||h.formatter).call(q,h);v=h.style;var u=h.rotation;d.styledMode||(v.color=e(h.color,v.color,a.color,C.neutralColor100),"contrast"===v.color?(f.contrastColor=t.getContrast(f.color||a.color),v.color=!J(p)&&h.inside||0>p||b.stacking?f.contrastColor:C.neutralColor100):delete f.contrastColor,b.cursor&&(v.cursor=b.cursor));var B={r:h.borderRadius||0,rotation:u,padding:h.padding,zIndex:1};d.styledMode||(B.fill=h.backgroundColor,B.stroke=h.borderColor,B["stroke-width"]=h.borderWidth);c(B,function(a,
b){"undefined"===typeof a&&delete B[b]})}!n||l&&J(q)?l&&J(q)&&(n?B.text=q:(f.dataLabels=f.dataLabels||[],n=f.dataLabels[g]=u?t.text(q,0,-9999,h.useHTML).addClass("highcharts-data-label"):t.label(q,0,-9999,h.shape,null,null,h.useHTML,null,"data-label"),g||(f.dataLabel=n),n.addClass(" highcharts-data-label-color-"+f.colorIndex+" "+(h.className||"")+(h.useHTML?" highcharts-tracker":""))),n.options=h,n.attr(B),d.styledMode||n.css(v).shadow(h.shadow),n.added||n.add(w),h.textPath&&!h.useHTML&&(n.setTextPath(f.getDataLabelPath&&
f.getDataLabelPath(n)||f.graphic,h.textPath),f.dataLabelPath&&!h.textPath.enabled&&(f.dataLabelPath=f.dataLabelPath.destroy())),a.alignDataLabel(f,n,h,null,r)):(f.dataLabel=f.dataLabel&&f.dataLabel.destroy(),f.dataLabels&&(1===f.dataLabels.length?delete f.dataLabels:delete f.dataLabels[g]),g||delete f.dataLabel,m&&(f.connector=f.connector.destroy(),f.connectors&&(1===f.connectors.length?delete f.connectors:delete f.connectors[g])))})})}n(this,"afterDrawDataLabels")}function w(a,c,b,e,f,g){var d=this.chart,
h=c.align,k=c.verticalAlign,l=a.box?0:a.padding||0,m=c.x;m=void 0===m?0:m;var n=c.y;n=void 0===n?0:n;var p=(b.x||0)+l;if(0>p){"right"===h&&0<=m?(c.align="left",c.inside=!0):m-=p;var r=!0}p=(b.x||0)+e.width-l;p>d.plotWidth&&("left"===h&&0>=m?(c.align="right",c.inside=!0):m+=d.plotWidth-p,r=!0);p=b.y+l;0>p&&("bottom"===k&&0<=n?(c.verticalAlign="top",c.inside=!0):n-=p,r=!0);p=(b.y||0)+e.height-l;p>d.plotHeight&&("top"===k&&0>=n?(c.verticalAlign="bottom",c.inside=!0):n+=d.plotHeight-p,r=!0);r&&(c.x=m,
c.y=n,a.placed=!g,a.align(c,void 0,f));return r}function B(a,c){var b=[],d;if(m(a)&&!m(c))b=a.map(function(a){return g(a,c)});else if(m(c)&&!m(a))b=c.map(function(b){return g(a,b)});else if(m(a)||m(c))for(d=Math.max(a.length,c.length);d--;)b[d]=g(a[d],c[d]);else b=g(a,c);return b}function z(a,c,b,e,f){var d=this.chart,h=d.inverted,g=this.xAxis,k=g.reversed,l=h?c.height/2:c.width/2;a=(a=a.pointWidth)?a/2:0;c.startXPos=h?f.x:k?-l-a:g.width-l+a;c.startYPos=h?k?this.yAxis.height-l+a:-l-a:f.y;e?"hidden"===
c.visibility&&(c.show(),c.attr({opacity:0}).animate({opacity:1})):c.attr({opacity:1}).animate({opacity:0},void 0,c.hide);d.hasRendered&&(b&&c.attr({x:c.startXPos,y:c.startYPos}),c.placed=!0)}var t=[];a.compose=function(a){if(-1===t.indexOf(a)){var c=a.prototype;t.push(a);c.alignDataLabel=f;c.drawDataLabels=v;c.justifyDataLabel=w;c.setDataLabelStartPos=z}}})(f||(f={}));"";return f});M(a,"Series/Column/ColumnDataLabel.js",[a["Core/Series/DataLabel.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],
function(a,w,C){var r=w.series,z=C.merge,x=C.pick,J;(function(u){function n(a,c,e,l,f){var g=this.chart.inverted,m=a.series,k=a.dlBox||a.shapeArgs,n=x(a.below,a.plotY>x(this.translatedThreshold,m.yAxis.len)),u=x(e.inside,!!this.options.stacking);k&&(l=z(k),0>l.y&&(l.height+=l.y,l.y=0),k=l.y+l.height-m.yAxis.len,0<k&&k<l.height&&(l.height-=k),g&&(l={x:m.yAxis.len-l.y-l.height,y:m.xAxis.len-l.x-l.width,width:l.height,height:l.width}),u||(g?(l.x+=n?0:l.width,l.width=0):(l.y+=n?l.height:0,l.height=0)));
e.align=x(e.align,!g||u?"center":n?"right":"left");e.verticalAlign=x(e.verticalAlign,g||u?"middle":n?"top":"bottom");r.prototype.alignDataLabel.call(this,a,c,e,l,f);e.inside&&a.contrastColor&&c.css({color:a.contrastColor})}var m=[];u.compose=function(g){a.compose(r);-1===m.indexOf(g)&&(m.push(g),g.prototype.alignDataLabel=n)}})(J||(J={}));return J});M(a,"Series/Bar/BarSeries.js",[a["Series/Column/ColumnSeries.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C){var r=this&&
this.__extends||function(){var a=function(r,n){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,g){a.__proto__=g}||function(a,g){for(var c in g)g.hasOwnProperty(c)&&(a[c]=g[c])};return a(r,n)};return function(r,n){function m(){this.constructor=r}a(r,n);r.prototype=null===n?Object.create(n):(m.prototype=n.prototype,new m)}}(),z=C.extend,x=C.merge;C=function(w){function u(){var a=null!==w&&w.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}r(u,w);
u.defaultOptions=x(a.defaultOptions,{});return u}(a);z(C.prototype,{inverted:!0});w.registerSeriesType("bar",C);"";return C});M(a,"Series/Scatter/ScatterSeries.js",[a["Series/Column/ColumnSeries.js"],a["Series/Line/LineSeries.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E){var r=this&&this.__extends||function(){var a=function(m,g){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,e){a.__proto__=e}||function(a,e){for(var c in e)e.hasOwnProperty(c)&&
(a[c]=e[c])};return a(m,g)};return function(m,g){function c(){this.constructor=m}a(m,g);m.prototype=null===g?Object.create(g):(c.prototype=g.prototype,new c)}}(),x=E.addEvent,J=E.extend,u=E.merge;E=function(a){function m(){var g=null!==a&&a.apply(this,arguments)||this;g.data=void 0;g.options=void 0;g.points=void 0;return g}r(m,a);m.prototype.applyJitter=function(){var a=this,c=this.options.jitter,e=this.points.length;c&&this.points.forEach(function(g,f){["x","y"].forEach(function(l,m){var k="plot"+
l.toUpperCase();if(c[l]&&!g.isNull){var n=a[l+"Axis"];var r=c[l]*n.transA;if(n&&!n.isLog){var q=Math.max(0,g[k]-r);n=Math.min(n.len,g[k]+r);m=1E4*Math.sin(f+m*e);g[k]=q+(n-q)*(m-Math.floor(m));"x"===l&&(g.clientX=g.plotX)}}})})};m.prototype.drawGraph=function(){this.options.lineWidth?a.prototype.drawGraph.call(this):this.graph&&(this.graph=this.graph.destroy())};m.defaultOptions=u(w.defaultOptions,{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">\u25cf</span> <span style="font-size: 10px"> {series.name}</span><br/>',
pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}});return m}(w);J(E.prototype,{drawTracker:a.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1});x(E,"afterTranslate",function(){this.applyJitter()});C.registerSeriesType("scatter",E);"";return E});M(a,"Mixins/CenteredSeries.js",[a["Core/Globals.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,w,C){var r=C.isNumber,z=C.pick,
x=C.relativeLength,J=a.deg2rad;return a.CenteredSeriesMixin={getCenter:function(){var a=this.options,n=this.chart,m=2*(a.slicedOffset||0),g=n.plotWidth-2*m,c=n.plotHeight-2*m,e=a.center,l=Math.min(g,c),f=a.size,r=a.innerSize||0;"string"===typeof f&&(f=parseFloat(f));"string"===typeof r&&(r=parseFloat(r));a=[z(e[0],"50%"),z(e[1],"50%"),z(f&&0>f?void 0:a.size,"100%"),z(r&&0>r?void 0:a.innerSize||0,"0%")];!n.angular||this instanceof w||(a[3]=0);for(e=0;4>e;++e)f=a[e],n=2>e||2===e&&/%$/.test(f),a[e]=
x(f,[g,c,l,a[2]][e])+(n?m:0);a[3]>a[2]&&(a[3]=a[2]);return a},getStartAndEndRadians:function(a,n){a=r(a)?a:0;n=r(n)&&n>a&&360>n-a?n:a+360;return{start:J*(a+-90),end:J*(n+-90)}}}});M(a,"Series/Pie/PiePoint.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"]],function(a,w,C){var r=this&&this.__extends||function(){var a=function(c,e){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&
(a[e]=c[e])};return a(c,e)};return function(c,e){function g(){this.constructor=c}a(c,e);c.prototype=null===e?Object.create(e):(g.prototype=e.prototype,new g)}}(),z=a.setAnimation,x=C.addEvent,J=C.defined;a=C.extend;var u=C.isNumber,n=C.pick,m=C.relativeLength;w=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.labelDistance=void 0;c.options=void 0;c.series=void 0;return c}r(c,a);c.prototype.getConnectorPath=function(){var a=this.labelPosition,c=this.series.options.dataLabels,
f=this.connectorShapes,g=c.connectorShape;f[g]&&(g=f[g]);return g.call(this,{x:a.final.x,y:a.final.y,alignment:a.alignment},a.connectorPosition,c)};c.prototype.getTranslate=function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}};c.prototype.haloPath=function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:c.r-1,start:c.start,end:c.end})};c.prototype.init=function(){var c=this;a.prototype.init.apply(this,
arguments);this.name=n(this.name,"Slice");var g=function(a){c.slice("select"===a.type)};x(this,"select",g);x(this,"unselect",g);return this};c.prototype.isValid=function(){return u(this.y)&&0<=this.y};c.prototype.setVisible=function(a,c){var e=this,g=this.series,l=g.chart,k=g.options.ignoreHiddenPoint;c=n(c,k);a!==this.visible&&(this.visible=this.options.visible=a="undefined"===typeof a?!this.visible:a,g.options.data[g.data.indexOf(this)]=this.options,["graphic","dataLabel","connector","shadowGroup"].forEach(function(c){if(e[c])e[c][a?
"show":"hide"](a)}),this.legendItem&&l.legend.colorizeItem(this,a),a||"hover"!==this.state||this.setState(""),k&&(g.isDirty=!0),c&&l.redraw())};c.prototype.slice=function(a,c,f){var e=this.series;z(f,e.chart);n(c,!0);this.sliced=this.options.sliced=J(a)?a:!this.sliced;e.options.data[e.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())};return c}(w);a(w.prototype,{connectorShapes:{fixedOffset:function(a,
c,e){var g=c.breakAt;c=c.touchingSliceAt;return[["M",a.x,a.y],e.softConnector?["C",a.x+("left"===a.alignment?-5:5),a.y,2*g.x-c.x,2*g.y-c.y,g.x,g.y]:["L",g.x,g.y],["L",c.x,c.y]]},straight:function(a,c){c=c.touchingSliceAt;return[["M",a.x,a.y],["L",c.x,c.y]]},crookedLine:function(a,c,e){c=c.touchingSliceAt;var g=this.series,f=g.center[0],n=g.chart.plotWidth,r=g.chart.plotLeft;g=a.alignment;var k=this.shapeArgs.r;e=m(e.crookDistance,1);n="left"===g?f+k+(n+r-f-k)*(1-e):r+(f-k)*e;e=["L",n,a.y];f=!0;if("left"===
g?n>a.x||n<c.x:n<a.x||n>c.x)f=!1;a=[["M",a.x,a.y]];f&&a.push(e);a.push(["L",c.x,c.y]);return a}}});return w});M(a,"Series/Pie/PieSeries.js",[a["Mixins/CenteredSeries.js"],a["Series/Column/ColumnSeries.js"],a["Core/Globals.js"],a["Core/Legend/LegendSymbol.js"],a["Core/Color/Palette.js"],a["Series/Pie/PiePoint.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Renderer/SVG/Symbols.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x,J,u,n,m){var g=this&&this.__extends||function(){var a=
function(c,e){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])};return a(c,e)};return function(c,e){function f(){this.constructor=c}a(c,e);c.prototype=null===e?Object.create(e):(f.prototype=e.prototype,new f)}}(),c=a.getStartAndEndRadians;C=C.noop;var e=m.clamp,l=m.extend,f=m.fireEvent,r=m.merge,q=m.pick,k=m.relativeLength;m=function(a){function l(){var c=null!==a&&a.apply(this,arguments)||this;c.center=
void 0;c.data=void 0;c.maxLabelDistance=void 0;c.options=void 0;c.points=void 0;return c}g(l,a);l.prototype.animate=function(a){var c=this,e=c.points,f=c.startAngleRad;a||e.forEach(function(a){var b=a.graphic,d=a.shapeArgs;b&&d&&(b.attr({r:q(a.startR,c.center&&c.center[3]/2),start:f,end:f}),b.animate({r:d.r,start:d.start,end:d.end},c.options.animation))})};l.prototype.drawEmpty=function(){var a=this.startAngleRad,c=this.endAngleRad,e=this.options;if(0===this.total&&this.center){var f=this.center[0];
var d=this.center[1];this.graph||(this.graph=this.chart.renderer.arc(f,d,this.center[1]/2,0,a,c).addClass("highcharts-empty-series").add(this.group));this.graph.attr({d:n.arc(f,d,this.center[2]/2,0,{start:a,end:c,innerR:this.center[3]/2})});this.chart.styledMode||this.graph.attr({"stroke-width":e.borderWidth,fill:e.fillColor||"none",stroke:e.color||z.neutralColor20})}else this.graph&&(this.graph=this.graph.destroy())};l.prototype.drawPoints=function(){var a=this.chart.renderer;this.points.forEach(function(c){c.graphic&&
c.hasNewShapeType()&&(c.graphic=c.graphic.destroy());c.graphic||(c.graphic=a[c.shapeType](c.shapeArgs).add(c.series.group),c.delayedRendering=!0)})};l.prototype.generatePoints=function(){a.prototype.generatePoints.call(this);this.updateTotals()};l.prototype.getX=function(a,c,f){var h=this.center,d=this.radii?this.radii[f.index]||0:h[2]/2;a=Math.asin(e((a-h[1])/(d+f.labelDistance),-1,1));return h[0]+(c?-1:1)*Math.cos(a)*(d+f.labelDistance)+(0<f.labelDistance?(c?-1:1)*this.options.dataLabels.padding:
0)};l.prototype.hasData=function(){return!!this.processedXData.length};l.prototype.redrawPoints=function(){var a=this,c=a.chart,e=c.renderer,f=a.options.shadow,d,b,g,k;this.drawEmpty();!f||a.shadowGroup||c.styledMode||(a.shadowGroup=e.g("shadow").attr({zIndex:-1}).add(a.group));a.points.forEach(function(h){var l={};b=h.graphic;if(!h.isNull&&b){var m=void 0;k=h.shapeArgs;d=h.getTranslate();c.styledMode||(m=h.shadowGroup,f&&!m&&(m=h.shadowGroup=e.g("shadow").add(a.shadowGroup)),m&&m.attr(d),g=a.pointAttribs(h,
h.selected&&"select"));h.delayedRendering?(b.setRadialReference(a.center).attr(k).attr(d),c.styledMode||b.attr(g).attr({"stroke-linejoin":"round"}).shadow(f,m),h.delayedRendering=!1):(b.setRadialReference(a.center),c.styledMode||r(!0,l,g),r(!0,l,k,d),b.animate(l));b.attr({visibility:h.visible?"inherit":"hidden"});b.addClass(h.getClassName(),!0)}else b&&(h.graphic=b.destroy())})};l.prototype.sortByAngle=function(a,c){a.sort(function(a,e){return"undefined"!==typeof a.angle&&(e.angle-a.angle)*c})};l.prototype.translate=
function(a){this.generatePoints();var e=this.options,g=e.slicedOffset,h=g+(e.borderWidth||0),d=c(e.startAngle,e.endAngle),b=this.startAngleRad=d.start;d=(this.endAngleRad=d.end)-b;var l=this.points,m=e.dataLabels.distance;e=e.ignoreHiddenPoint;var n=l.length,r,v=0;a||(this.center=a=this.getCenter());for(r=0;r<n;r++){var u=l[r];var x=b+v*d;!u.isValid()||e&&!u.visible||(v+=u.percentage/100);var w=b+v*d;var B={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1E3*x)/1E3,end:Math.round(1E3*w)/1E3};
u.shapeType="arc";u.shapeArgs=B;u.labelDistance=q(u.options.dataLabels&&u.options.dataLabels.distance,m);u.labelDistance=k(u.labelDistance,B.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,u.labelDistance);w=(w+x)/2;w>1.5*Math.PI?w-=2*Math.PI:w<-Math.PI/2&&(w+=2*Math.PI);u.slicedTranslation={translateX:Math.round(Math.cos(w)*g),translateY:Math.round(Math.sin(w)*g)};B=Math.cos(w)*a[2]/2;var z=Math.sin(w)*a[2]/2;u.tooltipPos=[a[0]+.7*B,a[1]+.7*z];u.half=w<-Math.PI/2||w>Math.PI/2?1:0;u.angle=
w;x=Math.min(h,u.labelDistance/5);u.labelPosition={natural:{x:a[0]+B+Math.cos(w)*u.labelDistance,y:a[1]+z+Math.sin(w)*u.labelDistance},"final":{},alignment:0>u.labelDistance?"center":u.half?"right":"left",connectorPosition:{breakAt:{x:a[0]+B+Math.cos(w)*x,y:a[1]+z+Math.sin(w)*x},touchingSliceAt:{x:a[0]+B,y:a[1]+z}}}}f(this,"afterTranslate")};l.prototype.updateTotals=function(){var a=this.points,c=a.length,e=this.options.ignoreHiddenPoint,f,d=0;for(f=0;f<c;f++){var b=a[f];!b.isValid()||e&&!b.visible||
(d+=b.y)}this.total=d;for(f=0;f<c;f++)b=a[f],b.percentage=0<d&&(b.visible||!e)?b.y/d*100:0,b.total=d};l.defaultOptions=r(J.defaultOptions,{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:"fixedOffset",crookDistance:"70%",distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,
slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:z.backgroundColor,borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}});return l}(J);l(m.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawLegendSymbol:E.drawRectangle,drawTracker:w.prototype.drawTracker,getCenter:a.getCenter,getSymbol:C,isCartesian:!1,noSharedTooltip:!0,pointAttribs:w.prototype.pointAttribs,pointClass:x,requireSorting:!1,searchPoint:C,trackerGroups:["group","dataLabelsGroup"]});u.registerSeriesType("pie",
m);"";return m});M(a,"Series/Pie/PieDataLabel.js",[a["Core/Series/DataLabel.js"],a["Core/Globals.js"],a["Core/Color/Palette.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,w,C,E,z,x){var r=w.noop,u=E.distribute,n=z.series,m=x.arrayMax,g=x.clamp,c=x.defined,e=x.merge,l=x.pick,f=x.relativeLength,v;(function(q){function k(){var a=this,f=a.data,d=a.chart,b=a.options.dataLabels||{},g=b.connectorPadding,k=d.plotWidth,r=d.plotHeight,q=d.plotLeft,
v=Math.round(d.chartWidth/3),w=a.center,x=w[2]/2,B=w[1],z=[[],[]],D=[0,0,0,0],E=a.dataLabelPositioners,I,J,M,O,Z,A,U,N,W,X,Y,T;a.visible&&(b.enabled||a._hasPointLabels)&&(f.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),n.prototype.drawDataLabels.apply(a),f.forEach(function(a){a.dataLabel&&(a.visible?(z[a.half].push(a),a.dataLabel._pos=null,!c(b.style.width)&&!c(a.options.dataLabels&&
a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>v&&(a.dataLabel.css({width:Math.round(.7*v)+"px"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),z.forEach(function(e,f){var h=e.length,m=[],n;if(h){a.sortByAngle(e,f-.5);if(0<a.maxLabelDistance){var p=Math.max(0,B-x-a.maxLabelDistance);var t=Math.min(B+x+a.maxLabelDistance,d.plotHeight);e.forEach(function(a){0<a.labelDistance&&a.dataLabel&&
(a.top=Math.max(0,B-x-a.labelDistance),a.bottom=Math.min(B+x+a.labelDistance,d.plotHeight),n=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPosition.natural.y-a.top+n/2,size:n,rank:a.y},m.push(a.distributeBox))});p=t+n-p;u(m,p,p/5)}for(Y=0;Y<h;Y++){I=e[Y];A=I.labelPosition;O=I.dataLabel;X=!1===I.visible?"hidden":"inherit";W=p=A.natural.y;m&&c(I.distributeBox)&&("undefined"===typeof I.distributeBox.pos?X="hidden":(U=I.distributeBox.size,W=E.radialDistributionY(I)));delete I.positionIndex;
if(b.justify)N=E.justify(I,x,w);else switch(b.alignTo){case "connectors":N=E.alignToConnectors(e,f,k,q);break;case "plotEdges":N=E.alignToPlotEdges(O,f,k,q);break;default:N=E.radialDistributionX(a,I,W,p)}O._attr={visibility:X,align:A.alignment};T=I.options.dataLabels||{};O._pos={x:N+l(T.x,b.x)+({left:g,right:-g}[A.alignment]||0),y:W+l(T.y,b.y)-10};A.final.x=N;A.final.y=W;l(b.crop,!0)&&(Z=O.getBBox().width,p=null,N-Z<g&&1===f?(p=Math.round(Z-N+g),D[3]=Math.max(p,D[3])):N+Z>k-g&&0===f&&(p=Math.round(N+
Z-k+g),D[1]=Math.max(p,D[1])),0>W-U/2?D[0]=Math.max(Math.round(-W+U/2),D[0]):W+U/2>r&&(D[2]=Math.max(Math.round(W+U/2-r),D[2])),O.sideOverflow=p)}}}),0===m(D)||this.verifyDataLabelOverflow(D))&&(this.placeDataLabels(),this.points.forEach(function(c){T=e(b,c.options.dataLabels);if(J=l(T.connectorWidth,1)){var f;M=c.connector;if((O=c.dataLabel)&&O._pos&&c.visible&&0<c.labelDistance){X=O._attr.visibility;if(f=!M)c.connector=M=d.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-"+
c.colorIndex+(c.className?" "+c.className:"")).add(a.dataLabelsGroup),d.styledMode||M.attr({"stroke-width":J,stroke:T.connectorColor||c.color||C.neutralColor60});M[f?"attr":"animate"]({d:c.getConnectorPath()});M.attr("visibility",X)}else M&&(c.connector=M.destroy())}}))}function v(){this.points.forEach(function(a){var c=a.dataLabel,d;c&&a.visible&&((d=c._pos)?(c.sideOverflow&&(c._attr.width=Math.max(c.getBBox().width-c.sideOverflow,0),c.css({width:c._attr.width+"px",textOverflow:(this.options.dataLabels.style||
{}).textOverflow||"ellipsis"}),c.shortened=!0),c.attr(c._attr),c[c.moved?"animate":"attr"](d),c.moved=!0):c&&c.attr({y:-9999}));delete a.distributeBox},this)}function w(a){var c=this.center,d=this.options,b=d.center,e=d.minSize||80,k=null!==d.size;if(!k){if(null!==b[0])var l=Math.max(c[2]-Math.max(a[1],a[3]),e);else l=Math.max(c[2]-a[1]-a[3],e),c[0]+=(a[3]-a[1])/2;null!==b[1]?l=g(l,e,c[2]-Math.max(a[0],a[2])):(l=g(l,e,c[2]-a[0]-a[2]),c[1]+=(a[0]-a[2])/2);l<c[2]?(c[2]=l,c[3]=Math.min(f(d.innerSize||
0,l),l),this.translate(c),this.drawDataLabels&&this.drawDataLabels()):k=!0}return k}var x=[],z={radialDistributionY:function(a){return a.top+a.distributeBox.pos},radialDistributionX:function(a,c,d,b){return a.getX(d<c.top+2||d>c.bottom-2?b:d,c.half,c)},justify:function(a,c,d){return d[0]+(a.half?-1:1)*(c+a.labelDistance)},alignToPlotEdges:function(a,c,d,b){a=a.getBBox().width;return c?a+b:d-a-b},alignToConnectors:function(a,c,d,b){var e=0,f;a.forEach(function(a){f=a.dataLabel.getBBox().width;f>e&&
(e=f)});return c?e+b:d-e-b}};q.compose=function(c){a.compose(n);-1===x.indexOf(c)&&(x.push(c),c=c.prototype,c.dataLabelPositioners=z,c.alignDataLabel=r,c.drawDataLabels=k,c.placeDataLabels=v,c.verifyDataLabelOverflow=w)}})(v||(v={}));return v});M(a,"Extensions/OverlappingDataLabels.js",[a["Core/Chart/Chart.js"],a["Core/Utilities.js"]],function(a,w){function r(a,g){var c=!1;if(a){var e=a.newOpacity;a.oldOpacity!==e&&(a.alignAttr&&a.placed?(a[e?"removeClass":"addClass"]("highcharts-data-label-hidden"),
c=!0,a.alignAttr.opacity=e,a[a.isOld?"animate":"attr"](a.alignAttr,null,function(){g.styledMode||a.css({pointerEvents:e?"auto":"none"})}),z(g,"afterHideOverlappingLabel")):a.attr({opacity:e}));a.isOld=!0}return c}var E=w.addEvent,z=w.fireEvent,x=w.isArray,J=w.isNumber,u=w.objectEach,n=w.pick;E(a,"render",function(){var a=this,g=[];(this.labelCollectors||[]).forEach(function(a){g=g.concat(a())});(this.yAxis||[]).forEach(function(a){a.stacking&&a.options.stackLabels&&!a.options.stackLabels.allowOverlap&&
u(a.stacking.stacks,function(a){u(a,function(a){a.label&&"hidden"!==a.label.visibility&&g.push(a.label)})})});(this.series||[]).forEach(function(c){var e=c.options.dataLabels;c.visible&&(!1!==e.enabled||c._hasPointLabels)&&(e=function(c){return c.forEach(function(c){c.visible&&(x(c.dataLabels)?c.dataLabels:c.dataLabel?[c.dataLabel]:[]).forEach(function(e){var f=e.options;e.labelrank=n(f.labelrank,c.labelrank,c.shapeArgs&&c.shapeArgs.height);f.allowOverlap?(e.oldOpacity=e.opacity,e.newOpacity=1,r(e,
a)):g.push(e)})})},e(c.nodes||[]),e(c.points))});this.hideOverlappingLabels(g)});a.prototype.hideOverlappingLabels=function(a){var g=this,c=a.length,e=g.renderer,l,f,m,n=!1;var k=function(a){var c,f=a.box?0:a.padding||0,g=c=0,d;if(a&&(!a.alignAttr||a.placed)){var b=a.alignAttr||{x:a.attr("x"),y:a.attr("y")};var k=a.parentGroup;a.width||(c=a.getBBox(),a.width=c.width,a.height=c.height,c=e.fontMetrics(null,a.element).h);var l=a.width-2*f;(d={left:"0",center:"0.5",right:"1"}[a.alignValue])?g=+d*l:J(a.x)&&
Math.round(a.x)!==a.translateX&&(g=a.x-a.translateX);return{x:b.x+(k.translateX||0)+f-(g||0),y:b.y+(k.translateY||0)+f-c,width:a.width-2*f,height:a.height-2*f}}};for(f=0;f<c;f++)if(l=a[f])l.oldOpacity=l.opacity,l.newOpacity=1,l.absoluteBox=k(l);a.sort(function(a,c){return(c.labelrank||0)-(a.labelrank||0)});for(f=0;f<c;f++){var u=(k=a[f])&&k.absoluteBox;for(l=f+1;l<c;++l){var w=(m=a[l])&&m.absoluteBox;!u||!w||k===m||0===k.newOpacity||0===m.newOpacity||w.x>=u.x+u.width||w.x+w.width<=u.x||w.y>=u.y+u.height||
w.y+w.height<=u.y||((k.labelrank<m.labelrank?k:m).newOpacity=0)}}a.forEach(function(a){r(a,g)&&(n=!0)});n&&z(g,"afterHideAllOverlappingLabels")}});M(a,"Core/Responsive.js",[a["Core/Utilities.js"]],function(a){var r=a.extend,C=a.find,E=a.isArray,z=a.isObject,x=a.merge,J=a.objectEach,u=a.pick,n=a.splat,m=a.uniqueKey,g;(function(a){var c=[];a.compose=function(a){-1===c.indexOf(a)&&(c.push(a),r(a.prototype,g.prototype));return a};var g=function(){function a(){}a.prototype.currentOptions=function(a){function c(a,
f,g,k){var h;J(a,function(a,b){if(!k&&-1<e.collectionsWithUpdate.indexOf(b)&&f[b])for(a=n(a),g[b]=[],h=0;h<Math.max(a.length,f[b].length);h++)f[b][h]&&(void 0===a[h]?g[b][h]=f[b][h]:(g[b][h]={},c(a[h],f[b][h],g[b][h],k+1)));else z(a)?(g[b]=E(a)?[]:{},c(a,f[b]||{},g[b],k+1)):g[b]="undefined"===typeof f[b]?null:f[b]})}var e=this,f={};c(a,this.options,f,0);return f};a.prototype.matchResponsiveRule=function(a,c){var e=a.condition;(e.callback||function(){return this.chartWidth<=u(e.maxWidth,Number.MAX_VALUE)&&
this.chartHeight<=u(e.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=u(e.minWidth,0)&&this.chartHeight>=u(e.minHeight,0)}).call(this)&&c.push(a._id)};a.prototype.setResponsive=function(a,c){var e=this,f=this.options.responsive,g=this.currentResponsive,l=[];!c&&f&&f.rules&&f.rules.forEach(function(a){"undefined"===typeof a._id&&(a._id=m());e.matchResponsiveRule(a,l)},this);c=x.apply(void 0,l.map(function(a){return C((f||{}).rules||[],function(c){return c._id===a})}).map(function(a){return a&&a.chartOptions}));
c.isResponsiveOptions=!0;l=l.toString()||void 0;l!==(g&&g.ruleIds)&&(g&&this.update(g.undoOptions,a,!0),l?(g=this.currentOptions(c),g.isResponsiveOptions=!0,this.currentResponsive={ruleIds:l,mergedOptions:c,undoOptions:g},this.update(c,a,!0)):this.currentResponsive=void 0)};return a}()})(g||(g={}));"";"";return g});M(a,"masters/highcharts.src.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Core/DefaultOptions.js"],a["Core/Animation/Fx.js"],a["Core/Animation/AnimationUtilities.js"],a["Core/Renderer/HTML/AST.js"],
a["Core/FormatUtilities.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Renderer/HTML/HTMLElement.js"],a["Core/Renderer/HTML/HTMLRenderer.js"],a["Core/Axis/Axis.js"],a["Core/Axis/DateTimeAxis.js"],a["Core/Axis/LogarithmicAxis.js"],a["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],a["Core/Axis/Tick.js"],a["Core/Tooltip.js"],a["Core/Series/Point.js"],a["Core/Pointer.js"],a["Core/MSPointer.js"],a["Core/Legend/Legend.js"],a["Core/Chart/Chart.js"],
a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Series/Column/ColumnSeries.js"],a["Series/Column/ColumnDataLabel.js"],a["Series/Pie/PieSeries.js"],a["Series/Pie/PieDataLabel.js"],a["Core/Series/DataLabel.js"],a["Core/Responsive.js"],a["Core/Color/Color.js"],a["Core/Time.js"]],function(a,w,C,E,z,x,J,u,n,m,g,c,e,l,f,v,q,k,I,D,B,M,t,h,d,b,p,G,y,L,F,P,S){a.animate=z.animate;a.animObject=z.animObject;a.getDeferredAnimation=z.getDeferredAnimation;a.setAnimation=z.setAnimation;a.stop=z.stop;
a.timers=E.timers;a.AST=x;a.Axis=e;a.Chart=t;a.chart=t.chart;a.Fx=E;a.Legend=M;a.PlotLineOrBand=v;a.Point=I;a.Pointer=B.isRequired()?B:D;a.Series=h;a.SVGElement=n;a.SVGRenderer=m;a.Tick=q;a.Time=S;a.Tooltip=k;a.Color=P;a.color=P.parse;c.compose(m);g.compose(n);a.defaultOptions=C.defaultOptions;a.getOptions=C.getOptions;a.time=C.defaultTime;a.setOptions=C.setOptions;a.dateFormat=J.dateFormat;a.format=J.format;a.numberFormat=J.numberFormat;a.addEvent=w.addEvent;a.arrayMax=w.arrayMax;a.arrayMin=w.arrayMin;
a.attr=w.attr;a.clearTimeout=w.clearTimeout;a.correctFloat=w.correctFloat;a.createElement=w.createElement;a.css=w.css;a.defined=w.defined;a.destroyObjectProperties=w.destroyObjectProperties;a.discardElement=w.discardElement;a.distribute=u.distribute;a.erase=w.erase;a.error=w.error;a.extend=w.extend;a.extendClass=w.extendClass;a.find=w.find;a.fireEvent=w.fireEvent;a.getMagnitude=w.getMagnitude;a.getStyle=w.getStyle;a.inArray=w.inArray;a.isArray=w.isArray;a.isClass=w.isClass;a.isDOMElement=w.isDOMElement;
a.isFunction=w.isFunction;a.isNumber=w.isNumber;a.isObject=w.isObject;a.isString=w.isString;a.keys=w.keys;a.merge=w.merge;a.normalizeTickInterval=w.normalizeTickInterval;a.objectEach=w.objectEach;a.offset=w.offset;a.pad=w.pad;a.pick=w.pick;a.pInt=w.pInt;a.relativeLength=w.relativeLength;a.removeEvent=w.removeEvent;a.seriesType=d.seriesType;a.splat=w.splat;a.stableSort=w.stableSort;a.syncTimeout=w.syncTimeout;a.timeUnits=w.timeUnits;a.uniqueKey=w.uniqueKey;a.useSerialIds=w.useSerialIds;a.wrap=w.wrap;
p.compose(b);L.compose(h);l.compose(e);f.compose(e);y.compose(G);v.compose(e);F.compose(t);return a});a["masters/highcharts.src.js"]._modules=a;return a["masters/highcharts.src.js"]});
//# sourceMappingURL=highcharts.js.map
/*
 Highcharts JS v9.2.2 (2021-08-24)

 (c) 2009-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict';(function(e){"object"===typeof module&&module.exports?(e["default"]=e,module.exports=e):"function"===typeof define&&define.amd?define("highcharts/highcharts-more",["highcharts"],function(z){e(z);e.Highcharts=z;return e}):e("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(e){function z(e,d,h,c){e.hasOwnProperty(d)||(e[d]=c.apply(null,h))}e=e?e._modules:{};z(e,"Extensions/Pane.js",[e["Core/Chart/Chart.js"],e["Core/Globals.js"],e["Core/Color/Palette.js"],e["Core/Pointer.js"],
e["Core/Utilities.js"],e["Mixins/CenteredSeries.js"]],function(e,d,h,c,a,t){function m(b,p,a){return Math.sqrt(Math.pow(b-a[0],2)+Math.pow(p-a[1],2))<=a[2]/2}var l=a.addEvent,r=a.extend,x=a.merge,b=a.pick,q=a.splat;e.prototype.collectionsWithUpdate.push("pane");a=function(){function b(b,a){this.options=this.chart=this.center=this.background=void 0;this.coll="pane";this.defaultOptions={center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0};this.defaultBackgroundOptions={shape:"circle",borderWidth:1,
borderColor:h.neutralColor20,backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,h.backgroundColor],[1,h.neutralColor10]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"};this.init(b,a)}b.prototype.init=function(b,a){this.chart=a;this.background=[];a.pane.push(this);this.setOptions(b)};b.prototype.setOptions=function(b){this.options=x(this.defaultOptions,this.chart.angular?{background:{}}:void 0,b)};b.prototype.render=function(){var b=this.options,a=this.options.background,
k=this.chart.renderer;this.group||(this.group=k.g("pane-group").attr({zIndex:b.zIndex||0}).add());this.updateCenter();if(a)for(a=q(a),b=Math.max(a.length,this.background.length||0),k=0;k<b;k++)a[k]&&this.axis?this.renderBackground(x(this.defaultBackgroundOptions,a[k]),k):this.background[k]&&(this.background[k]=this.background[k].destroy(),this.background.splice(k,1))};b.prototype.renderBackground=function(b,a){var k="animate",p={"class":"highcharts-pane "+(b.className||"")};this.chart.styledMode||
r(p,{fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth});this.background[a]||(this.background[a]=this.chart.renderer.path().add(this.group),k="attr");this.background[a][k]({d:this.axis.getPlotBandPath(b.from,b.to,b)}).attr(p)};b.prototype.updateCenter=function(b){this.center=(b||this.axis||{}).center=t.getCenter.call(this)};b.prototype.update=function(b,a){x(!0,this.options,b);this.setOptions(this.options);this.render();this.chart.axes.forEach(function(b){b.pane===this&&(b.pane=
null,b.update({},a))},this)};return b}();e.prototype.getHoverPane=function(b){var a=this,k;b&&a.pane.forEach(function(p){var q=b.chartX-a.plotLeft,v=b.chartY-a.plotTop;m(a.inverted?v:q,a.inverted?q:v,p.center)&&(k=p)});return k};l(e,"afterIsInsidePlot",function(b){this.polar&&(b.isInsidePlot=this.pane.some(function(a){return m(b.x,b.y,a.center)}))});l(c,"beforeGetHoverData",function(a){var k=this.chart;k.polar?(k.hoverPane=k.getHoverPane(a),a.filter=function(q){return q.visible&&!(!a.shared&&q.directTouch)&&
b(q.options.enableMouseTracking,!0)&&(!k.hoverPane||q.xAxis.pane===k.hoverPane)}):k.hoverPane=void 0});l(c,"afterGetHoverData",function(b){var a=this.chart;b.hoverPoint&&b.hoverPoint.plotX&&b.hoverPoint.plotY&&a.hoverPane&&!m(b.hoverPoint.plotX,b.hoverPoint.plotY,a.hoverPane.center)&&(b.hoverPoint=void 0)});d.Pane=a;return d.Pane});z(e,"Core/Axis/RadialAxis.js",[e["Core/Axis/AxisDefaults.js"],e["Core/DefaultOptions.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,d,h,c){var a=d.defaultOptions,
t=h.noop,m=c.addEvent,l=c.correctFloat,r=c.defined,x=c.extend,b=c.fireEvent,q=c.merge,k=c.pick,p=c.relativeLength,v=c.wrap,B;(function(c){function d(){this.autoConnect=this.isCircular&&"undefined"===typeof k(this.userMax,this.options.max)&&l(this.endAngleRad-this.startAngleRad)===l(2*Math.PI);!this.isCircular&&this.chart.inverted&&this.max++;this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function y(){var f=this;return function(){if(f.isRadial&&f.tickPositions&&
f.options.labels&&!0!==f.options.labels.allowOverlap)return f.tickPositions.map(function(g){return f.ticks[g]&&f.ticks[g].label}).filter(function(f){return!!f})}}function h(){return t}function g(f,g,b){var n=this.pane.center,u=f.value;if(this.isCircular){if(r(u))f.point&&(a=f.point.shapeArgs||{},a.start&&(u=this.chart.inverted?this.translate(f.point.rectPlotY,!0):f.point.x));else{var a=f.chartX||0;var w=f.chartY||0;u=this.translate(Math.atan2(w-b,a-g)-this.startAngleRad,!0)}f=this.getPosition(u);
a=f.x;w=f.y}else r(u)||(a=f.chartX,w=f.chartY),r(a)&&r(w)&&(b=n[1]+this.chart.plotTop,u=this.translate(Math.min(Math.sqrt(Math.pow(a-g,2)+Math.pow(w-b,2)),n[2]/2)-n[3]/2,!0));return[u,a||0,w||0]}function f(f,g,b){f=this.pane.center;var u=this.chart,n=this.left||0,a=this.top||0,w=k(g,f[2]/2-this.offset);"undefined"===typeof b&&(b=this.horiz?0:this.center&&-this.center[3]/2);b&&(w+=b);this.isCircular||"undefined"!==typeof g?(g=this.chart.renderer.symbols.arc(n+f[0],a+f[1],w,w,{start:this.startAngleRad,
end:this.endAngleRad,open:!0,innerR:0}),g.xBounds=[n+f[0]],g.yBounds=[a+f[1]-w]):(g=this.postTranslate(this.angleRad,w),g=[["M",this.center[0]+u.plotLeft,this.center[1]+u.plotTop],["L",g.x,g.y]]);return g}function u(){this.constructor.prototype.getOffset.call(this);this.chart.axisOffset[this.side]=0}function n(f,g,b){var u=this.chart,n=function(f){if("string"===typeof f){var g=parseInt(f,10);y.test(f)&&(g=g*A/100);return g}return f},a=this.center,w=this.startAngleRad,A=a[2]/2,q=Math.min(this.offset,
0),p=this.left||0,v=this.top||0,y=/%$/,F=this.isCircular,c=k(n(b.outerRadius),A),d=n(b.innerRadius);n=k(n(b.thickness),10);if("polygon"===this.options.gridLineInterpolation)q=this.getPlotLinePath({value:f}).concat(this.getPlotLinePath({value:g,reverse:!0}));else{f=Math.max(f,this.min);g=Math.min(g,this.max);f=this.translate(f);g=this.translate(g);F||(c=f||0,d=g||0);if("circle"!==b.shape&&F)b=w+(f||0),w+=g||0;else{b=-Math.PI/2;w=1.5*Math.PI;var l=!0}c-=q;q=u.renderer.symbols.arc(p+a[0],v+a[1],c,c,
{start:Math.min(b,w),end:Math.max(b,w),innerR:k(d,c-(n-q)),open:l});F&&(F=(w+b)/2,p=p+a[0]+a[2]/2*Math.cos(F),q.xBounds=F>-Math.PI/2&&F<Math.PI/2?[p,u.plotWidth]:[0,p],q.yBounds=[v+a[1]+a[2]/2*Math.sin(F)],q.yBounds[0]+=F>-Math.PI&&0>F||F>Math.PI?-10:10)}return q}function w(f){var g=this,b=this.pane.center,n=this.chart,u=n.inverted,a=f.reverse,w=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},q=w.innerRadius||"0%",A=w.outerRadius||"100%",k=b[0]+n.plotLeft,
v=b[1]+n.plotTop,F=this.height,y=f.isCrosshair;w=b[3]/2;var c=f.value,d;var l=this.getPosition(c);var h=l.x;l=l.y;y&&(l=this.getCrosshairPosition(f,k,v),c=l[0],h=l[1],l=l[2]);if(this.isCircular)c=Math.sqrt(Math.pow(h-k,2)+Math.pow(l-v,2)),a="string"===typeof q?p(q,1):q/c,n="string"===typeof A?p(A,1):A/c,b&&w&&(w/=c,a<w&&(a=w),n<w&&(n=w)),b=[["M",k+a*(h-k),v-a*(v-l)],["L",h-(1-n)*(h-k),l+(1-n)*(v-l)]];else if((c=this.translate(c))&&(0>c||c>F)&&(c=0),"circle"===this.options.gridLineInterpolation)b=
this.getLinePath(0,c,w);else if(b=[],n[u?"yAxis":"xAxis"].forEach(function(f){f.pane===g.pane&&(d=f)}),d)for(k=d.tickPositions,d.autoConnect&&(k=k.concat([k[0]])),a&&(k=k.slice().reverse()),c&&(c+=w),v=0;v<k.length;v++)w=d.getPosition(k[v],c),b.push(v?["L",w.x,w.y]:["M",w.x,w.y]);return b}function A(f,g){f=this.translate(f);return this.postTranslate(this.isCircular?f:this.angleRad,k(this.isCircular?g:0>f?0:f,this.center[2]/2)-this.offset)}function F(){var f=this.center,g=this.chart,b=this.options.title;
return{x:g.plotLeft+f[0]+(b.x||0),y:g.plotTop+f[1]-{high:.5,middle:.25,low:0}[b.align]*f[2]+(b.y||0)}}function J(b){b.beforeSetTickPositions=d;b.createLabelCollector=y;b.getCrosshairPosition=g;b.getLinePath=f;b.getOffset=u;b.getPlotBandPath=n;b.getPlotLinePath=w;b.getPosition=A;b.getTitlePosition=F;b.postTranslate=N;b.setAxisSize=E;b.setAxisTranslation=z;b.setOptions=O}function B(){var f=this.chart,g=this.options,b=this.pane,n=b&&b.options;f.angular&&this.isXAxis||!b||!f.angular&&!f.polar||(this.angleRad=
(g.angle||0)*Math.PI/180,this.startAngleRad=(n.startAngle-90)*Math.PI/180,this.endAngleRad=(k(n.endAngle,n.startAngle+360)-90)*Math.PI/180,this.offset=g.offset||0)}function P(f){this.isRadial&&(f.align=void 0,f.preventDefault())}function H(){if(this.chart&&this.chart.labelCollectors){var f=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;0<=f&&this.chart.labelCollectors.splice(f,1)}}function K(f){var g=this.chart,b=g.inverted,n=g.angular,u=g.polar,a=this.isXAxis,w=this.coll,
k=n&&a,A=g.options;f=f.userOptions.pane||0;f=this.pane=g.pane&&g.pane[f];var p;if("colorAxis"===w)this.isRadial=!1;else{if(n){if(k?(this.isHidden=!0,this.createLabelCollector=h,this.getOffset=t,this.render=this.redraw=Q,this.setTitle=this.setCategories=this.setScale=t):J(this),p=!a)this.defaultPolarOptions=R}else u&&(J(this),this.defaultPolarOptions=(p=this.horiz)?S:q("xAxis"===w?e.defaultXAxisOptions:e.defaultYAxisOptions,T),b&&"yAxis"===w&&(this.defaultPolarOptions.stackLabels=e.defaultYAxisOptions.stackLabels,
this.defaultPolarOptions.reversedStacks=!0));n||u?(this.isRadial=!0,A.chart.zoomType=null,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&g.labelCollectors.push(this.labelCollector)):this.isRadial=!1;f&&p&&(f.axis=this);this.isCircular=p}}function C(){this.isRadial&&this.beforeSetTickPositions()}function D(f){var g=this.label;if(g){var b=this.axis,n=g.getBBox(),u=b.options.labels,a=(b.translate(this.pos)+b.startAngleRad+Math.PI/2)/Math.PI*180%360,w=Math.round(a),
q=r(u.y)?0:.3*-n.height,A=u.y,v=20,F=u.align,c="end",y=0>w?w+360:w,l=y,d=0,h=0;if(b.isRadial){var m=b.getPosition(this.pos,b.center[2]/2+p(k(u.distance,-25),b.center[2]/2,-b.center[2]/2));"auto"===u.rotation?g.attr({rotation:a}):r(A)||(A=b.chart.renderer.fontMetrics(g.styles&&g.styles.fontSize).b-n.height/2);r(F)||(b.isCircular?(n.width>b.len*b.tickInterval/(b.max-b.min)&&(v=0),F=a>v&&a<180-v?"left":a>180+v&&a<360-v?"right":"center"):F="center",g.attr({align:F}));if("auto"===F&&2===b.tickPositions.length&&
b.isCircular){90<y&&180>y?y=180-y:270<y&&360>=y&&(y=540-y);180<l&&360>=l&&(l=360-l);if(b.pane.options.startAngle===w||b.pane.options.startAngle===w+360||b.pane.options.startAngle===w-360)c="start";F=-90<=w&&90>=w||-360<=w&&-270>=w||270<=w&&360>=w?"start"===c?"right":"left":"start"===c?"left":"right";70<l&&110>l&&(F="center");15>y||180<=y&&195>y?d=.3*n.height:15<=y&&35>=y?d="start"===c?0:.75*n.height:195<=y&&215>=y?d="start"===c?.75*n.height:0:35<y&&90>=y?d="start"===c?.25*-n.height:n.height:215<y&&
270>=y&&(d="start"===c?n.height:.25*-n.height);15>l?h="start"===c?.15*-n.height:.15*n.height:165<l&&180>=l&&(h="start"===c?.15*n.height:.15*-n.height);g.attr({align:F});g.translate(h,d+q)}f.pos.x=m.x+(u.x||0);f.pos.y=m.y+(A||0)}}}function G(f){this.axis.getPosition&&x(f.pos,this.axis.getPosition(this.pos))}function N(f,g){var b=this.chart,n=this.center;f=this.startAngleRad+f;return{x:b.plotLeft+n[0]+Math.cos(f)*g,y:b.plotTop+n[1]+Math.sin(f)*g}}function Q(){this.isDirty=!1}function E(){this.constructor.prototype.setAxisSize.call(this);
if(this.isRadial){this.pane.updateCenter(this);var f=this.center=this.pane.center.slice();if(this.isCircular)this.sector=this.endAngleRad-this.startAngleRad;else{var g=this.postTranslate(this.angleRad,f[3]/2);f[0]=g.x-this.chart.plotLeft;f[1]=g.y-this.chart.plotTop}this.len=this.width=this.height=(f[2]-f[3])*k(this.sector,1)/2}}function z(){this.constructor.prototype.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):
(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function O(f){f=this.options=q(this.constructor.defaultOptions,this.defaultPolarOptions,a[this.coll],f);f.plotBands||(f.plotBands=[]);b(this,"afterSetOptions")}function U(f,g,b,n,u,w,a){var k=this.axis;k.isRadial?(f=k.getPosition(this.pos,k.center[2]/2+n),g=["M",g,b,"L",f.x,f.y]):g=f.call(this,g,b,n,u,w,a);return g}var M=[],S={gridLineWidth:1,labels:{align:void 0,distance:15,
x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},R={labels:{align:"center",x:0,y:void 0},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},T={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};c.compose=function(f,g){-1===M.indexOf(f)&&
(M.push(f),m(f,"afterInit",B),m(f,"autoLabelAlign",P),m(f,"destroy",H),m(f,"init",K),m(f,"initialAxisTranslation",C));-1===M.indexOf(g)&&(M.push(g),m(g,"afterGetLabelPosition",D),m(g,"afterGetPosition",G),v(g.prototype,"getMarkPath",U));return f}})(B||(B={}));return B});z(e,"Series/AreaRange/AreaRangePoint.js",[e["Series/Area/AreaSeries.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"]],function(e,d,h){var c=this&&this.__extends||function(){var a=function(c,l){a=Object.setPrototypeOf||{__proto__:[]}instanceof
Array&&function(b,a){b.__proto__=a}||function(b,a){for(var k in a)a.hasOwnProperty(k)&&(b[k]=a[k])};return a(c,l)};return function(c,l){function b(){this.constructor=c}a(c,l);c.prototype=null===l?Object.create(l):(b.prototype=l.prototype,new b)}}(),a=d.prototype,t=h.defined,m=h.isNumber;return function(l){function d(){var a=null!==l&&l.apply(this,arguments)||this;a.high=void 0;a.low=void 0;a.options=void 0;a.plotHigh=void 0;a.plotLow=void 0;a.plotHighX=void 0;a.plotLowX=void 0;a.plotX=void 0;a.series=
void 0;return a}c(d,l);d.prototype.setState=function(){var c=this.state,b=this.series,q=b.chart.polar;t(this.plotHigh)||(this.plotHigh=b.yAxis.toPixels(this.high,!0));t(this.plotLow)||(this.plotLow=this.plotY=b.yAxis.toPixels(this.low,!0));b.stateMarkerGraphic&&(b.lowerStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh;q&&(this.plotX=this.plotHighX);a.setState.apply(this,arguments);this.state=c;this.plotY=
this.plotLow;this.graphic=this.lowerGraphic;q&&(this.plotX=this.plotLowX);b.stateMarkerGraphic&&(b.upperStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.lowerStateMarkerGraphic,b.lowerStateMarkerGraphic=void 0);a.setState.apply(this,arguments)};d.prototype.haloPath=function(){var c=this.series.chart.polar,b=[];this.plotY=this.plotLow;c&&(this.plotX=this.plotLowX);this.isInside&&(b=a.haloPath.apply(this,arguments));this.plotY=this.plotHigh;c&&(this.plotX=this.plotHighX);this.isTopInside&&
(b=b.concat(a.haloPath.apply(this,arguments)));return b};d.prototype.isValid=function(){return m(this.low)&&m(this.high)};return d}(e.prototype.pointClass)});z(e,"Series/AreaRange/AreaRangeSeries.js",[e["Series/AreaRange/AreaRangePoint.js"],e["Series/Area/AreaSeries.js"],e["Series/Column/ColumnSeries.js"],e["Core/Globals.js"],e["Core/Series/Series.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h,c,a,t,m){var l=this&&this.__extends||function(){var b=function(a,k){b=Object.setPrototypeOf||
{__proto__:[]}instanceof Array&&function(b,g){b.__proto__=g}||function(b,g){for(var f in g)g.hasOwnProperty(f)&&(b[f]=g[f])};return b(a,k)};return function(a,k){function q(){this.constructor=a}b(a,k);a.prototype=null===k?Object.create(k):(q.prototype=k.prototype,new q)}}(),r=d.prototype,x=h.prototype;h=c.noop;var b=a.prototype,q=m.defined,k=m.extend,p=m.isArray,v=m.pick,B=m.merge;a=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;
b.lowerStateMarkerGraphic=void 0;b.xAxis=void 0;return b}l(c,a);c.prototype.toYData=function(b){return[b.low,b.high]};c.prototype.highToXY=function(b){var a=this.chart,g=this.xAxis.postTranslate(b.rectPlotX||0,this.yAxis.len-b.plotHigh);b.plotHighX=g.x-a.plotLeft;b.plotHigh=g.y-a.plotTop;b.plotLowX=b.plotX};c.prototype.translate=function(){var b=this,a=b.yAxis,g=!!b.modifyValue;r.translate.apply(b);b.points.forEach(function(f){var u=f.high,n=f.plotY;f.isNull?f.plotY=null:(f.plotLow=n,f.plotHigh=a.translate(g?
b.modifyValue(u,f):u,0,1,0,1),g&&(f.yBottom=f.plotHigh))});this.chart.polar&&this.points.forEach(function(f){b.highToXY(f);f.tooltipPos=[(f.plotHighX+f.plotLowX)/2,(f.plotHigh+f.plotLow)/2]})};c.prototype.getGraphPath=function(b){var a=[],g=[],f,u=r.getGraphPath;var n=this.options;var w=this.chart.polar,k=w&&!1!==n.connectEnds,q=n.connectNulls,c=n.step;b=b||this.points;for(f=b.length;f--;){var p=b[f];var l=w?{plotX:p.rectPlotX,plotY:p.yBottom,doCurve:!1}:{plotX:p.plotX,plotY:p.plotY,doCurve:!1};p.isNull||
k||q||b[f+1]&&!b[f+1].isNull||g.push(l);var d={polarPlotY:p.polarPlotY,rectPlotX:p.rectPlotX,yBottom:p.yBottom,plotX:v(p.plotHighX,p.plotX),plotY:p.plotHigh,isNull:p.isNull};g.push(d);a.push(d);p.isNull||k||q||b[f-1]&&!b[f-1].isNull||g.push(l)}b=u.call(this,b);c&&(!0===c&&(c="left"),n.step={left:"right",center:"center",right:"left"}[c]);a=u.call(this,a);g=u.call(this,g);n.step=c;n=[].concat(b,a);!this.chart.polar&&g[0]&&"M"===g[0][0]&&(g[0]=["L",g[0][1],g[0][2]]);this.graphPath=n;this.areaPath=b.concat(g);
n.isArea=!0;n.xMap=b.xMap;this.areaPath.xMap=b.xMap;return n};c.prototype.drawDataLabels=function(){var a=this.points,q=a.length,g,f=[],u=this.options.dataLabels,n,w=this.chart.inverted;if(u){if(p(u)){var A=u[0]||{enabled:!1};var c=u[1]||{enabled:!1}}else A=k({},u),A.x=u.xHigh,A.y=u.yHigh,c=k({},u),c.x=u.xLow,c.y=u.yLow;if(A.enabled||this._hasPointLabels){for(g=q;g--;)if(n=a[g]){var v=A.inside?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow;n.y=n.high;n._plotY=n.plotY;n.plotY=n.plotHigh;f[g]=n.dataLabel;
n.dataLabel=n.dataLabelUpper;n.below=v;w?A.align||(A.align=v?"right":"left"):A.verticalAlign||(A.verticalAlign=v?"top":"bottom")}this.options.dataLabels=A;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(g=q;g--;)if(n=a[g])n.dataLabelUpper=n.dataLabel,n.dataLabel=f[g],delete n.dataLabels,n.y=n.low,n.plotY=n._plotY}if(c.enabled||this._hasPointLabels){for(g=q;g--;)if(n=a[g])v=c.inside?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.below=!v,w?c.align||(c.align=v?"left":"right"):c.verticalAlign||
(c.verticalAlign=v?"bottom":"top");this.options.dataLabels=c;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}if(A.enabled)for(g=q;g--;)if(n=a[g])n.dataLabels=[n.dataLabelUpper,n.dataLabel].filter(function(f){return!!f});this.options.dataLabels=u}};c.prototype.alignDataLabel=function(){x.alignDataLabel.apply(this,arguments)};c.prototype.drawPoints=function(){var a=this.points.length,c;b.drawPoints.apply(this,arguments);for(c=0;c<a;){var g=this.points[c];g.origProps={plotY:g.plotY,plotX:g.plotX,
isInside:g.isInside,negative:g.negative,zone:g.zone,y:g.y};g.lowerGraphic=g.graphic;g.graphic=g.upperGraphic;g.plotY=g.plotHigh;q(g.plotHighX)&&(g.plotX=g.plotHighX);g.y=v(g.high,g.origProps.y);g.negative=g.y<(this.options.threshold||0);this.zones.length&&(g.zone=g.getZone());this.chart.polar||(g.isInside=g.isTopInside="undefined"!==typeof g.plotY&&0<=g.plotY&&g.plotY<=this.yAxis.len&&0<=g.plotX&&g.plotX<=this.xAxis.len);c++}b.drawPoints.apply(this,arguments);for(c=0;c<a;)g=this.points[c],g.upperGraphic=
g.graphic,g.graphic=g.lowerGraphic,g.origProps&&(k(g,g.origProps),delete g.origProps),c++};c.defaultOptions=B(d.defaultOptions,{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}});return c}(d);k(a.prototype,{pointArrayMap:["low","high"],pointValKey:"low",deferTranslatePolar:!0,pointClass:e,setStackedPoints:h});
t.registerSeriesType("arearange",a);"";return a});z(e,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[e["Series/AreaRange/AreaRangeSeries.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h){var c=this&&this.__extends||function(){var a=function(c,l){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return a(c,l)};return function(c,l){function b(){this.constructor=c}a(c,
l);c.prototype=null===l?Object.create(l):(b.prototype=l.prototype,new b)}}(),a=d.seriesTypes.spline,t=h.merge;h=h.extend;var m=function(a){function l(){var c=null!==a&&a.apply(this,arguments)||this;c.options=void 0;c.data=void 0;c.points=void 0;return c}c(l,a);l.defaultOptions=t(e.defaultOptions);return l}(e);h(m.prototype,{getPointSpline:a.prototype.getPointSpline});d.registerSeriesType("areasplinerange",m);"";return m});z(e,"Series/BoxPlot/BoxPlotSeries.js",[e["Series/Column/ColumnSeries.js"],e["Core/Globals.js"],
e["Core/Color/Palette.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h,c,a){var t=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return a(b,c)};return function(b,c){function k(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(k.prototype=c.prototype,new k)}}();d=d.noop;var m=a.extend,l=a.merge,r=a.pick;
a=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}t(b,a);b.prototype.pointAttribs=function(){return{}};b.prototype.translate=function(){var b=this.yAxis,c=this.pointArrayMap;a.prototype.translate.apply(this);this.points.forEach(function(a){c.forEach(function(c){null!==a[c]&&(a[c+"Plot"]=b.translate(a[c],0,1,0,1))});a.plotHigh=a.highPlot})};b.prototype.drawPoints=function(){var b=this,a=b.options,c=b.chart,v=c.renderer,
l,d,h,m,e,g,f=0,u,n,w,A,F=!1!==b.doQuartiles,t,x=b.options.whiskerLength;b.points.forEach(function(k){var p=k.graphic,q=p?"animate":"attr",y=k.shapeArgs,B={},J={},L={},H={},I=k.color||b.color;"undefined"!==typeof k.plotY&&(u=Math.round(y.width),n=Math.floor(y.x),w=n+u,A=Math.round(u/2),l=Math.floor(F?k.q1Plot:k.lowPlot),d=Math.floor(F?k.q3Plot:k.lowPlot),h=Math.floor(k.highPlot),m=Math.floor(k.lowPlot),p||(k.graphic=p=v.g("point").add(b.group),k.stem=v.path().addClass("highcharts-boxplot-stem").add(p),
x&&(k.whiskers=v.path().addClass("highcharts-boxplot-whisker").add(p)),F&&(k.box=v.path(void 0).addClass("highcharts-boxplot-box").add(p)),k.medianShape=v.path(void 0).addClass("highcharts-boxplot-median").add(p)),c.styledMode||(J.stroke=k.stemColor||a.stemColor||I,J["stroke-width"]=r(k.stemWidth,a.stemWidth,a.lineWidth),J.dashstyle=k.stemDashStyle||a.stemDashStyle||a.dashStyle,k.stem.attr(J),x&&(L.stroke=k.whiskerColor||a.whiskerColor||I,L["stroke-width"]=r(k.whiskerWidth,a.whiskerWidth,a.lineWidth),
L.dashstyle=k.whiskerDashStyle||a.whiskerDashStyle||a.dashStyle,k.whiskers.attr(L)),F&&(B.fill=k.fillColor||a.fillColor||I,B.stroke=a.lineColor||I,B["stroke-width"]=a.lineWidth||0,B.dashstyle=k.boxDashStyle||a.boxDashStyle||a.dashStyle,k.box.attr(B)),H.stroke=k.medianColor||a.medianColor||I,H["stroke-width"]=r(k.medianWidth,a.medianWidth,a.lineWidth),H.dashstyle=k.medianDashStyle||a.medianDashStyle||a.dashStyle,k.medianShape.attr(H)),g=k.stem.strokeWidth()%2/2,f=n+A+g,p=[["M",f,d],["L",f,h],["M",
f,l],["L",f,m]],k.stem[q]({d:p}),F&&(g=k.box.strokeWidth()%2/2,l=Math.floor(l)+g,d=Math.floor(d)+g,n+=g,w+=g,p=[["M",n,d],["L",n,l],["L",w,l],["L",w,d],["L",n,d],["Z"]],k.box[q]({d:p})),x&&(g=k.whiskers.strokeWidth()%2/2,h+=g,m+=g,t=/%$/.test(x)?A*parseFloat(x)/100:x/2,p=[["M",f-t,h],["L",f+t,h],["M",f-t,m],["L",f+t,m]],k.whiskers[q]({d:p})),e=Math.round(k.medianPlot),g=k.medianShape.strokeWidth()%2/2,e+=g,p=[["M",n,e],["L",w,e]],k.medianShape[q]({d:p}))})};b.prototype.toYData=function(b){return[b.low,
b.q1,b.median,b.q3,b.high]};b.defaultOptions=l(e.defaultOptions,{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</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:h.backgroundColor,lineWidth:1,medianWidth:2,whiskerWidth:2});return b}(e);m(a.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",
drawDataLabels:d,setStackedPoints:d});c.registerSeriesType("boxplot",a);"";return a});z(e,"Series/Bubble/BubbleLegendDefaults.js",[e["Core/Color/Palette.js"]],function(e){return{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:"10px",color:e.neutralColor100},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}});z(e,"Series/Bubble/BubbleLegendItem.js",[e["Core/Color/Color.js"],e["Core/FormatUtilities.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,d,h,c){var a=e.parse,t=h.noop,m=c.arrayMax,l=c.arrayMin,r=c.isNumber,x=c.merge,b=c.pick,q=c.stableSort;"";return function(){function c(b,a){this.options=this.symbols=this.visible=this.selected=this.ranges=this.movementX=
this.maxLabel=this.legendSymbol=this.legendItemWidth=this.legendItemHeight=this.legendItem=this.legendGroup=this.legend=this.fontMetrics=this.chart=void 0;this.setState=t;this.init(b,a)}c.prototype.init=function(b,a){this.options=b;this.visible=!0;this.chart=a.chart;this.legend=a};c.prototype.addToLegend=function(b){b.splice(this.options.legendIndex,0,this)};c.prototype.drawLegendSymbol=function(a){var c=this.chart,k=this.options,p=b(a.options.itemDistance,20),l=k.ranges,d=k.connectorDistance;this.fontMetrics=
c.renderer.fontMetrics(k.labels.style.fontSize);l&&l.length&&r(l[0].value)?(q(l,function(b,g){return g.value-b.value}),this.ranges=l,this.setOptions(),this.render(),a=this.getMaxLabelSize(),l=this.ranges[0].radius,c=2*l,d=d-l+a.width,d=0<d?d:0,this.maxLabel=a,this.movementX="left"===k.labels.align?d:0,this.legendItemWidth=c+d+p,this.legendItemHeight=c+this.fontMetrics.h/2):a.options.bubbleLegend.autoRanges=!0};c.prototype.setOptions=function(){var c=this.ranges,k=this.options,l=this.chart.series[k.seriesIndex],
q=this.legend.baseline,d={zIndex:k.zIndex,"stroke-width":k.borderWidth},h={zIndex:k.zIndex,"stroke-width":k.connectorWidth},e={align:this.legend.options.rtl||"left"===k.labels.align?"right":"left",zIndex:k.zIndex},g=l.options.marker.fillOpacity,f=this.chart.styledMode;c.forEach(function(u,n){f||(d.stroke=b(u.borderColor,k.borderColor,l.color),d.fill=b(u.color,k.color,1!==g?a(l.color).setOpacity(g).get("rgba"):l.color),h.stroke=b(u.connectorColor,k.connectorColor,l.color));c[n].radius=this.getRangeRadius(u.value);
c[n]=x(c[n],{center:c[0].radius-c[n].radius+q});f||x(!0,c[n],{bubbleAttribs:x(d),connectorAttribs:x(h),labelAttribs:e})},this)};c.prototype.getRangeRadius=function(b){var a=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,a.ranges[a.ranges.length-1].value,a.ranges[0].value,a.minSize,a.maxSize,b)};c.prototype.render=function(){var b=this.chart.renderer,a=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]});this.legendSymbol=
b.g("bubble-legend");this.legendItem=b.g("bubble-legend-item");this.legendSymbol.translateX=0;this.legendSymbol.translateY=0;this.ranges.forEach(function(b){b.value>=a&&this.renderRange(b)},this);this.legendSymbol.add(this.legendItem);this.legendItem.add(this.legendGroup);this.hideOverlappingLabels()};c.prototype.renderRange=function(b){var a=this.options,c=a.labels,k=this.chart,l=k.series[a.seriesIndex],d=k.renderer,q=this.symbols;k=q.labels;var g=b.center,f=Math.abs(b.radius),u=a.connectorDistance||
0,n=c.align,w=a.connectorWidth,A=this.ranges[0].radius||0,p=g-f-a.borderWidth/2+w/2,h=this.fontMetrics;h=h.f/2-(h.h-h.f)/2;var e=d.styledMode;u=this.legend.options.rtl||"left"===n?-u:u;"center"===n&&(u=0,a.connectorDistance=0,b.labelAttribs.align="center");n=p+a.labels.y;var m=A+u+a.labels.x;q.bubbleItems.push(d.circle(A,g+((p%1?1:.5)-(w%2?0:.5)),f).attr(e?{}:b.bubbleAttribs).addClass((e?"highcharts-color-"+l.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(a.className||"")).add(this.legendSymbol));
q.connectors.push(d.path(d.crispLine([["M",A,p],["L",A+u,p]],a.connectorWidth)).attr(e?{}:b.connectorAttribs).addClass((e?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(a.connectorClassName||"")).add(this.legendSymbol));b=d.text(this.formatLabel(b),m,n+h).attr(e?{}:b.labelAttribs).css(e?{}:c.style).addClass("highcharts-bubble-legend-labels "+(a.labels.className||"")).add(this.legendSymbol);k.push(b);b.placed=!0;b.alignAttr={x:m,y:n+h}};c.prototype.getMaxLabelSize=
function(){var b,a;this.symbols.labels.forEach(function(c){a=c.getBBox(!0);b=b?a.width>b.width?a:b:a});return b||{}};c.prototype.formatLabel=function(b){var a=this.options,c=a.labels.formatter;a=a.labels.format;var k=this.chart.numberFormatter;return a?d.format(a,b):c?c.call(b):k(b.value,1)};c.prototype.hideOverlappingLabels=function(){var b=this.chart,a=this.symbols;!this.options.labels.allowOverlap&&a&&(b.hideOverlappingLabels(a.labels),a.labels.forEach(function(b,c){b.newOpacity?b.newOpacity!==
b.oldOpacity&&a.connectors[c].show():a.connectors[c].hide()}))};c.prototype.getRanges=function(){var a=this.legend.bubbleLegend,c=a.options.ranges,k,d=Number.MAX_VALUE,q=-Number.MAX_VALUE;a.chart.series.forEach(function(a){a.isBubble&&!a.ignoreSeries&&(k=a.zData.filter(r),k.length&&(d=b(a.options.zMin,Math.min(d,Math.max(l(k),!1===a.options.displayNegative?a.options.zThreshold:-Number.MAX_VALUE))),q=b(a.options.zMax,Math.max(q,m(k)))))});var h=d===q?[{value:q}]:[{value:d},{value:(d+q)/2},{value:q,
autoRanges:!0}];c.length&&c[0].radius&&h.reverse();h.forEach(function(b,a){c&&c[a]&&(h[a]=x(c[a],b))});return h};c.prototype.predictBubbleSizes=function(){var b=this.chart,a=this.fontMetrics,c=b.legend.options,k="horizontal"===c.layout,l=k?b.legend.lastLineHeight:0,d=b.plotSizeX,q=b.plotSizeY,g=b.series[this.options.seriesIndex];b=Math.ceil(g.minPxSize);var f=Math.ceil(g.maxPxSize),u=Math.min(q,d);g=g.options.maxSize;if(c.floating||!/%$/.test(g))a=f;else if(g=parseFloat(g),a=(u+l-a.h/2)*g/100/(g/
100+1),k&&q-a>=d||!k&&d-a>=q)a=f;return[b,Math.ceil(a)]};c.prototype.updateRanges=function(b,a){var c=this.legend.options.bubbleLegend;c.minSize=b;c.maxSize=a;c.ranges=this.getRanges()};c.prototype.correctSizes=function(){var b=this.legend,a=this.chart.series[this.options.seriesIndex];1<Math.abs(Math.ceil(a.maxPxSize)-this.options.maxSize)&&(this.updateRanges(this.options.minSize,a.maxPxSize),b.render())};return c}()});z(e,"Series/Bubble/BubbleLegendComposition.js",[e["Series/Bubble/BubbleLegendDefaults.js"],
e["Series/Bubble/BubbleLegendItem.js"],e["Core/DefaultOptions.js"],e["Core/Utilities.js"]],function(e,d,h,c){var a=h.setOptions,t=c.addEvent,m=c.objectEach,l=c.wrap,r;(function(c){function b(b,a,c){var g=this.legend,f=0<=q(this);if(g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&f){var u=g.bubbleLegend.options;f=g.bubbleLegend.predictBubbleSizes();g.bubbleLegend.updateRanges(f[0],f[1]);u.placed||(g.group.placed=!1,g.allItems.forEach(function(f){f.legendGroup.translateY=null}));
g.render();this.getMargins();this.axes.forEach(function(f){f.visible&&f.render();u.placed||(f.setScale(),f.updateNames(),m(f.ticks,function(f){f.isNew=!0;f.isNewLabel=!0}))});u.placed=!0;this.getMargins();b.call(this,a,c);g.bubbleLegend.correctSizes();r(g,k(g))}else b.call(this,a,c),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),r(g,k(g)))}function q(b){b=b.series;for(var a=0;a<b.length;){if(b[a]&&b[a].isBubble&&b[a].visible&&b[a].zData.length)return a;a++}return-1}function k(b){b=b.allItems;var a=
[],c=b.length,g,f=0;for(g=0;g<c;g++)if(b[g].legendItemHeight&&(b[g].itemHeight=b[g].legendItemHeight),b[g]===b[c-1]||b[g+1]&&b[g]._legendItemPos[1]!==b[g+1]._legendItemPos[1]){a.push({height:0});var u=a[a.length-1];for(f;f<=g;f++)b[f].itemHeight>u.height&&(u.height=b[f].itemHeight);u.step=g}return a}function h(b){var a=this.bubbleLegend,c=this.options,g=c.bubbleLegend,f=q(this.chart);a&&a.ranges&&a.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),this.destroyItem(a));0<=f&&
c.enabled&&g.enabled&&(g.seriesIndex=f,this.bubbleLegend=new d(g,this),this.bubbleLegend.addToLegend(b.allItems))}function v(){var b=this.chart,a=this.visible,c=this.chart.legend;c&&c.bubbleLegend&&(this.visible=!a,this.ignoreSeries=a,b=0<=q(b),c.bubbleLegend.visible!==b&&(c.update({bubbleLegend:{enabled:b}}),c.bubbleLegend.visible=b),this.visible=a)}function r(b,a){var c=b.options.rtl,g,f,u,n=0;b.allItems.forEach(function(b,k){g=b.legendGroup.translateX;f=b._legendItemPos[1];if((u=b.movementX)||
c&&b.ranges)u=c?g-b.options.maxSize/2:g+u,b.legendGroup.attr({translateX:u});k>a[n].step&&n++;b.legendGroup.attr({translateY:Math.round(f+a[n].height/2)});b._legendItemPos[1]=f+a[n].height/2})}var x=[];c.compose=function(c,k,d){-1===x.indexOf(c)&&(x.push(c),a({legend:{bubbleLegend:e}}),l(c.prototype,"drawChartBox",b));-1===x.indexOf(k)&&(x.push(k),t(k,"afterGetAllItems",h));-1===x.indexOf(d)&&(x.push(d),t(d,"legendItemClick",v))}})(r||(r={}));return r});z(e,"Series/Bubble/BubblePoint.js",[e["Core/Series/Point.js"],
e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h){var c=this&&this.__extends||function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])};return a(c,d)};return function(c,d){function l(){this.constructor=c}a(c,d);c.prototype=null===d?Object.create(d):(l.prototype=d.prototype,new l)}}();h=h.extend;d=function(a){function d(){var c=null!==a&&a.apply(this,arguments)||
this;c.options=void 0;c.series=void 0;return c}c(d,a);d.prototype.haloPath=function(a){return e.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)};return d}(d.seriesTypes.scatter.prototype.pointClass);h(d.prototype,{ttBelow:!1});return d});z(e,"Series/Bubble/BubbleSeries.js",[e["Core/Axis/Axis.js"],e["Series/Bubble/BubbleLegendComposition.js"],e["Series/Bubble/BubblePoint.js"],e["Core/Color/Color.js"],e["Core/Globals.js"],e["Core/Series/Series.js"],e["Core/Series/SeriesRegistry.js"],
e["Core/Utilities.js"]],function(e,d,h,c,a,t,m,l){var r=this&&this.__extends||function(){var b=function(f,a){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,f){b.__proto__=f}||function(b,f){for(var a in f)f.hasOwnProperty(a)&&(b[a]=f[a])};return b(f,a)};return function(f,a){function g(){this.constructor=f}b(f,a);f.prototype=null===a?Object.create(a):(g.prototype=a.prototype,new g)}}(),x=c.parse;c=a.noop;var b=m.seriesTypes;a=b.column;var q=b.scatter,k=l.arrayMax,p=l.arrayMin,v=
l.clamp,B=l.extend,H=l.isNumber,D=l.merge,y=l.pick,I=l.pInt;l=function(b){function f(){var f=null!==b&&b.apply(this,arguments)||this;f.data=void 0;f.maxPxSize=void 0;f.minPxSize=void 0;f.options=void 0;f.points=void 0;f.radii=void 0;f.yData=void 0;f.zData=void 0;return f}r(f,b);f.prototype.animate=function(b){!b&&this.points.length<this.options.animationLimit&&this.points.forEach(function(b){var f=b.graphic;f&&f.width&&(this.hasRendered||f.attr({x:b.plotX,y:b.plotY,width:1,height:1}),f.animate(this.markerAttribs(b),
this.options.animation))},this)};f.prototype.getRadii=function(b,f,a){var g=this.zData,c=this.yData,n=a.minPxSize,u=a.maxPxSize,k=[];var w=0;for(a=g.length;w<a;w++){var d=g[w];k.push(this.getRadius(b,f,n,u,d,c[w]))}this.radii=k};f.prototype.getRadius=function(b,f,a,g,c,k){var n=this.options,u="width"!==n.sizeBy,w=n.zThreshold,d=f-b,q=.5;if(null===k||null===c)return null;if(H(c)){n.sizeByAbsoluteValue&&(c=Math.abs(c-w),d=Math.max(f-w,Math.abs(b-w)),b=0);if(c<b)return a/2-1;0<d&&(q=(c-b)/d)}u&&0<=q&&
(q=Math.sqrt(q));return Math.ceil(a+q*(g-a))/2};f.prototype.hasData=function(){return!!this.processedXData.length};f.prototype.pointAttribs=function(b,f){var a=this.options.marker.fillOpacity;b=t.prototype.pointAttribs.call(this,b,f);1!==a&&(b.fill=x(b.fill).setOpacity(a).get("rgba"));return b};f.prototype.translate=function(){var f,a=this.data,g=this.radii;b.prototype.translate.call(this);for(f=a.length;f--;){var c=a[f];var k=g?g[f]:0;H(k)&&k>=this.minPxSize/2?(c.marker=B(c.marker,{radius:k,width:2*
k,height:2*k}),c.dlBox={x:c.plotX-k,y:c.plotY-k,width:2*k,height:2*k}):c.shapeArgs=c.plotY=c.dlBox=void 0}};f.compose=d.compose;f.defaultOptions=D(q.defaultOptions,{dataLabels:{formatter:function(){var b=this.series.chart.numberFormatter,f=this.point.z;return H(f)?b(f,-1):""},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"});return f}(q);B(l.prototype,{alignDataLabel:a.prototype.alignDataLabel,applyZones:c,bubblePadding:!0,buildKDTree:c,directTouch:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:h,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"});e.prototype.beforePadding=function(){var b=this,f=this.len,a=this.chart,c=0,w=f,d=this.isXAxis,q=d?"xData":
"yData",l=this.min,h={},e=Math.min(a.plotWidth,a.plotHeight),m=Number.MAX_VALUE,r=-Number.MAX_VALUE,x=this.max-l,t=f/x,B=[];this.series.forEach(function(f){var g=f.options;!f.bubblePadding||!f.visible&&a.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,B.push(f),d&&(["minSize","maxSize"].forEach(function(b){var f=g[b],a=/%$/.test(f);f=I(f);h[b]=a?e*f/100:f}),f.minPxSize=h.minSize,f.maxPxSize=Math.max(h.maxSize,h.minSize),f=f.zData.filter(H),f.length&&(m=y(g.zMin,v(p(f),!1===g.displayNegative?
g.zThreshold:-Number.MAX_VALUE,m)),r=y(g.zMax,Math.max(r,k(f))))))});B.forEach(function(f){var a=f[q],g=a.length;d&&f.getRadii(m,r,f);if(0<x)for(;g--;)if(H(a[g])&&b.dataMin<=a[g]&&a[g]<=b.max){var n=f.radii?f.radii[g]:0;c=Math.min((a[g]-l)*t-n,c);w=Math.max((a[g]-l)*t+n,w)}});B.length&&0<x&&!this.logarithmic&&(w-=f,t*=(f+Math.max(0,c)-Math.min(w,f))/f,[["min","userMin",c],["max","userMax",w]].forEach(function(f){"undefined"===typeof y(b.options[f[0]],b[f[1]])&&(b[f[0]]+=f[2]/t)}))};m.registerSeriesType("bubble",
l);"";"";return l});z(e,"Series/ColumnRange/ColumnRangePoint.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d){var h=this&&this.__extends||function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return a(c,d)};return function(c,d){function l(){this.constructor=c}a(c,d);c.prototype=null===d?Object.create(d):(l.prototype=d.prototype,new l)}}(),c=e.seriesTypes;
e=c.column.prototype.pointClass;var a=d.extend,t=d.isNumber;d=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.series=void 0;c.options=void 0;c.barX=void 0;c.pointWidth=void 0;c.shapeType=void 0;return c}h(c,a);c.prototype.isValid=function(){return t(this.low)};return c}(c.arearange.prototype.pointClass);a(d.prototype,{setState:e.prototype.setState});return d});z(e,"Series/ColumnRange/ColumnRangeSeries.js",[e["Series/ColumnRange/ColumnRangePoint.js"],e["Core/Globals.js"],e["Core/Series/SeriesRegistry.js"],
e["Core/Utilities.js"]],function(e,d,h,c){var a=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return b(a,c)};return function(a,c){function k(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(k.prototype=c.prototype,new k)}}();d=d.noop;var t=h.seriesTypes,m=t.arearange,l=t.column,r=l.prototype,x=m.prototype,b=c.clamp,q=c.merge,
k=c.pick;c=c.extend;var p={pointRange:null,marker:null,states:{hover:{halo:!1}}};t=function(c){function d(){var b=null!==c&&c.apply(this,arguments)||this;b.data=void 0;b.points=void 0;b.options=void 0;return b}a(d,c);d.prototype.setOptions=function(){q(!0,arguments[0],{stacking:void 0});return x.setOptions.apply(this,arguments)};d.prototype.translate=function(){var a=this,c=a.yAxis,d=a.xAxis,q=d.startAngleRad,g,f=a.chart,u=a.xAxis.isRadial,n=Math.max(f.chartWidth,f.chartHeight)+999,w;r.translate.apply(a);
a.points.forEach(function(l){var h=l.shapeArgs||{},A=a.options.minPointLength;l.plotHigh=w=b(c.translate(l.high,0,1,0,1),-n,n);l.plotLow=b(l.plotY,-n,n);var e=w;var p=k(l.rectPlotY,l.plotY)-w;Math.abs(p)<A?(A-=p,p+=A,e-=A/2):0>p&&(p*=-1,e-=p);u?(g=l.barX+q,l.shapeType="arc",l.shapeArgs=a.polarArc(e+p,e,g,g+l.pointWidth)):(h.height=p,h.y=e,A=h.x,A=void 0===A?0:A,h=h.width,h=void 0===h?0:h,l.tooltipPos=f.inverted?[c.len+c.pos-f.plotLeft-e-p/2,d.len+d.pos-f.plotTop-A-h/2,p]:[d.left-f.plotLeft+A+h/2,
c.pos-f.plotTop+e+p/2,p])})};d.prototype.crispCol=function(){return r.crispCol.apply(this,arguments)};d.prototype.drawPoints=function(){return r.drawPoints.apply(this,arguments)};d.prototype.drawTracker=function(){return r.drawTracker.apply(this,arguments)};d.prototype.getColumnMetrics=function(){return r.getColumnMetrics.apply(this,arguments)};d.prototype.pointAttribs=function(){return r.pointAttribs.apply(this,arguments)};d.prototype.adjustForMissingColumns=function(){return r.adjustForMissingColumns.apply(this,
arguments)};d.prototype.animate=function(){return r.animate.apply(this,arguments)};d.prototype.translate3dPoints=function(){return r.translate3dPoints.apply(this,arguments)};d.prototype.translate3dShapes=function(){return r.translate3dShapes.apply(this,arguments)};d.defaultOptions=q(l.defaultOptions,m.defaultOptions,p);return d}(m);c(t.prototype,{directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:d,getSymbol:d,polarArc:function(){return r.polarArc.apply(this,arguments)},pointClass:e});
h.registerSeriesType("columnrange",t);"";return t});z(e,"Series/ColumnPyramid/ColumnPyramidSeries.js",[e["Series/Column/ColumnSeries.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h){var c=this&&this.__extends||function(){var a=function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return a(c,b)};return function(c,b){function d(){this.constructor=c}a(c,b);c.prototype=
null===b?Object.create(b):(d.prototype=b.prototype,new d)}}(),a=e.prototype,t=h.clamp,m=h.merge,l=h.pick;h=function(d){function h(){var b=null!==d&&d.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}c(h,d);h.prototype.translate=function(){var b=this,c=b.chart,k=b.options,d=b.dense=2>b.closestPointRange*b.xAxis.transA;d=b.borderWidth=l(k.borderWidth,d?0:1);var h=b.yAxis,e=k.threshold,m=b.translatedThreshold=h.getThreshold(e),x=l(k.minPointLength,5),r=b.getColumnMetrics(),
I=r.width,g=b.barW=Math.max(I,1+2*d),f=b.pointXOffset=r.offset;c.inverted&&(m-=.5);k.pointPadding&&(g=Math.ceil(g));a.translate.apply(b);b.points.forEach(function(a){var n=l(a.yBottom,m),d=999+Math.abs(n),u=t(a.plotY,-d,h.len+d);d=a.plotX+f;var q=g/2,p=Math.min(u,n);n=Math.max(u,n)-p;var v;a.barX=d;a.pointWidth=I;a.tooltipPos=c.inverted?[h.len+h.pos-c.plotLeft-u,b.xAxis.len-d-q,n]:[d+q,u+h.pos-c.plotTop,n];u=e+(a.total||a.y);"percent"===k.stacking&&(u=e+(0>a.y)?-100:100);u=h.toPixels(u,!0);var r=
(v=c.plotHeight-u-(c.plotHeight-m))?q*(p-u)/v:0;var y=v?q*(p+n-u)/v:0;v=d-r+q;r=d+r+q;var K=d+y+q;y=d-y+q;var C=p-x;var B=p+n;0>a.y&&(C=p,B=p+n+x);c.inverted&&(K=c.plotWidth-p,v=u-(c.plotWidth-m),r=q*(u-K)/v,y=q*(u-(K-n))/v,v=d+q+r,r=v-2*r,K=d-y+q,y=d+y+q,C=p,B=p+n-x,0>a.y&&(B=p+n+x));a.shapeType="path";a.shapeArgs={x:v,y:C,width:r-v,height:n,d:[["M",v,C],["L",r,C],["L",K,B],["L",y,B],["Z"]]}})};h.defaultOptions=m(e.defaultOptions,{});return h}(e);d.registerSeriesType("columnpyramid",h);"";return h});
z(e,"Series/ErrorBar/ErrorBarSeries.js",[e["Series/BoxPlot/BoxPlotSeries.js"],e["Series/Column/ColumnSeries.js"],e["Core/Color/Palette.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h,c,a){var t=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);
b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),m=c.seriesTypes.arearange,l=a.merge;a=a.extend;var r=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}t(b,a);b.prototype.getColumnMetrics=function(){return this.linkedParent&&this.linkedParent.columnMetrics||d.prototype.getColumnMetrics.call(this)};b.prototype.drawDataLabels=function(){var b=this.pointValKey;m&&(m.prototype.drawDataLabels.call(this),
this.data.forEach(function(a){a.y=a[b]}))};b.prototype.toYData=function(b){return[b.low,b.high]};b.defaultOptions=l(e.defaultOptions,{color:h.neutralColor100,grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null});return b}(e);a(r.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1});c.registerSeriesType("errorbar",r);"";return r});z(e,"Series/Gauge/GaugePoint.js",
[e["Core/Series/SeriesRegistry.js"]],function(e){var d=this&&this.__extends||function(){var d=function(c,a){d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])};return d(c,a)};return function(c,a){function h(){this.constructor=c}d(c,a);c.prototype=null===a?Object.create(a):(h.prototype=a.prototype,new h)}}();return function(h){function c(){var a=null!==h&&h.apply(this,arguments)||this;a.options=void 0;
a.series=void 0;a.shapeArgs=void 0;return a}d(c,h);c.prototype.setState=function(a){this.state=a};return c}(e.series.prototype.pointClass)});z(e,"Series/Gauge/GaugeSeries.js",[e["Series/Gauge/GaugePoint.js"],e["Core/Globals.js"],e["Core/Color/Palette.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h,c,a){var t=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&
(b[c]=a[c])};return b(a,c)};return function(a,c){function d(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}();d=d.noop;var m=c.series,l=c.seriesTypes.column,r=a.clamp,x=a.isNumber,b=a.extend,q=a.merge,k=a.pick,p=a.pInt;a=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.data=void 0;a.points=void 0;a.options=void 0;a.yAxis=void 0;return a}t(a,b);a.prototype.translate=function(){var b=this.yAxis,a=this.options,c=b.center;this.generatePoints();
this.points.forEach(function(d){var g=q(a.dial,d.dial),f=p(k(g.radius,"80%"))*c[2]/200,u=p(k(g.baseLength,"70%"))*f/100,n=p(k(g.rearLength,"10%"))*f/100,w=g.baseWidth||3,l=g.topWidth||1,h=a.overshoot,e=b.startAngleRad+b.translate(d.y,null,null,null,!0);if(x(h)||!1===a.wrap)h=x(h)?h/180*Math.PI:0,e=r(e,b.startAngleRad-h,b.endAngleRad+h);e=180*e/Math.PI;d.shapeType="path";d.shapeArgs={d:g.path||[["M",-n,-w/2],["L",u,-w/2],["L",f,-l/2],["L",f,l/2],["L",u,w/2],["L",-n,w/2],["Z"]],translateX:c[0],translateY:c[1],
rotation:e};d.plotX=c[0];d.plotY=c[1]})};a.prototype.drawPoints=function(){var b=this,a=b.chart,c=b.yAxis.center,d=b.pivot,g=b.options,f=g.pivot,u=a.renderer;b.points.forEach(function(f){var c=f.graphic,d=f.shapeArgs,n=d.d,k=q(g.dial,f.dial);c?(c.animate(d),d.d=n):f.graphic=u[f.shapeType](d).attr({rotation:d.rotation,zIndex:1}).addClass("highcharts-dial").add(b.group);if(!a.styledMode)f.graphic[c?"animate":"attr"]({stroke:k.borderColor||"none","stroke-width":k.borderWidth||0,fill:k.backgroundColor||
h.neutralColor100})});d?d.animate({translateX:c[0],translateY:c[1]}):(b.pivot=u.circle(0,0,k(f.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(c[0],c[1]).add(b.group),a.styledMode||b.pivot.attr({"stroke-width":f.borderWidth||0,stroke:f.borderColor||h.neutralColor20,fill:f.backgroundColor||h.neutralColor100}))};a.prototype.animate=function(b){var a=this;b||a.points.forEach(function(b){var c=b.graphic;c&&(c.attr({rotation:180*a.yAxis.startAngleRad/Math.PI}),c.animate({rotation:b.shapeArgs.rotation},
a.options.animation))})};a.prototype.render=function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);m.prototype.render.call(this);this.group.clip(this.chart.clipRect)};a.prototype.setData=function(b,a){m.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();k(a,!0)&&this.chart.redraw()};a.prototype.hasData=function(){return!!this.points.length};a.defaultOptions=q(m.defaultOptions,{dataLabels:{borderColor:h.neutralColor20,
borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1});return a}(m);b(a.prototype,{angular:!0,directTouch:!0,drawGraph:d,drawTracker:l.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:e,trackerGroups:["group","dataLabelsGroup"]});c.registerSeriesType("gauge",a);"";return a});z(e,"Series/PackedBubble/PackedBubblePoint.js",[e["Core/Chart/Chart.js"],e["Core/Series/Point.js"],e["Core/Series/SeriesRegistry.js"]],
function(e,d,h){var c=this&&this.__extends||function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])};return a(c,d)};return function(c,d){function l(){this.constructor=c}a(c,d);c.prototype=null===d?Object.create(d):(l.prototype=d.prototype,new l)}}();return function(a){function h(){var c=null!==a&&a.apply(this,arguments)||this;c.degree=NaN;c.mass=NaN;c.radius=NaN;c.options=void 0;
c.series=void 0;c.value=null;return c}c(h,a);h.prototype.destroy=function(){this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes);return d.prototype.destroy.apply(this,arguments)};h.prototype.firePointEvent=function(){var a=this.series.options;if(this.isParentNode&&a.parentNode){var c=a.allowPointSelect;a.allowPointSelect=a.parentNode.allowPointSelect;d.prototype.firePointEvent.apply(this,arguments);a.allowPointSelect=c}else d.prototype.firePointEvent.apply(this,
arguments)};h.prototype.select=function(){var a=this.series.chart;this.isParentNode?(a.getSelectedPoints=a.getSelectedParentNodes,d.prototype.select.apply(this,arguments),a.getSelectedPoints=e.prototype.getSelectedPoints):d.prototype.select.apply(this,arguments)};return h}(h.seriesTypes.bubble.prototype.pointClass)});z(e,"Series/Networkgraph/DraggableNodes.js",[e["Core/Chart/Chart.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,d,h){var c=h.addEvent;d.dragNodesMixin={onMouseDown:function(a,
c){c=this.chart.pointer.normalize(c);a.fixedPosition={chartX:c.chartX,chartY:c.chartY,plotX:a.plotX,plotY:a.plotY};a.inDragMode=!0},onMouseMove:function(a,c){if(a.fixedPosition&&a.inDragMode){var d=this.chart,h=d.pointer.normalize(c);c=a.fixedPosition.chartX-h.chartX;h=a.fixedPosition.chartY-h.chartY;var e=void 0,x=void 0,b=d.graphLayoutsLookup;if(5<Math.abs(c)||5<Math.abs(h))e=a.fixedPosition.plotX-c,x=a.fixedPosition.plotY-h,d.isInsidePlot(e,x)&&(a.plotX=e,a.plotY=x,a.hasDragged=!0,this.redrawHalo(a),
b.forEach(function(b){b.restartSimulation()}))}},onMouseUp:function(a,c){a.fixedPosition&&(a.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),a.inDragMode=a.hasDragged=!1,this.options.fixedDraggable||delete a.fixedPosition)},redrawHalo:function(a){a&&this.halo&&this.halo.attr({d:a.haloPath(this.options.states.hover.halo.size)})}};c(e,"load",function(){var a=this,d,h,e;a.container&&(d=c(a.container,"mousedown",function(d){var l=a.hoverPoint;l&&l.series&&l.series.hasDraggableNodes&&
l.series.options.draggable&&(l.series.onMouseDown(l,d),h=c(a.container,"mousemove",function(b){return l&&l.series&&l.series.onMouseMove(l,b)}),e=c(a.container.ownerDocument,"mouseup",function(b){h();e();return l&&l.series&&l.series.onMouseUp(l,b)}))}));c(a,"destroy",function(){d()})})});z(e,"Series/Networkgraph/Integrations.js",[e["Core/Globals.js"]],function(e){e.networkgraphIntegrations={verlet:{attractiveForceFunction:function(d,h){return(h-d)/d},repulsiveForceFunction:function(d,h){return(h-d)/
d*(h>d?1:0)},barycenter:function(){var d=this.options.gravitationalConstant,h=this.barycenter.xFactor,c=this.barycenter.yFactor;h=(h-(this.box.left+this.box.width)/2)*d;c=(c-(this.box.top+this.box.height)/2)*d;this.nodes.forEach(function(a){a.fixedPosition||(a.plotX-=h/a.mass/a.degree,a.plotY-=c/a.mass/a.degree)})},repulsive:function(d,h,c){h=h*this.diffTemperature/d.mass/d.degree;d.fixedPosition||(d.plotX+=c.x*h,d.plotY+=c.y*h)},attractive:function(d,h,c){var a=d.getMass(),e=-c.x*h*this.diffTemperature;
h=-c.y*h*this.diffTemperature;d.fromNode.fixedPosition||(d.fromNode.plotX-=e*a.fromNode/d.fromNode.degree,d.fromNode.plotY-=h*a.fromNode/d.fromNode.degree);d.toNode.fixedPosition||(d.toNode.plotX+=e*a.toNode/d.toNode.degree,d.toNode.plotY+=h*a.toNode/d.toNode.degree)},integrate:function(d,h){var c=-d.options.friction,a=d.options.maxSpeed,e=(h.plotX+h.dispX-h.prevX)*c;c*=h.plotY+h.dispY-h.prevY;var m=Math.abs,l=m(e)/(e||1);m=m(c)/(c||1);e=l*Math.min(a,Math.abs(e));c=m*Math.min(a,Math.abs(c));h.prevX=
h.plotX+h.dispX;h.prevY=h.plotY+h.dispY;h.plotX+=e;h.plotY+=c;h.temperature=d.vectorLength({x:e,y:c})},getK:function(d){return Math.pow(d.box.width*d.box.height/d.nodes.length,.5)}},euler:{attractiveForceFunction:function(d,e){return d*d/e},repulsiveForceFunction:function(d,e){return e*e/d},barycenter:function(){var d=this.options.gravitationalConstant,e=this.barycenter.xFactor,c=this.barycenter.yFactor;this.nodes.forEach(function(a){if(!a.fixedPosition){var h=a.getDegree();h*=1+h/2;a.dispX+=(e-a.plotX)*
d*h/a.degree;a.dispY+=(c-a.plotY)*d*h/a.degree}})},repulsive:function(d,e,c,a){d.dispX+=c.x/a*e/d.degree;d.dispY+=c.y/a*e/d.degree},attractive:function(d,e,c,a){var h=d.getMass(),m=c.x/a*e;e*=c.y/a;d.fromNode.fixedPosition||(d.fromNode.dispX-=m*h.fromNode/d.fromNode.degree,d.fromNode.dispY-=e*h.fromNode/d.fromNode.degree);d.toNode.fixedPosition||(d.toNode.dispX+=m*h.toNode/d.toNode.degree,d.toNode.dispY+=e*h.toNode/d.toNode.degree)},integrate:function(d,e){e.dispX+=e.dispX*d.options.friction;e.dispY+=
e.dispY*d.options.friction;var c=e.temperature=d.vectorLength({x:e.dispX,y:e.dispY});0!==c&&(e.plotX+=e.dispX/c*Math.min(Math.abs(e.dispX),d.temperature),e.plotY+=e.dispY/c*Math.min(Math.abs(e.dispY),d.temperature))},getK:function(d){return Math.pow(d.box.width*d.box.height/d.nodes.length,.3)}}}});z(e,"Series/Networkgraph/QuadTree.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,d){d=d.extend;var h=e.QuadTreeNode=function(c){this.box=c;this.boxSize=Math.min(c.width,c.height);this.nodes=
[];this.body=this.isInternal=!1;this.isEmpty=!0};d(h.prototype,{insert:function(c,a){this.isInternal?this.nodes[this.getBoxPosition(c)].insert(c,a-1):(this.isEmpty=!1,this.body?a?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,a-1),this.body=!0),this.nodes[this.getBoxPosition(c)].insert(c,a-1)):(a=new h({top:c.plotX,left:c.plotY,width:.1,height:.1}),a.body=c,a.isInternal=!1,this.nodes.push(a)):(this.isInternal=!1,this.body=c))},updateMassAndCenter:function(){var c=
0,a=0,d=0;this.isInternal?(this.nodes.forEach(function(e){e.isEmpty||(c+=e.mass,a+=e.plotX*e.mass,d+=e.plotY*e.mass)}),a/=c,d/=c):this.body&&(c=this.body.mass,a=this.body.plotX,d=this.body.plotY);this.mass=c;this.plotX=a;this.plotY=d},divideBox:function(){var c=this.box.width/2,a=this.box.height/2;this.nodes[0]=new h({left:this.box.left,top:this.box.top,width:c,height:a});this.nodes[1]=new h({left:this.box.left+c,top:this.box.top,width:c,height:a});this.nodes[2]=new h({left:this.box.left+c,top:this.box.top+
a,width:c,height:a});this.nodes[3]=new h({left:this.box.left,top:this.box.top+a,width:c,height:a})},getBoxPosition:function(c){var a=c.plotY<this.box.top+this.box.height/2;return c.plotX<this.box.left+this.box.width/2?a?0:3:a?1:2}});e=e.QuadTree=function(c,a,d,e){this.box={left:c,top:a,width:d,height:e};this.maxDepth=25;this.root=new h(this.box,"0");this.root.isInternal=!0;this.root.isRoot=!0;this.root.divideBox()};d(e.prototype,{insertNodes:function(c){c.forEach(function(a){this.root.insert(a,this.maxDepth)},
this)},visitNodeRecursive:function(c,a,d){var e;c||(c=this.root);c===this.root&&a&&(e=a(c));!1!==e&&(c.nodes.forEach(function(c){if(c.isInternal){a&&(e=a(c));if(!1===e)return;this.visitNodeRecursive(c,a,d)}else c.body&&a&&a(c.body);d&&d(c)},this),c===this.root&&d&&d(c))},calculateMassAndCenter:function(){this.visitNodeRecursive(null,null,function(c){c.updateMassAndCenter()})}})});z(e,"Series/Networkgraph/Layouts.js",[e["Core/Chart/Chart.js"],e["Core/Animation/AnimationUtilities.js"],e["Core/Globals.js"],
e["Core/Utilities.js"]],function(e,d,h,c){var a=d.setAnimation;d=c.addEvent;var t=c.clamp,m=c.defined,l=c.extend,r=c.isFunction,x=c.pick;h.layouts={"reingold-fruchterman":function(){}};l(h.layouts["reingold-fruchterman"].prototype,{init:function(b){this.options=b;this.nodes=[];this.links=[];this.series=[];this.box={x:0,y:0,width:0,height:0};this.setInitialRendering(!0);this.integration=h.networkgraphIntegrations[b.integration];this.enableSimulation=b.enableSimulation;this.attractiveForce=x(b.attractiveForce,
this.integration.attractiveForceFunction);this.repulsiveForce=x(b.repulsiveForce,this.integration.repulsiveForceFunction);this.approximation=b.approximation},updateSimulation:function(b){this.enableSimulation=x(b,this.options.enableSimulation)},start:function(){var b=this.series,a=this.options;this.currentStep=0;this.forces=b[0]&&b[0].forces||[];this.chart=b[0]&&b[0].chart;this.initialRendering&&(this.initPositions(),b.forEach(function(b){b.finishedAnimating=!0;b.render()}));this.setK();this.resetSimulation(a);
this.enableSimulation&&this.step()},step:function(){var b=this,a=this.series;b.currentStep++;"barnes-hut"===b.approximation&&(b.createQuadTree(),b.quadTree.calculateMassAndCenter());b.forces.forEach(function(a){b[a+"Forces"](b.temperature)});b.applyLimits(b.temperature);b.temperature=b.coolDown(b.startTemperature,b.diffTemperature,b.currentStep);b.prevSystemTemperature=b.systemTemperature;b.systemTemperature=b.getSystemTemperature();b.enableSimulation&&(a.forEach(function(b){b.chart&&b.render()}),
b.maxIterations--&&isFinite(b.temperature)&&!b.isStable()?(b.simulation&&h.win.cancelAnimationFrame(b.simulation),b.simulation=h.win.requestAnimationFrame(function(){b.step()})):b.simulation=!1)},stop:function(){this.simulation&&h.win.cancelAnimationFrame(this.simulation)},setArea:function(b,a,c,d){this.box={left:b,top:a,width:c,height:d}},setK:function(){this.k=this.options.linkLength||this.integration.getK(this)},addElementsToCollection:function(b,a){b.forEach(function(b){-1===a.indexOf(b)&&a.push(b)})},
removeElementFromCollection:function(b,a){b=a.indexOf(b);-1!==b&&a.splice(b,1)},clear:function(){this.nodes.length=0;this.links.length=0;this.series.length=0;this.resetSimulation()},resetSimulation:function(){this.forcedStop=!1;this.systemTemperature=0;this.setMaxIterations();this.setTemperature();this.setDiffTemperature()},restartSimulation:function(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),
this.setInitialRendering(!0))},setMaxIterations:function(b){this.maxIterations=x(b,this.options.maxIterations)},setTemperature:function(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)},setDiffTemperature:function(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)},setInitialRendering:function(b){this.initialRendering=b},createQuadTree:function(){this.quadTree=new h.QuadTree(this.box.left,this.box.top,this.box.width,this.box.height);this.quadTree.insertNodes(this.nodes)},
initPositions:function(){var b=this.options.initialPositions;r(b)?(b.call(this),this.nodes.forEach(function(b){m(b.prevX)||(b.prevX=b.plotX);m(b.prevY)||(b.prevY=b.plotY);b.dispX=0;b.dispY=0})):"circle"===b?this.setCircularPositions():this.setRandomPositions()},setCircularPositions:function(){function b(a){a.linksFrom.forEach(function(a){h[a.toNode.id]||(h[a.toNode.id]=!0,l.push(a.toNode),b(a.toNode))})}var a=this.box,c=this.nodes,d=2*Math.PI/(c.length+1),e=c.filter(function(b){return 0===b.linksTo.length}),
l=[],h={},m=this.options.initialPositionRadius;e.forEach(function(a){l.push(a);b(a)});l.length?c.forEach(function(b){-1===l.indexOf(b)&&l.push(b)}):l=c;l.forEach(function(b,c){b.plotX=b.prevX=x(b.plotX,a.width/2+m*Math.cos(c*d));b.plotY=b.prevY=x(b.plotY,a.height/2+m*Math.sin(c*d));b.dispX=0;b.dispY=0})},setRandomPositions:function(){function b(b){b=b*b/Math.PI;return b-=Math.floor(b)}var a=this.box,c=this.nodes,d=c.length+1;c.forEach(function(c,e){c.plotX=c.prevX=x(c.plotX,a.width*b(e));c.plotY=
c.prevY=x(c.plotY,a.height*b(d+e));c.dispX=0;c.dispY=0})},force:function(b){this.integration[b].apply(this,Array.prototype.slice.call(arguments,1))},barycenterForces:function(){this.getBarycenter();this.force("barycenter")},getBarycenter:function(){var b=0,a=0,c=0;this.nodes.forEach(function(d){a+=d.plotX*d.mass;c+=d.plotY*d.mass;b+=d.mass});return this.barycenter={x:a,y:c,xFactor:a/b,yFactor:c/b}},barnesHutApproximation:function(b,a){var c=this.getDistXY(b,a),d=this.vectorLength(c);if(b!==a&&0!==
d)if(a.isInternal)if(a.boxSize/d<this.options.theta&&0!==d){var e=this.repulsiveForce(d,this.k);this.force("repulsive",b,e*a.mass,c,d);var l=!1}else l=!0;else e=this.repulsiveForce(d,this.k),this.force("repulsive",b,e*a.mass,c,d);return l},repulsiveForces:function(){var b=this;"barnes-hut"===b.approximation?b.nodes.forEach(function(a){b.quadTree.visitNodeRecursive(null,function(c){return b.barnesHutApproximation(a,c)})}):b.nodes.forEach(function(a){b.nodes.forEach(function(c){if(a!==c&&!a.fixedPosition){var d=
b.getDistXY(a,c);var e=b.vectorLength(d);if(0!==e){var k=b.repulsiveForce(e,b.k);b.force("repulsive",a,k*c.mass,d,e)}}})})},attractiveForces:function(){var b=this,a,c,d;b.links.forEach(function(e){e.fromNode&&e.toNode&&(a=b.getDistXY(e.fromNode,e.toNode),c=b.vectorLength(a),0!==c&&(d=b.attractiveForce(c,b.k),b.force("attractive",e,d,a,c)))})},applyLimits:function(){var b=this;b.nodes.forEach(function(a){a.fixedPosition||(b.integration.integrate(b,a),b.applyLimitBox(a,b.box),a.dispX=0,a.dispY=0)})},
applyLimitBox:function(b,a){var c=b.radius;b.plotX=t(b.plotX,a.left+c,a.width-c);b.plotY=t(b.plotY,a.top+c,a.height-c)},coolDown:function(a,c,d){return a-c*d},isStable:function(){return.00001>Math.abs(this.systemTemperature-this.prevSystemTemperature)||0>=this.temperature},getSystemTemperature:function(){return this.nodes.reduce(function(a,c){return a+c.temperature},0)},vectorLength:function(a){return Math.sqrt(a.x*a.x+a.y*a.y)},getDistR:function(a,c){a=this.getDistXY(a,c);return this.vectorLength(a)},
getDistXY:function(a,c){var b=a.plotX-c.plotX;a=a.plotY-c.plotY;return{x:b,y:a,absX:Math.abs(b),absY:Math.abs(a)}}});d(e,"predraw",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(a){a.stop()})});d(e,"render",function(){function b(a){a.maxIterations--&&isFinite(a.temperature)&&!a.isStable()&&!a.enableSimulation&&(a.beforeStep&&a.beforeStep(),a.step(),d=!1,c=!0)}var c=!1;if(this.graphLayoutsLookup){a(!1,this);for(this.graphLayoutsLookup.forEach(function(a){a.start()});!d;){var d=
!0;this.graphLayoutsLookup.forEach(b)}c&&this.series.forEach(function(a){a&&a.layout&&a.render()})}});d(e,"beforePrint",function(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(a){a.updateSimulation(!1)}),this.redraw())});d(e,"afterPrint",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(a){a.updateSimulation()});this.redraw()})});z(e,"Series/PackedBubble/PackedBubbleComposition.js",[e["Core/Chart/Chart.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],
function(e,d,h){var c=d.layouts["reingold-fruchterman"],a=h.addEvent,t=h.extendClass,m=h.pick;e.prototype.getSelectedParentNodes=function(){var a=[];this.series.forEach(function(c){c.parentNode&&c.parentNode.selected&&a.push(c.parentNode)});return a};d.networkgraphIntegrations.packedbubble={repulsiveForceFunction:function(a,c,d,b){return Math.min(a,(d.marker.radius+b.marker.radius)/2)},barycenter:function(){var a=this,c=a.options.gravitationalConstant,d=a.box,b=a.nodes,e,k;b.forEach(function(l){a.options.splitSeries&&
!l.isParentNode?(e=l.series.parentNode.plotX,k=l.series.parentNode.plotY):(e=d.width/2,k=d.height/2);l.fixedPosition||(l.plotX-=(l.plotX-e)*c/(l.mass*Math.sqrt(b.length)),l.plotY-=(l.plotY-k)*c/(l.mass*Math.sqrt(b.length)))})},repulsive:function(a,c,d,b){var e=c*this.diffTemperature/a.mass/a.degree;c=d.x*e;d=d.y*e;a.fixedPosition||(a.plotX+=c,a.plotY+=d);b.fixedPosition||(b.plotX-=c,b.plotY-=d)},integrate:d.networkgraphIntegrations.verlet.integrate,getK:d.noop};d.layouts.packedbubble=t(c,{beforeStep:function(){this.options.marker&&
this.series.forEach(function(a){a&&a.calculateParentRadius()})},isStable:function(){var a=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&.00001>a||0>=this.temperature},setCircularPositions:function(){var a=this,c=a.box,d=a.nodes,b=2*Math.PI/(d.length+1),e,k,h=a.options.initialPositionRadius;d.forEach(function(d,l){a.options.splitSeries&&!d.isParentNode?(e=d.series.parentNode.plotX,k=d.series.parentNode.plotY):
(e=c.width/2,k=c.height/2);d.plotX=d.prevX=m(d.plotX,e+h*Math.cos(d.index||l*b));d.plotY=d.prevY=m(d.plotY,k+h*Math.sin(d.index||l*b));d.dispX=0;d.dispY=0})},repulsiveForces:function(){var a=this,c,d,b,e=a.options.bubblePadding;a.nodes.forEach(function(k){k.degree=k.mass;k.neighbours=0;a.nodes.forEach(function(h){c=0;k===h||k.fixedPosition||!a.options.seriesInteraction&&k.series!==h.series||(b=a.getDistXY(k,h),d=a.vectorLength(b)-(k.marker.radius+h.marker.radius+e),0>d&&(k.degree+=.01,k.neighbours++,
c=a.repulsiveForce(-d/Math.sqrt(k.neighbours),a.k,k,h)),a.force("repulsive",k,c*h.mass,b,h,d))})})},applyLimitBox:function(a){if(this.options.splitSeries&&!a.isParentNode&&this.options.parentNodeLimit){var d=this.getDistXY(a,a.series.parentNode);var e=a.series.parentNodeRadius-a.marker.radius-this.vectorLength(d);0>e&&e>-2*a.marker.radius&&(a.plotX-=.01*d.x,a.plotY-=.01*d.y)}c.prototype.applyLimitBox.apply(this,arguments)}});a(e,"beforeRedraw",function(){this.allDataPoints&&delete this.allDataPoints})});
z(e,"Series/PackedBubble/PackedBubbleSeries.js",[e["Core/Color/Color.js"],e["Core/Globals.js"],e["Series/PackedBubble/PackedBubblePoint.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,d,h,c,a){var t=this&&this.__extends||function(){var a=function(b,f){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f])};return a(b,f)};return function(b,f){function c(){this.constructor=b}a(b,
f);b.prototype=null===f?Object.create(f):(c.prototype=f.prototype,new c)}}(),m=e.parse,l=c.series,r=c.seriesTypes.bubble,x=a.addEvent,b=a.clamp,q=a.defined,k=a.extend,p=a.fireEvent,v=a.isArray,B=a.isNumber,z=a.merge,D=a.pick,y=d.dragNodesMixin;e=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;b.chart=void 0;b.data=void 0;b.layout=void 0;b.options=void 0;b.points=void 0;b.xData=void 0;return b}t(c,a);c.prototype.accumulateAllPoints=function(a){var b=a.chart,c=[],f,d;for(f=0;f<
b.series.length;f++)if(a=b.series[f],a.is("packedbubble")&&a.visible||!b.options.chart.ignoreHiddenSeries)for(d=0;d<a.yData.length;d++)c.push([null,null,a.yData[d],a.index,d,{id:d,marker:{radius:0}}]);return c};c.prototype.addLayout=function(){var a=this.options.layoutAlgorithm,b=this.chart.graphLayoutsStorage,c=this.chart.graphLayoutsLookup,g=this.chart.options.chart;b||(this.chart.graphLayoutsStorage=b={},this.chart.graphLayoutsLookup=c=[]);var e=b[a.type];e||(a.enableSimulation=q(g.forExport)?
!g.forExport:a.enableSimulation,b[a.type]=e=new d.layouts[a.type],e.init(a),c.splice(e.index,0,e));this.layout=e;this.points.forEach(function(a){a.mass=2;a.degree=1;a.collisionNmb=1});e.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight);e.addElementsToCollection([this],e.series);e.addElementsToCollection(this.points,e.nodes)};c.prototype.addSeriesLayout=function(){var a=this.options.layoutAlgorithm,b=this.chart.graphLayoutsStorage,c=this.chart.graphLayoutsLookup,g=z(a,a.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});
var e=b[a.type+"-series"];e||(b[a.type+"-series"]=e=new d.layouts[a.type],e.init(g),c.splice(e.index,0,e));this.parentNodeLayout=e;this.createParentNodes()};c.prototype.calculateParentRadius=function(){var a=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,a?Math.max(Math.sqrt(Math.pow(a.width,2)+Math.pow(a.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20);this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)};
c.prototype.calculateZExtremes=function(){var a=this.options.zMin,b=this.options.zMax,c=Infinity,d=-Infinity;if(a&&b)return[a,b];this.chart.series.forEach(function(a){a.yData.forEach(function(a){q(a)&&(a>d&&(d=a),a<c&&(c=a))})});a=D(a,c);b=D(b,d);return[a,b]};c.prototype.checkOverlap=function(a,b){var c=a[0]-b[0],f=a[1]-b[1];return-.001>Math.sqrt(c*c+f*f)-Math.abs(a[2]+b[2])};c.prototype.createParentNodes=function(){var a=this,b=a.chart,c=a.parentNodeLayout,d,g=a.parentNode,e=a.pointClass;a.parentNodeMass=
0;a.points.forEach(function(b){a.parentNodeMass+=Math.PI*Math.pow(b.marker.radius,2)});a.calculateParentRadius();c.nodes.forEach(function(b){b.seriesIndex===a.index&&(d=!0)});c.setArea(0,0,b.plotWidth,b.plotHeight);d||(g||(g=(new e).init(this,{mass:a.parentNodeRadius/2,marker:{radius:a.parentNodeRadius},dataLabels:{inside:!1},dataLabelOnNull:!0,degree:a.parentNodeRadius,isParentNode:!0,seriesIndex:a.index})),a.parentNode&&(g.plotX=a.parentNode.plotX,g.plotY=a.parentNode.plotY),a.parentNode=g,c.addElementsToCollection([a],
c.series),c.addElementsToCollection([g],c.nodes))};c.prototype.deferLayout=function(){var a=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),a.splitSeries&&this.addSeriesLayout())};c.prototype.destroy=function(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(function(a){a.removeElementFromCollection(this,a.series)},this);this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&
(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));l.prototype.destroy.apply(this,arguments)};c.prototype.drawDataLabels=function(){var a=this.options.dataLabels.textPath,b=this.points;l.prototype.drawDataLabels.apply(this,arguments);this.parentNode&&(this.parentNode.formatPrefix="parentNode",this.points=[this.parentNode],this.options.dataLabels.textPath=this.options.dataLabels.parentNodeTextPath,l.prototype.drawDataLabels.apply(this,arguments),this.points=b,this.options.dataLabels.textPath=
a)};c.prototype.drawGraph=function(){if(this.layout&&this.layout.options.splitSeries){var a=this.chart;var b=this.layout.options.parentNodeOptions.marker;var c={fill:b.fillColor||m(this.color).brighten(.4).get(),opacity:b.fillOpacity,stroke:b.lineColor||this.color,"stroke-width":b.lineWidth};this.parentNodesGroup||(this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,a.seriesGroup),this.group.attr({zIndex:2}));this.calculateParentRadius();b=z({x:this.parentNode.plotX-
this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},c);this.parentNode.graphic||(this.graph=this.parentNode.graphic=a.renderer.symbol(c.symbol).add(this.parentNodesGroup));this.parentNode.graphic.attr(b)}};c.prototype.drawTracker=function(){var b=this.parentNode;a.prototype.drawTracker.call(this);if(b){var c=v(b.dataLabels)?b.dataLabels:b.dataLabel?[b.dataLabel]:[];b.graphic&&(b.graphic.element.point=b);c.forEach(function(a){a.div?
a.div.point=b:a.element.point=b})}};c.prototype.getPointRadius=function(){var a=this,c=a.chart,d=a.options,g=d.useSimulation,e=Math.min(c.plotWidth,c.plotHeight),k={},h=[],l=c.allDataPoints,q,p,m,r;["minSize","maxSize"].forEach(function(a){var b=parseInt(d[a],10),c=/%$/.test(d[a]);k[a]=c?e*b/100:b*Math.sqrt(l.length)});c.minRadius=q=k.minSize/Math.sqrt(l.length);c.maxRadius=p=k.maxSize/Math.sqrt(l.length);var v=g?a.calculateZExtremes():[q,p];(l||[]).forEach(function(c,f){m=g?b(c[2],v[0],v[1]):c[2];
r=a.getRadius(v[0],v[1],q,p,m);0===r&&(r=null);l[f][2]=r;h.push(r)});a.radii=h};c.prototype.init=function(){l.prototype.init.apply(this,arguments);this.eventsToUnbind.push(x(this,"updatedData",function(){this.chart.series.forEach(function(a){a.type===this.type&&(a.isDirty=!0)},this)}));return this};c.prototype.onMouseUp=function(a){if(a.fixedPosition&&!a.removed){var b,c,f=this.layout,d=this.parentNodeLayout;d&&f.options.dragBetweenSeries&&d.nodes.forEach(function(d){a&&a.marker&&d!==a.series.parentNode&&
(b=f.getDistXY(a,d),c=f.vectorLength(b)-d.marker.radius-a.marker.radius,0>c&&(d.series.addPoint(z(a.options,{plotX:a.plotX,plotY:a.plotY}),!1),f.removeElementFromCollection(a,f.nodes),a.remove()))});y.onMouseUp.apply(this,arguments)}};c.prototype.placeBubbles=function(a){var b=this.checkOverlap,c=this.positionBubble,f=[],d=1,g=0,e=0;var k=[];var h;a=a.sort(function(a,b){return b[2]-a[2]});if(a.length){f.push([[0,0,a[0][2],a[0][3],a[0][4]]]);if(1<a.length)for(f.push([[0,0-a[1][2]-a[0][2],a[1][2],a[1][3],
a[1][4]]]),h=2;h<a.length;h++)a[h][2]=a[h][2]||1,k=c(f[d][g],f[d-1][e],a[h]),b(k,f[d][0])?(f.push([]),e=0,f[d+1].push(c(f[d][g],f[d][0],a[h])),d++,g=0):1<d&&f[d-1][e+1]&&b(k,f[d-1][e+1])?(e++,f[d].push(c(f[d][g],f[d-1][e],a[h])),g++):(g++,f[d].push(k));this.chart.stages=f;this.chart.rawPositions=[].concat.apply([],f);this.resizeRadius();k=this.chart.rawPositions}return k};c.prototype.positionBubble=function(a,b,c){var f=Math.sqrt,d=Math.asin,g=Math.acos,e=Math.pow,k=Math.abs;f=f(e(a[0]-b[0],2)+e(a[1]-
b[1],2));g=g((e(f,2)+e(c[2]+b[2],2)-e(c[2]+a[2],2))/(2*(c[2]+b[2])*f));d=d(k(a[0]-b[0])/f);a=(0>a[1]-b[1]?0:Math.PI)+g+d*(0>(a[0]-b[0])*(a[1]-b[1])?1:-1);return[b[0]+(b[2]+c[2])*Math.sin(a),b[1]-(b[2]+c[2])*Math.cos(a),c[2],c[3],c[4]]};c.prototype.render=function(){var a=[];l.prototype.render.apply(this,arguments);this.options.dataLabels.allowOverlap||(this.data.forEach(function(b){v(b.dataLabels)&&b.dataLabels.forEach(function(b){a.push(b)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(a))};
c.prototype.resizeRadius=function(){var a=this.chart,b=a.rawPositions,c=Math.min,d=Math.max,g=a.plotLeft,e=a.plotTop,k=a.plotHeight,h=a.plotWidth,l,q,p;var m=l=Number.POSITIVE_INFINITY;var r=q=Number.NEGATIVE_INFINITY;for(p=0;p<b.length;p++){var v=b[p][2];m=c(m,b[p][0]-v);r=d(r,b[p][0]+v);l=c(l,b[p][1]-v);q=d(q,b[p][1]+v)}p=[r-m,q-l];c=c.apply([],[(h-g)/p[0],(k-e)/p[1]]);if(1e-10<Math.abs(c-1)){for(p=0;p<b.length;p++)b[p][2]*=c;this.placeBubbles(b)}else a.diffY=k/2+e-l-(q-l)/2,a.diffX=h/2+g-m-(r-
m)/2};c.prototype.seriesBox=function(){var a=this.chart,b=Math.max,c=Math.min,d,g=[a.plotLeft,a.plotLeft+a.plotWidth,a.plotTop,a.plotTop+a.plotHeight];this.data.forEach(function(a){q(a.plotX)&&q(a.plotY)&&a.marker.radius&&(d=a.marker.radius,g[0]=c(g[0],a.plotX-d),g[1]=b(g[1],a.plotX+d),g[2]=c(g[2],a.plotY-d),g[3]=b(g[3],a.plotY+d))});return B(g.width/g.height)?g:null};c.prototype.setVisible=function(){var a=this;l.prototype.setVisible.apply(a,arguments);a.parentNodeLayout&&a.graph?a.visible?(a.graph.show(),
a.parentNode.dataLabel&&a.parentNode.dataLabel.show()):(a.graph.hide(),a.parentNodeLayout.removeElementFromCollection(a.parentNode,a.parentNodeLayout.nodes),a.parentNode.dataLabel&&a.parentNode.dataLabel.hide()):a.layout&&(a.visible?a.layout.addElementsToCollection(a.points,a.layout.nodes):a.points.forEach(function(b){a.layout.removeElementFromCollection(b,a.layout.nodes)}))};c.prototype.translate=function(){var a=this.chart,b=this.data,c=this.index,d,g=this.options.useSimulation;this.processedXData=
this.xData;this.generatePoints();q(a.allDataPoints)||(a.allDataPoints=this.accumulateAllPoints(this),this.getPointRadius());if(g)var e=a.allDataPoints;else e=this.placeBubbles(a.allDataPoints),this.options.draggable=!1;for(d=0;d<e.length;d++)if(e[d][3]===c){var h=b[e[d][4]];var l=D(e[d][2],void 0);g||(h.plotX=e[d][0]-a.plotLeft+a.diffX,h.plotY=e[d][1]-a.plotTop+a.diffY);B(l)&&(h.marker=k(h.marker,{radius:l,width:2*l,height:2*l}),h.radius=l)}g&&this.deferLayout();p(this,"afterTranslate")};c.defaultOptions=
z(r.defaultOptions,{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){var a=this.series.chart.numberFormatter,b=this.point.value;return B(b)?a(b,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,
bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:1,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1E3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}});return c}(r);k(e.prototype,{alignDataLabel:l.prototype.alignDataLabel,
axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,onMouseDown:y.onMouseDown,onMouseMove:y.onMouseMove,pointArrayMap:["value"],pointClass:h,pointValKey:"value",redrawHalo:y.redrawHalo,requireSorting:!1,searchPoint:d.noop,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"]});c.registerSeriesType("packedbubble",e);"";"";return e});z(e,"Series/Polygon/PolygonSeries.js",[e["Core/Globals.js"],e["Core/Legend/LegendSymbol.js"],e["Core/Series/SeriesRegistry.js"],
e["Core/Utilities.js"]],function(e,d,h,c){var a=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}();e=e.noop;var t=h.series,m=h.seriesTypes,l=m.area,r=m.line,x=m.scatter;m=c.extend;var b=c.merge;c=function(c){function d(){var a=
null!==c&&c.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}a(d,c);d.prototype.getGraphPath=function(){for(var a=r.prototype.getGraphPath.call(this),b=a.length+1;b--;)(b===a.length||"M"===a[b][0])&&0<b&&a.splice(b,0,["Z"]);return this.areaPath=a};d.prototype.drawGraph=function(){this.options.fillColor=this.color;l.prototype.drawGraph.call(this)};d.defaultOptions=b(x.defaultOptions,{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,
pointFormat:""},trackByArea:!0});return d}(x);m(c.prototype,{type:"polygon",drawLegendSymbol:d.drawRectangle,drawTracker:t.prototype.drawTracker,setStackedPoints:e});h.registerSeriesType("polygon",c);"";return c});z(e,"Core/Axis/WaterfallAxis.js",[e["Extensions/Stacking.js"],e["Core/Utilities.js"]],function(e,d){var h=d.addEvent,c=d.objectEach,a;(function(a){function d(){var a=this.waterfall.stacks;a&&(a.changed=!1,delete a.alreadyChanged)}function l(){var a=this.options.stackLabels;a&&a.enabled&&
this.waterfall.stacks&&this.waterfall.renderStackTotals()}function r(){for(var a=this.axes,b=this.series,c=b.length;c--;)b[c].options.stacking&&(a.forEach(function(a){a.isXAxis||(a.waterfall.stacks.changed=!0)}),c=0)}function x(){this.waterfall||(this.waterfall=new b(this))}var b=function(){function a(a){this.axis=a;this.stacks={changed:!1}}a.prototype.renderStackTotals=function(){var a=this.axis,b=a.waterfall.stacks,d=a.stacking&&a.stacking.stackTotalGroup,h=new e(a,a.options.stackLabels,!1,0,void 0);
this.dummyStackItem=h;c(b,function(a){c(a,function(a){h.total=a.stackTotal;a.label&&(h.label=a.label);e.prototype.render.call(h,d);a.label=h.label;delete h.label})});h.total=null};return a}();a.Composition=b;a.compose=function(a,b){h(a,"init",x);h(a,"afterBuildStacks",d);h(a,"afterRender",l);h(b,"beforeRedraw",r)}})(a||(a={}));return a});z(e,"Series/Waterfall/WaterfallPoint.js",[e["Series/Column/ColumnSeries.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"]],function(e,d,h){var c=this&&this.__extends||
function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,d)};return function(c,d){function e(){this.constructor=c}a(c,d);c.prototype=null===d?Object.create(d):(e.prototype=d.prototype,new e)}}(),a=h.isNumber;return function(e){function h(){var a=null!==e&&e.apply(this,arguments)||this;a.options=void 0;a.series=void 0;return a}c(h,e);h.prototype.getClassName=function(){var a=
d.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum");return a};h.prototype.isValid=function(){return a(this.y)||this.isSum||!!this.isIntermediateSum};return h}(e.prototype.pointClass)});z(e,"Series/Waterfall/WaterfallSeries.js",[e["Core/Axis/Axis.js"],e["Core/Chart/Chart.js"],e["Core/Color/Palette.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"],e["Core/Axis/WaterfallAxis.js"],e["Series/Waterfall/WaterfallPoint.js"]],
function(e,d,h,c,a,t,m){var l=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),r=c.seriesTypes,x=r.column,b=r.line,q=a.arrayMax,k=a.arrayMin,p=a.correctFloat;r=a.extend;var v=a.isNumber,z=a.merge,D=
a.objectEach,L=a.pick;a=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;b.chart=void 0;b.data=void 0;b.options=void 0;b.points=void 0;b.stackedYNeg=void 0;b.stackedYPos=void 0;b.stackKey=void 0;b.xData=void 0;b.yAxis=void 0;b.yData=void 0;return b}l(c,a);c.prototype.generatePoints=function(){var a;x.prototype.generatePoints.apply(this);var b=0;for(a=this.points.length;b<a;b++){var c=this.points[b];var d=this.processedYData[b];if(c.isIntermediateSum||c.isSum)c.y=p(d)}};c.prototype.translate=
function(){var a=this.options,b=this.yAxis,c=L(a.minPointLength,5),d=c/2,e=a.threshold||0,h=e,k=e;a=a.stacking;var l=b.waterfall.stacks[this.stackKey];x.prototype.translate.apply(this);for(var q=this.points,p=0;p<q.length;p++){var m=q[p];var r=this.processedYData[p];var C=m.shapeArgs;if(C&&v(r)){var t=[0,r];var G=m.y;if(a){if(l){t=l[p];if("overlap"===a){var y=t.stackState[t.stateIndex--];y=0<=G?y:y-G;Object.hasOwnProperty.call(t,"absolutePos")&&delete t.absolutePos;Object.hasOwnProperty.call(t,"absoluteNeg")&&
delete t.absoluteNeg}else 0<=G?(y=t.threshold+t.posTotal,t.posTotal-=G):(y=t.threshold+t.negTotal,t.negTotal-=G,y-=G),!t.posTotal&&Object.hasOwnProperty.call(t,"absolutePos")&&(t.posTotal=t.absolutePos,delete t.absolutePos),!t.negTotal&&Object.hasOwnProperty.call(t,"absoluteNeg")&&(t.negTotal=t.absoluteNeg,delete t.absoluteNeg);m.isSum||(t.connectorThreshold=t.threshold+t.stackTotal);b.reversed?(r=0<=G?y-G:y+G,G=y):(r=y,G=y-G);m.below=r<=e;C.y=b.translate(r,!1,!0,!1,!0)||0;C.height=Math.abs(C.y-(b.translate(G,
!1,!0,!1,!0)||0));if(G=b.waterfall.dummyStackItem)G.x=p,G.label=l[p].label,G.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[p],this.stackedYPos[p])}}else y=Math.max(h,h+G)+t[0],C.y=b.translate(y,!1,!0,!1,!0)||0,m.isSum?(C.y=b.translate(t[1],!1,!0,!1,!0)||0,C.height=Math.min(b.translate(t[0],!1,!0,!1,!0)||0,b.len)-C.y,m.below=t[1]<=e):m.isIntermediateSum?(0<=G?(r=t[1]+k,G=k):(r=k,G=t[1]+k),b.reversed&&(r^=G,G^=r,r^=G),C.y=b.translate(r,!1,!0,!1,!0)||0,C.height=Math.abs(C.y-Math.min(b.translate(G,
!1,!0,!1,!0)||0,b.len)),k+=t[1],m.below=r<=e):(C.height=0<r?(b.translate(h,!1,!0,!1,!0)||0)-C.y:(b.translate(h,!1,!0,!1,!0)||0)-(b.translate(h-r,!1,!0,!1,!0)||0),h+=r,m.below=h<e),0>C.height&&(C.y+=C.height,C.height*=-1);m.plotY=C.y=Math.round(C.y||0)-this.borderWidth%2/2;C.height=Math.max(Math.round(C.height||0),.001);m.yBottom=C.y+C.height;C.height<=c&&!m.isNull?(C.height=c,C.y-=d,m.plotY=C.y,m.minPointLengthOffset=0>m.y?-d:d):(m.isNull&&(C.width=0),m.minPointLengthOffset=0);G=m.plotY+(m.negative?
C.height:0);m.below&&(m.plotY+=C.height);m.tooltipPos&&(this.chart.inverted?m.tooltipPos[0]=b.len-G:m.tooltipPos[1]=G)}}};c.prototype.processData=function(b){var c=this.options,d=this.yData,g=c.data,e=d.length,h=c.threshold||0,k,l,m,q,r;for(r=l=k=m=q=0;r<e;r++){var t=d[r];var v=g&&g[r]?g[r]:{};"sum"===t||v.isSum?d[r]=p(l):"intermediateSum"===t||v.isIntermediateSum?(d[r]=p(k),k=0):(l+=t,k+=t);m=Math.min(l,m);q=Math.max(l,q)}a.prototype.processData.call(this,b);c.stacking||(this.dataMin=m+h,this.dataMax=
q)};c.prototype.toYData=function(a){return a.isSum?"sum":a.isIntermediateSum?"intermediateSum":a.y};c.prototype.updateParallelArrays=function(b,c){a.prototype.updateParallelArrays.call(this,b,c);if("sum"===this.yData[0]||"intermediateSum"===this.yData[0])this.yData[0]=null};c.prototype.pointAttribs=function(a,b){var c=this.options.upColor;c&&!a.options.color&&(a.color=0<a.y?c:null);a=x.prototype.pointAttribs.call(this,a,b);delete a.dashstyle;return a};c.prototype.getGraphPath=function(){return[["M",
0,0]]};c.prototype.getCrispPath=function(){var a=this.data,b=this.yAxis,c=a.length,d=Math.round(this.graph.strokeWidth())%2/2,e=Math.round(this.borderWidth)%2/2,h=this.xAxis.reversed,k=this.yAxis.reversed,l=this.options.stacking,m=[],p;for(p=1;p<c;p++){var q=a[p].shapeArgs;var r=a[p-1];var t=a[p-1].shapeArgs;var v=b.waterfall.stacks[this.stackKey];var x=0<r.y?-t.height:0;v&&t&&q&&(v=v[p-1],l?(v=v.connectorThreshold,x=Math.round(b.translate(v,0,1,0,1)+(k?x:0))-d):x=t.y+r.minPointLengthOffset+e-d,m.push(["M",
(t.x||0)+(h?0:t.width||0),x],["L",(q.x||0)+(h?q.width||0:0),x]));t&&m.length&&(!l&&0>r.y&&!k||0<r.y&&k)&&((r=m[m.length-2])&&"number"===typeof r[2]&&(r[2]+=t.height||0),(r=m[m.length-1])&&"number"===typeof r[2]&&(r[2]+=t.height||0))}return m};c.prototype.drawGraph=function(){b.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})};c.prototype.setStackedPoints=function(){function a(a,b,c,d){if(H)for(c;c<H;c++)z.stackState[c]+=d;else z.stackState[0]=a,H=z.stackState.length;z.stackState.push(z.stackState[H-
1]+b)}var b=this.options,c=this.yAxis.waterfall.stacks,d=b.threshold,e=d||0,h=e,k=this.stackKey,l=this.xData,m=l.length,p,q,r;this.yAxis.stacking.usePercentage=!1;var t=q=r=e;if(this.visible||!this.chart.options.chart.ignoreHiddenSeries){var v=c.changed;(p=c.alreadyChanged)&&0>p.indexOf(k)&&(v=!0);c[k]||(c[k]={});p=c[k];for(var x=0;x<m;x++){var y=l[x];if(!p[y]||v)p[y]={negTotal:0,posTotal:0,stackTotal:0,threshold:0,stateIndex:0,stackState:[],label:v&&p[y]?p[y].label:void 0};var z=p[y];var E=this.yData[x];
0<=E?z.posTotal+=E:z.negTotal+=E;var B=b.data[x];y=z.absolutePos=z.posTotal;var D=z.absoluteNeg=z.negTotal;z.stackTotal=y+D;var H=z.stackState.length;B&&B.isIntermediateSum?(a(r,q,0,r),r=q,q=d,e^=h,h^=e,e^=h):B&&B.isSum?(a(d,t,H),e=d):(a(e,E,0,t),B&&(t+=E,q+=E));z.stateIndex++;z.threshold=e;e+=z.stackTotal}c.changed=!1;c.alreadyChanged||(c.alreadyChanged=[]);c.alreadyChanged.push(k)}};c.prototype.getExtremes=function(){var a=this.options.stacking;if(a){var b=this.yAxis;b=b.waterfall.stacks;var c=
this.stackedYNeg=[];var d=this.stackedYPos=[];"overlap"===a?D(b[this.stackKey],function(a){c.push(k(a.stackState));d.push(q(a.stackState))}):D(b[this.stackKey],function(a){c.push(a.negTotal+a.threshold);d.push(a.posTotal+a.threshold)});return{dataMin:k(c),dataMax:q(d)}}return{dataMin:this.dataMin,dataMax:this.dataMax}};c.defaultOptions=z(x.defaultOptions,{dataLabels:{inside:!0},lineWidth:1,lineColor:h.neutralColor80,dashStyle:"Dot",borderColor:h.neutralColor80,states:{hover:{lineWidthPlus:0}}});return c}(x);
r(a.prototype,{getZonesGraphs:b.prototype.getZonesGraphs,pointValKey:"y",showLine:!0,pointClass:m});c.registerSeriesType("waterfall",a);t.compose(e,d);"";return a});z(e,"Extensions/Polar.js",[e["Core/Animation/AnimationUtilities.js"],e["Core/Chart/Chart.js"],e["Core/Globals.js"],e["Extensions/Pane.js"],e["Core/Pointer.js"],e["Core/Series/Series.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Renderer/SVG/SVGRenderer.js"],e["Core/Utilities.js"]],function(e,d,h,c,a,t,m,l,r){var x=e.animObject;m=m.seriesTypes;
var b=r.addEvent,q=r.defined,k=r.find,p=r.isNumber,v=r.pick,z=r.splat,H=r.uniqueKey;e=r.wrap;var D=t.prototype;a=a.prototype;D.searchPointByAngle=function(a){var b=this.chart,c=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-c[0]-b.plotLeft,a.chartY-c[1]-b.plotTop)})};D.getConnectors=function(a,b,c,d){var f=d?1:0;var e=0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>e-1?a.length-(1+f):e-1;f=e+1>a.length-1?f:e+1;var g=a[b];f=a[f];var h=g.plotX;g=g.plotY;var k=
f.plotX;var l=f.plotY;f=a[e].plotX;e=a[e].plotY;h=(1.5*f+h)/2.5;g=(1.5*e+g)/2.5;k=(1.5*f+k)/2.5;var n=(1.5*e+l)/2.5;l=Math.sqrt(Math.pow(h-f,2)+Math.pow(g-e,2));var m=Math.sqrt(Math.pow(k-f,2)+Math.pow(n-e,2));h=Math.atan2(g-e,h-f);n=Math.PI/2+(h+Math.atan2(n-e,k-f))/2;Math.abs(h-n)>Math.PI/2&&(n-=Math.PI);h=f+Math.cos(n)*l;g=e+Math.sin(n)*l;k=f+Math.cos(Math.PI+n)*m;n=e+Math.sin(Math.PI+n)*m;f={rightContX:k,rightContY:n,leftContX:h,leftContY:g,plotX:f,plotY:e};c&&(f.prevPointCont=this.getConnectors(a,
b,!1,d));return f};D.toXY=function(a){var b=this.chart,c=this.xAxis,d=this.yAxis,e=a.plotX,g=a.plotY,h=a.series,k=b.inverted,l=a.y,m=k?e:d.len-g;k&&h&&!h.isRadialBar&&(a.plotY=g="number"===typeof l?d.translate(l)||0:0);a.rectPlotX=e;a.rectPlotY=g;d.center&&(m+=d.center[3]/2);p(g)&&(d=k?d.postTranslate(g,m):c.postTranslate(e,m),a.plotX=a.polarPlotX=d.x-b.plotLeft,a.plotY=a.polarPlotY=d.y-b.plotTop);this.kdByAngle?(b=(e/Math.PI*180+c.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=
a.plotX};m.spline&&(e(m.spline.prototype,"getPointSpline",function(a,b,c,d){this.chart.polar?d?(a=this.getConnectors(b,d,!0,this.connectEnds),b=a.prevPointCont&&a.prevPointCont.rightContX,c=a.prevPointCont&&a.prevPointCont.rightContY,a=["C",p(b)?b:a.plotX,p(c)?c:a.plotY,p(a.leftContX)?a.leftContX:a.plotX,p(a.leftContY)?a.leftContY:a.plotY,a.plotX,a.plotY]):a=["M",c.plotX,c.plotY]:a=a.call(this,b,c,d);return a}),m.areasplinerange&&(m.areasplinerange.prototype.getPointSpline=m.spline.prototype.getPointSpline));
b(t,"afterTranslate",function(){var a=this.chart;if(a.polar&&this.xAxis){(this.kdByAngle=a.tooltip&&a.tooltip.shared)?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy";if(!this.preventPostTranslate)for(var c=this.points,d=c.length;d--;)this.toXY(c[d]),!a.hasParallelCoordinates&&!this.yAxis.reversed&&c[d].y<this.yAxis.min&&(c[d].isNull=!0);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(b(this,"afterRender",function(){if(a.polar){var b=this.yAxis.pane.center;
this.clipCircle?this.clipCircle.animate({x:b[0],y:b[1],r:b[2]/2,innerR:b[3]/2}):this.clipCircle=a.renderer.clipCircle(b[0],b[1],b[2]/2,b[3]/2);this.group.clip(this.clipCircle);this.setClip=h.noop}})))}},{order:2});e(m.line.prototype,"getGraphPath",function(a,b){var c=this,d;if(this.chart.polar){b=b||this.points;for(d=0;d<b.length;d++)if(!b[d].isNull){var e=d;break}if(!1!==this.options.connectEnds&&"undefined"!==typeof e){this.connectEnds=!0;b.splice(b.length,0,b[e]);var f=!0}b.forEach(function(a){"undefined"===
typeof a.polarPlotY&&c.toXY(a)})}d=a.apply(this,[].slice.call(arguments,1));f&&b.pop();return d});var y=function(a,b){var c=this,d=this.chart,e=this.options.animation,f=this.group,g=this.markerGroup,k=this.xAxis.center,l=d.plotLeft,m=d.plotTop,p,q,r,t;if(d.polar)if(c.isRadialBar)b||(c.startAngleRad=v(c.translatedThreshold,c.xAxis.startAngleRad),h.seriesTypes.pie.prototype.animate.call(c,b));else{if(d.renderer.isSVG)if(e=x(e),c.is("column")){if(!b){var y=k[3]/2;c.points.forEach(function(a){p=a.graphic;
r=(q=a.shapeArgs)&&q.r;t=q&&q.innerR;p&&q&&(p.attr({r:y,innerR:y}),p.animate({r:r,innerR:t},c.options.animation))})}}else b?(a={translateX:k[0]+l,translateY:k[1]+m,scaleX:.001,scaleY:.001},f.attr(a),g&&g.attr(a)):(a={translateX:l,translateY:m,scaleX:1,scaleY:1},f.animate(a,e),g&&g.animate(a,e))}else a.call(this,b)};e(D,"animate",y);if(m.column){var I=m.arearange.prototype;m=m.column.prototype;m.polarArc=function(a,b,c,d){var e=this.xAxis.center,f=this.yAxis.len,g=e[3]/2;b=f-b+g;a=f-v(a,f)+g;this.yAxis.reversed&&
(0>b&&(b=g),0>a&&(a=g));return{x:e[0],y:e[1],r:b,innerR:a,start:c,end:d}};e(m,"animate",y);e(m,"translate",function(a){var b=this.options,c=b.stacking,d=this.chart,e=this.xAxis,g=this.yAxis,h=g.reversed,k=g.center,l=e.startAngleRad,m=e.endAngleRad-l;this.preventPostTranslate=!0;a.call(this);if(e.isRadial){a=this.points;e=a.length;var t=g.translate(g.min);var v=g.translate(g.max);b=b.threshold||0;if(d.inverted&&p(b)){var x=g.translate(b);q(x)&&(0>x?x=0:x>m&&(x=m),this.translatedThreshold=x+l)}for(;e--;){b=
a[e];var y=b.barX;var z=b.x;var B=b.y;b.shapeType="arc";if(d.inverted){b.plotY=g.translate(B);if(c&&g.stacking){if(B=g.stacking.stacks[(0>B?"-":"")+this.stackKey],this.visible&&B&&B[z]&&!b.isNull){var D=B[z].points[this.getStackIndicator(void 0,z,this.index).key];var E=g.translate(D[0]);D=g.translate(D[1]);q(E)&&(E=r.clamp(E,0,m))}}else E=x,D=b.plotY;E>D&&(D=[E,E=D][0]);if(!h)if(E<t)E=t;else if(D>v)D=v;else{if(D<t||E>v)E=D=0}else if(D>t)D=t;else if(E<v)E=v;else if(E>t||D<v)E=D=m;g.min>g.max&&(E=D=
h?m:0);E+=l;D+=l;k&&(b.barX=y+=k[3]/2);z=Math.max(y,0);B=Math.max(y+b.pointWidth,0);b.shapeArgs={x:k&&k[0],y:k&&k[1],r:B,innerR:z,start:E,end:D};b.opacity=E===D?0:void 0;b.plotY=(q(this.translatedThreshold)&&(E<this.translatedThreshold?E:D))-l}else E=y+l,b.shapeArgs=this.polarArc(b.yBottom,b.plotY,E,E+b.pointWidth);this.toXY(b);d.inverted?(y=g.postTranslate(b.rectPlotY,y+b.pointWidth/2),b.tooltipPos=[y.x-d.plotLeft,y.y-d.plotTop]):b.tooltipPos=[b.plotX,b.plotY];k&&(b.ttBelow=b.plotY>k[1])}}});m.findAlignments=
function(a,b){null===b.align&&(b.align=20<a&&160>a?"left":200<a&&340>a?"right":"center");null===b.verticalAlign&&(b.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle");return b};I&&(I.findAlignments=m.findAlignments);e(m,"alignDataLabel",function(a,b,c,d,e,h){var f=this.chart,g=v(d.inside,!!this.options.stacking);f.polar?(a=b.rectPlotX/Math.PI*180,f.inverted?(this.forceDL=f.isInsidePlot(b.plotX,Math.round(b.plotY)),g&&b.shapeArgs?(e=b.shapeArgs,e=this.yAxis.postTranslate(((e.start||0)+
(e.end||0))/2-this.xAxis.startAngleRad,b.barX+b.pointWidth/2),e={x:e.x-f.plotLeft,y:e.y-f.plotTop}):b.tooltipPos&&(e={x:b.tooltipPos[0],y:b.tooltipPos[1]}),d.align=v(d.align,"center"),d.verticalAlign=v(d.verticalAlign,"middle")):this.findAlignments&&(d=this.findAlignments(a,d)),D.alignDataLabel.call(this,b,c,d,e,h),this.isRadialBar&&b.shapeArgs&&b.shapeArgs.start===b.shapeArgs.end&&c.hide(!0)):a.call(this,b,c,d,e,h)})}e(a,"getCoordinates",function(a,b){var c=this.chart,d={xAxis:[],yAxis:[]};c.polar?
c.axes.forEach(function(a){var e=a.isXAxis,f=a.center;if("colorAxis"!==a.coll){var g=b.chartX-f[0]-c.plotLeft;f=b.chartY-f[1]-c.plotTop;d[e?"xAxis":"yAxis"].push({axis:a,value:a.translate(e?Math.PI-Math.atan2(g,f):Math.sqrt(Math.pow(g,2)+Math.pow(f,2)),!0)})}}):d=a.call(this,b);return d});l.prototype.clipCircle=function(a,b,c,d){var e=H(),f=this.createElement("clipPath").attr({id:e}).add(this.defs);a=d?this.arc(a,b,c,d,0,2*Math.PI).add(f):this.circle(a,b,c).add(f);a.id=e;a.clipPath=f;return a};b(d,
"getAxes",function(){this.pane||(this.pane=[]);this.options.pane=z(this.options.pane);this.options.pane.forEach(function(a){new c(a,this)},this)});b(d,"afterDrawChartBox",function(){this.pane.forEach(function(a){a.render()})});b(t,"afterInit",function(){var a=this.chart;a.inverted&&a.polar&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0))});e(d.prototype,"get",function(a,b){return k(this.pane||[],function(a){return a.options.id===b})||a.call(this,b)})});z(e,"masters/highcharts-more.src.js",
[e["Core/Globals.js"],e["Core/Axis/RadialAxis.js"],e["Series/Bubble/BubbleSeries.js"]],function(e,d,h){d.compose(e.Axis,e.Tick);h.compose(e.Chart,e.Legend,e.Series)})});
//# sourceMappingURL=highcharts-more.js.map
/*
 Highcharts JS v9.2.2 (2021-08-24)

 Data module

 (c) 2012-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict';(function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/data",["highcharts"],function(p){b(p);b.Highcharts=p;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function p(b,e,v,p){b.hasOwnProperty(e)||(b[e]=p.apply(null,v))}b=b?b._modules:{};p(b,"Core/HttpUtilities.js",[b["Core/Globals.js"],b["Core/Utilities.js"]],function(b,e){var p=b.doc,u=e.createElement,D=e.discardElement,
q=e.merge,E=e.objectEach,y={ajax:function(b){var l=q(!0,{url:!1,type:"get",dataType:"json",success:!1,error:!1,data:!1,headers:{}},b);b={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"};var e=new XMLHttpRequest;if(!l.url)return!1;e.open(l.type.toUpperCase(),l.url,!0);l.headers["Content-Type"]||e.setRequestHeader("Content-Type",b[l.dataType]||b.text);E(l.headers,function(b,l){e.setRequestHeader(l,b)});e.onreadystatechange=function(){if(4===e.readyState){if(200===
e.status){var b=e.responseText;if("json"===l.dataType)try{b=JSON.parse(b)}catch(A){l.error&&l.error(e,A);return}return l.success&&l.success(b)}l.error&&l.error(e,e.responseText)}};try{l.data=JSON.stringify(l.data)}catch(F){}e.send(l.data||!0)},getJSON:function(b,e){y.ajax({url:b,success:e,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(b,e,v){var l=u("form",q({method:"post",action:b,enctype:"multipart/form-data"},v),{display:"none"},p.body);E(e,function(b,e){u("input",{type:"hidden",
name:e,value:b},null,l)});l.submit();D(l)}};"";return y});p(b,"Extensions/Data.js",[b["Core/Chart/Chart.js"],b["Core/Globals.js"],b["Core/HttpUtilities.js"],b["Core/Series/Point.js"],b["Core/Series/SeriesRegistry.js"],b["Core/Utilities.js"]],function(b,e,p,I,D,q){var u=e.doc,y=p.ajax,v=D.seriesTypes;p=q.addEvent;var l=q.defined,J=q.extend,F=q.fireEvent,A=q.isNumber,B=q.merge,K=q.objectEach,G=q.pick,L=q.splat;q=function(){function b(a,c,h){this.options=this.rawColumns=this.firstRowAsNames=this.chartOptions=
this.chart=void 0;this.dateFormats={"YYYY/mm/dd":{regex:/^([0-9]{4})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{1,2})$/,parser:function(a){return a?Date.UTC(+a[1],a[2]-1,+a[3]):NaN}},"dd/mm/YYYY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,parser:function(a){return a?Date.UTC(+a[3],a[2]-1,+a[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,parser:function(a){return a?Date.UTC(+a[3],a[1]-1,+a[2]):NaN}},"dd/mm/YY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,
parser:function(a){if(!a)return NaN;var c=+a[3];c=c>(new Date).getFullYear()-2E3?c+1900:c+2E3;return Date.UTC(c,a[2]-1,+a[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,parser:function(a){return a?Date.UTC(+a[3]+2E3,a[1]-1,+a[2]):NaN}}};this.init(a,c,h)}b.prototype.init=function(a,c,h){var d=a.decimalPoint;c&&(this.chartOptions=c);h&&(this.chart=h);"."!==d&&","!==d&&(d=void 0);this.options=a;this.columns=a.columns||this.rowsToColumns(a.rows)||
[];this.firstRowAsNames=G(a.firstRowAsNames,this.firstRowAsNames,!0);this.decimalRegex=d&&new RegExp("^(-?[0-9]+)"+d+"([0-9]+)$");this.rawColumns=[];if(this.columns.length){this.dataFound();var g=!0}this.hasURLOption(a)&&(clearTimeout(this.liveDataTimeout),g=!1);g||(g=this.fetchLiveData());g||(g=!!this.parseCSV().length);g||(g=!!this.parseTable().length);g||(g=this.parseGoogleSpreadsheet());!g&&a.afterComplete&&a.afterComplete()};b.prototype.hasURLOption=function(a){return!(!a||!(a.rowsURL||a.csvURL||
a.columnsURL))};b.prototype.getColumnDistribution=function(){var a=this.chartOptions,c=this.options,h=[],d=function(a){return(v[a||"line"].prototype.pointArrayMap||[0]).length},g=a&&a.chart&&a.chart.type,t=[],b=[],k=0;c=c&&c.seriesMapping||a&&a.series&&a.series.map(function(){return{x:0}})||[];var f;(a&&a.series||[]).forEach(function(a){t.push(d(a.type||g))});c.forEach(function(a){h.push(a.x||0)});0===h.length&&h.push(0);c.forEach(function(c){var h=new H,e=t[k]||d(g),m=(a&&a.series||[])[k]||{},C=
v[m.type||g||"line"].prototype.pointArrayMap,p=C||["y"];(l(c.x)||m.isCartesian||!C)&&h.addColumnReader(c.x,"x");K(c,function(a,c){"x"!==c&&h.addColumnReader(a,c)});for(f=0;f<e;f++)h.hasReader(p[f])||h.addColumnReader(void 0,p[f]);b.push(h);k++});c=v[g||"line"].prototype.pointArrayMap;"undefined"===typeof c&&(c=["y"]);this.valueCount={global:d(g),xColumns:h,individual:t,seriesBuilders:b,globalPointArrayMap:c}};b.prototype.dataFound=function(){this.options.switchRowsAndColumns&&(this.columns=this.rowsToColumns(this.columns));
this.getColumnDistribution();this.parseTypes();!1!==this.parsed()&&this.complete()};b.prototype.parseCSV=function(a){function c(a,c,h,d){function b(c){k=a[c];t=a[c-1];n=a[c+1]}function g(a){l.length<w+1&&l.push([a]);l[w][l[w].length-1]!==a&&l[w].push(a)}function e(){f>r||r>C?(++r,m=""):(!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),g("number")):isNaN(Date.parse(m))?g("string"):(m=m.replace(/\//g,"-"),g("date")),p.length<w+1&&p.push([]),h||(p[w][c]=m),m="",++w,++r)}var x=0,k="",t="",n="",m="",
r=0,w=0;if(a.trim().length&&"#"!==a.trim()[0]){for(;x<a.length;x++)if(b(x),'"'===k)for(b(++x);x<a.length&&('"'!==k||'"'===t||'"'===n);){if('"'!==k||'"'===k&&'"'!==t)m+=k;b(++x)}else d&&d[k]?d[k](k,m)&&e():k===q?e():m+=k;e()}}function h(a){var c=0,h=0,d=!1;a.some(function(a,d){var b=!1,g="";if(13<d)return!0;for(var k=0;k<a.length;k++){d=a[k];var e=a[k+1];var t=a[k-1];if("#"===d)break;if('"'===d)if(b){if('"'!==t&&'"'!==e){for(;" "===e&&k<a.length;)e=a[++k];"undefined"!==typeof r[e]&&r[e]++;b=!1}}else b=
!0;else"undefined"!==typeof r[d]?(g=g.trim(),isNaN(Date.parse(g))?!isNaN(g)&&isFinite(g)||r[d]++:r[d]++,g=""):g+=d;","===d&&h++;"."===d&&c++}});d=r[";"]>r[","]?";":",";b.decimalPoint||(b.decimalPoint=c>h?".":",",g.decimalRegex=new RegExp("^(-?[0-9]+)"+b.decimalPoint+"([0-9]+)$"));return d}function d(a,c){var d=[],h=0,k=!1,e=[],t=[],f;if(!c||c>a.length)c=a.length;for(;h<c;h++)if("undefined"!==typeof a[h]&&a[h]&&a[h].length){var n=a[h].trim().replace(/\//g," ").replace(/\-/g," ").replace(/\./g," ").split(" ");
d=["","",""];for(f=0;f<n.length;f++)f<d.length&&(n[f]=parseInt(n[f],10),n[f]&&(t[f]=!t[f]||t[f]<n[f]?n[f]:t[f],"undefined"!==typeof e[f]?e[f]!==n[f]&&(e[f]=!1):e[f]=n[f],31<n[f]?d[f]=100>n[f]?"YY":"YYYY":12<n[f]&&31>=n[f]?(d[f]="dd",k=!0):d[f].length||(d[f]="mm")))}if(k){for(f=0;f<e.length;f++)!1!==e[f]?12<t[f]&&"YY"!==d[f]&&"YYYY"!==d[f]&&(d[f]="YY"):12<t[f]&&"mm"===d[f]&&(d[f]="dd");3===d.length&&"dd"===d[1]&&"dd"===d[2]&&(d[2]="YY");a=d.join("/");return(b.dateFormats||g.dateFormats)[a]?a:(F("deduceDateFailed"),
"YYYY/mm/dd")}return"YYYY/mm/dd"}var g=this,b=a||this.options,e=b.csv;a="undefined"!==typeof b.startRow&&b.startRow?b.startRow:0;var k=b.endRow||Number.MAX_VALUE,f="undefined"!==typeof b.startColumn&&b.startColumn?b.startColumn:0,C=b.endColumn||Number.MAX_VALUE,n=0,l=[],r={",":0,";":0,"\t":0};var p=this.columns=[];e&&b.beforeParse&&(e=b.beforeParse.call(this,e));if(e){e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(b.lineDelimiter||"\n");if(!a||0>a)a=0;if(!k||k>=e.length)k=e.length-1;if(b.itemDelimiter)var q=
b.itemDelimiter;else q=null,q=h(e);var z=0;for(n=a;n<=k;n++)"#"===e[n][0]?z++:c(e[n],n-a-z);b.columnTypes&&0!==b.columnTypes.length||!l.length||!l[0].length||"date"!==l[0][1]||b.dateFormat||(b.dateFormat=d(p[0]));this.dataFound()}return p};b.prototype.parseTable=function(){var a=this.options,c=a.table,h=this.columns||[],d=a.startRow||0,b=a.endRow||Number.MAX_VALUE,e=a.startColumn||0,m=a.endColumn||Number.MAX_VALUE;c&&("string"===typeof c&&(c=u.getElementById(c)),[].forEach.call(c.getElementsByTagName("tr"),
function(a,c){c>=d&&c<=b&&[].forEach.call(a.children,function(a,b){var g=h[b-e],f=1;if(("TD"===a.tagName||"TH"===a.tagName)&&b>=e&&b<=m)for(h[b-e]||(h[b-e]=[]),h[b-e][c-d]=a.innerHTML;c-d>=f&&void 0===g[c-d-f];)g[c-d-f]=null,f++})}),this.dataFound());return h};b.prototype.fetchLiveData=function(){function a(g){function f(f,k,t){function n(){e&&h.liveDataURL===f&&(c.liveDataTimeout=setTimeout(a,m))}if(!f||!/^(http|\/|\.\/|\.\.\/)/.test(f))return f&&d.error&&d.error("Invalid URL"),!1;g&&(clearTimeout(c.liveDataTimeout),
h.liveDataURL=f);y({url:f,dataType:t||"json",success:function(a){h&&h.series&&k(a);n()},error:function(a,c){3>++b&&n();return d.error&&d.error(c,a)}});return!0}f(k.csvURL,function(a){h.update({data:{csv:a}})},"text")||f(k.rowsURL,function(a){h.update({data:{rows:a}})})||f(k.columnsURL,function(a){h.update({data:{columns:a}})})}var c=this,h=this.chart,d=this.options,b=0,e=d.enablePolling,m=1E3*(d.dataRefreshRate||2),k=B(d);if(!this.hasURLOption(d))return!1;1E3>m&&(m=1E3);delete d.csvURL;delete d.rowsURL;
delete d.columnsURL;a(!0);return this.hasURLOption(d)};b.prototype.parseGoogleSpreadsheet=function(){function a(c){var b=["https://sheets.googleapis.com/v4/spreadsheets",d,"values",m(),"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key="+h.googleAPIKey].join("/");y({url:b,dataType:"json",success:function(d){c(d);h.enablePolling&&setTimeout(function(){a(c)},e)},error:function(a,c){return h.error&&h.error(c,a)}})}var c=this,h=this.options,
d=h.googleSpreadsheetKey,b=this.chart,e=Math.max(1E3*(h.dataRefreshRate||2),4E3),m=function(){if(h.googleSpreadsheetRange)return h.googleSpreadsheetRange;var a=("ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(h.startColumn||0)||"A")+((h.startRow||0)+1),c="ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(G(h.endColumn,-1))||"ZZ";l(h.endRow)&&(c+=h.endRow+1);return a+":"+c};d&&(delete h.googleSpreadsheetKey,a(function(a){a=a.values;if(!a||0===a.length)return!1;var d=a.reduce(function(a,c){return Math.max(a,c.length)},0);a.forEach(function(a){for(var c=
0;c<d;c++)"undefined"===typeof a[c]&&(a[c]=null)});b&&b.series?b.update({data:{columns:a}}):(c.columns=a,c.dataFound())}));return!1};b.prototype.trim=function(a,c){"string"===typeof a&&(a=a.replace(/^\s+|\s+$/g,""),c&&/^[0-9\s]+$/.test(a)&&(a=a.replace(/\s/g,"")),this.decimalRegex&&(a=a.replace(this.decimalRegex,"$1.$2")));return a};b.prototype.parseTypes=function(){for(var a=this.columns,c=a.length;c--;)this.parseColumn(a[c],c)};b.prototype.parseColumn=function(a,c){var b=this.rawColumns,d=this.columns,
g=a.length,e=this.firstRowAsNames,m=-1!==this.valueCount.xColumns.indexOf(c),k,f=[],l=this.chartOptions,n,p=(this.options.columnTypes||[])[c];l=m&&(l&&l.xAxis&&"category"===L(l.xAxis)[0].type||"string"===p);for(b[c]||(b[c]=[]);g--;){var r=f[g]||a[g];var q=this.trim(r);var z=this.trim(r,!0);var u=parseFloat(z);"undefined"===typeof b[c][g]&&(b[c][g]=q);l||0===g&&e?a[g]=""+q:+z===u?(a[g]=u,31536E6<u&&"float"!==p?a.isDatetime=!0:a.isNumeric=!0,"undefined"!==typeof a[g+1]&&(n=u>a[g+1])):(q&&q.length&&
(k=this.parseDate(r)),m&&A(k)&&"float"!==p?(f[g]=r,a[g]=k,a.isDatetime=!0,"undefined"!==typeof a[g+1]&&(r=k>a[g+1],r!==n&&"undefined"!==typeof n&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,g=a.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):a.unsorted=!0),n=r)):(a[g]=""===q?null:q,0!==g&&(a.isDatetime||a.isNumeric)&&(a.mixed=!0)))}m&&a.mixed&&(d[c]=b[c]);if(m&&n&&this.options.sort)for(c=0;c<d.length;c++)d[c].reverse(),e&&d[c].unshift(d[c].pop())};
b.prototype.parseDate=function(a){var c=this.options.parseDate,b,d=this.options.dateFormat||this.dateFormat,g;if(c)var e=c(a);else if("string"===typeof a){if(d)(c=this.dateFormats[d])||(c=this.dateFormats["YYYY/mm/dd"]),(g=a.match(c.regex))&&(e=c.parser(g));else for(b in this.dateFormats)if(c=this.dateFormats[b],g=a.match(c.regex)){this.dateFormat=b;this.alternativeFormat=c.alternative;e=c.parser(g);break}g||(a.match(/:.+(GMT|UTC|[Z+-])/)&&(a=a.replace(/\s*(?:GMT|UTC)?([+-])(\d\d)(\d\d)$/,"$1$2:$3").replace(/(?:\s+|GMT|UTC)([+-])/,
"$1").replace(/(\d)\s*(?:GMT|UTC|Z)$/,"$1+00:00")),g=Date.parse(a),"object"===typeof g&&null!==g&&g.getTime?e=g.getTime()-6E4*g.getTimezoneOffset():A(g)&&(e=g-6E4*(new Date(g)).getTimezoneOffset()))}return e};b.prototype.rowsToColumns=function(a){var c,b;if(a){var d=[];var g=a.length;for(c=0;c<g;c++){var e=a[c].length;for(b=0;b<e;b++)d[b]||(d[b]=[]),d[b][c]=a[c][b]}}return d};b.prototype.getData=function(){if(this.columns)return this.rowsToColumns(this.columns).slice(1)};b.prototype.parsed=function(){if(this.options.parsed)return this.options.parsed.call(this,
this.columns)};b.prototype.getFreeIndexes=function(a,c){var b,d=[],g=[];for(b=0;b<a;b+=1)d.push(!0);for(a=0;a<c.length;a+=1){var e=c[a].getReferencedColumnIndexes();for(b=0;b<e.length;b+=1)d[e[b]]=!1}for(b=0;b<d.length;b+=1)d[b]&&g.push(b);return g};b.prototype.complete=function(){var a=this.columns,c,b=this.options,d,e,l=[];if(b.complete||b.afterComplete){if(this.firstRowAsNames)for(d=0;d<a.length;d++)a[d].name=a[d].shift();var m=[];var k=this.getFreeIndexes(a.length,this.valueCount.seriesBuilders);
for(d=0;d<this.valueCount.seriesBuilders.length;d++){var f=this.valueCount.seriesBuilders[d];f.populateColumns(k)&&l.push(f)}for(;0<k.length;){f=new H;f.addColumnReader(0,"x");d=k.indexOf(0);-1!==d&&k.splice(d,1);for(d=0;d<this.valueCount.global;d++)f.addColumnReader(void 0,this.valueCount.globalPointArrayMap[d]);f.populateColumns(k)&&l.push(f)}0<l.length&&0<l[0].readers.length&&(f=a[l[0].readers[0].columnIndex],"undefined"!==typeof f&&(f.isDatetime?c="datetime":f.isNumeric||(c="category")));if("category"===
c)for(d=0;d<l.length;d++)for(f=l[d],k=0;k<f.readers.length;k++)"x"===f.readers[k].configName&&(f.readers[k].configName="name");for(d=0;d<l.length;d++){f=l[d];k=[];for(e=0;e<a[0].length;e++)k[e]=f.read(a,e);m[d]={data:k};f.name&&(m[d].name=f.name);"category"===c&&(m[d].turboThreshold=0)}a={series:m};c&&(a.xAxis={type:c},"category"===c&&(a.xAxis.uniqueNames=!1));b.complete&&b.complete(a);b.afterComplete&&b.afterComplete(a)}};b.prototype.update=function(a,c){var b=this.chart;a&&(a.afterComplete=function(a){a&&
(a.xAxis&&b.xAxis[0]&&a.xAxis.type===b.xAxis[0].options.type&&delete a.xAxis,b.update(a,c,!0))},B(!0,b.options.data,a),this.init(b.options.data))};return b}();e.data=function(b,a,c){return new e.Data(b,a,c)};p(b,"init",function(b){var a=this,c=b.args[0]||{},h=b.args[1];c&&c.data&&!a.hasDataDef&&(a.hasDataDef=!0,a.data=new e.Data(J(c.data,{afterComplete:function(b){var d;if(Object.hasOwnProperty.call(c,"series"))if("object"===typeof c.series)for(d=Math.max(c.series.length,b&&b.series?b.series.length:
0);d--;){var e=c.series[d]||{};c.series[d]=B(e,b&&b.series?b.series[d]:{})}else delete c.series;c=B(b,c);a.init(c,h)}}),c,a),b.preventDefault())});var H=function(){function b(){this.readers=[];this.pointIsArray=!0;this.name=void 0}b.prototype.populateColumns=function(a){var b=!0;this.readers.forEach(function(b){"undefined"===typeof b.columnIndex&&(b.columnIndex=a.shift())});this.readers.forEach(function(a){"undefined"===typeof a.columnIndex&&(b=!1)});return b};b.prototype.read=function(a,b){var c=
this.pointIsArray,d=c?[]:{};this.readers.forEach(function(e){var g=a[e.columnIndex][b];c?d.push(g):0<e.configName.indexOf(".")?I.prototype.setNestedProperty(d,g,e.configName):d[e.configName]=g});if("undefined"===typeof this.name&&2<=this.readers.length){var e=this.getReferencedColumnIndexes();2<=e.length&&(e.shift(),e.sort(function(a,b){return a-b}),this.name=a[e.shift()].name)}return d};b.prototype.addColumnReader=function(a,b){this.readers.push({columnIndex:a,configName:b});"x"!==b&&"y"!==b&&"undefined"!==
typeof b&&(this.pointIsArray=!1)};b.prototype.getReferencedColumnIndexes=function(){var a,b=[];for(a=0;a<this.readers.length;a+=1){var e=this.readers[a];"undefined"!==typeof e.columnIndex&&b.push(e.columnIndex)}return b};b.prototype.hasReader=function(a){var b;for(b=0;b<this.readers.length;b+=1){var e=this.readers[b];if(e.configName===a)return!0}};return b}();e.Data=q;return e.Data});p(b,"masters/modules/data.src.js",[b["Core/Globals.js"],b["Core/HttpUtilities.js"]],function(b,e){b.HttpUtilities=
e;b.ajax=e.ajax;b.getJSON=e.getJSON;b.post=e.post})});
//# sourceMappingURL=data.js.map
/*
 Highcharts JS v9.3.1 (2021-11-05)

 Exporting module

 (c) 2010-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict';(function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/exporting",["highcharts"],function(g){a(g);a.Highcharts=g;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function g(a,e,r,t){a.hasOwnProperty(e)||(a[e]=t.apply(null,r))}a=a?a._modules:{};g(a,"Extensions/FullScreen.js",[a["Core/Chart/Chart.js"],a["Core/Globals.js"],a["Core/Renderer/HTML/AST.js"],a["Core/Utilities.js"]],
function(a,e,r,t){var l=t.addEvent;t=function(){function a(d){this.chart=d;this.isOpen=!1;d=d.renderTo;this.browserProps||("function"===typeof d.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:d.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:d.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",
requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:d.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}a.prototype.close=function(){var d=this.chart,a=d.options.chart;if(this.isOpen&&this.browserProps&&d.container.ownerDocument instanceof Document)d.container.ownerDocument[this.browserProps.exitFullscreen]();this.unbindFullscreenEvent&&(this.unbindFullscreenEvent=
this.unbindFullscreenEvent());d.setSize(this.origWidth,this.origHeight,!1);this.origHeight=this.origWidth=void 0;a.width=this.origWidthOption;a.height=this.origHeightOption;this.origHeightOption=this.origWidthOption=void 0;this.isOpen=!1;this.setButtonText()};a.prototype.open=function(){var d=this,a=d.chart,b=a.options.chart;b&&(d.origWidthOption=b.width,d.origHeightOption=b.height);d.origWidth=a.chartWidth;d.origHeight=a.chartHeight;if(d.browserProps){var k=l(a.container.ownerDocument,d.browserProps.fullscreenChange,
function(){d.isOpen?(d.isOpen=!1,d.close()):(a.setSize(null,null,!1),d.isOpen=!0,d.setButtonText())}),e=l(a,"destroy",k);d.unbindFullscreenEvent=function(){k();e()};if(b=a.renderTo[d.browserProps.requestFullscreen]())b["catch"](function(){alert("Full screen is not supported inside a frame.")})}};a.prototype.setButtonText=function(){var d=this.chart,a=d.exportDivElements,b=d.options.exporting,k=b&&b.buttons&&b.buttons.contextButton.menuItems;d=d.options.lang;b&&b.menuItemDefinitions&&d&&d.exitFullscreen&&
d.viewFullscreen&&k&&a&&(a=a[k.indexOf("viewFullscreen")])&&r.setElementHTML(a,this.isOpen?d.exitFullscreen:b.menuItemDefinitions.viewFullscreen.text||d.viewFullscreen)};a.prototype.toggle=function(){this.isOpen?this.close():this.open()};return a}();e.Fullscreen=t;l(a,"beforeRender",function(){this.fullscreen=new e.Fullscreen(this)});return e.Fullscreen});g(a,"Core/Chart/ChartNavigationComposition.js",[],function(){var a;(function(a){a.compose=function(a){a.navigation||(a.navigation=new e(a));return a};
var e=function(){function a(a){this.updates=[];this.chart=a}a.prototype.addUpdate=function(a){this.chart.navigation.updates.push(a)};a.prototype.update=function(a,k){var d=this;this.updates.forEach(function(e){e.call(d.chart,a,k)})};return a}();a.Additions=e})(a||(a={}));return a});g(a,"Extensions/Exporting/ExportingDefaults.js",[a["Core/Globals.js"]],function(a){return{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:"viewFullscreen printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG".split(" ")}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen.toggle()}},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"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",
contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,verticalAlign:"top",width:24,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"1px solid #999999",background:"#ffffff",padding:"5px 0"},menuItemStyle:{padding:"0.5em 1em",color:"#333333",background:"none",fontSize:a.isTouchDevice?"14px":"11px",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#335cad",
color:"#ffffff"}}}});g(a,"Extensions/Exporting/ExportingSymbols.js",[],function(){var a;(function(a){function e(a,d,e,b){return[["M",a,d+2.5],["L",a+e,d+2.5],["M",a,d+b/2+.5],["L",a+e,d+b/2+.5],["M",a,d+b-1.5],["L",a+e,d+b-1.5]]}function l(a,d,e,b){a=b/3-2;b=[];return b=b.concat(this.circle(e-a,d,a,a),this.circle(e-a,d+a+4,a,a),this.circle(e-a,d+2*(a+4),a,a))}var g=[];a.compose=function(a){-1===g.indexOf(a)&&(g.push(a),a=a.prototype.symbols,a.menu=e,a.menuball=l.bind(a))}})(a||(a={}));return a});
g(a,"Core/HttpUtilities.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,e){var l=a.doc,g=e.createElement,z=e.discardElement,k=e.merge,d=e.objectEach,J={ajax:function(a){var b=k(!0,{url:!1,type:"get",dataType:"json",success:!1,error:!1,data:!1,headers:{}},a);a={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"};var e=new XMLHttpRequest;if(!b.url)return!1;e.open(b.type.toUpperCase(),b.url,!0);b.headers["Content-Type"]||e.setRequestHeader("Content-Type",
a[b.dataType]||a.text);d(b.headers,function(a,d){e.setRequestHeader(d,a)});e.onreadystatechange=function(){if(4===e.readyState){if(200===e.status){var a=e.responseText;if("json"===b.dataType)try{a=JSON.parse(a)}catch(q){b.error&&b.error(e,q);return}return b.success&&b.success(a)}b.error&&b.error(e,e.responseText)}};try{b.data=JSON.stringify(b.data)}catch(x){}e.send(b.data||!0)},getJSON:function(a,d){J.ajax({url:a,success:d,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(a,e,
r){var b=g("form",k({method:"post",action:a,enctype:"multipart/form-data"},r),{display:"none"},l.body);d(e,function(a,d){g("input",{type:"hidden",name:d,value:a},null,b)});b.submit();z(b)}};"";return J});g(a,"Extensions/Exporting/Exporting.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Chart/Chart.js"],a["Core/Chart/ChartNavigationComposition.js"],a["Core/DefaultOptions.js"],a["Extensions/Exporting/ExportingDefaults.js"],a["Extensions/Exporting/ExportingSymbols.js"],a["Core/Globals.js"],a["Core/HttpUtilities.js"],
a["Core/Utilities.js"]],function(a,e,g,t,z,k,d,J,b){e=t.defaultOptions;var l=d.doc,r=d.win,x=b.addEvent,q=b.css,E=b.createElement,K=b.discardElement,F=b.extend,P=b.find,G=b.fireEvent,Q=b.isObject,m=b.merge,L=b.objectEach,w=b.pick,R=b.removeEvent,S=b.uniqueKey,H;(function(e){function t(a){var c=this,d=c.renderer,b=m(c.options.navigation.buttonOptions,a),e=b.onclick,B=b.menuItems,n=b.symbolSize||12;c.btnCount||(c.btnCount=0);c.exportDivElements||(c.exportDivElements=[],c.exportSVGElements=[]);if(!1!==
b.enabled&&b.theme){var f=b.theme,C=f.states,l=C&&C.hover;C=C&&C.select;var D;c.styledMode||(f.fill=w(f.fill,"#ffffff"),f.stroke=w(f.stroke,"none"));delete f.states;e?D=function(a){a&&a.stopPropagation();e.call(c,a)}:B&&(D=function(a){a&&a.stopPropagation();c.contextMenu(p.menuClassName,B,p.translateX,p.translateY,p.width,p.height,p);p.setState(2)});b.text&&b.symbol?f.paddingLeft=w(f.paddingLeft,30):b.text||F(f,{width:b.width,height:b.height,padding:0});c.styledMode||(f["stroke-linecap"]="round",
f.fill=w(f.fill,"#ffffff"),f.stroke=w(f.stroke,"none"));var p=d.button(b.text,0,0,D,f,l,C).addClass(a.className).attr({title:w(c.options.lang[b._titleKey||b.titleKey],"")});p.menuClassName=a.menuClassName||"highcharts-menu-"+c.btnCount++;if(b.symbol){var g=d.symbol(b.symbol,b.symbolX-n/2,b.symbolY-n/2,n,n,{width:n,height:n}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(p);c.styledMode||g.attr({stroke:b.symbolStroke,fill:b.symbolFill,"stroke-width":b.symbolStrokeWidth||1})}p.add(c.exportingGroup).align(F(b,
{width:p.width,x:w(b.x,c.buttonOffset)}),!0,"spacingBox");c.buttonOffset+=(p.width+b.buttonSpacing)*("right"===b.align?-1:1);c.exportSVGElements.push(p,g)}}function z(){if(this.printReverseInfo){var a=this.printReverseInfo,b=a.childNodes,d=a.origDisplay;a=a.resetParams;this.moveContainers(this.renderTo);[].forEach.call(b,function(a,c){1===a.nodeType&&(a.style.display=d[c]||"")});this.isPrinting=!1;a&&this.setSize.apply(this,a);delete this.printReverseInfo;I=void 0;G(this,"afterPrint")}}function H(){var a=
l.body,b=this.options.exporting.printMaxWidth,d={childNodes:a.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0;this.pointer.reset(null,0);G(this,"beforePrint");b&&this.chartWidth>b&&(d.resetParams=[this.options.chart.width,void 0,!1],this.setSize(b,void 0,!1));[].forEach.call(d.childNodes,function(a,c){1===a.nodeType&&(d.origDisplay[c]=a.style.display,a.style.display="none")});this.moveContainers(a);this.printReverseInfo=d}function T(a){a.renderExporting();x(a,"redraw",a.renderExporting);
x(a,"destroy",a.destroyExport)}function U(c,d,e,y,g,B,n){var f=this,u=f.options.navigation,A=f.chartWidth,D=f.chartHeight,p="cache-"+c,v=Math.max(g,B),h=f[p];if(!h){f.exportContextMenu=f[p]=h=E("div",{className:c},{position:"absolute",zIndex:1E3,padding:v+"px",pointerEvents:"auto"},f.fixedDiv||f.container);var m=E("ul",{className:"highcharts-menu"},{listStyle:"none",margin:0,padding:0},h);f.styledMode||q(m,F({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},
u.menuStyle));h.hideMenu=function(){q(h,{display:"none"});n&&n.setState(0);f.openMenu=!1;q(f.renderTo,{overflow:"hidden"});q(f.container,{overflow:"hidden"});b.clearTimeout(h.hideTimer);G(f,"exportMenuHidden")};f.exportEvents.push(x(h,"mouseleave",function(){h.hideTimer=r.setTimeout(h.hideMenu,500)}),x(h,"mouseenter",function(){b.clearTimeout(h.hideTimer)}),x(l,"mouseup",function(a){f.pointer.inClass(a.target,c)||h.hideMenu()}),x(h,"click",function(){f.openMenu&&h.hideMenu()}));d.forEach(function(c){"string"===
typeof c&&(c=f.options.exporting.menuItemDefinitions[c]);if(Q(c,!0)){var b=void 0;c.separator?b=E("hr",void 0,void 0,m):("viewData"===c.textKey&&f.isDataTableVisible&&(c.textKey="hideData"),b=E("li",{className:"highcharts-menu-item",onclick:function(a){a&&a.stopPropagation();h.hideMenu();c.onclick&&c.onclick.apply(f,arguments)}},void 0,m),a.setElementHTML(b,c.text||f.options.lang[c.textKey]),f.styledMode||(b.onmouseover=function(){q(this,u.menuItemHoverStyle)},b.onmouseout=function(){q(this,u.menuItemStyle)},
q(b,F({cursor:"pointer"},u.menuItemStyle))));f.exportDivElements.push(b)}});f.exportDivElements.push(m,h);f.exportMenuWidth=h.offsetWidth;f.exportMenuHeight=h.offsetHeight}d={display:"block"};e+f.exportMenuWidth>A?d.right=A-e-g-v+"px":d.left=e-v+"px";y+B+f.exportMenuHeight>D&&"top"!==n.alignOptions.verticalAlign?d.bottom=D-y-v+"px":d.top=y+B-v+"px";q(h,d);q(f.renderTo,{overflow:""});q(f.container,{overflow:""});f.openMenu=!0;G(f,"exportMenuShown")}function V(a){var c=a?a.target:this,d=c.exportSVGElements,
e=c.exportDivElements;a=c.exportEvents;var g;d&&(d.forEach(function(a,b){a&&(a.onclick=a.ontouchstart=null,g="cache-"+a.menuClassName,c[g]&&delete c[g],d[b]=a.destroy())}),d.length=0);c.exportingGroup&&(c.exportingGroup.destroy(),delete c.exportingGroup);e&&(e.forEach(function(a,c){a&&(b.clearTimeout(a.hideTimer),R(a,"mouseleave"),e[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null,K(a))}),e.length=0);a&&(a.forEach(function(a){a()}),a.length=0)}function W(a,b){b=this.getSVGForExport(a,b);
a=m(this.options.exporting,a);J.post(a.url,{filename:a.filename?a.filename.replace(/\//g,"-"):this.getFilename(),type:a.type,width:a.width||0,scale:a.scale,svg:b},a.formAttributes)}function X(){this.styledMode&&this.inlineStyles();return this.container.innerHTML}function Y(){var a=this.userOptions.title&&this.userOptions.title.text,b=this.options.exporting.filename;if(b)return b.replace(/\//g,"-");"string"===typeof a&&(b=a.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,
"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,""));if(!b||5>b.length)b="chart";return b}function Z(a){var b,c=m(this.options,a);c.plotOptions=m(this.userOptions.plotOptions,a&&a.plotOptions);c.time=m(this.userOptions.time,a&&a.time);var d=E("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},l.body),e=this.renderTo.style.width;var g=this.renderTo.style.height;e=c.exporting.sourceWidth||c.chart.width||/px$/.test(e)&&
parseInt(e,10)||(c.isGantt?800:600);g=c.exporting.sourceHeight||c.chart.height||/px$/.test(g)&&parseInt(g,10)||400;F(c.chart,{animation:!1,renderTo:d,forExport:!0,renderer:"SVGRenderer",width:e,height:g});c.exporting.enabled=!1;delete c.data;c.series=[];this.series.forEach(function(a){b=m(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});b.isInternal||c.series.push(b)});var n={};this.axes.forEach(function(a){a.userOptions.internalKey||(a.userOptions.internalKey=
S());a.options.isInternal||(n[a.coll]||(n[a.coll]=!0,c[a.coll]=[]),c[a.coll].push(m(a.userOptions,{visible:a.visible})))});var f=new this.constructor(c,this.callback);a&&["xAxis","yAxis","series"].forEach(function(c){var b={};a[c]&&(b[c]=a[c],f.update(b))});this.axes.forEach(function(a){var c=P(f.axes,function(c){return c.options.internalKey===a.userOptions.internalKey}),b=a.getExtremes(),d=b.userMin;b=b.userMax;c&&("undefined"!==typeof d&&d!==c.min||"undefined"!==typeof b&&b!==c.max)&&c.setExtremes(d,
b,!0,!1)});g=f.getChartHTML();G(this,"getSVG",{chartCopy:f});g=this.sanitizeSVG(g,c);c=null;f.destroy();K(d);return g}function aa(a,b){var c=this.options.exporting;return this.getSVG(m({chart:{borderRadius:0}},c.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||c.sourceWidth,sourceHeight:a&&a.sourceHeight||c.sourceHeight}}))}function M(a){return a.replace(/([A-Z])/g,function(a,c){return"-"+c.toLowerCase()})}function ba(){function a(c){function e(a,d){u=l=!1;if(g.length){for(k=g.length;k--&&
!l;)l=g[k].test(d);u=!l}"transform"===d&&"none"===a&&(u=!0);for(k=b.length;k--&&!u;)u=b[k].test(d)||"function"===typeof a;u||q[d]===a&&"svg"!==c.nodeName||y[c.nodeName][d]===a||(N&&-1===N.indexOf(d)?f+=M(d)+":"+a+";":a&&c.setAttribute(M(d),a))}var f="",u,l,k;if(1===c.nodeType&&-1===ca.indexOf(c.nodeName)){var h=r.getComputedStyle(c,null);var q="svg"===c.nodeName?{}:r.getComputedStyle(c.parentNode,null);if(!y[c.nodeName]){v=n.getElementsByTagName("svg")[0];var A=n.createElementNS(c.namespaceURI,c.nodeName);
v.appendChild(A);y[c.nodeName]=m(r.getComputedStyle(A,null));"text"===c.nodeName&&delete y.text.fill;v.removeChild(A)}if(d.isFirefox||d.isMS)for(var t in h)e(h[t],t);else L(h,e);f&&(h=c.getAttribute("style"),c.setAttribute("style",(h?h+";":"")+f));"svg"===c.nodeName&&c.setAttribute("stroke-width","1px");"text"!==c.nodeName&&[].forEach.call(c.children||c.childNodes,a)}}var b=da,g=e.inlineWhitelist,y={},v,k=l.createElement("iframe");q(k,{width:"1px",height:"1px",visibility:"hidden"});l.body.appendChild(k);
var n=k.contentWindow.document;n.open();n.write('<svg xmlns="http://www.w3.org/2000/svg"></svg>');n.close();a(this.container.querySelector("svg"));v.parentNode.removeChild(v);k.parentNode.removeChild(k)}function ea(a){(this.fixedDiv?[this.fixedDiv,this.scrollingContainer]:[this.container]).forEach(function(c){a.appendChild(c)})}function fa(){var a=this;a.exporting={update:function(c,b){a.isDirtyExporting=!0;m(!0,a.options.exporting,c);w(b,!0)&&a.redraw()}};g.compose(a).navigation.addUpdate(function(c,
b){a.isDirtyExporting=!0;m(!0,a.options.navigation,c);w(b,!0)&&a.redraw()})}function ha(){var a=this;a.isPrinting||(I=a,d.isSafari||a.beforePrint(),setTimeout(function(){r.focus();r.print();d.isSafari||setTimeout(function(){a.afterPrint()},1E3)},1))}function ia(){var a=this,b=a.options.exporting,d=b.buttons,e=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();e&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g("exporting-group").attr({zIndex:3}).add(),
L(d,function(b){a.addButton(b)}),a.isDirtyExporting=!1)}function ja(a,b){var c=a.indexOf("</svg>")+6,d=a.substr(c);a=a.substr(0,c);b&&b.exporting&&b.exporting.allowHTML&&d&&(d='<foreignObject x="0" y="0" width="'+b.chart.width+'" height="'+b.chart.height+'"><body xmlns="http://www.w3.org/1999/xhtml">'+d.replace(/(<(?:img|br).*?(?=>))>/g,"$1 />")+"</body></foreignObject>",a=a.replace("</svg>",d+"</svg>"));a=a.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,
"").replace(/url\(("|&quot;)(.*?)("|&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(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/&nbsp;/g,"\u00a0").replace(/&shy;/g,"\u00ad");this.ieSanitizeSVG&&(a=this.ieSanitizeSVG(a));return a}var O=[],da=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,
/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/],N="fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y".split(" ");e.inlineWhitelist=[];var ca=["clipPath","defs","desc"],I;e.compose=function(a,b){k.compose(b);-1===O.indexOf(a)&&(O.push(a),b=a.prototype,b.afterPrint=z,b.exportChart=W,b.inlineStyles=ba,b.print=ha,b.sanitizeSVG=ja,b.getChartHTML=X,b.getSVG=Z,b.getSVGForExport=aa,b.getFilename=Y,b.moveContainers=ea,b.beforePrint=H,b.contextMenu=
U,b.addButton=t,b.destroyExport=V,b.renderExporting=ia,b.callbacks.push(T),x(a,"init",fa),d.isSafari&&d.win.matchMedia("print").addListener(function(a){I&&(a.matches?I.beforePrint():I.afterPrint())}))}})(H||(H={}));e.exporting=m(z.exporting,e.exporting);e.lang=m(z.lang,e.lang);e.navigation=m(z.navigation,e.navigation);"";"";return H});g(a,"masters/modules/exporting.src.js",[a["Core/Globals.js"],a["Extensions/Exporting/Exporting.js"],a["Core/HttpUtilities.js"]],function(a,e,g){a.HttpUtilities=g;a.ajax=
g.ajax;a.getJSON=g.getJSON;a.post=g.post;e.compose(a.Chart,a.Renderer)})});
//# sourceMappingURL=exporting.js.map
/*
 Highcharts JS v9.2.2 (2021-08-24)

 Plugin for displaying a message when there is no data visible in chart.

 (c) 2010-2021 Highsoft AS
 Author: Oystein Moseng

 License: www.highcharts.com/license
*/
'use strict';(function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/no-data-to-display",["highcharts"],function(b){a(b);a.Highcharts=b;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function b(a,b,e,g){a.hasOwnProperty(b)||(a[b]=g.apply(null,e))}a=a?a._modules:{};b(a,"Extensions/NoDataToDisplay.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Chart/Chart.js"],a["Core/DefaultOptions.js"],
a["Core/Color/Palette.js"],a["Core/Utilities.js"]],function(a,b,e,g,d){var f=e.getOptions;e=d.addEvent;var h=d.extend;d=b.prototype;f=f();h(f.lang,{noData:"No data to display"});f.noData={attr:{zIndex:1},position:{x:0,y:0,align:"center",verticalAlign:"middle"},style:{fontWeight:"bold",fontSize:"12px",color:g.neutralColor60}};d.showNoData=function(b){var c=this.options;b=b||c&&c.lang.noData||"";c=c&&(c.noData||{});this.renderer&&(this.noDataLabel||(this.noDataLabel=this.renderer.label(b,0,0,void 0,
void 0,void 0,c.useHTML,void 0,"no-data").add()),this.styledMode||this.noDataLabel.attr(a.filterUserAttributes(c.attr||{})).css(c.style||{}),this.noDataLabel.align(h(this.noDataLabel.getBBox(),c.position||{}),!1,"plotBox"))};d.hideNoData=function(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())};d.hasData=function(){for(var a=this.series||[],b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0;return this.loadingShown};e(b,"render",function(){this.hasData()?this.hideNoData():
this.showNoData()})});b(a,"masters/modules/no-data-to-display.src.js",[],function(){})});
//# sourceMappingURL=no-data-to-display.js.map
/*!
 * jQuery UI Touch Punch 0.2.3
 *
 * Copyright 2011–2014, Dave Furfero
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * Depends:
 *  jquery.ui.widget.js
 *  jquery.ui.mouse.js
 */
!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);
var ret = 0;
var min_data = "";
var max_data = "";
var civilian = "";
var employment_cps = "";
var employment_ces = "";
var num_employed = "";
var monthly_pop_growth = "";
var ces_cps_ratio = 0.001;
var monthNames = ["January", "February", "March","April", "May", "June", "July","August", "September", "October","November", "December"];
var title_value = "";
var x_title = "";
var x_title_me = '<h2>Monthly Employment</h2>';
var x_title_ne = '<h2>Monthly Number of Unemployed (CPS)</h2>';
var x_title_ure = '<h2>Monthly Unemployment Rate (CPS)</h2>';
var x_title_lfpre = '<h2>Labor Force Participation Rate (CPS)</h2>';
var x_title_mpgr = '<h2>Moving Average Monthly Population Growth</h2>';
var x_title_cescps = '<h2>Average CES/CPS Multiplier</h2>';      
var testData;
var firstRun = true;



var ResetDefaults = function(){
    $('#TER').val(CalcDefaults.TER);
    $('#MTUR').val(CalcDefaults.MTUR);
    $('#CES_CPS').val(CalcDefaults.CES_CPS);
    $('#LFPGR').val(CalcDefaults.LFPGR);
    $('#MPGR').val(CalcDefaults.MPGR);
}

/*
	  Template: jobsCalc.js
	  Author:   Lu Sancea
	  Created:  7/2/2012
	  Last Mod: 7/2/2012
	  Desc:     Javascript hub file.  This file handles the dialog instantiation, graph generation, and the calculation of the various values displayed on the page.
				Abbreviations:
				CLFE: Civilian labor force estimate (CPS)  
				URE: Unemployment rate estimate
				LFPRE: Labor force participation rate estimate
				AMCHE: Average monthly change in Household employment (CPS) needed to achieve the target unemployment rate
				AMCPE: Average monthly change in Payroll employment (CES) needed to achieve the target unemployment rate
				ALFPR: Based on the assumed labor force participation rate and monthly population growth rate
				
	  Params:   N/A
		
	  Sample useage: N/A

	  Mod dd-mmm-yyyy:
	   
		
	*/

$.ajaxSetup({
  // Disable caching of AJAX responses
  cache: false,
});

//Formatting function
$.fn.digits = function () {
  return this.each(function () {
    $(this).text(
      $(this)
        .text()
        .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
    );
  });
};

jQuery.fn.reset = function () {
  $(this).each(function () {
    this.reset();
  });
  $("#summary").html("");
};

$.jqplot.thousandsFormatter = function (format, val) {
  return numberWithCommas($.jqplot.sprintf(format, val));
};
var st_v_clfe = 0.0;
var st_v_ure = 0.0;
var st_v_lfpre = 0.0;
var st_v_amche = 0.0;
var st_v_amcpe = 0.0;
var st_v_alfpr = 0.0;
var st_v_reset = true;

var st_v_ure_exact = 0.0;
var st_v_Seed4_exact = 0.0;
var st_v_Seed2_exact = 0.0;
var st_v_Seed3_exact = 0.0;
var st_v_clfe_exact = 0.0;
var st_min_data = "";
var st_max_data = "";
var st_civilian = "";
var st_employment_cps = "";
var st_employment_ces = "";
var st_num_employed = "";
var st_monthly_pop_growth = "";
var st_ces_cps_ratio = 0.001;
var monthNames = [
  "January",
  "February",
  "March",
  "April",
  "May",
  "June",
  "July",
  "August",
  "September",
  "October",
  "November",
  "December",
];
var st_title_value = "";
var st_plot1 = [];
var st_plot2 = [];
var st_plot3 = [];
var st_plot4 = []; //URE - M
var st_plot5 = []; //LFPRE
var st_plot6 = []; //MPGR
var st_plot7 = []; //NE
var st_plot8 = []; //Recession
var st_plot9 = []; //Household Employment Detail, SA
var st_plot10 = []; //Establishment Survey Detail, Seasonally Adjusted
var tmp;

$(document).ready(function () {
  JCInit();

  var updateDate = plotx7[0];
  updateDate = updateDate.replace("Data updated ", "");
  var tmpArr = updateDate.split(" ");
  var outputDate = new Date(tmpArr[0].replace(/-/gi, " "));
  var monthIndex = outputDate.getMonth();
  var year = outputDate.getYear() + 1900;

  if (monthIndex == 0) {
    monthIndex = 11;
    year = year - 1;
  }
  var month = monthNames[monthIndex - 1];
  $(".current_month").html(month + " " + year);

  $("#hideScenariosSection").fadeOut(100);
  $("#slider_TER")
    .slider({
      min: 1,
      max: 20,
      step: 0.1,
      value: 4,
      stop: function (e, ui) {
        $("#CalcBtn").focus();
        $("#CalcBtn").click();
		doCalculation();
        $("#drawHighchart").focus();
        $("#drawHighchart").click();
         
      },
    })
    .slider("pips", {
      first: "label",
      last: "label",
      rest: "false",
    })
    .slider("float");

  $("#slider_MTUR")
    .slider({
      min: 1,
      max: 60,
      value: 12,
      stop: function (e, ui) {
        $("#CalcBtn").focus();
        $("#CalcBtn").click();
		doCalculation();
        $("#drawHighchart").focus();
        $("#drawHighchart").click();
      },
    })

    .slider("pips", {
      first: "label",
      last: "label",
      rest: "false",
    })

    .slider("float");

  $("#slider_LFPGR")
    .slider({
      min: 58,
      max: 68,
      step: 0.01,
      value: 5.34,
      stop: function (e, ui) {
        $("#CalcBtn").focus();
        $("#CalcBtn").click();
		doCalculation();
        $("#drawHighchart").focus();
        $("#drawHighchart").click();
      },
    })

    .slider("pips", {
      first: "label",
      last: "label",
      rest: "false",
    })

    .slider("float");

  $("#jc_tab1").click(function () {
    setTimeout(doCalculation, 500);
  });
  $("#curr_data").click(function () {
    $(".curr_stats").toggle();
    if ($(".curr_stats").is(":visible")) {
      $("#curr_data").text("Hide current data");
    } else {
      $("#curr_data").text("Show current data");
    }
  });

  $(document).keypress(function (event) {
    var keycode = event.keyCode ? event.keyCode : event.which;
    if (keycode == "13") {
      if ($("#tab1").is(":visible")) {
        $("#CalcBtn").focus();
        $("#CalcBtn").click();
		doCalculation();
        $("#drawHighchart").focus(); // EDB
        $("#drawHighchart").click(); // EDB
      }
    }
  });

  $("#assumptions_t").click(function () {
    //$('#inner_assumption').toggle();
    $(".cps_more").toggle();
    //$('#assump').removeClass('hideit');
    $(".assumptions_row").toggle();
  });

  $("#assumptions_u").click(function () {
    //$('#inner_assumption').toggle();
    $(".cps_more").toggle();
    //$('#assump').removeClass('hideit');
    $(".assumptions_row").toggle();
    /*if($('#inner_assumption').is(':visible')){
				$('#assumptions_t').addClass('assumptions_title_down').removeClass('assumptions_title');
				//$('#cps_adj').attr('colspan',2);
			}
			else{
				$('#assumptions_t').removeClass('assumptions_title_down').addClass('assumptions_title');
				//$('#cps_adj').attr('colspan',1);
			}*/
  });

  var currposition = $("#help_icon").offset();
  var curr_x = currposition.left - 150;
  var curr_y = currposition.top - 150;
  $("#summary").dialog({
    modal: true,
    close: function () {
      $("#summary").html("");
    },
    autoOpen: false,
  });
  $("#help_icon").click(function (e) {
    currposition = $("#help_icon").position();
    curr_x = 0; //e.clientX-320;
    curr_y = 0; //e.clientY-180;//currposition.top-450;
    $("#moreinfodiv").dialog("open");
  });
  $("#moreinfodiv").dialog({
    autoOpen: false,
   position: { my: "center center", at: "center center", of: "#chartgraphdiv" }, // EDB 9/13/23
    //position: { my: "center center", at: "center center", of: "#jobCalc" },
  });
  $("#moreinfodiv2").dialog({
    autoOpen: false,
    position: { my: "center center", at: "center center", of: "#chartgraphdiv" }, // EDB 9/13/23
    //position: { my: "center center", at: "center center", of: "#jobCalc" }, // EDB 9/13/23
 // chartgraphdiv
  });




  $("[aria-describedby=moreinfodiv]").addClass("center_jobs_div");
 $("[aria-describedby=moreinfodiv]").css({ top: curr_y });

 $("[aria-describedby=moreinfodiv2]").addClass("center_jobs_div");
 $("[aria-describedby=moreinfodiv2]").css({ top: curr_y });


  $("#chartgraph").dialog({
    autoOpen: false,
    width: 650,
    height: 455,
   // EDB original 9/13/23  position: { my: "center center", at: "center center", of: "#jobCalc" },
    position: { my: "center center", at: "center center", of: "#chartgraphdiv" }, 
  });

 $("[aria-describedby=chartgraph]").addClass("chartgraph_div");

  $("#help_icon_household").click(function (e) {
    $("#moreinfodiv2").dialog("open");
  });
  $("#icon_MPGR").click(function (e) {
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
    //tmp = setTimeout('buildGraphMPGR()',1000);
    buildGraphMPGR();
  });
  $("#icon_LFPRE").click(function (e) {
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
    //tmp = setTimeout('buildGraphLFPRE()',1000);
    buildGraphLFPRE($("#chartgraphdiv"), $("#chartgraph"), "chartgraphdiv");
  });
  $("#icon_URE").click(function (e) {
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
    //tmp = setTimeout('buildGraphURE()',1000);
    buildGraphURE();
  });
  $("#icon_NE").click(function (e) {
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
    //tmp = setTimeout('buildGraphNE()',1000);
    buildGraphNE();
  });
  $("#icon_ME").click(function (e) {
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
    //tmp = setTimeout('buildGraphME()',1000);
    buildGraphME();
  });

  $("#icon_CESCPS").click(function (e) {
   
    $("#chartgraph").dialog("open");
    //$('#chartgraphdiv').html('<h2>Loading chart...</h2>');
       tmp = setTimeout('buildGraphCESCPS()',5000);
    // EDB eric blanks 9/13/23  buildGraphCESCPS();
     
  });

  // When #scroll is clicked
  jQuery("#additional").click(function () {
    // Scroll down to 'catTopPosition'
    var catTopPosition = jQuery("#additionalLink").offset().top;
    jQuery("html, body").animate({ scrollTop: catTopPosition }, "slow");
    // Stop the link from acting like a normal anchor link
    return false;
  });

  jQuery("#Scenario1").click(function () {
    $(".scenarioAnswer").fadeOut(200);

    if ($("#scenarioAnswer1").attr("style").includes("none")) {
      $("#scenarioAnswer1").fadeIn(600);
      $("#Scenario1").html("Find out ▼");
    } else {
      $("#scenarioAnswer1").fadeOut(600);
      $("#Scenario1").html("Find out ▶");
      resetSliderToDefault();
      $("#CalcBtn").focus();
      $("#CalcBtn").click();
	  doCalculation();
      $("#drawHighchart").focus(); // EDB
      $("#drawHighchart").click(); // EDB
      return;
    }

    resetSliderToDefault();

    $("#slider_MTUR").slider({ value: 12 });
    $("#slider_TER").slider({ value: 3.5 });
    $("#MTUR").val("12");
    $("#TER").html("3.5");
    $("#CalcBtn").focus();
    $("#CalcBtn").click();
	doCalculation();
    $("#drawHighchart").focus(); // EDB
    $("#drawHighchart").click(); // EDB
  });

  jQuery("#Scenario2").click(function () {
    $(".scenarioAnswer").fadeOut(200);

    if ($("#scenarioAnswer2").attr("style").includes("none")) {
      $("#scenarioAnswer2").fadeIn(600);
      $("#Scenario2").html("Find out ▼");
    } else {
      $("#scenarioAnswer2").fadeOut(600);
      $("#Scenario2").html("Find out ▶");
      resetSliderToDefault();
      $("#CalcBtn").focus();
      $("#CalcBtn").click();
	  doCalculation();
      $("#drawHighchart").focus(); // EDB
      $("#drawHighchart").click(); // EDB
      return;
    }

    resetSliderToDefault();

    $("#slider_MTUR").slider({ value: 1 });
    $("#MTUR").val("1");
    var lfpgr = 61.0; // parseFloat($('#LFPGR').val()) - 61.0;

    $("#LFPGR").val(lfpgr.toString());
    $("#slider_LFPGR").slider({ value: lfpgr });

    $("#CalcBtn").focus();
    $("#CalcBtn").click();
	doCalculation();
    $("#drawHighchart").focus();
    $("#drawHighchart").click();
  });

  jQuery("#Scenario3").click(function () {
    $(".scenarioAnswer").fadeOut(200);

    if ($("#scenarioAnswer3").attr("style").includes("none")) {
      $("#scenarioAnswer3").fadeIn(600);
      $("#Scenario3").html("Find out ▼");
    } else {
      $("#scenarioAnswer3").fadeOut(600);
      $("#Scenario3").html("Find out ▶");
      resetSliderToDefault();
      $("#CalcBtn").focus();
      $("#CalcBtn").click();
      $("#drawHighchart").focus(); // EDB
      $("#drawHighchart").click(); // EDB
      return;
    }

    resetSliderToDefault();

    $("#MTUR").val(3);
    $("#slider_MTUR").slider({ value: 3 });

    var target = parseFloat(
      $(".current_payroll_employment_jobs_number").html().replace(/,/g, "")
    );
    var ter = 3.0; // parseFloat($("#TER").text());

    while (ter < 49.9) {
      $("#TER").val(ter);
      $("#slider_TER").slider({ value: ter });

      $("#CalcBtn").focus();
      $("#CalcBtn").click();

      //if($('.AMCPE').html().charAt(0) == '+') {
      tot = $(".AMCPE").html();
      rate = parseFloat(tot.replace(/,/g, ""));

      if (rate < target) {
        break;
      }
      //}
      ter += 0.1;
      //console.log('ter = ' + ter);
    }

    ter -= 0.1;
    $("#TER").val(ter);
    $("#slider_TER").slider({ value: ter });
    $("#scenerio_TER").html(roundit(ter, 1) + "%");

    $("#CalcBtn").focus();
    $("#CalcBtn").click();
    $("#drawHighchart").focus(); // EDB
    $("#drawHighchart").click(); // EDB
  });

  jQuery("#Scenario4").click(function () {
    $(".scenarioAnswer").fadeOut(200);

    if ($("#scenarioAnswer4").attr("style").includes("none")) {
      $("#scenarioAnswer4").fadeIn(600);
      $("#Scenario4").html("Find out ▼");
    } else {
      $("#scenarioAnswer4").fadeOut(600);
      $("#Scenario4").html("Find out ▶");
      resetSliderToDefault();
      $("#CalcBtn").focus();
      $("#CalcBtn").click();
      $("#drawHighchart").focus(); // EDB
      $("#drawHighchart").click(); // EDB
      return;
    }

    resetSliderToDefault();

    $("#slider_MTUR").slider({ value: 9 });
    $("#MTUR").val(9);

    var tur = 1.0;
    var tot;
    var numberFound = false;

    while (!numberFound && tur < 49) {
      $("#TER").html(tur);
      $("#slider_TER").slider({ value: tur });

      $("#CalcBtn").focus();
      $("#CalcBtn").click();

      if ($(".AMCPE").html().charAt(0) == "+") {
        tot = $(".AMCPE").html().substring(1); // EDB
        rate = parseFloat(tot.replace(/,/g, ""));

        if (rate > 13000 && rate < 25000) {
          numberFound = true;
        }
      }

      tur += 0.01;
      tur = roundit(tur, 2);
    }

    tur -= 0.1;
    $("#TER").html(tur);
    $("#slider_TER").slider({ value: tur });

    $("#CalcBtn").focus();
    $("#CalcBtn").click();
    $("#drawHighchart").focus();
    $("#drawHighchart").click();
  });

  $(".scenarioAnswer").fadeOut();

  $("#resetSliders").click(function () {
    var a = $("#seed_4").text();
    var b = $("#seed_2").text();
    a = a.replace(/\,/g, "");
    b = b.replace(/\,/g, "");
    var tot = (parseInt(a) / (parseInt(a) + parseInt(b))) * 100;
    $("#slider_TER").slider({ value: tot.toFixed(1) });
    $("#TER").html(tot.toFixed(1));

    $("#slider_MTUR").slider({ value: 12 });
    $("#MTUR").val("12");

    a = $("#CLFE").text();
    b = $("#seed_1").text();
    a = a.replace(/\,/g, "");
    b = b.replace(/\,/g, "");
    tot = (a / b) * 100;
    $("#LFPGR").val(tot.toFixed(1));
    $("#slider_LFPGR").slider({ value: tot.toFixed(1) });

    $("#CalcBtn").focus();
    $("#CalcBtn").click();
    $("#drawHighchart").focus();
    $("#drawHighchart").click();

    $(".scenarioAnswer").fadeOut(200);
    $("#Scenario1").html("Find out ▶");
    $("#Scenario2").html("Find out ▶");
    $("#Scenario3").html("Find out ▶");
    $("#Scenario4").html("Find out ▶");
  });

  $("#hideScenarios").click(function () {
    closeScenarioButtons();
    $("#scenarios").fadeOut(200);

    $("#hideScenariosSection").fadeIn(100);
  });

  $("#showScenarios").click(function () {
    $("#scenarios").fadeIn(200);
    $("#hideScenariosSection").fadeOut(200);
  });

  doCalculation();

  $(".ui-dialog-titlebar-close").html("Close"); // close and X button are overlapping 5/7/2020

  /* draw charts when the browser window is loaded or resized (see https://stackoverflow.com/a/1974797/2596103) */
  $(window)
    .on("resize", function () {
      if ($(".tabs").width() < 700) {
        $(".jobsChart").width(parseInt($(".tabs").width() * 0.95));
        $(".jobsChart").height(450);
        $(".table_stats").width(parseInt($(".tabs").width() * 0.9));
      } else {
        $(".jobsChart").width(540);
        $(".jobsChart").height(435);
      }
      //drawChart();
      $("#drawHighchart").focus(); // EDB
      $("#drawHighchart").click(); // EDB
    })
    .resize();
});

function closeScenarioButtons() {
  $("#Scenario1").html("Find out ▶");
  $("#Scenario2").html("Find out ▶");
  $("#Scenario3").html("Find out ▶");
  $("#Scenario4").html("Find out ▶");
}

var v_clfe = 0.0;
var v_ure = 0.0;
var v_ure_exact = 0.0;
var v_lfpre = 0.0;
var v_Seed4_exact = 0.0;
var v_Seed2_exact = 0.0;
var v_Seed3_exact = 0.0;
var v_amche = 0.0;
var v_amcpe = 0.0;
var v_alfpr = 0.0;
var v_clfe_exact = 0.0;
var v_reset = true;

function roundit(x, places) {
  var shift = Math.pow(10, places);
  return Math.round(x * shift) / shift;
}

function processScroll(_anchor) {
  var ancPosition = jQuery(_anchor).offset().top;
  jQuery("html, body").animate({ scrollTop: ancPosition }, "slow");
}

function numberWithCommas(x) {
  return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}

function resetSliderToDefault() {
  var a = $("#seed_4").text();
  var b = $("#seed_2").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = (parseInt(a) / (parseInt(a) + parseInt(b))) * 100;
  $("#slider_TER").slider({ value: tot.toFixed(1) });
  $("#TER").html(tot.toFixed(1));

  $("#slider_MTUR").slider({ value: 12 });
  $("#MTUR").val("12");

  a = $("#CLFE").text();
  b = $("#seed_1").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  tot = (a / b) * 100;

  $("#LFPGR").val(tot.toFixed(1));
  $("#slider_LFPGR").slider({ value: tot.toFixed(1) });
}

function doCalculation(isReset) {
  $("#summary").html("");
  $("#TER").html($("#slider_TER").slider("value").toFixed(1));
  $("#MTUR").val($("#slider_MTUR").slider("value").toFixed(1));
  $("#LFPGR").val($("#slider_LFPGR").slider("value").toFixed(1));
  calcCLFE();
}

//Calculate Civilian labor force estimate (CPS)  (#CLFE)
function calcCLFE() {
  var a = $("#seed_2").text();
  var b = $("#seed_4").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = parseInt(a) + parseInt(b);
  v_clfe = tot;

  //New caluclation: B11*B4 (Labor force participation rate estimate (CPS) * Civilian non-institutional population, 16yr+, (CPS, Household Survey)

  $("#CLFE").text(tot).digits();
  calcURE();
}

//Calculate Unemployment rate estimate (CPS)  (#URE)
function calcURE() {
  var a = $("#seed_4").text();
  var b = $("#seed_2").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = (parseInt(a) / (parseInt(a) + parseInt(b))) * 100;
  v_ure = tot;
  $("#URE").text(tot.toFixed(1) + "%");
  if (v_reset) {
    $("#TER").html(tot.toFixed(1));
    $("#slider_TER").slider({ value: tot });
    $("#target_employment_rate").html(tot.toFixed(1) + "%");
  }
  calcURE_exact();
}

function calcURE_exact() {
  var a = $("#seed_4").text();
  var b = $("#seed_2").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = parseInt(a) / (parseInt(a) + parseInt(b));
  v_ure_exact = roundit(tot, 3);
  calcLFPRE();
}

//Calculate Labor force participation rate estimate (CPS)  (#LFPRE)
function calcLFPRE() {
  var a = $("#CLFE").text();
  var b = $("#seed_1").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = (a / b) * 100;
  v_lfpre = tot;
  $("#LFPRE").text(tot.toFixed(1) + "%");
  if (v_reset) {
    $("#LFPGR").val(tot.toFixed(1));
    $("#slider_LFPGR").slider({ value: tot.toFixed(1) });
  }
  calcLFPRE_Exact();
}

function calcLFPRE_Exact() {
  var a = $("#CLFE").text();
  var b = $("#seed_1").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var tot = roundit(a / b, 3);
  v_lfpre_exact = tot;
  calcCLFE_Exact();
}

//Calculate Civilian labor force estimate (CPS)  (Exact)
function calcCLFE_Exact() {
  var B4 = $("#seed_1").text();
  B4 = B4.replace(/\,/g, "");
  var B11 = v_lfpre_exact;
  //New caluclation: B11*B4 (Labor force participation rate estimate (CPS) * Civilian non-institutional population, 16yr+, (CPS, Household Survey)
  v_clfe_exact = B11 * B4;
  calcSeed4_Exact();
}

//Calculate the exact version of the Number of unemployed (CPS)
function calcSeed4_Exact() {
  var B10 = v_ure_exact;
  var C9 = v_clfe_exact;
  v_Seed4_exact = B10 * C9;
  calcSeed2_Exact();
}

//Calculate the exact version of Employment (CPS)
function calcSeed2_Exact() {
  var C9 = v_clfe_exact;
  var C7 = v_Seed4_exact;
  v_Seed2_exact = C9 - C7;
  calcSeed3_Exact();
}

//Calculate the exact version of Employment (CES, Payroll Survey)
function calcSeed3_Exact() {
  var C5 = v_Seed2_exact;
  var a = $("#seed_2").text();
  var b = $("#seed_3").text();
  a = a.replace(/\,/g, "");
  b = b.replace(/\,/g, "");
  var F5 = roundit(parseFloat(b) / parseFloat(a), 3);
  v_Seed3_exact = C5 * F5;
  calcAMCHE();
}

//Calculate Average monthly change in Household employment (CPS) needed to achieve the target unemployment rate:  (#AMCHE)
function calcAMCHE() {
  var a = v_Seed2_exact; //$('#seed_2').text(); //B5
  //a = a.replace(/\,/g,'');
  //a = parseFloat(a);
  var b = parseFloat($("#MTUR").val()); //B14
  var c = parseFloat($("#TER").html()); //B13
  c = c / 100;
  var d = parseFloat($("#MPGR").val()); //B22
  d = d / 100;
  var e = $("#seed_1").text(); //B4
  e = e.replace(/\,/g, "");
  e = parseFloat(e);
  var f = parseFloat($("#LFPGR").val()); //B21
  f = f / 100;
  var F22 = (1 + d * b) * e;
  var F23 = F22 * f;
  var F16 = (1 - c) * F23;
  var tot = (F16 - a) / b;
  v_amche = tot;
  tot = Math.round(tot);
  if (v_reset) {
    var symbol = "";
    if (tot > 0) {
      symbol = "+";
    }

    $(".current_payroll_employment_jobs_number")
      .html(mrmcpe * 1000)
      .digits();
    //$('#target_employment_rate').html(tot.toFixed(1) + '%');
  }
  $("#AMCHE").text(parseInt(tot)).digits();
  calcAMCPE();
}

//Calculate Average monthly change in Payroll employment (CES) needed to achieve the target unemployment rate: (#AMCPE)
function calcAMCPE() {
console.log("calcAMCPE called");
  var a = v_amche; //B16
  var b = v_Seed2_exact; //$('#seed_2').text(); //B5
  //b = b.replace(/\,/g,'');
  var c = v_Seed3_exact; //$('#seed_3').text(); //B6
  //c = c.replace(/\,/g,'');
  var tot = a * parseFloat($("#CES_CPS").val());
  tot = Math.round(tot);

  var symbol = "";
  if (tot > 0) {
    symbol = "+";
  }

  v_amcpe = tot;
  $("#AMCPE").text(parseInt(tot)).digits();
  $(".AMCPE").html(symbol + parseInt(tot)).digits(); // EDB
  $(".AMCPE_scenerio").html(parseInt(tot)).digits(); // EDB
  calcALFPR();
}

//Calculate Based on the assumed labor force participation rate and monthly population growth rate, (#ALFPR)
function calcALFPR() {
  var b = parseFloat($("#MTUR").val()); //B14
  var d = parseFloat($("#MPGR").val()); //B22
  d = d / 100;
  var e = $("#seed_1").text(); //B4
  e = e.replace(/\,/g, "");
  e = parseFloat(e);
  var f = parseFloat($("#LFPGR").val()); //B21
  f = f / 100;
  var g = v_clfe_exact; //$('#CLFE').text(); //B9
  //g = g.replace(/\,/g,'');
  //g = parseFloat(g);
  var F22 = (1 + d * b) * e;
  var F23 = F22 * f;
  var tot = (F23 - g) / g / b;
  tot = tot * 100;
  $("#ALFPR").text(tot.toFixed(4) + "%");
  $(".bolder")
    .animate({ color: "#E89719" }, 500)
    .animate({ color: "#000000" }, 500);
  v_reset = false;
  RegisterDefaults();
  // EDB buildGraph();
}

//the following monthly growth rate for the labor force is implied:

function doResetForm() {
  $("#jobCalc").reset();
  ResetDefaults();
  v_reset = true;
  doCalculation();
}

function buildGraph() {
  ret = v_amcpe;
  for (g in plot3) {
    plot3[g][1] = ret;
  }
  $("#chartdiv").empty();
  $.jqplot("chartdiv", [plot2, plot1, plot3], {
    title: x_title,
    cursor: {
      show: false,
    },
    series: [
      {
        renderer: $.jqplot.BarRenderer,
        rendererOptions: {
          barWidth: 15,
          highlightMouseOver: false,
        },
        yaxis: "y2axis",
        color: "#D9D9D9",
      },
      {
        color: "#44687d",
        markerOptions: {
          show: false,
          lineWidth: 2,
        },
      },
      {
        color: "#9c3022",
        markerOptions: {
          show: true,
          lineWidth: 1,
          size: 6,
          style: "filledSquare",
        },
      },
    ],
    axes: {
      xaxis: {
        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
        min: plot3[0][0] - 1,
        max: plot3[plot3.length - 1][0] + 1,
        renderer: $.jqplot.pyramidAxisRenderer,
        tickOptions: {
          fontSize: "9px",
          formatString: "%d",
        },
        labelRenderer: $.jqplot.AxisLabelRenderer,
        labelOptions: {
          fontSize: "9px",
          fontWeight: "bold",
        },
        label:
          '<div class="subChartTitle">Note: The gray bars reflect years associated with a recession<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta.  </div>',
      },
      yaxis: {
        tickOptions: {
          formatString: "%d",
          formatter: $.jqplot.thousandsFormatter,
        },
      },
      y2axis: {
        min: 0,
        max: 1,
        tickOptions: { show: false },
      },
    },
  });
}

function buildGraphURE() {
  var data = [];
  var sourceLine =
    "Sources: Current Population Survey, Bureau of Labor Statistics and author's calculations";

  for (i = 0; i < plot4.length; i++) {
    data.push(plot4[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 100,
      marginRight: 20,
    },

    legend: {
      enabled: false,
    },

    title: {
      text: "Monthly Unemployment Rate (CPS)",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .0f}",
      },
      title: {
        text: "Monthly Unemployment Rate (CPS)",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Monthly Unemployment Rate (CPS)",
        data: data,
      },
    ],
  });

  setChartBranding(hc, 616, 400, sourceLine, 50);
}

function buildGraphLFPRE(chartgraphdivObj, chartgraphObj, chartgraphdivName) {
  chartgraphdivObj.empty();
  chartgraphObj.dialog("open");

  var data = [];
  var sourceLine =
    "Notes: Monthly data, seasonally adjusted.  Gray bars reflect recessionary months.<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta.";

  for (i = 0; i < plot5.length; i++) {
    data.push(plot5[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 100,
      marginRight: 20,
    },

    legend: {
      enabled: false,
    },

    title: {
      text: "Labor Force Participation Rate",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .0f}",
      },
      title: {
        text: "Labor Force Participation Rate (CPS)",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Labor Force Participation Rate (CPS)",
        data: data,
      },
    ],
  });
  setChartBranding(hc, 616, 400, sourceLine, 65);
}

function buildGraphMPGR() {
  $("#chartgraphdiv").empty();
  $("#chartgraph").dialog("open");

  var data = [];
  var sourceLine =
    "Notes: Monthly data, seasonally adjusted.  Gray bars reflect recessionary months.  Each month reflects the average over the previous twelve months, excluding January because of census population adjustments.<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta.";

  for (i = 0; i < plot6.length; i++) {
    data.push(plot6[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 120,
      marginRight: 20,
    },

    legend: {
      enabled: false,
    },
    title: {
      text: "Moving Average Monthly Population Growth",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .2f}",
      },
      title: {
        text: "Monthly Population Growth",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Monthly Population Growth",
        data: data,
      },
    ],
  });
  setChartBranding(hc, 616, 400, sourceLine, 70);
}

function buildGraphNE() {
  $("#chartgraphdiv").empty();
  $("#chartgraph").dialog("open");

  var data = [];
  var sourceLine =
    "Notes: Monthly data, seasonally adjusted.  Gray bars reflect recessionary months.<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta.";

  for (i = 0; i < plot7.length; i++) {
    data.push(plot7[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 100,
      marginRight: 20,
    },

    legend: {
      enabled: false,
    },
    title: {
      text: "Monthly Number of Unemployed (CPS)",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .0f}",
      },
      title: {
        text: "Monthly Number of Unemployed (CPS)",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Monthly Number of Unemployed (CPS)",
        data: data,
      },
    ],
  });
  setChartBranding(hc, 616, 400, sourceLine, 65);
}

function buildGraphME() {
  $("#chartgraphdiv").empty();
  $("#chartgraph").dialog("open");

  var dataPlot9 = [];
  var dataPlot10 = [];
  var sourceLine =
    "Notes: Monthly data, seasonally adjusted.  Gray bars reflect recessionary months.<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta. ";

  for (i = 0; i < plot9.length; i++) {
    dataPlot9.push(plot9[i][1]);
  }

  for (i = 0; i < plot10.length; i++) {
    dataPlot10.push(plot10[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 120,
      marginRight: 20,
    },
    title: {
      text: "Monthly Employment",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .0f}",
      },
      title: {
        text: "Employment",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Current Population Survey (CPS)",
        data: dataPlot9,
      },
      {
        name: "Establishment Survey (CES)",
        data: dataPlot10,
      },
    ],
  });
  setChartBranding(hc, 616, 400, sourceLine, 70);
}

function buildGraphCESCPS() {
  $("#chartgraphdiv").empty();
  $("#chartgraph").dialog("open");

  var data = [];
  var sourceLine =
    "Notes: Monthly data, seasonally adjusted.  Gray bars reflect recessionary months.  Each month reflects the average over the previous twelve months.<br>Source: Bureau of Labor Statistics, Federal Reserve Bank of Atlanta.";

  for (i = 0; i < plot11.length; i++) {
    data.push(plot11[i][1]);
  }

  split = min_data.split("/");

  year = split[2].split(" ")[0];
  month = parseInt(split[0]);
  day = parseInt(split[1]);

  var plotStart = Date.UTC(year, month, day);
  var hc = Highcharts.chart("chartgraphdiv", {
    chart: {
      type: "line",
      marginBottom: 120,
      marginRight: 20,
    },

    legend: {
      enabled: false,
    },

    title: {
      text: "Average CES/CPS Multiplier",
    },

    xAxis: {
      type: "datetime",
      plotBands: recessionBands,
    },

    yAxis: {
      labels: {
        format: "{value: .2f}",
      },
      title: {
        text: "Ratio of CES/CPS Employment",
      },
    },
    plotOptions: {
      line: {
        dataLabels: {
          enabled: false,
        },
        enableMouseTracking: true,
      },
      series: {
        pointStart: plotStart,
        pointIntervalUnit: "month",
      },
    },

    series: [
      {
        name: "Average CES/CPS Multiplier",
        data: data,
      },
    ],
  });
  setChartBranding(hc, 616, 400, sourceLine, 80);
}

$(document).ready(function () {
  $(".content .tabHead li a").click(function () {
    var _tabNumber = $(this).attr("href").slice(4);
    History.pushState(null, null, "?panel=" + _tabNumber);

    if (_tabNumber === "1") {
      setTimeout(doCalculation, 500);
    }
  });

  $("#payroll-employment-growth-faq-link").click(function () {
    tp1.showPanel(1);
    processScroll("#Q3");
    $("#moreinfodiv2").dialog("close");
  });

  $("#hideScenarios").click(function () {
    hideScenarios();
  });

  $("#showScenarios").click(function () {
    showScenarios();
  });

  $("#resetSliders").click(function () {
    resetSliders();
  });

  $("#jobCalc").submit(function () {
    return false();
  });
});

$(document).ready(function(){
	$.ajaxSetup ({
		// Disable caching of AJAX responses
		cache: false
	});
	$(".mapitem").click(function(){     
                var mapitem = $(this).attr("rel");
                var mapalt = $(this).attr("alt");
                $("#currentstate").slideUp("fast");
		$(".st_loading").slideDown("slow", function(){
                   $("#st_window").slideUp("slow",function(){ $("#st_window").html( "" ); loadStateData(mapitem ,mapalt ); });
                   
                });		
	});
	$("#choosestate").click(function(){
		//$(".choosestate").slideUp("slow");
		$(".usamap").slideDown("slow");
	});
	function loadStateData(state,statefull){     
$("#st_window").show();

console.log("state = " + state); // EDB			
		$("#st_window").load("/chcs/calculator/"+state,function(){ 
			$(".usamap").slideUp("slow"); 
			$("#currentstate").slideDown("slow");
			$(".statetext").html( statefull );
		        $(".st_loading").slideUp("slow");
st_JCInit();
   st_doCalculation();
			//$(".choosestate").slideDown("slow");
		   });
		   
	}

});


/* variables to be used throughout chart options */
var ChartFontFamily = 'IBM Plex Sans, Arial, sans-serif';
var DarkGray = '#6F7070';
var MediumGray = '#AFB0AE';
var LightGray = '#F8F9FA';
var RecessionGray = 'rgba(175,176,174,0.3)';

/* set values for recession bands used in datetime charts, if not previously defined */
if (typeof recessionBands == 'undefined') {
	var recessionBands = [
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1923,4,1), to: Date.UTC(1924,5,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1926,9,1), to: Date.UTC(1927,10,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1929,7,1), to: Date.UTC(1933,2,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1937,4,1), to: Date.UTC(1938,5,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1945,1,1), to: Date.UTC(1945,9,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1948,10,1), to: Date.UTC(1949,9,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1953,6,1), to: Date.UTC(1954,4,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1957,7,1), to: Date.UTC(1958,3,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1960,3,1), to: Date.UTC(1961,1,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1969,11,1), to: Date.UTC(1970,10,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1973,10,1), to: Date.UTC(1975,2,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1980,0,1), to: Date.UTC(1980,6,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1981,6,1), to: Date.UTC(1982,10,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(1990,6,1), to: Date.UTC(1991,2,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(2001,2,1), to: Date.UTC(2001,10,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(2007,11,1), to: Date.UTC(2009,5,1) },
		{ id: 'recession', color: RecessionGray, from: Date.UTC(2020,1,1), to: Date.UTC(2020,3,1) }
	];
}

/* set global settings for all Highcharts visualizations */
function setChartDefaults(chartWidth,chartHeight,chartSourceLine,chartSourceLineOffset, chartBorderWidth, chartColors, fontType) {


	if (!chartWidth) chartWidth = 650;
	if (!chartHeight) chartHeight = 450;
	if (!chartSourceLine) chartSourceLine = 'Source: Atlanta Fed';
	if (!chartSourceLineOffset) chartSourceLineOffset =  50;
	if (!chartBorderWidth) chartBorderWidth = 1;
	if (!fontType) fontType = "";


	//var defaultColors = ['#6929c4', /* Purple 70 */
	//		'#1192e8', /* Cyan 50 */
	//		'#005d5d', /* violet */
	//		'#CAB2D6', /* light violet */
	//		'#E31A1C', /* red */
	//		'#FB9A99', /* light red */
	//		'#FF7F00', /* orange */
	//		'#FDBF6F', /* light orange */
	//		'#33A02C', /* green */
	//		'#B2DF8A', /* light green */
	//		'#CC2870', /* magenta */
	//		'#E593B7' /* light magenta */];
			
			
	var defaultColors = ['#0E4768', /* "Bank" blue */
			'#768F40', /* green */
			'#F5892F', /* orange */
			'#581F54', /* purple */
			'#5588A3', /* light blue */
			'#084225', /* dark green */
			'#B59236', /* gold */
			'#8B4823', /* dark orange */
			'#756A5C', /* brown */
			'#A01D23', /* red */
			'#000000', /* black */
			'#B89078', /* faded dark orange; tan */
			'#CF8788', /* faded red; coral */
			'#AB8EA9', /* faded purple; mauve */
			'#9BB4A9', /* faded dark green; mint */
			'#B5C7D1'  /* faded "Bank" blue; sky */
			];
	
	var darkColors = ['#8a3ffc','#33b1ff','#007d79','#ff7eb6','#fa4d56','#fff1f1','#6fdc8c','#4589ff','#d12771','#d2a106','#08bdba'];
	
	var responsive = [{
				condition: { maxWidth: 500 },
				chartOptions: {
					legend: { 
						itemStyle: { font: '10px ' + ChartFontFamily }
					},
					subtitle: { 
						style: { font: '11px ' + ChartFontFamily }
					},
					title: { 
						style: { font: 'bold 13px ' + ChartFontFamily }
					},
					xAxis: {
						labels: { style: { font: '10px ' + ChartFontFamily } }, 
						title: { style: { font: '10px ' + ChartFontFamily } }
					},
					yAxis: [{
						labels: { style: { font: '10px ' + ChartFontFamily } }, 
						title: { style: { font: '10px ' + ChartFontFamily } }
					},{ /* right-side for dual-axis charts; add blank title to avoid default "Values" appearing for charts with one y axis */
						labels: { style: { font: '10px ' + ChartFontFamily } }, 
						title: { style: { font: '10px ' + ChartFontFamily }, text: '' }
					}],
					rangeSelector: { 
						buttonPosition: { align: 'left', x: -20 },
						buttonTheme: {
							style: { fontSize: '10px', fontFamily: ChartFontFamily }
						},
						inputStyle: { fontSize: '10px', fontFamily: ChartFontFamily },
						labelStyle: { fontSize: '10px', fontFamily: ChartFontFamily }
					}
				}
			}];
	
	var colors = [];
	if(!chartColors) {
		colors = defaultColors;
	} else {
		colors = darkColors;
	}
	
	var chartFontSize = "14px";
	var legendFontSize = "13px ";
	var tooltipFontSize = "12px";
	var axisFontSize = "10px ";
	
	
	if(fontType == "small") {
		chartFontSize = "18px";
		legendFontSize = "17px ";
		tooltipFontSize = "16px";
		axisFontSize = "14px ";	
		
		responsive = [];
	}
	else if(fontType == "regular") {
		chartFontSize = "20px";
		legendFontSize = "19px ";
		tooltipFontSize = "18px";
		axisFontSize = "16px ";	
		
		responsive = [];
	} else if(fontType == "large") {
		chartFontSize = "24px";
		legendFontSize = "23px ";
		tooltipFontSize = "22px";
		axisFontSize = "20px ";	
		
		responsive = [];
	}
	
	Highcharts.setOptions({
		chart: { 
			borderColor: MediumGray, borderWidth: chartBorderWidth, zoomType: 'x', 
			style: { color: DarkGray, fontFamily: ChartFontFamily, fontSize: chartFontSize }
		},
		colors: colors,
		credits: { enabled: true, text: '', style: { color: '#FFFFFF', font: '9px ' + ChartFontFamily }, position: { align: 'right', y: -10 } },
		exporting: {
			scale: 1, allowHTML: true, 
			chartOptions: {
				chart: { height: chartHeight, width: chartWidth },
				legend: { enabled: true },
				rangeSelector: { enabled: false }
			},
			enableImages: true,
			buttons: {
				contextButton: { 
					text: 'Export',
                    menuItems: [{
                        text: 'Print this chart', onclick: function () { 
							this.print();
							thisTitle = this.options.title.text; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": "); 
							window.dataLayer = window.dataLayer || [];
							window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'print', 'label': newTitle + ' | ' + document.title });
						}
					}, {
                        separator: true, 
					}, {
                        text: 'Save as PNG', onclick: function () { 
							this.exportChart();
							thisTitle = this.options.title.text; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": ");
							window.dataLayer = window.dataLayer || [];
							window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'png', 'label': newTitle + ' | ' + document.title });
						}
                    }, {
                        text: 'Save as JPEG', onclick: function () { 
							this.exportChart({ type: 'image/jpeg' });
							thisTitle = this.options.title.text; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": ");
							window.dataLayer = window.dataLayer || [];
							window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'jpeg', 'label': newTitle + ' | ' + document.title });
						}
                    }, {
                        text: 'Save as SVG', onclick: function () { 
							this.exportChart({ type: 'image/svg+xml' });
							thisTitle = this.options.title.text; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": ");
							window.dataLayer = window.dataLayer || [];
							window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'svg', 'label': newTitle + ' | ' + document.title });
						}
                    }, {
                        text: 'Save as PDF', onclick: function () { 
							this.exportChart({ type: 'application/pdf' }); 
							thisTitle = this.options.title.text; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": ");
							window.dataLayer = window.dataLayer || [];
							window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'pdf', 'label': newTitle + ' | ' + document.title });
						}
                    }]
				}
			}
		},
		lang: { thousandsSep: ',', noData: "No data are available for this selection." },
		legend: { 
			enabled: true, align: 'right', backgroundColor: '#FFFFFF', borderRadius: 5, borderWidth: 1, layout: 'horizontal', symbolWidth: 20, verticalAlign: 'top', 
			itemStyle: { color: DarkGray, font: '13px ' + ChartFontFamily, paddingTop: '2px', paddingBottom: '2px' }, useHTML: false, itemMarginTop: 2, itemMarginBottom: 2
		},
		navigation: {
			menuStyle : { 
				fontFamily: ChartFontFamily, fontSize: '18px', color: DarkGray
			}
		},
		noData: {
			attr: { zIndex: 10 }, style: { fontFamily: ChartFontFamily, fontWeight: 'bold', fontSize: '18px', color: DarkGray }
		},
		plotOptions: {
			area: { marker: { enabled: false } },
			line: { marker: { enabled: false } },
			scatter: { marker: { enabled: true } },
			spline: { marker: { enabled: false } },
			
                        series: {
				events: {
					hide: function () {
						thisTitle = this.chart.title.textStr; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": "); 
						window.dataLayer = window.dataLayer || [];
						window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'hideSeries', 'label': newTitle + ' (series: ' + this.name + ') | ' + document.title });
					}, 
					show: function () { 
						thisTitle = this.chart.title.textStr; newTitle = thisTitle.replace("<br>",": "); newTitle = thisTitle.replace("<br />",": "); 
						window.dataLayer = window.dataLayer || [];
						window.dataLayer.push({ 'event': 'Highcharts', 'category': 'Highcharts', 'action': 'showSeries', 'label': newTitle + ' (series: ' + this.name + ') | ' + document.title });
					}
				} // end events
			} // end series
                      
		},
		subtitle: { align: 'left', style: { color: DarkGray, font: '14px ' + ChartFontFamily }, x: 5 },
		title: { align: 'left', style: { color: '#000000', font: '18px ' + ChartFontFamily }, x: 5, y: 15 },
		xAxis: {
			lineColor: DarkGray, lineWidth: 2, tickmarkPlacement: 'on',
			labels: { style: { fontSize: axisFontSize  } }, 
			title: { style: { fontSize: axisFontSize  } }
		},
		yAxis: {
			lineColor: DarkGray, lineWidth: 0, tickmarkPlacement: 'on',
			labels: { style: { fontSize: axisFontSize  } }, 
			title: { style: { fontSize: axisFontSize  } }, 
			plotLines: [{ value: 0, color: '#ABABAB', width: 2, zIndex: 1 }]
		},
		tooltip: {
			style: { fontFamily: ChartFontFamily, fontSize: tooltipFontSize }              
		},
		/* for charts using Highstock date ranges */
		rangeSelector: { 
			enabled: true,
			verticalAlign: 'top',
			inputDateFormat: '%b %Y', /* for datepicker interface */
			buttons: [
				{ type: 'year', count: 1, text: '1y' },
				{ type: 'year', count: 5, text: '5y' },
				{ type: 'year', count: 10, text: '10y' },
				{ type: 'year', count: 20, text: '20y' },
				{ type: 'all', text: 'All' }
			],
			buttonTheme: {
				fill: LightGray, stroke: MediumGray,
				style: { color: DarkGray, fontSize: '14px', fontFamily: ChartFontFamily }
			},
			inputStyle: { color: DarkGray, fontSize: '14px', fontFamily: ChartFontFamily },
			labelStyle: { color: DarkGray, fontSize: '14px', fontFamily: ChartFontFamily }
		},
		responsive: {
			rules: responsive
		}
	});	
}

function setHighstockDatePickers(chart) {

	/* apply the date pickers and set specific ranges for this chart */
	var extremes = chart.xAxis[0].getExtremes();

	setTimeout(function() {
		$('input.highcharts-range-selector', $('#' + chart.options.chart.renderTo)).datepicker({
			/* add one day to each extreme to get to start of calendar month */
			minDate: new Date(extremes.dataMin + 86400000),
			maxDate: new Date(extremes.dataMax + 86400000),
		})
	}, 0);
	/* set the format for the date pickers */
	$.datepicker.setDefaults({
		dateFormat: 'MM yy', changeMonth: true, changeYear: true, showButtonPanel: true,
		 onClose: function() {
			var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
			var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
			$(this).datepicker('setDate', new Date(iYear, iMonth, 1));
		 },
		 beforeShow: function() {
		   if ((selDate = $(this).val()).length > 0) {
			  iYear = selDate.substring(selDate.length - 4, selDate.length);
			  iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5), $(this).datepicker('option', 'monthNames'));
			  $(this).datepicker('option', 'defaultDate', new Date(iYear, iMonth, 1));
			  $(this).datepicker('setDate', new Date(iYear, iMonth, 1));
		   }
		}
	});

}

/* set branding for the bottom of the chart */
function setChartBranding(chartObject,chartWidth,chartHeight,chartSourceLine,chartSourceLineOffset) {
	if (!chartWidth) chartWidth = 650;
	if (!chartHeight) chartHeight = 450;
	if (!chartSourceLine) chartSourceLine = 'Source: Atlanta Fed';
	if (!chartSourceLineOffset) chartSourceLineOffset = 50;


	/* set branding in exported versions */
	chartObject.update({ 
		exporting: {
			chartOptions: {
				chart: { 
					events: { 
						load: function() { 
							this.renderer.text(chartSourceLine,15,chartHeight-chartSourceLineOffset).css({ color: '#756A5B', font: '11px IBM Plex Sans, Arial, sans-serif', width: chartWidth-50 }).add(); 
							/*this.renderer.image('https://www.frbatlanta.org/-/media/images/logos/FRBAlogo-Column-1Line.png', 15, chartHeight-28, 296, 20).attr({ zIndex: 3 }).add(); 
							*/
							/* EDB 3/31/23
							this.renderer.image('https://www.atlantafed.org/-/media/images/logos/atlantafed-highcharts-logo-svg.svg', 15, chartHeight-28, 296, 20).attr({ zIndex: 3 }).add();
                                                        */
                                                        this.renderer.image('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASgAAAAUCAYAAAA+yKB7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF8WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTAzLTA3VDEzOjU3OjUyLTA1OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wMy0wN1QxNDoyMToxMi0wNTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wMy0wN1QxNDoyMToxMi0wNTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiNWYwODQ1NC01YzMxLTBiNDEtYTE0Yi1jNjhkZTliZWE0ODEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmNGI4MGZiOC0xN2Y4LWI3NDUtOTRkMi04ZjkyMmNhOGM1NWIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplM2NmMzkzOC1jMDBlLTAzNDEtOGY2ZS00N2RkMzMyNDA1MjIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmUzY2YzOTM4LWMwMGUtMDM0MS04ZjZlLTQ3ZGQzMzI0MDUyMiIgc3RFdnQ6d2hlbj0iMjAyMi0wMy0wN1QxMzo1Nzo1Mi0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNWYwODQ1NC01YzMxLTBiNDEtYTE0Yi1jNjhkZTliZWE0ODEiIHN0RXZ0OndoZW49IjIwMjItMDMtMDdUMTQ6MjE6MTItMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6oGq8iAAAQ6klEQVR4nO2cedxWVbXHvy8oAiK8gIiITGYkci+mhkOaAxXxUVNI1PSqmOaQXsXydu/NIafrLc0xB/JmeCunFHA2NU3FOSUUQRFlEARnmVEG/fXHb+3O4XCeh+d9ZfiU7+/zeT777HXW3mefPay91trrPHWSRgD9gceAbsAXgAXALGA6sBzoBfQA6oF3gInAbsHzfWAxTWhCE5qwhtEMEPBX4EagBTAPGAf8BugEfBG4DngcmB/lHohfa9a/cGqGBWuL9dyOjaIddeu5HU1Ys6gHuqyjZ/UEjgR2BDZcB8/bEmi/Dp7TaNRJ6gEMBQ4HJgBvAZtg7WhjoCXwYdAAOgJ7AzcANwOvldT7r1i4vQq0jTKfxL0NsFCbB8wGljay7V8EbolnvRH59YGvYQHeG3gS2L0C37bAFsBk3JcdgU+B5rivZ6zthv6DYDugAzAFaBfXwhvRdODNddSO44GzgK7AL4Hha/l5hwDnAGOB44DReF1WwobYslmK53+taAaMwvN2U2AX4NmGN3fdYAP8cgI+wkLnS0A/LF3fxoKlB7ACa1A3Y8HVnnLhBHAwcGZcLwPm4oVI1Nceazy740XdGMwE/gDsQCY81wcmAPcAP8L9WQnfAc6P6+VY6IM3gHZYQH0bm8+fZxyJ+xK8+ObFdWs8zhNxP81Yy+34I/BN4EA8XmsT2+DNdhjwOyygVodvAvfGdTcqC+4d8BpM8+pTYCTw1cgva0R7G4OdgYXAyw0p1CzSjbGA2groDkzCAqAfsDWeDJOBzXFnghdWJZwFDI7rB6Ncb6BPXKcJ2HyVkrVjKfALLFzXp4CaD1wS19X65H+w5gnwKFmfdMA7ZU/gJbwxfJ5xGtncuYusn9oBxwD/gvup3Vpux0zg2rhuVo1xDeDsSG+MdFNs0VTD4Nz1d6vw3Q6cFNfJ/XAP615ruhc4tqGFUsffhs2xwbhz9sG7xjV48U0D9sMScDAWLL9dTd1LC+lc4P24XlDCX4cX60arqbc5mb+pWZRTBd5m2JSqxT/VHO/SZWiJ+6XSRK3V75T6Iu1aC/CONhr3NVjTKsPG2B9SDc2Dp5omR9zvWAMfuO+qCd5a0R6/Qy1I/fRxpAvwGI8ExgBtgEEl5Tai+jgVUUd1X8+aFEz1VBaqBwNPkLlBPiB79zJsgTe7oyNfSZjtihWO2ZGvtE7K0JHaxws89yr15cCob06V8vWUzO80AJOBP0V6CXAumZ/kO8DXgQuwr2U8cD/wTAMaX8Q9rGz7HgcsAV7HA3NThXJXYFNzKfZR7IT9N2UC4lSsFU4J/usK98/D5uptwAHYvH0HHxhsETz1wEX4XWfiCXRxje/YULwXaccCvQM2g+diNf4dYEBJ+bNw37wNvIjHcWRJfT8n67+luB8SOmFBOQa4HNgXeBpvLCODZxTWYG4BXgG+EfR9sOb9SKQ9gj4g2jwDC5qnS9rUECyKNK991wMX4vk0i/Jx2jPa/DCeG4PwJrwMz7lafUxX4BPvibiv91gN/+bAn+O5LwFX5e5dG21OBz3PU10bShiG3/96rI1vR2bZJNwHPBXXJ2L/3Z011D0k2jsB9/UrJXUfjd0rj2Htfziee8uwy2jvHO8j+EAN4BS8jvLre2esKY/Dc/xDLNAMSUjaS9Jtks6WtETSSEmXSdpZ0suS/irpIknzJF0oabSkw6Nspd8gGaMK9JMkbZfLnxd8F0nqJOmQyL9UKHdX0B+UdICkSyQ9E7TZBd5Lg36upI6ShkX+mRzP5cowTtJhkh6I/EnB82rkvy6pnaQbIv9/hed1DfoLq+mTXYPvnpJ7v4p7Q0vqnSNpJ0k9c208IMd3TtB+JqmXpIGSpgZtixzf3UH7gaQOkn4c+RvifhtJ9wVthaQxko6S9HbQdpH0ZXmOSJ4LbaLsJpKuDfpPgzYw8ndK6iZpN3kOSVLnKv2U5s7vSu69XFJ+ctC+Ee24OfL5cfqapDeC/ma85xmSTpM0P+jfKzzrW0G/NEcbGrQJko6R1L3Ke3QP3icl1UnqF/kz4n5/eS1J0qmSjpC0TZX60u9FSb+P6+FR/icFnv0k3Rr37pF0oqTjcvfvjHvb52gnB22EpGaSDlWGzXN831c2B6bEOxwr6Yocf9fg3V/S7UG7M54xLO7tEfRHJLWVtLuk94O2m6S/C6jNJPWWdE3cvFDSb6KBl0q6PtcRY+RJ2qVKB+Yn2QOSWskTapug/XvwbB/5iwtlBwf91Mh/O/K3FPh2DvqcHG3PoJ1R4B0W9KNytF8HbXjkr4z8TpFP6JYrkwamZY7WUAH1cOTrIx0S9GcK/A8HvW2B/q6kxbn8e5IWFngOL7T9sMgfWeD7edB3y9HSgt8x8s9KWq5M2J0f948u1DVCXrhI2ih4xhZ4egf9Bq3aP8W585wsEI6Vx+0vsnDpkePdRBnywmJx0PLjtFXQligTrEgaEPT7C+0oE1DPSRpfpe353/uSXivQxsvjl/I3lrSz2q9ntH+XyH8hyk8s4f23uPfDkntlAmpE0M7N0c4OWlF4HxH0MQV6mk8n52jHB+2UAu+JQR+do6W1MELS3028d7GPoBc+6nwdmxUDsd/pOeyLOB2bfl1wOEIt2DvUxOdC3QOr/ACHRvqnQpkJke4X6b6RjizwPR9p2xzt4EifKvC+EOngHC35u/4S6SnYjk75/ePZs3JlpkfahsZjD2yGTcR+gRvwwcEuOZ6O2Dx6mVV9dvdif9mOkZ8T7dkvxzMGHyW/G/nvRVrsl8cjHZyjpf6cFOlXgVZkPoTrI/1hoa4Dcfwc2GyGVcd2CjYHDmT16ItN0NPwqXB/bG7Oy/EsJBunmTn6jEjzByhpvo8nMxVTHhykXIbkD3oCz5nta2j7EXgMzyzQN2Ll+ToEz/dqPqc8jsHvllwsU7E51xf3Tx7JDK7Vl/YL7G65JEdLp4P1Bd5UZ9HZntZO9xwtuWCKPrCb4nk/ytHSGHaGlZ2kz2Lb/FZsX47Fk20QcBD2MUzDAuwhasdDUbYdFoLTsSMTsglxFZ4wLbD/IDnbkgDpFum8Qt1lTr9tI70W+7U2xAsi1VUtME3Bm3A3Hohh+IRzQa4tnwVPAnthJ+ZT2Ha/qsDTJ9KtsF8stf8jfOIHngTj8IT6bbR3Pj45vRr7CBK2jvQOsriiZWQLuHOV9n5SyE+LuvfEC2MSXmgAIyLdLtLjsPBrGc/9BM+7T/GcSMG/ZRiFww7yeBjPg0Fkvo00TkfiObWQbIGUzZEiLY15pYX8LvAf+OuJX1Vpbx5pQ3i0QO9Dtsl1wYL/jzXWCRbs83H4wDZ4809CZH+sCDQW0+L3FbzBvEXmDyrOgUpIB0C1HMDMA36N5/gZWAak9bu0rJLpWAJ2xzFKz2Mn1gZ4t5+FHekNwZJI58dvON6JIFt0V2HtqiuW+svwbv1B3G9Voe4y53jivRJrB12i/R9hp2a1BVHE+XgHnB11fUzDTjYqIe3eT2Pn7n9hp27eUZtOHifjXXMzvIBa4PeYGyk4dmYGHuzeeEM5CB8CHBY8adc+D49jPRbeC7FGO6+B73AdFlBDsIA6nkzYQrbJ3IHHdyuyLxdm4z5ozFcI/43n6OlkAio/Tk/gsa50ItsYXIZDAG4CTsBC5w9V+Jtjy+F1MmsBMs3rz5HuFem91IYeeINsi8MHUn8mDXsoPixpLL6CFYp2kb5GdmBUKyppS2XojDfTflgjfInscEWwqoBahif6EXiQp+GAsDn4xCOdJH0W/DJ3nRbYdKzmTliVHcjMlGK4wKf4RfKCaiYWqq9is+6FRrYzBZveycrmT3+sNawpXIA111PwCdqrQU/RwS3ITJBqGIuDbJtj0/BGbEJfhnfVN/CJ4CQy0+2z4Fbg91h4Xog1tJNz91P75+J3epU1g4WRpnixffA43UVmVsKaHadp+Ch/Yyzwb8EL+IMK/KltRfM2nW6NijS5I56usR0nYW2vLFbuBay17tqA+oq4CwunbbFmBh7f/qydT7j+HwunIXgjA2uGA4m1XqbS3ox38v/F9u0S/BlJXxoWR1ELHoy0LI5jOPCTuE4a194Fns644z7K0dKuejCr4jRW1lKqvU/a7R4r0Nf0t0sLgZ/G9dk5+lS8g21LZi4ldMQmXPKDvUnWV5/ghZGi1tMOeEekZZ9PnE/mD6wVy7C50xMLw6msbKo8GmlZvfvi8I3GoGukr0e6c+F5CWXj1ND5m/hvj3QxXrBgDb0SUuR5Me7nVLzZ3h/5fbDWsILacDDeFMqQ4hIH52gN0WZ6YWvjbTLhBJkLoFiHKtCL96Gy6bxDpPmQpTRuKyoVnIYX+W3AfwLfwjb+hzTMPEoPSlpPWRDXrVj4HITV5y1xJ12M43CSw+xaPLDnYX8Q2P5Oztp2WPUH+83G44l0XdTXFWsnF5NNbMjMgLLJPDXSvKA7g2zB5+NwOlV5xzw6RFoMRr0onnco1qgS0juNxZ93tMdCejZ2gCdTsT0WUPlAwKRNjIv0cjyG5+DNpxM2u+7GGkjS0lrl3m2z1bxPOrRI45fHJOyP2hr73Ppi3+MPcBxcNcdtGo8kgLtFe/fCGyhkPrukqR2SK38m1cep2P+dcrx5/jReeUf7SNynh1L5k5Q5WHPMH3pcE++RYth64bVxR4U6ihiAzZ/RFe6nRX4C2bilgNf0Hvl4phR8m2LSZkSbN8eCk2j/CRWeVx9p2wI9PSt/iJTa0R4LzZ6RT5p82sR6Aj+Oawu4Go82kXS1HOdSC++5cVS4XNI7cpzJoRV4W8mxTUUU46y2kcMJ8jhL0mOSPpaPc/sEbztJj5fUeWDcr5OPlJdLWiZprhwXU2zb6EL5c5XFDkk+7u4rH/t+HL8JymJA8r/To8xS+Qh8vFYO1dhO0lvB83SOno6K83iqUPekeO5Dcf1p8O1f4Osl6ZWS+nZVdmQ9Jd5jYbTz6pJ3yf8mRh3tK9y/quR5P6tS30XR/o8lfShplhxaMDvKLpHDTvJlRhXqP0s+Wk9IMVgrlI3TuCi7vTw/P4rfZDkG6Mgouzx+dwT/fpIW5eq+sMJ7DJDH+j55fi+SQ2DS/VT/gCp9kX7bR9sXyXFkpxXuD5fncJo/KbShuaQPcm29Xp77D0bblgb9+OAfqpXxohyXOCPyVwbfBZFfEel1QU99XuyzLnKfJ6T4tm0lLcjR58phBinm8aE6qWatd2+svRxVA293vBNPC6m5JfYzzV1Nmd2wXf8IlT/Q3B37Wh7Apk13Vj5ezqMXPiJ/G5sA6SSiLupYiCO4ewatzE/SN9r1MpmpuSfeDW/FO+5W8X6tsdn5Gqt+hLkl3omn4j5J//ZQfM9NsSY0HfvYwJrZ7lgTfJLsFChhk3iXnljjewtrwJWOrvtgh+hUVg47aIlPwZLPsRd2wFb7Wr411oYWVeHpgPusDp/CVdPEe0Q7puPduR73QzPsyH+/QrnVjVOLqHsa7q9OeAdvg/ttOtasumATp1M8exrWKlrj8doM+6Jm4TEVlftnC/x/aXOwCZYf65tx1HgrVh9i0Dae+0609T0y/y14znWOd6iL9r6BNZfWwJfjGS9FG/rgtTgXj/eHufraYb9zS+yTWoDn3T7Yl/kC7scNsdbVDa+B14OvDav2GUHvh11Gr5BpVS2wbOmGXT4z8fgMBt5siIDaGMfZLMZ+kctY+195N6EJ/yyow+vnGSxgVuBT8l2qFfq8oyEfQy7GJxdzsT9oTTvMm9CEf2YMxRrJ/lhDaU5tf6vyuUZDNCio/s8BTWhCEyqjHz7+f4Lsn0LuW68t+gfA3wDOy8qrzHNSRQAAAABJRU5ErkJggg==', 15, chartHeight-28, 296, 20).attr({ zIndex: 3 }).add();
							this.renderer.rect(1, chartHeight-34, chartWidth-3, 32, 0).attr({ 'stroke-width': 0, fill: '#000000', zIndex: 2 }).add(); 
							
							
							this.update({ credits: { text: 'Exported on: ' + Highcharts.dateFormat('%A, %B %e, %Y', Date.now()) } });
						}
					}
				}
			}
		}
	});
	/* set branding in browser version; check to see whether responsive condition exists to adjust sizing */
	if (chartObject.hasOwnProperty('currentResponsive')) {
		chartObject.renderer.text(chartSourceLine,15,chartHeight-chartSourceLineOffset,true).css({ color: '#756A5B', font: '9px IBM Plex Sans, Arial, sans-serif', marginRight: '15px', wordWrap: 'break-word', whiteSpace: 'normal', lineHeight: 'normal' }).add();
		/* hide label for the export menu at small sizes; needs to be declared here vs. the general responsive rules */
		chartObject.update({
			exporting: {
				buttons: {
					contextButton: { text: null }
				}
			}
		});
	} else {
		chartObject.renderer.text(chartSourceLine,15,chartHeight-chartSourceLineOffset,true).css({ color: '#756A5B', font: '11px IBM Plex Sans, Arial, sans-serif', marginRight: '15px', wordWrap: 'break-word', whiteSpace: 'normal', lineHeight: '140%' }).add();
	} 
	chartObject.renderer.image('https://www.frbatlanta.org/-/media/images/logos/atlantafed-highcharts-logo.png', 15, chartHeight-28, 296, 20).attr({ zIndex: 3 }).add();
	chartObject.renderer.rect(1, chartHeight-36, chartWidth-3, 34, 0).attr({ 'stroke-width': 0, fill: '#000000', zIndex: 2 }).add();
}
plotx1 = 269638
plotx2 = 161661
plotx3 = 159536
plotx4 = 6886
plotx5 = 0.000710366255733811
plotx6 = 0.98287132719621
var plot1 = [[1980,22580],[1981,-4000],[1982,-177000],[1983,288250],[1984,323080],[1985,208500],[1986,158330],[1987,262670],[1988,269750],[1989,161500],[1990,27670],[1991,-69830],[1992,97500],[1993,235330],[1994,321000],[1995,179080],[1996,235000],[1997,283830],[1998,253920],[1999,265250],[2000,161420],[2001,-144500],[2002,-42920],[2003,10420],[2004,169920],[2005,210580],[2006,174250],[2007,95420],[2008,-295670],[2009,-420080],[2010,85750],[2011,172170],[2012,181000],[2013,191080],[2014,249920],[2015,226420],[2016,193920],[2017,175920],[2018,190250],[2019,165670],[2020,-772830],[2021,603750],[2022,377330],[2023,251080],[2024,186000]];
var plot2 = [[1980,1],[1981,1],[1982,1],[1983,0],[1984,0],[1985,0],[1986,0],[1987,0],[1988,0],[1989,0],[1990,1],[1991,1],[1992,0],[1993,0],[1994,0],[1995,0],[1996,0],[1997,0],[1998,0],[1999,0],[2000,0],[2001,1],[2002,0],[2003,0],[2004,0],[2005,0],[2006,0],[2007,0],[2008,1],[2009,1],[2010,0],[2011,0],[2012,0],[2013,0],[2014,0],[2015,0],[2016,0],[2017,0],[2018,0],[2019,0],[2020,1],[2021,0],[2022,0],[2023,0],[2024,0]];
var plot3 = [[1980,ces_cps_ratio.toPrecision(3)],[1981,ces_cps_ratio.toPrecision(3)],[1982,ces_cps_ratio.toPrecision(3)],[1983,ces_cps_ratio.toPrecision(3)],[1984,ces_cps_ratio.toPrecision(3)],[1985,ces_cps_ratio.toPrecision(3)],[1986,ces_cps_ratio.toPrecision(3)],[1987,ces_cps_ratio.toPrecision(3)],[1988,ces_cps_ratio.toPrecision(3)],[1989,ces_cps_ratio.toPrecision(3)],[1990,ces_cps_ratio.toPrecision(3)],[1991,ces_cps_ratio.toPrecision(3)],[1992,ces_cps_ratio.toPrecision(3)],[1993,ces_cps_ratio.toPrecision(3)],[1994,ces_cps_ratio.toPrecision(3)],[1995,ces_cps_ratio.toPrecision(3)],[1996,ces_cps_ratio.toPrecision(3)],[1997,ces_cps_ratio.toPrecision(3)],[1998,ces_cps_ratio.toPrecision(3)],[1999,ces_cps_ratio.toPrecision(3)],[2000,ces_cps_ratio.toPrecision(3)],[2001,ces_cps_ratio.toPrecision(3)],[2002,ces_cps_ratio.toPrecision(3)],[2003,ces_cps_ratio.toPrecision(3)],[2004,ces_cps_ratio.toPrecision(3)],[2005,ces_cps_ratio.toPrecision(3)],[2006,ces_cps_ratio.toPrecision(3)],[2007,ces_cps_ratio.toPrecision(3)],[2008,ces_cps_ratio.toPrecision(3)],[2009,ces_cps_ratio.toPrecision(3)],[2010,ces_cps_ratio.toPrecision(3)],[2011,ces_cps_ratio.toPrecision(3)],[2012,ces_cps_ratio.toPrecision(3)],[2013,ces_cps_ratio.toPrecision(3)],[2014,ces_cps_ratio.toPrecision(3)],[2015,ces_cps_ratio.toPrecision(3)],[2016,ces_cps_ratio.toPrecision(3)],[2017,ces_cps_ratio.toPrecision(3)],[2018,ces_cps_ratio.toPrecision(3)],[2019,ces_cps_ratio.toPrecision(3)],[2020,ces_cps_ratio.toPrecision(3)],[2021,ces_cps_ratio.toPrecision(3)],[2022,ces_cps_ratio.toPrecision(3)],[2023,ces_cps_ratio.toPrecision(3)],[2024,ces_cps_ratio.toPrecision(3)]];
var plot4 = [['05/1/1990 12:00AM',5.4],['06/1/1990 12:00AM',5.2],['07/1/1990 12:00AM',5.5],['08/1/1990 12:00AM',5.7],['09/1/1990 12:00AM',5.9],['10/1/1990 12:00AM',5.9],['11/1/1990 12:00AM',6.2],['12/1/1990 12:00AM',6.3],['01/1/1991 12:00AM',6.4],['02/1/1991 12:00AM',6.6],['03/1/1991 12:00AM',6.8],['04/1/1991 12:00AM',6.7],['05/1/1991 12:00AM',6.9],['06/1/1991 12:00AM',6.9],['07/1/1991 12:00AM',6.8],['08/1/1991 12:00AM',6.9],['09/1/1991 12:00AM',6.9],['10/1/1991 12:00AM',7],['11/1/1991 12:00AM',7],['12/1/1991 12:00AM',7.3],['01/1/1992 12:00AM',7.3],['02/1/1992 12:00AM',7.4],['03/1/1992 12:00AM',7.4],['04/1/1992 12:00AM',7.4],['05/1/1992 12:00AM',7.6],['06/1/1992 12:00AM',7.8],['07/1/1992 12:00AM',7.7],['08/1/1992 12:00AM',7.6],['09/1/1992 12:00AM',7.6],['10/1/1992 12:00AM',7.3],['11/1/1992 12:00AM',7.4],['12/1/1992 12:00AM',7.4],['01/1/1993 12:00AM',7.3],['02/1/1993 12:00AM',7.1],['03/1/1993 12:00AM',7],['04/1/1993 12:00AM',7.1],['05/1/1993 12:00AM',7.1],['06/1/1993 12:00AM',7],['07/1/1993 12:00AM',6.9],['08/1/1993 12:00AM',6.8],['09/1/1993 12:00AM',6.7],['10/1/1993 12:00AM',6.8],['11/1/1993 12:00AM',6.6],['12/1/1993 12:00AM',6.5],['01/1/1994 12:00AM',6.6],['02/1/1994 12:00AM',6.6],['03/1/1994 12:00AM',6.5],['04/1/1994 12:00AM',6.4],['05/1/1994 12:00AM',6.1],['06/1/1994 12:00AM',6.1],['07/1/1994 12:00AM',6.1],['08/1/1994 12:00AM',6],['09/1/1994 12:00AM',5.9],['10/1/1994 12:00AM',5.8],['11/1/1994 12:00AM',5.6],['12/1/1994 12:00AM',5.5],['01/1/1995 12:00AM',5.6],['02/1/1995 12:00AM',5.4],['03/1/1995 12:00AM',5.4],['04/1/1995 12:00AM',5.8],['05/1/1995 12:00AM',5.6],['06/1/1995 12:00AM',5.6],['07/1/1995 12:00AM',5.7],['08/1/1995 12:00AM',5.7],['09/1/1995 12:00AM',5.6],['10/1/1995 12:00AM',5.5],['11/1/1995 12:00AM',5.6],['12/1/1995 12:00AM',5.6],['01/1/1996 12:00AM',5.6],['02/1/1996 12:00AM',5.5],['03/1/1996 12:00AM',5.5],['04/1/1996 12:00AM',5.6],['05/1/1996 12:00AM',5.6],['06/1/1996 12:00AM',5.3],['07/1/1996 12:00AM',5.5],['08/1/1996 12:00AM',5.1],['09/1/1996 12:00AM',5.2],['10/1/1996 12:00AM',5.2],['11/1/1996 12:00AM',5.4],['12/1/1996 12:00AM',5.4],['01/1/1997 12:00AM',5.3],['02/1/1997 12:00AM',5.2],['03/1/1997 12:00AM',5.2],['04/1/1997 12:00AM',5.1],['05/1/1997 12:00AM',4.9],['06/1/1997 12:00AM',5],['07/1/1997 12:00AM',4.9],['08/1/1997 12:00AM',4.8],['09/1/1997 12:00AM',4.9],['10/1/1997 12:00AM',4.7],['11/1/1997 12:00AM',4.6],['12/1/1997 12:00AM',4.7],['01/1/1998 12:00AM',4.6],['02/1/1998 12:00AM',4.6],['03/1/1998 12:00AM',4.7],['04/1/1998 12:00AM',4.3],['05/1/1998 12:00AM',4.4],['06/1/1998 12:00AM',4.5],['07/1/1998 12:00AM',4.5],['08/1/1998 12:00AM',4.5],['09/1/1998 12:00AM',4.6],['10/1/1998 12:00AM',4.5],['11/1/1998 12:00AM',4.4],['12/1/1998 12:00AM',4.4],['01/1/1999 12:00AM',4.3],['02/1/1999 12:00AM',4.4],['03/1/1999 12:00AM',4.2],['04/1/1999 12:00AM',4.3],['05/1/1999 12:00AM',4.2],['06/1/1999 12:00AM',4.3],['07/1/1999 12:00AM',4.3],['08/1/1999 12:00AM',4.2],['09/1/1999 12:00AM',4.2],['10/1/1999 12:00AM',4.1],['11/1/1999 12:00AM',4.1],['12/1/1999 12:00AM',4],['01/1/2000 12:00AM',4],['02/1/2000 12:00AM',4.1],['03/1/2000 12:00AM',4],['04/1/2000 12:00AM',3.8],['05/1/2000 12:00AM',4],['06/1/2000 12:00AM',4],['07/1/2000 12:00AM',4],['08/1/2000 12:00AM',4.1],['09/1/2000 12:00AM',3.9],['10/1/2000 12:00AM',3.9],['11/1/2000 12:00AM',3.9],['12/1/2000 12:00AM',3.9],['01/1/2001 12:00AM',4.2],['02/1/2001 12:00AM',4.2],['03/1/2001 12:00AM',4.3],['04/1/2001 12:00AM',4.4],['05/1/2001 12:00AM',4.3],['06/1/2001 12:00AM',4.5],['07/1/2001 12:00AM',4.6],['08/1/2001 12:00AM',4.9],['09/1/2001 12:00AM',5],['10/1/2001 12:00AM',5.3],['11/1/2001 12:00AM',5.5],['12/1/2001 12:00AM',5.7],['01/1/2002 12:00AM',5.7],['02/1/2002 12:00AM',5.7],['03/1/2002 12:00AM',5.7],['04/1/2002 12:00AM',5.9],['05/1/2002 12:00AM',5.8],['06/1/2002 12:00AM',5.8],['07/1/2002 12:00AM',5.8],['08/1/2002 12:00AM',5.7],['09/1/2002 12:00AM',5.7],['10/1/2002 12:00AM',5.7],['11/1/2002 12:00AM',5.9],['12/1/2002 12:00AM',6],['01/1/2003 12:00AM',5.8],['02/1/2003 12:00AM',5.9],['03/1/2003 12:00AM',5.9],['04/1/2003 12:00AM',6],['05/1/2003 12:00AM',6.1],['06/1/2003 12:00AM',6.3],['07/1/2003 12:00AM',6.2],['08/1/2003 12:00AM',6.1],['09/1/2003 12:00AM',6.1],['10/1/2003 12:00AM',6],['11/1/2003 12:00AM',5.8],['12/1/2003 12:00AM',5.7],['01/1/2004 12:00AM',5.7],['02/1/2004 12:00AM',5.6],['03/1/2004 12:00AM',5.8],['04/1/2004 12:00AM',5.6],['05/1/2004 12:00AM',5.6],['06/1/2004 12:00AM',5.6],['07/1/2004 12:00AM',5.5],['08/1/2004 12:00AM',5.4],['09/1/2004 12:00AM',5.4],['10/1/2004 12:00AM',5.5],['11/1/2004 12:00AM',5.4],['12/1/2004 12:00AM',5.4],['01/1/2005 12:00AM',5.3],['02/1/2005 12:00AM',5.4],['03/1/2005 12:00AM',5.2],['04/1/2005 12:00AM',5.2],['05/1/2005 12:00AM',5.1],['06/1/2005 12:00AM',5],['07/1/2005 12:00AM',5],['08/1/2005 12:00AM',4.9],['09/1/2005 12:00AM',5],['10/1/2005 12:00AM',5],['11/1/2005 12:00AM',5],['12/1/2005 12:00AM',4.9],['01/1/2006 12:00AM',4.7],['02/1/2006 12:00AM',4.8],['03/1/2006 12:00AM',4.7],['04/1/2006 12:00AM',4.7],['05/1/2006 12:00AM',4.6],['06/1/2006 12:00AM',4.6],['07/1/2006 12:00AM',4.7],['08/1/2006 12:00AM',4.7],['09/1/2006 12:00AM',4.5],['10/1/2006 12:00AM',4.4],['11/1/2006 12:00AM',4.5],['12/1/2006 12:00AM',4.4],['01/1/2007 12:00AM',4.6],['02/1/2007 12:00AM',4.5],['03/1/2007 12:00AM',4.4],['04/1/2007 12:00AM',4.5],['05/1/2007 12:00AM',4.4],['06/1/2007 12:00AM',4.6],['07/1/2007 12:00AM',4.7],['08/1/2007 12:00AM',4.6],['09/1/2007 12:00AM',4.7],['10/1/2007 12:00AM',4.7],['11/1/2007 12:00AM',4.7],['12/1/2007 12:00AM',5],['01/1/2008 12:00AM',5],['02/1/2008 12:00AM',4.9],['03/1/2008 12:00AM',5.1],['04/1/2008 12:00AM',5],['05/1/2008 12:00AM',5.4],['06/1/2008 12:00AM',5.6],['07/1/2008 12:00AM',5.8],['08/1/2008 12:00AM',6.1],['09/1/2008 12:00AM',6.1],['10/1/2008 12:00AM',6.5],['11/1/2008 12:00AM',6.8],['12/1/2008 12:00AM',7.3],['01/1/2009 12:00AM',7.8],['02/1/2009 12:00AM',8.3],['03/1/2009 12:00AM',8.7],['04/1/2009 12:00AM',9],['05/1/2009 12:00AM',9.4],['06/1/2009 12:00AM',9.5],['07/1/2009 12:00AM',9.5],['08/1/2009 12:00AM',9.6],['09/1/2009 12:00AM',9.8],['10/1/2009 12:00AM',10],['11/1/2009 12:00AM',9.9],['12/1/2009 12:00AM',9.9],['01/1/2010 12:00AM',9.8],['02/1/2010 12:00AM',9.8],['03/1/2010 12:00AM',9.9],['04/1/2010 12:00AM',9.9],['05/1/2010 12:00AM',9.6],['06/1/2010 12:00AM',9.4],['07/1/2010 12:00AM',9.4],['08/1/2010 12:00AM',9.5],['09/1/2010 12:00AM',9.5],['10/1/2010 12:00AM',9.4],['11/1/2010 12:00AM',9.8],['12/1/2010 12:00AM',9.3],['01/1/2011 12:00AM',9.1],['02/1/2011 12:00AM',9],['03/1/2011 12:00AM',9],['04/1/2011 12:00AM',9.1],['05/1/2011 12:00AM',9],['06/1/2011 12:00AM',9.1],['07/1/2011 12:00AM',9],['08/1/2011 12:00AM',9],['09/1/2011 12:00AM',9],['10/1/2011 12:00AM',8.8],['11/1/2011 12:00AM',8.6],['12/1/2011 12:00AM',8.5],['01/1/2012 12:00AM',8.3],['02/1/2012 12:00AM',8.3],['03/1/2012 12:00AM',8.2],['04/1/2012 12:00AM',8.2],['05/1/2012 12:00AM',8.2],['06/1/2012 12:00AM',8.2],['07/1/2012 12:00AM',8.2],['08/1/2012 12:00AM',8.1],['09/1/2012 12:00AM',7.8],['10/1/2012 12:00AM',7.8],['11/1/2012 12:00AM',7.7],['12/1/2012 12:00AM',7.9],['01/1/2013 12:00AM',8],['02/1/2013 12:00AM',7.7],['03/1/2013 12:00AM',7.5],['04/1/2013 12:00AM',7.6],['05/1/2013 12:00AM',7.5],['06/1/2013 12:00AM',7.5],['07/1/2013 12:00AM',7.3],['08/1/2013 12:00AM',7.2],['09/1/2013 12:00AM',7.2],['10/1/2013 12:00AM',7.2],['11/1/2013 12:00AM',6.9],['12/1/2013 12:00AM',6.7],['01/1/2014 12:00AM',6.6],['02/1/2014 12:00AM',6.7],['03/1/2014 12:00AM',6.7],['04/1/2014 12:00AM',6.2],['05/1/2014 12:00AM',6.3],['06/1/2014 12:00AM',6.1],['07/1/2014 12:00AM',6.2],['08/1/2014 12:00AM',6.1],['09/1/2014 12:00AM',5.9],['10/1/2014 12:00AM',5.7],['11/1/2014 12:00AM',5.8],['12/1/2014 12:00AM',5.6],['01/1/2015 12:00AM',5.7],['02/1/2015 12:00AM',5.5],['03/1/2015 12:00AM',5.4],['04/1/2015 12:00AM',5.4],['05/1/2015 12:00AM',5.6],['06/1/2015 12:00AM',5.3],['07/1/2015 12:00AM',5.2],['08/1/2015 12:00AM',5.1],['09/1/2015 12:00AM',5],['10/1/2015 12:00AM',5],['11/1/2015 12:00AM',5.1],['12/1/2015 12:00AM',5],['01/1/2016 12:00AM',4.8],['02/1/2016 12:00AM',4.9],['03/1/2016 12:00AM',5],['04/1/2016 12:00AM',5.1],['05/1/2016 12:00AM',4.8],['06/1/2016 12:00AM',4.9],['07/1/2016 12:00AM',4.8],['08/1/2016 12:00AM',4.9],['09/1/2016 12:00AM',5],['10/1/2016 12:00AM',4.9],['11/1/2016 12:00AM',4.7],['12/1/2016 12:00AM',4.7],['01/1/2017 12:00AM',4.7],['02/1/2017 12:00AM',4.6],['03/1/2017 12:00AM',4.4],['04/1/2017 12:00AM',4.4],['05/1/2017 12:00AM',4.4],['06/1/2017 12:00AM',4.3],['07/1/2017 12:00AM',4.3],['08/1/2017 12:00AM',4.4],['09/1/2017 12:00AM',4.3],['10/1/2017 12:00AM',4.2],['11/1/2017 12:00AM',4.2],['12/1/2017 12:00AM',4.1],['01/1/2018 12:00AM',4],['02/1/2018 12:00AM',4.1],['03/1/2018 12:00AM',4],['04/1/2018 12:00AM',4],['05/1/2018 12:00AM',3.8],['06/1/2018 12:00AM',4],['07/1/2018 12:00AM',3.8],['08/1/2018 12:00AM',3.8],['09/1/2018 12:00AM',3.7],['10/1/2018 12:00AM',3.8],['11/1/2018 12:00AM',3.8],['12/1/2018 12:00AM',3.9],['01/1/2019 12:00AM',4],['02/1/2019 12:00AM',3.8],['03/1/2019 12:00AM',3.8],['04/1/2019 12:00AM',3.7],['05/1/2019 12:00AM',3.6],['06/1/2019 12:00AM',3.6],['07/1/2019 12:00AM',3.7],['08/1/2019 12:00AM',3.6],['09/1/2019 12:00AM',3.5],['10/1/2019 12:00AM',3.6],['11/1/2019 12:00AM',3.6],['12/1/2019 12:00AM',3.6],['01/1/2020 12:00AM',3.6],['02/1/2020 12:00AM',3.5],['03/1/2020 12:00AM',4.4],['04/1/2020 12:00AM',14.8],['05/1/2020 12:00AM',13.2],['06/1/2020 12:00AM',11],['07/1/2020 12:00AM',10.2],['08/1/2020 12:00AM',8.4],['09/1/2020 12:00AM',7.8],['10/1/2020 12:00AM',6.9],['11/1/2020 12:00AM',6.7],['12/1/2020 12:00AM',6.7],['01/1/2021 12:00AM',6.4],['02/1/2021 12:00AM',6.2],['03/1/2021 12:00AM',6.1],['04/1/2021 12:00AM',6.1],['05/1/2021 12:00AM',5.8],['06/1/2021 12:00AM',5.9],['07/1/2021 12:00AM',5.4],['08/1/2021 12:00AM',5.1],['09/1/2021 12:00AM',4.7],['10/1/2021 12:00AM',4.5],['11/1/2021 12:00AM',4.2],['12/1/2021 12:00AM',3.9],['01/1/2022 12:00AM',4],['02/1/2022 12:00AM',3.8],['03/1/2022 12:00AM',3.7],['04/1/2022 12:00AM',3.7],['05/1/2022 12:00AM',3.6],['06/1/2022 12:00AM',3.6],['07/1/2022 12:00AM',3.5],['08/1/2022 12:00AM',3.6],['09/1/2022 12:00AM',3.5],['10/1/2022 12:00AM',3.6],['11/1/2022 12:00AM',3.6],['12/1/2022 12:00AM',3.5],['01/1/2023 12:00AM',3.5],['02/1/2023 12:00AM',3.6],['03/1/2023 12:00AM',3.5],['04/1/2023 12:00AM',3.4],['05/1/2023 12:00AM',3.6],['06/1/2023 12:00AM',3.6],['07/1/2023 12:00AM',3.5],['08/1/2023 12:00AM',3.7],['09/1/2023 12:00AM',3.8],['10/1/2023 12:00AM',3.9],['11/1/2023 12:00AM',3.7],['12/1/2023 12:00AM',3.8],['01/1/2024 12:00AM',3.7],['02/1/2024 12:00AM',3.9],['03/1/2024 12:00AM',3.9],['04/1/2024 12:00AM',3.9],['05/1/2024 12:00AM',4],['06/1/2024 12:00AM',4.1],['07/1/2024 12:00AM',4.2],['08/1/2024 12:00AM',4.2],['09/1/2024 12:00AM',4.1],['10/1/2024 12:00AM',4.1],['11/1/2024 12:00AM',4.2],['12/1/2024 12:00AM',4.1]];
var plot5 = [['05/1/1990 12:00AM',66.6],['06/1/1990 12:00AM',66.4],['07/1/1990 12:00AM',66.5],['08/1/1990 12:00AM',66.5],['09/1/1990 12:00AM',66.4],['10/1/1990 12:00AM',66.4],['11/1/1990 12:00AM',66.4],['12/1/1990 12:00AM',66.4],['01/1/1991 12:00AM',66.2],['02/1/1991 12:00AM',66.2],['03/1/1991 12:00AM',66.3],['04/1/1991 12:00AM',66.4],['05/1/1991 12:00AM',66.2],['06/1/1991 12:00AM',66.2],['07/1/1991 12:00AM',66.1],['08/1/1991 12:00AM',66],['09/1/1991 12:00AM',66.2],['10/1/1991 12:00AM',66.1],['11/1/1991 12:00AM',66.1],['12/1/1991 12:00AM',66],['01/1/1992 12:00AM',66.3],['02/1/1992 12:00AM',66.2],['03/1/1992 12:00AM',66.4],['04/1/1992 12:00AM',66.5],['05/1/1992 12:00AM',66.6],['06/1/1992 12:00AM',66.7],['07/1/1992 12:00AM',66.7],['08/1/1992 12:00AM',66.6],['09/1/1992 12:00AM',66.5],['10/1/1992 12:00AM',66.2],['11/1/1992 12:00AM',66.3],['12/1/1992 12:00AM',66.3],['01/1/1993 12:00AM',66.2],['02/1/1993 12:00AM',66.2],['03/1/1993 12:00AM',66.2],['04/1/1993 12:00AM',66.1],['05/1/1993 12:00AM',66.4],['06/1/1993 12:00AM',66.5],['07/1/1993 12:00AM',66.4],['08/1/1993 12:00AM',66.4],['09/1/1993 12:00AM',66.2],['10/1/1993 12:00AM',66.3],['11/1/1993 12:00AM',66.3],['12/1/1993 12:00AM',66.4],['01/1/1994 12:00AM',66.6],['02/1/1994 12:00AM',66.6],['03/1/1994 12:00AM',66.5],['04/1/1994 12:00AM',66.5],['05/1/1994 12:00AM',66.6],['06/1/1994 12:00AM',66.4],['07/1/1994 12:00AM',66.4],['08/1/1994 12:00AM',66.6],['09/1/1994 12:00AM',66.6],['10/1/1994 12:00AM',66.7],['11/1/1994 12:00AM',66.7],['12/1/1994 12:00AM',66.7],['01/1/1995 12:00AM',66.8],['02/1/1995 12:00AM',66.8],['03/1/1995 12:00AM',66.7],['04/1/1995 12:00AM',66.9],['05/1/1995 12:00AM',66.5],['06/1/1995 12:00AM',66.5],['07/1/1995 12:00AM',66.6],['08/1/1995 12:00AM',66.6],['09/1/1995 12:00AM',66.6],['10/1/1995 12:00AM',66.6],['11/1/1995 12:00AM',66.5],['12/1/1995 12:00AM',66.4],['01/1/1996 12:00AM',66.4],['02/1/1996 12:00AM',66.6],['03/1/1996 12:00AM',66.6],['04/1/1996 12:00AM',66.7],['05/1/1996 12:00AM',66.7],['06/1/1996 12:00AM',66.7],['07/1/1996 12:00AM',66.9],['08/1/1996 12:00AM',66.7],['09/1/1996 12:00AM',66.9],['10/1/1996 12:00AM',67],['11/1/1996 12:00AM',67],['12/1/1996 12:00AM',67],['01/1/1997 12:00AM',67],['02/1/1997 12:00AM',66.9],['03/1/1997 12:00AM',67.1],['04/1/1997 12:00AM',67.1],['05/1/1997 12:00AM',67.1],['06/1/1997 12:00AM',67.1],['07/1/1997 12:00AM',67.2],['08/1/1997 12:00AM',67.2],['09/1/1997 12:00AM',67.1],['10/1/1997 12:00AM',67.1],['11/1/1997 12:00AM',67.2],['12/1/1997 12:00AM',67.2],['01/1/1998 12:00AM',67.1],['02/1/1998 12:00AM',67.1],['03/1/1998 12:00AM',67.1],['04/1/1998 12:00AM',67],['05/1/1998 12:00AM',67],['06/1/1998 12:00AM',67],['07/1/1998 12:00AM',67],['08/1/1998 12:00AM',67],['09/1/1998 12:00AM',67.2],['10/1/1998 12:00AM',67.2],['11/1/1998 12:00AM',67.1],['12/1/1998 12:00AM',67.2],['01/1/1999 12:00AM',67.2],['02/1/1999 12:00AM',67.2],['03/1/1999 12:00AM',67],['04/1/1999 12:00AM',67.1],['05/1/1999 12:00AM',67.1],['06/1/1999 12:00AM',67.1],['07/1/1999 12:00AM',67.1],['08/1/1999 12:00AM',67],['09/1/1999 12:00AM',67],['10/1/1999 12:00AM',67],['11/1/1999 12:00AM',67.1],['12/1/1999 12:00AM',67.1],['01/1/2000 12:00AM',67.3],['02/1/2000 12:00AM',67.3],['03/1/2000 12:00AM',67.3],['04/1/2000 12:00AM',67.3],['05/1/2000 12:00AM',67.1],['06/1/2000 12:00AM',67.1],['07/1/2000 12:00AM',66.9],['08/1/2000 12:00AM',66.9],['09/1/2000 12:00AM',66.9],['10/1/2000 12:00AM',66.8],['11/1/2000 12:00AM',66.9],['12/1/2000 12:00AM',67],['01/1/2001 12:00AM',67.2],['02/1/2001 12:00AM',67.1],['03/1/2001 12:00AM',67.2],['04/1/2001 12:00AM',66.9],['05/1/2001 12:00AM',66.7],['06/1/2001 12:00AM',66.7],['07/1/2001 12:00AM',66.8],['08/1/2001 12:00AM',66.5],['09/1/2001 12:00AM',66.8],['10/1/2001 12:00AM',66.7],['11/1/2001 12:00AM',66.7],['12/1/2001 12:00AM',66.7],['01/1/2002 12:00AM',66.5],['02/1/2002 12:00AM',66.8],['03/1/2002 12:00AM',66.6],['04/1/2002 12:00AM',66.7],['05/1/2002 12:00AM',66.7],['06/1/2002 12:00AM',66.6],['07/1/2002 12:00AM',66.5],['08/1/2002 12:00AM',66.6],['09/1/2002 12:00AM',66.7],['10/1/2002 12:00AM',66.6],['11/1/2002 12:00AM',66.4],['12/1/2002 12:00AM',66.3],['01/1/2003 12:00AM',66.4],['02/1/2003 12:00AM',66.4],['03/1/2003 12:00AM',66.3],['04/1/2003 12:00AM',66.4],['05/1/2003 12:00AM',66.4],['06/1/2003 12:00AM',66.5],['07/1/2003 12:00AM',66.2],['08/1/2003 12:00AM',66.1],['09/1/2003 12:00AM',66.1],['10/1/2003 12:00AM',66.1],['11/1/2003 12:00AM',66.1],['12/1/2003 12:00AM',65.9],['01/1/2004 12:00AM',66.1],['02/1/2004 12:00AM',66],['03/1/2004 12:00AM',66],['04/1/2004 12:00AM',65.9],['05/1/2004 12:00AM',66],['06/1/2004 12:00AM',66.1],['07/1/2004 12:00AM',66.1],['08/1/2004 12:00AM',66],['09/1/2004 12:00AM',65.8],['10/1/2004 12:00AM',65.9],['11/1/2004 12:00AM',66],['12/1/2004 12:00AM',65.9],['01/1/2005 12:00AM',65.8],['02/1/2005 12:00AM',65.9],['03/1/2005 12:00AM',65.9],['04/1/2005 12:00AM',66.1],['05/1/2005 12:00AM',66.1],['06/1/2005 12:00AM',66.1],['07/1/2005 12:00AM',66.1],['08/1/2005 12:00AM',66.2],['09/1/2005 12:00AM',66.1],['10/1/2005 12:00AM',66.1],['11/1/2005 12:00AM',66],['12/1/2005 12:00AM',66],['01/1/2006 12:00AM',66],['02/1/2006 12:00AM',66.1],['03/1/2006 12:00AM',66.2],['04/1/2006 12:00AM',66.1],['05/1/2006 12:00AM',66.1],['06/1/2006 12:00AM',66.2],['07/1/2006 12:00AM',66.1],['08/1/2006 12:00AM',66.2],['09/1/2006 12:00AM',66.1],['10/1/2006 12:00AM',66.2],['11/1/2006 12:00AM',66.3],['12/1/2006 12:00AM',66.4],['01/1/2007 12:00AM',66.4],['02/1/2007 12:00AM',66.3],['03/1/2007 12:00AM',66.2],['04/1/2007 12:00AM',65.9],['05/1/2007 12:00AM',66],['06/1/2007 12:00AM',66],['07/1/2007 12:00AM',66],['08/1/2007 12:00AM',65.8],['09/1/2007 12:00AM',66],['10/1/2007 12:00AM',65.8],['11/1/2007 12:00AM',66],['12/1/2007 12:00AM',66],['01/1/2008 12:00AM',66.2],['02/1/2008 12:00AM',66],['03/1/2008 12:00AM',66.1],['04/1/2008 12:00AM',65.9],['05/1/2008 12:00AM',66.1],['06/1/2008 12:00AM',66.1],['07/1/2008 12:00AM',66.1],['08/1/2008 12:00AM',66.1],['09/1/2008 12:00AM',66],['10/1/2008 12:00AM',66],['11/1/2008 12:00AM',65.9],['12/1/2008 12:00AM',65.8],['01/1/2009 12:00AM',65.7],['02/1/2009 12:00AM',65.8],['03/1/2009 12:00AM',65.6],['04/1/2009 12:00AM',65.7],['05/1/2009 12:00AM',65.7],['06/1/2009 12:00AM',65.7],['07/1/2009 12:00AM',65.5],['08/1/2009 12:00AM',65.4],['09/1/2009 12:00AM',65.1],['10/1/2009 12:00AM',65],['11/1/2009 12:00AM',65],['12/1/2009 12:00AM',64.6],['01/1/2010 12:00AM',64.8],['02/1/2010 12:00AM',64.9],['03/1/2010 12:00AM',64.9],['04/1/2010 12:00AM',65.2],['05/1/2010 12:00AM',64.9],['06/1/2010 12:00AM',64.6],['07/1/2010 12:00AM',64.6],['08/1/2010 12:00AM',64.7],['09/1/2010 12:00AM',64.6],['10/1/2010 12:00AM',64.4],['11/1/2010 12:00AM',64.6],['12/1/2010 12:00AM',64.3],['01/1/2011 12:00AM',64.2],['02/1/2011 12:00AM',64.1],['03/1/2011 12:00AM',64.2],['04/1/2011 12:00AM',64.2],['05/1/2011 12:00AM',64.1],['06/1/2011 12:00AM',64],['07/1/2011 12:00AM',64],['08/1/2011 12:00AM',64.1],['09/1/2011 12:00AM',64.2],['10/1/2011 12:00AM',64.1],['11/1/2011 12:00AM',64.1],['12/1/2011 12:00AM',64],['01/1/2012 12:00AM',63.7],['02/1/2012 12:00AM',63.8],['03/1/2012 12:00AM',63.8],['04/1/2012 12:00AM',63.7],['05/1/2012 12:00AM',63.7],['06/1/2012 12:00AM',63.8],['07/1/2012 12:00AM',63.7],['08/1/2012 12:00AM',63.5],['09/1/2012 12:00AM',63.6],['10/1/2012 12:00AM',63.8],['11/1/2012 12:00AM',63.6],['12/1/2012 12:00AM',63.7],['01/1/2013 12:00AM',63.7],['02/1/2013 12:00AM',63.4],['03/1/2013 12:00AM',63.3],['04/1/2013 12:00AM',63.4],['05/1/2013 12:00AM',63.4],['06/1/2013 12:00AM',63.4],['07/1/2013 12:00AM',63.3],['08/1/2013 12:00AM',63.3],['09/1/2013 12:00AM',63.2],['10/1/2013 12:00AM',62.8],['11/1/2013 12:00AM',63],['12/1/2013 12:00AM',62.9],['01/1/2014 12:00AM',62.9],['02/1/2014 12:00AM',62.9],['03/1/2014 12:00AM',63.1],['04/1/2014 12:00AM',62.8],['05/1/2014 12:00AM',62.9],['06/1/2014 12:00AM',62.8],['07/1/2014 12:00AM',62.9],['08/1/2014 12:00AM',62.9],['09/1/2014 12:00AM',62.8],['10/1/2014 12:00AM',62.9],['11/1/2014 12:00AM',62.9],['12/1/2014 12:00AM',62.8],['01/1/2015 12:00AM',62.9],['02/1/2015 12:00AM',62.7],['03/1/2015 12:00AM',62.6],['04/1/2015 12:00AM',62.8],['05/1/2015 12:00AM',62.9],['06/1/2015 12:00AM',62.7],['07/1/2015 12:00AM',62.6],['08/1/2015 12:00AM',62.6],['09/1/2015 12:00AM',62.4],['10/1/2015 12:00AM',62.5],['11/1/2015 12:00AM',62.5],['12/1/2015 12:00AM',62.7],['01/1/2016 12:00AM',62.7],['02/1/2016 12:00AM',62.8],['03/1/2016 12:00AM',63],['04/1/2016 12:00AM',62.9],['05/1/2016 12:00AM',62.7],['06/1/2016 12:00AM',62.7],['07/1/2016 12:00AM',62.8],['08/1/2016 12:00AM',62.9],['09/1/2016 12:00AM',62.9],['10/1/2016 12:00AM',62.8],['11/1/2016 12:00AM',62.7],['12/1/2016 12:00AM',62.7],['01/1/2017 12:00AM',62.8],['02/1/2017 12:00AM',62.9],['03/1/2017 12:00AM',62.9],['04/1/2017 12:00AM',63],['05/1/2017 12:00AM',62.8],['06/1/2017 12:00AM',62.8],['07/1/2017 12:00AM',62.9],['08/1/2017 12:00AM',62.9],['09/1/2017 12:00AM',63.1],['10/1/2017 12:00AM',62.7],['11/1/2017 12:00AM',62.7],['12/1/2017 12:00AM',62.7],['01/1/2018 12:00AM',62.7],['02/1/2018 12:00AM',63],['03/1/2018 12:00AM',62.9],['04/1/2018 12:00AM',62.9],['05/1/2018 12:00AM',62.9],['06/1/2018 12:00AM',63],['07/1/2018 12:00AM',63],['08/1/2018 12:00AM',62.6],['09/1/2018 12:00AM',62.8],['10/1/2018 12:00AM',62.9],['11/1/2018 12:00AM',62.9],['12/1/2018 12:00AM',63],['01/1/2019 12:00AM',63.1],['02/1/2019 12:00AM',63.1],['03/1/2019 12:00AM',63],['04/1/2019 12:00AM',62.8],['05/1/2019 12:00AM',62.9],['06/1/2019 12:00AM',63],['07/1/2019 12:00AM',63.1],['08/1/2019 12:00AM',63.1],['09/1/2019 12:00AM',63.2],['10/1/2019 12:00AM',63.3],['11/1/2019 12:00AM',63.3],['12/1/2019 12:00AM',63.3],['01/1/2020 12:00AM',63.3],['02/1/2020 12:00AM',63.3],['03/1/2020 12:00AM',62.6],['04/1/2020 12:00AM',60.1],['05/1/2020 12:00AM',60.8],['06/1/2020 12:00AM',61.5],['07/1/2020 12:00AM',61.5],['08/1/2020 12:00AM',61.7],['09/1/2020 12:00AM',61.4],['10/1/2020 12:00AM',61.7],['11/1/2020 12:00AM',61.5],['12/1/2020 12:00AM',61.5],['01/1/2021 12:00AM',61.4],['02/1/2021 12:00AM',61.4],['03/1/2021 12:00AM',61.5],['04/1/2021 12:00AM',61.6],['05/1/2021 12:00AM',61.6],['06/1/2021 12:00AM',61.7],['07/1/2021 12:00AM',61.8],['08/1/2021 12:00AM',61.7],['09/1/2021 12:00AM',61.7],['10/1/2021 12:00AM',61.8],['11/1/2021 12:00AM',61.9],['12/1/2021 12:00AM',62],['01/1/2022 12:00AM',62.2],['02/1/2022 12:00AM',62.2],['03/1/2022 12:00AM',62.3],['04/1/2022 12:00AM',62.2],['05/1/2022 12:00AM',62.3],['06/1/2022 12:00AM',62.2],['07/1/2022 12:00AM',62.1],['08/1/2022 12:00AM',62.3],['09/1/2022 12:00AM',62.3],['10/1/2022 12:00AM',62.2],['11/1/2022 12:00AM',62.1],['12/1/2022 12:00AM',62.3],['01/1/2023 12:00AM',62.4],['02/1/2023 12:00AM',62.5],['03/1/2023 12:00AM',62.6],['04/1/2023 12:00AM',62.6],['05/1/2023 12:00AM',62.6],['06/1/2023 12:00AM',62.6],['07/1/2023 12:00AM',62.6],['08/1/2023 12:00AM',62.8],['09/1/2023 12:00AM',62.7],['10/1/2023 12:00AM',62.7],['11/1/2023 12:00AM',62.8],['12/1/2023 12:00AM',62.5],['01/1/2024 12:00AM',62.5],['02/1/2024 12:00AM',62.6],['03/1/2024 12:00AM',62.7],['04/1/2024 12:00AM',62.7],['05/1/2024 12:00AM',62.6],['06/1/2024 12:00AM',62.6],['07/1/2024 12:00AM',62.7],['08/1/2024 12:00AM',62.7],['09/1/2024 12:00AM',62.7],['10/1/2024 12:00AM',62.5],['11/1/2024 12:00AM',62.5],['12/1/2024 12:00AM',62.5]];
var plot6 = [['05/1/1990 12:00AM',0.07],['06/1/1990 12:00AM',0.07],['07/1/1990 12:00AM',0.07],['08/1/1990 12:00AM',0.07],['09/1/1990 12:00AM',0.08],['10/1/1990 12:00AM',0.08],['11/1/1990 12:00AM',0.08],['12/1/1990 12:00AM',0.08],['01/1/1991 12:00AM',0.08],['02/1/1991 12:00AM',0.08],['03/1/1991 12:00AM',0.08],['04/1/1991 12:00AM',0.08],['05/1/1991 12:00AM',0.08],['06/1/1991 12:00AM',0.08],['07/1/1991 12:00AM',0.08],['08/1/1991 12:00AM',0.08],['09/1/1991 12:00AM',0.08],['10/1/1991 12:00AM',0.08],['11/1/1991 12:00AM',0.08],['12/1/1991 12:00AM',0.08],['01/1/1992 12:00AM',0.08],['02/1/1992 12:00AM',0.08],['03/1/1992 12:00AM',0.08],['04/1/1992 12:00AM',0.08],['05/1/1992 12:00AM',0.08],['06/1/1992 12:00AM',0.08],['07/1/1992 12:00AM',0.08],['08/1/1992 12:00AM',0.08],['09/1/1992 12:00AM',0.08],['10/1/1992 12:00AM',0.08],['11/1/1992 12:00AM',0.09],['12/1/1992 12:00AM',0.09],['01/1/1993 12:00AM',0.09],['02/1/1993 12:00AM',0.09],['03/1/1993 12:00AM',0.09],['04/1/1993 12:00AM',0.09],['05/1/1993 12:00AM',0.09],['06/1/1993 12:00AM',0.09],['07/1/1993 12:00AM',0.09],['08/1/1993 12:00AM',0.09],['09/1/1993 12:00AM',0.09],['10/1/1993 12:00AM',0.09],['11/1/1993 12:00AM',0.09],['12/1/1993 12:00AM',0.09],['01/1/1994 12:00AM',0.09],['02/1/1994 12:00AM',0.09],['03/1/1994 12:00AM',0.08],['04/1/1994 12:00AM',0.08],['05/1/1994 12:00AM',0.08],['06/1/1994 12:00AM',0.08],['07/1/1994 12:00AM',0.08],['08/1/1994 12:00AM',0.08],['09/1/1994 12:00AM',0.08],['10/1/1994 12:00AM',0.08],['11/1/1994 12:00AM',0.08],['12/1/1994 12:00AM',0.08],['01/1/1995 12:00AM',0.08],['02/1/1995 12:00AM',0.08],['03/1/1995 12:00AM',0.08],['04/1/1995 12:00AM',0.08],['05/1/1995 12:00AM',0.08],['06/1/1995 12:00AM',0.08],['07/1/1995 12:00AM',0.08],['08/1/1995 12:00AM',0.08],['09/1/1995 12:00AM',0.08],['10/1/1995 12:00AM',0.08],['11/1/1995 12:00AM',0.08],['12/1/1995 12:00AM',0.08],['01/1/1996 12:00AM',0.08],['02/1/1996 12:00AM',0.08],['03/1/1996 12:00AM',0.08],['04/1/1996 12:00AM',0.08],['05/1/1996 12:00AM',0.09],['06/1/1996 12:00AM',0.09],['07/1/1996 12:00AM',0.09],['08/1/1996 12:00AM',0.09],['09/1/1996 12:00AM',0.09],['10/1/1996 12:00AM',0.09],['11/1/1996 12:00AM',0.09],['12/1/1996 12:00AM',0.09],['01/1/1997 12:00AM',0.09],['02/1/1997 12:00AM',0.09],['03/1/1997 12:00AM',0.09],['04/1/1997 12:00AM',0.09],['05/1/1997 12:00AM',0.09],['06/1/1997 12:00AM',0.09],['07/1/1997 12:00AM',0.08],['08/1/1997 12:00AM',0.08],['09/1/1997 12:00AM',0.08],['10/1/1997 12:00AM',0.08],['11/1/1997 12:00AM',0.08],['12/1/1997 12:00AM',0.08],['01/1/1998 12:00AM',0.08],['02/1/1998 12:00AM',0.08],['03/1/1998 12:00AM',0.08],['04/1/1998 12:00AM',0.09],['05/1/1998 12:00AM',0.09],['06/1/1998 12:00AM',0.09],['07/1/1998 12:00AM',0.09],['08/1/1998 12:00AM',0.09],['09/1/1998 12:00AM',0.09],['10/1/1998 12:00AM',0.09],['11/1/1998 12:00AM',0.09],['12/1/1998 12:00AM',0.09],['01/1/1999 12:00AM',0.09],['02/1/1999 12:00AM',0.09],['03/1/1999 12:00AM',0.09],['04/1/1999 12:00AM',0.09],['05/1/1999 12:00AM',0.09],['06/1/1999 12:00AM',0.09],['07/1/1999 12:00AM',0.09],['08/1/1999 12:00AM',0.09],['09/1/1999 12:00AM',0.09],['10/1/1999 12:00AM',0.09],['11/1/1999 12:00AM',0.09],['12/1/1999 12:00AM',0.09],['01/1/2000 12:00AM',0.09],['02/1/2000 12:00AM',0.09],['03/1/2000 12:00AM',0.09],['04/1/2000 12:00AM',0.1],['05/1/2000 12:00AM',0.1],['06/1/2000 12:00AM',0.1],['07/1/2000 12:00AM',0.1],['08/1/2000 12:00AM',0.1],['09/1/2000 12:00AM',0.1],['10/1/2000 12:00AM',0.1],['11/1/2000 12:00AM',0.1],['12/1/2000 12:00AM',0.1],['01/1/2001 12:00AM',0.1],['02/1/2001 12:00AM',0.1],['03/1/2001 12:00AM',0.1],['04/1/2001 12:00AM',0.1],['05/1/2001 12:00AM',0.1],['06/1/2001 12:00AM',0.1],['07/1/2001 12:00AM',0.1],['08/1/2001 12:00AM',0.1],['09/1/2001 12:00AM',0.1],['10/1/2001 12:00AM',0.1],['11/1/2001 12:00AM',0.1],['12/1/2001 12:00AM',0.1],['01/1/2002 12:00AM',0.1],['02/1/2002 12:00AM',0.1],['03/1/2002 12:00AM',0.1],['04/1/2002 12:00AM',0.1],['05/1/2002 12:00AM',0.1],['06/1/2002 12:00AM',0.1],['07/1/2002 12:00AM',0.09],['08/1/2002 12:00AM',0.09],['09/1/2002 12:00AM',0.09],['10/1/2002 12:00AM',0.09],['11/1/2002 12:00AM',0.09],['12/1/2002 12:00AM',0.09],['01/1/2003 12:00AM',0.09],['02/1/2003 12:00AM',0.1],['03/1/2003 12:00AM',0.1],['04/1/2003 12:00AM',0.1],['05/1/2003 12:00AM',0.1],['06/1/2003 12:00AM',0.1],['07/1/2003 12:00AM',0.1],['08/1/2003 12:00AM',0.1],['09/1/2003 12:00AM',0.1],['10/1/2003 12:00AM',0.1],['11/1/2003 12:00AM',0.11],['12/1/2003 12:00AM',0.11],['01/1/2004 12:00AM',0.11],['02/1/2004 12:00AM',0.11],['03/1/2004 12:00AM',0.11],['04/1/2004 12:00AM',0.11],['05/1/2004 12:00AM',0.1],['06/1/2004 12:00AM',0.1],['07/1/2004 12:00AM',0.1],['08/1/2004 12:00AM',0.1],['09/1/2004 12:00AM',0.1],['10/1/2004 12:00AM',0.1],['11/1/2004 12:00AM',0.1],['12/1/2004 12:00AM',0.1],['01/1/2005 12:00AM',0.1],['02/1/2005 12:00AM',0.1],['03/1/2005 12:00AM',0.1],['04/1/2005 12:00AM',0.1],['05/1/2005 12:00AM',0.1],['06/1/2005 12:00AM',0.1],['07/1/2005 12:00AM',0.1],['08/1/2005 12:00AM',0.1],['09/1/2005 12:00AM',0.1],['10/1/2005 12:00AM',0.1],['11/1/2005 12:00AM',0.1],['12/1/2005 12:00AM',0.1],['01/1/2006 12:00AM',0.1],['02/1/2006 12:00AM',0.1],['03/1/2006 12:00AM',0.1],['04/1/2006 12:00AM',0.11],['05/1/2006 12:00AM',0.11],['06/1/2006 12:00AM',0.11],['07/1/2006 12:00AM',0.11],['08/1/2006 12:00AM',0.1],['09/1/2006 12:00AM',0.1],['10/1/2006 12:00AM',0.1],['11/1/2006 12:00AM',0.1],['12/1/2006 12:00AM',0.1],['01/1/2007 12:00AM',0.1],['02/1/2007 12:00AM',0.1],['03/1/2007 12:00AM',0.1],['04/1/2007 12:00AM',0.1],['05/1/2007 12:00AM',0.1],['06/1/2007 12:00AM',0.1],['07/1/2007 12:00AM',0.1],['08/1/2007 12:00AM',0.1],['09/1/2007 12:00AM',0.1],['10/1/2007 12:00AM',0.1],['11/1/2007 12:00AM',0.1],['12/1/2007 12:00AM',0.1],['01/1/2008 12:00AM',0.1],['02/1/2008 12:00AM',0.1],['03/1/2008 12:00AM',0.1],['04/1/2008 12:00AM',0.1],['05/1/2008 12:00AM',0.1],['06/1/2008 12:00AM',0.1],['07/1/2008 12:00AM',0.1],['08/1/2008 12:00AM',0.1],['09/1/2008 12:00AM',0.1],['10/1/2008 12:00AM',0.09],['11/1/2008 12:00AM',0.09],['12/1/2008 12:00AM',0.09],['01/1/2009 12:00AM',0.09],['02/1/2009 12:00AM',0.09],['03/1/2009 12:00AM',0.09],['04/1/2009 12:00AM',0.09],['05/1/2009 12:00AM',0.09],['06/1/2009 12:00AM',0.09],['07/1/2009 12:00AM',0.09],['08/1/2009 12:00AM',0.09],['09/1/2009 12:00AM',0.09],['10/1/2009 12:00AM',0.09],['11/1/2009 12:00AM',0.09],['12/1/2009 12:00AM',0.08],['01/1/2010 12:00AM',0.08],['02/1/2010 12:00AM',0.08],['03/1/2010 12:00AM',0.08],['04/1/2010 12:00AM',0.08],['05/1/2010 12:00AM',0.08],['06/1/2010 12:00AM',0.08],['07/1/2010 12:00AM',0.08],['08/1/2010 12:00AM',0.08],['09/1/2010 12:00AM',0.08],['10/1/2010 12:00AM',0.08],['11/1/2010 12:00AM',0.08],['12/1/2010 12:00AM',0.08],['01/1/2011 12:00AM',0.08],['02/1/2011 12:00AM',0.08],['03/1/2011 12:00AM',0.08],['04/1/2011 12:00AM',0.08],['05/1/2011 12:00AM',0.08],['06/1/2011 12:00AM',0.08],['07/1/2011 12:00AM',0.07],['08/1/2011 12:00AM',0.07],['09/1/2011 12:00AM',0.07],['10/1/2011 12:00AM',0.07],['11/1/2011 12:00AM',0.07],['12/1/2011 12:00AM',0.07],['01/1/2012 12:00AM',0.07],['02/1/2012 12:00AM',0.07],['03/1/2012 12:00AM',0.07],['04/1/2012 12:00AM',0.07],['05/1/2012 12:00AM',0.07],['06/1/2012 12:00AM',0.07],['07/1/2012 12:00AM',0.08],['08/1/2012 12:00AM',0.08],['09/1/2012 12:00AM',0.08],['10/1/2012 12:00AM',0.08],['11/1/2012 12:00AM',0.08],['12/1/2012 12:00AM',0.08],['01/1/2013 12:00AM',0.08],['02/1/2013 12:00AM',0.08],['03/1/2013 12:00AM',0.08],['04/1/2013 12:00AM',0.08],['05/1/2013 12:00AM',0.08],['06/1/2013 12:00AM',0.08],['07/1/2013 12:00AM',0.08],['08/1/2013 12:00AM',0.08],['09/1/2013 12:00AM',0.08],['10/1/2013 12:00AM',0.08],['11/1/2013 12:00AM',0.08],['12/1/2013 12:00AM',0.08],['01/1/2014 12:00AM',0.08],['02/1/2014 12:00AM',0.08],['03/1/2014 12:00AM',0.08],['04/1/2014 12:00AM',0.08],['05/1/2014 12:00AM',0.08],['06/1/2014 12:00AM',0.08],['07/1/2014 12:00AM',0.08],['08/1/2014 12:00AM',0.08],['09/1/2014 12:00AM',0.08],['10/1/2014 12:00AM',0.08],['11/1/2014 12:00AM',0.08],['12/1/2014 12:00AM',0.08],['01/1/2015 12:00AM',0.08],['02/1/2015 12:00AM',0.08],['03/1/2015 12:00AM',0.08],['04/1/2015 12:00AM',0.08],['05/1/2015 12:00AM',0.08],['06/1/2015 12:00AM',0.08],['07/1/2015 12:00AM',0.08],['08/1/2015 12:00AM',0.08],['09/1/2015 12:00AM',0.08],['10/1/2015 12:00AM',0.08],['11/1/2015 12:00AM',0.08],['12/1/2015 12:00AM',0.08],['01/1/2016 12:00AM',0.08],['02/1/2016 12:00AM',0.08],['03/1/2016 12:00AM',0.08],['04/1/2016 12:00AM',0.08],['05/1/2016 12:00AM',0.08],['06/1/2016 12:00AM',0.08],['07/1/2016 12:00AM',0.08],['08/1/2016 12:00AM',0.08],['09/1/2016 12:00AM',0.08],['10/1/2016 12:00AM',0.08],['11/1/2016 12:00AM',0.08],['12/1/2016 12:00AM',0.08],['01/1/2017 12:00AM',0.08],['02/1/2017 12:00AM',0.08],['03/1/2017 12:00AM',0.08],['04/1/2017 12:00AM',0.08],['05/1/2017 12:00AM',0.08],['06/1/2017 12:00AM',0.08],['07/1/2017 12:00AM',0.08],['08/1/2017 12:00AM',0.08],['09/1/2017 12:00AM',0.08],['10/1/2017 12:00AM',0.08],['11/1/2017 12:00AM',0.07],['12/1/2017 12:00AM',0.07],['01/1/2018 12:00AM',0.07],['02/1/2018 12:00AM',0.07],['03/1/2018 12:00AM',0.07],['04/1/2018 12:00AM',0.07],['05/1/2018 12:00AM',0.07],['06/1/2018 12:00AM',0.07],['07/1/2018 12:00AM',0.07],['08/1/2018 12:00AM',0.07],['09/1/2018 12:00AM',0.07],['10/1/2018 12:00AM',0.07],['11/1/2018 12:00AM',0.07],['12/1/2018 12:00AM',0.07],['01/1/2019 12:00AM',0.07],['02/1/2019 12:00AM',0.07],['03/1/2019 12:00AM',0.07],['04/1/2019 12:00AM',0.07],['05/1/2019 12:00AM',0.07],['06/1/2019 12:00AM',0.07],['07/1/2019 12:00AM',0.07],['08/1/2019 12:00AM',0.07],['09/1/2019 12:00AM',0.07],['10/1/2019 12:00AM',0.07],['11/1/2019 12:00AM',0.07],['12/1/2019 12:00AM',0.07],['01/1/2020 12:00AM',0.07],['02/1/2020 12:00AM',0.07],['03/1/2020 12:00AM',0.07],['04/1/2020 12:00AM',0.07],['05/1/2020 12:00AM',0.07],['06/1/2020 12:00AM',0.06],['07/1/2020 12:00AM',0.06],['08/1/2020 12:00AM',0.06],['09/1/2020 12:00AM',0.06],['10/1/2020 12:00AM',0.06],['11/1/2020 12:00AM',0.06],['12/1/2020 12:00AM',0.06],['01/1/2021 12:00AM',0.06],['02/1/2021 12:00AM',0.06],['03/1/2021 12:00AM',0.06],['04/1/2021 12:00AM',0.06],['05/1/2021 12:00AM',0.05],['06/1/2021 12:00AM',0.05],['07/1/2021 12:00AM',0.05],['08/1/2021 12:00AM',0.05],['09/1/2021 12:00AM',0.05],['10/1/2021 12:00AM',0.05],['11/1/2021 12:00AM',0.05],['12/1/2021 12:00AM',0.04],['01/1/2022 12:00AM',0.04],['02/1/2022 12:00AM',0.05],['03/1/2022 12:00AM',0.05],['04/1/2022 12:00AM',0.05],['05/1/2022 12:00AM',0.05],['06/1/2022 12:00AM',0.05],['07/1/2022 12:00AM',0.05],['08/1/2022 12:00AM',0.05],['09/1/2022 12:00AM',0.05],['10/1/2022 12:00AM',0.05],['11/1/2022 12:00AM',0.06],['12/1/2022 12:00AM',0.06],['01/1/2023 12:00AM',0.06],['02/1/2023 12:00AM',0.06],['03/1/2023 12:00AM',0.06],['04/1/2023 12:00AM',0.06],['05/1/2023 12:00AM',0.06],['06/1/2023 12:00AM',0.06],['07/1/2023 12:00AM',0.06],['08/1/2023 12:00AM',0.07],['09/1/2023 12:00AM',0.07],['10/1/2023 12:00AM',0.07],['11/1/2023 12:00AM',0.07],['12/1/2023 12:00AM',0.07],['01/1/2024 12:00AM',0.07],['02/1/2024 12:00AM',0.07],['03/1/2024 12:00AM',0.07],['04/1/2024 12:00AM',0.07],['05/1/2024 12:00AM',0.07],['06/1/2024 12:00AM',0.07],['07/1/2024 12:00AM',0.07],['08/1/2024 12:00AM',0.07],['09/1/2024 12:00AM',0.07],['10/1/2024 12:00AM',0.07],['11/1/2024 12:00AM',0.07],['12/1/2024 12:00AM',0.07]];
var plot7 = [['05/1/1990 12:00AM',6742],['06/1/1990 12:00AM',6590],['07/1/1990 12:00AM',6922],['08/1/1990 12:00AM',7188],['09/1/1990 12:00AM',7368],['10/1/1990 12:00AM',7459],['11/1/1990 12:00AM',7764],['12/1/1990 12:00AM',7901],['01/1/1991 12:00AM',8015],['02/1/1991 12:00AM',8265],['03/1/1991 12:00AM',8586],['04/1/1991 12:00AM',8439],['05/1/1991 12:00AM',8736],['06/1/1991 12:00AM',8692],['07/1/1991 12:00AM',8586],['08/1/1991 12:00AM',8666],['09/1/1991 12:00AM',8722],['10/1/1991 12:00AM',8842],['11/1/1991 12:00AM',8931],['12/1/1991 12:00AM',9198],['01/1/1992 12:00AM',9283],['02/1/1992 12:00AM',9454],['03/1/1992 12:00AM',9460],['04/1/1992 12:00AM',9415],['05/1/1992 12:00AM',9744],['06/1/1992 12:00AM',10040],['07/1/1992 12:00AM',9850],['08/1/1992 12:00AM',9787],['09/1/1992 12:00AM',9781],['10/1/1992 12:00AM',9398],['11/1/1992 12:00AM',9565],['12/1/1992 12:00AM',9557],['01/1/1993 12:00AM',9325],['02/1/1993 12:00AM',9183],['03/1/1993 12:00AM',9056],['04/1/1993 12:00AM',9110],['05/1/1993 12:00AM',9149],['06/1/1993 12:00AM',9121],['07/1/1993 12:00AM',8930],['08/1/1993 12:00AM',8763],['09/1/1993 12:00AM',8714],['10/1/1993 12:00AM',8750],['11/1/1993 12:00AM',8542],['12/1/1993 12:00AM',8477],['01/1/1994 12:00AM',8630],['02/1/1994 12:00AM',8583],['03/1/1994 12:00AM',8470],['04/1/1994 12:00AM',8331],['05/1/1994 12:00AM',7915],['06/1/1994 12:00AM',7927],['07/1/1994 12:00AM',7946],['08/1/1994 12:00AM',7933],['09/1/1994 12:00AM',7734],['10/1/1994 12:00AM',7632],['11/1/1994 12:00AM',7375],['12/1/1994 12:00AM',7230],['01/1/1995 12:00AM',7375],['02/1/1995 12:00AM',7187],['03/1/1995 12:00AM',7153],['04/1/1995 12:00AM',7645],['05/1/1995 12:00AM',7430],['06/1/1995 12:00AM',7427],['07/1/1995 12:00AM',7527],['08/1/1995 12:00AM',7484],['09/1/1995 12:00AM',7478],['10/1/1995 12:00AM',7328],['11/1/1995 12:00AM',7426],['12/1/1995 12:00AM',7423],['01/1/1996 12:00AM',7491],['02/1/1996 12:00AM',7313],['03/1/1996 12:00AM',7318],['04/1/1996 12:00AM',7415],['05/1/1996 12:00AM',7423],['06/1/1996 12:00AM',7095],['07/1/1996 12:00AM',7337],['08/1/1996 12:00AM',6882],['09/1/1996 12:00AM',6979],['10/1/1996 12:00AM',7031],['11/1/1996 12:00AM',7236],['12/1/1996 12:00AM',7253],['01/1/1997 12:00AM',7158],['02/1/1997 12:00AM',7102],['03/1/1997 12:00AM',7000],['04/1/1997 12:00AM',6873],['05/1/1997 12:00AM',6655],['06/1/1997 12:00AM',6799],['07/1/1997 12:00AM',6655],['08/1/1997 12:00AM',6608],['09/1/1997 12:00AM',6656],['10/1/1997 12:00AM',6454],['11/1/1997 12:00AM',6308],['12/1/1997 12:00AM',6476],['01/1/1998 12:00AM',6368],['02/1/1998 12:00AM',6306],['03/1/1998 12:00AM',6422],['04/1/1998 12:00AM',5941],['05/1/1998 12:00AM',6047],['06/1/1998 12:00AM',6212],['07/1/1998 12:00AM',6259],['08/1/1998 12:00AM',6179],['09/1/1998 12:00AM',6300],['10/1/1998 12:00AM',6280],['11/1/1998 12:00AM',6100],['12/1/1998 12:00AM',6032],['01/1/1999 12:00AM',5976],['02/1/1999 12:00AM',6111],['03/1/1999 12:00AM',5783],['04/1/1999 12:00AM',6004],['05/1/1999 12:00AM',5796],['06/1/1999 12:00AM',5951],['07/1/1999 12:00AM',6025],['08/1/1999 12:00AM',5838],['09/1/1999 12:00AM',5915],['10/1/1999 12:00AM',5778],['11/1/1999 12:00AM',5716],['12/1/1999 12:00AM',5653],['01/1/2000 12:00AM',5708],['02/1/2000 12:00AM',5858],['03/1/2000 12:00AM',5733],['04/1/2000 12:00AM',5481],['05/1/2000 12:00AM',5758],['06/1/2000 12:00AM',5651],['07/1/2000 12:00AM',5747],['08/1/2000 12:00AM',5853],['09/1/2000 12:00AM',5625],['10/1/2000 12:00AM',5534],['11/1/2000 12:00AM',5639],['12/1/2000 12:00AM',5634],['01/1/2001 12:00AM',6023],['02/1/2001 12:00AM',6089],['03/1/2001 12:00AM',6141],['04/1/2001 12:00AM',6271],['05/1/2001 12:00AM',6226],['06/1/2001 12:00AM',6484],['07/1/2001 12:00AM',6583],['08/1/2001 12:00AM',7042],['09/1/2001 12:00AM',7142],['10/1/2001 12:00AM',7694],['11/1/2001 12:00AM',8003],['12/1/2001 12:00AM',8258],['01/1/2002 12:00AM',8182],['02/1/2002 12:00AM',8215],['03/1/2002 12:00AM',8304],['04/1/2002 12:00AM',8599],['05/1/2002 12:00AM',8399],['06/1/2002 12:00AM',8393],['07/1/2002 12:00AM',8390],['08/1/2002 12:00AM',8304],['09/1/2002 12:00AM',8251],['10/1/2002 12:00AM',8307],['11/1/2002 12:00AM',8520],['12/1/2002 12:00AM',8640],['01/1/2003 12:00AM',8520],['02/1/2003 12:00AM',8618],['03/1/2003 12:00AM',8588],['04/1/2003 12:00AM',8842],['05/1/2003 12:00AM',8957],['06/1/2003 12:00AM',9266],['07/1/2003 12:00AM',9011],['08/1/2003 12:00AM',8896],['09/1/2003 12:00AM',8921],['10/1/2003 12:00AM',8732],['11/1/2003 12:00AM',8576],['12/1/2003 12:00AM',8317],['01/1/2004 12:00AM',8370],['02/1/2004 12:00AM',8167],['03/1/2004 12:00AM',8491],['04/1/2004 12:00AM',8170],['05/1/2004 12:00AM',8212],['06/1/2004 12:00AM',8286],['07/1/2004 12:00AM',8136],['08/1/2004 12:00AM',7990],['09/1/2004 12:00AM',7927],['10/1/2004 12:00AM',8061],['11/1/2004 12:00AM',7932],['12/1/2004 12:00AM',7934],['01/1/2005 12:00AM',7784],['02/1/2005 12:00AM',7980],['03/1/2005 12:00AM',7737],['04/1/2005 12:00AM',7672],['05/1/2005 12:00AM',7651],['06/1/2005 12:00AM',7524],['07/1/2005 12:00AM',7406],['08/1/2005 12:00AM',7345],['09/1/2005 12:00AM',7553],['10/1/2005 12:00AM',7453],['11/1/2005 12:00AM',7566],['12/1/2005 12:00AM',7279],['01/1/2006 12:00AM',7064],['02/1/2006 12:00AM',7184],['03/1/2006 12:00AM',7072],['04/1/2006 12:00AM',7120],['05/1/2006 12:00AM',6980],['06/1/2006 12:00AM',7001],['07/1/2006 12:00AM',7175],['08/1/2006 12:00AM',7091],['09/1/2006 12:00AM',6847],['10/1/2006 12:00AM',6727],['11/1/2006 12:00AM',6872],['12/1/2006 12:00AM',6762],['01/1/2007 12:00AM',7116],['02/1/2007 12:00AM',6927],['03/1/2007 12:00AM',6731],['04/1/2007 12:00AM',6850],['05/1/2007 12:00AM',6766],['06/1/2007 12:00AM',6979],['07/1/2007 12:00AM',7149],['08/1/2007 12:00AM',7067],['09/1/2007 12:00AM',7170],['10/1/2007 12:00AM',7237],['11/1/2007 12:00AM',7240],['12/1/2007 12:00AM',7645],['01/1/2008 12:00AM',7685],['02/1/2008 12:00AM',7497],['03/1/2008 12:00AM',7822],['04/1/2008 12:00AM',7637],['05/1/2008 12:00AM',8395],['06/1/2008 12:00AM',8575],['07/1/2008 12:00AM',8937],['08/1/2008 12:00AM',9438],['09/1/2008 12:00AM',9494],['10/1/2008 12:00AM',10074],['11/1/2008 12:00AM',10538],['12/1/2008 12:00AM',11286],['01/1/2009 12:00AM',12058],['02/1/2009 12:00AM',12898],['03/1/2009 12:00AM',13426],['04/1/2009 12:00AM',13853],['05/1/2009 12:00AM',14499],['06/1/2009 12:00AM',14707],['07/1/2009 12:00AM',14601],['08/1/2009 12:00AM',14814],['09/1/2009 12:00AM',15009],['10/1/2009 12:00AM',15352],['11/1/2009 12:00AM',15219],['12/1/2009 12:00AM',15098],['01/1/2010 12:00AM',15046],['02/1/2010 12:00AM',15113],['03/1/2010 12:00AM',15202],['04/1/2010 12:00AM',15325],['05/1/2010 12:00AM',14849],['06/1/2010 12:00AM',14474],['07/1/2010 12:00AM',14512],['08/1/2010 12:00AM',14648],['09/1/2010 12:00AM',14579],['10/1/2010 12:00AM',14516],['11/1/2010 12:00AM',15081],['12/1/2010 12:00AM',14348],['01/1/2011 12:00AM',14013],['02/1/2011 12:00AM',13820],['03/1/2011 12:00AM',13737],['04/1/2011 12:00AM',13957],['05/1/2011 12:00AM',13855],['06/1/2011 12:00AM',13962],['07/1/2011 12:00AM',13763],['08/1/2011 12:00AM',13818],['09/1/2011 12:00AM',13948],['10/1/2011 12:00AM',13594],['11/1/2011 12:00AM',13302],['12/1/2011 12:00AM',13093],['01/1/2012 12:00AM',12797],['02/1/2012 12:00AM',12813],['03/1/2012 12:00AM',12713],['04/1/2012 12:00AM',12646],['05/1/2012 12:00AM',12660],['06/1/2012 12:00AM',12692],['07/1/2012 12:00AM',12656],['08/1/2012 12:00AM',12471],['09/1/2012 12:00AM',12115],['10/1/2012 12:00AM',12124],['11/1/2012 12:00AM',12005],['12/1/2012 12:00AM',12298],['01/1/2013 12:00AM',12471],['02/1/2013 12:00AM',11950],['03/1/2013 12:00AM',11689],['04/1/2013 12:00AM',11760],['05/1/2013 12:00AM',11654],['06/1/2013 12:00AM',11751],['07/1/2013 12:00AM',11335],['08/1/2013 12:00AM',11279],['09/1/2013 12:00AM',11270],['10/1/2013 12:00AM',11136],['11/1/2013 12:00AM',10787],['12/1/2013 12:00AM',10404],['01/1/2014 12:00AM',10202],['02/1/2014 12:00AM',10349],['03/1/2014 12:00AM',10380],['04/1/2014 12:00AM',9702],['05/1/2014 12:00AM',9859],['06/1/2014 12:00AM',9460],['07/1/2014 12:00AM',9608],['08/1/2014 12:00AM',9599],['09/1/2014 12:00AM',9262],['10/1/2014 12:00AM',8990],['11/1/2014 12:00AM',9090],['12/1/2014 12:00AM',8717],['01/1/2015 12:00AM',8885],['02/1/2015 12:00AM',8599],['03/1/2015 12:00AM',8515],['04/1/2015 12:00AM',8550],['05/1/2015 12:00AM',8834],['06/1/2015 12:00AM',8247],['07/1/2015 12:00AM',8167],['08/1/2015 12:00AM',7992],['09/1/2015 12:00AM',7907],['10/1/2015 12:00AM',7922],['11/1/2015 12:00AM',8000],['12/1/2015 12:00AM',7907],['01/1/2016 12:00AM',7627],['02/1/2016 12:00AM',7702],['03/1/2016 12:00AM',7961],['04/1/2016 12:00AM',8067],['05/1/2016 12:00AM',7652],['06/1/2016 12:00AM',7744],['07/1/2016 12:00AM',7641],['08/1/2016 12:00AM',7784],['09/1/2016 12:00AM',7953],['10/1/2016 12:00AM',7811],['11/1/2016 12:00AM',7553],['12/1/2016 12:00AM',7521],['01/1/2017 12:00AM',7468],['02/1/2017 12:00AM',7379],['03/1/2017 12:00AM',7073],['04/1/2017 12:00AM',7089],['05/1/2017 12:00AM',7000],['06/1/2017 12:00AM',6873],['07/1/2017 12:00AM',6892],['08/1/2017 12:00AM',7082],['09/1/2017 12:00AM',6854],['10/1/2017 12:00AM',6700],['11/1/2017 12:00AM',6774],['12/1/2017 12:00AM',6632],['01/1/2018 12:00AM',6489],['02/1/2018 12:00AM',6581],['03/1/2018 12:00AM',6472],['04/1/2018 12:00AM',6459],['05/1/2018 12:00AM',6196],['06/1/2018 12:00AM',6447],['07/1/2018 12:00AM',6195],['08/1/2018 12:00AM',6156],['09/1/2018 12:00AM',6073],['10/1/2018 12:00AM',6211],['11/1/2018 12:00AM',6115],['12/1/2018 12:00AM',6389],['01/1/2019 12:00AM',6475],['02/1/2019 12:00AM',6136],['03/1/2019 12:00AM',6202],['04/1/2019 12:00AM',5961],['05/1/2019 12:00AM',5930],['06/1/2019 12:00AM',5935],['07/1/2019 12:00AM',6061],['08/1/2019 12:00AM',5945],['09/1/2019 12:00AM',5753],['10/1/2019 12:00AM',5871],['11/1/2019 12:00AM',5868],['12/1/2019 12:00AM',5853],['01/1/2020 12:00AM',5869],['02/1/2020 12:00AM',5753],['03/1/2020 12:00AM',7206],['04/1/2020 12:00AM',23084],['05/1/2020 12:00AM',20929],['06/1/2020 12:00AM',17652],['07/1/2020 12:00AM',16352],['08/1/2020 12:00AM',13461],['09/1/2020 12:00AM',12554],['10/1/2020 12:00AM',11072],['11/1/2020 12:00AM',10694],['12/1/2020 12:00AM',10770],['01/1/2021 12:00AM',10236],['02/1/2021 12:00AM',9995],['03/1/2021 12:00AM',9756],['04/1/2021 12:00AM',9762],['05/1/2021 12:00AM',9266],['06/1/2021 12:00AM',9462],['07/1/2021 12:00AM',8731],['08/1/2021 12:00AM',8276],['09/1/2021 12:00AM',7652],['10/1/2021 12:00AM',7279],['11/1/2021 12:00AM',6751],['12/1/2021 12:00AM',6398],['01/1/2022 12:00AM',6512],['02/1/2022 12:00AM',6301],['03/1/2022 12:00AM',6014],['04/1/2022 12:00AM',6002],['05/1/2022 12:00AM',5983],['06/1/2022 12:00AM',5951],['07/1/2022 12:00AM',5768],['08/1/2022 12:00AM',5919],['09/1/2022 12:00AM',5792],['10/1/2022 12:00AM',5964],['11/1/2022 12:00AM',5943],['12/1/2022 12:00AM',5766],['01/1/2023 12:00AM',5747],['02/1/2023 12:00AM',5962],['03/1/2023 12:00AM',5839],['04/1/2023 12:00AM',5751],['05/1/2023 12:00AM',6089],['06/1/2023 12:00AM',5958],['07/1/2023 12:00AM',5920],['08/1/2023 12:00AM',6284],['09/1/2023 12:00AM',6326],['10/1/2023 12:00AM',6479],['11/1/2023 12:00AM',6254],['12/1/2023 12:00AM',6315],['01/1/2024 12:00AM',6149],['02/1/2024 12:00AM',6462],['03/1/2024 12:00AM',6497],['04/1/2024 12:00AM',6492],['05/1/2024 12:00AM',6635],['06/1/2024 12:00AM',6849],['07/1/2024 12:00AM',7097],['08/1/2024 12:00AM',7071],['09/1/2024 12:00AM',6901],['10/1/2024 12:00AM',6972],['11/1/2024 12:00AM',7121],['12/1/2024 12:00AM',6886]];
var plot8 = [['05/1/1990 12:00AM',0],['06/1/1990 12:00AM',0],['07/1/1990 12:00AM',0],['08/1/1990 12:00AM',1],['09/1/1990 12:00AM',1],['10/1/1990 12:00AM',1],['11/1/1990 12:00AM',1],['12/1/1990 12:00AM',1],['01/1/1991 12:00AM',1],['02/1/1991 12:00AM',1],['03/1/1991 12:00AM',1],['04/1/1991 12:00AM',0],['05/1/1991 12:00AM',0],['06/1/1991 12:00AM',0],['07/1/1991 12:00AM',0],['08/1/1991 12:00AM',0],['09/1/1991 12:00AM',0],['10/1/1991 12:00AM',0],['11/1/1991 12:00AM',0],['12/1/1991 12:00AM',0],['01/1/1992 12:00AM',0],['02/1/1992 12:00AM',0],['03/1/1992 12:00AM',0],['04/1/1992 12:00AM',0],['05/1/1992 12:00AM',0],['06/1/1992 12:00AM',0],['07/1/1992 12:00AM',0],['08/1/1992 12:00AM',0],['09/1/1992 12:00AM',0],['10/1/1992 12:00AM',0],['11/1/1992 12:00AM',0],['12/1/1992 12:00AM',0],['01/1/1993 12:00AM',0],['02/1/1993 12:00AM',0],['03/1/1993 12:00AM',0],['04/1/1993 12:00AM',0],['05/1/1993 12:00AM',0],['06/1/1993 12:00AM',0],['07/1/1993 12:00AM',0],['08/1/1993 12:00AM',0],['09/1/1993 12:00AM',0],['10/1/1993 12:00AM',0],['11/1/1993 12:00AM',0],['12/1/1993 12:00AM',0],['01/1/1994 12:00AM',0],['02/1/1994 12:00AM',0],['03/1/1994 12:00AM',0],['04/1/1994 12:00AM',0],['05/1/1994 12:00AM',0],['06/1/1994 12:00AM',0],['07/1/1994 12:00AM',0],['08/1/1994 12:00AM',0],['09/1/1994 12:00AM',0],['10/1/1994 12:00AM',0],['11/1/1994 12:00AM',0],['12/1/1994 12:00AM',0],['01/1/1995 12:00AM',0],['02/1/1995 12:00AM',0],['03/1/1995 12:00AM',0],['04/1/1995 12:00AM',0],['05/1/1995 12:00AM',0],['06/1/1995 12:00AM',0],['07/1/1995 12:00AM',0],['08/1/1995 12:00AM',0],['09/1/1995 12:00AM',0],['10/1/1995 12:00AM',0],['11/1/1995 12:00AM',0],['12/1/1995 12:00AM',0],['01/1/1996 12:00AM',0],['02/1/1996 12:00AM',0],['03/1/1996 12:00AM',0],['04/1/1996 12:00AM',0],['05/1/1996 12:00AM',0],['06/1/1996 12:00AM',0],['07/1/1996 12:00AM',0],['08/1/1996 12:00AM',0],['09/1/1996 12:00AM',0],['10/1/1996 12:00AM',0],['11/1/1996 12:00AM',0],['12/1/1996 12:00AM',0],['01/1/1997 12:00AM',0],['02/1/1997 12:00AM',0],['03/1/1997 12:00AM',0],['04/1/1997 12:00AM',0],['05/1/1997 12:00AM',0],['06/1/1997 12:00AM',0],['07/1/1997 12:00AM',0],['08/1/1997 12:00AM',0],['09/1/1997 12:00AM',0],['10/1/1997 12:00AM',0],['11/1/1997 12:00AM',0],['12/1/1997 12:00AM',0],['01/1/1998 12:00AM',0],['02/1/1998 12:00AM',0],['03/1/1998 12:00AM',0],['04/1/1998 12:00AM',0],['05/1/1998 12:00AM',0],['06/1/1998 12:00AM',0],['07/1/1998 12:00AM',0],['08/1/1998 12:00AM',0],['09/1/1998 12:00AM',0],['10/1/1998 12:00AM',0],['11/1/1998 12:00AM',0],['12/1/1998 12:00AM',0],['01/1/1999 12:00AM',0],['02/1/1999 12:00AM',0],['03/1/1999 12:00AM',0],['04/1/1999 12:00AM',0],['05/1/1999 12:00AM',0],['06/1/1999 12:00AM',0],['07/1/1999 12:00AM',0],['08/1/1999 12:00AM',0],['09/1/1999 12:00AM',0],['10/1/1999 12:00AM',0],['11/1/1999 12:00AM',0],['12/1/1999 12:00AM',0],['01/1/2000 12:00AM',0],['02/1/2000 12:00AM',0],['03/1/2000 12:00AM',0],['04/1/2000 12:00AM',0],['05/1/2000 12:00AM',0],['06/1/2000 12:00AM',0],['07/1/2000 12:00AM',0],['08/1/2000 12:00AM',0],['09/1/2000 12:00AM',0],['10/1/2000 12:00AM',0],['11/1/2000 12:00AM',0],['12/1/2000 12:00AM',0],['01/1/2001 12:00AM',0],['02/1/2001 12:00AM',0],['03/1/2001 12:00AM',0],['04/1/2001 12:00AM',1],['05/1/2001 12:00AM',1],['06/1/2001 12:00AM',1],['07/1/2001 12:00AM',1],['08/1/2001 12:00AM',1],['09/1/2001 12:00AM',1],['10/1/2001 12:00AM',1],['11/1/2001 12:00AM',1],['12/1/2001 12:00AM',0],['01/1/2002 12:00AM',0],['02/1/2002 12:00AM',0],['03/1/2002 12:00AM',0],['04/1/2002 12:00AM',0],['05/1/2002 12:00AM',0],['06/1/2002 12:00AM',0],['07/1/2002 12:00AM',0],['08/1/2002 12:00AM',0],['09/1/2002 12:00AM',0],['10/1/2002 12:00AM',0],['11/1/2002 12:00AM',0],['12/1/2002 12:00AM',0],['01/1/2003 12:00AM',0],['02/1/2003 12:00AM',0],['03/1/2003 12:00AM',0],['04/1/2003 12:00AM',0],['05/1/2003 12:00AM',0],['06/1/2003 12:00AM',0],['07/1/2003 12:00AM',0],['08/1/2003 12:00AM',0],['09/1/2003 12:00AM',0],['10/1/2003 12:00AM',0],['11/1/2003 12:00AM',0],['12/1/2003 12:00AM',0],['01/1/2004 12:00AM',0],['02/1/2004 12:00AM',0],['03/1/2004 12:00AM',0],['04/1/2004 12:00AM',0],['05/1/2004 12:00AM',0],['06/1/2004 12:00AM',0],['07/1/2004 12:00AM',0],['08/1/2004 12:00AM',0],['09/1/2004 12:00AM',0],['10/1/2004 12:00AM',0],['11/1/2004 12:00AM',0],['12/1/2004 12:00AM',0],['01/1/2005 12:00AM',0],['02/1/2005 12:00AM',0],['03/1/2005 12:00AM',0],['04/1/2005 12:00AM',0],['05/1/2005 12:00AM',0],['06/1/2005 12:00AM',0],['07/1/2005 12:00AM',0],['08/1/2005 12:00AM',0],['09/1/2005 12:00AM',0],['10/1/2005 12:00AM',0],['11/1/2005 12:00AM',0],['12/1/2005 12:00AM',0],['01/1/2006 12:00AM',0],['02/1/2006 12:00AM',0],['03/1/2006 12:00AM',0],['04/1/2006 12:00AM',0],['05/1/2006 12:00AM',0],['06/1/2006 12:00AM',0],['07/1/2006 12:00AM',0],['08/1/2006 12:00AM',0],['09/1/2006 12:00AM',0],['10/1/2006 12:00AM',0],['11/1/2006 12:00AM',0],['12/1/2006 12:00AM',0],['01/1/2007 12:00AM',0],['02/1/2007 12:00AM',0],['03/1/2007 12:00AM',0],['04/1/2007 12:00AM',0],['05/1/2007 12:00AM',0],['06/1/2007 12:00AM',0],['07/1/2007 12:00AM',0],['08/1/2007 12:00AM',0],['09/1/2007 12:00AM',0],['10/1/2007 12:00AM',0],['11/1/2007 12:00AM',0],['12/1/2007 12:00AM',0],['01/1/2008 12:00AM',1],['02/1/2008 12:00AM',1],['03/1/2008 12:00AM',1],['04/1/2008 12:00AM',1],['05/1/2008 12:00AM',1],['06/1/2008 12:00AM',1],['07/1/2008 12:00AM',1],['08/1/2008 12:00AM',1],['09/1/2008 12:00AM',1],['10/1/2008 12:00AM',1],['11/1/2008 12:00AM',1],['12/1/2008 12:00AM',1],['01/1/2009 12:00AM',1],['02/1/2009 12:00AM',1],['03/1/2009 12:00AM',1],['04/1/2009 12:00AM',1],['05/1/2009 12:00AM',1],['06/1/2009 12:00AM',1],['07/1/2009 12:00AM',0],['08/1/2009 12:00AM',0],['09/1/2009 12:00AM',0],['10/1/2009 12:00AM',0],['11/1/2009 12:00AM',0],['12/1/2009 12:00AM',0],['01/1/2010 12:00AM',0],['02/1/2010 12:00AM',0],['03/1/2010 12:00AM',0],['04/1/2010 12:00AM',0],['05/1/2010 12:00AM',0],['06/1/2010 12:00AM',0],['07/1/2010 12:00AM',0],['08/1/2010 12:00AM',0],['09/1/2010 12:00AM',0],['10/1/2010 12:00AM',0],['11/1/2010 12:00AM',0],['12/1/2010 12:00AM',0],['01/1/2011 12:00AM',0],['02/1/2011 12:00AM',0],['03/1/2011 12:00AM',0],['04/1/2011 12:00AM',0],['05/1/2011 12:00AM',0],['06/1/2011 12:00AM',0],['07/1/2011 12:00AM',0],['08/1/2011 12:00AM',0],['09/1/2011 12:00AM',0],['10/1/2011 12:00AM',0],['11/1/2011 12:00AM',0],['12/1/2011 12:00AM',0],['01/1/2012 12:00AM',0],['02/1/2012 12:00AM',0],['03/1/2012 12:00AM',0],['04/1/2012 12:00AM',0],['05/1/2012 12:00AM',0],['06/1/2012 12:00AM',0],['07/1/2012 12:00AM',0],['08/1/2012 12:00AM',0],['09/1/2012 12:00AM',0],['10/1/2012 12:00AM',0],['11/1/2012 12:00AM',0],['12/1/2012 12:00AM',0],['01/1/2013 12:00AM',0],['02/1/2013 12:00AM',0],['03/1/2013 12:00AM',0],['04/1/2013 12:00AM',0],['05/1/2013 12:00AM',0],['06/1/2013 12:00AM',0],['07/1/2013 12:00AM',0],['08/1/2013 12:00AM',0],['09/1/2013 12:00AM',0],['10/1/2013 12:00AM',0],['11/1/2013 12:00AM',0],['12/1/2013 12:00AM',0],['01/1/2014 12:00AM',0],['02/1/2014 12:00AM',0],['03/1/2014 12:00AM',0],['04/1/2014 12:00AM',0],['05/1/2014 12:00AM',0],['06/1/2014 12:00AM',0],['07/1/2014 12:00AM',0],['08/1/2014 12:00AM',0],['09/1/2014 12:00AM',0],['10/1/2014 12:00AM',0],['11/1/2014 12:00AM',0],['12/1/2014 12:00AM',0],['01/1/2015 12:00AM',0],['02/1/2015 12:00AM',0],['03/1/2015 12:00AM',0],['04/1/2015 12:00AM',0],['05/1/2015 12:00AM',0],['06/1/2015 12:00AM',0],['07/1/2015 12:00AM',0],['08/1/2015 12:00AM',0],['09/1/2015 12:00AM',0],['10/1/2015 12:00AM',0],['11/1/2015 12:00AM',0],['12/1/2015 12:00AM',0],['01/1/2016 12:00AM',0],['02/1/2016 12:00AM',0],['03/1/2016 12:00AM',0],['04/1/2016 12:00AM',0],['05/1/2016 12:00AM',0],['06/1/2016 12:00AM',0],['07/1/2016 12:00AM',0],['08/1/2016 12:00AM',0],['09/1/2016 12:00AM',0],['10/1/2016 12:00AM',0],['11/1/2016 12:00AM',0],['12/1/2016 12:00AM',0],['01/1/2017 12:00AM',0],['02/1/2017 12:00AM',0],['03/1/2017 12:00AM',0],['04/1/2017 12:00AM',0],['05/1/2017 12:00AM',0],['06/1/2017 12:00AM',0],['07/1/2017 12:00AM',0],['08/1/2017 12:00AM',0],['09/1/2017 12:00AM',0],['10/1/2017 12:00AM',0],['11/1/2017 12:00AM',0],['12/1/2017 12:00AM',0],['01/1/2018 12:00AM',0],['02/1/2018 12:00AM',0],['03/1/2018 12:00AM',0],['04/1/2018 12:00AM',0],['05/1/2018 12:00AM',0],['06/1/2018 12:00AM',0],['07/1/2018 12:00AM',0],['08/1/2018 12:00AM',0],['09/1/2018 12:00AM',0],['10/1/2018 12:00AM',0],['11/1/2018 12:00AM',0],['12/1/2018 12:00AM',0],['01/1/2019 12:00AM',0],['02/1/2019 12:00AM',0],['03/1/2019 12:00AM',0],['04/1/2019 12:00AM',0],['05/1/2019 12:00AM',0],['06/1/2019 12:00AM',0],['07/1/2019 12:00AM',0],['08/1/2019 12:00AM',0],['09/1/2019 12:00AM',0],['10/1/2019 12:00AM',0],['11/1/2019 12:00AM',0],['12/1/2019 12:00AM',0],['01/1/2020 12:00AM',0],['02/1/2020 12:00AM',0],['03/1/2020 12:00AM',1],['04/1/2020 12:00AM',1],['05/1/2020 12:00AM',0],['06/1/2020 12:00AM',0],['07/1/2020 12:00AM',0],['08/1/2020 12:00AM',0],['09/1/2020 12:00AM',0],['10/1/2020 12:00AM',0],['11/1/2020 12:00AM',0],['12/1/2020 12:00AM',0],['01/1/2021 12:00AM',0],['02/1/2021 12:00AM',0],['03/1/2021 12:00AM',0],['04/1/2021 12:00AM',0],['05/1/2021 12:00AM',0],['06/1/2021 12:00AM',0],['07/1/2021 12:00AM',0],['08/1/2021 12:00AM',0],['09/1/2021 12:00AM',0],['10/1/2021 12:00AM',0],['11/1/2021 12:00AM',0],['12/1/2021 12:00AM',0],['01/1/2022 12:00AM',0],['02/1/2022 12:00AM',0],['03/1/2022 12:00AM',0],['04/1/2022 12:00AM',0],['05/1/2022 12:00AM',0],['06/1/2022 12:00AM',0],['07/1/2022 12:00AM',0],['08/1/2022 12:00AM',0],['09/1/2022 12:00AM',0],['10/1/2022 12:00AM',0],['11/1/2022 12:00AM',0],['12/1/2022 12:00AM',0],['01/1/2023 12:00AM',0],['02/1/2023 12:00AM',0],['03/1/2023 12:00AM',0],['04/1/2023 12:00AM',0],['05/1/2023 12:00AM',0],['06/1/2023 12:00AM',0],['07/1/2023 12:00AM',0],['08/1/2023 12:00AM',0],['09/1/2023 12:00AM',0],['10/1/2023 12:00AM',0],['11/1/2023 12:00AM',0],['12/1/2023 12:00AM',0],['01/1/2024 12:00AM',0],['02/1/2024 12:00AM',0],['03/1/2024 12:00AM',0],['04/1/2024 12:00AM',0],['05/1/2024 12:00AM',0],['06/1/2024 12:00AM',0],['07/1/2024 12:00AM',0],['08/1/2024 12:00AM',0],['09/1/2024 12:00AM',0],['10/1/2024 12:00AM',0],['11/1/2024 12:00AM',0],['12/1/2024 12:00AM',0]];
var plot9 = [['05/1/1990 12:00AM',119151],['06/1/1990 12:00AM',118983],['07/1/1990 12:00AM',118810],['08/1/1990 12:00AM',118802],['09/1/1990 12:00AM',118524],['10/1/1990 12:00AM',118536],['11/1/1990 12:00AM',118306],['12/1/1990 12:00AM',118241],['01/1/1991 12:00AM',117940],['02/1/1991 12:00AM',117755],['03/1/1991 12:00AM',117652],['04/1/1991 12:00AM',118109],['05/1/1991 12:00AM',117440],['06/1/1991 12:00AM',117639],['07/1/1991 12:00AM',117568],['08/1/1991 12:00AM',117484],['09/1/1991 12:00AM',117928],['10/1/1991 12:00AM',117800],['11/1/1991 12:00AM',117770],['12/1/1991 12:00AM',117466],['01/1/1992 12:00AM',117978],['02/1/1992 12:00AM',117753],['03/1/1992 12:00AM',118144],['04/1/1992 12:00AM',118426],['05/1/1992 12:00AM',118375],['06/1/1992 12:00AM',118419],['07/1/1992 12:00AM',118713],['08/1/1992 12:00AM',118826],['09/1/1992 12:00AM',118720],['10/1/1992 12:00AM',118628],['11/1/1992 12:00AM',118876],['12/1/1992 12:00AM',118997],['01/1/1993 12:00AM',119075],['02/1/1993 12:00AM',119275],['03/1/1993 12:00AM',119542],['04/1/1993 12:00AM',119474],['05/1/1993 12:00AM',120115],['06/1/1993 12:00AM',120290],['07/1/1993 12:00AM',120467],['08/1/1993 12:00AM',120856],['09/1/1993 12:00AM',120554],['10/1/1993 12:00AM',120823],['11/1/1993 12:00AM',121169],['12/1/1993 12:00AM',121464],['01/1/1994 12:00AM',121966],['02/1/1994 12:00AM',122086],['03/1/1994 12:00AM',121930],['04/1/1994 12:00AM',122290],['05/1/1994 12:00AM',122864],['06/1/1994 12:00AM',122634],['07/1/1994 12:00AM',122706],['08/1/1994 12:00AM',123342],['09/1/1994 12:00AM',123687],['10/1/1994 12:00AM',124112],['11/1/1994 12:00AM',124516],['12/1/1994 12:00AM',124721],['01/1/1995 12:00AM',124663],['02/1/1995 12:00AM',124928],['03/1/1995 12:00AM',124955],['04/1/1995 12:00AM',124945],['05/1/1995 12:00AM',124421],['06/1/1995 12:00AM',124522],['07/1/1995 12:00AM',124816],['08/1/1995 12:00AM',124852],['09/1/1995 12:00AM',125133],['10/1/1995 12:00AM',125388],['11/1/1995 12:00AM',125188],['12/1/1995 12:00AM',125088],['01/1/1996 12:00AM',125125],['02/1/1996 12:00AM',125639],['03/1/1996 12:00AM',125862],['04/1/1996 12:00AM',125994],['05/1/1996 12:00AM',126244],['06/1/1996 12:00AM',126602],['07/1/1996 12:00AM',126947],['08/1/1996 12:00AM',127172],['09/1/1996 12:00AM',127536],['10/1/1996 12:00AM',127890],['11/1/1996 12:00AM',127771],['12/1/1996 12:00AM',127860],['01/1/1997 12:00AM',128298],['02/1/1997 12:00AM',128298],['03/1/1997 12:00AM',128891],['04/1/1997 12:00AM',129143],['05/1/1997 12:00AM',129464],['06/1/1997 12:00AM',129412],['07/1/1997 12:00AM',129822],['08/1/1997 12:00AM',130010],['09/1/1997 12:00AM',130019],['10/1/1997 12:00AM',130179],['11/1/1997 12:00AM',130653],['12/1/1997 12:00AM',130679],['01/1/1998 12:00AM',130726],['02/1/1998 12:00AM',130807],['03/1/1998 12:00AM',130814],['04/1/1998 12:00AM',131209],['05/1/1998 12:00AM',131325],['06/1/1998 12:00AM',131244],['07/1/1998 12:00AM',131329],['08/1/1998 12:00AM',131390],['09/1/1998 12:00AM',131986],['10/1/1998 12:00AM',131999],['11/1/1998 12:00AM',132280],['12/1/1998 12:00AM',132602],['01/1/1999 12:00AM',133027],['02/1/1999 12:00AM',132856],['03/1/1999 12:00AM',132947],['04/1/1999 12:00AM',132955],['05/1/1999 12:00AM',133311],['06/1/1999 12:00AM',133378],['07/1/1999 12:00AM',133414],['08/1/1999 12:00AM',133591],['09/1/1999 12:00AM',133707],['10/1/1999 12:00AM',133993],['11/1/1999 12:00AM',134309],['12/1/1999 12:00AM',134523],['01/1/2000 12:00AM',136559],['02/1/2000 12:00AM',136598],['03/1/2000 12:00AM',136701],['04/1/2000 12:00AM',137270],['05/1/2000 12:00AM',136630],['06/1/2000 12:00AM',136940],['07/1/2000 12:00AM',136531],['08/1/2000 12:00AM',136662],['09/1/2000 12:00AM',136893],['10/1/2000 12:00AM',137088],['11/1/2000 12:00AM',137322],['12/1/2000 12:00AM',137614],['01/1/2001 12:00AM',137778],['02/1/2001 12:00AM',137612],['03/1/2001 12:00AM',137783],['04/1/2001 12:00AM',137299],['05/1/2001 12:00AM',137092],['06/1/2001 12:00AM',136873],['07/1/2001 12:00AM',137071],['08/1/2001 12:00AM',136241],['09/1/2001 12:00AM',136846],['10/1/2001 12:00AM',136392],['11/1/2001 12:00AM',136238],['12/1/2001 12:00AM',136047],['01/1/2002 12:00AM',135701],['02/1/2002 12:00AM',136438],['03/1/2002 12:00AM',136177],['04/1/2002 12:00AM',136126],['05/1/2002 12:00AM',136539],['06/1/2002 12:00AM',136415],['07/1/2002 12:00AM',136413],['08/1/2002 12:00AM',136705],['09/1/2002 12:00AM',137302],['10/1/2002 12:00AM',137008],['11/1/2002 12:00AM',136521],['12/1/2002 12:00AM',136426],['01/1/2003 12:00AM',137417],['02/1/2003 12:00AM',137482],['03/1/2003 12:00AM',137434],['04/1/2003 12:00AM',137633],['05/1/2003 12:00AM',137544],['06/1/2003 12:00AM',137790],['07/1/2003 12:00AM',137474],['08/1/2003 12:00AM',137549],['09/1/2003 12:00AM',137609],['10/1/2003 12:00AM',137984],['11/1/2003 12:00AM',138424],['12/1/2003 12:00AM',138411],['01/1/2004 12:00AM',138472],['02/1/2004 12:00AM',138542],['03/1/2004 12:00AM',138453],['04/1/2004 12:00AM',138680],['05/1/2004 12:00AM',138852],['06/1/2004 12:00AM',139174],['07/1/2004 12:00AM',139556],['08/1/2004 12:00AM',139573],['09/1/2004 12:00AM',139487],['10/1/2004 12:00AM',139732],['11/1/2004 12:00AM',140231],['12/1/2004 12:00AM',140125],['01/1/2005 12:00AM',140245],['02/1/2005 12:00AM',140385],['03/1/2005 12:00AM',140654],['04/1/2005 12:00AM',141254],['05/1/2005 12:00AM',141609],['06/1/2005 12:00AM',141714],['07/1/2005 12:00AM',142026],['08/1/2005 12:00AM',142434],['09/1/2005 12:00AM',142401],['10/1/2005 12:00AM',142548],['11/1/2005 12:00AM',142499],['12/1/2005 12:00AM',142752],['01/1/2006 12:00AM',143150],['02/1/2006 12:00AM',143457],['03/1/2006 12:00AM',143741],['04/1/2006 12:00AM',143761],['05/1/2006 12:00AM',144089],['06/1/2006 12:00AM',144353],['07/1/2006 12:00AM',144202],['08/1/2006 12:00AM',144625],['09/1/2006 12:00AM',144815],['10/1/2006 12:00AM',145314],['11/1/2006 12:00AM',145534],['12/1/2006 12:00AM',145970],['01/1/2007 12:00AM',146028],['02/1/2007 12:00AM',146057],['03/1/2007 12:00AM',146320],['04/1/2007 12:00AM',145586],['05/1/2007 12:00AM',145903],['06/1/2007 12:00AM',146063],['07/1/2007 12:00AM',145905],['08/1/2007 12:00AM',145682],['09/1/2007 12:00AM',146244],['10/1/2007 12:00AM',145946],['11/1/2007 12:00AM',146595],['12/1/2007 12:00AM',146273],['01/1/2008 12:00AM',146378],['02/1/2008 12:00AM',146156],['03/1/2008 12:00AM',146086],['04/1/2008 12:00AM',146132],['05/1/2008 12:00AM',145908],['06/1/2008 12:00AM',145737],['07/1/2008 12:00AM',145532],['08/1/2008 12:00AM',145203],['09/1/2008 12:00AM',145076],['10/1/2008 12:00AM',144802],['11/1/2008 12:00AM',144100],['12/1/2008 12:00AM',143369],['01/1/2009 12:00AM',142152],['02/1/2009 12:00AM',141640],['03/1/2009 12:00AM',140707],['04/1/2009 12:00AM',140656],['05/1/2009 12:00AM',140248],['06/1/2009 12:00AM',140009],['07/1/2009 12:00AM',139901],['08/1/2009 12:00AM',139492],['09/1/2009 12:00AM',138818],['10/1/2009 12:00AM',138432],['11/1/2009 12:00AM',138659],['12/1/2009 12:00AM',138013],['01/1/2010 12:00AM',138438],['02/1/2010 12:00AM',138581],['03/1/2010 12:00AM',138751],['04/1/2010 12:00AM',139297],['05/1/2010 12:00AM',139241],['06/1/2010 12:00AM',139141],['07/1/2010 12:00AM',139179],['08/1/2010 12:00AM',139438],['09/1/2010 12:00AM',139396],['10/1/2010 12:00AM',139119],['11/1/2010 12:00AM',139044],['12/1/2010 12:00AM',139301],['01/1/2011 12:00AM',139250],['02/1/2011 12:00AM',139394],['03/1/2011 12:00AM',139639],['04/1/2011 12:00AM',139586],['05/1/2011 12:00AM',139624],['06/1/2011 12:00AM',139384],['07/1/2011 12:00AM',139524],['08/1/2011 12:00AM',139942],['09/1/2011 12:00AM',140183],['10/1/2011 12:00AM',140368],['11/1/2011 12:00AM',140826],['12/1/2011 12:00AM',140902],['01/1/2012 12:00AM',141584],['02/1/2012 12:00AM',141858],['03/1/2012 12:00AM',142036],['04/1/2012 12:00AM',141899],['05/1/2012 12:00AM',142206],['06/1/2012 12:00AM',142391],['07/1/2012 12:00AM',142292],['08/1/2012 12:00AM',142291],['09/1/2012 12:00AM',143044],['10/1/2012 12:00AM',143431],['11/1/2012 12:00AM',143333],['12/1/2012 12:00AM',143330],['01/1/2013 12:00AM',143292],['02/1/2013 12:00AM',143362],['03/1/2013 12:00AM',143316],['04/1/2013 12:00AM',143635],['05/1/2013 12:00AM',143882],['06/1/2013 12:00AM',143999],['07/1/2013 12:00AM',144264],['08/1/2013 12:00AM',144326],['09/1/2013 12:00AM',144418],['10/1/2013 12:00AM',143537],['11/1/2013 12:00AM',144479],['12/1/2013 12:00AM',144778],['01/1/2014 12:00AM',145150],['02/1/2014 12:00AM',145134],['03/1/2014 12:00AM',145648],['04/1/2014 12:00AM',145667],['05/1/2014 12:00AM',145825],['06/1/2014 12:00AM',146247],['07/1/2014 12:00AM',146399],['08/1/2014 12:00AM',146530],['09/1/2014 12:00AM',146778],['10/1/2014 12:00AM',147427],['11/1/2014 12:00AM',147404],['12/1/2014 12:00AM',147615],['01/1/2015 12:00AM',148145],['02/1/2015 12:00AM',148045],['03/1/2015 12:00AM',148128],['04/1/2015 12:00AM',148511],['05/1/2015 12:00AM',148817],['06/1/2015 12:00AM',148816],['07/1/2015 12:00AM',148830],['08/1/2015 12:00AM',149181],['09/1/2015 12:00AM',148826],['10/1/2015 12:00AM',149246],['11/1/2015 12:00AM',149463],['12/1/2015 12:00AM',150128],['01/1/2016 12:00AM',150653],['02/1/2016 12:00AM',150939],['03/1/2016 12:00AM',151218],['04/1/2016 12:00AM',151074],['05/1/2016 12:00AM',151132],['06/1/2016 12:00AM',151223],['07/1/2016 12:00AM',151554],['08/1/2016 12:00AM',151779],['09/1/2016 12:00AM',151761],['10/1/2016 12:00AM',151793],['11/1/2016 12:00AM',151954],['12/1/2016 12:00AM',152157],['01/1/2017 12:00AM',152152],['02/1/2017 12:00AM',152480],['03/1/2017 12:00AM',153065],['04/1/2017 12:00AM',153255],['05/1/2017 12:00AM',153069],['06/1/2017 12:00AM',153318],['07/1/2017 12:00AM',153569],['08/1/2017 12:00AM',153503],['09/1/2017 12:00AM',154286],['10/1/2017 12:00AM',153609],['11/1/2017 12:00AM',153805],['12/1/2017 12:00AM',153904],['01/1/2018 12:00AM',154425],['02/1/2018 12:00AM',155197],['03/1/2018 12:00AM',155214],['04/1/2018 12:00AM',155312],['05/1/2018 12:00AM',155652],['06/1/2018 12:00AM',155762],['07/1/2018 12:00AM',156146],['08/1/2018 12:00AM',155504],['09/1/2018 12:00AM',156015],['10/1/2018 12:00AM',156391],['11/1/2018 12:00AM',156721],['12/1/2018 12:00AM',156817],['01/1/2019 12:00AM',156487],['02/1/2019 12:00AM',156863],['03/1/2019 12:00AM',156701],['04/1/2019 12:00AM',156625],['05/1/2019 12:00AM',156821],['06/1/2019 12:00AM',157232],['07/1/2019 12:00AM',157529],['08/1/2019 12:00AM',157829],['09/1/2019 12:00AM',158339],['10/1/2019 12:00AM',158545],['11/1/2019 12:00AM',158629],['12/1/2019 12:00AM',158845],['01/1/2020 12:00AM',158508],['02/1/2020 12:00AM',158714],['03/1/2020 12:00AM',155353],['04/1/2020 12:00AM',133185],['05/1/2020 12:00AM',137173],['06/1/2020 12:00AM',142342],['07/1/2020 12:00AM',143779],['08/1/2020 12:00AM',147245],['09/1/2020 12:00AM',147620],['10/1/2020 12:00AM',149931],['11/1/2020 12:00AM',149934],['12/1/2020 12:00AM',149975],['01/1/2021 12:00AM',149852],['02/1/2021 12:00AM',150189],['03/1/2021 12:00AM',150644],['04/1/2021 12:00AM',151081],['05/1/2021 12:00AM',151535],['06/1/2021 12:00AM',151734],['07/1/2021 12:00AM',152773],['08/1/2021 12:00AM',153250],['09/1/2021 12:00AM',153843],['10/1/2021 12:00AM',154475],['11/1/2021 12:00AM',155530],['12/1/2021 12:00AM',156099],['01/1/2022 12:00AM',157115],['02/1/2022 12:00AM',157598],['03/1/2022 12:00AM',158206],['04/1/2022 12:00AM',157891],['05/1/2022 12:00AM',158378],['06/1/2022 12:00AM',158094],['07/1/2022 12:00AM',158258],['08/1/2022 12:00AM',158735],['09/1/2022 12:00AM',158810],['10/1/2022 12:00AM',158684],['11/1/2022 12:00AM',158507],['12/1/2022 12:00AM',159259],['01/1/2023 12:00AM',160217],['02/1/2023 12:00AM',160395],['03/1/2023 12:00AM',160812],['04/1/2023 12:00AM',160974],['05/1/2023 12:00AM',160796],['06/1/2023 12:00AM',160979],['07/1/2023 12:00AM',161183],['08/1/2023 12:00AM',161475],['09/1/2023 12:00AM',161442],['10/1/2023 12:00AM',161211],['11/1/2023 12:00AM',161886],['12/1/2023 12:00AM',161124],['01/1/2024 12:00AM',161190],['02/1/2024 12:00AM',161013],['03/1/2024 12:00AM',161425],['04/1/2024 12:00AM',161495],['05/1/2024 12:00AM',161164],['06/1/2024 12:00AM',161155],['07/1/2024 12:00AM',161219],['08/1/2024 12:00AM',161425],['09/1/2024 12:00AM',161802],['10/1/2024 12:00AM',161456],['11/1/2024 12:00AM',161183],['12/1/2024 12:00AM',161661]];
var plot10 = [['05/1/1990 12:00AM',109834],['06/1/1990 12:00AM',109857],['07/1/1990 12:00AM',109822],['08/1/1990 12:00AM',109610],['09/1/1990 12:00AM',109520],['10/1/1990 12:00AM',109374],['11/1/1990 12:00AM',109220],['12/1/1990 12:00AM',109168],['01/1/1991 12:00AM',109051],['02/1/1991 12:00AM',108731],['03/1/1991 12:00AM',108569],['04/1/1991 12:00AM',108352],['05/1/1991 12:00AM',108250],['06/1/1991 12:00AM',108338],['07/1/1991 12:00AM',108290],['08/1/1991 12:00AM',108302],['09/1/1991 12:00AM',108333],['10/1/1991 12:00AM',108362],['11/1/1991 12:00AM',108300],['12/1/1991 12:00AM',108330],['01/1/1992 12:00AM',108367],['02/1/1992 12:00AM',108312],['03/1/1992 12:00AM',108361],['04/1/1992 12:00AM',108515],['05/1/1992 12:00AM',108648],['06/1/1992 12:00AM',108717],['07/1/1992 12:00AM',108799],['08/1/1992 12:00AM',108923],['09/1/1992 12:00AM',108954],['10/1/1992 12:00AM',109135],['11/1/1992 12:00AM',109280],['12/1/1992 12:00AM',109500],['01/1/1993 12:00AM',109795],['02/1/1993 12:00AM',110044],['03/1/1993 12:00AM',109992],['04/1/1993 12:00AM',110295],['05/1/1993 12:00AM',110570],['06/1/1993 12:00AM',110751],['07/1/1993 12:00AM',111060],['08/1/1993 12:00AM',111209],['09/1/1993 12:00AM',111454],['10/1/1993 12:00AM',111734],['11/1/1993 12:00AM',111990],['12/1/1993 12:00AM',112324],['01/1/1994 12:00AM',112598],['02/1/1994 12:00AM',112779],['03/1/1994 12:00AM',113240],['04/1/1994 12:00AM',113587],['05/1/1994 12:00AM',113923],['06/1/1994 12:00AM',114237],['07/1/1994 12:00AM',114607],['08/1/1994 12:00AM',114899],['09/1/1994 12:00AM',115253],['10/1/1994 12:00AM',115458],['11/1/1994 12:00AM',115873],['12/1/1994 12:00AM',116176],['01/1/1995 12:00AM',116504],['02/1/1995 12:00AM',116693],['03/1/1995 12:00AM',116907],['04/1/1995 12:00AM',117065],['05/1/1995 12:00AM',117050],['06/1/1995 12:00AM',117286],['07/1/1995 12:00AM',117377],['08/1/1995 12:00AM',117639],['09/1/1995 12:00AM',117880],['10/1/1995 12:00AM',118029],['11/1/1995 12:00AM',118168],['12/1/1995 12:00AM',118325],['01/1/1996 12:00AM',118318],['02/1/1996 12:00AM',118734],['03/1/1996 12:00AM',118990],['04/1/1996 12:00AM',119156],['05/1/1996 12:00AM',119489],['06/1/1996 12:00AM',119770],['07/1/1996 12:00AM',120016],['08/1/1996 12:00AM',120201],['09/1/1996 12:00AM',120402],['10/1/1996 12:00AM',120663],['11/1/1996 12:00AM',120949],['12/1/1996 12:00AM',121145],['01/1/1997 12:00AM',121363],['02/1/1997 12:00AM',121675],['03/1/1997 12:00AM',121989],['04/1/1997 12:00AM',122284],['05/1/1997 12:00AM',122551],['06/1/1997 12:00AM',122816],['07/1/1997 12:00AM',123112],['08/1/1997 12:00AM',123092],['09/1/1997 12:00AM',123577],['10/1/1997 12:00AM',123923],['11/1/1997 12:00AM',124230],['12/1/1997 12:00AM',124551],['01/1/1998 12:00AM',124813],['02/1/1998 12:00AM',125018],['03/1/1998 12:00AM',125164],['04/1/1998 12:00AM',125445],['05/1/1998 12:00AM',125846],['06/1/1998 12:00AM',126077],['07/1/1998 12:00AM',126209],['08/1/1998 12:00AM',126547],['09/1/1998 12:00AM',126745],['10/1/1998 12:00AM',126950],['11/1/1998 12:00AM',127225],['12/1/1998 12:00AM',127598],['01/1/1999 12:00AM',127704],['02/1/1999 12:00AM',128118],['03/1/1999 12:00AM',128233],['04/1/1999 12:00AM',128595],['05/1/1999 12:00AM',128810],['06/1/1999 12:00AM',129088],['07/1/1999 12:00AM',129423],['08/1/1999 12:00AM',129569],['09/1/1999 12:00AM',129781],['10/1/1999 12:00AM',130179],['11/1/1999 12:00AM',130467],['12/1/1999 12:00AM',130781],['01/1/2000 12:00AM',131009],['02/1/2000 12:00AM',131120],['03/1/2000 12:00AM',131604],['04/1/2000 12:00AM',131883],['05/1/2000 12:00AM',132106],['06/1/2000 12:00AM',132060],['07/1/2000 12:00AM',132228],['08/1/2000 12:00AM',132231],['09/1/2000 12:00AM',132357],['10/1/2000 12:00AM',132352],['11/1/2000 12:00AM',132553],['12/1/2000 12:00AM',132718],['01/1/2001 12:00AM',132699],['02/1/2001 12:00AM',132786],['03/1/2001 12:00AM',132751],['04/1/2001 12:00AM',132455],['05/1/2001 12:00AM',132411],['06/1/2001 12:00AM',132296],['07/1/2001 12:00AM',132173],['08/1/2001 12:00AM',132024],['09/1/2001 12:00AM',131765],['10/1/2001 12:00AM',131452],['11/1/2001 12:00AM',131141],['12/1/2001 12:00AM',130984],['01/1/2002 12:00AM',130853],['02/1/2002 12:00AM',130732],['03/1/2002 12:00AM',130720],['04/1/2002 12:00AM',130616],['05/1/2002 12:00AM',130632],['06/1/2002 12:00AM',130682],['07/1/2002 12:00AM',130585],['08/1/2002 12:00AM',130587],['09/1/2002 12:00AM',130498],['10/1/2002 12:00AM',130621],['11/1/2002 12:00AM',130617],['12/1/2002 12:00AM',130469],['01/1/2003 12:00AM',130580],['02/1/2003 12:00AM',130443],['03/1/2003 12:00AM',130232],['04/1/2003 12:00AM',130176],['05/1/2003 12:00AM',130196],['06/1/2003 12:00AM',130192],['07/1/2003 12:00AM',130184],['08/1/2003 12:00AM',130153],['09/1/2003 12:00AM',130252],['10/1/2003 12:00AM',130439],['11/1/2003 12:00AM',130482],['12/1/2003 12:00AM',130594],['01/1/2004 12:00AM',130766],['02/1/2004 12:00AM',130822],['03/1/2004 12:00AM',131139],['04/1/2004 12:00AM',131409],['05/1/2004 12:00AM',131693],['06/1/2004 12:00AM',131789],['07/1/2004 12:00AM',131850],['08/1/2004 12:00AM',131936],['09/1/2004 12:00AM',132083],['10/1/2004 12:00AM',132435],['11/1/2004 12:00AM',132509],['12/1/2004 12:00AM',132633],['01/1/2005 12:00AM',132779],['02/1/2005 12:00AM',133033],['03/1/2005 12:00AM',133154],['04/1/2005 12:00AM',133515],['05/1/2005 12:00AM',133687],['06/1/2005 12:00AM',133939],['07/1/2005 12:00AM',134297],['08/1/2005 12:00AM',134495],['09/1/2005 12:00AM',134552],['10/1/2005 12:00AM',134646],['11/1/2005 12:00AM',135001],['12/1/2005 12:00AM',135160],['01/1/2006 12:00AM',135425],['02/1/2006 12:00AM',135732],['03/1/2006 12:00AM',136041],['04/1/2006 12:00AM',136210],['05/1/2006 12:00AM',136247],['06/1/2006 12:00AM',136328],['07/1/2006 12:00AM',136522],['08/1/2006 12:00AM',136688],['09/1/2006 12:00AM',136825],['10/1/2006 12:00AM',136849],['11/1/2006 12:00AM',137068],['12/1/2006 12:00AM',137251],['01/1/2007 12:00AM',137475],['02/1/2007 12:00AM',137556],['03/1/2007 12:00AM',137782],['04/1/2007 12:00AM',137842],['05/1/2007 12:00AM',137993],['06/1/2007 12:00AM',138072],['07/1/2007 12:00AM',138042],['08/1/2007 12:00AM',138017],['09/1/2007 12:00AM',138103],['10/1/2007 12:00AM',138175],['11/1/2007 12:00AM',138291],['12/1/2007 12:00AM',138396],['01/1/2008 12:00AM',138397],['02/1/2008 12:00AM',138326],['03/1/2008 12:00AM',138256],['04/1/2008 12:00AM',138037],['05/1/2008 12:00AM',137847],['06/1/2008 12:00AM',137689],['07/1/2008 12:00AM',137492],['08/1/2008 12:00AM',137209],['09/1/2008 12:00AM',136759],['10/1/2008 12:00AM',136294],['11/1/2008 12:00AM',135546],['12/1/2008 12:00AM',134848],['01/1/2009 12:00AM',134066],['02/1/2009 12:00AM',133314],['03/1/2009 12:00AM',132494],['04/1/2009 12:00AM',131825],['05/1/2009 12:00AM',131470],['06/1/2009 12:00AM',131003],['07/1/2009 12:00AM',130661],['08/1/2009 12:00AM',130480],['09/1/2009 12:00AM',130241],['10/1/2009 12:00AM',130061],['11/1/2009 12:00AM',130059],['12/1/2009 12:00AM',129807],['01/1/2010 12:00AM',129795],['02/1/2010 12:00AM',129702],['03/1/2010 12:00AM',129865],['04/1/2010 12:00AM',130115],['05/1/2010 12:00AM',130645],['06/1/2010 12:00AM',130501],['07/1/2010 12:00AM',130420],['08/1/2010 12:00AM',130423],['09/1/2010 12:00AM',130340],['10/1/2010 12:00AM',130620],['11/1/2010 12:00AM',130754],['12/1/2010 12:00AM',130836],['01/1/2011 12:00AM',130839],['02/1/2011 12:00AM',131054],['03/1/2011 12:00AM',131278],['04/1/2011 12:00AM',131604],['05/1/2011 12:00AM',131704],['06/1/2011 12:00AM',131936],['07/1/2011 12:00AM',131992],['08/1/2011 12:00AM',132123],['09/1/2011 12:00AM',132346],['10/1/2011 12:00AM',132557],['11/1/2011 12:00AM',132701],['12/1/2011 12:00AM',132902],['01/1/2012 12:00AM',133243],['02/1/2012 12:00AM',133521],['03/1/2012 12:00AM',133745],['04/1/2012 12:00AM',133828],['05/1/2012 12:00AM',133935],['06/1/2012 12:00AM',134008],['07/1/2012 12:00AM',134153],['08/1/2012 12:00AM',134329],['09/1/2012 12:00AM',134512],['10/1/2012 12:00AM',134672],['11/1/2012 12:00AM',134831],['12/1/2012 12:00AM',135074],['01/1/2013 12:00AM',135263],['02/1/2013 12:00AM',135548],['03/1/2013 12:00AM',135690],['04/1/2013 12:00AM',135876],['05/1/2013 12:00AM',136090],['06/1/2013 12:00AM',136269],['07/1/2013 12:00AM',136391],['08/1/2013 12:00AM',136634],['09/1/2013 12:00AM',136819],['10/1/2013 12:00AM',137039],['11/1/2013 12:00AM',137312],['12/1/2013 12:00AM',137367],['01/1/2014 12:00AM',137551],['02/1/2014 12:00AM',137710],['03/1/2014 12:00AM',137987],['04/1/2014 12:00AM',138298],['05/1/2014 12:00AM',138500],['06/1/2014 12:00AM',138833],['07/1/2014 12:00AM',139076],['08/1/2014 12:00AM',139257],['09/1/2014 12:00AM',139564],['10/1/2014 12:00AM',139804],['11/1/2014 12:00AM',140088],['12/1/2014 12:00AM',140366],['01/1/2015 12:00AM',140562],['02/1/2015 12:00AM',140831],['03/1/2015 12:00AM',140925],['04/1/2015 12:00AM',141202],['05/1/2015 12:00AM',141539],['06/1/2015 12:00AM',141695],['07/1/2015 12:00AM',141989],['08/1/2015 12:00AM',142130],['09/1/2015 12:00AM',142265],['10/1/2015 12:00AM',142584],['11/1/2015 12:00AM',142810],['12/1/2015 12:00AM',143083],['01/1/2016 12:00AM',143196],['02/1/2016 12:00AM',143411],['03/1/2016 12:00AM',143666],['04/1/2016 12:00AM',143856],['05/1/2016 12:00AM',143901],['06/1/2016 12:00AM',144152],['07/1/2016 12:00AM',144515],['08/1/2016 12:00AM',144664],['09/1/2016 12:00AM',144961],['10/1/2016 12:00AM',145069],['11/1/2016 12:00AM',145188],['12/1/2016 12:00AM',145410],['01/1/2017 12:00AM',145636],['02/1/2017 12:00AM',145848],['03/1/2017 12:00AM',145976],['04/1/2017 12:00AM',146173],['05/1/2017 12:00AM',146389],['06/1/2017 12:00AM',146588],['07/1/2017 12:00AM',146772],['08/1/2017 12:00AM',146907],['09/1/2017 12:00AM',146999],['10/1/2017 12:00AM',147146],['11/1/2017 12:00AM',147375],['12/1/2017 12:00AM',147521],['01/1/2018 12:00AM',147667],['02/1/2018 12:00AM',148054],['03/1/2018 12:00AM',148280],['04/1/2018 12:00AM',148426],['05/1/2018 12:00AM',148755],['06/1/2018 12:00AM',148968],['07/1/2018 12:00AM',149023],['08/1/2018 12:00AM',149274],['09/1/2018 12:00AM',149361],['10/1/2018 12:00AM',149525],['11/1/2018 12:00AM',149622],['12/1/2018 12:00AM',149804],['01/1/2019 12:00AM',150062],['02/1/2019 12:00AM',150067],['03/1/2019 12:00AM',150294],['04/1/2019 12:00AM',150602],['05/1/2019 12:00AM',150640],['06/1/2019 12:00AM',150844],['07/1/2019 12:00AM',150934],['08/1/2019 12:00AM',151155],['09/1/2019 12:00AM',151358],['10/1/2019 12:00AM',151458],['11/1/2019 12:00AM',151666],['12/1/2019 12:00AM',151792],['01/1/2020 12:00AM',152045],['02/1/2020 12:00AM',152309],['03/1/2020 12:00AM',150898],['04/1/2020 12:00AM',130421],['05/1/2020 12:00AM',133040],['06/1/2020 12:00AM',137655],['07/1/2020 12:00AM',139240],['08/1/2020 12:00AM',140774],['09/1/2020 12:00AM',141820],['10/1/2020 12:00AM',142493],['11/1/2020 12:00AM',142761],['12/1/2020 12:00AM',142518],['01/1/2021 12:00AM',142916],['02/1/2021 12:00AM',143443],['03/1/2021 12:00AM',144274],['04/1/2021 12:00AM',144593],['05/1/2021 12:00AM',145044],['06/1/2021 12:00AM',145822],['07/1/2021 12:00AM',146761],['08/1/2021 12:00AM',147226],['09/1/2021 12:00AM',147706],['10/1/2021 12:00AM',148566],['11/1/2021 12:00AM',149197],['12/1/2021 12:00AM',149763],['01/1/2022 12:00AM',150014],['02/1/2022 12:00AM',150876],['03/1/2022 12:00AM',151370],['04/1/2022 12:00AM',151642],['05/1/2022 12:00AM',151928],['06/1/2022 12:00AM',152348],['07/1/2022 12:00AM',153038],['08/1/2022 12:00AM',153281],['09/1/2022 12:00AM',153536],['10/1/2022 12:00AM',153897],['11/1/2022 12:00AM',154155],['12/1/2022 12:00AM',154291],['01/1/2023 12:00AM',154773],['02/1/2023 12:00AM',155060],['03/1/2023 12:00AM',155206],['04/1/2023 12:00AM',155484],['05/1/2023 12:00AM',155787],['06/1/2023 12:00AM',156027],['07/1/2023 12:00AM',156211],['08/1/2023 12:00AM',156421],['09/1/2023 12:00AM',156667],['10/1/2023 12:00AM',156832],['11/1/2023 12:00AM',157014],['12/1/2023 12:00AM',157304],['01/1/2024 12:00AM',157560],['02/1/2024 12:00AM',157796],['03/1/2024 12:00AM',158106],['04/1/2024 12:00AM',158214],['05/1/2024 12:00AM',158430],['06/1/2024 12:00AM',158548],['07/1/2024 12:00AM',158692],['08/1/2024 12:00AM',158770],['09/1/2024 12:00AM',159025],['10/1/2024 12:00AM',159068],['11/1/2024 12:00AM',159280],['12/1/2024 12:00AM',159536]];
var plot11 = [['05/1/1990 12:00AM',0.920942],['06/1/1990 12:00AM',0.921215],['07/1/1990 12:00AM',0.921581],['08/1/1990 12:00AM',0.921887],['09/1/1990 12:00AM',0.921936],['10/1/1990 12:00AM',0.921948],['11/1/1990 12:00AM',0.922022],['12/1/1990 12:00AM',0.921989],['01/1/1991 12:00AM',0.92263],['02/1/1991 12:00AM',0.922982],['03/1/1991 12:00AM',0.923236],['04/1/1991 12:00AM',0.922789],['05/1/1991 12:00AM',0.922785],['06/1/1991 12:00AM',0.922588],['07/1/1991 12:00AM',0.922315],['08/1/1991 12:00AM',0.92225],['09/1/1991 12:00AM',0.921801],['10/1/1991 12:00AM',0.921565],['11/1/1991 12:00AM',0.921264],['12/1/1991 12:00AM',0.921177],['01/1/1992 12:00AM',0.920669],['02/1/1992 12:00AM',0.920374],['03/1/1992 12:00AM',0.919907],['04/1/1992 12:00AM',0.919817],['05/1/1992 12:00AM',0.919491],['06/1/1992 12:00AM',0.919252],['07/1/1992 12:00AM',0.918869],['08/1/1992 12:00AM',0.918437],['09/1/1992 12:00AM',0.918362],['10/1/1992 12:00AM',0.91837],['11/1/1992 12:00AM',0.918344],['12/1/1992 12:00AM',0.918175],['01/1/1993 12:00AM',0.918469],['02/1/1993 12:00AM',0.918701],['03/1/1993 12:00AM',0.918944],['04/1/1993 12:00AM',0.919516],['05/1/1993 12:00AM',0.919741],['06/1/1993 12:00AM',0.91996],['07/1/1993 12:00AM',0.920412],['08/1/1993 12:00AM',0.920705],['09/1/1993 12:00AM',0.92127],['10/1/1993 12:00AM',0.92167],['11/1/1993 12:00AM',0.922084],['12/1/1993 12:00AM',0.922464],['01/1/1994 12:00AM',0.922558],['02/1/1994 12:00AM',0.922654],['03/1/1994 12:00AM',0.923373],['04/1/1994 12:00AM',0.923844],['05/1/1994 12:00AM',0.924402],['06/1/1994 12:00AM',0.925305],['07/1/1994 12:00AM',0.926312],['08/1/1994 12:00AM',0.927259],['09/1/1994 12:00AM',0.927867],['10/1/1994 12:00AM',0.928325],['11/1/1994 12:00AM',0.928854],['12/1/1994 12:00AM',0.929415],['01/1/1995 12:00AM',0.930362],['02/1/1995 12:00AM',0.931221],['03/1/1995 12:00AM',0.931793],['04/1/1995 12:00AM',0.932468],['05/1/1995 12:00AM',0.933596],['06/1/1995 12:00AM',0.934459],['07/1/1995 12:00AM',0.934993],['08/1/1995 12:00AM',0.935883],['09/1/1995 12:00AM',0.936735],['10/1/1995 12:00AM',0.937655],['11/1/1995 12:00AM',0.938766],['12/1/1995 12:00AM',0.93997],['01/1/1996 12:00AM',0.940891],['02/1/1996 12:00AM',0.941804],['03/1/1996 12:00AM',0.942621],['04/1/1996 12:00AM',0.943354],['05/1/1996 12:00AM',0.943832],['06/1/1996 12:00AM',0.944177],['07/1/1996 12:00AM',0.944594],['08/1/1996 12:00AM',0.944841],['09/1/1996 12:00AM',0.945009],['10/1/1996 12:00AM',0.945191],['11/1/1996 12:00AM',0.945415],['12/1/1996 12:00AM',0.945544],['01/1/1997 12:00AM',0.945573],['02/1/1997 12:00AM',0.945851],['03/1/1997 12:00AM',0.945938],['04/1/1997 12:00AM',0.946035],['05/1/1997 12:00AM',0.946044],['06/1/1997 12:00AM',0.946294],['07/1/1997 12:00AM',0.946537],['08/1/1997 12:00AM',0.94667],['09/1/1997 12:00AM',0.947203],['10/1/1997 12:00AM',0.947907],['11/1/1997 12:00AM',0.94826],['12/1/1997 12:00AM',0.948729],['01/1/1998 12:00AM',0.949464],['02/1/1998 12:00AM',0.950077],['03/1/1998 12:00AM',0.950941],['04/1/1998 12:00AM',0.951706],['05/1/1998 12:00AM',0.952679],['06/1/1998 12:00AM',0.953645],['07/1/1998 12:00AM',0.954704],['08/1/1998 12:00AM',0.956066],['09/1/1998 12:00AM',0.956886],['10/1/1998 12:00AM',0.957703],['11/1/1998 12:00AM',0.958616],['12/1/1998 12:00AM',0.959379],['01/1/1999 12:00AM',0.959813],['02/1/1999 12:00AM',0.96053],['03/1/1999 12:00AM',0.961174],['04/1/1999 12:00AM',0.962102],['05/1/1999 12:00AM',0.962765],['06/1/1999 12:00AM',0.963366],['07/1/1999 12:00AM',0.964122],['08/1/1999 12:00AM',0.964684],['09/1/1999 12:00AM',0.965547],['10/1/1999 12:00AM',0.966362],['11/1/1999 12:00AM',0.967163],['12/1/1999 12:00AM',0.96799],['01/1/2000 12:00AM',0.967937],['02/1/2000 12:00AM',0.967567],['03/1/2000 12:00AM',0.967415],['04/1/2000 12:00AM',0.966877],['05/1/2000 12:00AM',0.966932],['06/1/2000 12:00AM',0.966642],['07/1/2000 12:00AM',0.966509],['08/1/2000 12:00AM',0.966316],['09/1/2000 12:00AM',0.966001],['10/1/2000 12:00AM',0.965494],['11/1/2000 12:00AM',0.964984],['12/1/2000 12:00AM',0.964337],['01/1/2001 12:00AM',0.964652],['02/1/2001 12:00AM',0.965072],['03/1/2001 12:00AM',0.965135],['04/1/2001 12:00AM',0.965466],['05/1/2001 12:00AM',0.96538],['06/1/2001 12:00AM',0.965563],['07/1/2001 12:00AM',0.965211],['08/1/2001 12:00AM',0.965334],['09/1/2001 12:00AM',0.965001],['10/1/2001 12:00AM',0.964862],['11/1/2001 12:00AM',0.964638],['12/1/2001 12:00AM',0.964502],['01/1/2002 12:00AM',0.964596],['02/1/2002 12:00AM',0.964034],['03/1/2002 12:00AM',0.963738],['04/1/2002 12:00AM',0.963305],['05/1/2002 12:00AM',0.962545],['06/1/2002 12:00AM',0.961829],['07/1/2002 12:00AM',0.961247],['08/1/2002 12:00AM',0.960097],['09/1/2002 12:00AM',0.959061],['10/1/2002 12:00AM',0.958195],['11/1/2002 12:00AM',0.957709],['12/1/2002 12:00AM',0.957171],['01/1/2003 12:00AM',0.956002],['02/1/2003 12:00AM',0.955221],['03/1/2003 12:00AM',0.954193],['04/1/2003 12:00AM',0.953051],['05/1/2003 12:00AM',0.952205],['06/1/2003 12:00AM',0.951112],['07/1/2003 12:00AM',0.950253],['08/1/2003 12:00AM',0.949501],['09/1/2003 12:00AM',0.949176],['10/1/2003 12:00AM',0.948504],['11/1/2003 12:00AM',0.947326],['12/1/2003 12:00AM',0.946259],['01/1/2004 12:00AM',0.945767],['02/1/2004 12:00AM',0.94539],['03/1/2004 12:00AM',0.945355],['04/1/2004 12:00AM',0.945501],['05/1/2004 12:00AM',0.945656],['06/1/2004 12:00AM',0.94583],['07/1/2004 12:00AM',0.945647],['08/1/2004 12:00AM',0.945568],['09/1/2004 12:00AM',0.9456],['10/1/2004 12:00AM',0.945805],['11/1/2004 12:00AM',0.945997],['12/1/2004 12:00AM',0.946248],['01/1/2005 12:00AM',0.946449],['02/1/2005 12:00AM',0.946729],['03/1/2005 12:00AM',0.946688],['04/1/2005 12:00AM',0.946491],['05/1/2005 12:00AM',0.946126],['06/1/2005 12:00AM',0.945976],['07/1/2005 12:00AM',0.946042],['08/1/2005 12:00AM',0.945957],['09/1/2005 12:00AM',0.945787],['10/1/2005 12:00AM',0.945519],['11/1/2005 12:00AM',0.945724],['12/1/2005 12:00AM',0.945747],['01/1/2006 12:00AM',0.945686],['02/1/2006 12:00AM',0.945563],['03/1/2006 12:00AM',0.945543],['04/1/2006 12:00AM',0.945731],['05/1/2006 12:00AM',0.945858],['06/1/2006 12:00AM',0.945797],['07/1/2006 12:00AM',0.945894],['08/1/2006 12:00AM',0.945965],['09/1/2006 12:00AM',0.945961],['10/1/2006 12:00AM',0.945726],['11/1/2006 12:00AM',0.945263],['12/1/2006 12:00AM',0.944717],['01/1/2007 12:00AM',0.944333],['02/1/2007 12:00AM',0.94397],['03/1/2007 12:00AM',0.943572],['04/1/2007 12:00AM',0.943516],['05/1/2007 12:00AM',0.943534],['06/1/2007 12:00AM',0.943607],['07/1/2007 12:00AM',0.943555],['08/1/2007 12:00AM',0.943744],['09/1/2007 12:00AM',0.943702],['10/1/2007 12:00AM',0.94412],['11/1/2007 12:00AM',0.944247],['12/1/2007 12:00AM',0.944737],['01/1/2008 12:00AM',0.945074],['02/1/2008 12:00AM',0.94546],['03/1/2008 12:00AM',0.945856],['04/1/2008 12:00AM',0.945673],['05/1/2008 12:00AM',0.945586],['06/1/2008 12:00AM',0.945544],['07/1/2008 12:00AM',0.945431],['08/1/2008 12:00AM',0.945228],['09/1/2008 12:00AM',0.945089],['10/1/2008 12:00AM',0.94463],['11/1/2008 12:00AM',0.944404],['12/1/2008 12:00AM',0.943938],['01/1/2009 12:00AM',0.943742],['02/1/2009 12:00AM',0.943308],['03/1/2009 12:00AM',0.94291],['04/1/2009 12:00AM',0.942294],['05/1/2009 12:00AM',0.941682],['06/1/2009 12:00AM',0.940924],['07/1/2009 12:00AM',0.940024],['08/1/2009 12:00AM',0.939228],['09/1/2009 12:00AM',0.938856],['10/1/2009 12:00AM',0.938714],['11/1/2009 12:00AM',0.938492],['12/1/2009 12:00AM',0.93849],['01/1/2010 12:00AM',0.938027],['02/1/2010 12:00AM',0.937587],['03/1/2010 12:00AM',0.937114],['04/1/2010 12:00AM',0.936853],['05/1/2010 12:00AM',0.936924],['06/1/2010 12:00AM',0.93711],['07/1/2010 12:00AM',0.937369],['08/1/2010 12:00AM',0.937365],['09/1/2010 12:00AM',0.9371],['10/1/2010 12:00AM',0.937049],['11/1/2010 12:00AM',0.937249],['12/1/2010 12:00AM',0.93714],['01/1/2011 12:00AM',0.937309],['02/1/2011 12:00AM',0.937662],['03/1/2011 12:00AM',0.938009],['04/1/2011 12:00AM',0.938737],['05/1/2011 12:00AM',0.939155],['06/1/2011 12:00AM',0.939876],['07/1/2011 12:00AM',0.940622],['08/1/2011 12:00AM',0.941354],['09/1/2011 12:00AM',0.942109],['10/1/2011 12:00AM',0.942563],['11/1/2011 12:00AM',0.942723],['12/1/2011 12:00AM',0.943056],['01/1/2012 12:00AM',0.94318],['02/1/2012 12:00AM',0.943268],['03/1/2012 12:00AM',0.943394],['04/1/2012 12:00AM',0.943419],['05/1/2012 12:00AM',0.943299],['06/1/2012 12:00AM',0.942846],['07/1/2012 12:00AM',0.942578],['08/1/2012 12:00AM',0.942571],['09/1/2012 12:00AM',0.942259],['10/1/2012 12:00AM',0.941808],['11/1/2012 12:00AM',0.941672],['12/1/2012 12:00AM',0.941604],['01/1/2013 12:00AM',0.941844],['02/1/2013 12:00AM',0.942199],['03/1/2013 12:00AM',0.942629],['04/1/2013 12:00AM',0.942868],['05/1/2013 12:00AM',0.943201],['06/1/2013 12:00AM',0.943634],['07/1/2013 12:00AM',0.943853],['08/1/2013 12:00AM',0.944075],['09/1/2013 12:00AM',0.94466],['10/1/2013 12:00AM',0.945977],['11/1/2013 12:00AM',0.946786],['12/1/2013 12:00AM',0.94732],['01/1/2014 12:00AM',0.947627],['02/1/2014 12:00AM',0.947906],['03/1/2014 12:00AM',0.947957],['04/1/2014 12:00AM',0.948243],['05/1/2014 12:00AM',0.94857],['06/1/2014 12:00AM',0.948819],['07/1/2014 12:00AM',0.949198],['08/1/2014 12:00AM',0.949503],['09/1/2014 12:00AM',0.949793],['10/1/2014 12:00AM',0.949256],['11/1/2014 12:00AM',0.949254],['12/1/2014 12:00AM',0.949427],['01/1/2015 12:00AM',0.949525],['02/1/2015 12:00AM',0.949727],['03/1/2015 12:00AM',0.950058],['04/1/2015 12:00AM',0.950172],['05/1/2015 12:00AM',0.950283],['06/1/2015 12:00AM',0.95052],['07/1/2015 12:00AM',0.950858],['08/1/2015 12:00AM',0.951055],['09/1/2015 12:00AM',0.951477],['10/1/2015 12:00AM',0.952066],['11/1/2015 12:00AM',0.952493],['12/1/2015 12:00AM',0.952675],['01/1/2016 12:00AM',0.952815],['02/1/2016 12:00AM',0.95272],['03/1/2016 12:00AM',0.95261],['04/1/2016 12:00AM',0.95273],['05/1/2016 12:00AM',0.952818],['06/1/2016 12:00AM',0.952909],['07/1/2016 12:00AM',0.952869],['08/1/2016 12:00AM',0.952902],['09/1/2016 12:00AM',0.952841],['10/1/2016 12:00AM',0.95287],['11/1/2016 12:00AM',0.952869],['12/1/2016 12:00AM',0.953084],['01/1/2017 12:00AM',0.95364],['02/1/2017 12:00AM',0.954172],['03/1/2017 12:00AM',0.954474],['04/1/2017 12:00AM',0.954605],['05/1/2017 12:00AM',0.954955],['06/1/2017 12:00AM',0.955194],['07/1/2017 12:00AM',0.955376],['08/1/2017 12:00AM',0.955701],['09/1/2017 12:00AM',0.955499],['10/1/2017 12:00AM',0.955685],['11/1/2017 12:00AM',0.955911],['12/1/2017 12:00AM',0.95615],['01/1/2018 12:00AM',0.956072],['02/1/2018 12:00AM',0.955861],['03/1/2018 12:00AM',0.955998],['04/1/2018 12:00AM',0.956154],['05/1/2018 12:00AM',0.956098],['06/1/2018 12:00AM',0.956122],['07/1/2018 12:00AM',0.956008],['08/1/2018 12:00AM',0.956251],['09/1/2018 12:00AM',0.956632],['10/1/2018 12:00AM',0.95648],['11/1/2018 12:00AM',0.956189],['12/1/2018 12:00AM',0.955919],['01/1/2019 12:00AM',0.956144],['02/1/2019 12:00AM',0.956369],['03/1/2019 12:00AM',0.956685],['04/1/2019 12:00AM',0.957175],['05/1/2019 12:00AM',0.957583],['06/1/2019 12:00AM',0.957832],['07/1/2019 12:00AM',0.958145],['08/1/2019 12:00AM',0.957959],['09/1/2019 12:00AM',0.957839],['10/1/2019 12:00AM',0.957773],['11/1/2019 12:00AM',0.95789],['12/1/2019 12:00AM',0.957916],['01/1/2020 12:00AM',0.95794],['02/1/2020 12:00AM',0.958187],['03/1/2020 12:00AM',0.959205],['04/1/2020 12:00AM',0.96068],['05/1/2020 12:00AM',0.961454],['06/1/2020 12:00AM',0.962095],['07/1/2020 12:00AM',0.962953],['08/1/2020 12:00AM',0.962815],['09/1/2020 12:00AM',0.963215],['10/1/2020 12:00AM',0.962806],['11/1/2020 12:00AM',0.962477],['12/1/2020 12:00AM',0.962034],['01/1/2021 12:00AM',0.961574],['02/1/2021 12:00AM',0.961194],['03/1/2021 12:00AM',0.96006],['04/1/2021 12:00AM',0.958211],['05/1/2021 12:00AM',0.957152],['06/1/2021 12:00AM',0.956649],['07/1/2021 12:00AM',0.956001],['08/1/2021 12:00AM',0.956387],['09/1/2021 12:00AM',0.956337],['10/1/2021 12:00AM',0.957284],['11/1/2021 12:00AM',0.957877],['12/1/2021 12:00AM',0.958638],['01/1/2022 12:00AM',0.958729],['02/1/2022 12:00AM',0.958918],['03/1/2022 12:00AM',0.958841],['04/1/2022 12:00AM',0.959121],['05/1/2022 12:00AM',0.959297],['06/1/2022 12:00AM',0.959515],['07/1/2022 12:00AM',0.960046],['08/1/2022 12:00AM',0.960458],['09/1/2022 12:00AM',0.961015],['10/1/2022 12:00AM',0.961689],['11/1/2022 12:00AM',0.962794],['12/1/2022 12:00AM',0.963577],['01/1/2023 12:00AM',0.964512],['02/1/2023 12:00AM',0.965294],['03/1/2023 12:00AM',0.96599],['04/1/2023 12:00AM',0.966446],['05/1/2023 12:00AM',0.967244],['06/1/2023 12:00AM',0.967709],['07/1/2023 12:00AM',0.967887],['08/1/2023 12:00AM',0.968142],['09/1/2023 12:00AM',0.968445],['10/1/2023 12:00AM',0.968695],['11/1/2023 12:00AM',0.968475],['12/1/2023 12:00AM',0.969099],['01/1/2024 12:00AM',0.970054],['02/1/2024 12:00AM',0.971161],['03/1/2024 12:00AM',0.972353],['04/1/2024 12:00AM',0.973502],['05/1/2024 12:00AM',0.974684],['06/1/2024 12:00AM',0.975899],['07/1/2024 12:00AM',0.977164],['08/1/2024 12:00AM',0.978401],['09/1/2024 12:00AM',0.979436],['10/1/2024 12:00AM',0.980467],['11/1/2024 12:00AM',0.981991],['12/1/2024 12:00AM',0.982871]];
var mrmcpe = [256];
plotx = [" 0.983 ","0.071%"," 6,886 "," 159,536 "," 161,661 "," 269,638 "];
plotx7 = ["Jan-10-2025 08:31"];

$(document).ready(function(){

	/* update the display date <div> with the formatted date */
	var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October",  "November", "December" ];
	//var date = new Date(updateDate[0]);
	//$('#dateUpdated').html('Updated on ' + monthNames[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear());
	
 	/* set chart dimensions based on iframe and container sizes */
	var iframeWidth_JobsCalculator = $("#container_JobsCalculator").width();
	var iframeHeight_JobsCalculator = $("#container_JobsCalculator").height();
	
	/* Taylor Rule Utility chart */
	var chart_JobsCalculator = '';
	var sourceLine_JobsCalculator = 'Source: Atlanta Fed';
	
    var jobsXMin = Date.UTC(plot3[0][0], 0, 1);        
	var jobsXMax = Date.UTC(plot3[plot3.length-1][0]);        
	var seriesArray = [];
	var targetEmploymentRateArray = [];

	for(var i = 0; i < plot1.length; i++) {
		seriesArray.push(plot1[i][1]);
		targetEmploymentRateArray.push(v_amcpe);
	}
	
	
	setChartDefaults(iframeWidth_JobsCalculator,iframeHeight_JobsCalculator,sourceLine_JobsCalculator,20); //375
	var chartOptions_JobsCalculator = {
		chart: { marginBottom: 120, marginRight: 20, renderTo: 'container_JobsCalculator' }, //285
		exporting: {
		    allowHTML: true,
		    showTable: true,
			chartOptions: {
				legend: { enabled: true }
			},			
			filename: 'atlanta-fed_jobs-calculator'
		},
		legend: { 			
			x: 0,
			itemWidth: iframeWidth_JobsCalculator * 0.9			
		},
		tooltip: {
			formatter: function() {

                if(this.series.name == 'Average monthly change in Payroll employment needed to achieve the target UR'){
                  return false ;
                // to disable the tooltip at a point return false 
                } else {
                    return 'Year: ' + Highcharts.dateFormat('%Y', this.x + (24 * 3600 * 1000 * 365) - 1)  + '<br>Average Monthly Change Per Year: ' + Highcharts.numberFormat(this.y, 0);
                }   
            }
		},
		title: { text: 'Historical Perspective' },
		/*subtitle: { useHTML: true, verticalAlign: 'bottom', align: 'left', y:-30, text: tableText},*/
		/*
        tooltip: {
            formatter: function () {
				var thisMonth = Highcharts.dateFormat('%B', this.x);
				var thisYear = Highcharts.dateFormat('%Y', this.x);
				switch(thisMonth) {
					case 'February': var thisQuarter = 'Q1'; break;
					case 'May': var thisQuarter = 'Q2'; break;
					case 'August': var thisQuarter = 'Q3'; break;
					case 'November': var thisQuarter = 'Q4'; break;
				}
                var s = '<span style="font-size: 14px;">' + thisYear + ':' + thisQuarter + ' average</span>';
                $.each(this.points, function (i, point) {
                    s += '<br /><span style="color: ' + point.series.color + '; font-weight: bold;">' + point.series.name + '</span>: ' + Highcharts.numberFormat(point.y, 2);
                });
                return s;
            },
            shared: true
        },
		*/
		plotOptions: {
			series: {
			    //enableMouseTracking: false;
				pointStart: jobsXMin, pointIntervalUnit: 'year'
			}
		},
		xAxis: {		    
			plotBands: recessionBands, 
			labels:  { y:20 },			
			type: 'datetime',
			max: jobsXMax
		},
		yAxis: {
			labels: { format: '{value:,.0f}' }, title: { enabled: false }
		},
		series: []
	};

	/* calculate the values in the combined series based on the formula */
	function calculateSeries() {

		/* starting with the fed funds rate series (which will have full values), go through each data point and make the calcuation
		   create a new series based on the calculation, and then create another single series of the actual fed funds rate */
		
		
/* BEGIN LAST CALL */

/* update the display date <div> with the formatted date */
	var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October",  "November", "December" ];
	//var date = new Date(updateDate[0]);
	//$('#dateUpdated').html('Updated on ' + monthNames[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear());
	
 	/* set chart dimensions based on iframe and container sizes */
	var iframeWidth_JobsCalculator = $("#container_JobsCalculator").width();
	var iframeHeight_JobsCalculator = $("#container_JobsCalculator").height();
	
	/* Taylor Rule Utility chart */
	var chart_JobsCalculator = '';
	
	
    var jobsXMin = Date.UTC(plot3[0][0], 0, 1);        
	var jobsXMax = Date.UTC(plot3[plot3.length-1][0]+1);        
	var seriesArray = [];
	var targetEmploymentRateArray = [];
	
	
	for(var i = 0; i < plot1.length; i++) {
		seriesArray.push(plot1[i][1]);
		targetEmploymentRateArray.push(v_amcpe);
	}
	
	
	
/* END LAST CALL */
		
		chartOptions_JobsCalculator.series.length = 0;
		//chartOptions_JobsCalculator.xAxis.tickInterval = 1000 * 60 * 60 * 24 * 365 * 3;
		chartOptions_JobsCalculator.series.unshift({ name: 'Average monthly change per year', data: seriesArray, color: '#084225' });
		chartOptions_JobsCalculator.series.unshift({ name: 'Average monthly change in Payroll employment needed to achieve the target UR', data: targetEmploymentRateArray, lineWidth: 3, color: '#de8a27', enableMouseTracking: false });
		
	};
	
	/* draw the chart */
	function drawChart() {
	    
console.log("drawChart function");
			       							   
		chart_JobsCalculator = new Highcharts.Chart(chartOptions_JobsCalculator);
		
		iframeWidth_JobsCalculator = $("#container_JobsCalculator").width();
	    iframeHeight_JobsCalculator = $("#container_JobsCalculator").height();
		
		setChartBranding(chart_JobsCalculator,iframeWidth_JobsCalculator,iframeHeight_JobsCalculator,sourceLine_JobsCalculator,50); // 50
	};
	


	/* draw the chart on page load */
	calculateSeries(); drawChart();
	
	/* redraw the chart when the user clicks the "Draw Chart" button */
	

	// TODO EDB
	$("#drawHighchart").click(function() {
				calculateSeries(); drawChart();
			
			/* send the draw event to Google Analytics */
		
			var thisTitle = chartOptions_JobsCalculator.title.text;
			var newTitle = thisTitle.replace("<br>",": ");
			newTitle = thisTitle.replace("<br />",": ");
			ga('send', 'event', 'Highcharts', 'draw', newTitle + ' | ' + document.title);
		
	});
	
	/* reset the chart back to its default when the user clicks the "Reset Chart" button */
	$("#resetChartButton").click(function() {
	
		calculateSeries(); drawChart();
		
		/* send the reset event to Google Analytics */
		var thisTitle = chartOptions_TaylorRule.title.text;
		var newTitle = thisTitle.replace("<br>",": ");
		newTitle = thisTitle.replace("<br />",": ");
		ga('send', 'event', 'Highcharts', 'reset', newTitle + ' | ' + document.title);
		
	});	
	
});
/*var ret = 0;
var min_data = "";
var max_data = "";
var civilian = "";
var employment_cps = "";
var employment_ces = "";
var num_employed = "";
var monthly_pop_growth = "";
var ces_cps_ratio = 0.001;
var monthNames = ["January", "February", "March","April", "May", "June", "July","August", "September", "October","November", "December"];
var title_value = "";
var x_title = "";
var x_title_me = '<h2>Monthly Employment</h2>';
var x_title_ne = '<h2>Monthly Number of Unemployed (CPS)</h2>';
var x_title_ure = '<h2>Monthly Unemployment Rate (CPS)</h2>';
var x_title_lfpre = '<h2>Labor Force Participation Rate (CPS)</h2>';
var x_title_mpgr = '<h2>Moving Average Monthly Population Growth</h2>';
var x_title_cescps = '<h2>Average CES/CPS Multiplier</h2>';      
var testData;
var firstRun = true;
*/


function stripDateInfo (str) {
   var tmp = str.replace('Data updated ','');
   tmpArr = tmp.split(' ');
   var outputDate = new Date(tmpArr[0].replace(/-/gi,' '));
   var day = outputDate.getDate();
   var monthIndex = outputDate.getMonth();
   var year = outputDate.getFullYear();
   var dateString = monthNames[monthIndex] + ' ' + day + ', ' + year;
   return dateString;
}


var JCInit = function(){
    min_data = plot4[0][0];
    max_data = plot4[plot4.length-1][0];
    civilian = plotx1 * 1000;
    employment_cps = plotx2 * 1000;
    employment_ces = plotx3 * 1000;
    num_employed = plotx4 * 1000;
    var tmpc = (plotx5*100).toFixed(3);
    monthly_pop_growth = parseFloat(tmpc).toPrecision(3);  
    monthly_pop_growth_vis = parseFloat(tmpc).toPrecision(3);  
    ces_cps_ratio = plotx6.toPrecision(3);
    monthNames = ["January", "February", "March","April", "May", "June", "July","August", "September", "October","November", "December"];
    var date_update_string = "Updated on " + stripDateInfo(plotx7[0]);
    $("#date_updated").html(date_update_string);
    title_value = plot1[plot1.length-1][0];
    x_title = '<div class="chartTitle">Average monthly change per year in payroll employment, 1980-' + title_value + ', and average monthly change in payroll employment needed to achieve target employment rate (dashed line)</div>';
    $("#seed_1").html(civilian).digits();
    $("#seed_2").html(employment_cps).digits();
    $("#seed_3").html(employment_ces).digits();
    $("#CES_CPS").val(ces_cps_ratio);
    $("#seed_3x").html(ces_cps_ratio);
    $("#seed_4").html(num_employed).digits();
    $("#MPGR").val(monthly_pop_growth);
    $("#MPGRx").html(monthly_pop_growth_vis);



}

var CalcDefaults = 
{
   "TER": 0,
   "MTUR": 0,
   "CES_CPS": 0,
   "LFPGR": 0,
   "MPGR": 0
};

var RegisterDefaults = function(){
if(firstRun){
    CalcDefaults.TER = $('#TER').val();
    CalcDefaults.MTUR = $('#MTUR').val();
    CalcDefaults.CES_CPS = $('#CES_CPS').val();
    CalcDefaults.LFPGR = $('#LFPGR').val();
    CalcDefaults.MPGR = $('#MPGR').val();
    firstRun = false;
}
}

var ResetDefaults = function(){
    $('#TER').val(CalcDefaults.TER);
    $('#MTUR').val(CalcDefaults.MTUR);
    $('#CES_CPS').val(CalcDefaults.CES_CPS);
    $('#LFPGR').val(CalcDefaults.LFPGR);
    $('#MPGR').val(CalcDefaults.MPGR);
}


$(document).ready(function() {
	//chcs disable dupe carat (until I find a better way to do this logic)
	$('a[href="/chcs"]').closest('li.nav-item').removeClass('active').removeAttr('aria-current');
});$(function() {
	const isNumericInput = (event) => {
		const key = event.keyCode;
		return ((key >= 48 && key <= 57) || // Allow number line
			(key >= 96 && key <= 105) // Allow number pad
		);
	};

	const isModifierKey = (event) => {
		const key = event.keyCode;
		return (event.shiftKey === true || key === 35 || key === 36) || // Allow Shift, Home, End
			(key === 8 || key === 9 || key === 13 || key === 46) || // Allow Backspace, Tab, Enter, Delete
			(key > 36 && key < 41) || // Allow left, up, right, down
			(
				// Allow Ctrl/Command + A,C,V,X,Z
				(event.ctrlKey === true || event.metaKey === true) &&
				(key === 65 || key === 67 || key === 86 || key === 88 || key === 90)
			)
	};

	const enforceFormat = (event) => {
		// Input must be of a valid number format or a modifier key, and not longer than ten digits
		if(!isNumericInput(event) && !isModifierKey(event)){
			event.preventDefault();
		}
	};

	const formatToPhone = (event) => {
		if(isModifierKey(event)) {return;}

		const target = event.target;
		const input = event.target.value.replace(/\D/g,'').substring(0,10); // First ten digits of input only
		const areaCode = input.substring(0,3);
		const middle = input.substring(3,6);
		const last = input.substring(6,10);

		if(input.length > 6){target.value = `${areaCode}-${middle}-${last}`;}
		else if(input.length > 3){target.value = `${areaCode}-${middle}`;}
		else if(input.length > 0){target.value = `${areaCode}`;}
	};

	let inputElements = document.querySelectorAll('.phone-number-formatting');

	inputElements.forEach((item) => {
		item.addEventListener('keydown',enforceFormat);
		item.addEventListener('keyup',formatToPhone);
	});
});
$(document).ready(function(){
    // bootsrtap tab control setup
    $('.nav-tabs a').click(function (e) {
      e.preventDefault();
      $(this).tab('show');
    });
    // Manage HISTORY (back button behavior) for tabs
    // add a hash to the URL when the user clicks on a tab
    // relies on https://github.com/devote/HTML5-History-API/ to support pushState()
    $('a[data-toggle="tab"]').on('click', function(e) {
      history.pushState(null, null, $(this).attr('href'));
    });
    // // navigate to a tab when the history changes
    showTabFromUrl = function(e) {
      if (location.hash.substr(0,3)=="#/#") {
        hashToUse = location.hash.substr(2);
      } else {
        hashToUse = location.hash;
      }
      var activeTab = $('[href="' + hashToUse + '"]');
      if (activeTab.length) {
        activeTab.tab('show');
      } else {
        $('.nav-tabs a:first').tab('show');
      }
    }
    // cross-browser call to bind showTab
    if (!window.addEventListener) {
      window.attachEvent("popstate", showTabFromUrl);
    } else {
      window.addEventListener("popstate", showTabFromUrl, false);
    }

    showTabFromUrl();

  });// doc ready

 