{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/highcharts/highcharts.js","webpack:///./app/javascript/images/arg.svg","webpack:///./app/javascript/images/aus.svg","webpack:///./app/javascript/images/aut.svg","webpack:///./app/javascript/images/bel.svg","webpack:///./app/javascript/images/bih.svg","webpack:///./app/javascript/images/blr.svg","webpack:///./app/javascript/images/bra.svg","webpack:///./app/javascript/images/bul.svg","webpack:///./app/javascript/images/can.svg","webpack:///./app/javascript/images/chn.svg","webpack:///./app/javascript/images/cro.svg","webpack:///./app/javascript/images/cyp.svg","webpack:///./app/javascript/images/cze.svg","webpack:///./app/javascript/images/den.svg","webpack:///./app/javascript/images/esp.svg","webpack:///./app/javascript/images/est.svg","webpack:///./app/javascript/images/fin.svg","webpack:///./app/javascript/images/fra.svg","webpack:///./app/javascript/images/gbr.svg","webpack:///./app/javascript/images/geo.svg","webpack:///./app/javascript/images/ger.svg","webpack:///./app/javascript/images/gre.svg","webpack:///./app/javascript/images/hun.svg","webpack:///./app/javascript/images/ina.svg","webpack:///./app/javascript/images/ind.svg","webpack:///./app/javascript/images/iri.svg","webpack:///./app/javascript/images/irl.svg","webpack:///./app/javascript/images/isr.svg","webpack:///./app/javascript/images/ita.svg","webpack:///./app/javascript/images/jor.svg","webpack:///./app/javascript/images/jpn.svg","webpack:///./app/javascript/images/kaz.svg","webpack:///./app/javascript/images/kgz.svg","webpack:///./app/javascript/images/lat.svg","webpack:///./app/javascript/images/lbn.svg","webpack:///./app/javascript/images/ltu.svg","webpack:///./app/javascript/images/lux.svg","webpack:///./app/javascript/images/mda.svg","webpack:///./app/javascript/images/mex.svg","webpack:///./app/javascript/images/mkd.svg","webpack:///./app/javascript/images/mri.svg","webpack:///./app/javascript/images/nam.svg","webpack:///./app/javascript/images/ned.svg","webpack:///./app/javascript/images/nil.svg","webpack:///./app/javascript/images/nor.svg","webpack:///./app/javascript/images/nzl.svg","webpack:///./app/javascript/images/per.svg","webpack:///./app/javascript/images/pol.svg","webpack:///./app/javascript/images/por.svg","webpack:///./app/javascript/images/ri-logo.png","webpack:///./app/javascript/images/rou.svg","webpack:///./app/javascript/images/rsa.svg","webpack:///./app/javascript/images/rus.svg","webpack:///./app/javascript/images/ser.svg","webpack:///./app/javascript/images/slo.svg","webpack:///./app/javascript/images/srb.svg","webpack:///./app/javascript/images/sui.svg","webpack:///./app/javascript/images/svk.svg","webpack:///./app/javascript/images/swe.svg","webpack:///./app/javascript/images/syr.svg","webpack:///./app/javascript/images/tha.svg","webpack:///./app/javascript/images/tpe.svg","webpack:///./app/javascript/images/tur.svg","webpack:///./app/javascript/images/ukr.svg","webpack:///./app/javascript/images/usa.svg","webpack:///./app/javascript/images/ven.svg","webpack:///./app/javascript/images/vie.svg","webpack:///./node_modules/cookies-eu-banner/dist/cookies-eu-banner.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/chartkick/dist/chartkick.js","webpack:///./app/javascript/custom/cookie-banner.js","webpack:///./app/javascript/images sync ^\\.\\/.*$"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","Y","M","_typeof","iterator","obj","constructor","window","this","a","F","f","G","apply","CustomEvent","dispatchEvent","detail","path","SVG_NS","product","version","win","doc","document","svg","createElementNS","createSVGRect","userAgent","navigator","isChrome","indexOf","isFirefox","isMS","test","opera","isSafari","isTouchDevice","isWebKit","deg2rad","Math","PI","hasBidiBug","parseInt","split","hasTouch","TouchEvent","marginNames","noop","supportsPassiveEvents","addEventListener","removeEventListener","charts","dateFormats","seriesTypes","symbolSizes","chartCount","b","g","x","D","q","toString","v","encodeURI","y","chart","code","message","params","Error","k","console","messages","warn","push","u","H","I","B","nodeType","z","isNaN","Infinity","e","setAttribute","getAttribute","removeAttribute","arguments","length","h","opacity","filter","style","parseFloat","toPrecision","w","L","removeEventListenerPolyfill","nodeName","fn","hcEvents","createEvent","fireEvent","initEvent","target","preventDefault","defaultPrevented","type","unshift","getPrototypeOf","sort","order","forEach","A","easeInOutSine","cos","Array","find","map","each","grep","reduce","some","slice","random","substring","jQuery","highcharts","shift","addEvent","Point","series","runTrackerClick","addEventListenerPolyfill","passive","capture","arrayMax","arrayMin","attr","clamp","cleanRecursively","C","keys","clearTimeout","_clearTimeout","_x","correctFloat","createElement","padding","border","margin","appendChild","css","defined","destroyObjectProperties","destroy","discardElement","parentElement","removeChild","erase","splice","error","extend","extendClass","getMagnitude","pow","floor","log","LN10","getNestedProperty","getStyle","min","offsetWidth","scrollWidth","getBoundingClientRect","width","max","offsetHeight","scrollHeight","getComputedStyle","getPropertyValue","inArray","isArray","isClass","isDOMElement","isFunction","isNumber","isObject","isString","merge","normalizeTickInterval","round","objectEach","offset","documentElement","top","parentNode","left","height","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","pad","String","replace","join","pick","pInt","relativeLength","removeEvent","splat","stableSort","safeI","syncTimeout","setTimeout","timeUnits","millisecond","second","minute","hour","day","week","month","year","uniqueKey","useSerialIds","wrap","proceed","alignThresholds","panning","enabled","styledMode","borderRadius","colorCount","defaultSeriesType","ignoreHiddenSeries","spacing","resetZoomButton","theme","zIndex","position","align","zoomBySingleTouch","borderColor","backgroundColor","plotBorderColor","rgba","NaN","input","Color","init","parse","None","stops","names","toLowerCase","charAt","substr","parsers","regex","exec","brighten","setOpacity","tweenTo","white","black","colors","Intl","DateTimeFormat","formatRange","options","variableTimezone","useUTC","Date","getTimezoneOffset","timezoneOffsetFunction","update","timezoneOffset","getTime","setTime","set","timezone","makeTime","UTC","moment","tz","utcOffset","valueOf","dateFormat","defaultOptions","lang","invalidDate","weekdays","shortWeekdays","shortMonths","months","P","S","getSeconds","toUpperCase","resolveDTLFormat","main","from","to","getTimeTicks","unitRange","count","info","higherRanks","totalRange","getDateFormat","symbols","loading","decimalPoint","numericSymbols","resetZoom","resetZoomTitle","thousandsSep","global","time","title","text","widthAdjust","subtitle","caption","verticalAlign","plotOptions","labels","color","legend","alignColumns","className","layout","labelFormatter","navigation","activeColor","inactiveColor","itemStyle","cursor","fontSize","fontWeight","textOverflow","itemHoverStyle","itemHiddenStyle","shadow","itemCheckboxStyle","squareSymbol","symbolPadding","labelStyle","textAlign","tooltip","animation","dateTimeLabelFormats","footerFormat","headerShape","hideDelay","shape","shared","snap","headerFormat","pointFormat","borderWidth","stickOnContact","whiteSpace","useHTML","credits","href","defaultTime","getOptions","setOptions","pos","elem","prop","dSetter","now","toD","step","element","unit","run","stopped","requestAnimationFrame","startTime","start","end","timers","curAnim","complete","duration","easing","initPath","pop","startX","endX","isArea","fillSetter","strokeSetter","defer","animate","pathArray","match","animObject","getDeferredAnimation","renderer","forExport","setAnimation","globalAnimation","stop","trustedTypes","createPolicy","createHTML","DOMParser","parseFromString","nodes","parseMarkup","filterUserAttributes","allowedAttributes","allowedReferences","parseStyle","trim","setElementHTML","innerHTML","emptyHTML","addToDOM","tagName","textContent","createTextNode","bypassHTMLFiltering","allowedTags","namespaceURI","attributes","body","childNodes","toExponential","toFixed","abs","format","numberFormatter","numberFormat","distribute","reducedLen","_d","rank","size","targets","concat","K","Q","onEvents","symbolCustomAttribs","_defaultGetter","_defaultSetter","add","parentGroup","parentInverted","inverted","textStr","buildText","added","handleZ","zIndexSetter","box","onAdd","addClass","afterSetters","doTransform","updateTransform","E","alignedObjects","alignOptions","alignByTranslate","alignTo","plotBox","placed","alignAttr","alignSetter","center","right","alignValue","hidden","msHidden","webkitHidden","applyTextOutline","getContrast","fill","fakeTS","ySetter","xSetter","Number","removeTextOutline","stroke","cloneNode","insertBefore","firstChild","J","symbolName","symbolAttr","rotation","shadows","updateShadows","clip","url","id","crisp","strokeWidth","complexColor","args","radialGradient","linearGradient","gradients","radialReference","x1","y1","x2","y2","gradientUnits","getRadialAttr","defs","radAttr","gradient","styles","textWidth","textOutline","dashstyleSetter","ownerSVGElement","isSVG","onclick","onmouseout","onmouseover","onmousemove","point","clipPath","querySelectorAll","safeRemoveChild","destroyShadows","div","destroyTextPath","getElementsByTagName","textPathWrapper","pathToSegments","fadeOut","hide","getBBox","cache","cacheKeys","querySelector","display","X","htmlGetBBox","sin","hasClass","visibility","invert","on","opacitySetter","removeClass","RegExp","setRadialReference","setTextPath","textAnchor","dy","startOffset","dx","Node","TEXT_NODE","setAttributeNS","oldShadowOptions","offsetX","offsetY","transform","cutHeight","show","hasStroke","textSetter","textPxLength","titleSetter","toFront","translate","translateX","translateY","scaleX","scaleY","matrix","rotationOriginX","rotationOriginY","visibilitySetter","xGetter","yGetter","matrixSetter","rotationOriginXSetter","rotationOriginYSetter","rotationSetter","scaleXSetter","scaleYSetter","translateXSetter","translateYSetter","verticalAlignSetter","rendererTypes","getRendererType","registerRendererType","Renderer","_a","__extends","setPrototypeOf","__proto__","paddingLeftSetter","paddingSetter","paddingRightSetter","anchorX","anchorY","baseline","symbolKey","bBox","emptyBBox","baselineOffset","needsBox","deferredAttr","alignFactor","xSetting","anchorXSetter","boxAttr","getCrispAdjust","anchorYSetter","ySetting","textProps","updateTextPadding","updateBoxSize","paddingLeft","heightSetter","heightSetting","rSetter","widthSetting","getPaddedWidth","fontMetrics","firstLineMetrics","symbol","rect","hasBoxWidthChanged","widthSetter","paddingRight","innerR","open","longArc","clockwise","arc","callout","circle","diamond","roundedRect","square","triangle","svgElement","textLineHeight","lineHeight","ellipsis","noWrap","buildSVG","textCache","actualWidth","modifyTree","modifyDOM","unescapeEntities","nextSibling","previousSibling","getLineHeight","truncate","baseVal","fontStyle","getSubStringLength","getSpanWidth","ceil","escapes","Z","O","imgCount","chartIndex","boxWrapper","getReferenceURL","allowHTML","setSize","unSubPixelFix","definition","elementFromPoint","location","fontFamily","setStyle","isHidden","Element","cx","cy","button","label","N","setState","state","stopPropagation","crispLine","rx","ry","rGetter","viewBox","alignElements","image","preserveAspectRatio","_c","Image","src","imgwidth","imgheight","backgroundSize","isImg","onload","hasLoaded","clipRect","html","rotCorr","T","V","draw","_d2","compose","composedClasses","getSpanCorrection","htmlCss","htmlUpdateTransform","setSpanRotation","xCorr","yCorr","overflow","offsetLeft","offsetTop","marginLeft","marginTop","invertChild","oldTextWidth","innerText","cTT","oldRotation","oldAlign","alignOnAdd","transformOrigin","_a2","addedSetters","reverse","pointerEvents","classSetter","defaultXAxisOptions","alignTicks","allowDecimals","panningEnabled","zoomEnabled","range","endOnTick","gridLineDashStyle","gridZIndex","autoRotation","autoRotationLimit","distance","indentation","reserveSpace","staggerLines","maxPadding","minorGridLineDashStyle","minorTickLength","minorTickPosition","minPadding","opposite","reversed","reversedStacks","showEmpty","showFirstLabel","showLastLabel","startOfWeek","startOnTick","tickLength","tickPixelInterval","tickmarkPlacement","tickPosition","uniqueNames","visible","minorGridLineColor","minorGridLineWidth","minorTickColor","lineColor","lineWidth","gridLineColor","gridLineWidth","tickColor","defaultYAxisOptions","stackLabels","allowOverlap","crop","formatter","axis","total","defaultLeftAxisOptions","defaultRightAxisOptions","defaultBottomAxisOptions","defaultTopAxisOptions","registerEventOptions","eventOptions","events","isNewLabel","isNew","parameters","tickmarkOffset","addLabel","categories","logarithmic","tickPositions","tickInterval","category","lin2log","dateTime","grid","unitName","getXDateFormat","isFirst","isLast","dateTimeLabelFormat","tick","tickPositionInfo","defaultLabelFormatter","list","shortenLabel","getSlotWidth","_addedPlotLB","moveLabel","movedLabel","createLabel","labelGroup","getPosition","oldChartHeight","chartHeight","transB","oldChartWidth","chartWidth","bottom","getLabelPosition","transA","isLinked","linkedParent","tickRotCorr","reserveSpaceDefault","labelOffset","labelAlign","side","index","getLabelSize","horiz","getMarkPath","handleOverflow","labelLeft","labelRight","isRadial","len","ticks","labelPos","xy","render","newOpacity","isActive","renderGridLine","renderMark","renderLabel","gridLine","dashstyle","gridGroup","getPlotLinePath","force","old","tickSize","isXAxis","mark","axisGroup","replaceMovedLabel","isDirty","W","userOptions","translationSlope","tickAmount","positiveValuesOnly","pointRangePadding","pointRange","plotLinesAndBandsGroups","plotLinesAndBands","paddedTicks","overlap","minPixelPadding","minorTicks","minorTickInterval","maxLabelLength","labelEdge","hasVisibleSeries","hasNames","coll","closestPointRange","alternateBands","isX","isZAxis","linkedTo","minRange","userMinRange","maxZoom","crosshair","crosshairs","axes","xAxis","labelRotation","numericSymbolMagnitude","getSeriesExtremes","dataMin","dataMax","threshold","softThreshold","stacking","buildStacks","xData","validatePositiveValue","getXExtremes","applyExtremes","isOrdinal","brokenAxis","hasBreaks","lin2val","sector","val2lin","toPixels","toValue","translatedValue","acrossPanes","getLinearTickPositions","single","getMinorTickInterval","getMinorTickPositions","getLogTickPositions","normalizeTimeTickInterval","trimTicks","adjustForMinRange","ceiling","xIncrement","log2lin","getClosest","noSharedTooltip","nameToX","requireSorting","autoIncrement","updateNames","points","isDirtyData","processData","generatePoints","data","setAxisTranslation","axisPointRange","minPointOffset","pointPlacement","is","ordinal","slope","staticScale","minFromRange","setTickInterval","getTickAmount","userMin","userMax","getExtremes","beforePadding","usePercentage","softMin","softMax","polar","forceCrop","forceCropping","hasExtemesChanged","minTickInterval","unsquish","setTickPositions","hasVerticalPanning","tickPositioner","positions","units","adjustTickAmount","alignToOthers","thresholdAlignment","pane","getThresholdAlignment","finalTickAmt","hasData","setScale","setAxisSize","forceRedraw","resetStacks","cleanStacks","panningState","setExtremes","kdTree","eventArgs","redraw","zoom","newMin","newMax","allowZoomOutside","displayBtn","trigger","zoomed","offsets","plotWidth","plotHeight","plotTop","plotLeft","getThreshold","autoLabelAlign","labelMetrics","MAX_VALUE","slotWidth","renderUnsquish","specificTextOverflow","addTitle","axisTitle","low","middle","high","generateTick","getOffset","axisParent","axisOffset","clipOffset","ja","ca","showAxis","titleOffset","renderLine","axisTitleMargin","getMaxLabelDimensions","maxLabelDimensions","axisLine","getLinePath","getTitlePosition","titlePosition","renderMinorTick","renderTick","isColumn","alternateGridColor","hasRendered","PlotLineOrBand","plotLines","plotBands","addPlotBandOrLine","isPlaced","renderStackTotals","getKeepProps","keepProps","keepEvents","drawCrosshair","cross","crosshairPos","plotX","plotY","chartX","chartY","stackY","isCrosshair","hideCrosshair","dashStyle","isDirtyBox","remove","setTitle","setCategories","Additions","minorAutoInterval","getPlotBandPath","isFlat","addPlotBand","addPlotLine","removePlotBandOrLine","removePlotBand","removePlotLine","svgElem","eventsAdded","getLabelText","xBounds","yBounds","allowShared","container","isSticky","outside","applyFilter","stdDeviation","bodyFormatter","tooltipOptions","formatPrefix","tooltipFormatter","cleanSplit","tt","defaultFormatter","tooltipFooterHeaderFormatter","hideTimer","tooltipTimeout","getAnchor","pointer","followPointer","normalize","tooltipPos","yAxis","plotLow","plotHigh","getLabel","inContact","hoverSeries","shouldStickOnContact","inClass","relatedTarget","onMouseOut","clientWidth","clientHeight","getChartPosition","negative","ttBelow","scrollablePixelsX","scrollablePixelsY","isStickyOnContact","move","drawTracker","refresh","applyInactiveState","getLabelConfig","renderSplit","isDirectTouch","shouldShowTooltip","spacingBox","colorIndex","updatePosition","scrollingContainer","positioner","U","aa","isHeader","ignoreX","boxWidth","ba","tracker","hoverPoints","hoverPoint","styledModeFormat","isFooter","labelConfig","xDateFormat","tooltipDateKeys","isNull","percentage","selected","animateBeforeDestroy","startXPos","getGraphicalProps","singular","startYPos","plural","applyOptions","pointValKey","optionsToObject","group","dataLabels","isValid","relativeXValue","graphic","dataLabel","destroyElements","dataSorting","legendItem","destroyItem","pointCount","firePointEvent","importEvents","allowPointSelect","select","ctrlKey","metaKey","shiftKey","getClassName","zone","stackTotal","getZone","zones","zoneAxis","nonZonedColor","hasNewShapeType","shapeType","resolveColor","pointArrayMap","setNestedProperty","_hasPointLabels","marker","_hasPointMarkers","colorByPoint","colorCounter","valueDecimals","valuePrefix","valueSuffix","hasDummyGraphic","connector","updateParallelArrays","fixedBox","hasCartesianSeries","legendType","isDirtyLegend","removePoint","selectedStaging","accumulate","getSelectedPoints","inactiveOtherPoints","onMouseOver","getChartCoordinatesFromPoint","runPointActions","hasImportedEvents","states","markerAttribs","halo","stateMarkerGraphic","pointAttribs","currentSymbol","markerGroup","isInside","isCluster","haloPath","lastValidTouch","pinchDown","runChartClick","eventsToUnbind","hasDragged","linkedSeries","navigatorSeries","setAllPointsToState","unbindDocumentMouseUp","unbindDocumentTouchEnd","clearInterval","drag","zoomHor","zoomVert","mouseDownX","mouseDownY","panKey","selectionMarker","touch","sqrt","isInsidePlot","visiblePlotOnly","mapView","zoomX","zoomY","selectionMarkerFill","pan","dragStart","mouseIsDown","cancelClick","drop","hasPinched","originalEvent","scaleGroups","_cursor","findNearestKDPoint","findNearestPointBy","searchPoint","distX","dist","shapeArgs","clientX","isNode","chartPosition","getCoordinates","getHoverData","stickyTracking","directTouch","enableMouseTracking","isBoosting","getPoint","getPointFromEvent","onTrackerMouseOut","toElement","click","followTouchMove","setDOMEvents","touches","item","changedTouches","pageX","pageY","onContainerClick","onContainerMouseDown","buttons","onContainerMouseMove","zoomOption","onContainerMouseLeave","hoverChartIndex","reset","onContainerMouseEnter","setHoverChartIndex","returnValue","touchSelect","openMenu","onDocumentTouchEnd","onContainerTouchMove","onContainerTouchStart","onDocumentMouseMove","onDocumentMouseUp","pinch","hasZoom","initiated","cancelable","bounds","res","pinchTranslate","pinchTranslateDirection","isCartesian","unDocMouseMove","hoverX","ownerDocument","getPlotBox","dataLabelsGroup","clipBox","onmousedown","renderTo","zoomType","pinchType","pointerType","MSPOINTER_TYPE_TOUCH","currentTarget","_a3","PointerEvent","isRequired","MSPointerEvent","batchMSEvents","onContainerPointerDown","onContainerPointerMove","onDocumentPointerUp","pointerId","allItems","contentGroup","maxLegendWidth","maxItemWidth","legendWidth","legendHeight","lastLineHeight","lastItemY","itemY","itemX","itemMarginTop","itemMarginBottom","itemHeight","initialItemY","pages","proximate","scrollGroup","widthOption","totalItemWidth","titleHeight","symbolWidth","symbolHeight","positionCheckboxes","unchartrender","proximatePositions","positionItems","colorizeItem","legendGroup","legendLine","legendSymbol","isMarker","positionItem","isResizing","rtl","_legendItemPos","checkbox","getAllItems","clipHeight","scrollOffset","checkboxOffset","renderTitle","setText","labelFormat","renderItem","itemDistance","drawLegendSymbol","createCheckboxForItem","showCheckbox","setItemEvents","itemWidth","legendItemWidth","legendItemHeight","layoutItem","showInLegend","legendItems","getAlignment","floating","adjustMargins","legendIndex","maxHeight","arrowSize","nav","currentPage","fullHeight","pageIx","up","scroll","pager","down","upTracker","downTracker","setVisible","browserEvent","checked","defaultChecked","bubbleLegend","pointClass","getSeries","missingModuleFor","registerSeriesType","seriesType","da","R","ea","fa","ia","ha","ka","labelCollectors","sharedClips","symbolCounter","getArgs","callback","showAxes","firstRender","initSeries","setSeriesData","getSeriesOrderByLinks","enabledDataSorting","setData","orderSeries","getName","scrollablePlotBox","paneCoordinates","ignoreY","colorAxis","setResponsive","temporaryDisplay","layOutTitles","centerInCategory","updateTotals","getStacks","getMargins","extKey","drawChartBox","getAxes","getPointsCollection","getSelectedSeries","applyDescription","isStock","getChartSize","containerWidth","containerHeight","hcOrigStyle","hcOrigDetached","contains","hcOricDetached","setProperty","setClassName","getContainer","getElementById","skipClone","userSelect","outline","exporting","resetMargins","marginBottom","getAxisMargins","setChartSize","reflow","isPrinting","reflowTimeout","setReflow","unbindReflow","marginRight","plotSizeX","plotSizeY","plotBorderWidth","skipAxes","plotBGImage","plotBackgroundColor","plotBackgroundImage","chartBackground","plotBackground","plotBorder","plotShadow","propFromSeries","linkSeries","setDataSortingOptions","renderSeries","renderLabels","items","seriesGroup","addCredits","mapCredits","scroller","isReadyToRender","callbacks","addSeries","addAxis","createAxis","addColorAxis","showLoading","loadingDiv","loadingSpan","loadingShown","showDuration","hideLoading","hideDuration","isResponsiveOptions","propsRequireUpdateSeries","propsRequireDirtyBox","propsRequireReflow","collectionsWithUpdate","isInternal","touched","collectionsWithInit","setSubtitle","setCaption","showResetZoom","zoomOut","relativeTo","hover","resetSelection","mapNavigation","getProcessedData","yData","startMin","startMax","drawLineMarker","radius","drawRectangle","symbolRadius","enabledThreshold","normal","radiusPlus","lineWidthPlus","fillColor","cropThreshold","inactive","turboThreshold","processedYData","processedXData","_i","bindAxes","getColor","getSymbol","parallelArrays","insert","axisTypes","optionalAxis","toYData","pointIntervalUnit","pointStart","pointInterval","sorted","allowDG","negativeColor","negativeFillColor","getCyclic","hasGroupedData","findPointIndex","matchByName","cropped","cropStart","updateData","hasDerivedData","addPoint","sortData","isSeriesBoosting","getFirstValidPoint","sortKey","getExtremesFromAll","cropData","basePointRange","cropShoulder","processedData","dataGrouping","groupAll","dataGroup","groupMap","stackedYData","activeYData","dataExtremes","pointPlacementToXValue","startFromThreshold","stacks","negStacks","stackKey","getStackIndicator","base","irregularWidths","setOffset","pointXOffset","barW","yBottom","dataModify","modifyValue","isPointInside","closestPointRangePx","getValidPoints","getClipBox","getSharedClipKey","sharedClipKey","setClip","afterAnimate","finishedAnimating","drawPoints","specialGroup","hasImage","keepEventsForUpdate","removeEvents","clips","animationTimeout","survive","applyZones","graph","area","showLine","isVML","resetZones","invertGroups","isRadialSeries","plotGroup","invertible","drawGraph","drawDataLabels","redrawPoints","searchKDTree","buildKDTree","kdAxisArray","buildingKdTree","kdNow","trackByArea","areaPath","graphPath","initialType","joinBy","mapData","hasOptionChanged","setName","mouseOver","mouseOut","labelBySeries","scrollablePlotArea","minWidth","minHeight","setUpScrolling","applyFixed","fixedDiv","WebkitOverflowScrolling","overflowX","overflowY","scrollingParent","innerContainer","moveFixedElements","fixedRenderer","scrollableMask","scrollableDirty","scrollPositionX","scrollPositionY","redrawTrigger","stackTotalGroup","oldStacks","stacksTouched","setStackedPoints","setGroupedPoints","modifyStacks","cumulative","isNegative","hasValidPoints","stack","rightCliff","leftCliff","labelrank","getStackBox","justifyDataLabel","singleStacks","percentStacker","StackItem","_a4","gappedPath","getGraphPath","getZonesGraphs","preventGraphAnimation","xMap","fillGraph","linecap","connectNulls","getPointSpline","_a5","line","fillOpacity","shiftUnit","isCliff","doCurve","getStackPoints","leftNull","rightNull","rectPlotX","_a6","rightContX","rightContY","_a7","_a8","getColumnMetrics","grouping","columnIndex","groupPadding","maxPointWidth","pointWidth","pointPadding","columnMetrics","paddedWidth","columnCount","crispCol","adjustForMissingColumns","dense","translatedThreshold","minPointLength","barX","pointAttrToOptions","brightness","animationLimit","allowShadow","_hasTracking","trackerGroups","dlBox","centerX","setDataLabelStartPos","forceDL","inside","dlOptions","dataLabelOnNull","operator","connectors","labelDistance","contrastColor","textPath","getDataLabelPath","dataLabelPath","alignDataLabel","below","_a9","_a10","applyJitter","jitter","isLog","takeOrdinalPosition","getCenter","slicedOffset","innerSize","angular","getStartAndEndRadians","_a11","getConnectorPath","labelPosition","connectorShapes","connectorShape","final","alignment","connectorPosition","getTranslate","sliced","slicedTranslation","ignoreHiddenPoint","shadowGroup","fixedOffset","breakAt","touchingSliceAt","softConnector","straight","crookedLine","crookDistance","_a12","maxLabelDistance","startAngleRad","startR","drawEmpty","endAngleRad","delayedRendering","getX","radii","asin","sortByAngle","angle","startAngle","endAngle","half","natural","connectorPadding","dataLabelPositioners","shortened","_pos","distributeBox","radialDistributionY","positionIndex","justify","alignToConnectors","alignToPlotEdges","radialDistributionX","_attr","sideOverflow","verifyDataLabelOverflow","placeDataLabels","connectorWidth","connectorColor","moved","minSize","oldOpacity","isOld","_d3","hideOverlappingLabels","absoluteBox","currentOptions","matchResponsiveRule","condition","maxWidth","_id","responsive","currentResponsive","rules","chartOptions","ruleIds","undoOptions","mergedOptions","AST","Axis","Chart","Fx","Legend","Pointer","Series","SVGElement","SVGRenderer","Tick","Time","Tooltip","_modules","root","factory","undefined","_CookiesEuBanner","launchFunction","waitAccept","useLocalStorage","cookieTimeout","bots","cookieName","trackingCookiesNames","isBot","dnt","doNotTrack","msDoNotTrack","hasConsent","removeBanner","showBanner","setConsent","_this","banner","rejectButton","acceptButton","moreLink","waitRemove","dataset","addClickListener","deleteCookie","consent","localStorage","setItem","setCookie","isCookieSetTo","cookie","getItem","date","toGMTString","hostname","commonSuffix","DOMElement","attachEvent","wait","require","use","$navbarBurgers","el","$target","classList","toggle","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","fire","event","evt","initCustomEvent","bubbles","Event","result","stopEverything","stopImmediatePropagation","delegate","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","beforeSend","readyState","XMLHttpRequest","OPENED","send","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","JSON","head","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","method","action","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","val","num","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","hashBinary","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","methodName","_len","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","hasAttribute","disable","enable","focus","delete","submitForm","ActiveStorage","channels","webpackEmptyContext","req","resolve","variable","Function","isPlainObject","source","obj1","obj2","DATE_PATTERN","toStr","toFloat","toDate","toArr","jsOptionsFunc","hideLegend","setMin","setMax","setStacked","setXtitle","setYtitle","opts","singleSeriesFormat","negativeValues","stacked","xtitle","ytitle","library","sortByTime","sortByNumberSeries","sortByNumber","isMinute","getMilliseconds","isHour","getMinutes","isDay","getHours","isWeek","dayOfWeek","getDay","isMonth","getDate","isYear","getMonth","isDate","byteSuffixes","formatValue","pre","prefix","suffix","precision","byteScale","suffixIdx","baseValue","zeros","thousands","decimal","parts","seriesOption","baseOptions","maintainAspectRatio","plugins","displayColors","font","interaction","defaultOptions$2","scales","maxTicksLimit","drawOnChartArea","defaultColors","hideLegend$2","setTitle$2","setBarMin$1","setBarMax$1","setStacked$2","setXtitle$2","setYtitle$2","addOpacity","notnull","setFormatOptions$1","chartType","formatOptions","scale","stepSize","context","formattedValue","dataPoint","parsed","valueLabel","jsOptions$2","createDataTable","datasets","i$1","s$1","j$1","rows","rows2","xtype","sortedLabels","i$2","s$2","d$1","j$2","j$3","pointChart","pointBackgroundColor","pointHoverBackgroundColor","pointHitRadius","pointHoverBorderWidth","tension","pointRadius","pointHoverRadius","xmin","xmax","minTime","maxTime","value$1","timeDiff","displayFormats","unitStepSize","tooltipFormat","defaultExport$2","renderLineChart","allZeros","drawChart","renderPieChart","donut","cutout","values","renderColumnChart","barOptions","indexAxis","maxLabelSize","getLabelForValue","setLabelSize","renderAreaChart","renderBarChart","renderScatterChart","renderBubbleChart","destroyed","ctx","defaultOptions$1","areaspline","hideLegend$1","setTitle$1","jsOptions$1","stackedValue","setFormatOptions","pointFormatter","defaultExport$1","curve","pie","d2","newSeries","chartArea","fontName","pointSize","textStyle","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","_hideLegend","setBarMin","setBarMax","isStacked","italic","jsOptions","defaultExport","formatSeriesData","keyType","keyFunc","detectXTypeWithFunction","func","processSeries","noDatetime","rawData","copy","copySeries","discrete","dataEmpty","detectXType","processSimple","perfectData","fn2","detachEvent","childOf","this$1","waitForLoaded","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","row","renderTimeline","clearChart","pack","runCallbacks","loadOptions","packages","config","__config","language","mapsApiKey","load","cb","LineChart","Timeline","GeoChart","columnType","pendingRequests","runningRequests","runNext","request","Zepto","requestComplete","ajaxCall","jqXHR","textStatus","errorThrown","adapters","chartError","noPrefix","errorCatcher","__render","err","fetchDataSource","dataSource","addAdapter","adapterType","getAdapterType","adapter","renderChart","empty","fnName","adapterName","Highcharts","google","__adapterObject","callAdapter","download","__downloadAttached","alt","__enterEvent","related","toImage","__leaveEvent","addDownloadButton","elementId","Chartkick","startRefresh","getElement","getDataSource","getChartObject","getAdapter","__updateOptions","refreshData","sep","intervalId","setInterval","stopRefresh","background","canvas","tmpCanvas","tmpCtx","getContext","fillStyle","fillRect","drawImage","toDataURL","toBase64Image","updateRefresh","__processData","__chartName","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","configure","setDefaultOptions","eachChart","chartId","destroyAll","default","CookiesEuBanner","webpackContext","webpackContextResolve"],"mappings":"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","file":"js/application-6c3d338d93fbfcbb488a.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 70);\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\n Highcharts JS v10.0.0 (2022-03-07)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function (Y, M) {\n \"object\" === (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? (M[\"default\"] = M, module.exports = Y.document ? M(Y) : M) : \"function\" === typeof define && define.amd ? define(\"highcharts/highcharts\", function () {\n return M(Y);\n }) : (Y.Highcharts && Y.Highcharts.error(16, !0), Y.Highcharts = M(Y));\n})(\"undefined\" !== typeof window ? window : this, function (Y) {\n function M(a, F, f, G) {\n a.hasOwnProperty(F) || (a[F] = G.apply(null, f), \"function\" === typeof CustomEvent && Y.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: F,\n module: a[F]\n }\n })));\n }\n\n var f = {};\n M(f, \"Core/Globals.js\", [], function () {\n var a;\n\n (function (a) {\n a.SVG_NS = \"http://www.w3.org/2000/svg\";\n a.product = \"Highcharts\";\n a.version = \"10.0.0\";\n a.win = \"undefined\" !== typeof Y ? Y : {};\n a.doc = a.win.document;\n a.svg = a.doc && a.doc.createElementNS && !!a.doc.createElementNS(a.SVG_NS, \"svg\").createSVGRect;\n a.userAgent = a.win.navigator && a.win.navigator.userAgent || \"\";\n a.isChrome = -1 !== a.userAgent.indexOf(\"Chrome\");\n a.isFirefox = -1 !== a.userAgent.indexOf(\"Firefox\");\n a.isMS = /(edge|msie|trident)/i.test(a.userAgent) && !a.win.opera;\n a.isSafari = !a.isChrome && -1 !== a.userAgent.indexOf(\"Safari\");\n a.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(a.userAgent);\n a.isWebKit = -1 !== a.userAgent.indexOf(\"AppleWebKit\");\n a.deg2rad = 2 * Math.PI / 360;\n a.hasBidiBug = a.isFirefox && 4 > parseInt(a.userAgent.split(\"Firefox/\")[1], 10);\n a.hasTouch = !!a.win.TouchEvent;\n a.marginNames = [\"plotTop\", \"marginRight\", \"marginBottom\", \"plotLeft\"];\n\n a.noop = function () {};\n\n a.supportsPassiveEvents = function () {\n var f = !1;\n\n if (!a.isMS) {\n var F = Object.defineProperty({}, \"passive\", {\n get: function get() {\n f = !0;\n }\n });\n a.win.addEventListener && a.win.removeEventListener && (a.win.addEventListener(\"testPassive\", a.noop, F), a.win.removeEventListener(\"testPassive\", a.noop, F));\n }\n\n return f;\n }();\n\n a.charts = [];\n a.dateFormats = {};\n a.seriesTypes = {};\n a.symbolSizes = {};\n a.chartCount = 0;\n })(a || (a = {}));\n\n \"\";\n return a;\n });\n M(f, \"Core/Utilities.js\", [f[\"Core/Globals.js\"]], function (a) {\n function f(r, b, c, g) {\n var x = b ? \"Highcharts error\" : \"Highcharts warning\";\n 32 === r && (r = x + \": Deprecated member\");\n var D = p(r),\n q = D ? x + \" #\" + r + \": www.highcharts.com/errors/\" + r + \"/\" : r.toString();\n\n if (\"undefined\" !== typeof g) {\n var d = \"\";\n D && (q += \"?\");\n v(g, function (b, r) {\n d += \"\\n - \" + r + \": \" + b;\n D && (q += encodeURI(r) + \"=\" + encodeURI(b));\n });\n q += d;\n }\n\n y(a, \"displayError\", {\n chart: c,\n code: r,\n message: q,\n params: g\n }, function () {\n if (b) throw Error(q);\n k.console && -1 === f.messages.indexOf(q) && console.warn(q);\n });\n f.messages.push(q);\n }\n\n function C(b, c) {\n var r = {};\n v(b, function (x, g) {\n if (I(b[g], !0) && !b.nodeType && c[g]) x = C(b[g], c[g]), Object.keys(x).length && (r[g] = x);else if (I(b[g]) || b[g] !== c[g] || g in b && !(g in c)) r[g] = b[g];\n });\n return r;\n }\n\n function G(b, c) {\n return parseInt(b, c || 10);\n }\n\n function u(b) {\n return \"string\" === typeof b;\n }\n\n function H(b) {\n b = Object.prototype.toString.call(b);\n return \"[object Array]\" === b || \"[object Array Iterator]\" === b;\n }\n\n function I(b, c) {\n return !!b && \"object\" === _typeof(b) && (!c || !H(b));\n }\n\n function B(b) {\n return I(b) && \"number\" === typeof b.nodeType;\n }\n\n function z(b) {\n var c = b && b.constructor;\n return !(!I(b, !0) || B(b) || !c || !c.name || \"Object\" === c.name);\n }\n\n function p(b) {\n return \"number\" === typeof b && !isNaN(b) && Infinity > b && -Infinity < b;\n }\n\n function m(b) {\n return \"undefined\" !== typeof b && null !== b;\n }\n\n function e(b, c, g) {\n var r = u(c) && !m(g),\n x,\n D = function D(c, g) {\n m(c) ? b.setAttribute(g, c) : r ? (x = b.getAttribute(g)) || \"class\" !== g || (x = b.getAttribute(g + \"Name\")) : b.removeAttribute(g);\n };\n\n u(c) ? D(g, c) : v(c, D);\n return x;\n }\n\n function d(b, c) {\n var r;\n b || (b = {});\n\n for (r in c) {\n b[r] = c[r];\n }\n\n return b;\n }\n\n function l() {\n for (var b = arguments, c = b.length, g = 0; g < c; g++) {\n var k = b[g];\n if (\"undefined\" !== typeof k && null !== k) return k;\n }\n }\n\n function h(b, c) {\n a.isMS && !a.svg && c && m(c.opacity) && (c.filter = \"alpha(opacity=\" + 100 * c.opacity + \")\");\n d(b.style, c);\n }\n\n function t(b, c) {\n return 1E14 < b ? b : parseFloat(b.toPrecision(c || 14));\n }\n\n function n(b, c, g) {\n var r = a.getStyle || n;\n if (\"width\" === c) return c = Math.min(b.offsetWidth, b.scrollWidth), g = b.getBoundingClientRect && b.getBoundingClientRect().width, g < c && g >= c - 1 && (c = Math.floor(g)), Math.max(0, c - (r(b, \"padding-left\", !0) || 0) - (r(b, \"padding-right\", !0) || 0));\n if (\"height\" === c) return Math.max(0, Math.min(b.offsetHeight, b.scrollHeight) - (r(b, \"padding-top\", !0) || 0) - (r(b, \"padding-bottom\", !0) || 0));\n k.getComputedStyle || f(27, !0);\n\n if (b = k.getComputedStyle(b, void 0)) {\n var x = b.getPropertyValue(c);\n l(g, \"opacity\" !== c) && (x = G(x));\n }\n\n return x;\n }\n\n function v(b, c, g) {\n for (var r in b) {\n Object.hasOwnProperty.call(b, r) && c.call(g || b[r], b[r], r, b);\n }\n }\n\n function w(b, c, g) {\n function r(c, r) {\n var L = b.removeEventListener || a.removeEventListenerPolyfill;\n L && L.call(b, c, r, !1);\n }\n\n function x(g) {\n var x;\n\n if (b.nodeName) {\n if (c) {\n var L = {};\n L[c] = !0;\n } else L = g;\n\n v(L, function (b, c) {\n if (g[c]) for (x = g[c].length; x--;) {\n r(c, g[c][x].fn);\n }\n });\n }\n }\n\n var k = \"function\" === typeof b && b.prototype || b;\n\n if (Object.hasOwnProperty.call(k, \"hcEvents\")) {\n var D = k.hcEvents;\n c ? (k = D[c] || [], g ? (D[c] = k.filter(function (b) {\n return g !== b.fn;\n }), r(c, g)) : (x(D), D[c] = [])) : (x(D), delete k.hcEvents);\n }\n }\n\n function y(b, c, g, k) {\n g = g || {};\n\n if (q.createEvent && (b.dispatchEvent || b.fireEvent && b !== a)) {\n var r = q.createEvent(\"Events\");\n r.initEvent(c, !0, !0);\n g = d(r, g);\n b.dispatchEvent ? b.dispatchEvent(g) : b.fireEvent(c, g);\n } else if (b.hcEvents) {\n g.target || d(g, {\n preventDefault: function preventDefault() {\n g.defaultPrevented = !0;\n },\n target: b,\n type: c\n });\n r = [];\n\n for (var x = b, D = !1; x.hcEvents;) {\n Object.hasOwnProperty.call(x, \"hcEvents\") && x.hcEvents[c] && (r.length && (D = !0), r.unshift.apply(r, x.hcEvents[c])), x = Object.getPrototypeOf(x);\n }\n\n D && r.sort(function (b, c) {\n return b.order - c.order;\n });\n r.forEach(function (c) {\n !1 === c.fn.call(b, g) && g.preventDefault();\n });\n }\n\n k && !g.defaultPrevented && k.call(b, g);\n }\n\n var A = a.charts,\n q = a.doc,\n k = a.win;\n (f || (f = {})).messages = [];\n\n Math.easeInOutSine = function (b) {\n return -.5 * (Math.cos(Math.PI * b) - 1);\n };\n\n var c = Array.prototype.find ? function (b, c) {\n return b.find(c);\n } : function (b, c) {\n var r,\n g = b.length;\n\n for (r = 0; r < g; r++) {\n if (c(b[r], r)) return b[r];\n }\n };\n v({\n map: \"map\",\n each: \"forEach\",\n grep: \"filter\",\n reduce: \"reduce\",\n some: \"some\"\n }, function (b, c) {\n a[c] = function (r) {\n var g;\n f(32, !1, void 0, (g = {}, g[\"Highcharts.\" + c] = \"use Array.\" + b, g));\n return Array.prototype[b].apply(r, [].slice.call(arguments, 1));\n };\n });\n\n var g,\n b = function () {\n var b = Math.random().toString(36).substring(2, 9) + \"-\",\n c = 0;\n return function () {\n return \"highcharts-\" + (g ? \"\" : b) + c++;\n };\n }();\n\n k.jQuery && (k.jQuery.fn.highcharts = function () {\n var b = [].slice.call(arguments);\n if (this[0]) return b[0] ? (new a[u(b[0]) ? b.shift() : \"Chart\"](this[0], b[0], b[1]), this) : A[e(this[0], \"data-highcharts-chart\")];\n });\n c = {\n addEvent: function addEvent(b, c, g, k) {\n void 0 === k && (k = {});\n var r = \"function\" === typeof b && b.prototype || b;\n Object.hasOwnProperty.call(r, \"hcEvents\") || (r.hcEvents = {});\n r = r.hcEvents;\n a.Point && b instanceof a.Point && b.series && b.series.chart && (b.series.chart.runTrackerClick = !0);\n var x = b.addEventListener || a.addEventListenerPolyfill;\n x && x.call(b, c, g, a.supportsPassiveEvents ? {\n passive: void 0 === k.passive ? -1 !== c.indexOf(\"touch\") : k.passive,\n capture: !1\n } : !1);\n r[c] || (r[c] = []);\n r[c].push({\n fn: g,\n order: \"number\" === typeof k.order ? k.order : Infinity\n });\n r[c].sort(function (b, c) {\n return b.order - c.order;\n });\n return function () {\n w(b, c, g);\n };\n },\n arrayMax: function arrayMax(b) {\n for (var c = b.length, g = b[0]; c--;) {\n b[c] > g && (g = b[c]);\n }\n\n return g;\n },\n arrayMin: function arrayMin(b) {\n for (var c = b.length, g = b[0]; c--;) {\n b[c] < g && (g = b[c]);\n }\n\n return g;\n },\n attr: e,\n clamp: function clamp(b, c, g) {\n return b > c ? b < g ? b : g : c;\n },\n cleanRecursively: C,\n clearTimeout: function (_clearTimeout) {\n function clearTimeout(_x) {\n return _clearTimeout.apply(this, arguments);\n }\n\n clearTimeout.toString = function () {\n return _clearTimeout.toString();\n };\n\n return clearTimeout;\n }(function (b) {\n m(b) && clearTimeout(b);\n }),\n correctFloat: t,\n createElement: function createElement(b, c, g, k, n) {\n b = q.createElement(b);\n c && d(b, c);\n n && h(b, {\n padding: \"0\",\n border: \"none\",\n margin: \"0\"\n });\n g && h(b, g);\n k && k.appendChild(b);\n return b;\n },\n css: h,\n defined: m,\n destroyObjectProperties: function destroyObjectProperties(b, c) {\n v(b, function (g, r) {\n g && g !== c && g.destroy && g.destroy();\n delete b[r];\n });\n },\n discardElement: function discardElement(b) {\n b && b.parentElement && b.parentElement.removeChild(b);\n },\n erase: function erase(b, c) {\n for (var g = b.length; g--;) {\n if (b[g] === c) {\n b.splice(g, 1);\n break;\n }\n }\n },\n error: f,\n extend: d,\n extendClass: function extendClass(b, c) {\n var g = function g() {};\n\n g.prototype = new b();\n d(g.prototype, c);\n return g;\n },\n find: c,\n fireEvent: y,\n getMagnitude: function getMagnitude(b) {\n return Math.pow(10, Math.floor(Math.log(b) / Math.LN10));\n },\n getNestedProperty: function getNestedProperty(b, c) {\n for (b = b.split(\".\"); b.length && m(c);) {\n var g = b.shift();\n if (\"undefined\" === typeof g || \"__proto__\" === g) return;\n c = c[g];\n if (!m(c) || \"function\" === typeof c || \"number\" === typeof c.nodeType || c === k) return;\n }\n\n return c;\n },\n getStyle: n,\n inArray: function inArray(b, c, g) {\n f(32, !1, void 0, {\n \"Highcharts.inArray\": \"use Array.indexOf\"\n });\n return c.indexOf(b, g);\n },\n isArray: H,\n isClass: z,\n isDOMElement: B,\n isFunction: function isFunction(b) {\n return \"function\" === typeof b;\n },\n isNumber: p,\n isObject: I,\n isString: u,\n keys: function keys(b) {\n f(32, !1, void 0, {\n \"Highcharts.keys\": \"use Object.keys\"\n });\n return Object.keys(b);\n },\n merge: function merge() {\n var b,\n c = arguments,\n g = {},\n k = function k(b, c) {\n \"object\" !== _typeof(b) && (b = {});\n v(c, function (g, r) {\n \"__proto__\" !== r && \"constructor\" !== r && (!I(g, !0) || z(g) || B(g) ? b[r] = c[r] : b[r] = k(b[r] || {}, g));\n });\n return b;\n };\n\n !0 === c[0] && (g = c[1], c = Array.prototype.slice.call(c, 2));\n var q = c.length;\n\n for (b = 0; b < q; b++) {\n g = k(g, c[b]);\n }\n\n return g;\n },\n normalizeTickInterval: function normalizeTickInterval(b, c, g, k, q) {\n var r = b;\n g = l(g, 1);\n var d = b / g;\n c || (c = q ? [1, 1.2, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10] : [1, 2, 2.5, 5, 10], !1 === k && (1 === g ? c = c.filter(function (b) {\n return 0 === b % 1;\n }) : .1 >= g && (c = [1 / g])));\n\n for (k = 0; k < c.length && !(r = c[k], q && r * g >= b || !q && d <= (c[k] + (c[k + 1] || c[k])) / 2); k++) {\n ;\n }\n\n return r = t(r * g, -Math.round(Math.log(.001) / Math.LN10));\n },\n objectEach: v,\n offset: function offset(b) {\n var c = q.documentElement;\n b = b.parentElement || b.parentNode ? b.getBoundingClientRect() : {\n top: 0,\n left: 0,\n width: 0,\n height: 0\n };\n return {\n top: b.top + (k.pageYOffset || c.scrollTop) - (c.clientTop || 0),\n left: b.left + (k.pageXOffset || c.scrollLeft) - (c.clientLeft || 0),\n width: b.width,\n height: b.height\n };\n },\n pad: function pad(b, c, g) {\n return Array((c || 2) + 1 - String(b).replace(\"-\", \"\").length).join(g || \"0\") + b;\n },\n pick: l,\n pInt: G,\n relativeLength: function relativeLength(b, c, g) {\n return /%$/.test(b) ? c * parseFloat(b) / 100 + (g || 0) : parseFloat(b);\n },\n removeEvent: w,\n splat: function splat(b) {\n return H(b) ? b : [b];\n },\n stableSort: function stableSort(b, c) {\n var g = b.length,\n k,\n r;\n\n for (r = 0; r < g; r++) {\n b[r].safeI = r;\n }\n\n b.sort(function (b, g) {\n k = c(b, g);\n return 0 === k ? b.safeI - g.safeI : k;\n });\n\n for (r = 0; r < g; r++) {\n delete b[r].safeI;\n }\n },\n syncTimeout: function syncTimeout(b, c, g) {\n if (0 < c) return setTimeout(b, c, g);\n b.call(0, g);\n return -1;\n },\n timeUnits: {\n millisecond: 1,\n second: 1E3,\n minute: 6E4,\n hour: 36E5,\n day: 864E5,\n week: 6048E5,\n month: 24192E5,\n year: 314496E5\n },\n uniqueKey: b,\n useSerialIds: function useSerialIds(b) {\n return g = l(b, g);\n },\n wrap: function wrap(b, c, g) {\n var k = b[c];\n\n b[c] = function () {\n var b = Array.prototype.slice.call(arguments),\n c = arguments,\n r = this;\n\n r.proceed = function () {\n k.apply(r, arguments.length ? arguments : c);\n };\n\n b.unshift(k);\n b = g.apply(this, b);\n r.proceed = null;\n return b;\n };\n }\n };\n \"\";\n return c;\n });\n M(f, \"Core/Chart/ChartDefaults.js\", [], function () {\n return {\n alignThresholds: !1,\n panning: {\n enabled: !1,\n type: \"x\"\n },\n styledMode: !1,\n borderRadius: 0,\n colorCount: 10,\n defaultSeriesType: \"line\",\n ignoreHiddenSeries: !0,\n spacing: [10, 10, 15, 10],\n resetZoomButton: {\n theme: {\n zIndex: 6\n },\n position: {\n align: \"right\",\n x: -10,\n y: 10\n }\n },\n zoomBySingleTouch: !1,\n width: null,\n height: null,\n borderColor: \"#335cad\",\n backgroundColor: \"#ffffff\",\n plotBorderColor: \"#cccccc\"\n };\n });\n M(f, \"Core/Color/Color.js\", [f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = f.isNumber,\n G = f.merge,\n u = f.pInt;\n\n f = function () {\n function f(F) {\n this.rgba = [NaN, NaN, NaN, NaN];\n this.input = F;\n var B = a.Color;\n if (B && B !== f) return new B(F);\n if (!(this instanceof f)) return new f(F);\n this.init(F);\n }\n\n f.parse = function (a) {\n return a ? new f(a) : f.None;\n };\n\n f.prototype.init = function (a) {\n var B;\n if (\"object\" === _typeof(a) && \"undefined\" !== typeof a.stops) this.stops = a.stops.map(function (e) {\n return new f(e[1]);\n });else if (\"string\" === typeof a) {\n this.input = a = f.names[a.toLowerCase()] || a;\n\n if (\"#\" === a.charAt(0)) {\n var z = a.length;\n var p = parseInt(a.substr(1), 16);\n 7 === z ? B = [(p & 16711680) >> 16, (p & 65280) >> 8, p & 255, 1] : 4 === z && (B = [(p & 3840) >> 4 | (p & 3840) >> 8, (p & 240) >> 4 | p & 240, (p & 15) << 4 | p & 15, 1]);\n }\n\n if (!B) for (p = f.parsers.length; p-- && !B;) {\n var m = f.parsers[p];\n (z = m.regex.exec(a)) && (B = m.parse(z));\n }\n }\n B && (this.rgba = B);\n };\n\n f.prototype.get = function (a) {\n var B = this.input,\n z = this.rgba;\n\n if (\"object\" === _typeof(B) && \"undefined\" !== typeof this.stops) {\n var p = G(B);\n p.stops = [].slice.call(p.stops);\n this.stops.forEach(function (m, e) {\n p.stops[e] = [p.stops[e][0], m.get(a)];\n });\n return p;\n }\n\n return z && F(z[0]) ? \"rgb\" === a || !a && 1 === z[3] ? \"rgb(\" + z[0] + \",\" + z[1] + \",\" + z[2] + \")\" : \"a\" === a ? \"\" + z[3] : \"rgba(\" + z.join(\",\") + \")\" : B;\n };\n\n f.prototype.brighten = function (a) {\n var B = this.rgba;\n if (this.stops) this.stops.forEach(function (p) {\n p.brighten(a);\n });else if (F(a) && 0 !== a) for (var z = 0; 3 > z; z++) {\n B[z] += u(255 * a), 0 > B[z] && (B[z] = 0), 255 < B[z] && (B[z] = 255);\n }\n return this;\n };\n\n f.prototype.setOpacity = function (a) {\n this.rgba[3] = a;\n return this;\n };\n\n f.prototype.tweenTo = function (a, B) {\n var z = this.rgba,\n p = a.rgba;\n if (!F(z[0]) || !F(p[0])) return a.input || \"none\";\n a = 1 !== p[3] || 1 !== z[3];\n return (a ? \"rgba(\" : \"rgb(\") + Math.round(p[0] + (z[0] - p[0]) * (1 - B)) + \",\" + Math.round(p[1] + (z[1] - p[1]) * (1 - B)) + \",\" + Math.round(p[2] + (z[2] - p[2]) * (1 - B)) + (a ? \",\" + (p[3] + (z[3] - p[3]) * (1 - B)) : \"\") + \")\";\n };\n\n f.names = {\n white: \"#ffffff\",\n black: \"#000000\"\n };\n f.parsers = [{\n 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*\\)/,\n parse: function parse(a) {\n return [u(a[1]), u(a[2]), u(a[3]), parseFloat(a[4], 10)];\n }\n }, {\n regex: /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,\n parse: function parse(a) {\n return [u(a[1]), u(a[2]), u(a[3]), 1];\n }\n }];\n f.None = new f(\"\");\n return f;\n }();\n\n \"\";\n return f;\n });\n M(f, \"Core/Color/Palettes.js\", [], function () {\n return {\n colors: \"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \")\n };\n });\n M(f, \"Core/Time.js\", [f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = a.win,\n G = f.defined,\n u = f.error,\n H = f.extend,\n I = f.isObject,\n B = f.merge,\n z = f.objectEach,\n p = f.pad,\n m = f.pick,\n e = f.splat,\n d = f.timeUnits,\n l = a.isSafari && F.Intl && F.Intl.DateTimeFormat.prototype.formatRange,\n h = a.isSafari && F.Intl && !F.Intl.DateTimeFormat.prototype.formatRange;\n\n f = function () {\n function t(d) {\n this.options = {};\n this.variableTimezone = this.useUTC = !1;\n this.Date = F.Date;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.update(d);\n }\n\n t.prototype.get = function (d, e) {\n if (this.variableTimezone || this.timezoneOffset) {\n var n = e.getTime(),\n l = n - this.getTimezoneOffset(e);\n e.setTime(l);\n d = e[\"getUTC\" + d]();\n e.setTime(n);\n return d;\n }\n\n return this.useUTC ? e[\"getUTC\" + d]() : e[\"get\" + d]();\n };\n\n t.prototype.set = function (d, e, h) {\n if (this.variableTimezone || this.timezoneOffset) {\n if (\"Milliseconds\" === d || \"Seconds\" === d || \"Minutes\" === d && 0 === this.getTimezoneOffset(e) % 36E5) return e[\"setUTC\" + d](h);\n var n = this.getTimezoneOffset(e);\n n = e.getTime() - n;\n e.setTime(n);\n e[\"setUTC\" + d](h);\n d = this.getTimezoneOffset(e);\n n = e.getTime() + d;\n return e.setTime(n);\n }\n\n return this.useUTC || l && \"FullYear\" === d ? e[\"setUTC\" + d](h) : e[\"set\" + d](h);\n };\n\n t.prototype.update = function (d) {\n var e = m(d && d.useUTC, !0);\n this.options = d = B(!0, this.options || {}, d);\n this.Date = d.Date || F.Date || Date;\n this.timezoneOffset = (this.useUTC = e) && d.timezoneOffset;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.variableTimezone = e && !(!d.getTimezoneOffset && !d.timezone);\n };\n\n t.prototype.makeTime = function (d, e, l, t, A, q) {\n if (this.useUTC) {\n var k = this.Date.UTC.apply(0, arguments);\n var c = this.getTimezoneOffset(k);\n k += c;\n var g = this.getTimezoneOffset(k);\n c !== g ? k += g - c : c - 36E5 !== this.getTimezoneOffset(k - 36E5) || h || (k -= 36E5);\n } else k = new this.Date(d, e, m(l, 1), m(t, 0), m(A, 0), m(q, 0)).getTime();\n\n return k;\n };\n\n t.prototype.timezoneOffsetFunction = function () {\n var d = this,\n e = this.options,\n l = e.getTimezoneOffset,\n h = e.moment || F.moment;\n if (!this.useUTC) return function (d) {\n return 6E4 * new Date(d.toString()).getTimezoneOffset();\n };\n\n if (e.timezone) {\n if (h) return function (d) {\n return 6E4 * -h.tz(d, e.timezone).utcOffset();\n };\n u(25);\n }\n\n return this.useUTC && l ? function (d) {\n return 6E4 * l(d.valueOf());\n } : function () {\n return 6E4 * (d.timezoneOffset || 0);\n };\n };\n\n t.prototype.dateFormat = function (d, e, l) {\n if (!G(e) || isNaN(e)) return a.defaultOptions.lang && a.defaultOptions.lang.invalidDate || \"\";\n d = m(d, \"%Y-%m-%d %H:%M:%S\");\n var h = this,\n n = new this.Date(e),\n q = this.get(\"Hours\", n),\n k = this.get(\"Day\", n),\n c = this.get(\"Date\", n),\n g = this.get(\"Month\", n),\n b = this.get(\"FullYear\", n),\n r = a.defaultOptions.lang,\n x = r && r.weekdays,\n D = r && r.shortWeekdays;\n n = H({\n a: D ? D[k] : x[k].substr(0, 3),\n A: x[k],\n d: p(c),\n e: p(c, 2, \" \"),\n w: k,\n b: r.shortMonths[g],\n B: r.months[g],\n m: p(g + 1),\n o: g + 1,\n y: b.toString().substr(2, 2),\n Y: b,\n H: p(q),\n k: q,\n I: p(q % 12 || 12),\n l: q % 12 || 12,\n M: p(this.get(\"Minutes\", n)),\n p: 12 > q ? \"AM\" : \"PM\",\n P: 12 > q ? \"am\" : \"pm\",\n S: p(n.getSeconds()),\n L: p(Math.floor(e % 1E3), 3)\n }, a.dateFormats);\n z(n, function (b, c) {\n for (; -1 !== d.indexOf(\"%\" + c);) {\n d = d.replace(\"%\" + c, \"function\" === typeof b ? b.call(h, e) : b);\n }\n });\n return l ? d.substr(0, 1).toUpperCase() + d.substr(1) : d;\n };\n\n t.prototype.resolveDTLFormat = function (d) {\n return I(d, !0) ? d : (d = e(d), {\n main: d[0],\n from: d[1],\n to: d[2]\n });\n };\n\n t.prototype.getTimeTicks = function (e, l, h, t) {\n var n = this,\n q = [],\n k = {},\n c = new n.Date(l),\n g = e.unitRange,\n b = e.count || 1,\n r;\n t = m(t, 1);\n\n if (G(l)) {\n n.set(\"Milliseconds\", c, g >= d.second ? 0 : b * Math.floor(n.get(\"Milliseconds\", c) / b));\n g >= d.second && n.set(\"Seconds\", c, g >= d.minute ? 0 : b * Math.floor(n.get(\"Seconds\", c) / b));\n g >= d.minute && n.set(\"Minutes\", c, g >= d.hour ? 0 : b * Math.floor(n.get(\"Minutes\", c) / b));\n g >= d.hour && n.set(\"Hours\", c, g >= d.day ? 0 : b * Math.floor(n.get(\"Hours\", c) / b));\n g >= d.day && n.set(\"Date\", c, g >= d.month ? 1 : Math.max(1, b * Math.floor(n.get(\"Date\", c) / b)));\n\n if (g >= d.month) {\n n.set(\"Month\", c, g >= d.year ? 0 : b * Math.floor(n.get(\"Month\", c) / b));\n var x = n.get(\"FullYear\", c);\n }\n\n g >= d.year && n.set(\"FullYear\", c, x - x % b);\n g === d.week && (x = n.get(\"Day\", c), n.set(\"Date\", c, n.get(\"Date\", c) - x + t + (x < t ? -7 : 0)));\n x = n.get(\"FullYear\", c);\n t = n.get(\"Month\", c);\n var D = n.get(\"Date\", c),\n y = n.get(\"Hours\", c);\n l = c.getTime();\n !n.variableTimezone && n.useUTC || !G(h) || (r = h - l > 4 * d.month || n.getTimezoneOffset(l) !== n.getTimezoneOffset(h));\n l = c.getTime();\n\n for (c = 1; l < h;) {\n q.push(l), l = g === d.year ? n.makeTime(x + c * b, 0) : g === d.month ? n.makeTime(x, t + c * b) : !r || g !== d.day && g !== d.week ? r && g === d.hour && 1 < b ? n.makeTime(x, t, D, y + c * b) : l + g * b : n.makeTime(x, t, D + c * b * (g === d.day ? 1 : 7)), c++;\n }\n\n q.push(l);\n g <= d.hour && 1E4 > q.length && q.forEach(function (b) {\n 0 === b % 18E5 && \"000000000\" === n.dateFormat(\"%H%M%S%L\", b) && (k[b] = \"day\");\n });\n }\n\n q.info = H(e, {\n higherRanks: k,\n totalRange: g * b\n });\n return q;\n };\n\n t.prototype.getDateFormat = function (e, l, h, t) {\n var n = this.dateFormat(\"%m-%d %H:%M:%S.%L\", l),\n q = {\n millisecond: 15,\n second: 12,\n minute: 9,\n hour: 6,\n day: 3\n },\n k = \"millisecond\";\n\n for (c in d) {\n if (e === d.week && +this.dateFormat(\"%w\", l) === h && \"00:00:00.000\" === n.substr(6)) {\n var c = \"week\";\n break;\n }\n\n if (d[c] > e) {\n c = k;\n break;\n }\n\n if (q[c] && n.substr(q[c]) !== \"01-01 00:00:00.000\".substr(q[c])) break;\n \"week\" !== c && (k = c);\n }\n\n if (c) var g = this.resolveDTLFormat(t[c]).main;\n return g;\n };\n\n return t;\n }();\n\n \"\";\n return f;\n });\n M(f, \"Core/DefaultOptions.js\", [f[\"Core/Chart/ChartDefaults.js\"], f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Color/Palettes.js\"], f[\"Core/Time.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H) {\n f = f.parse;\n var F = H.merge,\n B = {\n colors: G.colors,\n symbols: [\"circle\", \"diamond\", \"square\", \"triangle\", \"triangle-down\"],\n lang: {\n loading: \"Loading...\",\n months: \"January February March April May June July August September October November December\".split(\" \"),\n shortMonths: \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),\n weekdays: \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\n decimalPoint: \".\",\n numericSymbols: \"kMGTPE\".split(\"\"),\n resetZoom: \"Reset zoom\",\n resetZoomTitle: \"Reset zoom level 1:1\",\n thousandsSep: \" \"\n },\n global: {},\n time: {\n Date: void 0,\n getTimezoneOffset: void 0,\n timezone: void 0,\n timezoneOffset: 0,\n useUTC: !0\n },\n chart: a,\n title: {\n text: \"Chart title\",\n align: \"center\",\n margin: 15,\n widthAdjust: -44\n },\n subtitle: {\n text: \"\",\n align: \"center\",\n widthAdjust: -44\n },\n caption: {\n margin: 15,\n text: \"\",\n align: \"left\",\n verticalAlign: \"bottom\"\n },\n plotOptions: {},\n labels: {\n style: {\n position: \"absolute\",\n color: \"#333333\"\n }\n },\n legend: {\n enabled: !0,\n align: \"center\",\n alignColumns: !0,\n className: \"highcharts-no-tooltip\",\n layout: \"horizontal\",\n labelFormatter: function labelFormatter() {\n return this.name;\n },\n borderColor: \"#999999\",\n borderRadius: 0,\n navigation: {\n activeColor: \"#003399\",\n inactiveColor: \"#cccccc\"\n },\n itemStyle: {\n color: \"#333333\",\n cursor: \"pointer\",\n fontSize: \"12px\",\n fontWeight: \"bold\",\n textOverflow: \"ellipsis\"\n },\n itemHoverStyle: {\n color: \"#000000\"\n },\n itemHiddenStyle: {\n color: \"#cccccc\"\n },\n shadow: !1,\n itemCheckboxStyle: {\n position: \"absolute\",\n width: \"13px\",\n height: \"13px\"\n },\n squareSymbol: !0,\n symbolPadding: 5,\n verticalAlign: \"bottom\",\n x: 0,\n y: 0,\n title: {\n style: {\n fontWeight: \"bold\"\n }\n }\n },\n loading: {\n labelStyle: {\n fontWeight: \"bold\",\n position: \"relative\",\n top: \"45%\"\n },\n style: {\n position: \"absolute\",\n backgroundColor: \"#ffffff\",\n opacity: .5,\n textAlign: \"center\"\n }\n },\n tooltip: {\n enabled: !0,\n animation: C.svg,\n borderRadius: 3,\n dateTimeLabelFormats: {\n millisecond: \"%A, %b %e, %H:%M:%S.%L\",\n second: \"%A, %b %e, %H:%M:%S\",\n minute: \"%A, %b %e, %H:%M\",\n hour: \"%A, %b %e, %H:%M\",\n day: \"%A, %b %e, %Y\",\n week: \"Week from %A, %b %e, %Y\",\n month: \"%B %Y\",\n year: \"%Y\"\n },\n footerFormat: \"\",\n headerShape: \"callout\",\n hideDelay: 500,\n padding: 8,\n shape: \"callout\",\n shared: !1,\n snap: C.isTouchDevice ? 25 : 10,\n headerFormat: '{point.key}
',\n pointFormat: \"\\u25CF {series.name}: {point.y}
\",\n backgroundColor: f(\"#f7f7f7\").setOpacity(.85).get(),\n borderWidth: 1,\n shadow: !0,\n stickOnContact: !1,\n style: {\n color: \"#333333\",\n cursor: \"default\",\n fontSize: \"12px\",\n whiteSpace: \"nowrap\"\n },\n useHTML: !1\n },\n credits: {\n enabled: !0,\n href: \"https://www.highcharts.com?credits\",\n position: {\n align: \"right\",\n x: -10,\n verticalAlign: \"bottom\",\n y: -5\n },\n style: {\n cursor: \"pointer\",\n color: \"#999999\",\n fontSize: \"9px\"\n },\n text: \"Highcharts.com\"\n }\n };\n B.chart.styledMode = !1;\n \"\";\n var z = new u(F(B.global, B.time));\n a = {\n defaultOptions: B,\n defaultTime: z,\n getOptions: function getOptions() {\n return B;\n },\n setOptions: function setOptions(p) {\n F(!0, B, p);\n if (p.time || p.global) C.time ? C.time.update(F(B.global, B.time, p.global, p.time)) : C.time = z;\n return B;\n }\n };\n \"\";\n return a;\n });\n M(f, \"Core/Animation/Fx.js\", [f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = a.parse,\n u = f.win,\n H = C.isNumber,\n I = C.objectEach;\n return function () {\n function a(a, p, m) {\n this.pos = NaN;\n this.options = p;\n this.elem = a;\n this.prop = m;\n }\n\n a.prototype.dSetter = function () {\n var a = this.paths,\n p = a && a[0];\n a = a && a[1];\n var m = this.now || 0,\n e = [];\n if (1 !== m && p && a) {\n if (p.length === a.length && 1 > m) for (var d = 0; d < a.length; d++) {\n for (var l = p[d], h = a[d], t = [], n = 0; n < h.length; n++) {\n var v = l[n],\n w = h[n];\n H(v) && H(w) && (\"A\" !== h[0] || 4 !== n && 5 !== n) ? t[n] = v + m * (w - v) : t[n] = w;\n }\n\n e.push(t);\n } else e = a;\n } else e = this.toD || [];\n this.elem.attr(\"d\", e, void 0, !0);\n };\n\n a.prototype.update = function () {\n var a = this.elem,\n p = this.prop,\n m = this.now,\n e = this.options.step;\n if (this[p + \"Setter\"]) this[p + \"Setter\"]();else a.attr ? a.element && a.attr(p, m, null, !0) : a.style[p] = m + this.unit;\n e && e.call(a, m, this);\n };\n\n a.prototype.run = function (z, p, m) {\n var e = this,\n d = e.options,\n l = function l(d) {\n return l.stopped ? !1 : e.step(d);\n },\n h = u.requestAnimationFrame || function (d) {\n setTimeout(d, 13);\n },\n t = function t() {\n for (var d = 0; d < a.timers.length; d++) {\n a.timers[d]() || a.timers.splice(d--, 1);\n }\n\n a.timers.length && h(t);\n };\n\n z !== p || this.elem[\"forceAnimate:\" + this.prop] ? (this.startTime = +new Date(), this.start = z, this.end = p, this.unit = m, this.now = this.start, this.pos = 0, l.elem = this.elem, l.prop = this.prop, l() && 1 === a.timers.push(l) && h(t)) : (delete d.curAnim[this.prop], d.complete && 0 === Object.keys(d.curAnim).length && d.complete.call(this.elem));\n };\n\n a.prototype.step = function (a) {\n var p = +new Date(),\n m = this.options,\n e = this.elem,\n d = m.complete,\n l = m.duration,\n h = m.curAnim;\n if (e.attr && !e.element) a = !1;else if (a || p >= l + this.startTime) {\n this.now = this.end;\n this.pos = 1;\n this.update();\n var t = h[this.prop] = !0;\n I(h, function (d) {\n !0 !== d && (t = !1);\n });\n t && d && d.call(e);\n a = !1;\n } else this.pos = m.easing((p - this.startTime) / l), this.now = this.start + (this.end - this.start) * this.pos, this.update(), a = !0;\n return a;\n };\n\n a.prototype.initPath = function (a, p, m) {\n function e(d, q) {\n for (; d.length < y;) {\n var k = d[0],\n c = q[y - d.length];\n c && \"M\" === k[0] && (d[0] = \"C\" === c[0] ? [\"C\", k[1], k[2], k[1], k[2], k[1], k[2]] : [\"L\", k[1], k[2]]);\n d.unshift(k);\n t && (k = d.pop(), d.push(d[d.length - 1], k));\n }\n }\n\n function d(d, q) {\n for (; d.length < y;) {\n if (q = d[Math.floor(d.length / n) - 1].slice(), \"C\" === q[0] && (q[1] = q[5], q[2] = q[6]), t) {\n var k = d[Math.floor(d.length / n)].slice();\n d.splice(d.length / 2, 0, q, k);\n } else d.push(q);\n }\n }\n\n var l = a.startX,\n h = a.endX;\n m = m.slice();\n var t = a.isArea,\n n = t ? 2 : 1;\n p = p && p.slice();\n if (!p) return [m, m];\n\n if (l && h && h.length) {\n for (a = 0; a < l.length; a++) {\n if (l[a] === h[0]) {\n var v = a;\n break;\n } else if (l[0] === h[h.length - l.length + a]) {\n v = a;\n var w = !0;\n break;\n } else if (l[l.length - 1] === h[h.length - l.length + a]) {\n v = l.length - a;\n break;\n }\n }\n\n \"undefined\" === typeof v && (p = []);\n }\n\n if (p.length && H(v)) {\n var y = m.length + v * n;\n w ? (e(p, m), d(m, p)) : (e(m, p), d(p, m));\n }\n\n return [p, m];\n };\n\n a.prototype.fillSetter = function () {\n a.prototype.strokeSetter.apply(this, arguments);\n };\n\n a.prototype.strokeSetter = function () {\n this.elem.attr(this.prop, F(this.start).tweenTo(F(this.end), this.pos), void 0, !0);\n };\n\n a.timers = [];\n return a;\n }();\n });\n M(f, \"Core/Animation/AnimationUtilities.js\", [f[\"Core/Animation/Fx.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n function F(d) {\n return z(d) ? p({\n duration: 500,\n defer: 0\n }, d) : {\n duration: d ? 500 : 0,\n defer: 0\n };\n }\n\n function G(d, e) {\n for (var l = a.timers.length; l--;) {\n a.timers[l].elem !== d || e && e !== a.timers[l].prop || (a.timers[l].stopped = !0);\n }\n }\n\n var u = f.defined,\n H = f.getStyle,\n I = f.isArray,\n B = f.isNumber,\n z = f.isObject,\n p = f.merge,\n m = f.objectEach,\n e = f.pick;\n return {\n animate: function animate(d, e, h) {\n var l,\n n = \"\",\n v,\n w;\n\n if (!z(h)) {\n var y = arguments;\n h = {\n duration: y[2],\n easing: y[3],\n complete: y[4]\n };\n }\n\n B(h.duration) || (h.duration = 400);\n h.easing = \"function\" === typeof h.easing ? h.easing : Math[h.easing] || Math.easeInOutSine;\n h.curAnim = p(e);\n m(e, function (t, q) {\n G(d, q);\n w = new a(d, h, q);\n v = void 0;\n \"d\" === q && I(e.d) ? (w.paths = w.initPath(d, d.pathArray, e.d), w.toD = e.d, l = 0, v = 1) : d.attr ? l = d.attr(q) : (l = parseFloat(H(d, q)) || 0, \"opacity\" !== q && (n = \"px\"));\n v || (v = t);\n \"string\" === typeof v && v.match(\"px\") && (v = v.replace(/px/g, \"\"));\n w.run(l, v, n);\n });\n },\n animObject: F,\n getDeferredAnimation: function getDeferredAnimation(d, e, h) {\n var l = F(e),\n n = 0,\n a = 0;\n (h ? [h] : d.series).forEach(function (d) {\n d = F(d.options.animation);\n n = e && u(e.defer) ? l.defer : Math.max(n, d.duration + d.defer);\n a = Math.min(l.duration, d.duration);\n });\n d.renderer.forExport && (n = 0);\n return {\n defer: Math.max(0, n - a),\n duration: Math.min(n, a)\n };\n },\n setAnimation: function setAnimation(d, l) {\n l.renderer.globalAnimation = e(d, l.options.chart.animation, !0);\n },\n stop: G\n };\n });\n M(f, \"Core/Renderer/HTML/AST.js\", [f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = a.SVG_NS,\n G = f.attr,\n u = f.createElement,\n H = f.css,\n I = f.error,\n B = f.isFunction,\n z = f.isString,\n p = f.objectEach,\n m = f.splat,\n e = (f = a.win.trustedTypes) && B(f.createPolicy) && f.createPolicy(\"highcharts\", {\n createHTML: function createHTML(d) {\n return d;\n }\n }),\n d = e ? e.createHTML(\"\") : \"\";\n\n try {\n var l = !!new DOMParser().parseFromString(d, \"text/html\");\n } catch (h) {\n l = !1;\n }\n\n B = function () {\n function h(d) {\n this.nodes = \"string\" === typeof d ? this.parseMarkup(d) : d;\n }\n\n h.filterUserAttributes = function (d) {\n p(d, function (e, l) {\n var n = !0;\n -1 === h.allowedAttributes.indexOf(l) && (n = !1);\n -1 !== [\"background\", \"dynsrc\", \"href\", \"lowsrc\", \"src\"].indexOf(l) && (n = z(e) && h.allowedReferences.some(function (d) {\n return 0 === e.indexOf(d);\n }));\n n || (I(\"Highcharts warning: Invalid attribute '\" + l + \"' in config\"), delete d[l]);\n });\n return d;\n };\n\n h.parseStyle = function (d) {\n return d.split(\";\").reduce(function (d, e) {\n e = e.split(\":\").map(function (d) {\n return d.trim();\n });\n var l = e[0].replace(/-([a-z])/g, function (d) {\n return d[1].toUpperCase();\n });\n e[1] && (d[l] = e[1]);\n return d;\n }, {});\n };\n\n h.setElementHTML = function (d, e) {\n d.innerHTML = h.emptyHTML;\n e && new h(e).addToDOM(d);\n };\n\n h.prototype.addToDOM = function (d) {\n function e(d, l) {\n var n;\n m(d).forEach(function (d) {\n var q = d.tagName,\n k = d.textContent ? a.doc.createTextNode(d.textContent) : void 0,\n c = h.bypassHTMLFiltering;\n if (q) if (\"#text\" === q) var g = k;else if (-1 !== h.allowedTags.indexOf(q) || c) {\n q = a.doc.createElementNS(\"svg\" === q ? F : l.namespaceURI || F, q);\n var b = d.attributes || {};\n p(d, function (c, g) {\n \"tagName\" !== g && \"attributes\" !== g && \"children\" !== g && \"style\" !== g && \"textContent\" !== g && (b[g] = c);\n });\n G(q, c ? b : h.filterUserAttributes(b));\n d.style && H(q, d.style);\n k && q.appendChild(k);\n e(d.children || [], q);\n g = q;\n } else I(\"Highcharts warning: Invalid tagName \" + q + \" in config\");\n g && l.appendChild(g);\n n = g;\n });\n return n;\n }\n\n return e(this.nodes, d);\n };\n\n h.prototype.parseMarkup = function (d) {\n var n = [];\n d = d.trim().replace(/ style=\"/g, ' data-style=\"');\n if (l) d = new DOMParser().parseFromString(e ? e.createHTML(d) : d, \"text/html\");else {\n var a = u(\"div\");\n a.innerHTML = d;\n d = {\n body: a\n };\n }\n\n var t = function t(d, e) {\n var q = d.nodeName.toLowerCase(),\n k = {\n tagName: q\n };\n \"#text\" === q && (k.textContent = d.textContent || \"\");\n\n if (q = d.attributes) {\n var c = {};\n [].forEach.call(q, function (b) {\n \"data-style\" === b.name ? k.style = h.parseStyle(b.value) : c[b.name] = b.value;\n });\n k.attributes = c;\n }\n\n if (d.childNodes.length) {\n var g = [];\n [].forEach.call(d.childNodes, function (b) {\n t(b, g);\n });\n g.length && (k.children = g);\n }\n\n e.push(k);\n };\n\n [].forEach.call(d.body.childNodes, function (d) {\n return t(d, n);\n });\n return n;\n };\n\n h.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 title type valign width x x1 x2 y y1 y2 zIndex\".split(\" \");\n h.allowedReferences = \"https:// http:// mailto: / ../ ./ #\".split(\" \");\n h.allowedTags = \"a abbr 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(\" \");\n h.emptyHTML = d;\n h.bypassHTMLFiltering = !1;\n return h;\n }();\n\n \"\";\n return B;\n });\n M(f, \"Core/FormatUtilities.js\", [f[\"Core/DefaultOptions.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n function F(a, m, e, d) {\n a = +a || 0;\n m = +m;\n var l = G.lang,\n h = (a.toString().split(\".\")[1] || \"\").split(\"e\")[0].length,\n t = a.toString().split(\"e\"),\n n = m;\n if (-1 === m) m = Math.min(h, 20);else if (!I(m)) m = 2;else if (m && t[1] && 0 > t[1]) {\n var v = m + +t[1];\n 0 <= v ? (t[0] = (+t[0]).toExponential(v).split(\"e\")[0], m = v) : (t[0] = t[0].split(\".\")[0] || 0, a = 20 > m ? (t[0] * Math.pow(10, t[1])).toFixed(m) : 0, t[1] = 0);\n }\n v = (Math.abs(t[1] ? t[0] : a) + Math.pow(10, -Math.max(m, h) - 1)).toFixed(m);\n h = String(z(v));\n var w = 3 < h.length ? h.length % 3 : 0;\n e = B(e, l.decimalPoint);\n d = B(d, l.thousandsSep);\n a = (0 > a ? \"-\" : \"\") + (w ? h.substr(0, w) + d : \"\");\n a = 0 > +t[1] && !n ? \"0\" : a + h.substr(w).replace(/(\\d{3})(?=\\d)/g, \"$1\" + d);\n m && (a += e + v.slice(-m));\n t[1] && 0 !== +a && (a += \"e\" + t[1]);\n return a;\n }\n\n var G = a.defaultOptions,\n u = a.defaultTime,\n H = f.getNestedProperty,\n I = f.isNumber,\n B = f.pick,\n z = f.pInt;\n return {\n dateFormat: function dateFormat(a, m, e) {\n return u.dateFormat(a, m, e);\n },\n format: function format(a, m, e) {\n var d = \"{\",\n l = !1,\n h = /f$/,\n t = /\\.([0-9])/,\n n = G.lang,\n v = e && e.time || u;\n e = e && e.numberFormatter || F;\n\n for (var w = []; a;) {\n var y = a.indexOf(d);\n if (-1 === y) break;\n var A = a.slice(0, y);\n\n if (l) {\n A = A.split(\":\");\n d = H(A.shift() || \"\", m);\n if (A.length && \"number\" === typeof d) if (A = A.join(\":\"), h.test(A)) {\n var q = parseInt((A.match(t) || [\"\", \"-1\"])[1], 10);\n null !== d && (d = e(d, q, n.decimalPoint, -1 < A.indexOf(\",\") ? n.thousandsSep : \"\"));\n } else d = v.dateFormat(A, d);\n w.push(d);\n } else w.push(A);\n\n a = a.slice(y + 1);\n d = (l = !l) ? \"}\" : \"{\";\n }\n\n w.push(a);\n return w.join(\"\");\n },\n numberFormat: F\n };\n });\n M(f, \"Core/Renderer/RendererUtilities.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.clamp,\n C = a.pick,\n G = a.stableSort,\n u;\n\n (function (a) {\n function F(a, z, p) {\n var m = a,\n e = m.reducedLen || z,\n d = function d(_d, e) {\n return (e.rank || 0) - (_d.rank || 0);\n },\n l = function l(d, e) {\n return d.target - e.target;\n },\n h,\n t = !0,\n n = [],\n v = 0;\n\n for (h = a.length; h--;) {\n v += a[h].size;\n }\n\n if (v > e) {\n G(a, d);\n\n for (v = h = 0; v <= e;) {\n v += a[h].size, h++;\n }\n\n n = a.splice(h - 1, a.length);\n }\n\n G(a, l);\n\n for (a = a.map(function (d) {\n return {\n size: d.size,\n targets: [d.target],\n align: C(d.align, .5)\n };\n }); t;) {\n for (h = a.length; h--;) {\n e = a[h], d = (Math.min.apply(0, e.targets) + Math.max.apply(0, e.targets)) / 2, e.pos = f(d - e.size * e.align, 0, z - e.size);\n }\n\n h = a.length;\n\n for (t = !1; h--;) {\n 0 < h && a[h - 1].pos + a[h - 1].size > a[h].pos && (a[h - 1].size += a[h].size, a[h - 1].targets = a[h - 1].targets.concat(a[h].targets), a[h - 1].align = .5, a[h - 1].pos + a[h - 1].size > z && (a[h - 1].pos = z - a[h - 1].size), a.splice(h, 1), t = !0);\n }\n }\n\n m.push.apply(m, n);\n h = 0;\n a.some(function (d) {\n var e = 0;\n return (d.targets || []).some(function () {\n m[h].pos = d.pos + e;\n if (\"undefined\" !== typeof p && Math.abs(m[h].pos - m[h].target) > p) return m.slice(0, h + 1).forEach(function (d) {\n return delete d.pos;\n }), m.reducedLen = (m.reducedLen || z) - .1 * z, m.reducedLen > .1 * z && F(m, z, p), !0;\n e += m[h].size;\n h++;\n return !1;\n });\n });\n G(m, l);\n return m;\n }\n\n a.distribute = F;\n })(u || (u = {}));\n\n return u;\n });\n M(f, \"Core/Renderer/SVG/SVGElement.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u) {\n var F = a.animate,\n I = a.animObject,\n B = a.stop,\n z = G.deg2rad,\n p = G.doc,\n m = G.noop,\n e = G.svg,\n d = G.SVG_NS,\n l = G.win,\n h = u.addEvent,\n t = u.attr,\n n = u.createElement,\n v = u.css,\n w = u.defined,\n y = u.erase,\n A = u.extend,\n q = u.fireEvent,\n k = u.isArray,\n c = u.isFunction,\n g = u.isNumber,\n b = u.isString,\n r = u.merge,\n x = u.objectEach,\n D = u.pick,\n K = u.pInt,\n P = u.syncTimeout,\n Q = u.uniqueKey;\n\n a = function () {\n function a() {\n this.element = void 0;\n this.onEvents = {};\n this.opacity = 1;\n this.renderer = void 0;\n this.SVG_NS = d;\n this.symbolCustomAttribs = \"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");\n }\n\n a.prototype._defaultGetter = function (b) {\n b = D(this[b + \"Value\"], this[b], this.element ? this.element.getAttribute(b) : null, 0);\n /^[\\-0-9\\.]+$/.test(b) && (b = parseFloat(b));\n return b;\n };\n\n a.prototype._defaultSetter = function (b, c, g) {\n g.setAttribute(c, b);\n };\n\n a.prototype.add = function (b) {\n var c = this.renderer,\n g = this.element;\n b && (this.parentGroup = b);\n this.parentInverted = b && b.inverted;\n \"undefined\" !== typeof this.textStr && \"text\" === this.element.nodeName && c.buildText(this);\n this.added = !0;\n if (!b || b.handleZ || this.zIndex) var d = this.zIndexSetter();\n d || (b ? b.element : c.box).appendChild(g);\n if (this.onAdd) this.onAdd();\n return this;\n };\n\n a.prototype.addClass = function (b, c) {\n var g = c ? \"\" : this.attr(\"class\") || \"\";\n b = (b || \"\").split(/ /g).reduce(function (b, c) {\n -1 === g.indexOf(c) && b.push(c);\n return b;\n }, g ? [g] : []).join(\" \");\n b !== g && this.attr(\"class\", b);\n return this;\n };\n\n a.prototype.afterSetters = function () {\n this.doTransform && (this.updateTransform(), this.doTransform = !1);\n };\n\n a.prototype.align = function (c, g, d) {\n var L = {},\n k = this.renderer,\n r = k.alignedObjects,\n e,\n q,\n E;\n\n if (c) {\n if (this.alignOptions = c, this.alignByTranslate = g, !d || b(d)) this.alignTo = e = d || \"renderer\", y(r, this), r.push(this), d = void 0;\n } else c = this.alignOptions, g = this.alignByTranslate, e = this.alignTo;\n\n d = D(d, k[e], \"scrollablePlotBox\" === e ? k.plotBox : void 0, k);\n e = c.align;\n var a = c.verticalAlign;\n k = (d.x || 0) + (c.x || 0);\n r = (d.y || 0) + (c.y || 0);\n \"right\" === e ? q = 1 : \"center\" === e && (q = 2);\n q && (k += (d.width - (c.width || 0)) / q);\n L[g ? \"translateX\" : \"x\"] = Math.round(k);\n \"bottom\" === a ? E = 1 : \"middle\" === a && (E = 2);\n E && (r += (d.height - (c.height || 0)) / E);\n L[g ? \"translateY\" : \"y\"] = Math.round(r);\n this[this.placed ? \"animate\" : \"attr\"](L);\n this.placed = !0;\n this.alignAttr = L;\n return this;\n };\n\n a.prototype.alignSetter = function (b) {\n var c = {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n };\n c[b] && (this.alignValue = b, this.element.setAttribute(\"text-anchor\", c[b]));\n };\n\n a.prototype.animate = function (b, c, g) {\n var d = this,\n L = I(D(c, this.renderer.globalAnimation, !0));\n c = L.defer;\n D(p.hidden, p.msHidden, p.webkitHidden, !1) && (L.duration = 0);\n 0 !== L.duration ? (g && (L.complete = g), P(function () {\n d.element && F(d, b, L);\n }, c)) : (this.attr(b, void 0, g || L.complete), x(b, function (b, c) {\n L.step && L.step.call(this, b, {\n prop: c,\n pos: 1,\n elem: this\n });\n }, this));\n return this;\n };\n\n a.prototype.applyTextOutline = function (b) {\n var c = this.element;\n -1 !== b.indexOf(\"contrast\") && (b = b.replace(/contrast/g, this.renderer.getContrast(c.style.fill)));\n var g = b.split(\" \");\n b = g[g.length - 1];\n\n if ((g = g[0]) && \"none\" !== g && G.svg) {\n this.fakeTS = !0;\n this.ySetter = this.xSetter;\n g = g.replace(/(^[\\d\\.]+)(.*?)$/g, function (b, c, g) {\n return 2 * Number(c) + g;\n });\n this.removeTextOutline();\n var k = p.createElementNS(d, \"tspan\");\n t(k, {\n \"class\": \"highcharts-text-outline\",\n fill: b,\n stroke: b,\n \"stroke-width\": g,\n \"stroke-linejoin\": \"round\"\n });\n [].forEach.call(c.childNodes, function (b) {\n var c = b.cloneNode(!0);\n c.removeAttribute && [\"fill\", \"stroke\", \"stroke-width\", \"stroke\"].forEach(function (b) {\n return c.removeAttribute(b);\n });\n k.appendChild(c);\n });\n var r = p.createElementNS(d, \"tspan\");\n r.textContent = \"\\u200B\";\n [\"x\", \"y\"].forEach(function (b) {\n var g = c.getAttribute(b);\n g && r.setAttribute(b, g);\n });\n k.appendChild(r);\n c.insertBefore(k, c.firstChild);\n }\n };\n\n a.prototype.attr = function (b, c, g, d) {\n var L = this.element,\n k = this.symbolCustomAttribs,\n r,\n J = this,\n E,\n e;\n\n if (\"string\" === typeof b && \"undefined\" !== typeof c) {\n var q = b;\n b = {};\n b[q] = c;\n }\n\n \"string\" === typeof b ? J = (this[b + \"Getter\"] || this._defaultGetter).call(this, b, L) : (x(b, function (c, g) {\n E = !1;\n d || B(this, g);\n this.symbolName && -1 !== k.indexOf(g) && (r || (this.symbolAttr(b), r = !0), E = !0);\n !this.rotation || \"x\" !== g && \"y\" !== g || (this.doTransform = !0);\n E || (e = this[g + \"Setter\"] || this._defaultSetter, e.call(this, c, g, L), !this.styledMode && this.shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(g) && this.updateShadows(g, c, e));\n }, this), this.afterSetters());\n g && g.call(this);\n return J;\n };\n\n a.prototype.clip = function (b) {\n return this.attr(\"clip-path\", b ? \"url(\" + this.renderer.url + \"#\" + b.id + \")\" : \"none\");\n };\n\n a.prototype.crisp = function (b, c) {\n c = c || b.strokeWidth || 0;\n var g = Math.round(c) % 2 / 2;\n b.x = Math.floor(b.x || this.x || 0) + g;\n b.y = Math.floor(b.y || this.y || 0) + g;\n b.width = Math.floor((b.width || this.width || 0) - 2 * g);\n b.height = Math.floor((b.height || this.height || 0) - 2 * g);\n w(b.strokeWidth) && (b.strokeWidth = c);\n return b;\n };\n\n a.prototype.complexColor = function (b, c, g) {\n var d = this.renderer,\n L,\n e,\n a,\n l,\n E,\n n,\n h,\n D,\n t,\n m,\n y = [],\n A;\n q(this.renderer, \"complexColor\", {\n args: arguments\n }, function () {\n b.radialGradient ? e = \"radialGradient\" : b.linearGradient && (e = \"linearGradient\");\n\n if (e) {\n a = b[e];\n E = d.gradients;\n n = b.stops;\n t = g.radialReference;\n k(a) && (b[e] = a = {\n x1: a[0],\n y1: a[1],\n x2: a[2],\n y2: a[3],\n gradientUnits: \"userSpaceOnUse\"\n });\n \"radialGradient\" === e && t && !w(a.gradientUnits) && (l = a, a = r(a, d.getRadialAttr(t, l), {\n gradientUnits: \"userSpaceOnUse\"\n }));\n x(a, function (b, c) {\n \"id\" !== c && y.push(c, b);\n });\n x(n, function (b) {\n y.push(b);\n });\n y = y.join(\",\");\n if (E[y]) m = E[y].attr(\"id\");else {\n a.id = m = Q();\n var J = E[y] = d.createElement(e).attr(a).add(d.defs);\n J.radAttr = l;\n J.stops = [];\n n.forEach(function (b) {\n 0 === b[1].indexOf(\"rgba\") ? (L = C.parse(b[1]), h = L.get(\"rgb\"), D = L.get(\"a\")) : (h = b[1], D = 1);\n b = d.createElement(\"stop\").attr({\n offset: b[0],\n \"stop-color\": h,\n \"stop-opacity\": D\n }).add(J);\n J.stops.push(b);\n });\n }\n A = \"url(\" + d.url + \"#\" + m + \")\";\n g.setAttribute(c, A);\n g.gradient = y;\n\n b.toString = function () {\n return A;\n };\n }\n });\n };\n\n a.prototype.css = function (b) {\n var c = this.styles,\n g = {},\n d = this.element,\n k = !c;\n b.color && (b.fill = b.color);\n c && x(b, function (b, d) {\n c && c[d] !== b && (g[d] = b, k = !0);\n });\n\n if (k) {\n c && (b = A(c, g));\n if (null === b.width || \"auto\" === b.width) delete this.textWidth;else if (\"text\" === d.nodeName.toLowerCase() && b.width) var a = this.textWidth = K(b.width);\n this.styles = b;\n a && !e && this.renderer.forExport && delete b.width;\n var q = r(b);\n d.namespaceURI === this.SVG_NS && [\"textOutline\", \"textOverflow\", \"width\"].forEach(function (b) {\n return q && delete q[b];\n });\n v(d, q);\n this.added && (\"text\" === this.element.nodeName && this.renderer.buildText(this), b.textOutline && this.applyTextOutline(b.textOutline));\n }\n\n return this;\n };\n\n a.prototype.dashstyleSetter = function (b) {\n var c = this[\"stroke-width\"];\n \"inherit\" === c && (c = 1);\n\n if (b = b && b.toLowerCase()) {\n var g = 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(\",\");\n\n for (b = g.length; b--;) {\n g[b] = \"\" + K(g[b]) * D(c, NaN);\n }\n\n b = g.join(\",\").replace(/NaN/g, \"none\");\n this.element.setAttribute(\"stroke-dasharray\", b);\n }\n };\n\n a.prototype.destroy = function () {\n var b = this,\n c = b.element || {},\n g = b.renderer,\n d = c.ownerSVGElement,\n k = g.isSVG && \"SPAN\" === c.nodeName && b.parentGroup || void 0;\n c.onclick = c.onmouseout = c.onmouseover = c.onmousemove = c.point = null;\n B(b);\n\n if (b.clipPath && d) {\n var r = b.clipPath;\n [].forEach.call(d.querySelectorAll(\"[clip-path],[CLIP-PATH]\"), function (b) {\n -1 < b.getAttribute(\"clip-path\").indexOf(r.element.id) && b.removeAttribute(\"clip-path\");\n });\n b.clipPath = r.destroy();\n }\n\n if (b.stops) {\n for (d = 0; d < b.stops.length; d++) {\n b.stops[d].destroy();\n }\n\n b.stops.length = 0;\n b.stops = void 0;\n }\n\n b.safeRemoveChild(c);\n\n for (g.styledMode || b.destroyShadows(); k && k.div && 0 === k.div.childNodes.length;) {\n c = k.parentGroup, b.safeRemoveChild(k.div), delete k.div, k = c;\n }\n\n b.alignTo && y(g.alignedObjects, b);\n x(b, function (c, g) {\n b[g] && b[g].parentGroup === b && b[g].destroy && b[g].destroy();\n delete b[g];\n });\n };\n\n a.prototype.destroyShadows = function () {\n (this.shadows || []).forEach(function (b) {\n this.safeRemoveChild(b);\n }, this);\n this.shadows = void 0;\n };\n\n a.prototype.destroyTextPath = function (b, c) {\n var g = b.getElementsByTagName(\"text\")[0];\n\n if (g) {\n if (g.removeAttribute(\"dx\"), g.removeAttribute(\"dy\"), c.element.setAttribute(\"id\", \"\"), this.textPathWrapper && g.getElementsByTagName(\"textPath\").length) {\n for (b = this.textPathWrapper.element.childNodes; b.length;) {\n g.appendChild(b[0]);\n }\n\n g.removeChild(this.textPathWrapper.element);\n }\n } else if (b.getAttribute(\"dx\") || b.getAttribute(\"dy\")) b.removeAttribute(\"dx\"), b.removeAttribute(\"dy\");\n\n this.textPathWrapper && (this.textPathWrapper = this.textPathWrapper.destroy());\n };\n\n a.prototype.dSetter = function (b, c, g) {\n k(b) && (\"string\" === typeof b[0] && (b = this.renderer.pathToSegments(b)), this.pathArray = b, b = b.reduce(function (b, c, g) {\n return c && c.join ? (g ? b + \" \" : \"\") + c.join(\" \") : (c || \"\").toString();\n }, \"\"));\n /(NaN| {2}|^$)/.test(b) && (b = \"M 0 0\");\n this[c] !== b && (g.setAttribute(c, b), this[c] = b);\n };\n\n a.prototype.fadeOut = function (b) {\n var c = this;\n c.animate({\n opacity: 0\n }, {\n duration: D(b, 150),\n complete: function complete() {\n c.attr({\n y: -9999\n }).hide();\n }\n });\n };\n\n a.prototype.fillSetter = function (b, c, g) {\n \"string\" === typeof b ? g.setAttribute(c, b) : b && this.complexColor(b, c, g);\n };\n\n a.prototype.getBBox = function (b, g) {\n var d = this.renderer,\n k = this.element,\n r = this.styles,\n e = this.textStr,\n q = d.cache,\n l = d.cacheKeys,\n E = k.namespaceURI === this.SVG_NS;\n g = D(g, this.rotation, 0);\n var n = d.styledMode ? k && a.prototype.getStyle.call(k, \"font-size\") : r && r.fontSize,\n x;\n\n if (w(e)) {\n var h = e.toString();\n -1 === h.indexOf(\"<\") && (h = h.replace(/[0-9]/g, \"0\"));\n h += [\"\", g, n, this.textWidth, r && r.textOverflow, r && r.fontWeight].join();\n }\n\n h && !b && (x = q[h]);\n\n if (!x) {\n if (E || d.forExport) {\n try {\n var t = this.fakeTS && function (b) {\n var c = k.querySelector(\".highcharts-text-outline\");\n c && v(c, {\n display: b\n });\n };\n\n c(t) && t(\"none\");\n x = k.getBBox ? A({}, k.getBBox()) : {\n width: k.offsetWidth,\n height: k.offsetHeight\n };\n c(t) && t(\"\");\n } catch (X) {\n \"\";\n }\n\n if (!x || 0 > x.width) x = {\n width: 0,\n height: 0\n };\n } else x = this.htmlGetBBox();\n\n d.isSVG && (b = x.width, d = x.height, E && (x.height = d = {\n \"11px,17\": 14,\n \"13px,20\": 16\n }[(n || \"\") + \",\" + Math.round(d)] || d), g && (E = g * z, x.width = Math.abs(d * Math.sin(E)) + Math.abs(b * Math.cos(E)), x.height = Math.abs(d * Math.cos(E)) + Math.abs(b * Math.sin(E))));\n\n if (h && (\"\" === e || 0 < x.height)) {\n for (; 250 < l.length;) {\n delete q[l.shift()];\n }\n\n q[h] || l.push(h);\n q[h] = x;\n }\n }\n\n return x;\n };\n\n a.prototype.getStyle = function (b) {\n return l.getComputedStyle(this.element || this, \"\").getPropertyValue(b);\n };\n\n a.prototype.hasClass = function (b) {\n return -1 !== (\"\" + this.attr(\"class\")).split(\" \").indexOf(b);\n };\n\n a.prototype.hide = function (b) {\n b ? this.attr({\n y: -9999\n }) : this.attr({\n visibility: \"hidden\"\n });\n return this;\n };\n\n a.prototype.htmlGetBBox = function () {\n return {\n height: 0,\n width: 0,\n x: 0,\n y: 0\n };\n };\n\n a.prototype.init = function (b, c) {\n this.element = \"span\" === c ? n(c) : p.createElementNS(this.SVG_NS, c);\n this.renderer = b;\n q(this, \"afterInit\");\n };\n\n a.prototype.invert = function (b) {\n this.inverted = b;\n this.updateTransform();\n return this;\n };\n\n a.prototype.on = function (b, c) {\n var g = this.onEvents;\n if (g[b]) g[b]();\n g[b] = h(this.element, b, c);\n return this;\n };\n\n a.prototype.opacitySetter = function (b, c, g) {\n this.opacity = b = Number(Number(b).toFixed(3));\n g.setAttribute(c, b);\n };\n\n a.prototype.removeClass = function (c) {\n return this.attr(\"class\", (\"\" + this.attr(\"class\")).replace(b(c) ? new RegExp(\"(^| )\" + c + \"( |$)\") : c, \" \").replace(/ +/g, \" \").trim());\n };\n\n a.prototype.removeTextOutline = function () {\n var b = this.element.querySelector(\"tspan.highcharts-text-outline\");\n b && this.safeRemoveChild(b);\n };\n\n a.prototype.safeRemoveChild = function (b) {\n var c = b.parentNode;\n c && c.removeChild(b);\n };\n\n a.prototype.setRadialReference = function (b) {\n var c = this.element.gradient && this.renderer.gradients[this.element.gradient];\n this.element.radialReference = b;\n c && c.radAttr && c.animate(this.renderer.getRadialAttr(b, c.radAttr));\n return this;\n };\n\n a.prototype.setTextPath = function (b, c) {\n var d = this.element,\n k = this.text ? this.text.element : d,\n e = {\n textAnchor: \"text-anchor\"\n },\n q = !1,\n a = this.textPathWrapper,\n n = !a;\n c = r(!0, {\n enabled: !0,\n attributes: {\n dy: -5,\n startOffset: \"50%\",\n textAnchor: \"middle\"\n }\n }, c);\n var E = f.filterUserAttributes(c.attributes);\n\n if (b && c && c.enabled) {\n a && null === a.element.parentNode ? (n = !0, a = a.destroy()) : a && this.removeTextOutline.call(a.parentGroup);\n this.options && this.options.padding && (E.dx = -this.options.padding);\n a || (this.textPathWrapper = a = this.renderer.createElement(\"textPath\"), q = !0);\n var h = a.element;\n (c = b.element.getAttribute(\"id\")) || b.element.setAttribute(\"id\", c = Q());\n if (n) for (k.setAttribute(\"y\", 0), g(E.dx) && k.setAttribute(\"x\", -E.dx), b = [].slice.call(k.childNodes), n = 0; n < b.length; n++) {\n var D = b[n];\n D.nodeType !== l.Node.TEXT_NODE && \"tspan\" !== D.nodeName || h.appendChild(D);\n }\n q && a && a.add({\n element: k\n });\n h.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", this.renderer.url + \"#\" + c);\n w(E.dy) && (h.parentNode.setAttribute(\"dy\", E.dy), delete E.dy);\n w(E.dx) && (h.parentNode.setAttribute(\"dx\", E.dx), delete E.dx);\n x(E, function (b, c) {\n h.setAttribute(e[c] || c, b);\n });\n d.removeAttribute(\"transform\");\n this.removeTextOutline.call(a);\n this.text && !this.renderer.styledMode && this.attr({\n fill: \"none\",\n \"stroke-width\": 0\n });\n this.applyTextOutline = this.updateTransform = m;\n } else a && (delete this.updateTransform, delete this.applyTextOutline, this.destroyTextPath(d, b), this.updateTransform(), this.options && this.options.rotation && this.applyTextOutline(this.options.style.textOutline));\n\n return this;\n };\n\n a.prototype.shadow = function (b, c, g) {\n var d = [],\n k = this.element,\n L = this.oldShadowOptions,\n r = {\n color: \"#000000\",\n offsetX: this.parentInverted ? -1 : 1,\n offsetY: this.parentInverted ? -1 : 1,\n opacity: .15,\n width: 3\n },\n e = !1,\n E;\n !0 === b ? E = r : \"object\" === _typeof(b) && (E = A(r, b));\n E && (E && L && x(E, function (b, c) {\n b !== L[c] && (e = !0);\n }), e && this.destroyShadows(), this.oldShadowOptions = E);\n if (!E) this.destroyShadows();else if (!this.shadows) {\n var a = E.opacity / E.width;\n var q = this.parentInverted ? \"translate(\" + E.offsetY + \", \" + E.offsetX + \")\" : \"translate(\" + E.offsetX + \", \" + E.offsetY + \")\";\n\n for (r = 1; r <= E.width; r++) {\n var l = k.cloneNode(!1);\n var n = 2 * E.width + 1 - 2 * r;\n t(l, {\n stroke: b.color || \"#000000\",\n \"stroke-opacity\": a * r,\n \"stroke-width\": n,\n transform: q,\n fill: \"none\"\n });\n l.setAttribute(\"class\", (l.getAttribute(\"class\") || \"\") + \" highcharts-shadow\");\n g && (t(l, \"height\", Math.max(t(l, \"height\") - n, 0)), l.cutHeight = n);\n c ? c.element.appendChild(l) : k.parentNode && k.parentNode.insertBefore(l, k);\n d.push(l);\n }\n\n this.shadows = d;\n }\n return this;\n };\n\n a.prototype.show = function (b) {\n return this.attr({\n visibility: b ? \"inherit\" : \"visible\"\n });\n };\n\n a.prototype.strokeSetter = function (b, c, g) {\n this[c] = b;\n this.stroke && this[\"stroke-width\"] ? (a.prototype.fillSetter.call(this, this.stroke, \"stroke\", g), g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0) : \"stroke-width\" === c && 0 === b && this.hasStroke ? (g.removeAttribute(\"stroke\"), this.hasStroke = !1) : this.renderer.styledMode && this[\"stroke-width\"] && (g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0);\n };\n\n a.prototype.strokeWidth = function () {\n if (!this.renderer.styledMode) return this[\"stroke-width\"] || 0;\n var b = this.getStyle(\"stroke-width\"),\n c = 0;\n if (b.indexOf(\"px\") === b.length - 2) c = K(b);else if (\"\" !== b) {\n var g = p.createElementNS(d, \"rect\");\n t(g, {\n width: b,\n \"stroke-width\": 0\n });\n this.element.parentNode.appendChild(g);\n c = g.getBBox().width;\n g.parentNode.removeChild(g);\n }\n return c;\n };\n\n a.prototype.symbolAttr = function (b) {\n var c = this;\n \"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function (g) {\n c[g] = D(b[g], c[g]);\n });\n c.attr({\n d: c.renderer.symbols[c.symbolName](c.x, c.y, c.width, c.height, c)\n });\n };\n\n a.prototype.textSetter = function (b) {\n b !== this.textStr && (delete this.textPxLength, this.textStr = b, this.added && this.renderer.buildText(this));\n };\n\n a.prototype.titleSetter = function (b) {\n var c = this.element,\n g = c.getElementsByTagName(\"title\")[0] || p.createElementNS(this.SVG_NS, \"title\");\n c.insertBefore ? c.insertBefore(g, c.firstChild) : c.appendChild(g);\n g.textContent = String(D(b, \"\")).replace(/<[^>]*>/g, \"\").replace(/</g, \"<\").replace(/>/g, \">\");\n };\n\n a.prototype.toFront = function () {\n var b = this.element;\n b.parentNode.appendChild(b);\n return this;\n };\n\n a.prototype.translate = function (b, c) {\n return this.attr({\n translateX: b,\n translateY: c\n });\n };\n\n a.prototype.updateShadows = function (b, c, g) {\n var d = this.shadows;\n if (d) for (var k = d.length; k--;) {\n g.call(d[k], \"height\" === b ? Math.max(c - (d[k].cutHeight || 0), 0) : \"d\" === b ? this.d : c, b, d[k]);\n }\n };\n\n a.prototype.updateTransform = function () {\n var b = this.scaleX,\n c = this.scaleY,\n g = this.inverted,\n d = this.rotation,\n k = this.matrix,\n r = this.element,\n e = this.translateX || 0,\n a = this.translateY || 0;\n g && (e += this.width, a += this.height);\n e = [\"translate(\" + e + \",\" + a + \")\"];\n w(k) && e.push(\"matrix(\" + k.join(\",\") + \")\");\n g ? e.push(\"rotate(90) scale(-1,1)\") : d && e.push(\"rotate(\" + d + \" \" + D(this.rotationOriginX, r.getAttribute(\"x\"), 0) + \" \" + D(this.rotationOriginY, r.getAttribute(\"y\") || 0) + \")\");\n (w(b) || w(c)) && e.push(\"scale(\" + D(b, 1) + \" \" + D(c, 1) + \")\");\n e.length && r.setAttribute(\"transform\", e.join(\" \"));\n };\n\n a.prototype.visibilitySetter = function (b, c, g) {\n \"inherit\" === b ? g.removeAttribute(c) : this[c] !== b && g.setAttribute(c, b);\n this[c] = b;\n };\n\n a.prototype.xGetter = function (b) {\n \"circle\" === this.element.nodeName && (\"x\" === b ? b = \"cx\" : \"y\" === b && (b = \"cy\"));\n return this._defaultGetter(b);\n };\n\n a.prototype.zIndexSetter = function (b, c) {\n var g = this.renderer,\n d = this.parentGroup,\n k = (d || g).element || g.box,\n r = this.element;\n g = k === g.box;\n var e = !1;\n var a = this.added;\n var E;\n w(b) ? (r.setAttribute(\"data-z-index\", b), b = +b, this[c] === b && (a = !1)) : w(this[c]) && r.removeAttribute(\"data-z-index\");\n this[c] = b;\n\n if (a) {\n (b = this.zIndex) && d && (d.handleZ = !0);\n c = k.childNodes;\n\n for (E = c.length - 1; 0 <= E && !e; E--) {\n d = c[E];\n a = d.getAttribute(\"data-z-index\");\n var q = !w(a);\n if (d !== r) if (0 > b && q && !g && !E) k.insertBefore(r, c[E]), e = !0;else if (K(a) <= b || q && (!w(b) || 0 <= b)) k.insertBefore(r, c[E + 1] || null), e = !0;\n }\n\n e || (k.insertBefore(r, c[g ? 3 : 0] || null), e = !0);\n }\n\n return e;\n };\n\n return a;\n }();\n\n a.prototype[\"stroke-widthSetter\"] = a.prototype.strokeSetter;\n a.prototype.yGetter = a.prototype.xGetter;\n\n 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, c) {\n this[c] = b;\n this.doTransform = !0;\n };\n\n \"\";\n return a;\n });\n M(f, \"Core/Renderer/RendererRegistry.js\", [f[\"Core/Globals.js\"]], function (a) {\n var f;\n\n (function (f) {\n f.rendererTypes = {};\n var F;\n\n f.getRendererType = function (a) {\n void 0 === a && (a = F);\n return f.rendererTypes[a] || f.rendererTypes[F];\n };\n\n f.registerRendererType = function (u, C, I) {\n f.rendererTypes[u] = C;\n if (!F || I) F = u, a.Renderer = C;\n };\n })(f || (f = {}));\n\n return f;\n });\n M(f, \"Core/Renderer/SVG/SVGLabel.js\", [f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = this && this.__extends || function () {\n var _a = function a(m, e) {\n _a = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, e) {\n d.__proto__ = e;\n } || function (d, e) {\n for (var a in e) {\n e.hasOwnProperty(a) && (d[a] = e[a]);\n }\n };\n\n return _a(m, e);\n };\n\n return function (m, e) {\n function d() {\n this.constructor = m;\n }\n\n _a(m, e);\n\n m.prototype = null === e ? Object.create(e) : (d.prototype = e.prototype, new d());\n };\n }(),\n G = f.defined,\n u = f.extend,\n H = f.isNumber,\n I = f.merge,\n B = f.pick,\n z = f.removeEvent;\n\n return function (p) {\n function m(e, d, a, h, t, n, v, w, y, A) {\n var q = p.call(this) || this;\n q.paddingLeftSetter = q.paddingSetter;\n q.paddingRightSetter = q.paddingSetter;\n q.init(e, \"g\");\n q.textStr = d;\n q.x = a;\n q.y = h;\n q.anchorX = n;\n q.anchorY = v;\n q.baseline = y;\n q.className = A;\n q.addClass(\"button\" === A ? \"highcharts-no-tooltip\" : \"highcharts-label\");\n A && q.addClass(\"highcharts-\" + A);\n q.text = e.text(void 0, 0, 0, w).attr({\n zIndex: 1\n });\n var k;\n \"string\" === typeof t && ((k = /^url\\((.*?)\\)$/.test(t)) || q.renderer.symbols[t]) && (q.symbolKey = t);\n q.bBox = m.emptyBBox;\n q.padding = 3;\n q.baselineOffset = 0;\n q.needsBox = e.styledMode || k;\n q.deferredAttr = {};\n q.alignFactor = 0;\n return q;\n }\n\n F(m, p);\n\n m.prototype.alignSetter = function (e) {\n e = {\n left: 0,\n center: .5,\n right: 1\n }[e];\n e !== this.alignFactor && (this.alignFactor = e, this.bBox && H(this.xSetting) && this.attr({\n x: this.xSetting\n }));\n };\n\n m.prototype.anchorXSetter = function (e, d) {\n this.anchorX = e;\n this.boxAttr(d, Math.round(e) - this.getCrispAdjust() - this.xSetting);\n };\n\n m.prototype.anchorYSetter = function (e, d) {\n this.anchorY = e;\n this.boxAttr(d, e - this.ySetting);\n };\n\n m.prototype.boxAttr = function (e, d) {\n this.box ? this.box.attr(e, d) : this.deferredAttr[e] = d;\n };\n\n m.prototype.css = function (e) {\n if (e) {\n var d = {};\n e = I(e);\n m.textProps.forEach(function (a) {\n \"undefined\" !== typeof e[a] && (d[a] = e[a], delete e[a]);\n });\n this.text.css(d);\n var l = (\"width\" in d);\n \"fontSize\" in d || \"fontWeight\" in d ? this.updateTextPadding() : l && this.updateBoxSize();\n }\n\n return a.prototype.css.call(this, e);\n };\n\n m.prototype.destroy = function () {\n z(this.element, \"mouseenter\");\n z(this.element, \"mouseleave\");\n this.text && this.text.destroy();\n this.box && (this.box = this.box.destroy());\n a.prototype.destroy.call(this);\n };\n\n m.prototype.fillSetter = function (e, d) {\n e && (this.needsBox = !0);\n this.fill = e;\n this.boxAttr(d, e);\n };\n\n m.prototype.getBBox = function () {\n this.textStr && 0 === this.bBox.width && 0 === this.bBox.height && this.updateBoxSize();\n var e = this.padding,\n d = B(this.paddingLeft, e);\n return {\n width: this.width,\n height: this.height,\n x: this.bBox.x - d,\n y: this.bBox.y - e\n };\n };\n\n m.prototype.getCrispAdjust = function () {\n return this.renderer.styledMode && this.box ? this.box.strokeWidth() % 2 / 2 : (this[\"stroke-width\"] ? parseInt(this[\"stroke-width\"], 10) : 0) % 2 / 2;\n };\n\n m.prototype.heightSetter = function (e) {\n this.heightSetting = e;\n };\n\n m.prototype.onAdd = function () {\n var e = this.textStr;\n this.text.add(this);\n this.attr({\n text: G(e) ? e : \"\",\n x: this.x,\n y: this.y\n });\n this.box && G(this.anchorX) && this.attr({\n anchorX: this.anchorX,\n anchorY: this.anchorY\n });\n };\n\n m.prototype.paddingSetter = function (e, d) {\n H(e) ? e !== this[d] && (this[d] = e, this.updateTextPadding()) : this[d] = void 0;\n };\n\n m.prototype.rSetter = function (e, d) {\n this.boxAttr(d, e);\n };\n\n m.prototype.shadow = function (e) {\n e && !this.renderer.styledMode && (this.updateBoxSize(), this.box && this.box.shadow(e));\n return this;\n };\n\n m.prototype.strokeSetter = function (e, d) {\n this.stroke = e;\n this.boxAttr(d, e);\n };\n\n m.prototype[\"stroke-widthSetter\"] = function (e, d) {\n e && (this.needsBox = !0);\n this[\"stroke-width\"] = e;\n this.boxAttr(d, e);\n };\n\n m.prototype[\"text-alignSetter\"] = function (e) {\n this.textAlign = e;\n };\n\n m.prototype.textSetter = function (e) {\n \"undefined\" !== typeof e && this.text.attr({\n text: e\n });\n this.updateTextPadding();\n };\n\n m.prototype.updateBoxSize = function () {\n var e = this.text.element.style,\n d = {},\n a = this.padding,\n h = this.bBox = H(this.widthSetting) && H(this.heightSetting) && !this.textAlign || !G(this.text.textStr) ? m.emptyBBox : this.text.getBBox();\n this.width = this.getPaddedWidth();\n this.height = (this.heightSetting || h.height || 0) + 2 * a;\n e = this.renderer.fontMetrics(e && e.fontSize, this.text);\n this.baselineOffset = a + Math.min((this.text.firstLineMetrics || e).b, h.height || Infinity);\n this.heightSetting && (this.baselineOffset += (this.heightSetting - e.h) / 2);\n this.needsBox && (this.box || (a = this.box = this.symbolKey ? this.renderer.symbol(this.symbolKey) : this.renderer.rect(), a.addClass((\"button\" === this.className ? \"\" : \"highcharts-label-box\") + (this.className ? \" highcharts-\" + this.className + \"-box\" : \"\")), a.add(this)), a = this.getCrispAdjust(), d.x = a, d.y = (this.baseline ? -this.baselineOffset : 0) + a, d.width = Math.round(this.width), d.height = Math.round(this.height), this.box.attr(u(d, this.deferredAttr)), this.deferredAttr = {});\n };\n\n m.prototype.updateTextPadding = function () {\n var a = this.text;\n this.updateBoxSize();\n var d = this.baseline ? 0 : this.baselineOffset,\n l = B(this.paddingLeft, this.padding);\n G(this.widthSetting) && this.bBox && (\"center\" === this.textAlign || \"right\" === this.textAlign) && (l += {\n center: .5,\n right: 1\n }[this.textAlign] * (this.widthSetting - this.bBox.width));\n if (l !== a.x || d !== a.y) a.attr(\"x\", l), a.hasBoxWidthChanged && (this.bBox = a.getBBox(!0)), \"undefined\" !== typeof d && a.attr(\"y\", d);\n a.x = l;\n a.y = d;\n };\n\n m.prototype.widthSetter = function (a) {\n this.widthSetting = H(a) ? a : void 0;\n };\n\n m.prototype.getPaddedWidth = function () {\n var a = this.padding,\n d = B(this.paddingLeft, a);\n a = B(this.paddingRight, a);\n return (this.widthSetting || this.bBox.width || 0) + d + a;\n };\n\n m.prototype.xSetter = function (a) {\n this.x = a;\n this.alignFactor && (a -= this.alignFactor * this.getPaddedWidth(), this[\"forceAnimate:x\"] = !0);\n this.xSetting = Math.round(a);\n this.attr(\"translateX\", this.xSetting);\n };\n\n m.prototype.ySetter = function (a) {\n this.ySetting = this.y = Math.round(a);\n this.attr(\"translateY\", this.ySetting);\n };\n\n m.emptyBBox = {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n m.textProps = \"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");\n return m;\n }(a);\n });\n M(f, \"Core/Renderer/SVG/Symbols.js\", [f[\"Core/Utilities.js\"]], function (a) {\n function f(a, f, p, m, e) {\n var d = [];\n\n if (e) {\n var l = e.start || 0,\n h = I(e.r, p);\n p = I(e.r, m || p);\n var t = (e.end || 0) - .001;\n m = e.innerR;\n var n = I(e.open, .001 > Math.abs((e.end || 0) - l - 2 * Math.PI)),\n v = Math.cos(l),\n w = Math.sin(l),\n y = Math.cos(t),\n A = Math.sin(t);\n l = I(e.longArc, .001 > t - l - Math.PI ? 0 : 1);\n d.push([\"M\", a + h * v, f + p * w], [\"A\", h, p, 0, l, I(e.clockwise, 1), a + h * y, f + p * A]);\n u(m) && d.push(n ? [\"M\", a + m * y, f + m * A] : [\"L\", a + m * y, f + m * A], [\"A\", m, m, 0, l, u(e.clockwise) ? 1 - e.clockwise : 0, a + m * v, f + m * w]);\n n || d.push([\"Z\"]);\n }\n\n return d;\n }\n\n function C(a, f, p, m, e) {\n return e && e.r ? G(a, f, p, m, e) : [[\"M\", a, f], [\"L\", a + p, f], [\"L\", a + p, f + m], [\"L\", a, f + m], [\"Z\"]];\n }\n\n function G(a, f, p, m, e) {\n e = e && e.r || 0;\n return [[\"M\", a + e, f], [\"L\", a + p - e, f], [\"C\", a + p, f, a + p, f, a + p, f + e], [\"L\", a + p, f + m - e], [\"C\", a + p, f + m, a + p, f + m, a + p - e, f + m], [\"L\", a + e, f + m], [\"C\", a, f + m, a, f + m, a, f + m - e], [\"L\", a, f + e], [\"C\", a, f, a, f, a + e, f]];\n }\n\n var u = a.defined,\n H = a.isNumber,\n I = a.pick;\n return {\n arc: f,\n callout: function callout(a, f, p, m, e) {\n var d = Math.min(e && e.r || 0, p, m),\n l = d + 6,\n h = e && e.anchorX;\n e = e && e.anchorY || 0;\n var t = G(a, f, p, m, {\n r: d\n });\n if (!H(h)) return t;\n a + h >= p ? e > f + l && e < f + m - l ? t.splice(3, 1, [\"L\", a + p, e - 6], [\"L\", a + p + 6, e], [\"L\", a + p, e + 6], [\"L\", a + p, f + m - d]) : t.splice(3, 1, [\"L\", a + p, m / 2], [\"L\", h, e], [\"L\", a + p, m / 2], [\"L\", a + p, f + m - d]) : 0 >= a + h ? e > f + l && e < f + m - l ? t.splice(7, 1, [\"L\", a, e + 6], [\"L\", a - 6, e], [\"L\", a, e - 6], [\"L\", a, f + d]) : t.splice(7, 1, [\"L\", a, m / 2], [\"L\", h, e], [\"L\", a, m / 2], [\"L\", a, f + d]) : e && e > m && h > a + l && h < a + p - l ? t.splice(5, 1, [\"L\", h + 6, f + m], [\"L\", h, f + m + 6], [\"L\", h - 6, f + m], [\"L\", a + d, f + m]) : e && 0 > e && h > a + l && h < a + p - l && t.splice(1, 1, [\"L\", h - 6, f], [\"L\", h, f - 6], [\"L\", h + 6, f], [\"L\", p - d, f]);\n return t;\n },\n circle: function circle(a, z, p, m) {\n return f(a + p / 2, z + m / 2, p / 2, m / 2, {\n start: .5 * Math.PI,\n end: 2.5 * Math.PI,\n open: !1\n });\n },\n diamond: function diamond(a, f, p, m) {\n return [[\"M\", a + p / 2, f], [\"L\", a + p, f + m / 2], [\"L\", a + p / 2, f + m], [\"L\", a, f + m / 2], [\"Z\"]];\n },\n rect: C,\n roundedRect: G,\n square: C,\n triangle: function triangle(a, f, p, m) {\n return [[\"M\", a + p / 2, f], [\"L\", a + p, f + m], [\"L\", a, f + m], [\"Z\"]];\n },\n \"triangle-down\": function triangleDown(a, f, p, m) {\n return [[\"M\", a, f], [\"L\", a + p, f], [\"L\", a + p / 2, f + m], [\"Z\"]];\n }\n };\n });\n M(f, \"Core/Renderer/SVG/TextBuilder.js\", [f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = f.doc,\n u = f.SVG_NS,\n H = f.win,\n I = C.attr,\n B = C.extend,\n z = C.isString,\n p = C.objectEach,\n m = C.pick;\n return function () {\n function e(d) {\n var a = d.styles;\n this.renderer = d.renderer;\n this.svgElement = d;\n this.width = d.textWidth;\n this.textLineHeight = a && a.lineHeight;\n this.textOutline = a && a.textOutline;\n this.ellipsis = !(!a || \"ellipsis\" !== a.textOverflow);\n this.noWrap = !(!a || \"nowrap\" !== a.whiteSpace);\n this.fontSize = a && a.fontSize;\n }\n\n e.prototype.buildSVG = function () {\n var d = this.svgElement,\n e = d.element,\n h = d.renderer,\n t = m(d.textStr, \"\").toString(),\n n = -1 !== t.indexOf(\"<\"),\n f = e.childNodes;\n h = this.width && !d.added && h.box;\n var w = //g,\n y = [t, this.ellipsis, this.noWrap, this.textLineHeight, this.textOutline, this.fontSize, this.width].join();\n\n if (y !== d.textCache) {\n d.textCache = y;\n delete d.actualWidth;\n\n for (y = f.length; y--;) {\n e.removeChild(f[y]);\n }\n\n n || this.ellipsis || this.width || -1 !== t.indexOf(\" \") && (!this.noWrap || w.test(t)) ? \"\" !== t && (h && h.appendChild(e), t = new a(t), this.modifyTree(t.nodes), t.addToDOM(d.element), this.modifyDOM(), this.ellipsis && -1 !== (e.textContent || \"\").indexOf(\"\\u2026\") && d.attr(\"title\", this.unescapeEntities(d.textStr || \"\", [\"<\", \">\"])), h && h.removeChild(e)) : e.appendChild(F.createTextNode(this.unescapeEntities(t)));\n z(this.textOutline) && d.applyTextOutline && d.applyTextOutline(this.textOutline);\n }\n };\n\n e.prototype.modifyDOM = function () {\n var d = this,\n a = this.svgElement,\n e = I(a.element, \"x\");\n a.firstLineMetrics = void 0;\n\n for (var t; t = a.element.firstChild;) {\n if (/^[\\s\\u200B]*$/.test(t.textContent || \" \")) a.element.removeChild(t);else break;\n }\n\n [].forEach.call(a.element.querySelectorAll(\"tspan.highcharts-br\"), function (n, h) {\n n.nextSibling && n.previousSibling && (0 === h && 1 === n.previousSibling.nodeType && (a.firstLineMetrics = a.renderer.fontMetrics(void 0, n.previousSibling)), I(n, {\n dy: d.getLineHeight(n.nextSibling),\n x: e\n }));\n });\n var n = this.width || 0;\n\n if (n) {\n var f = function f(h, l) {\n var q = h.textContent || \"\",\n k = q.replace(/([^\\^])-/g, \"$1- \").split(\" \"),\n c = !d.noWrap && (1 < k.length || 1 < a.element.childNodes.length),\n g = d.getLineHeight(l),\n b = 0,\n r = a.actualWidth;\n if (d.ellipsis) q && d.truncate(h, q, void 0, 0, Math.max(0, n - parseInt(d.fontSize || 12, 10)), function (b, c) {\n return b.substring(0, c) + \"\\u2026\";\n });else if (c) {\n q = [];\n\n for (c = []; l.firstChild && l.firstChild !== h;) {\n c.push(l.firstChild), l.removeChild(l.firstChild);\n }\n\n for (; k.length;) {\n k.length && !d.noWrap && 0 < b && (q.push(h.textContent || \"\"), h.textContent = k.join(\" \").replace(/- /g, \"-\")), d.truncate(h, void 0, k, 0 === b ? r || 0 : 0, n, function (b, c) {\n return k.slice(0, c).join(\" \").replace(/- /g, \"-\");\n }), r = a.actualWidth, b++;\n }\n\n c.forEach(function (b) {\n l.insertBefore(b, h);\n });\n q.forEach(function (b) {\n l.insertBefore(F.createTextNode(b), h);\n b = F.createElementNS(u, \"tspan\");\n b.textContent = \"\\u200B\";\n I(b, {\n dy: g,\n x: e\n });\n l.insertBefore(b, h);\n });\n }\n },\n m = function m(d) {\n [].slice.call(d.childNodes).forEach(function (e) {\n e.nodeType === H.Node.TEXT_NODE ? f(e, d) : (-1 !== e.className.baseVal.indexOf(\"highcharts-br\") && (a.actualWidth = 0), m(e));\n });\n };\n\n m(a.element);\n }\n };\n\n e.prototype.getLineHeight = function (d) {\n var a;\n d = d.nodeType === H.Node.TEXT_NODE ? d.parentElement : d;\n this.renderer.styledMode || (a = d && /(px|em)$/.test(d.style.fontSize) ? d.style.fontSize : this.fontSize || this.renderer.style.fontSize || 12);\n return this.textLineHeight ? parseInt(this.textLineHeight.toString(), 10) : this.renderer.fontMetrics(a, d || this.svgElement.element).h;\n };\n\n e.prototype.modifyTree = function (d) {\n var a = this,\n e = function e(h, n) {\n var l = h.attributes;\n l = void 0 === l ? {} : l;\n var f = h.children,\n t = h.style;\n t = void 0 === t ? {} : t;\n var m = h.tagName,\n q = a.renderer.styledMode;\n if (\"b\" === m || \"strong\" === m) q ? l[\"class\"] = \"highcharts-strong\" : t.fontWeight = \"bold\";else if (\"i\" === m || \"em\" === m) q ? l[\"class\"] = \"highcharts-emphasized\" : t.fontStyle = \"italic\";\n t && t.color && (t.fill = t.color);\n \"br\" === m ? (l[\"class\"] = \"highcharts-br\", h.textContent = \"\\u200B\", (n = d[n + 1]) && n.textContent && (n.textContent = n.textContent.replace(/^ +/gm, \"\"))) : \"a\" === m && f && f.some(function (d) {\n return \"#text\" === d.tagName;\n }) && (h.children = [{\n children: f,\n tagName: \"tspan\"\n }]);\n \"#text\" !== m && \"a\" !== m && (h.tagName = \"tspan\");\n B(h, {\n attributes: l,\n style: t\n });\n f && f.filter(function (d) {\n return \"#text\" !== d.tagName;\n }).forEach(e);\n };\n\n d.forEach(e);\n };\n\n e.prototype.truncate = function (d, a, e, t, n, f) {\n var h = this.svgElement,\n l = h.renderer,\n m = h.rotation,\n q = [],\n k = e ? 1 : 0,\n c = (a || e || \"\").length,\n g = c,\n b,\n r = function r(b, c) {\n c = c || b;\n var g = d.parentNode;\n if (g && \"undefined\" === typeof q[c]) if (g.getSubStringLength) try {\n q[c] = t + g.getSubStringLength(0, e ? c + 1 : c);\n } catch (Q) {\n \"\";\n } else l.getSpanWidth && (d.textContent = f(a || e, b), q[c] = t + l.getSpanWidth(h, d));\n return q[c];\n };\n\n h.rotation = 0;\n var x = r(d.textContent.length);\n\n if (t + x > n) {\n for (; k <= c;) {\n g = Math.ceil((k + c) / 2), e && (b = f(e, g)), x = r(g, b && b.length - 1), k === c ? k = c + 1 : x > n ? c = g - 1 : k = g;\n }\n\n 0 === c ? d.textContent = \"\" : a && c === a.length - 1 || (d.textContent = b || f(a || e, g));\n }\n\n e && e.splice(0, g);\n h.actualWidth = x;\n h.rotation = m;\n };\n\n e.prototype.unescapeEntities = function (d, a) {\n p(this.renderer.escapes, function (e, l) {\n a && -1 !== a.indexOf(e) || (d = d.toString().replace(new RegExp(e, \"g\"), l));\n });\n return d;\n };\n\n return e;\n }();\n });\n M(f, \"Core/Renderer/SVG/SVGRenderer.js\", [f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Renderer/RendererRegistry.js\"], f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Renderer/SVG/SVGLabel.js\"], f[\"Core/Renderer/SVG/Symbols.js\"], f[\"Core/Renderer/SVG/TextBuilder.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I, B, z) {\n var p = C.charts,\n m = C.deg2rad,\n e = C.doc,\n d = C.isFirefox,\n l = C.isMS,\n h = C.isWebKit,\n t = C.noop,\n n = C.SVG_NS,\n v = C.symbolSizes,\n w = C.win,\n y = z.addEvent,\n A = z.attr,\n q = z.createElement,\n k = z.css,\n c = z.defined,\n g = z.destroyObjectProperties,\n b = z.extend,\n r = z.isArray,\n x = z.isNumber,\n D = z.isObject,\n K = z.isString,\n P = z.merge,\n Q = z.pick,\n O = z.pInt,\n F = z.uniqueKey,\n Z;\n\n C = function () {\n function L(b, c, g, d, a, k, e) {\n 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;\n this.init(b, c, g, d, a, k, e);\n }\n\n L.prototype.init = function (b, c, g, a, r, E, L) {\n var q = this.createElement(\"svg\").attr({\n version: \"1.1\",\n \"class\": \"highcharts-root\"\n }),\n J = q.element;\n L || q.css(this.getStyle(a));\n b.appendChild(J);\n A(b, \"dir\", \"ltr\");\n -1 === b.innerHTML.indexOf(\"xmlns\") && A(J, \"xmlns\", this.SVG_NS);\n this.isSVG = !0;\n this.box = J;\n this.boxWrapper = q;\n this.alignedObjects = [];\n this.url = this.getReferenceURL();\n this.createElement(\"desc\").add().element.appendChild(e.createTextNode(\"Created with Highcharts 10.0.0\"));\n this.defs = this.createElement(\"defs\").add();\n this.allowHTML = E;\n this.forExport = r;\n this.styledMode = L;\n this.gradients = {};\n this.cache = {};\n this.cacheKeys = [];\n this.imgCount = 0;\n this.setSize(c, g, !1);\n var n;\n d && b.getBoundingClientRect && (c = function c() {\n k(b, {\n left: 0,\n top: 0\n });\n n = b.getBoundingClientRect();\n k(b, {\n left: Math.ceil(n.left) - n.left + \"px\",\n top: Math.ceil(n.top) - n.top + \"px\"\n });\n }, c(), this.unSubPixelFix = y(w, \"resize\", c));\n };\n\n L.prototype.definition = function (b) {\n return new a([b]).addToDOM(this.defs.element);\n };\n\n L.prototype.getReferenceURL = function () {\n if ((d || h) && e.getElementsByTagName(\"base\").length) {\n if (!c(Z)) {\n var b = F();\n b = new a([{\n tagName: \"svg\",\n attributes: {\n width: 8,\n height: 8\n },\n children: [{\n tagName: \"defs\",\n children: [{\n tagName: \"clipPath\",\n attributes: {\n id: b\n },\n children: [{\n tagName: \"rect\",\n attributes: {\n width: 4,\n height: 4\n }\n }]\n }]\n }, {\n tagName: \"rect\",\n attributes: {\n id: \"hitme\",\n width: 8,\n height: 8,\n \"clip-path\": \"url(#\" + b + \")\",\n fill: \"rgba(0,0,0,0.001)\"\n }\n }]\n }]).addToDOM(e.body);\n k(b, {\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 9E5\n });\n var g = e.elementFromPoint(6, 6);\n Z = \"hitme\" === (g && g.id);\n e.body.removeChild(b);\n }\n\n if (Z) return w.location.href.split(\"#\")[0].replace(/<[^>]*>/g, \"\").replace(/([\\('\\)])/g, \"\\\\$1\").replace(/ /g, \"%20\");\n }\n\n return \"\";\n };\n\n L.prototype.getStyle = function (c) {\n return this.style = b({\n fontFamily: '\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',\n fontSize: \"12px\"\n }, c);\n };\n\n L.prototype.setStyle = function (b) {\n this.boxWrapper.css(this.getStyle(b));\n };\n\n L.prototype.isHidden = function () {\n return !this.boxWrapper.getBBox().width;\n };\n\n L.prototype.destroy = function () {\n var b = this.defs;\n this.box = null;\n this.boxWrapper = this.boxWrapper.destroy();\n g(this.gradients || {});\n this.gradients = null;\n b && (this.defs = b.destroy());\n this.unSubPixelFix && this.unSubPixelFix();\n return this.alignedObjects = null;\n };\n\n L.prototype.createElement = function (b) {\n var c = new this.Element();\n c.init(this, b);\n return c;\n };\n\n L.prototype.getRadialAttr = function (b, c) {\n return {\n cx: b[0] - b[2] / 2 + (c.cx || 0) * b[2],\n cy: b[1] - b[2] / 2 + (c.cy || 0) * b[2],\n r: (c.r || 0) * b[2]\n };\n };\n\n L.prototype.buildText = function (b) {\n new B(b).buildSVG();\n };\n\n L.prototype.getContrast = function (b) {\n b = f.parse(b).rgba;\n b[0] *= 1;\n b[1] *= 1.2;\n b[2] *= .5;\n return 459 < b[0] + b[1] + b[2] ? \"#000000\" : \"#FFFFFF\";\n };\n\n L.prototype.button = function (c, g, d, k, e, r, L, q, n, h) {\n var E = this.label(c, g, d, n, void 0, void 0, h, void 0, \"button\"),\n x = this.styledMode,\n J = 0,\n f = e ? P(e) : {},\n t = P({\n color: \"#333333\",\n cursor: \"pointer\",\n fontWeight: \"normal\"\n }, f.style);\n delete f.style;\n f = a.filterUserAttributes(f);\n E.attr(P({\n padding: 8,\n r: 2\n }, f));\n\n if (!x) {\n f = P({\n fill: \"#f7f7f7\",\n stroke: \"#cccccc\",\n \"stroke-width\": 1\n }, f);\n r = P(f, {\n fill: \"#e6e6e6\"\n }, a.filterUserAttributes(r || {}));\n var N = r.style;\n delete r.style;\n L = P(f, {\n fill: \"#e6ebf5\",\n style: {\n color: \"#000000\",\n fontWeight: \"bold\"\n }\n }, a.filterUserAttributes(L || {}));\n var m = L.style;\n delete L.style;\n q = P(f, {\n style: {\n color: \"#cccccc\"\n }\n }, a.filterUserAttributes(q || {}));\n var w = q.style;\n delete q.style;\n }\n\n y(E.element, l ? \"mouseover\" : \"mouseenter\", function () {\n 3 !== J && E.setState(1);\n });\n y(E.element, l ? \"mouseout\" : \"mouseleave\", function () {\n 3 !== J && E.setState(J);\n });\n\n E.setState = function (b) {\n 1 !== b && (E.state = J = b);\n E.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\" + [\"normal\", \"hover\", \"pressed\", \"disabled\"][b || 0]);\n x || (E.attr([f, r, L, q][b || 0]), b = [t, N, m, w][b || 0], D(b) && E.css(b));\n };\n\n x || E.attr(f).css(b({\n cursor: \"default\"\n }, t));\n return E.on(\"touchstart\", function (b) {\n return b.stopPropagation();\n }).on(\"click\", function (b) {\n 3 !== J && k.call(E, b);\n });\n };\n\n L.prototype.crispLine = function (b, g, d) {\n void 0 === d && (d = \"round\");\n var a = b[0],\n k = b[1];\n c(a[1]) && a[1] === k[1] && (a[1] = k[1] = Math[d](a[1]) - g % 2 / 2);\n c(a[2]) && a[2] === k[2] && (a[2] = k[2] = Math[d](a[2]) + g % 2 / 2);\n return b;\n };\n\n L.prototype.path = function (c) {\n var g = this.styledMode ? {} : {\n fill: \"none\"\n };\n r(c) ? g.d = c : D(c) && b(g, c);\n return this.createElement(\"path\").attr(g);\n };\n\n L.prototype.circle = function (b, c, g) {\n b = D(b) ? b : \"undefined\" === typeof b ? {} : {\n x: b,\n y: c,\n r: g\n };\n c = this.createElement(\"circle\");\n\n c.xSetter = c.ySetter = function (b, c, g) {\n g.setAttribute(\"c\" + c, b);\n };\n\n return c.attr(b);\n };\n\n L.prototype.arc = function (b, c, g, d, a, k) {\n D(b) ? (d = b, c = d.y, g = d.r, b = d.x) : d = {\n innerR: d,\n start: a,\n end: k\n };\n b = this.symbol(\"arc\", b, c, g, g, d);\n b.r = g;\n return b;\n };\n\n L.prototype.rect = function (b, c, g, d, a, k) {\n a = D(b) ? b.r : a;\n var e = this.createElement(\"rect\");\n b = D(b) ? b : \"undefined\" === typeof b ? {} : {\n x: b,\n y: c,\n width: Math.max(g, 0),\n height: Math.max(d, 0)\n };\n this.styledMode || (\"undefined\" !== typeof k && (b[\"stroke-width\"] = k, b = e.crisp(b)), b.fill = \"none\");\n a && (b.r = a);\n\n e.rSetter = function (b, c, g) {\n e.r = b;\n A(g, {\n rx: b,\n ry: b\n });\n };\n\n e.rGetter = function () {\n return e.r || 0;\n };\n\n return e.attr(b);\n };\n\n L.prototype.setSize = function (b, c, g) {\n this.width = b;\n this.height = c;\n this.boxWrapper.animate({\n width: b,\n height: c\n }, {\n step: function step() {\n this.attr({\n viewBox: \"0 0 \" + this.attr(\"width\") + \" \" + this.attr(\"height\")\n });\n },\n duration: Q(g, !0) ? void 0 : 0\n });\n this.alignElements();\n };\n\n L.prototype.g = function (b) {\n var c = this.createElement(\"g\");\n return b ? c.attr({\n \"class\": \"highcharts-\" + b\n }) : c;\n };\n\n L.prototype.image = function (b, c, g, d, a, k) {\n var e = {\n preserveAspectRatio: \"none\"\n },\n r = function r(b, c) {\n b.setAttributeNS ? b.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", c) : b.setAttribute(\"hc-svg-href\", c);\n };\n\n x(c) && (e.x = c);\n x(g) && (e.y = g);\n x(d) && (e.width = d);\n x(a) && (e.height = a);\n var E = this.createElement(\"image\").attr(e);\n\n c = function c(_c) {\n r(E.element, b);\n k.call(E, _c);\n };\n\n k ? (r(E.element, \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"), g = new w.Image(), y(g, \"load\", c), g.src = b, g.complete && c({})) : r(E.element, b);\n return E;\n };\n\n L.prototype.symbol = function (g, d, a, r, L, E) {\n var n = this,\n h = /^url\\((.*?)\\)$/,\n x = h.test(g),\n l = !x && (this.symbols[g] ? g : \"circle\"),\n D = l && this.symbols[l],\n f;\n\n if (D) {\n \"number\" === typeof d && (f = D.call(this.symbols, Math.round(d || 0), Math.round(a || 0), r || 0, L || 0, E));\n var t = this.path(f);\n n.styledMode || t.attr(\"fill\", \"none\");\n b(t, {\n symbolName: l || void 0,\n x: d,\n y: a,\n width: r,\n height: L\n });\n E && b(t, E);\n } else if (x) {\n var m = g.match(h)[1];\n var J = t = this.image(m);\n J.imgwidth = Q(v[m] && v[m].width, E && E.width);\n J.imgheight = Q(v[m] && v[m].height, E && E.height);\n\n var y = function y(b) {\n return b.attr({\n width: b.width,\n height: b.height\n });\n };\n\n [\"width\", \"height\"].forEach(function (b) {\n J[b + \"Setter\"] = function (b, g) {\n var d = this[\"img\" + g];\n this[g] = b;\n c(d) && (E && \"within\" === E.backgroundSize && this.width && this.height && (d = Math.round(d * Math.min(this.width / this.imgwidth, this.height / this.imgheight))), this.element && this.element.setAttribute(g, d), this.alignByTranslate || (b = ((this[g] || 0) - d) / 2, this.attr(\"width\" === g ? {\n translateX: b\n } : {\n translateY: b\n })));\n };\n });\n c(d) && J.attr({\n x: d,\n y: a\n });\n J.isImg = !0;\n c(J.imgwidth) && c(J.imgheight) ? y(J) : (J.attr({\n width: 0,\n height: 0\n }), q(\"img\", {\n onload: function onload() {\n var b = p[n.chartIndex];\n 0 === this.width && (k(this, {\n position: \"absolute\",\n top: \"-999em\"\n }), e.body.appendChild(this));\n v[m] = {\n width: this.width,\n height: this.height\n };\n J.imgwidth = this.width;\n J.imgheight = this.height;\n J.element && y(J);\n this.parentNode && this.parentNode.removeChild(this);\n n.imgCount--;\n if (!n.imgCount && b && !b.hasLoaded) b.onload();\n },\n src: m\n }), this.imgCount++);\n }\n\n return t;\n };\n\n L.prototype.clipRect = function (b, c, g, d) {\n var a = F() + \"-\",\n k = this.createElement(\"clipPath\").attr({\n id: a\n }).add(this.defs);\n b = this.rect(b, c, g, d, 0).add(k);\n b.id = a;\n b.clipPath = k;\n b.count = 0;\n return b;\n };\n\n L.prototype.text = function (b, g, d, a) {\n var k = {};\n if (a && (this.allowHTML || !this.forExport)) return this.html(b, g, d);\n k.x = Math.round(g || 0);\n d && (k.y = Math.round(d));\n c(b) && (k.text = b);\n b = this.createElement(\"text\").attr(k);\n if (!a || this.forExport && !this.allowHTML) b.xSetter = function (b, c, g) {\n for (var d = g.getElementsByTagName(\"tspan\"), a = g.getAttribute(c), k = 0, e; k < d.length; k++) {\n e = d[k], e.getAttribute(c) === a && e.setAttribute(c, b);\n }\n\n g.setAttribute(c, b);\n };\n return b;\n };\n\n L.prototype.fontMetrics = function (b, c) {\n b = !this.styledMode && /px/.test(b) || !w.getComputedStyle ? b || c && c.style && c.style.fontSize || this.style && this.style.fontSize : c && u.prototype.getStyle.call(c, \"font-size\");\n b = /px/.test(b) ? O(b) : 12;\n c = 24 > b ? b + 3 : Math.round(1.2 * b);\n return {\n h: c,\n b: Math.round(.8 * c),\n f: b\n };\n };\n\n L.prototype.rotCorr = function (b, c, g) {\n var d = b;\n c && g && (d = Math.max(d * Math.cos(c * m), 4));\n return {\n x: -b / 3 * Math.sin(c * m),\n y: d\n };\n };\n\n L.prototype.pathToSegments = function (b) {\n for (var c = [], g = [], d = {\n A: 8,\n C: 7,\n H: 2,\n L: 3,\n M: 3,\n Q: 5,\n S: 5,\n T: 3,\n V: 2\n }, a = 0; a < b.length; a++) {\n K(g[0]) && x(b[a]) && g.length === d[g[0].toUpperCase()] && b.splice(a, 0, g[0].replace(\"M\", \"L\").replace(\"m\", \"l\")), \"string\" === typeof b[a] && (g.length && c.push(g.slice(0)), g.length = 0), g.push(b[a]);\n }\n\n c.push(g.slice(0));\n return c;\n };\n\n L.prototype.label = function (b, c, g, d, a, k, e, r, L) {\n return new H(this, b, c, g, d, a, k, e, r, L);\n };\n\n L.prototype.alignElements = function () {\n this.alignedObjects.forEach(function (b) {\n return b.align();\n });\n };\n\n return L;\n }();\n\n b(C.prototype, {\n Element: u,\n SVG_NS: n,\n escapes: {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"'\": \"'\",\n '\"': \""\"\n },\n symbols: I,\n draw: t\n });\n G.registerRendererType(\"svg\", C, !0);\n \"\";\n return C;\n });\n M(f, \"Core/Renderer/HTML/HTMLElement.js\", [f[\"Core/Globals.js\"], f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = this && this.__extends || function () {\n var _d2 = function d(a, e) {\n _d2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, a) {\n d.__proto__ = a;\n } || function (d, a) {\n for (var e in a) {\n a.hasOwnProperty(e) && (d[e] = a[e]);\n }\n };\n\n return _d2(a, e);\n };\n\n return function (a, e) {\n function n() {\n this.constructor = a;\n }\n\n _d2(a, e);\n\n a.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n());\n };\n }(),\n u = a.isFirefox,\n H = a.isMS,\n I = a.isWebKit,\n B = a.win,\n z = C.css,\n p = C.defined,\n m = C.extend,\n e = C.pick,\n d = C.pInt;\n\n return function (a) {\n function h() {\n return null !== a && a.apply(this, arguments) || this;\n }\n\n F(h, a);\n\n h.compose = function (d) {\n if (-1 === h.composedClasses.indexOf(d)) {\n h.composedClasses.push(d);\n var a = h.prototype,\n e = d.prototype;\n e.getSpanCorrection = a.getSpanCorrection;\n e.htmlCss = a.htmlCss;\n e.htmlGetBBox = a.htmlGetBBox;\n e.htmlUpdateTransform = a.htmlUpdateTransform;\n e.setSpanRotation = a.setSpanRotation;\n }\n\n return d;\n };\n\n h.prototype.getSpanCorrection = function (d, a, e) {\n this.xCorr = -d * e;\n this.yCorr = -a;\n };\n\n h.prototype.htmlCss = function (d) {\n var a = \"SPAN\" === this.element.tagName && d && \"width\" in d,\n h = e(a && d.width, void 0);\n\n if (a) {\n delete d.width;\n this.textWidth = h;\n var l = !0;\n }\n\n d && \"ellipsis\" === d.textOverflow && (d.whiteSpace = \"nowrap\", d.overflow = \"hidden\");\n this.styles = m(this.styles, d);\n z(this.element, d);\n l && this.htmlUpdateTransform();\n return this;\n };\n\n h.prototype.htmlGetBBox = function () {\n var d = this.element;\n return {\n x: d.offsetLeft,\n y: d.offsetTop,\n width: d.offsetWidth,\n height: d.offsetHeight\n };\n };\n\n h.prototype.htmlUpdateTransform = function () {\n if (this.added) {\n var a = this.renderer,\n e = this.element,\n h = this.translateX || 0,\n l = this.translateY || 0,\n f = this.x || 0,\n m = this.y || 0,\n q = this.textAlign || \"left\",\n k = {\n left: 0,\n center: .5,\n right: 1\n }[q],\n c = this.styles;\n c = c && c.whiteSpace;\n z(e, {\n marginLeft: h,\n marginTop: l\n });\n !a.styledMode && this.shadows && this.shadows.forEach(function (b) {\n z(b, {\n marginLeft: h + 1,\n marginTop: l + 1\n });\n });\n this.inverted && [].forEach.call(e.childNodes, function (b) {\n a.invertChild(b, e);\n });\n\n if (\"SPAN\" === e.tagName) {\n var g = this.rotation,\n b = this.textWidth && d(this.textWidth),\n r = [g, q, e.innerHTML, this.textWidth, this.textAlign].join(),\n x = void 0;\n x = !1;\n\n if (b !== this.oldTextWidth) {\n if (this.textPxLength) var D = this.textPxLength;else z(e, {\n width: \"\",\n whiteSpace: c || \"nowrap\"\n }), D = e.offsetWidth;\n (b > this.oldTextWidth || D > b) && (/[ \\-]/.test(e.textContent || e.innerText) || \"ellipsis\" === e.style.textOverflow) && (z(e, {\n width: D > b || g ? b + \"px\" : \"auto\",\n display: \"block\",\n whiteSpace: c || \"normal\"\n }), this.oldTextWidth = b, x = !0);\n }\n\n this.hasBoxWidthChanged = x;\n r !== this.cTT && (x = a.fontMetrics(e.style.fontSize, e).b, !p(g) || g === (this.oldRotation || 0) && q === this.oldAlign || this.setSpanRotation(g, k, x), this.getSpanCorrection(!p(g) && this.textPxLength || e.offsetWidth, x, k, g, q));\n z(e, {\n left: f + (this.xCorr || 0) + \"px\",\n top: m + (this.yCorr || 0) + \"px\"\n });\n this.cTT = r;\n this.oldRotation = g;\n this.oldAlign = q;\n }\n } else this.alignOnAdd = !0;\n };\n\n h.prototype.setSpanRotation = function (d, a, e) {\n var h = {},\n n = H && !/Edge/.test(B.navigator.userAgent) ? \"-ms-transform\" : I ? \"-webkit-transform\" : u ? \"MozTransform\" : B.opera ? \"-o-transform\" : void 0;\n n && (h[n] = h.transform = \"rotate(\" + d + \"deg)\", h[n + (u ? \"Origin\" : \"-origin\")] = h.transformOrigin = 100 * a + \"% \" + e + \"px\", z(this.element, h));\n };\n\n h.composedClasses = [];\n return h;\n }(f);\n });\n M(f, \"Core/Renderer/HTML/HTMLRenderer.js\", [f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Renderer/SVG/SVGRenderer.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G) {\n var F = this && this.__extends || function () {\n var _a2 = function a(f, e) {\n _a2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, a) {\n d.__proto__ = a;\n } || function (d, a) {\n for (var e in a) {\n a.hasOwnProperty(e) && (d[e] = a[e]);\n }\n };\n\n return _a2(f, e);\n };\n\n return function (f, e) {\n function d() {\n this.constructor = f;\n }\n\n _a2(f, e);\n\n f.prototype = null === e ? Object.create(e) : (d.prototype = e.prototype, new d());\n };\n }(),\n H = G.attr,\n I = G.createElement,\n B = G.extend,\n z = G.pick;\n\n return function (p) {\n function m() {\n return null !== p && p.apply(this, arguments) || this;\n }\n\n F(m, p);\n\n m.compose = function (a) {\n -1 === m.composedClasses.indexOf(a) && (m.composedClasses.push(a), a.prototype.html = m.prototype.html);\n return a;\n };\n\n m.prototype.html = function (e, d, l) {\n var h = this.createElement(\"span\"),\n m = h.element,\n n = h.renderer,\n p = n.isSVG,\n w = function w(d, a) {\n [\"opacity\", \"visibility\"].forEach(function (e) {\n d[e + \"Setter\"] = function (k, c, g) {\n var b = d.div ? d.div.style : a;\n f.prototype[e + \"Setter\"].call(this, k, c, g);\n b && (b[c] = k);\n };\n });\n d.addedSetters = !0;\n };\n\n h.textSetter = function (d) {\n d !== this.textStr && (delete this.bBox, delete this.oldTextWidth, a.setElementHTML(this.element, z(d, \"\")), this.textStr = d, h.doTransform = !0);\n };\n\n p && w(h, h.element.style);\n\n h.xSetter = h.ySetter = h.alignSetter = h.rotationSetter = function (d, a) {\n \"align\" === a ? h.alignValue = h.textAlign = d : h[a] = d;\n h.doTransform = !0;\n };\n\n h.afterSetters = function () {\n this.doTransform && (this.htmlUpdateTransform(), this.doTransform = !1);\n };\n\n h.attr({\n text: e,\n x: Math.round(d),\n y: Math.round(l)\n }).css({\n position: \"absolute\"\n });\n n.styledMode || h.css({\n fontFamily: this.style.fontFamily,\n fontSize: this.style.fontSize\n });\n m.style.whiteSpace = \"nowrap\";\n h.css = h.htmlCss;\n p && (h.add = function (d) {\n var a = n.box.parentNode,\n e = [];\n\n if (this.parentGroup = d) {\n var k = d.div;\n\n if (!k) {\n for (; d;) {\n e.push(d), d = d.parentGroup;\n }\n\n e.reverse().forEach(function (c) {\n function g(b, g) {\n c[g] = b;\n \"translateX\" === g ? q.left = b + \"px\" : q.top = b + \"px\";\n c.doTransform = !0;\n }\n\n var b = H(c.element, \"class\"),\n d = c.styles || {};\n k = c.div = c.div || I(\"div\", b ? {\n className: b\n } : void 0, {\n position: \"absolute\",\n left: (c.translateX || 0) + \"px\",\n top: (c.translateY || 0) + \"px\",\n display: c.display,\n opacity: c.opacity,\n cursor: d.cursor,\n pointerEvents: d.pointerEvents,\n visibility: c.visibility\n }, k || a);\n var q = k.style;\n B(c, {\n classSetter: function (b) {\n return function (c) {\n this.element.setAttribute(\"class\", c);\n b.className = c;\n };\n }(k),\n on: function on() {\n e[0].div && h.on.apply({\n element: e[0].div,\n onEvents: c.onEvents\n }, arguments);\n return c;\n },\n translateXSetter: g,\n translateYSetter: g\n });\n c.addedSetters || w(c);\n });\n }\n } else k = a;\n\n k.appendChild(m);\n h.added = !0;\n h.alignOnAdd && h.htmlUpdateTransform();\n return h;\n });\n return h;\n };\n\n m.composedClasses = [];\n return m;\n }(C);\n });\n M(f, \"Core/Axis/AxisDefaults.js\", [], function () {\n var a;\n\n (function (a) {\n a.defaultXAxisOptions = {\n alignTicks: !0,\n allowDecimals: void 0,\n panningEnabled: !0,\n zIndex: 2,\n zoomEnabled: !0,\n dateTimeLabelFormats: {\n millisecond: {\n main: \"%H:%M:%S.%L\",\n range: !1\n },\n second: {\n main: \"%H:%M:%S\",\n range: !1\n },\n minute: {\n main: \"%H:%M\",\n range: !1\n },\n hour: {\n main: \"%H:%M\",\n range: !1\n },\n day: {\n main: \"%e. %b\"\n },\n week: {\n main: \"%e. %b\"\n },\n month: {\n main: \"%b '%y\"\n },\n year: {\n main: \"%Y\"\n }\n },\n endOnTick: !1,\n gridLineDashStyle: \"Solid\",\n gridZIndex: 1,\n labels: {\n autoRotation: void 0,\n autoRotationLimit: 80,\n distance: void 0,\n enabled: !0,\n indentation: 10,\n overflow: \"justify\",\n padding: 5,\n reserveSpace: void 0,\n rotation: void 0,\n staggerLines: 0,\n step: 0,\n useHTML: !1,\n x: 0,\n zIndex: 7,\n style: {\n color: \"#666666\",\n cursor: \"default\",\n fontSize: \"11px\"\n }\n },\n maxPadding: .01,\n minorGridLineDashStyle: \"Solid\",\n minorTickLength: 2,\n minorTickPosition: \"outside\",\n minPadding: .01,\n offset: void 0,\n opposite: !1,\n reversed: void 0,\n reversedStacks: !1,\n showEmpty: !0,\n showFirstLabel: !0,\n showLastLabel: !0,\n startOfWeek: 1,\n startOnTick: !1,\n tickLength: 10,\n tickPixelInterval: 100,\n tickmarkPlacement: \"between\",\n tickPosition: \"outside\",\n title: {\n align: \"middle\",\n rotation: 0,\n useHTML: !1,\n x: 0,\n y: 0,\n style: {\n color: \"#666666\"\n }\n },\n type: \"linear\",\n uniqueNames: !0,\n visible: !0,\n minorGridLineColor: \"#f2f2f2\",\n minorGridLineWidth: 1,\n minorTickColor: \"#999999\",\n lineColor: \"#ccd6eb\",\n lineWidth: 1,\n gridLineColor: \"#e6e6e6\",\n gridLineWidth: void 0,\n tickColor: \"#ccd6eb\"\n };\n a.defaultYAxisOptions = {\n reversedStacks: !0,\n endOnTick: !0,\n maxPadding: .05,\n minPadding: .05,\n tickPixelInterval: 72,\n showLastLabel: !0,\n labels: {\n x: -8\n },\n startOnTick: !0,\n title: {\n rotation: 270,\n text: \"Values\"\n },\n stackLabels: {\n animation: {},\n allowOverlap: !1,\n enabled: !1,\n crop: !0,\n overflow: \"justify\",\n formatter: function formatter() {\n var a = this.axis.chart.numberFormatter;\n return a(this.total, -1);\n },\n style: {\n color: \"#000000\",\n fontSize: \"11px\",\n fontWeight: \"bold\",\n textOutline: \"1px contrast\"\n }\n },\n gridLineWidth: 1,\n lineWidth: 0\n };\n a.defaultLeftAxisOptions = {\n labels: {\n x: -15\n },\n title: {\n rotation: 270\n }\n };\n a.defaultRightAxisOptions = {\n labels: {\n x: 15\n },\n title: {\n rotation: 90\n }\n };\n a.defaultBottomAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n a.defaultTopAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n })(a || (a = {}));\n\n return a;\n });\n M(f, \"Core/Foundation.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.addEvent,\n C = a.isFunction,\n G = a.objectEach,\n u = a.removeEvent,\n H;\n\n (function (a) {\n a.registerEventOptions = function (a, z) {\n a.eventOptions = a.eventOptions || {};\n G(z.events, function (p, m) {\n a.eventOptions[m] !== p && (a.eventOptions[m] && (u(a, m, a.eventOptions[m]), delete a.eventOptions[m]), C(p) && (a.eventOptions[m] = p, f(a, m, p)));\n });\n };\n })(H || (H = {}));\n\n return H;\n });\n M(f, \"Core/Axis/Tick.js\", [f[\"Core/FormatUtilities.js\"], f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = f.deg2rad,\n u = C.clamp,\n H = C.correctFloat,\n I = C.defined,\n B = C.destroyObjectProperties,\n z = C.extend,\n p = C.fireEvent,\n m = C.isNumber,\n e = C.merge,\n d = C.objectEach,\n l = C.pick;\n\n f = function () {\n function h(d, a, e, h, f) {\n this.isNewLabel = this.isNew = !0;\n this.axis = d;\n this.pos = a;\n this.type = e || \"\";\n this.parameters = f || {};\n this.tickmarkOffset = this.parameters.tickmarkOffset;\n this.options = this.parameters.options;\n p(this, \"init\");\n e || h || this.addLabel();\n }\n\n h.prototype.addLabel = function () {\n var d = this,\n e = d.axis,\n h = e.options,\n f = e.chart,\n y = e.categories,\n A = e.logarithmic,\n q = e.names,\n k = d.pos,\n c = l(d.options && d.options.labels, h.labels),\n g = e.tickPositions,\n b = k === g[0],\n r = k === g[g.length - 1],\n x = (!c.step || 1 === c.step) && 1 === e.tickInterval;\n g = g.info;\n var D = d.label,\n K;\n y = this.parameters.category || (y ? l(y[k], q[k], k) : k);\n A && m(y) && (y = H(A.lin2log(y)));\n if (e.dateTime) if (g) {\n var P = f.time.resolveDTLFormat(h.dateTimeLabelFormats[!h.grid && g.higherRanks[k] || g.unitName]);\n var Q = P.main;\n } else m(y) && (Q = e.dateTime.getXDateFormat(y, h.dateTimeLabelFormats || {}));\n d.isFirst = b;\n d.isLast = r;\n var O = {\n axis: e,\n chart: f,\n dateTimeLabelFormat: Q,\n isFirst: b,\n isLast: r,\n pos: k,\n tick: d,\n tickPositionInfo: g,\n value: y\n };\n p(this, \"labelFormat\", O);\n\n var B = function B(b) {\n return c.formatter ? c.formatter.call(b, b) : c.format ? (b.text = e.defaultLabelFormatter.call(b), a.format(c.format, b, f)) : e.defaultLabelFormatter.call(b, b);\n };\n\n h = B.call(O, O);\n var F = P && P.list;\n d.shortenLabel = F ? function () {\n for (K = 0; K < F.length; K++) {\n if (z(O, {\n dateTimeLabelFormat: F[K]\n }), D.attr({\n text: B.call(O, O)\n }), D.getBBox().width < e.getSlotWidth(d) - 2 * c.padding) return;\n }\n\n D.attr({\n text: \"\"\n });\n } : void 0;\n x && e._addedPlotLB && d.moveLabel(h, c);\n I(D) || d.movedLabel ? D && D.textStr !== h && !x && (!D.textWidth || c.style.width || D.styles.width || D.css({\n width: null\n }), D.attr({\n text: h\n }), D.textPxLength = D.getBBox().width) : (d.label = D = d.createLabel({\n x: 0,\n y: 0\n }, h, c), d.rotation = 0);\n };\n\n h.prototype.createLabel = function (d, a, h) {\n var f = this.axis,\n n = f.chart;\n if (d = I(a) && h.enabled ? n.renderer.text(a, d.x, d.y, h.useHTML).add(f.labelGroup) : null) n.styledMode || d.css(e(h.style)), d.textPxLength = d.getBBox().width;\n return d;\n };\n\n h.prototype.destroy = function () {\n B(this, this.axis);\n };\n\n h.prototype.getPosition = function (d, a, e, h) {\n var f = this.axis,\n n = f.chart,\n q = h && n.oldChartHeight || n.chartHeight;\n d = {\n x: d ? H(f.translate(a + e, null, null, h) + f.transB) : f.left + f.offset + (f.opposite ? (h && n.oldChartWidth || n.chartWidth) - f.right - f.left : 0),\n y: d ? q - f.bottom + f.offset - (f.opposite ? f.height : 0) : H(q - f.translate(a + e, null, null, h) - f.transB)\n };\n d.y = u(d.y, -1E5, 1E5);\n p(this, \"afterGetPosition\", {\n pos: d\n });\n return d;\n };\n\n h.prototype.getLabelPosition = function (d, a, e, h, f, l, q, k) {\n var c = this.axis,\n g = c.transA,\n b = c.isLinked && c.linkedParent ? c.linkedParent.reversed : c.reversed,\n r = c.staggerLines,\n x = c.tickRotCorr || {\n x: 0,\n y: 0\n },\n n = h || c.reserveSpaceDefault ? 0 : -c.labelOffset * (\"center\" === c.labelAlign ? .5 : 1),\n m = {},\n t = f.y;\n I(t) || (t = 0 === c.side ? e.rotation ? -8 : -e.getBBox().height : 2 === c.side ? x.y + 8 : Math.cos(e.rotation * F) * (x.y - e.getBBox(!1, 0).height / 2));\n d = d + f.x + n + x.x - (l && h ? l * g * (b ? -1 : 1) : 0);\n a = a + t - (l && !h ? l * g * (b ? 1 : -1) : 0);\n r && (e = q / (k || 1) % r, c.opposite && (e = r - e - 1), a += c.labelOffset / r * e);\n m.x = d;\n m.y = Math.round(a);\n p(this, \"afterGetLabelPosition\", {\n pos: m,\n tickmarkOffset: l,\n index: q\n });\n return m;\n };\n\n h.prototype.getLabelSize = function () {\n return this.label ? this.label.getBBox()[this.axis.horiz ? \"height\" : \"width\"] : 0;\n };\n\n h.prototype.getMarkPath = function (d, a, e, h, f, l) {\n return l.crispLine([[\"M\", d, a], [\"L\", d + (f ? 0 : -e), a + (f ? e : 0)]], h);\n };\n\n h.prototype.handleOverflow = function (d) {\n var a = this.axis,\n e = a.options.labels,\n h = d.x,\n f = a.chart.chartWidth,\n m = a.chart.spacing,\n q = l(a.labelLeft, Math.min(a.pos, m[3]));\n m = l(a.labelRight, Math.max(a.isRadial ? 0 : a.pos + a.len, f - m[1]));\n var k = this.label,\n c = this.rotation,\n g = {\n left: 0,\n center: .5,\n right: 1\n }[a.labelAlign || k.attr(\"align\")],\n b = k.getBBox().width,\n r = a.getSlotWidth(this),\n x = {},\n D = r,\n p = 1,\n t;\n if (c || \"justify\" !== e.overflow) 0 > c && h - g * b < q ? t = Math.round(h / Math.cos(c * F) - q) : 0 < c && h + g * b > m && (t = Math.round((f - h) / Math.cos(c * F)));else if (f = h + (1 - g) * b, h - g * b < q ? D = d.x + D * (1 - g) - q : f > m && (D = m - d.x + D * g, p = -1), D = Math.min(r, D), D < r && \"center\" === a.labelAlign && (d.x += p * (r - D - g * (r - Math.min(b, D)))), b > D || a.autoRotation && (k.styles || {}).width) t = D;\n t && (this.shortenLabel ? this.shortenLabel() : (x.width = Math.floor(t) + \"px\", (e.style || {}).textOverflow || (x.textOverflow = \"ellipsis\"), k.css(x)));\n };\n\n h.prototype.moveLabel = function (a, e) {\n var h = this,\n f = h.label,\n l = h.axis,\n n = l.reversed,\n q = !1;\n f && f.textStr === a ? (h.movedLabel = f, q = !0, delete h.label) : d(l.ticks, function (c) {\n q || c.isNew || c === h || !c.label || c.label.textStr !== a || (h.movedLabel = c.label, q = !0, c.labelPos = h.movedLabel.xy, delete c.label);\n });\n\n if (!q && (h.labelPos || f)) {\n var k = h.labelPos || f.xy;\n f = l.horiz ? n ? 0 : l.width + l.left : k.x;\n l = l.horiz ? k.y : n ? l.width + l.left : 0;\n h.movedLabel = h.createLabel({\n x: f,\n y: l\n }, a, e);\n h.movedLabel && h.movedLabel.attr({\n opacity: 0\n });\n }\n };\n\n h.prototype.render = function (d, a, e) {\n var h = this.axis,\n f = h.horiz,\n n = this.pos,\n q = l(this.tickmarkOffset, h.tickmarkOffset);\n n = this.getPosition(f, n, q, a);\n q = n.x;\n var k = n.y;\n h = f && q === h.pos + h.len || !f && k === h.pos ? -1 : 1;\n f = l(e, this.label && this.label.newOpacity, 1);\n e = l(e, 1);\n this.isActive = !0;\n this.renderGridLine(a, e, h);\n this.renderMark(n, e, h);\n this.renderLabel(n, a, f, d);\n this.isNew = !1;\n p(this, \"afterRender\");\n };\n\n h.prototype.renderGridLine = function (d, a, e) {\n var h = this.axis,\n f = h.options,\n n = {},\n q = this.pos,\n k = this.type,\n c = l(this.tickmarkOffset, h.tickmarkOffset),\n g = h.chart.renderer,\n b = this.gridLine,\n r = f.gridLineWidth,\n x = f.gridLineColor,\n D = f.gridLineDashStyle;\n \"minor\" === this.type && (r = f.minorGridLineWidth, x = f.minorGridLineColor, D = f.minorGridLineDashStyle);\n b || (h.chart.styledMode || (n.stroke = x, n[\"stroke-width\"] = r || 0, n.dashstyle = D), k || (n.zIndex = 1), d && (a = 0), this.gridLine = b = g.path().attr(n).addClass(\"highcharts-\" + (k ? k + \"-\" : \"\") + \"grid-line\").add(h.gridGroup));\n if (b && (e = h.getPlotLinePath({\n value: q + c,\n lineWidth: b.strokeWidth() * e,\n force: \"pass\",\n old: d\n }))) b[d || this.isNew ? \"attr\" : \"animate\"]({\n d: e,\n opacity: a\n });\n };\n\n h.prototype.renderMark = function (d, a, e) {\n var h = this.axis,\n f = h.options,\n n = h.chart.renderer,\n q = this.type,\n k = h.tickSize(q ? q + \"Tick\" : \"tick\"),\n c = d.x;\n d = d.y;\n var g = l(f[\"minor\" !== q ? \"tickWidth\" : \"minorTickWidth\"], !q && h.isXAxis ? 1 : 0);\n f = f[\"minor\" !== q ? \"tickColor\" : \"minorTickColor\"];\n var b = this.mark,\n r = !b;\n k && (h.opposite && (k[0] = -k[0]), b || (this.mark = b = n.path().addClass(\"highcharts-\" + (q ? q + \"-\" : \"\") + \"tick\").add(h.axisGroup), h.chart.styledMode || b.attr({\n stroke: f,\n \"stroke-width\": g\n })), b[r ? \"attr\" : \"animate\"]({\n d: this.getMarkPath(c, d, k[0], b.strokeWidth() * e, h.horiz, n),\n opacity: a\n }));\n };\n\n h.prototype.renderLabel = function (d, a, e, h) {\n var f = this.axis,\n n = f.horiz,\n q = f.options,\n k = this.label,\n c = q.labels,\n g = c.step;\n f = l(this.tickmarkOffset, f.tickmarkOffset);\n var b = d.x;\n d = d.y;\n var r = !0;\n k && m(b) && (k.xy = d = this.getLabelPosition(b, d, k, n, c, f, h, g), this.isFirst && !this.isLast && !q.showFirstLabel || this.isLast && !this.isFirst && !q.showLastLabel ? r = !1 : !n || c.step || c.rotation || a || 0 === e || this.handleOverflow(d), g && h % g && (r = !1), r && m(d.y) ? (d.opacity = e, k[this.isNewLabel ? \"attr\" : \"animate\"](d), this.isNewLabel = !1) : (k.attr(\"y\", -9999), this.isNewLabel = !0));\n };\n\n h.prototype.replaceMovedLabel = function () {\n var d = this.label,\n a = this.axis,\n e = a.reversed;\n\n if (d && !this.isNew) {\n var h = a.horiz ? e ? a.left : a.width + a.left : d.xy.x;\n e = a.horiz ? d.xy.y : e ? a.width + a.top : a.top;\n d.animate({\n x: h,\n y: e,\n opacity: 0\n }, void 0, d.destroy);\n delete this.label;\n }\n\n a.isDirty = !0;\n this.label = this.movedLabel;\n delete this.movedLabel;\n };\n\n return h;\n }();\n\n \"\";\n return f;\n });\n M(f, \"Core/Axis/Axis.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Axis/AxisDefaults.js\"], f[\"Core/Color/Color.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/Foundation.js\"], f[\"Core/Globals.js\"], f[\"Core/Axis/Tick.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I, B) {\n var z = a.animObject,\n p = G.defaultOptions,\n m = u.registerEventOptions,\n e = H.deg2rad,\n d = B.arrayMax,\n l = B.arrayMin,\n h = B.clamp,\n t = B.correctFloat,\n n = B.defined,\n v = B.destroyObjectProperties,\n w = B.erase,\n y = B.error,\n A = B.extend,\n q = B.fireEvent,\n k = B.getMagnitude,\n c = B.isArray,\n g = B.isNumber,\n b = B.isString,\n r = B.merge,\n x = B.normalizeTickInterval,\n D = B.objectEach,\n K = B.pick,\n P = B.relativeLength,\n Q = B.removeEvent,\n O = B.splat,\n W = B.syncTimeout;\n\n a = function () {\n function a(b, c) {\n 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.bottom = this.alternateBands = void 0;\n this.init(b, c);\n }\n\n a.prototype.init = function (b, c) {\n var a = c.isX;\n this.chart = b;\n this.horiz = b.inverted && !this.isZAxis ? !a : a;\n this.isXAxis = a;\n this.coll = this.coll || (a ? \"xAxis\" : \"yAxis\");\n q(this, \"init\", {\n userOptions: c\n });\n this.opposite = K(c.opposite, this.opposite);\n this.side = K(c.side, this.side, this.horiz ? this.opposite ? 0 : 2 : this.opposite ? 1 : 3);\n this.setOptions(c);\n var d = this.options,\n e = d.labels,\n k = d.type;\n this.userOptions = c;\n this.minPixelPadding = 0;\n this.reversed = K(d.reversed, this.reversed);\n this.visible = d.visible;\n this.zoomEnabled = d.zoomEnabled;\n this.hasNames = \"category\" === k || !0 === d.categories;\n this.categories = d.categories || (this.hasNames ? [] : void 0);\n this.names || (this.names = [], this.names.keys = {});\n this.plotLinesAndBandsGroups = {};\n this.positiveValuesOnly = !!this.logarithmic;\n this.isLinked = n(d.linkedTo);\n this.ticks = {};\n this.labelEdge = [];\n this.minorTicks = {};\n this.plotLinesAndBands = [];\n this.alternateBands = {};\n this.len = 0;\n this.minRange = this.userMinRange = d.minRange || d.maxZoom;\n this.range = d.range;\n this.offset = d.offset || 0;\n this.min = this.max = null;\n c = K(d.crosshair, O(b.options.tooltip.crosshairs)[a ? 0 : 1]);\n this.crosshair = !0 === c ? {} : c;\n -1 === b.axes.indexOf(this) && (a ? b.axes.splice(b.xAxis.length, 0, this) : b.axes.push(this), b[this.coll].push(this));\n this.series = this.series || [];\n b.inverted && !this.isZAxis && a && \"undefined\" === typeof this.reversed && (this.reversed = !0);\n this.labelRotation = g(e.rotation) ? e.rotation : void 0;\n m(this, d);\n q(this, \"afterInit\");\n };\n\n a.prototype.setOptions = function (b) {\n this.options = r(f.defaultXAxisOptions, \"yAxis\" === this.coll && f.defaultYAxisOptions, [f.defaultTopAxisOptions, f.defaultRightAxisOptions, f.defaultBottomAxisOptions, f.defaultLeftAxisOptions][this.side], r(p[this.coll], b));\n q(this, \"afterSetOptions\", {\n userOptions: b\n });\n };\n\n a.prototype.defaultLabelFormatter = function (b) {\n var c = this.axis;\n b = this.chart.numberFormatter;\n var a = g(this.value) ? this.value : NaN,\n d = c.chart.time,\n e = this.dateTimeLabelFormat,\n k = p.lang,\n r = k.numericSymbols;\n k = k.numericSymbolMagnitude || 1E3;\n var h = c.logarithmic ? Math.abs(a) : c.tickInterval,\n q = r && r.length;\n if (c.categories) var L = \"\" + this.value;else if (e) L = d.dateFormat(e, a);else if (q && 1E3 <= h) for (; q-- && \"undefined\" === typeof L;) {\n c = Math.pow(k, q + 1), h >= c && 0 === 10 * a % c && null !== r[q] && 0 !== a && (L = b(a / c, -1) + r[q]);\n }\n \"undefined\" === typeof L && (L = 1E4 <= Math.abs(a) ? b(a, -1) : b(a, -1, void 0, \"\"));\n return L;\n };\n\n a.prototype.getSeriesExtremes = function () {\n var b = this,\n c = b.chart,\n a;\n q(this, \"getSeriesExtremes\", null, function () {\n b.hasVisibleSeries = !1;\n b.dataMin = b.dataMax = b.threshold = null;\n b.softThreshold = !b.isXAxis;\n b.stacking && b.stacking.buildStacks();\n b.series.forEach(function (d) {\n if (d.visible || !c.options.chart.ignoreHiddenSeries) {\n var e = d.options,\n k = e.threshold;\n b.hasVisibleSeries = !0;\n b.positiveValuesOnly && 0 >= k && (k = null);\n\n if (b.isXAxis) {\n if (e = d.xData, e.length) {\n e = b.logarithmic ? e.filter(b.validatePositiveValue) : e;\n a = d.getXExtremes(e);\n var r = a.min;\n var h = a.max;\n g(r) || r instanceof Date || (e = e.filter(g), a = d.getXExtremes(e), r = a.min, h = a.max);\n e.length && (b.dataMin = Math.min(K(b.dataMin, r), r), b.dataMax = Math.max(K(b.dataMax, h), h));\n }\n } else if (d = d.applyExtremes(), g(d.dataMin) && (r = d.dataMin, b.dataMin = Math.min(K(b.dataMin, r), r)), g(d.dataMax) && (h = d.dataMax, b.dataMax = Math.max(K(b.dataMax, h), h)), n(k) && (b.threshold = k), !e.softThreshold || b.positiveValuesOnly) b.softThreshold = !1;\n }\n });\n });\n q(this, \"afterGetSeriesExtremes\");\n };\n\n a.prototype.translate = function (b, c, a, d, e, k) {\n var r = this.linkedParent || this,\n h = d && r.old ? r.old.min : r.min,\n q = r.minPixelPadding;\n e = (r.isOrdinal || r.brokenAxis && r.brokenAxis.hasBreaks || r.logarithmic && e) && r.lin2val;\n var f = 1,\n L = 0;\n d = d && r.old ? r.old.transA : r.transA;\n d || (d = r.transA);\n a && (f *= -1, L = r.len);\n r.reversed && (f *= -1, L -= f * (r.sector || r.len));\n c ? (k = (b * f + L - q) / d + h, e && (k = r.lin2val(k))) : (e && (b = r.val2lin(b)), b = f * (b - h) * d, k = g(h) ? (r.isRadial ? b : t(b)) + L + f * q + (g(k) ? d * k : 0) : void 0);\n return k;\n };\n\n a.prototype.toPixels = function (b, c) {\n return this.translate(b, !1, !this.horiz, null, !0) + (c ? 0 : this.pos);\n };\n\n a.prototype.toValue = function (b, c) {\n return this.translate(b - (c ? 0 : this.pos), !0, !this.horiz, null, !0);\n };\n\n a.prototype.getPlotLinePath = function (b) {\n function c(b, c, a) {\n if (\"pass\" !== m && b < c || b > a) m ? b = h(b, c, a) : w = !0;\n return b;\n }\n\n var a = this,\n d = a.chart,\n e = a.left,\n k = a.top,\n r = b.old,\n f = b.value,\n L = b.lineWidth,\n l = r && d.oldChartHeight || d.chartHeight,\n x = r && d.oldChartWidth || d.chartWidth,\n D = a.transB,\n n = b.translatedValue,\n m = b.force,\n p,\n t,\n A,\n P,\n w;\n b = {\n value: f,\n lineWidth: L,\n old: r,\n force: m,\n acrossPanes: b.acrossPanes,\n translatedValue: n\n };\n q(this, \"getPlotLinePath\", b, function (b) {\n n = K(n, a.translate(f, null, null, r));\n n = h(n, -1E5, 1E5);\n p = A = Math.round(n + D);\n t = P = Math.round(l - n - D);\n g(n) ? a.horiz ? (t = k, P = l - a.bottom, p = A = c(p, e, e + a.width)) : (p = e, A = x - a.right, t = P = c(t, k, k + a.height)) : (w = !0, m = !1);\n b.path = w && !m ? null : d.renderer.crispLine([[\"M\", p, t], [\"L\", A, P]], L || 1);\n });\n return b.path;\n };\n\n a.prototype.getLinearTickPositions = function (b, c, a) {\n var d = t(Math.floor(c / b) * b);\n a = t(Math.ceil(a / b) * b);\n var g = [],\n e;\n t(d + b) === d && (e = 20);\n if (this.single) return [c];\n\n for (c = d; c <= a;) {\n g.push(c);\n c = t(c + b, e);\n if (c === k) break;\n var k = c;\n }\n\n return g;\n };\n\n a.prototype.getMinorTickInterval = function () {\n var b = this.options;\n return !0 === b.minorTicks ? K(b.minorTickInterval, \"auto\") : !1 === b.minorTicks ? null : b.minorTickInterval;\n };\n\n a.prototype.getMinorTickPositions = function () {\n var b = this.options,\n c = this.tickPositions,\n a = this.minorTickInterval,\n d = this.pointRangePadding || 0,\n g = this.min - d;\n d = this.max + d;\n var e = d - g,\n k = [];\n\n if (e && e / a < this.len / 3) {\n var r = this.logarithmic;\n if (r) this.paddedTicks.forEach(function (b, c, d) {\n c && k.push.apply(k, r.getLogTickPositions(a, d[c - 1], d[c], !0));\n });else if (this.dateTime && \"auto\" === this.getMinorTickInterval()) k = k.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(a), g, d, b.startOfWeek));else for (b = g + (c[0] - g) % a; b <= d && b !== k[0]; b += a) {\n k.push(b);\n }\n }\n\n 0 !== k.length && this.trimTicks(k);\n return k;\n };\n\n a.prototype.adjustForMinRange = function () {\n var b = this.options,\n c = this.logarithmic,\n a = this.min,\n g = this.max,\n e = 0,\n k,\n r,\n h,\n q;\n this.isXAxis && \"undefined\" === typeof this.minRange && !c && (n(b.min) || n(b.max) || n(b.floor) || n(b.ceiling) ? this.minRange = null : (this.series.forEach(function (b) {\n h = b.xData;\n q = b.xIncrement ? 1 : h.length - 1;\n if (1 < h.length) for (k = q; 0 < k; k--) {\n if (r = h[k] - h[k - 1], !e || r < e) e = r;\n }\n }), this.minRange = Math.min(5 * e, this.dataMax - this.dataMin)));\n\n if (g - a < this.minRange) {\n var f = this.dataMax - this.dataMin >= this.minRange;\n var x = this.minRange;\n var D = (x - g + a) / 2;\n D = [a - D, K(b.min, a - D)];\n f && (D[2] = this.logarithmic ? this.logarithmic.log2lin(this.dataMin) : this.dataMin);\n a = d(D);\n g = [a + x, K(b.max, a + x)];\n f && (g[2] = c ? c.log2lin(this.dataMax) : this.dataMax);\n g = l(g);\n g - a < x && (D[0] = g - x, D[1] = K(b.min, g - x), a = d(D));\n }\n\n this.min = a;\n this.max = g;\n };\n\n a.prototype.getClosest = function () {\n var b;\n this.categories ? b = 1 : this.series.forEach(function (c) {\n var a = c.closestPointRange,\n d = c.visible || !c.chart.options.chart.ignoreHiddenSeries;\n !c.noSharedTooltip && n(a) && d && (b = n(b) ? Math.min(b, a) : a);\n });\n return b;\n };\n\n a.prototype.nameToX = function (b) {\n var a = c(this.options.categories),\n d = a ? this.categories : this.names,\n g = b.options.x;\n b.series.requireSorting = !1;\n n(g) || (g = this.options.uniqueNames && d ? a ? d.indexOf(b.name) : K(d.keys[b.name], -1) : b.series.autoIncrement());\n\n if (-1 === g) {\n if (!a && d) var e = d.length;\n } else e = g;\n\n \"undefined\" !== typeof e && (this.names[e] = b.name, this.names.keys[b.name] = e);\n return e;\n };\n\n a.prototype.updateNames = function () {\n var b = this,\n c = this.names;\n 0 < c.length && (Object.keys(c.keys).forEach(function (b) {\n delete c.keys[b];\n }), c.length = 0, this.minRange = this.userMinRange, (this.series || []).forEach(function (c) {\n c.xIncrement = null;\n if (!c.points || c.isDirtyData) b.max = Math.max(b.max, c.xData.length - 1), c.processData(), c.generatePoints();\n c.data.forEach(function (a, d) {\n if (a && a.options && \"undefined\" !== typeof a.name) {\n var g = b.nameToX(a);\n \"undefined\" !== typeof g && g !== a.x && (a.x = g, c.xData[d] = g);\n }\n });\n }));\n };\n\n a.prototype.setAxisTranslation = function () {\n var c = this,\n a = c.max - c.min,\n d = c.linkedParent,\n g = !!c.categories,\n e = c.isXAxis,\n k = c.axisPointRange || 0,\n r = 0,\n h = 0,\n f = c.transA;\n\n if (e || g || k) {\n var x = c.getClosest();\n d ? (r = d.minPointOffset, h = d.pointRangePadding) : c.series.forEach(function (a) {\n var d = g ? 1 : e ? K(a.options.pointRange, x, 0) : c.axisPointRange || 0,\n q = a.options.pointPlacement;\n k = Math.max(k, d);\n if (!c.single || g) a = a.is(\"xrange\") ? !e : e, r = Math.max(r, a && b(q) ? 0 : d / 2), h = Math.max(h, a && \"on\" === q ? 0 : d);\n });\n d = c.ordinal && c.ordinal.slope && x ? c.ordinal.slope / x : 1;\n c.minPointOffset = r *= d;\n c.pointRangePadding = h *= d;\n c.pointRange = Math.min(k, c.single && g ? 1 : a);\n e && (c.closestPointRange = x);\n }\n\n c.translationSlope = c.transA = f = c.staticScale || c.len / (a + h || 1);\n c.transB = c.horiz ? c.left : c.bottom;\n c.minPixelPadding = f * r;\n q(this, \"afterSetAxisTranslation\");\n };\n\n a.prototype.minFromRange = function () {\n return this.max - this.range;\n };\n\n a.prototype.setTickInterval = function (b) {\n var c = this.chart,\n a = this.logarithmic,\n d = this.options,\n e = this.isXAxis,\n r = this.isLinked,\n h = d.tickPixelInterval,\n f = this.categories,\n l = this.softThreshold,\n D = d.maxPadding,\n m = d.minPadding,\n L = g(d.tickInterval) && 0 <= d.tickInterval ? d.tickInterval : void 0,\n p = g(this.threshold) ? this.threshold : null;\n this.dateTime || f || r || this.getTickAmount();\n var A = K(this.userMin, d.min);\n var P = K(this.userMax, d.max);\n\n if (r) {\n this.linkedParent = c[this.coll][d.linkedTo];\n var w = this.linkedParent.getExtremes();\n this.min = K(w.min, w.dataMin);\n this.max = K(w.max, w.dataMax);\n d.type !== this.linkedParent.options.type && y(11, 1, c);\n } else {\n if (l && n(p)) if (this.dataMin >= p) w = p, m = 0;else if (this.dataMax <= p) {\n var v = p;\n D = 0;\n }\n this.min = K(A, w, this.dataMin);\n this.max = K(P, v, this.dataMax);\n }\n\n a && (this.positiveValuesOnly && !b && 0 >= Math.min(this.min, K(this.dataMin, this.min)) && y(10, 1, c), this.min = t(a.log2lin(this.min), 16), this.max = t(a.log2lin(this.max), 16));\n this.range && n(this.max) && (this.userMin = this.min = A = Math.max(this.dataMin, this.minFromRange()), this.userMax = P = this.max, this.range = null);\n q(this, \"foundExtremes\");\n this.beforePadding && this.beforePadding();\n this.adjustForMinRange();\n !(f || this.axisPointRange || this.stacking && this.stacking.usePercentage || r) && n(this.min) && n(this.max) && (c = this.max - this.min) && (!n(A) && m && (this.min -= c * m), !n(P) && D && (this.max += c * D));\n g(this.userMin) || (g(d.softMin) && d.softMin < this.min && (this.min = A = d.softMin), g(d.floor) && (this.min = Math.max(this.min, d.floor)));\n g(this.userMax) || (g(d.softMax) && d.softMax > this.max && (this.max = P = d.softMax), g(d.ceiling) && (this.max = Math.min(this.max, d.ceiling)));\n l && n(this.dataMin) && (p = p || 0, !n(A) && this.min < p && this.dataMin >= p ? this.min = this.options.minRange ? Math.min(p, this.max - this.minRange) : p : !n(P) && this.max > p && this.dataMax <= p && (this.max = this.options.minRange ? Math.max(p, this.min + this.minRange) : p));\n g(this.min) && g(this.max) && !this.chart.polar && this.min > this.max && (n(this.options.min) ? this.max = this.min : n(this.options.max) && (this.min = this.max));\n this.tickInterval = this.min === this.max || \"undefined\" === typeof this.min || \"undefined\" === typeof this.max ? 1 : r && this.linkedParent && !L && h === this.linkedParent.options.tickPixelInterval ? L = this.linkedParent.tickInterval : K(L, this.tickAmount ? (this.max - this.min) / Math.max(this.tickAmount - 1, 1) : void 0, f ? 1 : (this.max - this.min) * h / Math.max(this.len, h));\n\n if (e && !b) {\n var Q = this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max);\n this.series.forEach(function (b) {\n b.forceCrop = b.forceCropping && b.forceCropping();\n b.processData(Q);\n });\n q(this, \"postProcessData\", {\n hasExtemesChanged: Q\n });\n }\n\n this.setAxisTranslation();\n q(this, \"initialAxisTranslation\");\n this.pointRange && !L && (this.tickInterval = Math.max(this.pointRange, this.tickInterval));\n b = K(d.minTickInterval, this.dateTime && !this.series.some(function (b) {\n return b.noSharedTooltip;\n }) ? this.closestPointRange : 0);\n !L && this.tickInterval < b && (this.tickInterval = b);\n this.dateTime || this.logarithmic || L || (this.tickInterval = x(this.tickInterval, void 0, k(this.tickInterval), K(d.allowDecimals, .5 > this.tickInterval || void 0 !== this.tickAmount), !!this.tickAmount));\n this.tickAmount || (this.tickInterval = this.unsquish());\n this.setTickPositions();\n };\n\n a.prototype.setTickPositions = function () {\n var b = this.options,\n c = b.tickPositions,\n a = this.getMinorTickInterval(),\n d = this.hasVerticalPanning(),\n g = \"colorAxis\" === this.coll,\n e = (g || !d) && b.startOnTick;\n d = (g || !d) && b.endOnTick;\n g = b.tickPositioner;\n this.tickmarkOffset = this.categories && \"between\" === b.tickmarkPlacement && 1 === this.tickInterval ? .5 : 0;\n this.minorTickInterval = \"auto\" === a && this.tickInterval ? this.tickInterval / 5 : a;\n this.single = this.min === this.max && n(this.min) && !this.tickAmount && (parseInt(this.min, 10) === this.min || !1 !== b.allowDecimals);\n this.tickPositions = a = c && c.slice();\n !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], y(19, !1, this.chart)), a.length > this.len && (a = [a[0], a.pop()], a[0] === a[1] && (a.length = 1)), this.tickPositions = a, g && (g = g.apply(this, [this.min, this.max]))) && (this.tickPositions = a = g);\n this.paddedTicks = a.slice(0);\n this.trimTicks(a, e, d);\n this.isLinked || (this.single && 2 > a.length && !this.categories && !this.series.some(function (b) {\n return b.is(\"heatmap\") && \"between\" === b.options.pointPlacement;\n }) && (this.min -= .5, this.max += .5), c || g || this.adjustTickAmount());\n q(this, \"afterSetTickPositions\");\n };\n\n a.prototype.trimTicks = function (b, c, a) {\n var d = b[0],\n g = b[b.length - 1],\n e = !this.isOrdinal && this.minPointOffset || 0;\n q(this, \"trimTicks\");\n\n if (!this.isLinked) {\n if (c && -Infinity !== d) this.min = d;else for (; this.min - e > b[0];) {\n b.shift();\n }\n if (a) this.max = g;else for (; this.max + e < b[b.length - 1];) {\n b.pop();\n }\n 0 === b.length && n(d) && !this.options.tickPositions && b.push((g + d) / 2);\n }\n };\n\n a.prototype.alignToOthers = function () {\n var b = this,\n c = [this],\n a = b.options,\n d = \"yAxis\" === this.coll && this.chart.options.chart.alignThresholds,\n e = [],\n k;\n b.thresholdAlignment = void 0;\n\n if ((!1 !== this.chart.options.chart.alignTicks && a.alignTicks || d) && !1 !== a.startOnTick && !1 !== a.endOnTick && !b.logarithmic) {\n var r = function r(b) {\n var c = b.options;\n return [b.horiz ? c.left : c.top, c.width, c.height, c.pane].join();\n },\n h = r(this);\n\n this.chart[this.coll].forEach(function (a) {\n var d = a.series;\n d.length && d.some(function (b) {\n return b.visible;\n }) && a !== b && r(a) === h && (k = !0, c.push(a));\n });\n }\n\n if (k && d) {\n c.forEach(function (c) {\n c = c.getThresholdAlignment(b);\n g(c) && e.push(c);\n });\n var q = 1 < e.length ? e.reduce(function (b, c) {\n return b + c;\n }, 0) / e.length : void 0;\n c.forEach(function (b) {\n b.thresholdAlignment = q;\n });\n }\n\n return k;\n };\n\n a.prototype.getThresholdAlignment = function (b) {\n (!g(this.dataMin) || this !== b && this.series.some(function (b) {\n return b.isDirty || b.isDirtyData;\n })) && this.getSeriesExtremes();\n if (g(this.threshold)) return b = h((this.threshold - (this.dataMin || 0)) / ((this.dataMax || 0) - (this.dataMin || 0)), 0, 1), this.options.reversed && (b = 1 - b), b;\n };\n\n a.prototype.getTickAmount = function () {\n var b = this.options,\n c = b.tickPixelInterval,\n a = b.tickAmount;\n !n(b.tickInterval) && !a && this.len < c && !this.isRadial && !this.logarithmic && b.startOnTick && b.endOnTick && (a = 2);\n !a && this.alignToOthers() && (a = Math.ceil(this.len / c) + 1);\n 4 > a && (this.finalTickAmt = a, a = 5);\n this.tickAmount = a;\n };\n\n a.prototype.adjustTickAmount = function () {\n var b = this,\n c = b.finalTickAmt,\n a = b.max,\n d = b.min,\n e = b.options,\n k = b.tickPositions,\n r = b.tickAmount,\n h = b.thresholdAlignment,\n q = k && k.length,\n f = K(b.threshold, b.softThreshold ? 0 : null);\n var x = b.tickInterval;\n\n if (g(h)) {\n var l = .5 > h ? Math.ceil(h * (r - 1)) : Math.floor(h * (r - 1));\n e.reversed && (l = r - 1 - l);\n }\n\n if (b.hasData() && g(d) && g(a)) {\n h = function h() {\n b.transA *= (q - 1) / (r - 1);\n b.min = e.startOnTick ? k[0] : Math.min(d, k[0]);\n b.max = e.endOnTick ? k[k.length - 1] : Math.max(a, k[k.length - 1]);\n };\n\n if (g(l) && g(b.threshold)) {\n for (; k[l] !== f || k.length !== r || k[0] > d || k[k.length - 1] < a;) {\n k.length = 0;\n\n for (k.push(b.threshold); k.length < r;) {\n void 0 === k[l] || k[l] > b.threshold ? k.unshift(t(k[0] - x)) : k.push(t(k[k.length - 1] + x));\n }\n\n if (x > 8 * b.tickInterval) break;\n x *= 2;\n }\n\n h();\n } else if (q < r) {\n for (; k.length < r;) {\n k.length % 2 || d === f ? k.push(t(k[k.length - 1] + x)) : k.unshift(t(k[0] - x));\n }\n\n h();\n } else q > r && (b.tickInterval *= 2, b.setTickPositions());\n\n if (n(c)) {\n for (x = f = k.length; x--;) {\n (3 === c && 1 === x % 2 || 2 >= c && 0 < x && x < f - 1) && k.splice(x, 1);\n }\n\n b.finalTickAmt = void 0;\n }\n }\n };\n\n a.prototype.setScale = function () {\n var b = !1,\n c = !1;\n this.series.forEach(function (a) {\n b = b || a.isDirtyData || a.isDirty;\n c = c || a.xAxis && a.xAxis.isDirty || !1;\n });\n this.setAxisSize();\n var a = this.len !== (this.old && this.old.len);\n a || b || c || 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();\n b && this.panningState && (this.panningState.isDirty = !0);\n q(this, \"afterSetScale\");\n };\n\n a.prototype.setExtremes = function (b, c, a, d, g) {\n var e = this,\n k = e.chart;\n a = K(a, !0);\n e.series.forEach(function (b) {\n delete b.kdTree;\n });\n g = A(g, {\n min: b,\n max: c\n });\n q(e, \"setExtremes\", g, function () {\n e.userMin = b;\n e.userMax = c;\n e.eventArgs = g;\n a && k.redraw(d);\n });\n };\n\n a.prototype.zoom = function (b, c) {\n var a = this,\n d = this.dataMin,\n g = this.dataMax,\n e = this.options,\n k = Math.min(d, K(e.min, d)),\n r = Math.max(g, K(e.max, g));\n b = {\n newMin: b,\n newMax: c\n };\n q(this, \"zoom\", b, function (b) {\n var c = b.newMin,\n e = b.newMax;\n if (c !== a.min || e !== a.max) a.allowZoomOutside || (n(d) && (c < k && (c = k), c > r && (c = r)), n(g) && (e < k && (e = k), e > r && (e = r))), a.displayBtn = \"undefined\" !== typeof c || \"undefined\" !== typeof e, a.setExtremes(c, e, !1, void 0, {\n trigger: \"zoom\"\n });\n b.zoomed = !0;\n });\n return b.zoomed;\n };\n\n a.prototype.setAxisSize = function () {\n var b = this.chart,\n c = this.options,\n a = c.offsets || [0, 0, 0, 0],\n d = this.horiz,\n g = this.width = Math.round(P(K(c.width, b.plotWidth - a[3] + a[1]), b.plotWidth)),\n e = this.height = Math.round(P(K(c.height, b.plotHeight - a[0] + a[2]), b.plotHeight)),\n k = this.top = Math.round(P(K(c.top, b.plotTop + a[0]), b.plotHeight, b.plotTop));\n c = this.left = Math.round(P(K(c.left, b.plotLeft + a[3]), b.plotWidth, b.plotLeft));\n this.bottom = b.chartHeight - e - k;\n this.right = b.chartWidth - g - c;\n this.len = Math.max(d ? g : e, 0);\n this.pos = d ? c : k;\n };\n\n a.prototype.getExtremes = function () {\n var b = this.logarithmic;\n return {\n min: b ? t(b.lin2log(this.min)) : this.min,\n max: b ? t(b.lin2log(this.max)) : this.max,\n dataMin: this.dataMin,\n dataMax: this.dataMax,\n userMin: this.userMin,\n userMax: this.userMax\n };\n };\n\n a.prototype.getThreshold = function (b) {\n var c = this.logarithmic,\n a = c ? c.lin2log(this.min) : this.min;\n c = c ? c.lin2log(this.max) : this.max;\n null === b || -Infinity === b ? b = a : Infinity === b ? b = c : a > b ? b = a : c < b && (b = c);\n return this.translate(b, 0, 1, 0, 1);\n };\n\n a.prototype.autoLabelAlign = function (b) {\n var c = (K(b, 0) - 90 * this.side + 720) % 360;\n b = {\n align: \"center\"\n };\n q(this, \"autoLabelAlign\", b, function (b) {\n 15 < c && 165 > c ? b.align = \"right\" : 195 < c && 345 > c && (b.align = \"left\");\n });\n return b.align;\n };\n\n a.prototype.tickSize = function (b) {\n var c = this.options,\n a = K(c[\"tick\" === b ? \"tickWidth\" : \"minorTickWidth\"], \"tick\" === b && this.isXAxis && !this.categories ? 1 : 0),\n d = c[\"tick\" === b ? \"tickLength\" : \"minorTickLength\"];\n\n if (a && d) {\n \"inside\" === c[b + \"Position\"] && (d = -d);\n var g = [d, a];\n }\n\n b = {\n tickSize: g\n };\n q(this, \"afterTickSize\", b);\n return b.tickSize;\n };\n\n a.prototype.labelMetrics = function () {\n var b = this.tickPositions && this.tickPositions[0] || 0;\n return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize, this.ticks[b] && this.ticks[b].label);\n };\n\n a.prototype.unsquish = function () {\n var b = this.options.labels,\n c = this.horiz,\n a = this.tickInterval,\n d = this.len / (((this.categories ? 1 : 0) + this.max - this.min) / a),\n k = b.rotation,\n r = this.labelMetrics(),\n h = Math.max(this.max - this.min, 0),\n q = function q(b) {\n var c = b / (d || 1);\n c = 1 < c ? Math.ceil(c) : 1;\n c * a > h && Infinity !== b && Infinity !== d && h && (c = Math.ceil(h / a));\n return t(c * a);\n },\n f = a,\n x,\n l,\n D = Number.MAX_VALUE;\n\n if (c) {\n if (!b.staggerLines && !b.step) if (g(k)) var n = [k];else d < b.autoRotationLimit && (n = b.autoRotation);\n n && n.forEach(function (b) {\n if (b === k || b && -90 <= b && 90 >= b) {\n l = q(Math.abs(r.h / Math.sin(e * b)));\n var c = l + Math.abs(b / 360);\n c < D && (D = c, x = b, f = l);\n }\n });\n } else b.step || (f = q(r.h));\n\n this.autoRotation = n;\n this.labelRotation = K(x, g(k) ? k : 0);\n return f;\n };\n\n a.prototype.getSlotWidth = function (b) {\n var c = this.chart,\n a = this.horiz,\n d = this.options.labels,\n e = Math.max(this.tickPositions.length - (this.categories ? 0 : 1), 1),\n k = c.margin[3];\n if (b && g(b.slotWidth)) return b.slotWidth;\n if (a && 2 > d.step) return d.rotation ? 0 : (this.staggerLines || 1) * this.len / e;\n\n if (!a) {\n b = d.style.width;\n if (void 0 !== b) return parseInt(String(b), 10);\n if (k) return k - c.spacing[3];\n }\n\n return .33 * c.chartWidth;\n };\n\n a.prototype.renderUnsquish = function () {\n var c = this.chart,\n a = c.renderer,\n d = this.tickPositions,\n g = this.ticks,\n e = this.options.labels,\n k = e.style,\n r = this.horiz,\n h = this.getSlotWidth(),\n q = Math.max(1, Math.round(h - 2 * e.padding)),\n f = {},\n x = this.labelMetrics(),\n l = k.textOverflow,\n D = 0;\n b(e.rotation) || (f.rotation = e.rotation || 0);\n d.forEach(function (b) {\n b = g[b];\n b.movedLabel && b.replaceMovedLabel();\n b && b.label && b.label.textPxLength > D && (D = b.label.textPxLength);\n });\n this.maxLabelLength = D;\n if (this.autoRotation) D > q && D > x.h ? f.rotation = this.labelRotation : this.labelRotation = 0;else if (h) {\n var n = q;\n\n if (!l) {\n var m = \"clip\";\n\n for (q = d.length; !r && q--;) {\n var p = d[q];\n if (p = g[p].label) p.styles && \"ellipsis\" === p.styles.textOverflow ? p.css({\n textOverflow: \"clip\"\n }) : p.textPxLength > h && p.css({\n width: h + \"px\"\n }), p.getBBox().height > this.len / d.length - (x.h - x.f) && (p.specificTextOverflow = \"ellipsis\");\n }\n }\n }\n f.rotation && (n = D > .5 * c.chartHeight ? .33 * c.chartHeight : D, l || (m = \"ellipsis\"));\n if (this.labelAlign = e.align || this.autoLabelAlign(this.labelRotation)) f.align = this.labelAlign;\n d.forEach(function (b) {\n var c = (b = g[b]) && b.label,\n a = k.width,\n d = {};\n c && (c.attr(f), b.shortenLabel ? b.shortenLabel() : n && !a && \"nowrap\" !== k.whiteSpace && (n < c.textPxLength || \"SPAN\" === c.element.tagName) ? (d.width = n + \"px\", l || (d.textOverflow = c.specificTextOverflow || m), c.css(d)) : c.styles && c.styles.width && !d.width && !a && c.css({\n width: null\n }), delete c.specificTextOverflow, b.rotation = f.rotation);\n }, this);\n this.tickRotCorr = a.rotCorr(x.b, this.labelRotation || 0, 0 !== this.side);\n };\n\n a.prototype.hasData = function () {\n return this.series.some(function (b) {\n return b.hasData();\n }) || this.options.showEmpty && n(this.min) && n(this.max);\n };\n\n a.prototype.addTitle = function (b) {\n var c = this.chart.renderer,\n a = this.horiz,\n d = this.opposite,\n g = this.options.title,\n e = this.chart.styledMode,\n k;\n this.axisTitle || ((k = g.textAlign) || (k = (a ? {\n low: \"left\",\n middle: \"center\",\n high: \"right\"\n } : {\n low: d ? \"right\" : \"left\",\n middle: \"center\",\n high: d ? \"left\" : \"right\"\n })[g.align]), this.axisTitle = c.text(g.text || \"\", 0, 0, g.useHTML).attr({\n zIndex: 7,\n rotation: g.rotation,\n align: k\n }).addClass(\"highcharts-axis-title\"), e || this.axisTitle.css(r(g.style)), this.axisTitle.add(this.axisGroup), this.axisTitle.isNew = !0);\n e || g.style.width || this.isRadial || this.axisTitle.css({\n width: this.len + \"px\"\n });\n this.axisTitle[b ? \"show\" : \"hide\"](b);\n };\n\n a.prototype.generateTick = function (b) {\n var c = this.ticks;\n c[b] ? c[b].addLabel() : c[b] = new I(this, b);\n };\n\n a.prototype.getOffset = function () {\n var b = this,\n c = this,\n a = c.chart,\n d = c.horiz,\n g = c.options,\n e = c.side,\n k = c.ticks,\n r = c.tickPositions,\n h = c.coll,\n f = c.axisParent,\n x = a.renderer,\n l = a.inverted && !c.isZAxis ? [1, 0, 3, 2][e] : e,\n m = c.hasData(),\n p = g.title,\n t = g.labels,\n A = a.axisOffset;\n a = a.clipOffset;\n var P = [-1, 1, 1, -1][e],\n w = g.className,\n y,\n v = 0,\n ja = 0,\n ca = 0;\n c.showAxis = y = m || g.showEmpty;\n c.staggerLines = c.horiz && t.staggerLines || void 0;\n\n if (!c.axisGroup) {\n var Q = function Q(c, a, d) {\n return x.g(c).attr({\n zIndex: d\n }).addClass(\"highcharts-\" + h.toLowerCase() + a + \" \" + (b.isRadial ? \"highcharts-radial-axis\" + a + \" \" : \"\") + (w || \"\")).add(f);\n };\n\n c.gridGroup = Q(\"grid\", \"-grid\", g.gridZIndex);\n c.axisGroup = Q(\"axis\", \"\", g.zIndex);\n c.labelGroup = Q(\"axis-labels\", \"-labels\", t.zIndex);\n }\n\n m || c.isLinked ? (r.forEach(function (b) {\n c.generateTick(b);\n }), c.renderUnsquish(), c.reserveSpaceDefault = 0 === e || 2 === e || {\n 1: \"left\",\n 3: \"right\"\n }[e] === c.labelAlign, K(t.reserveSpace, \"center\" === c.labelAlign ? !0 : null, c.reserveSpaceDefault) && r.forEach(function (b) {\n ca = Math.max(k[b].getLabelSize(), ca);\n }), c.staggerLines && (ca *= c.staggerLines), c.labelOffset = ca * (c.opposite ? -1 : 1)) : D(k, function (b, c) {\n b.destroy();\n delete k[c];\n });\n\n if (p && p.text && !1 !== p.enabled && (c.addTitle(y), y && !1 !== p.reserveSpace)) {\n c.titleOffset = v = c.axisTitle.getBBox()[d ? \"height\" : \"width\"];\n var O = p.offset;\n ja = n(O) ? 0 : K(p.margin, d ? 5 : 10);\n }\n\n c.renderLine();\n c.offset = P * K(g.offset, A[e] ? A[e] + (g.margin || 0) : 0);\n c.tickRotCorr = c.tickRotCorr || {\n x: 0,\n y: 0\n };\n p = 0 === e ? -c.labelMetrics().h : 2 === e ? c.tickRotCorr.y : 0;\n m = Math.abs(ca) + ja;\n ca && (m = m - p + P * (d ? K(t.y, c.tickRotCorr.y + 8 * P) : t.x));\n c.axisTitleMargin = K(O, m);\n c.getMaxLabelDimensions && (c.maxLabelDimensions = c.getMaxLabelDimensions(k, r));\n \"colorAxis\" !== h && (d = this.tickSize(\"tick\"), A[e] = Math.max(A[e], (c.axisTitleMargin || 0) + v + P * c.offset, m, r && r.length && d ? d[0] + P * c.offset : 0), g = !c.axisLine || g.offset ? 0 : 2 * Math.floor(c.axisLine.strokeWidth() / 2), a[l] = Math.max(a[l], g));\n q(this, \"afterGetOffset\");\n };\n\n a.prototype.getLinePath = function (b) {\n var c = this.chart,\n a = this.opposite,\n d = this.offset,\n g = this.horiz,\n e = this.left + (a ? this.width : 0) + d;\n d = c.chartHeight - this.bottom - (a ? this.height : 0) + d;\n a && (b *= -1);\n return c.renderer.crispLine([[\"M\", g ? this.left : e, g ? d : this.top], [\"L\", g ? c.chartWidth - this.right : e, g ? d : c.chartHeight - this.bottom]], b);\n };\n\n a.prototype.renderLine = function () {\n this.axisLine || (this.axisLine = this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup), this.chart.styledMode || this.axisLine.attr({\n stroke: this.options.lineColor,\n \"stroke-width\": this.options.lineWidth,\n zIndex: 7\n }));\n };\n\n a.prototype.getTitlePosition = function () {\n var b = this.horiz,\n c = this.left,\n a = this.top,\n d = this.len,\n g = this.options.title,\n e = b ? c : a,\n k = this.opposite,\n r = this.offset,\n h = g.x,\n f = g.y,\n x = this.axisTitle,\n l = this.chart.renderer.fontMetrics(g.style.fontSize, x);\n x = Math.max(x.getBBox(null, 0).height - l.h - 1, 0);\n d = {\n low: e + (b ? 0 : d),\n middle: e + d / 2,\n high: e + (b ? d : 0)\n }[g.align];\n c = (b ? a + this.height : c) + (b ? 1 : -1) * (k ? -1 : 1) * this.axisTitleMargin + [-x, x, l.f, -x][this.side];\n b = {\n x: b ? d + h : c + (k ? this.width : 0) + r + h,\n y: b ? c + f - (k ? this.height : 0) + r : d + f\n };\n q(this, \"afterGetTitlePosition\", {\n titlePosition: b\n });\n return b;\n };\n\n a.prototype.renderMinorTick = function (b, c) {\n var a = this.minorTicks;\n a[b] || (a[b] = new I(this, b, \"minor\"));\n c && a[b].isNew && a[b].render(null, !0);\n a[b].render(null, !1, 1);\n };\n\n a.prototype.renderTick = function (b, c, a) {\n var d = this.ticks;\n if (!this.isLinked || b >= this.min && b <= this.max || this.grid && this.grid.isColumn) d[b] || (d[b] = new I(this, b)), a && d[b].isNew && d[b].render(c, !0, -1), d[b].render(c);\n };\n\n a.prototype.render = function () {\n var b = this,\n c = b.chart,\n a = b.logarithmic,\n d = b.options,\n e = b.isLinked,\n k = b.tickPositions,\n r = b.axisTitle,\n h = b.ticks,\n f = b.minorTicks,\n x = b.alternateBands,\n l = d.stackLabels,\n n = d.alternateGridColor,\n m = b.tickmarkOffset,\n p = b.axisLine,\n t = b.showAxis,\n K = z(c.renderer.globalAnimation),\n A,\n P;\n b.labelEdge.length = 0;\n b.overlap = !1;\n [h, f, x].forEach(function (b) {\n D(b, function (b) {\n b.isActive = !1;\n });\n });\n\n if (b.hasData() || e) {\n var w = b.chart.hasRendered && b.old && g(b.old.min);\n b.minorTickInterval && !b.categories && b.getMinorTickPositions().forEach(function (c) {\n b.renderMinorTick(c, w);\n });\n k.length && (k.forEach(function (c, a) {\n b.renderTick(c, a, w);\n }), m && (0 === b.min || b.single) && (h[-1] || (h[-1] = new I(b, -1, null, !0)), h[-1].render(-1)));\n n && k.forEach(function (d, g) {\n P = \"undefined\" !== typeof k[g + 1] ? k[g + 1] + m : b.max - m;\n 0 === g % 2 && d < b.max && P <= b.max + (c.polar ? -m : m) && (x[d] || (x[d] = new H.PlotLineOrBand(b)), A = d + m, x[d].options = {\n from: a ? a.lin2log(A) : A,\n to: a ? a.lin2log(P) : P,\n color: n,\n className: \"highcharts-alternate-grid\"\n }, x[d].render(), x[d].isActive = !0);\n });\n b._addedPlotLB || (b._addedPlotLB = !0, (d.plotLines || []).concat(d.plotBands || []).forEach(function (c) {\n b.addPlotBandOrLine(c);\n }));\n }\n\n [h, f, x].forEach(function (b) {\n var a = [],\n d = K.duration;\n D(b, function (b, c) {\n b.isActive || (b.render(c, !1, 0), b.isActive = !1, a.push(c));\n });\n W(function () {\n for (var c = a.length; c--;) {\n b[a[c]] && !b[a[c]].isActive && (b[a[c]].destroy(), delete b[a[c]]);\n }\n }, b !== x && c.hasRendered && d ? d : 0);\n });\n p && (p[p.isPlaced ? \"animate\" : \"attr\"]({\n d: this.getLinePath(p.strokeWidth())\n }), p.isPlaced = !0, p[t ? \"show\" : \"hide\"](t));\n r && t && (d = b.getTitlePosition(), g(d.y) ? (r[r.isNew ? \"attr\" : \"animate\"](d), r.isNew = !1) : (r.attr(\"y\", -9999), r.isNew = !0));\n l && l.enabled && b.stacking && b.stacking.renderStackTotals();\n b.old = {\n len: b.len,\n max: b.max,\n min: b.min,\n transA: b.transA,\n userMax: b.userMax,\n userMin: b.userMin\n };\n b.isDirty = !1;\n q(this, \"afterRender\");\n };\n\n a.prototype.redraw = function () {\n this.visible && (this.render(), this.plotLinesAndBands.forEach(function (b) {\n b.render();\n }));\n this.series.forEach(function (b) {\n b.isDirty = !0;\n });\n };\n\n a.prototype.getKeepProps = function () {\n return this.keepProps || a.keepProps;\n };\n\n a.prototype.destroy = function (b) {\n var c = this,\n a = c.plotLinesAndBands,\n d = this.eventOptions;\n q(this, \"destroy\", {\n keepEvents: b\n });\n b || Q(c);\n [c.ticks, c.minorTicks, c.alternateBands].forEach(function (b) {\n v(b);\n });\n if (a) for (b = a.length; b--;) {\n a[b].destroy();\n }\n \"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function (b) {\n c[b] && (c[b] = c[b].destroy());\n });\n\n for (var g in c.plotLinesAndBandsGroups) {\n c.plotLinesAndBandsGroups[g] = c.plotLinesAndBandsGroups[g].destroy();\n }\n\n D(c, function (b, a) {\n -1 === c.getKeepProps().indexOf(a) && delete c[a];\n });\n this.eventOptions = d;\n };\n\n a.prototype.drawCrosshair = function (b, c) {\n var a = this.crosshair,\n d = K(a && a.snap, !0),\n g = this.chart,\n e,\n k = this.cross;\n q(this, \"drawCrosshair\", {\n e: b,\n point: c\n });\n b || (b = this.cross && this.cross.e);\n\n if (a && !1 !== (n(c) || !d)) {\n d ? n(c) && (e = K(\"colorAxis\" !== this.coll ? c.crosshairPos : null, this.isXAxis ? c.plotX : this.len - c.plotY)) : e = b && (this.horiz ? b.chartX - this.pos : this.len - b.chartY + this.pos);\n\n if (n(e)) {\n var r = {\n value: c && (this.isXAxis ? c.x : K(c.stackY, c.y)),\n translatedValue: e\n };\n g.polar && A(r, {\n isCrosshair: !0,\n chartX: b && b.chartX,\n chartY: b && b.chartY,\n point: c\n });\n r = this.getPlotLinePath(r) || null;\n }\n\n if (!n(r)) {\n this.hideCrosshair();\n return;\n }\n\n d = this.categories && !this.isRadial;\n k || (this.cross = k = g.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\" + (d ? \"category \" : \"thin \") + (a.className || \"\")).attr({\n zIndex: K(a.zIndex, 2)\n }).add(), g.styledMode || (k.attr({\n stroke: a.color || (d ? C.parse(\"#ccd6eb\").setOpacity(.25).get() : \"#cccccc\"),\n \"stroke-width\": K(a.width, 1)\n }).css({\n \"pointer-events\": \"none\"\n }), a.dashStyle && k.attr({\n dashstyle: a.dashStyle\n })));\n k.show().attr({\n d: r\n });\n d && !a.width && k.attr({\n \"stroke-width\": this.transA\n });\n this.cross.e = b;\n } else this.hideCrosshair();\n\n q(this, \"afterDrawCrosshair\", {\n e: b,\n point: c\n });\n };\n\n a.prototype.hideCrosshair = function () {\n this.cross && this.cross.hide();\n q(this, \"afterHideCrosshair\");\n };\n\n a.prototype.hasVerticalPanning = function () {\n var b = this.chart.options.chart.panning;\n return !!(b && b.enabled && /y/.test(b.type));\n };\n\n a.prototype.validatePositiveValue = function (b) {\n return g(b) && 0 < b;\n };\n\n a.prototype.update = function (b, c) {\n var a = this.chart;\n b = r(this.userOptions, b);\n this.destroy(!0);\n this.init(a, b);\n a.isDirtyBox = !0;\n K(c, !0) && a.redraw();\n };\n\n a.prototype.remove = function (b) {\n for (var c = this.chart, a = this.coll, d = this.series, g = d.length; g--;) {\n d[g] && d[g].remove(!1);\n }\n\n w(c.axes, this);\n w(c[a], this);\n c[a].forEach(function (b, c) {\n b.options.index = b.userOptions.index = c;\n });\n this.destroy();\n c.isDirtyBox = !0;\n K(b, !0) && c.redraw();\n };\n\n a.prototype.setTitle = function (b, c) {\n this.update({\n title: b\n }, c);\n };\n\n a.prototype.setCategories = function (b, c) {\n this.update({\n categories: b\n }, c);\n };\n\n a.defaultOptions = f.defaultXAxisOptions;\n a.keepProps = \"extKey hcEvents names series userMax userMin\".split(\" \");\n return a;\n }();\n\n \"\";\n return a;\n });\n M(f, \"Core/Axis/DateTimeAxis.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.addEvent,\n C = a.getMagnitude,\n G = a.normalizeTickInterval,\n u = a.timeUnits,\n H;\n\n (function (a) {\n function B() {\n return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);\n }\n\n function z(a) {\n \"datetime\" !== a.userOptions.type ? this.dateTime = void 0 : this.dateTime || (this.dateTime = new m(this));\n }\n\n var p = [];\n\n a.compose = function (a) {\n -1 === p.indexOf(a) && (p.push(a), a.keepProps.push(\"dateTime\"), a.prototype.getTimeTicks = B, f(a, \"init\", z));\n return a;\n };\n\n var m = function () {\n function a(a) {\n this.axis = a;\n }\n\n a.prototype.normalizeTimeTickInterval = function (a, e) {\n var d = e || [[\"millisecond\", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], [\"second\", [1, 2, 5, 10, 15, 30]], [\"minute\", [1, 2, 5, 10, 15, 30]], [\"hour\", [1, 2, 3, 4, 6, 8, 12]], [\"day\", [1, 2]], [\"week\", [1, 2]], [\"month\", [1, 2, 3, 4, 6]], [\"year\", null]];\n e = d[d.length - 1];\n var f = u[e[0]],\n l = e[1],\n m;\n\n for (m = 0; m < d.length && !(e = d[m], f = u[e[0]], l = e[1], d[m + 1] && a <= (f * l[l.length - 1] + u[d[m + 1][0]]) / 2); m++) {\n ;\n }\n\n f === u.year && a < 5 * f && (l = [1, 2, 5]);\n a = G(a / f, l, \"year\" === e[0] ? Math.max(C(a / f), 1) : 1);\n return {\n unitRange: f,\n count: a,\n unitName: e[0]\n };\n };\n\n a.prototype.getXDateFormat = function (a, e) {\n var d = this.axis;\n return d.closestPointRange ? d.chart.time.getDateFormat(d.closestPointRange, a, d.options.startOfWeek, e) || e.year : e.day;\n };\n\n return a;\n }();\n\n a.Additions = m;\n })(H || (H = {}));\n\n return H;\n });\n M(f, \"Core/Axis/LogarithmicAxis.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.addEvent,\n C = a.getMagnitude,\n G = a.normalizeTickInterval,\n u = a.pick,\n H;\n\n (function (a) {\n function B(a) {\n var d = this.logarithmic;\n \"logarithmic\" !== a.userOptions.type ? this.logarithmic = void 0 : d || (this.logarithmic = new m(this));\n }\n\n function z() {\n var a = this.logarithmic;\n a && (this.lin2val = function (d) {\n return a.lin2log(d);\n }, this.val2lin = function (d) {\n return a.log2lin(d);\n });\n }\n\n var p = [];\n\n a.compose = function (a) {\n -1 === p.indexOf(a) && (p.push(a), a.keepProps.push(\"logarithmic\"), f(a, \"init\", B), f(a, \"afterInit\", z));\n return a;\n };\n\n var m = function () {\n function a(a) {\n this.axis = a;\n }\n\n a.prototype.getLogTickPositions = function (a, e, h, f) {\n var d = this.axis,\n l = d.len,\n m = d.options,\n p = [];\n f || (this.minorAutoInterval = void 0);\n if (.5 <= a) a = Math.round(a), p = d.getLinearTickPositions(a, e, h);else if (.08 <= a) {\n var t = Math.floor(e),\n q,\n k = m = void 0;\n\n for (l = .3 < a ? [1, 2, 4] : .15 < a ? [1, 2, 4, 6, 8] : [1, 2, 3, 4, 5, 6, 7, 8, 9]; t < h + 1 && !k; t++) {\n var c = l.length;\n\n for (q = 0; q < c && !k; q++) {\n var g = this.log2lin(this.lin2log(t) * l[q]);\n g > e && (!f || m <= h) && \"undefined\" !== typeof m && p.push(m);\n m > h && (k = !0);\n m = g;\n }\n }\n } else e = this.lin2log(e), h = this.lin2log(h), a = f ? d.getMinorTickInterval() : m.tickInterval, a = u(\"auto\" === a ? null : a, this.minorAutoInterval, m.tickPixelInterval / (f ? 5 : 1) * (h - e) / ((f ? l / d.tickPositions.length : l) || 1)), a = G(a, void 0, C(a)), p = d.getLinearTickPositions(a, e, h).map(this.log2lin), f || (this.minorAutoInterval = a / 5);\n f || (d.tickInterval = a);\n return p;\n };\n\n a.prototype.lin2log = function (a) {\n return Math.pow(10, a);\n };\n\n a.prototype.log2lin = function (a) {\n return Math.log(a) / Math.LN10;\n };\n\n return a;\n }();\n\n a.Additions = m;\n })(H || (H = {}));\n\n return H;\n });\n M(f, \"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.erase,\n C = a.extend,\n G = a.isNumber,\n u;\n\n (function (a) {\n var u = [],\n B;\n\n a.compose = function (a, f) {\n B || (B = a);\n -1 === u.indexOf(f) && (u.push(f), C(f.prototype, z.prototype));\n return f;\n };\n\n var z = function () {\n function a() {}\n\n a.prototype.getPlotBandPath = function (a, e, d) {\n void 0 === d && (d = this.options);\n var f = this.getPlotLinePath({\n value: e,\n force: !0,\n acrossPanes: d.acrossPanes\n }),\n h = [],\n m = this.horiz;\n e = !G(this.min) || !G(this.max) || a < this.min && e < this.min || a > this.max && e > this.max;\n a = this.getPlotLinePath({\n value: a,\n force: !0,\n acrossPanes: d.acrossPanes\n });\n d = 1;\n\n if (a && f) {\n if (e) {\n var n = a.toString() === f.toString();\n d = 0;\n }\n\n for (e = 0; e < a.length; e += 2) {\n var p = a[e],\n w = a[e + 1],\n y = f[e],\n A = f[e + 1];\n \"M\" !== p[0] && \"L\" !== p[0] || \"M\" !== w[0] && \"L\" !== w[0] || \"M\" !== y[0] && \"L\" !== y[0] || \"M\" !== A[0] && \"L\" !== A[0] || (m && y[1] === p[1] ? (y[1] += d, A[1] += d) : m || y[2] !== p[2] || (y[2] += d, A[2] += d), h.push([\"M\", p[1], p[2]], [\"L\", w[1], w[2]], [\"L\", A[1], A[2]], [\"L\", y[1], y[2]], [\"Z\"]));\n h.isFlat = n;\n }\n }\n\n return h;\n };\n\n a.prototype.addPlotBand = function (a) {\n return this.addPlotBandOrLine(a, \"plotBands\");\n };\n\n a.prototype.addPlotLine = function (a) {\n return this.addPlotBandOrLine(a, \"plotLines\");\n };\n\n a.prototype.addPlotBandOrLine = function (a, e) {\n var d = this,\n f = this.userOptions,\n h = new B(this, a);\n this.visible && (h = h.render());\n\n if (h) {\n this._addedPlotLB || (this._addedPlotLB = !0, (f.plotLines || []).concat(f.plotBands || []).forEach(function (a) {\n d.addPlotBandOrLine(a);\n }));\n\n if (e) {\n var m = f[e] || [];\n m.push(a);\n f[e] = m;\n }\n\n this.plotLinesAndBands.push(h);\n }\n\n return h;\n };\n\n a.prototype.removePlotBandOrLine = function (a) {\n var e = this.plotLinesAndBands,\n d = this.options,\n l = this.userOptions;\n\n if (e) {\n for (var h = e.length; h--;) {\n e[h].id === a && e[h].destroy();\n }\n\n [d.plotLines || [], l.plotLines || [], d.plotBands || [], l.plotBands || []].forEach(function (d) {\n for (h = d.length; h--;) {\n (d[h] || {}).id === a && f(d, d[h]);\n }\n });\n }\n };\n\n a.prototype.removePlotBand = function (a) {\n this.removePlotBandOrLine(a);\n };\n\n a.prototype.removePlotLine = function (a) {\n this.removePlotBandOrLine(a);\n };\n\n return a;\n }();\n })(u || (u = {}));\n\n return u;\n });\n M(f, \"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\", [f[\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = f.arrayMax,\n G = f.arrayMin,\n u = f.defined,\n H = f.destroyObjectProperties,\n I = f.erase,\n B = f.fireEvent,\n z = f.merge,\n p = f.objectEach,\n m = f.pick;\n\n f = function () {\n function e(a, e) {\n this.axis = a;\n e && (this.options = e, this.id = e.id);\n }\n\n e.compose = function (d) {\n return a.compose(e, d);\n };\n\n e.prototype.render = function () {\n B(this, \"render\");\n var a = this,\n e = a.axis,\n f = e.horiz,\n t = e.logarithmic,\n n = a.options,\n v = n.color,\n w = m(n.zIndex, 0),\n y = n.events,\n A = {},\n q = e.chart.renderer,\n k = n.label,\n c = a.label,\n g = n.to,\n b = n.from,\n r = n.value,\n x = a.svgElem,\n D = [],\n K = u(b) && u(g);\n D = u(r);\n var P = !x,\n Q = {\n \"class\": \"highcharts-plot-\" + (K ? \"band \" : \"line \") + (n.className || \"\")\n },\n O = K ? \"bands\" : \"lines\";\n t && (b = t.log2lin(b), g = t.log2lin(g), r = t.log2lin(r));\n e.chart.styledMode || (D ? (Q.stroke = v || \"#999999\", Q[\"stroke-width\"] = m(n.width, 1), n.dashStyle && (Q.dashstyle = n.dashStyle)) : K && (Q.fill = v || \"#e6ebf5\", n.borderWidth && (Q.stroke = n.borderColor, Q[\"stroke-width\"] = n.borderWidth)));\n A.zIndex = w;\n O += \"-\" + w;\n (t = e.plotLinesAndBandsGroups[O]) || (e.plotLinesAndBandsGroups[O] = t = q.g(\"plot-\" + O).attr(A).add());\n P && (a.svgElem = x = q.path().attr(Q).add(t));\n if (D) D = e.getPlotLinePath({\n value: r,\n lineWidth: x.strokeWidth(),\n acrossPanes: n.acrossPanes\n });else if (K) D = e.getPlotBandPath(b, g, n);else return;\n !a.eventsAdded && y && (p(y, function (b, c) {\n x.on(c, function (b) {\n y[c].apply(a, [b]);\n });\n }), a.eventsAdded = !0);\n (P || !x.d) && D && D.length ? x.attr({\n d: D\n }) : x && (D ? (x.show(!0), x.animate({\n d: D\n })) : x.d && (x.hide(), c && (a.label = c = c.destroy())));\n k && (u(k.text) || u(k.formatter)) && D && D.length && 0 < e.width && 0 < e.height && !D.isFlat ? (k = z({\n align: f && K && \"center\",\n x: f ? !K && 4 : 10,\n verticalAlign: !f && K && \"middle\",\n y: f ? K ? 16 : 10 : K ? 6 : -4,\n rotation: f && !K && 90\n }, k), this.renderLabel(k, D, K, w)) : c && c.hide();\n return a;\n };\n\n e.prototype.renderLabel = function (a, e, f, m) {\n var d = this.axis,\n h = d.chart.renderer,\n l = this.label;\n l || (this.label = l = h.text(this.getLabelText(a), 0, 0, a.useHTML).attr({\n align: a.textAlign || a.align,\n rotation: a.rotation,\n \"class\": \"highcharts-plot-\" + (f ? \"band\" : \"line\") + \"-label \" + (a.className || \"\"),\n zIndex: m\n }).add(), d.chart.styledMode || l.css(z({\n textOverflow: \"ellipsis\"\n }, a.style)));\n m = e.xBounds || [e[0][1], e[1][1], f ? e[2][1] : e[0][1]];\n e = e.yBounds || [e[0][2], e[1][2], f ? e[2][2] : e[0][2]];\n f = G(m);\n h = G(e);\n l.align(a, !1, {\n x: f,\n y: h,\n width: F(m) - f,\n height: F(e) - h\n });\n l.alignValue && \"left\" !== l.alignValue || l.css({\n width: (90 === l.rotation ? d.height - (l.alignAttr.y - d.top) : d.width - (l.alignAttr.x - d.left)) + \"px\"\n });\n l.show(!0);\n };\n\n e.prototype.getLabelText = function (a) {\n return u(a.formatter) ? a.formatter.call(this) : a.text;\n };\n\n e.prototype.destroy = function () {\n I(this.axis.plotLinesAndBands, this);\n delete this.axis;\n H(this);\n };\n\n return e;\n }();\n\n \"\";\n \"\";\n return f;\n });\n M(f, \"Core/Tooltip.js\", [f[\"Core/FormatUtilities.js\"], f[\"Core/Globals.js\"], f[\"Core/Renderer/RendererUtilities.js\"], f[\"Core/Renderer/RendererRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u) {\n var F = a.format,\n I = f.doc,\n B = C.distribute,\n z = u.addEvent,\n p = u.clamp,\n m = u.css,\n e = u.defined,\n d = u.discardElement,\n l = u.extend,\n h = u.fireEvent,\n t = u.isArray,\n n = u.isNumber,\n v = u.isString,\n w = u.merge,\n y = u.pick,\n A = u.splat,\n q = u.syncTimeout;\n\n a = function () {\n function a(c, a) {\n this.allowShared = !0;\n this.container = void 0;\n this.crosshairs = [];\n this.distance = 0;\n this.isHidden = !0;\n this.isSticky = !1;\n this.now = {};\n this.options = {};\n this.outside = !1;\n this.chart = c;\n this.init(c, a);\n }\n\n a.prototype.applyFilter = function () {\n var c = this.chart;\n c.renderer.definition({\n tagName: \"filter\",\n attributes: {\n id: \"drop-shadow-\" + c.index,\n opacity: .5\n },\n children: [{\n tagName: \"feGaussianBlur\",\n attributes: {\n \"in\": \"SourceAlpha\",\n stdDeviation: 1\n }\n }, {\n tagName: \"feOffset\",\n attributes: {\n dx: 1,\n dy: 1\n }\n }, {\n tagName: \"feComponentTransfer\",\n children: [{\n tagName: \"feFuncA\",\n attributes: {\n type: \"linear\",\n slope: .3\n }\n }]\n }, {\n tagName: \"feMerge\",\n children: [{\n tagName: \"feMergeNode\"\n }, {\n tagName: \"feMergeNode\",\n attributes: {\n \"in\": \"SourceGraphic\"\n }\n }]\n }]\n });\n };\n\n a.prototype.bodyFormatter = function (c) {\n return c.map(function (c) {\n var b = c.series.tooltipOptions;\n return (b[(c.point.formatPrefix || \"point\") + \"Formatter\"] || c.point.tooltipFormatter).call(c.point, b[(c.point.formatPrefix || \"point\") + \"Format\"] || \"\");\n });\n };\n\n a.prototype.cleanSplit = function (c) {\n this.chart.series.forEach(function (a) {\n var b = a && a.tt;\n b && (!b.isActive || c ? a.tt = b.destroy() : b.isActive = !1);\n });\n };\n\n a.prototype.defaultFormatter = function (c) {\n var a = this.points || A(this);\n var b = [c.tooltipFooterHeaderFormatter(a[0])];\n b = b.concat(c.bodyFormatter(a));\n b.push(c.tooltipFooterHeaderFormatter(a[0], !0));\n return b;\n };\n\n a.prototype.destroy = function () {\n this.label && (this.label = this.label.destroy());\n this.split && this.tt && (this.cleanSplit(!0), this.tt = this.tt.destroy());\n this.renderer && (this.renderer = this.renderer.destroy(), d(this.container));\n u.clearTimeout(this.hideTimer);\n u.clearTimeout(this.tooltipTimeout);\n };\n\n a.prototype.getAnchor = function (c, a) {\n var b = this.chart,\n d = b.pointer,\n g = b.inverted,\n e = b.plotTop,\n k = b.plotLeft,\n f,\n h,\n q = 0,\n l = 0;\n c = A(c);\n this.followPointer && a ? (\"undefined\" === typeof a.chartX && (a = d.normalize(a)), d = [a.chartX - k, a.chartY - e]) : c[0].tooltipPos ? d = c[0].tooltipPos : (c.forEach(function (c) {\n f = c.series.yAxis;\n h = c.series.xAxis;\n q += c.plotX || 0;\n l += c.plotLow ? (c.plotLow + (c.plotHigh || 0)) / 2 : c.plotY || 0;\n h && f && (g ? (q += e + b.plotHeight - h.len - h.pos, l += k + b.plotWidth - f.len - f.pos) : (q += h.pos - k, l += f.pos - e));\n }), q /= c.length, l /= c.length, d = [g ? b.plotWidth - l : q, g ? b.plotHeight - q : l], this.shared && 1 < c.length && a && (g ? d[0] = a.chartX - k : d[1] = a.chartY - e));\n return d.map(Math.round);\n };\n\n a.prototype.getLabel = function () {\n var c = this,\n a = this.chart.styledMode,\n b = this.options,\n d = this.split && this.allowShared,\n k = \"tooltip\" + (e(b.className) ? \" \" + b.className : \"\"),\n h = b.style.pointerEvents || (!this.followPointer && b.stickOnContact ? \"auto\" : \"none\"),\n q = function q() {\n c.inContact = !0;\n },\n l = function l(b) {\n var a = c.chart.hoverSeries;\n c.inContact = c.shouldStickOnContact() && c.chart.pointer.inClass(b.relatedTarget, \"highcharts-tooltip\");\n if (!c.inContact && a && a.onMouseOut) a.onMouseOut();\n },\n n,\n p = this.chart.renderer;\n\n if (c.label) {\n var t = !c.label.hasClass(\"highcharts-label\");\n (d && !t || !d && t) && c.destroy();\n }\n\n if (!this.label) {\n if (this.outside) {\n t = this.chart.options.chart.style;\n var A = G.getRendererType();\n this.container = n = f.doc.createElement(\"div\");\n n.className = \"highcharts-tooltip-container\";\n m(n, {\n position: \"absolute\",\n top: \"1px\",\n pointerEvents: h,\n zIndex: Math.max(this.options.style.zIndex || 0, (t && t.zIndex || 0) + 3)\n });\n z(n, \"mouseenter\", q);\n z(n, \"mouseleave\", l);\n f.doc.body.appendChild(n);\n this.renderer = p = new A(n, 0, 0, t, void 0, void 0, p.styledMode);\n }\n\n d ? this.label = p.g(k) : (this.label = p.label(\"\", 0, 0, b.shape, void 0, void 0, b.useHTML, void 0, k).attr({\n padding: b.padding,\n r: b.borderRadius\n }), a || this.label.attr({\n fill: b.backgroundColor,\n \"stroke-width\": b.borderWidth\n }).css(b.style).css({\n pointerEvents: h\n }).shadow(b.shadow));\n a && b.shadow && (this.applyFilter(), this.label.attr({\n filter: \"url(#drop-shadow-\" + this.chart.index + \")\"\n }));\n\n if (c.outside && !c.split) {\n var w = this.label,\n y = w.xSetter,\n v = w.ySetter;\n\n w.xSetter = function (b) {\n y.call(w, c.distance);\n n.style.left = b + \"px\";\n };\n\n w.ySetter = function (b) {\n v.call(w, c.distance);\n n.style.top = b + \"px\";\n };\n }\n\n this.label.on(\"mouseenter\", q).on(\"mouseleave\", l).attr({\n zIndex: 8\n }).add();\n }\n\n return this.label;\n };\n\n a.prototype.getPosition = function (c, a, b) {\n var d = this.chart,\n g = this.distance,\n e = {},\n k = d.inverted && b.h || 0,\n f = this.outside,\n h = f ? I.documentElement.clientWidth - 2 * g : d.chartWidth,\n q = f ? Math.max(I.body.scrollHeight, I.documentElement.scrollHeight, I.body.offsetHeight, I.documentElement.offsetHeight, I.documentElement.clientHeight) : d.chartHeight,\n l = d.pointer.getChartPosition(),\n m = function m(e) {\n var k = \"x\" === e;\n return [e, k ? h : q, k ? c : a].concat(f ? [k ? c * l.scaleX : a * l.scaleY, k ? l.left - g + (b.plotX + d.plotLeft) * l.scaleX : l.top - g + (b.plotY + d.plotTop) * l.scaleY, 0, k ? h : q] : [k ? c : a, k ? b.plotX + d.plotLeft : b.plotY + d.plotTop, k ? d.plotLeft : d.plotTop, k ? d.plotLeft + d.plotWidth : d.plotTop + d.plotHeight]);\n },\n n = m(\"y\"),\n p = m(\"x\"),\n t;\n\n m = !!b.negative;\n !d.polar && d.hoverSeries && d.hoverSeries.yAxis && d.hoverSeries.yAxis.reversed && (m = !m);\n\n var A = !this.followPointer && y(b.ttBelow, !d.inverted === m),\n w = function w(b, c, a, d, r, h, q) {\n var x = f ? \"y\" === b ? g * l.scaleY : g * l.scaleX : g,\n m = (a - d) / 2,\n E = d < r - g,\n n = r + g + d < c,\n D = r - x - a + m;\n r = r + x - m;\n if (A && n) e[b] = r;else if (!A && E) e[b] = D;else if (E) e[b] = Math.min(q - d, 0 > D - k ? D : D - k);else if (n) e[b] = Math.max(h, r + k + a > c ? r : r + k);else return !1;\n },\n v = function v(b, c, a, d, k) {\n var r;\n k < g || k > c - g ? r = !1 : e[b] = k < a / 2 ? 1 : k > c - d / 2 ? c - d - 2 : k - a / 2;\n return r;\n },\n E = function E(b) {\n var c = n;\n n = p;\n p = c;\n t = b;\n },\n T = function T() {\n !1 !== w.apply(0, n) ? !1 !== v.apply(0, p) || t || (E(!0), T()) : t ? e.x = e.y = 0 : (E(!0), T());\n };\n\n (d.inverted || 1 < this.len) && E();\n T();\n return e;\n };\n\n a.prototype.hide = function (c) {\n var a = this;\n u.clearTimeout(this.hideTimer);\n c = y(c, this.options.hideDelay);\n this.isHidden || (this.hideTimer = q(function () {\n a.getLabel().fadeOut(c ? void 0 : c);\n a.isHidden = !0;\n }, c));\n };\n\n a.prototype.init = function (c, a) {\n this.chart = c;\n this.options = a;\n this.crosshairs = [];\n this.now = {\n x: 0,\n y: 0\n };\n this.isHidden = !0;\n this.split = a.split && !c.inverted && !c.polar;\n this.shared = a.shared || this.split;\n this.outside = y(a.outside, !(!c.scrollablePixelsX && !c.scrollablePixelsY));\n };\n\n a.prototype.shouldStickOnContact = function () {\n return !(this.followPointer || !this.options.stickOnContact);\n };\n\n a.prototype.isStickyOnContact = function () {\n return !(!this.shouldStickOnContact() || !this.inContact);\n };\n\n a.prototype.move = function (c, a, b, d) {\n var g = this,\n e = g.now,\n k = !1 !== g.options.animation && !g.isHidden && (1 < Math.abs(c - e.x) || 1 < Math.abs(a - e.y)),\n r = g.followPointer || 1 < g.len;\n l(e, {\n x: k ? (2 * e.x + c) / 3 : c,\n y: k ? (e.y + a) / 2 : a,\n anchorX: r ? void 0 : k ? (2 * e.anchorX + b) / 3 : b,\n anchorY: r ? void 0 : k ? (e.anchorY + d) / 2 : d\n });\n g.getLabel().attr(e);\n g.drawTracker();\n k && (u.clearTimeout(this.tooltipTimeout), this.tooltipTimeout = setTimeout(function () {\n g && g.move(c, a, b, d);\n }, 32));\n };\n\n a.prototype.refresh = function (c, a) {\n var b = this.chart,\n d = this.options,\n g = A(c),\n e = g[0],\n k = [],\n f = d.formatter || this.defaultFormatter,\n q = this.shared,\n l = b.styledMode,\n m = {};\n\n if (d.enabled && e.series) {\n u.clearTimeout(this.hideTimer);\n this.allowShared = !(!t(c) && c.series && c.series.noSharedTooltip);\n this.followPointer = !this.split && e.series.tooltipOptions.followPointer;\n c = this.getAnchor(c, a);\n var n = c[0],\n p = c[1];\n q && this.allowShared ? (b.pointer.applyInactiveState(g), g.forEach(function (b) {\n b.setState(\"hover\");\n k.push(b.getLabelConfig());\n }), m = {\n x: e.category,\n y: e.y\n }, m.points = k) : m = e.getLabelConfig();\n this.len = k.length;\n f = f.call(m, this);\n q = e.series;\n this.distance = y(q.tooltipOptions.distance, 16);\n if (!1 === f) this.hide();else {\n if (this.split && this.allowShared) this.renderSplit(f, g);else {\n var w = n,\n v = p;\n a && b.pointer.isDirectTouch && (w = a.chartX - b.plotLeft, v = a.chartY - b.plotTop);\n if (b.polar || !1 === q.options.clip || g.some(function (b) {\n return b.series.shouldShowTooltip(w, v);\n })) a = this.getLabel(), d.style.width && !l || a.css({\n width: this.chart.spacingBox.width + \"px\"\n }), a.attr({\n text: f && f.join ? f.join(\"\") : f\n }), a.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\" + y(e.colorIndex, q.colorIndex)), l || a.attr({\n stroke: d.borderColor || e.color || q.color || \"#666666\"\n }), this.updatePosition({\n plotX: n,\n plotY: p,\n negative: e.negative,\n ttBelow: e.ttBelow,\n h: c[2] || 0\n });else {\n this.hide();\n return;\n }\n }\n this.isHidden && this.label && this.label.attr({\n opacity: 1\n }).show();\n this.isHidden = !1;\n }\n h(this, \"refresh\");\n }\n };\n\n a.prototype.renderSplit = function (c, a) {\n function b(b, c, a, g, e) {\n void 0 === e && (e = !0);\n a ? (c = X ? 0 : H, b = p(b - g / 2, N.left, N.right - g - (d.outside ? S : 0))) : (c -= C, b = e ? b - g - F : b + F, b = p(b, e ? b : N.left, N.right));\n return {\n x: b,\n y: c\n };\n }\n\n var d = this,\n g = d.chart,\n e = d.chart,\n k = e.chartWidth,\n f = e.chartHeight,\n h = e.plotHeight,\n q = e.plotLeft,\n m = e.plotTop,\n n = e.pointer,\n t = e.scrollablePixelsY;\n t = void 0 === t ? 0 : t;\n var A = e.scrollablePixelsX,\n w = e.scrollingContainer;\n w = void 0 === w ? {\n scrollLeft: 0,\n scrollTop: 0\n } : w;\n var z = w.scrollLeft;\n w = w.scrollTop;\n var u = e.styledMode,\n F = d.distance,\n E = d.options,\n T = d.options.positioner,\n N = d.outside && \"number\" !== typeof A ? I.documentElement.getBoundingClientRect() : {\n left: z,\n right: z + k,\n top: w,\n bottom: w + f\n },\n U = d.getLabel(),\n V = this.renderer || g.renderer,\n X = !(!g.xAxis[0] || !g.xAxis[0].opposite);\n g = n.getChartPosition();\n var S = g.left;\n g = g.top;\n var C = m + w,\n aa = 0,\n H = h - t;\n v(c) && (c = [!1, c]);\n c = c.slice(0, a.length + 1).reduce(function (c, g, e) {\n if (!1 !== g && \"\" !== g) {\n e = a[e - 1] || {\n isHeader: !0,\n plotX: a[0].plotX,\n plotY: h,\n series: {}\n };\n var k = e.isHeader,\n f = k ? d : e.series;\n g = g.toString();\n var r = f.tt,\n l = e.isHeader;\n var x = e.series;\n var n = \"highcharts-color-\" + y(e.colorIndex, x.colorIndex, \"none\");\n r || (r = {\n padding: E.padding,\n r: E.borderRadius\n }, u || (r.fill = E.backgroundColor, r[\"stroke-width\"] = E.borderWidth), r = V.label(\"\", 0, 0, E[l ? \"headerShape\" : \"shape\"], void 0, void 0, E.useHTML).addClass((l ? \"highcharts-tooltip-header \" : \"\") + \"highcharts-tooltip-box \" + n).attr(r).add(U));\n r.isActive = !0;\n r.attr({\n text: g\n });\n u || r.css(E.style).shadow(E.shadow).attr({\n stroke: E.borderColor || e.color || x.color || \"#333333\"\n });\n f = f.tt = r;\n l = f.getBBox();\n g = l.width + f.strokeWidth();\n k && (aa = l.height, H += aa, X && (C -= aa));\n x = e.plotX;\n x = void 0 === x ? 0 : x;\n n = e.plotY;\n n = void 0 === n ? 0 : n;\n r = e.series;\n\n if (e.isHeader) {\n x = q + x;\n var D = m + h / 2;\n } else {\n var t = r.xAxis,\n A = r.yAxis;\n x = t.pos + p(x, -F, t.len + F);\n r.shouldShowTooltip(0, A.pos - m + n, {\n ignoreX: !0\n }) && (D = A.pos + n);\n }\n\n x = p(x, N.left - F, N.right + F);\n \"number\" === typeof D ? (l = l.height + 1, n = T ? T.call(d, g, l, e) : b(x, D, k, g), c.push({\n align: T ? 0 : void 0,\n anchorX: x,\n anchorY: D,\n boxWidth: g,\n point: e,\n rank: y(n.rank, k ? 1 : 0),\n size: l,\n target: n.y,\n tt: f,\n x: n.x\n })) : f.isActive = !1;\n }\n\n return c;\n }, []);\n !T && c.some(function (b) {\n var c = (d.outside ? S : 0) + b.anchorX;\n return c < N.left && c + b.boxWidth < N.right ? !0 : c < S - N.left + b.boxWidth && N.right - c > c;\n }) && (c = c.map(function (c) {\n var a = b(c.anchorX, c.anchorY, c.point.isHeader, c.boxWidth, !1);\n return l(c, {\n target: a.y,\n x: a.x\n });\n }));\n d.cleanSplit();\n B(c, H);\n var G = S,\n ba = S;\n c.forEach(function (b) {\n var c = b.x,\n a = b.boxWidth;\n b = b.isHeader;\n b || (d.outside && S + c < G && (G = S + c), !b && d.outside && G + a > ba && (ba = S + c));\n });\n c.forEach(function (b) {\n var c = b.x,\n a = b.anchorX,\n g = b.pos,\n e = b.point.isHeader;\n g = {\n visibility: \"undefined\" === typeof g ? \"hidden\" : \"inherit\",\n x: c,\n y: g + C,\n anchorX: a,\n anchorY: b.anchorY\n };\n\n if (d.outside && c < a) {\n var k = S - G;\n 0 < k && (e || (g.x = c + k, g.anchorX = a + k), e && (g.x = (ba - G) / 2, g.anchorX = a + k));\n }\n\n b.tt.attr(g);\n });\n c = d.container;\n t = d.renderer;\n d.outside && c && t && (e = U.getBBox(), t.setSize(e.width + e.x, e.height + e.y, !1), c.style.left = G + \"px\", c.style.top = g + \"px\");\n };\n\n a.prototype.drawTracker = function () {\n if (this.followPointer || !this.options.stickOnContact) this.tracker && this.tracker.destroy();else {\n var c = this.chart,\n a = this.label,\n b = this.shared ? c.hoverPoints : c.hoverPoint;\n\n if (a && b) {\n var d = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n b = this.getAnchor(b);\n var e = a.getBBox();\n b[0] += c.plotLeft - a.translateX;\n b[1] += c.plotTop - a.translateY;\n d.x = Math.min(0, b[0]);\n d.y = Math.min(0, b[1]);\n d.width = 0 > b[0] ? Math.max(Math.abs(b[0]), e.width - b[0]) : Math.max(Math.abs(b[0]), e.width);\n d.height = 0 > b[1] ? Math.max(Math.abs(b[1]), e.height - Math.abs(b[1])) : Math.max(Math.abs(b[1]), e.height);\n this.tracker ? this.tracker.attr(d) : (this.tracker = a.renderer.rect(d).addClass(\"highcharts-tracker\").add(a), c.styledMode || this.tracker.attr({\n fill: \"rgba(0,0,0,0)\"\n }));\n }\n }\n };\n\n a.prototype.styledModeFormat = function (c) {\n return c.replace('style=\"font-size: 10px\"', 'class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g, 'class=\"highcharts-color-{$1.colorIndex}\"');\n };\n\n a.prototype.tooltipFooterHeaderFormatter = function (c, a) {\n var b = c.series,\n d = b.tooltipOptions,\n g = b.xAxis,\n e = g && g.dateTime;\n g = {\n isFooter: a,\n labelConfig: c\n };\n var k = d.xDateFormat,\n f = d[a ? \"footerFormat\" : \"headerFormat\"];\n h(this, \"headerFormatter\", g, function (a) {\n e && !k && n(c.key) && (k = e.getXDateFormat(c.key, d.dateTimeLabelFormats));\n e && k && (c.point && c.point.tooltipDateKeys || [\"key\"]).forEach(function (b) {\n f = f.replace(\"{point.\" + b + \"}\", \"{point.\" + b + \":\" + k + \"}\");\n });\n b.chart.styledMode && (f = this.styledModeFormat(f));\n a.text = F(f, {\n point: c,\n series: b\n }, this.chart);\n });\n return g.text;\n };\n\n a.prototype.update = function (c) {\n this.destroy();\n w(!0, this.chart.options.tooltip.userOptions, c);\n this.init(this.chart, w(!0, this.options, c));\n };\n\n a.prototype.updatePosition = function (c) {\n var a = this.chart,\n b = this.options,\n d = a.pointer,\n e = this.getLabel();\n d = d.getChartPosition();\n var k = (b.positioner || this.getPosition).call(this, e.width, e.height, c),\n f = c.plotX + a.plotLeft;\n c = c.plotY + a.plotTop;\n\n if (this.outside) {\n b = b.borderWidth + 2 * this.distance;\n this.renderer.setSize(e.width + b, e.height + b, !1);\n if (1 !== d.scaleX || 1 !== d.scaleY) m(this.container, {\n transform: \"scale(\" + d.scaleX + \", \" + d.scaleY + \")\"\n }), f *= d.scaleX, c *= d.scaleY;\n f += d.left - k.x;\n c += d.top - k.y;\n }\n\n this.move(Math.round(k.x), Math.round(k.y || 0), f, c);\n };\n\n return a;\n }();\n\n \"\";\n return a;\n });\n M(f, \"Core/Series/Point.js\", [f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u) {\n var F = f.animObject,\n I = C.defaultOptions,\n B = G.format,\n z = u.addEvent,\n p = u.defined,\n m = u.erase,\n e = u.extend,\n d = u.fireEvent,\n l = u.getNestedProperty,\n h = u.isArray,\n t = u.isFunction,\n n = u.isNumber,\n v = u.isObject,\n w = u.merge,\n y = u.objectEach,\n A = u.pick,\n q = u.syncTimeout,\n k = u.removeEvent,\n c = u.uniqueKey;\n\n f = function () {\n function g() {\n this.colorIndex = this.category = void 0;\n this.formatPrefix = \"point\";\n this.id = void 0;\n this.isNull = !1;\n this.percentage = this.options = this.name = void 0;\n this.selected = !1;\n this.total = this.series = void 0;\n this.visible = !0;\n this.x = void 0;\n }\n\n g.prototype.animateBeforeDestroy = function () {\n var b = this,\n c = {\n x: b.startXPos,\n opacity: 0\n },\n a = b.getGraphicalProps();\n a.singular.forEach(function (a) {\n b[a] = b[a].animate(\"dataLabel\" === a ? {\n x: b[a].startXPos,\n y: b[a].startYPos,\n opacity: 0\n } : c);\n });\n a.plural.forEach(function (c) {\n b[c].forEach(function (c) {\n c.element && c.animate(e({\n x: b.startXPos\n }, c.startYPos ? {\n x: c.startXPos,\n y: c.startYPos\n } : {}));\n });\n });\n };\n\n g.prototype.applyOptions = function (b, c) {\n var a = this.series,\n d = a.options.pointValKey || a.pointValKey;\n b = g.prototype.optionsToObject.call(this, b);\n e(this, b);\n this.options = this.options ? e(this.options, b) : b;\n b.group && delete this.group;\n b.dataLabels && delete this.dataLabels;\n d && (this.y = g.prototype.getNestedProperty.call(this, d));\n this.formatPrefix = (this.isNull = A(this.isValid && !this.isValid(), null === this.x || !n(this.y))) ? \"null\" : \"point\";\n this.selected && (this.state = \"select\");\n \"name\" in this && \"undefined\" === typeof c && a.xAxis && a.xAxis.hasNames && (this.x = a.xAxis.nameToX(this));\n \"undefined\" === typeof this.x && a ? this.x = \"undefined\" === typeof c ? a.autoIncrement() : c : n(b.x) && a.options.relativeXValue && (this.x = a.autoIncrement(b.x));\n return this;\n };\n\n g.prototype.destroy = function () {\n function b() {\n if (c.graphic || c.dataLabel || c.dataLabels) k(c), c.destroyElements();\n\n for (f in c) {\n c[f] = null;\n }\n }\n\n var c = this,\n a = c.series,\n d = a.chart;\n a = a.options.dataSorting;\n var g = d.hoverPoints,\n e = F(c.series.chart.renderer.globalAnimation),\n f;\n c.legendItem && d.legend.destroyItem(c);\n g && (c.setState(), m(g, c), g.length || (d.hoverPoints = null));\n if (c === d.hoverPoint) c.onMouseOut();\n a && a.enabled ? (this.animateBeforeDestroy(), q(b, e.duration)) : b();\n d.pointCount--;\n };\n\n g.prototype.destroyElements = function (b) {\n var c = this;\n b = c.getGraphicalProps(b);\n b.singular.forEach(function (b) {\n c[b] = c[b].destroy();\n });\n b.plural.forEach(function (b) {\n c[b].forEach(function (b) {\n b.element && b.destroy();\n });\n delete c[b];\n });\n };\n\n g.prototype.firePointEvent = function (b, c, a) {\n var g = this,\n e = this.series.options;\n (e.point.events[b] || g.options && g.options.events && g.options.events[b]) && g.importEvents();\n \"click\" === b && e.allowPointSelect && (a = function a(b) {\n g.select && g.select(null, b.ctrlKey || b.metaKey || b.shiftKey);\n });\n d(g, b, c, a);\n };\n\n g.prototype.getClassName = function () {\n 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\", \"\") : \"\");\n };\n\n g.prototype.getGraphicalProps = function (b) {\n var c = this,\n a = [],\n d = {\n singular: [],\n plural: []\n },\n g;\n b = b || {\n graphic: 1,\n dataLabel: 1\n };\n b.graphic && a.push(\"graphic\", \"upperGraphic\", \"shadowGroup\");\n b.dataLabel && a.push(\"dataLabel\", \"dataLabelUpper\", \"connector\");\n\n for (g = a.length; g--;) {\n var e = a[g];\n c[e] && d.singular.push(e);\n }\n\n [\"dataLabel\", \"connector\"].forEach(function (a) {\n var g = a + \"s\";\n b[a] && c[g] && d.plural.push(g);\n });\n return d;\n };\n\n g.prototype.getLabelConfig = function () {\n return {\n x: this.category,\n y: this.y,\n color: this.color,\n colorIndex: this.colorIndex,\n key: this.name || this.category,\n series: this.series,\n point: this,\n percentage: this.percentage,\n total: this.total || this.stackTotal\n };\n };\n\n g.prototype.getNestedProperty = function (b) {\n if (b) return 0 === b.indexOf(\"custom.\") ? l(b, this.options) : this[b];\n };\n\n g.prototype.getZone = function () {\n var b = this.series,\n c = b.zones;\n b = b.zoneAxis || \"y\";\n var a,\n d = 0;\n\n for (a = c[d]; this[b] >= a.value;) {\n a = c[++d];\n }\n\n this.nonZonedColor || (this.nonZonedColor = this.color);\n this.color = a && a.color && !this.options.color ? a.color : this.nonZonedColor;\n return a;\n };\n\n g.prototype.hasNewShapeType = function () {\n return (this.graphic && (this.graphic.symbolName || this.graphic.element.nodeName)) !== this.shapeType;\n };\n\n g.prototype.init = function (b, a, g) {\n this.series = b;\n this.applyOptions(a, g);\n this.id = p(this.id) ? this.id : c();\n this.resolveColor();\n b.chart.pointCount++;\n d(this, \"afterInit\");\n return this;\n };\n\n g.prototype.optionsToObject = function (b) {\n var c = this.series,\n a = c.options.keys,\n d = a || c.pointArrayMap || [\"y\"],\n e = d.length,\n k = {},\n f = 0,\n q = 0;\n if (n(b) || null === b) k[d[0]] = b;else if (h(b)) for (!a && b.length > e && (c = _typeof(b[0]), \"string\" === c ? k.name = b[0] : \"number\" === c && (k.x = b[0]), f++); q < e;) {\n a && \"undefined\" === typeof b[f] || (0 < d[q].indexOf(\".\") ? g.prototype.setNestedProperty(k, b[f], d[q]) : k[d[q]] = b[f]), f++, q++;\n } else \"object\" === _typeof(b) && (k = b, b.dataLabels && (c._hasPointLabels = !0), b.marker && (c._hasPointMarkers = !0));\n return k;\n };\n\n g.prototype.resolveColor = function () {\n var b = this.series,\n c = b.chart.styledMode;\n var a = b.chart.options.chart.colorCount;\n delete this.nonZonedColor;\n\n if (b.options.colorByPoint) {\n if (!c) {\n a = b.options.colors || b.chart.options.colors;\n var d = a[b.colorCounter];\n a = a.length;\n }\n\n c = b.colorCounter;\n b.colorCounter++;\n b.colorCounter === a && (b.colorCounter = 0);\n } else c || (d = b.color), c = b.colorIndex;\n\n this.colorIndex = A(this.options.colorIndex, c);\n this.color = A(this.options.color, d);\n };\n\n g.prototype.setNestedProperty = function (b, c, a) {\n a.split(\".\").reduce(function (b, a, d, g) {\n b[a] = g.length - 1 === d ? c : v(b[a], !0) ? b[a] : {};\n return b[a];\n }, b);\n return b;\n };\n\n g.prototype.tooltipFormatter = function (b) {\n var c = this.series,\n a = c.tooltipOptions,\n d = A(a.valueDecimals, \"\"),\n g = a.valuePrefix || \"\",\n e = a.valueSuffix || \"\";\n c.chart.styledMode && (b = c.chart.tooltip.styledModeFormat(b));\n (c.pointArrayMap || [\"y\"]).forEach(function (c) {\n c = \"{point.\" + c;\n if (g || e) b = b.replace(RegExp(c + \"}\", \"g\"), g + c + \"}\" + e);\n b = b.replace(RegExp(c + \"}\", \"g\"), c + \":,.\" + d + \"f}\");\n });\n return B(b, {\n point: this,\n series: this.series\n }, c.chart);\n };\n\n g.prototype.update = function (b, c, a, d) {\n function g() {\n e.applyOptions(b);\n var d = f && e.hasDummyGraphic;\n d = null === e.y ? !d : d;\n f && d && (e.graphic = f.destroy(), delete e.hasDummyGraphic);\n v(b, !0) && (f && f.element && b && b.marker && \"undefined\" !== typeof b.marker.symbol && (e.graphic = f.destroy()), b && b.dataLabels && e.dataLabel && (e.dataLabel = e.dataLabel.destroy()), e.connector && (e.connector = e.connector.destroy()));\n r = e.index;\n k.updateParallelArrays(e, r);\n q.data[r] = v(q.data[r], !0) || v(b, !0) ? e.options : A(b, q.data[r]);\n k.isDirty = k.isDirtyData = !0;\n !k.fixedBox && k.hasCartesianSeries && (h.isDirtyBox = !0);\n \"point\" === q.legendType && (h.isDirtyLegend = !0);\n c && h.redraw(a);\n }\n\n var e = this,\n k = e.series,\n f = e.graphic,\n h = k.chart,\n q = k.options,\n r;\n c = A(c, !0);\n !1 === d ? g() : e.firePointEvent(\"update\", {\n options: b\n }, g);\n };\n\n g.prototype.remove = function (b, c) {\n this.series.removePoint(this.series.data.indexOf(this), b, c);\n };\n\n g.prototype.select = function (b, c) {\n var a = this,\n d = a.series,\n g = d.chart;\n this.selectedStaging = b = A(b, !a.selected);\n a.firePointEvent(b ? \"select\" : \"unselect\", {\n accumulate: c\n }, function () {\n a.selected = a.options.selected = b;\n d.options.data[d.data.indexOf(a)] = a.options;\n a.setState(b && \"select\");\n c || g.getSelectedPoints().forEach(function (b) {\n var c = b.series;\n b.selected && b !== a && (b.selected = b.options.selected = !1, c.options.data[c.data.indexOf(b)] = b.options, b.setState(g.hoverPoints && c.options.inactiveOtherPoints ? \"inactive\" : \"\"), b.firePointEvent(\"unselect\"));\n });\n });\n delete this.selectedStaging;\n };\n\n g.prototype.onMouseOver = function (b) {\n var c = this.series.chart,\n a = c.pointer;\n b = b ? a.normalize(b) : a.getChartCoordinatesFromPoint(this, c.inverted);\n a.runPointActions(b, this);\n };\n\n g.prototype.onMouseOut = function () {\n var b = this.series.chart;\n this.firePointEvent(\"mouseOut\");\n this.series.options.inactiveOtherPoints || (b.hoverPoints || []).forEach(function (b) {\n b.setState();\n });\n b.hoverPoints = b.hoverPoint = null;\n };\n\n g.prototype.importEvents = function () {\n if (!this.hasImportedEvents) {\n var b = this,\n c = w(b.series.options.point, b.options).events;\n b.events = c;\n y(c, function (c, a) {\n t(c) && z(b, a, c);\n });\n this.hasImportedEvents = !0;\n }\n };\n\n g.prototype.setState = function (b, c) {\n var g = this.series,\n k = this.state,\n f = g.options.states[b || \"normal\"] || {},\n h = I.plotOptions[g.type].marker && g.options.marker,\n q = h && !1 === h.enabled,\n r = h && h.states && h.states[b || \"normal\"] || {},\n l = !1 === r.enabled,\n m = this.marker || {},\n p = g.chart,\n t = h && g.markerAttribs,\n w = g.halo,\n y,\n v = g.stateMarkerGraphic;\n b = b || \"\";\n\n if (!(b === this.state && !c || this.selected && \"select\" !== b || !1 === f.enabled || b && (l || q && !1 === r.enabled) || b && m.states && m.states[b] && !1 === m.states[b].enabled)) {\n this.state = b;\n t && (y = g.markerAttribs(this, b));\n\n if (this.graphic && !this.hasDummyGraphic) {\n k && this.graphic.removeClass(\"highcharts-point-\" + k);\n b && this.graphic.addClass(\"highcharts-point-\" + b);\n\n if (!p.styledMode) {\n var z = g.pointAttribs(this, b);\n var E = A(p.options.chart.animation, f.animation);\n g.options.inactiveOtherPoints && n(z.opacity) && ((this.dataLabels || []).forEach(function (b) {\n b && b.animate({\n opacity: z.opacity\n }, E);\n }), this.connector && this.connector.animate({\n opacity: z.opacity\n }, E));\n this.graphic.animate(z, E);\n }\n\n y && this.graphic.animate(y, A(p.options.chart.animation, r.animation, h.animation));\n v && v.hide();\n } else {\n if (b && r) {\n k = m.symbol || g.symbol;\n v && v.currentSymbol !== k && (v = v.destroy());\n if (y) if (v) v[c ? \"animate\" : \"attr\"]({\n x: y.x,\n y: y.y\n });else k && (g.stateMarkerGraphic = v = p.renderer.symbol(k, y.x, y.y, y.width, y.height).add(g.markerGroup), v.currentSymbol = k);\n !p.styledMode && v && \"inactive\" !== this.state && v.attr(g.pointAttribs(this, b));\n }\n\n v && (v[b && this.isInside ? \"show\" : \"hide\"](), v.element.point = this, v.addClass(this.getClassName(), !0));\n }\n\n f = f.halo;\n y = (v = this.graphic || v) && v.visibility || \"inherit\";\n f && f.size && v && \"hidden\" !== y && !this.isCluster ? (w || (g.halo = w = p.renderer.path().add(v.parentGroup)), w.show()[c ? \"animate\" : \"attr\"]({\n d: this.haloPath(f.size)\n }), w.attr({\n \"class\": \"highcharts-halo highcharts-color-\" + A(this.colorIndex, g.colorIndex) + (this.className ? \" \" + this.className : \"\"),\n visibility: y,\n zIndex: -1\n }), w.point = this, p.styledMode || w.attr(e({\n fill: this.color || g.color,\n \"fill-opacity\": f.opacity\n }, a.filterUserAttributes(f.attributes || {})))) : w && w.point && w.point.haloPath && w.animate({\n d: w.point.haloPath(0)\n }, null, w.hide);\n d(this, \"afterSetState\", {\n state: b\n });\n }\n };\n\n g.prototype.haloPath = function (b) {\n return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX) - b, this.plotY - b, 2 * b, 2 * b);\n };\n\n return g;\n }();\n\n \"\";\n return f;\n });\n M(f, \"Core/Pointer.js\", [f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Tooltip.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G) {\n var u = a.parse,\n F = f.charts,\n I = f.noop,\n B = G.addEvent,\n z = G.attr,\n p = G.css,\n m = G.defined,\n e = G.extend,\n d = G.find,\n l = G.fireEvent,\n h = G.isNumber,\n t = G.isObject,\n n = G.objectEach,\n v = G.offset,\n w = G.pick,\n y = G.splat;\n\n a = function () {\n function a(a, d) {\n this.lastValidTouch = {};\n this.pinchDown = [];\n this.runChartClick = !1;\n this.eventsToUnbind = [];\n this.chart = a;\n this.hasDragged = !1;\n this.options = d;\n this.init(a, d);\n }\n\n a.prototype.applyInactiveState = function (a) {\n var d = [],\n c;\n (a || []).forEach(function (a) {\n c = a.series;\n d.push(c);\n c.linkedParent && d.push(c.linkedParent);\n c.linkedSeries && (d = d.concat(c.linkedSeries));\n c.navigatorSeries && d.push(c.navigatorSeries);\n });\n this.chart.series.forEach(function (c) {\n -1 === d.indexOf(c) ? c.setState(\"inactive\", !0) : c.options.inactiveOtherPoints && c.setAllPointsToState(\"inactive\");\n });\n };\n\n a.prototype.destroy = function () {\n var d = this;\n this.eventsToUnbind.forEach(function (a) {\n return a();\n });\n this.eventsToUnbind = [];\n f.chartCount || (a.unbindDocumentMouseUp && (a.unbindDocumentMouseUp = a.unbindDocumentMouseUp()), a.unbindDocumentTouchEnd && (a.unbindDocumentTouchEnd = a.unbindDocumentTouchEnd()));\n clearInterval(d.tooltipTimeout);\n n(d, function (a, c) {\n d[c] = void 0;\n });\n };\n\n a.prototype.drag = function (a) {\n var d = this.chart,\n c = d.options.chart,\n g = this.zoomHor,\n b = this.zoomVert,\n e = d.plotLeft,\n f = d.plotTop,\n h = d.plotWidth,\n q = d.plotHeight,\n l = this.mouseDownX || 0,\n m = this.mouseDownY || 0,\n n = t(c.panning) ? c.panning && c.panning.enabled : c.panning,\n p = c.panKey && a[c.panKey + \"Key\"],\n w = a.chartX,\n y = a.chartY,\n v = this.selectionMarker;\n if (!v || !v.touch) if (w < e ? w = e : w > e + h && (w = e + h), y < f ? y = f : y > f + q && (y = f + q), this.hasDragged = Math.sqrt(Math.pow(l - w, 2) + Math.pow(m - y, 2)), 10 < this.hasDragged) {\n var A = d.isInsidePlot(l - e, m - f, {\n visiblePlotOnly: !0\n });\n !d.hasCartesianSeries && !d.mapView || !this.zoomX && !this.zoomY || !A || p || v || (this.selectionMarker = v = d.renderer.rect(e, f, g ? 1 : h, b ? 1 : q, 0).attr({\n \"class\": \"highcharts-selection-marker\",\n zIndex: 7\n }).add(), d.styledMode || v.attr({\n fill: c.selectionMarkerFill || u(\"#335cad\").setOpacity(.25).get()\n }));\n v && g && (g = w - l, v.attr({\n width: Math.abs(g),\n x: (0 < g ? 0 : g) + l\n }));\n v && b && (g = y - m, v.attr({\n height: Math.abs(g),\n y: (0 < g ? 0 : g) + m\n }));\n A && !v && n && d.pan(a, c.panning);\n }\n };\n\n a.prototype.dragStart = function (a) {\n var d = this.chart;\n d.mouseIsDown = a.type;\n d.cancelClick = !1;\n d.mouseDownX = this.mouseDownX = a.chartX;\n d.mouseDownY = this.mouseDownY = a.chartY;\n };\n\n a.prototype.drop = function (a) {\n var d = this,\n c = this.chart,\n g = this.hasPinched;\n\n if (this.selectionMarker) {\n var b = this.selectionMarker,\n f = b.attr ? b.attr(\"x\") : b.x,\n q = b.attr ? b.attr(\"y\") : b.y,\n n = b.attr ? b.attr(\"width\") : b.width,\n t = b.attr ? b.attr(\"height\") : b.height,\n w = {\n originalEvent: a,\n xAxis: [],\n yAxis: [],\n x: f,\n y: q,\n width: n,\n height: t\n },\n y = !!c.mapView;\n if (this.hasDragged || g) c.axes.forEach(function (b) {\n if (b.zoomEnabled && m(b.min) && (g || d[{\n xAxis: \"zoomX\",\n yAxis: \"zoomY\"\n }[b.coll]]) && h(f) && h(q)) {\n var c = b.horiz,\n e = \"touchend\" === a.type ? b.minPixelPadding : 0,\n k = b.toValue((c ? f : q) + e);\n c = b.toValue((c ? f + n : q + t) - e);\n w[b.coll].push({\n axis: b,\n min: Math.min(k, c),\n max: Math.max(k, c)\n });\n y = !0;\n }\n }), y && l(c, \"selection\", w, function (b) {\n c.zoom(e(b, g ? {\n animation: !1\n } : null));\n });\n h(c.index) && (this.selectionMarker = this.selectionMarker.destroy());\n g && this.scaleGroups();\n }\n\n c && h(c.index) && (p(c.container, {\n cursor: c._cursor\n }), c.cancelClick = 10 < this.hasDragged, c.mouseIsDown = this.hasDragged = this.hasPinched = !1, this.pinchDown = []);\n };\n\n a.prototype.findNearestKDPoint = function (a, d, c) {\n var g = this.chart,\n b = g.hoverPoint;\n g = g.tooltip;\n if (b && g && g.isStickyOnContact()) return b;\n var e;\n a.forEach(function (b) {\n var a = !(b.noSharedTooltip && d) && 0 > b.options.findNearestPointBy.indexOf(\"y\");\n b = b.searchPoint(c, a);\n\n if ((a = t(b, !0) && b.series) && !(a = !t(e, !0))) {\n a = e.distX - b.distX;\n var g = e.dist - b.dist,\n k = (b.series.group && b.series.group.zIndex) - (e.series.group && e.series.group.zIndex);\n a = 0 < (0 !== a && d ? a : 0 !== g ? g : 0 !== k ? k : e.series.index > b.series.index ? -1 : 1);\n }\n\n a && (e = b);\n });\n return e;\n };\n\n a.prototype.getChartCoordinatesFromPoint = function (a, d) {\n var c = a.series,\n g = c.xAxis;\n c = c.yAxis;\n var b = a.shapeArgs;\n\n if (g && c) {\n var e = w(a.clientX, a.plotX),\n k = a.plotY || 0;\n a.isNode && b && h(b.x) && h(b.y) && (e = b.x, k = b.y);\n return d ? {\n chartX: c.len + c.pos - k,\n chartY: g.len + g.pos - e\n } : {\n chartX: e + g.pos,\n chartY: k + c.pos\n };\n }\n\n if (b && b.x && b.y) return {\n chartX: b.x,\n chartY: b.y\n };\n };\n\n a.prototype.getChartPosition = function () {\n if (this.chartPosition) return this.chartPosition;\n var a = this.chart.container,\n d = v(a);\n this.chartPosition = {\n left: d.left,\n top: d.top,\n scaleX: 1,\n scaleY: 1\n };\n var c = a.offsetWidth;\n a = a.offsetHeight;\n 2 < c && 2 < a && (this.chartPosition.scaleX = d.width / c, this.chartPosition.scaleY = d.height / a);\n return this.chartPosition;\n };\n\n a.prototype.getCoordinates = function (a) {\n var d = {\n xAxis: [],\n yAxis: []\n };\n this.chart.axes.forEach(function (c) {\n d[c.isXAxis ? \"xAxis\" : \"yAxis\"].push({\n axis: c,\n value: c.toValue(a[c.horiz ? \"chartX\" : \"chartY\"])\n });\n });\n return d;\n };\n\n a.prototype.getHoverData = function (a, e, c, g, b, f) {\n var k = [];\n g = !(!g || !a);\n var h = {\n chartX: f ? f.chartX : void 0,\n chartY: f ? f.chartY : void 0,\n shared: b\n };\n l(this, \"beforeGetHoverData\", h);\n var q = e && !e.stickyTracking ? [e] : c.filter(function (a) {\n return h.filter ? h.filter(a) : a.visible && !(!b && a.directTouch) && w(a.options.enableMouseTracking, !0) && a.stickyTracking;\n });\n var r = g || !f ? a : this.findNearestKDPoint(q, b, f);\n e = r && r.series;\n r && (b && !e.noSharedTooltip ? (q = c.filter(function (a) {\n return h.filter ? h.filter(a) : a.visible && !(!b && a.directTouch) && w(a.options.enableMouseTracking, !0) && !a.noSharedTooltip;\n }), q.forEach(function (b) {\n var a = d(b.points, function (b) {\n return b.x === r.x && !b.isNull;\n });\n t(a) && (b.chart.isBoosting && (a = b.getPoint(a)), k.push(a));\n })) : k.push(r));\n h = {\n hoverPoint: r\n };\n l(this, \"afterGetHoverData\", h);\n return {\n hoverPoint: h.hoverPoint,\n hoverSeries: e,\n hoverPoints: k\n };\n };\n\n a.prototype.getPointFromEvent = function (a) {\n a = a.target;\n\n for (var d; a && !d;) {\n d = a.point, a = a.parentNode;\n }\n\n return d;\n };\n\n a.prototype.onTrackerMouseOut = function (a) {\n a = a.relatedTarget || a.toElement;\n var d = this.chart.hoverSeries;\n this.isDirectTouch = !1;\n if (!(!d || !a || d.stickyTracking || this.inClass(a, \"highcharts-tooltip\") || this.inClass(a, \"highcharts-series-\" + d.index) && this.inClass(a, \"highcharts-tracker\"))) d.onMouseOut();\n };\n\n a.prototype.inClass = function (a, d) {\n for (var c; a;) {\n if (c = z(a, \"class\")) {\n if (-1 !== c.indexOf(d)) return !0;\n if (-1 !== c.indexOf(\"highcharts-container\")) return !1;\n }\n\n a = a.parentElement;\n }\n };\n\n a.prototype.init = function (a, d) {\n this.options = d;\n this.chart = a;\n this.runChartClick = !(!d.chart.events || !d.chart.events.click);\n this.pinchDown = [];\n this.lastValidTouch = {};\n C && (a.tooltip = new C(a, d.tooltip), this.followTouchMove = w(d.tooltip.followTouchMove, !0));\n this.setDOMEvents();\n };\n\n a.prototype.normalize = function (a, d) {\n var c = a.touches,\n g = c ? c.length ? c.item(0) : w(c.changedTouches, a.changedTouches)[0] : a;\n d || (d = this.getChartPosition());\n c = g.pageX - d.left;\n g = g.pageY - d.top;\n c /= d.scaleX;\n g /= d.scaleY;\n return e(a, {\n chartX: Math.round(c),\n chartY: Math.round(g)\n });\n };\n\n a.prototype.onContainerClick = function (a) {\n var d = this.chart,\n c = d.hoverPoint;\n a = this.normalize(a);\n var g = d.plotLeft,\n b = d.plotTop;\n d.cancelClick || (c && this.inClass(a.target, \"highcharts-tracker\") ? (l(c.series, \"click\", e(a, {\n point: c\n })), d.hoverPoint && c.firePointEvent(\"click\", a)) : (e(a, this.getCoordinates(a)), d.isInsidePlot(a.chartX - g, a.chartY - b, {\n visiblePlotOnly: !0\n }) && l(d, \"click\", a)));\n };\n\n a.prototype.onContainerMouseDown = function (a) {\n var d = 1 === ((a.buttons || a.button) & 1);\n a = this.normalize(a);\n if (f.isFirefox && 0 !== a.button) this.onContainerMouseMove(a);\n if (\"undefined\" === typeof a.button || d) this.zoomOption(a), d && a.preventDefault && a.preventDefault(), this.dragStart(a);\n };\n\n a.prototype.onContainerMouseLeave = function (d) {\n var e = F[w(a.hoverChartIndex, -1)],\n c = this.chart.tooltip;\n c && c.shouldStickOnContact() && this.inClass(d.relatedTarget, \"highcharts-tooltip-container\") || (d = this.normalize(d), e && (d.relatedTarget || d.toElement) && (e.pointer.reset(), e.pointer.chartPosition = void 0), c && !c.isHidden && this.reset());\n };\n\n a.prototype.onContainerMouseEnter = function (a) {\n delete this.chartPosition;\n };\n\n a.prototype.onContainerMouseMove = function (a) {\n var d = this.chart;\n a = this.normalize(a);\n this.setHoverChartIndex();\n a.preventDefault || (a.returnValue = !1);\n (\"mousedown\" === d.mouseIsDown || this.touchSelect(a)) && this.drag(a);\n d.openMenu || !this.inClass(a.target, \"highcharts-tracker\") && !d.isInsidePlot(a.chartX - d.plotLeft, a.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || (this.inClass(a.target, \"highcharts-no-tooltip\") ? this.reset(!1, 0) : this.runPointActions(a));\n };\n\n a.prototype.onDocumentTouchEnd = function (d) {\n var e = F[w(a.hoverChartIndex, -1)];\n e && e.pointer.drop(d);\n };\n\n a.prototype.onContainerTouchMove = function (a) {\n if (this.touchSelect(a)) this.onContainerMouseMove(a);else this.touch(a);\n };\n\n a.prototype.onContainerTouchStart = function (a) {\n if (this.touchSelect(a)) this.onContainerMouseDown(a);else this.zoomOption(a), this.touch(a, !0);\n };\n\n a.prototype.onDocumentMouseMove = function (a) {\n var d = this.chart,\n c = this.chartPosition;\n a = this.normalize(a, c);\n var g = d.tooltip;\n !c || g && g.isStickyOnContact() || d.isInsidePlot(a.chartX - d.plotLeft, a.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || this.inClass(a.target, \"highcharts-tracker\") || this.reset();\n };\n\n a.prototype.onDocumentMouseUp = function (d) {\n var e = F[w(a.hoverChartIndex, -1)];\n e && e.pointer.drop(d);\n };\n\n a.prototype.pinch = function (a) {\n var d = this,\n c = d.chart,\n g = d.pinchDown,\n b = a.touches || [],\n f = b.length,\n h = d.lastValidTouch,\n q = d.hasZoom,\n m = {},\n n = 1 === f && (d.inClass(a.target, \"highcharts-tracker\") && c.runTrackerClick || d.runChartClick),\n p = {},\n t = d.selectionMarker;\n 1 < f ? d.initiated = !0 : 1 === f && this.followTouchMove && (d.initiated = !1);\n q && d.initiated && !n && !1 !== a.cancelable && a.preventDefault();\n [].map.call(b, function (b) {\n return d.normalize(b);\n });\n \"touchstart\" === a.type ? ([].forEach.call(b, function (b, a) {\n g[a] = {\n chartX: b.chartX,\n chartY: b.chartY\n };\n }), h.x = [g[0].chartX, g[1] && g[1].chartX], h.y = [g[0].chartY, g[1] && g[1].chartY], c.axes.forEach(function (b) {\n if (b.zoomEnabled) {\n var a = c.bounds[b.horiz ? \"h\" : \"v\"],\n d = b.minPixelPadding,\n g = b.toPixels(Math.min(w(b.options.min, b.dataMin), b.dataMin)),\n e = b.toPixels(Math.max(w(b.options.max, b.dataMax), b.dataMax)),\n f = Math.max(g, e);\n a.min = Math.min(b.pos, Math.min(g, e) - d);\n a.max = Math.max(b.pos + b.len, f + d);\n }\n }), d.res = !0) : d.followTouchMove && 1 === f ? this.runPointActions(d.normalize(a)) : g.length && (l(c, \"touchpan\", {\n originalEvent: a\n }, function () {\n t || (d.selectionMarker = t = e({\n destroy: I,\n touch: !0\n }, c.plotBox));\n d.pinchTranslate(g, b, m, t, p, h);\n d.hasPinched = q;\n d.scaleGroups(m, p);\n }), d.res && (d.res = !1, this.reset(!1, 0)));\n };\n\n a.prototype.pinchTranslate = function (a, d, c, g, b, e) {\n this.zoomHor && this.pinchTranslateDirection(!0, a, d, c, g, b, e);\n this.zoomVert && this.pinchTranslateDirection(!1, a, d, c, g, b, e);\n };\n\n a.prototype.pinchTranslateDirection = function (a, d, c, g, b, e, f, h) {\n var k = this.chart,\n r = a ? \"x\" : \"y\",\n l = a ? \"X\" : \"Y\",\n m = \"chart\" + l,\n q = a ? \"width\" : \"height\",\n n = k[\"plot\" + (a ? \"Left\" : \"Top\")],\n p = k.inverted,\n x = k.bounds[a ? \"h\" : \"v\"],\n t = 1 === d.length,\n D = d[0][m],\n w = !t && d[1][m];\n\n d = function d() {\n \"number\" === typeof A && 20 < Math.abs(D - w) && (v = h || Math.abs(N - A) / Math.abs(D - w));\n E = (n - N) / v + D;\n y = k[\"plot\" + (a ? \"Width\" : \"Height\")] / v;\n };\n\n var y,\n E,\n v = h || 1,\n N = c[0][m],\n A = !t && c[1][m];\n d();\n c = E;\n\n if (c < x.min) {\n c = x.min;\n var z = !0;\n } else c + y > x.max && (c = x.max - y, z = !0);\n\n z ? (N -= .8 * (N - f[r][0]), \"number\" === typeof A && (A -= .8 * (A - f[r][1])), d()) : f[r] = [N, A];\n p || (e[r] = E - n, e[q] = y);\n e = p ? 1 / v : v;\n b[q] = y;\n b[r] = c;\n g[p ? a ? \"scaleY\" : \"scaleX\" : \"scale\" + l] = v;\n g[\"translate\" + l] = e * n + (N - e * D);\n };\n\n a.prototype.reset = function (a, d) {\n var c = this.chart,\n g = c.hoverSeries,\n b = c.hoverPoint,\n e = c.hoverPoints,\n f = c.tooltip,\n k = f && f.shared ? e : b;\n a && k && y(k).forEach(function (b) {\n b.series.isCartesian && \"undefined\" === typeof b.plotX && (a = !1);\n });\n if (a) f && k && y(k).length && (f.refresh(k), f.shared && e ? e.forEach(function (b) {\n b.setState(b.state, !0);\n b.series.isCartesian && (b.series.xAxis.crosshair && b.series.xAxis.drawCrosshair(null, b), b.series.yAxis.crosshair && b.series.yAxis.drawCrosshair(null, b));\n }) : b && (b.setState(b.state, !0), c.axes.forEach(function (a) {\n a.crosshair && b.series[a.coll] === a && a.drawCrosshair(null, b);\n })));else {\n if (b) b.onMouseOut();\n e && e.forEach(function (b) {\n b.setState();\n });\n if (g) g.onMouseOut();\n f && f.hide(d);\n this.unDocMouseMove && (this.unDocMouseMove = this.unDocMouseMove());\n c.axes.forEach(function (b) {\n b.hideCrosshair();\n });\n this.hoverX = c.hoverPoints = c.hoverPoint = null;\n }\n };\n\n a.prototype.runPointActions = function (e, f) {\n var c = this.chart,\n g = c.tooltip && c.tooltip.options.enabled ? c.tooltip : void 0,\n b = g ? g.shared : !1,\n k = f || c.hoverPoint,\n h = k && k.series || c.hoverSeries;\n f = this.getHoverData(k, h, c.series, (!e || \"touchmove\" !== e.type) && (!!f || h && h.directTouch && this.isDirectTouch), b, e);\n k = f.hoverPoint;\n h = f.hoverSeries;\n var l = f.hoverPoints;\n f = h && h.tooltipOptions.followPointer && !h.tooltipOptions.split;\n var m = b && h && !h.noSharedTooltip;\n\n if (k && (k !== c.hoverPoint || g && g.isHidden)) {\n (c.hoverPoints || []).forEach(function (b) {\n -1 === l.indexOf(b) && b.setState();\n });\n if (c.hoverSeries !== h) h.onMouseOver();\n this.applyInactiveState(l);\n (l || []).forEach(function (b) {\n b.setState(\"hover\");\n });\n c.hoverPoint && c.hoverPoint.firePointEvent(\"mouseOut\");\n if (!k.series) return;\n c.hoverPoints = l;\n c.hoverPoint = k;\n k.firePointEvent(\"mouseOver\", void 0, function () {\n g && k && g.refresh(m ? l : k, e);\n });\n } else f && g && !g.isHidden && (b = g.getAnchor([{}], e), c.isInsidePlot(b[0], b[1], {\n visiblePlotOnly: !0\n }) && g.updatePosition({\n plotX: b[0],\n plotY: b[1]\n }));\n\n this.unDocMouseMove || (this.unDocMouseMove = B(c.container.ownerDocument, \"mousemove\", function (b) {\n var c = F[a.hoverChartIndex];\n if (c) c.pointer.onDocumentMouseMove(b);\n }), this.eventsToUnbind.push(this.unDocMouseMove));\n c.axes.forEach(function (b) {\n var a = w((b.crosshair || {}).snap, !0),\n g;\n a && ((g = c.hoverPoint) && g.series[b.coll] === b || (g = d(l, function (a) {\n return a.series && a.series[b.coll] === b;\n })));\n g || !a ? b.drawCrosshair(e, g) : b.hideCrosshair();\n });\n };\n\n a.prototype.scaleGroups = function (a, d) {\n var c = this.chart;\n c.series.forEach(function (g) {\n var b = a || g.getPlotBox();\n g.group && (g.xAxis && g.xAxis.zoomEnabled || c.mapView) && (g.group.attr(b), g.markerGroup && (g.markerGroup.attr(b), g.markerGroup.clip(d ? c.clipRect : null)), g.dataLabelsGroup && g.dataLabelsGroup.attr(b));\n });\n c.clipRect.attr(d || c.clipBox);\n };\n\n a.prototype.setDOMEvents = function () {\n var d = this,\n e = this.chart.container,\n c = e.ownerDocument;\n e.onmousedown = this.onContainerMouseDown.bind(this);\n e.onmousemove = this.onContainerMouseMove.bind(this);\n e.onclick = this.onContainerClick.bind(this);\n this.eventsToUnbind.push(B(e, \"mouseenter\", this.onContainerMouseEnter.bind(this)));\n this.eventsToUnbind.push(B(e, \"mouseleave\", this.onContainerMouseLeave.bind(this)));\n a.unbindDocumentMouseUp || (a.unbindDocumentMouseUp = B(c, \"mouseup\", this.onDocumentMouseUp.bind(this)));\n\n for (var g = this.chart.renderTo.parentElement; g && \"BODY\" !== g.tagName;) {\n this.eventsToUnbind.push(B(g, \"scroll\", function () {\n delete d.chartPosition;\n })), g = g.parentElement;\n }\n\n f.hasTouch && (this.eventsToUnbind.push(B(e, \"touchstart\", this.onContainerTouchStart.bind(this), {\n passive: !1\n })), this.eventsToUnbind.push(B(e, \"touchmove\", this.onContainerTouchMove.bind(this), {\n passive: !1\n })), a.unbindDocumentTouchEnd || (a.unbindDocumentTouchEnd = B(c, \"touchend\", this.onDocumentTouchEnd.bind(this), {\n passive: !1\n })));\n };\n\n a.prototype.setHoverChartIndex = function () {\n var d = this.chart,\n e = f.charts[w(a.hoverChartIndex, -1)];\n if (e && e !== d) e.pointer.onContainerMouseLeave({\n relatedTarget: d.container\n });\n e && e.mouseIsDown || (a.hoverChartIndex = d.index);\n };\n\n a.prototype.touch = function (a, d) {\n var c = this.chart,\n e;\n this.setHoverChartIndex();\n if (1 === a.touches.length) {\n if (a = this.normalize(a), (e = c.isInsidePlot(a.chartX - c.plotLeft, a.chartY - c.plotTop, {\n visiblePlotOnly: !0\n })) && !c.openMenu) {\n d && this.runPointActions(a);\n\n if (\"touchmove\" === a.type) {\n d = this.pinchDown;\n var b = d[0] ? 4 <= Math.sqrt(Math.pow(d[0].chartX - a.chartX, 2) + Math.pow(d[0].chartY - a.chartY, 2)) : !1;\n }\n\n w(b, !0) && this.pinch(a);\n } else d && this.reset();\n } else 2 === a.touches.length && this.pinch(a);\n };\n\n a.prototype.touchSelect = function (a) {\n return !(!this.chart.options.chart.zoomBySingleTouch || !a.touches || 1 !== a.touches.length);\n };\n\n a.prototype.zoomOption = function (a) {\n var d = this.chart,\n c = d.options.chart;\n d = d.inverted;\n var e = c.zoomType || \"\";\n /touch/.test(a.type) && (e = w(c.pinchType, e));\n this.zoomX = a = /x/.test(e);\n this.zoomY = c = /y/.test(e);\n this.zoomHor = a && !d || c && d;\n this.zoomVert = c && !d || a && d;\n this.hasZoom = a || c;\n };\n\n return a;\n }();\n\n \"\";\n return a;\n });\n M(f, \"Core/MSPointer.js\", [f[\"Core/Globals.js\"], f[\"Core/Pointer.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n function F() {\n var a = [];\n\n a.item = function (a) {\n return this[a];\n };\n\n d(h, function (d) {\n a.push({\n pageX: d.pageX,\n pageY: d.pageY,\n target: d.target\n });\n });\n return a;\n }\n\n function u(a, d, e, h) {\n var l = I[f.hoverChartIndex || NaN];\n \"touch\" !== a.pointerType && a.pointerType !== a.MSPOINTER_TYPE_TOUCH || !l || (l = l.pointer, h(a), l[d]({\n type: e,\n target: a.currentTarget,\n preventDefault: z,\n touches: F()\n }));\n }\n\n var H = this && this.__extends || function () {\n var _a3 = function a(d, e) {\n _a3 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, d) {\n a.__proto__ = d;\n } || function (a, d) {\n for (var e in d) {\n d.hasOwnProperty(e) && (a[e] = d[e]);\n }\n };\n\n return _a3(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n _a3(d, e);\n\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n I = a.charts,\n B = a.doc,\n z = a.noop,\n p = a.win,\n m = C.addEvent,\n e = C.css,\n d = C.objectEach,\n l = C.removeEvent,\n h = {},\n t = !!p.PointerEvent;\n\n return function (d) {\n function f() {\n return null !== d && d.apply(this, arguments) || this;\n }\n\n H(f, d);\n\n f.isRequired = function () {\n return !(a.hasTouch || !p.PointerEvent && !p.MSPointerEvent);\n };\n\n f.prototype.batchMSEvents = function (a) {\n a(this.chart.container, t ? \"pointerdown\" : \"MSPointerDown\", this.onContainerPointerDown);\n a(this.chart.container, t ? \"pointermove\" : \"MSPointerMove\", this.onContainerPointerMove);\n a(B, t ? \"pointerup\" : \"MSPointerUp\", this.onDocumentPointerUp);\n };\n\n f.prototype.destroy = function () {\n this.batchMSEvents(l);\n d.prototype.destroy.call(this);\n };\n\n f.prototype.init = function (a, f) {\n d.prototype.init.call(this, a, f);\n this.hasZoom && e(a.container, {\n \"-ms-touch-action\": \"none\",\n \"touch-action\": \"none\"\n });\n };\n\n f.prototype.onContainerPointerDown = function (a) {\n u(a, \"onContainerTouchStart\", \"touchstart\", function (a) {\n h[a.pointerId] = {\n pageX: a.pageX,\n pageY: a.pageY,\n target: a.currentTarget\n };\n });\n };\n\n f.prototype.onContainerPointerMove = function (a) {\n u(a, \"onContainerTouchMove\", \"touchmove\", function (a) {\n h[a.pointerId] = {\n pageX: a.pageX,\n pageY: a.pageY\n };\n h[a.pointerId].target || (h[a.pointerId].target = a.currentTarget);\n });\n };\n\n f.prototype.onDocumentPointerUp = function (a) {\n u(a, \"onDocumentTouchEnd\", \"touchend\", function (a) {\n delete h[a.pointerId];\n });\n };\n\n f.prototype.setDOMEvents = function () {\n d.prototype.setDOMEvents.call(this);\n (this.hasZoom || this.followTouchMove) && this.batchMSEvents(m);\n };\n\n return f;\n }(f);\n });\n M(f, \"Core/Legend/Legend.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Globals.js\"], f[\"Core/Series/Point.js\"], f[\"Core/Renderer/RendererUtilities.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H) {\n var F = a.animObject,\n B = a.setAnimation,\n z = f.format;\n a = C.isFirefox;\n var p = C.marginNames;\n C = C.win;\n var m = u.distribute,\n e = H.addEvent,\n d = H.createElement,\n l = H.css,\n h = H.defined,\n t = H.discardElement,\n n = H.find,\n v = H.fireEvent,\n w = H.isNumber,\n y = H.merge,\n A = H.pick,\n q = H.relativeLength,\n k = H.stableSort,\n c = H.syncTimeout;\n u = H.wrap;\n\n H = function () {\n function a(b, a) {\n this.allItems = [];\n this.contentGroup = this.box = void 0;\n this.display = !1;\n this.group = void 0;\n 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;\n this.options = void 0;\n this.padding = 0;\n this.pages = [];\n this.proximate = !1;\n this.scrollGroup = void 0;\n this.widthOption = this.totalItemWidth = this.titleHeight = this.symbolWidth = this.symbolHeight = 0;\n this.chart = b;\n this.init(b, a);\n }\n\n a.prototype.init = function (b, a) {\n this.chart = b;\n this.setOptions(a);\n a.enabled && (this.render(), e(this.chart, \"endResize\", function () {\n this.legend.positionCheckboxes();\n }), this.proximate ? this.unchartrender = e(this.chart, \"render\", function () {\n this.legend.proximatePositions();\n this.legend.positionItems();\n }) : this.unchartrender && this.unchartrender());\n };\n\n a.prototype.setOptions = function (b) {\n var a = A(b.padding, 8);\n this.options = b;\n this.chart.styledMode || (this.itemStyle = b.itemStyle, this.itemHiddenStyle = y(this.itemStyle, b.itemHiddenStyle));\n this.itemMarginTop = b.itemMarginTop || 0;\n this.itemMarginBottom = b.itemMarginBottom || 0;\n this.padding = a;\n this.initialItemY = a - 5;\n this.symbolWidth = A(b.symbolWidth, 16);\n this.pages = [];\n this.proximate = \"proximate\" === b.layout && !this.chart.inverted;\n this.baseline = void 0;\n };\n\n a.prototype.update = function (b, a) {\n var c = this.chart;\n this.setOptions(y(!0, this.options, b));\n this.destroy();\n c.isDirtyLegend = c.isDirtyBox = !0;\n A(a, !0) && c.redraw();\n v(this, \"afterUpdate\");\n };\n\n a.prototype.colorizeItem = function (b, a) {\n b.legendGroup[a ? \"removeClass\" : \"addClass\"](\"highcharts-legend-item-hidden\");\n\n if (!this.chart.styledMode) {\n var c = this.options,\n d = b.legendItem,\n e = b.legendLine,\n g = b.legendSymbol,\n f = this.itemHiddenStyle.color;\n c = a ? c.itemStyle.color : f;\n var k = a ? b.color || f : f,\n h = b.options && b.options.marker,\n l = {\n fill: k\n };\n d && d.css({\n fill: c,\n color: c\n });\n e && e.attr({\n stroke: k\n });\n g && (h && g.isMarker && (l = b.pointAttribs(), a || (l.stroke = l.fill = f)), g.attr(l));\n }\n\n v(this, \"afterColorizeItem\", {\n item: b,\n visible: a\n });\n };\n\n a.prototype.positionItems = function () {\n this.allItems.forEach(this.positionItem, this);\n this.chart.isResizing || this.positionCheckboxes();\n };\n\n a.prototype.positionItem = function (b) {\n var a = this,\n c = this.options,\n d = c.symbolPadding,\n e = !c.rtl,\n g = b._legendItemPos;\n c = g[0];\n g = g[1];\n var f = b.checkbox,\n k = b.legendGroup;\n k && k.element && (d = {\n translateX: e ? c : this.legendWidth - c - 2 * d - 4,\n translateY: g\n }, e = function e() {\n v(a, \"afterPositionItem\", {\n item: b\n });\n }, h(k.translateY) ? k.animate(d, void 0, e) : (k.attr(d), e()));\n f && (f.x = c, f.y = g);\n };\n\n a.prototype.destroyItem = function (b) {\n var a = b.checkbox;\n [\"legendItem\", \"legendLine\", \"legendSymbol\", \"legendGroup\"].forEach(function (a) {\n b[a] && (b[a] = b[a].destroy());\n });\n a && t(b.checkbox);\n };\n\n a.prototype.destroy = function () {\n function b(b) {\n this[b] && (this[b] = this[b].destroy());\n }\n\n this.getAllItems().forEach(function (a) {\n [\"legendItem\", \"legendGroup\"].forEach(b, a);\n });\n \"clipRect up down pager nav box title group\".split(\" \").forEach(b, this);\n this.display = null;\n };\n\n a.prototype.positionCheckboxes = function () {\n var b = this.group && this.group.alignAttr,\n a = this.clipHeight || this.legendHeight,\n c = this.titleHeight;\n\n if (b) {\n var d = b.translateY;\n this.allItems.forEach(function (e) {\n var g = e.checkbox;\n\n if (g) {\n var f = d + c + g.y + (this.scrollOffset || 0) + 3;\n l(g, {\n left: b.translateX + e.checkboxOffset + g.x - 20 + \"px\",\n top: f + \"px\",\n display: this.proximate || f > d - 6 && f < d + a - 6 ? \"\" : \"none\"\n });\n }\n }, this);\n }\n };\n\n a.prototype.renderTitle = function () {\n var b = this.options,\n a = this.padding,\n c = b.title,\n d = 0;\n c.text && (this.title || (this.title = this.chart.renderer.label(c.text, a - 3, a - 4, void 0, void 0, void 0, b.useHTML, void 0, \"legend-title\").attr({\n zIndex: 1\n }), this.chart.styledMode || this.title.css(c.style), this.title.add(this.group)), c.width || this.title.css({\n width: this.maxLegendWidth + \"px\"\n }), b = this.title.getBBox(), d = b.height, this.offsetWidth = b.width, this.contentGroup.attr({\n translateY: d\n }));\n this.titleHeight = d;\n };\n\n a.prototype.setText = function (b) {\n var a = this.options;\n b.legendItem.attr({\n text: a.labelFormat ? z(a.labelFormat, b, this.chart) : a.labelFormatter.call(b)\n });\n };\n\n a.prototype.renderItem = function (b) {\n var a = this.chart,\n c = a.renderer,\n d = this.options,\n e = this.symbolWidth,\n g = d.symbolPadding || 0,\n f = this.itemStyle,\n k = this.itemHiddenStyle,\n h = \"horizontal\" === d.layout ? A(d.itemDistance, 20) : 0,\n l = !d.rtl,\n m = !b.series,\n n = !m && b.series.drawLegendSymbol ? b.series : b,\n q = n.options,\n p = this.createCheckboxForItem && q && q.showCheckbox,\n t = d.useHTML,\n w = b.options.className,\n E = b.legendItem;\n q = e + g + h + (p ? 20 : 0);\n E || (b.legendGroup = c.g(\"legend-item\").addClass(\"highcharts-\" + n.type + \"-series highcharts-color-\" + b.colorIndex + (w ? \" \" + w : \"\") + (m ? \" highcharts-series-\" + b.index : \"\")).attr({\n zIndex: 1\n }).add(this.scrollGroup), b.legendItem = E = c.text(\"\", l ? e + g : -g, this.baseline || 0, t), a.styledMode || E.css(y(b.visible ? f : k)), E.attr({\n align: l ? \"left\" : \"right\",\n zIndex: 2\n }).add(b.legendGroup), this.baseline || (this.fontMetrics = c.fontMetrics(a.styledMode ? 12 : f.fontSize, E), this.baseline = this.fontMetrics.f + 3 + this.itemMarginTop, E.attr(\"y\", this.baseline), this.symbolHeight = d.symbolHeight || this.fontMetrics.f, d.squareSymbol && (this.symbolWidth = A(d.symbolWidth, Math.max(this.symbolHeight, 16)), q = this.symbolWidth + g + h + (p ? 20 : 0), l && E.attr(\"x\", this.symbolWidth + g))), n.drawLegendSymbol(this, b), this.setItemEvents && this.setItemEvents(b, E, t));\n p && !b.checkbox && this.createCheckboxForItem && this.createCheckboxForItem(b);\n this.colorizeItem(b, b.visible);\n !a.styledMode && f.width || E.css({\n width: (d.itemWidth || this.widthOption || a.spacingBox.width) - q + \"px\"\n });\n this.setText(b);\n a = E.getBBox();\n c = this.fontMetrics && this.fontMetrics.h || 0;\n b.itemWidth = b.checkboxOffset = d.itemWidth || b.legendItemWidth || a.width + q;\n this.maxItemWidth = Math.max(this.maxItemWidth, b.itemWidth);\n this.totalItemWidth += b.itemWidth;\n this.itemHeight = b.itemHeight = Math.round(b.legendItemHeight || (a.height > 1.5 * c ? a.height : c));\n };\n\n a.prototype.layoutItem = function (b) {\n var a = this.options,\n c = this.padding,\n d = \"horizontal\" === a.layout,\n e = b.itemHeight,\n g = this.itemMarginBottom,\n f = this.itemMarginTop,\n k = d ? A(a.itemDistance, 20) : 0,\n h = this.maxLegendWidth;\n a = a.alignColumns && this.totalItemWidth > h ? this.maxItemWidth : b.itemWidth;\n d && this.itemX - c + a > h && (this.itemX = c, this.lastLineHeight && (this.itemY += f + this.lastLineHeight + g), this.lastLineHeight = 0);\n this.lastItemY = f + this.itemY + g;\n this.lastLineHeight = Math.max(e, this.lastLineHeight);\n b._legendItemPos = [this.itemX, this.itemY];\n d ? this.itemX += a : (this.itemY += f + e + g, this.lastLineHeight = e);\n this.offsetWidth = this.widthOption || Math.max((d ? this.itemX - c - (b.checkbox ? 0 : k) : a) + c, this.offsetWidth);\n };\n\n a.prototype.getAllItems = function () {\n var b = [];\n this.chart.series.forEach(function (a) {\n var c = a && a.options;\n a && A(c.showInLegend, h(c.linkedTo) ? !1 : void 0, !0) && (b = b.concat(a.legendItems || (\"point\" === c.legendType ? a.data : a)));\n });\n v(this, \"afterGetAllItems\", {\n allItems: b\n });\n return b;\n };\n\n a.prototype.getAlignment = function () {\n var b = this.options;\n return this.proximate ? b.align.charAt(0) + \"tv\" : b.floating ? \"\" : b.align.charAt(0) + b.verticalAlign.charAt(0) + b.layout.charAt(0);\n };\n\n a.prototype.adjustMargins = function (b, a) {\n var c = this.chart,\n d = this.options,\n e = this.getAlignment();\n e && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach(function (g, f) {\n g.test(e) && !h(b[f]) && (c[p[f]] = Math.max(c[p[f]], c.legend[(f + 1) % 2 ? \"legendHeight\" : \"legendWidth\"] + [1, -1, -1, 1][f] * d[f % 2 ? \"x\" : \"y\"] + A(d.margin, 12) + a[f] + (c.titleOffset[f] || 0)));\n });\n };\n\n a.prototype.proximatePositions = function () {\n var b = this.chart,\n a = [],\n c = \"left\" === this.options.align;\n this.allItems.forEach(function (d) {\n var e;\n var g = c;\n\n if (d.yAxis) {\n d.xAxis.options.reversed && (g = !g);\n d.points && (e = n(g ? d.points : d.points.slice(0).reverse(), function (b) {\n return w(b.plotY);\n }));\n g = this.itemMarginTop + d.legendItem.getBBox().height + this.itemMarginBottom;\n var f = d.yAxis.top - b.plotTop;\n d.visible ? (e = e ? e.plotY : d.yAxis.height, e += f - .3 * g) : e = f + d.yAxis.height;\n a.push({\n target: e,\n size: g,\n item: d\n });\n }\n }, this);\n m(a, b.plotHeight).forEach(function (a) {\n a.item._legendItemPos && (a.item._legendItemPos[1] = b.plotTop - b.spacing[0] + a.pos);\n });\n };\n\n a.prototype.render = function () {\n var b = this.chart,\n a = b.renderer,\n c = this.options,\n d = this.padding,\n e = this.getAllItems(),\n g = this.group,\n f = this.box;\n this.itemX = d;\n this.itemY = this.initialItemY;\n this.lastItemY = this.offsetWidth = 0;\n this.widthOption = q(c.width, b.spacingBox.width - d);\n var h = b.spacingBox.width - 2 * d - c.x;\n -1 < [\"rm\", \"lm\"].indexOf(this.getAlignment().substring(0, 2)) && (h /= 2);\n this.maxLegendWidth = this.widthOption || h;\n g || (this.group = g = a.g(\"legend\").addClass(c.className || \"\").attr({\n zIndex: 7\n }).add(), this.contentGroup = a.g().attr({\n zIndex: 1\n }).add(g), this.scrollGroup = a.g().add(this.contentGroup));\n this.renderTitle();\n k(e, function (b, a) {\n return (b.options && b.options.legendIndex || 0) - (a.options && a.options.legendIndex || 0);\n });\n c.reversed && e.reverse();\n this.allItems = e;\n this.display = h = !!e.length;\n this.itemHeight = this.totalItemWidth = this.maxItemWidth = this.lastLineHeight = 0;\n e.forEach(this.renderItem, this);\n e.forEach(this.layoutItem, this);\n e = (this.widthOption || this.offsetWidth) + d;\n var l = this.lastItemY + this.lastLineHeight + this.titleHeight;\n l = this.handleOverflow(l);\n l += d;\n f || (this.box = f = a.rect().addClass(\"highcharts-legend-box\").attr({\n r: c.borderRadius\n }).add(g));\n b.styledMode || f.attr({\n stroke: c.borderColor,\n \"stroke-width\": c.borderWidth || 0,\n fill: c.backgroundColor || \"none\"\n }).shadow(c.shadow);\n if (0 < e && 0 < l) f[f.placed ? \"animate\" : \"attr\"](f.crisp.call({}, {\n x: 0,\n y: 0,\n width: e,\n height: l\n }, f.strokeWidth()));\n f[h ? \"show\" : \"hide\"]();\n b.styledMode && \"none\" === g.getStyle(\"display\") && (e = l = 0);\n this.legendWidth = e;\n this.legendHeight = l;\n h && this.align();\n this.proximate || this.positionItems();\n v(this, \"afterRender\");\n };\n\n a.prototype.align = function (b) {\n void 0 === b && (b = this.chart.spacingBox);\n var a = this.chart,\n c = this.options,\n d = b.y;\n /(lth|ct|rth)/.test(this.getAlignment()) && 0 < a.titleOffset[0] ? d += a.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && 0 < a.titleOffset[2] && (d -= a.titleOffset[2]);\n d !== b.y && (b = y(b, {\n y: d\n }));\n a.hasRendered || (this.group.placed = !1);\n this.group.align(y(c, {\n width: this.legendWidth,\n height: this.legendHeight,\n verticalAlign: this.proximate ? \"top\" : c.verticalAlign\n }), !0, b);\n };\n\n a.prototype.handleOverflow = function (b) {\n var a = this,\n c = this.chart,\n d = c.renderer,\n e = this.options,\n g = e.y,\n f = \"top\" === e.verticalAlign,\n k = this.padding,\n h = e.maxHeight,\n l = e.navigation,\n m = A(l.animation, !0),\n n = l.arrowSize || 12,\n q = this.pages,\n p = this.allItems,\n t = function t(b) {\n \"number\" === typeof b ? v.attr({\n height: b\n }) : v && (a.clipRect = v.destroy(), a.contentGroup.clip());\n a.contentGroup.div && (a.contentGroup.div.style.clip = b ? \"rect(\" + k + \"px,9999px,\" + (k + b) + \"px,0)\" : \"auto\");\n },\n w = function w(b) {\n a[b] = d.circle(0, 0, 1.3 * n).translate(n / 2, n / 2).add(N);\n c.styledMode || a[b].attr(\"fill\", \"rgba(0,0,0,0.0001)\");\n return a[b];\n },\n E,\n y;\n\n g = c.spacingBox.height + (f ? -g : g) - k;\n var N = this.nav,\n v = this.clipRect;\n \"horizontal\" !== e.layout || \"middle\" === e.verticalAlign || e.floating || (g /= 2);\n h && (g = Math.min(g, h));\n q.length = 0;\n b && 0 < g && b > g && !1 !== l.enabled ? (this.clipHeight = E = Math.max(g - 20 - this.titleHeight - k, 0), this.currentPage = A(this.currentPage, 1), this.fullHeight = b, p.forEach(function (b, a) {\n var c = b._legendItemPos[1],\n d = Math.round(b.legendItem.getBBox().height),\n e = q.length;\n if (!e || c - q[e - 1] > E && (y || c) !== q[e - 1]) q.push(y || c), e++;\n b.pageIx = e - 1;\n y && (p[a - 1].pageIx = e - 1);\n a === p.length - 1 && c + d - q[e - 1] > E && d <= E && (q.push(c), b.pageIx = e);\n c !== y && (y = c);\n }), v || (v = a.clipRect = d.clipRect(0, k, 9999, 0), a.contentGroup.clip(v)), t(E), N || (this.nav = N = d.g().attr({\n zIndex: 1\n }).add(this.group), this.up = d.symbol(\"triangle\", 0, 0, n, n).add(N), w(\"upTracker\").on(\"click\", function () {\n a.scroll(-1, m);\n }), this.pager = d.text(\"\", 15, 10).addClass(\"highcharts-legend-navigation\"), !c.styledMode && l.style && this.pager.css(l.style), this.pager.add(N), this.down = d.symbol(\"triangle-down\", 0, 0, n, n).add(N), w(\"downTracker\").on(\"click\", function () {\n a.scroll(1, m);\n })), a.scroll(0), b = g) : N && (t(), this.nav = N.destroy(), this.scrollGroup.attr({\n translateY: 1\n }), this.clipHeight = 0);\n return b;\n };\n\n a.prototype.scroll = function (b, a) {\n var d = this,\n e = this.chart,\n g = this.pages,\n f = g.length,\n k = this.clipHeight,\n h = this.options.navigation,\n l = this.pager,\n m = this.padding,\n n = this.currentPage + b;\n n > f && (n = f);\n 0 < n && (\"undefined\" !== typeof a && B(a, e), this.nav.attr({\n translateX: m,\n translateY: k + this.padding + 7 + this.titleHeight,\n visibility: \"visible\"\n }), [this.up, this.upTracker].forEach(function (b) {\n b.attr({\n \"class\": 1 === n ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }), l.attr({\n text: n + \"/\" + f\n }), [this.down, this.downTracker].forEach(function (b) {\n b.attr({\n x: 18 + this.pager.getBBox().width,\n \"class\": n === f ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }, this), e.styledMode || (this.up.attr({\n fill: 1 === n ? h.inactiveColor : h.activeColor\n }), this.upTracker.css({\n cursor: 1 === n ? \"default\" : \"pointer\"\n }), this.down.attr({\n fill: n === f ? h.inactiveColor : h.activeColor\n }), this.downTracker.css({\n cursor: n === f ? \"default\" : \"pointer\"\n })), this.scrollOffset = -g[n - 1] + this.initialItemY, this.scrollGroup.animate({\n translateY: this.scrollOffset\n }), this.currentPage = n, this.positionCheckboxes(), b = F(A(a, e.renderer.globalAnimation, !0)), c(function () {\n v(d, \"afterScroll\", {\n currentPage: n\n });\n }, b.duration));\n };\n\n a.prototype.setItemEvents = function (b, a, c) {\n var d = this,\n e = d.chart.renderer.boxWrapper,\n g = b instanceof G,\n f = \"highcharts-legend-\" + (g ? \"point\" : \"series\") + \"-active\",\n k = d.chart.styledMode,\n h = function h(a) {\n d.allItems.forEach(function (c) {\n b !== c && [c].concat(c.linkedSeries || []).forEach(function (b) {\n b.setState(a, !g);\n });\n });\n };\n\n (c ? [a, b.legendSymbol] : [b.legendGroup]).forEach(function (c) {\n if (c) c.on(\"mouseover\", function () {\n b.visible && h(\"inactive\");\n b.setState(\"hover\");\n b.visible && e.addClass(f);\n k || a.css(d.options.itemHoverStyle);\n }).on(\"mouseout\", function () {\n d.chart.styledMode || a.css(y(b.visible ? d.itemStyle : d.itemHiddenStyle));\n h(\"\");\n e.removeClass(f);\n b.setState();\n }).on(\"click\", function (a) {\n var c = function c() {\n b.setVisible && b.setVisible();\n h(b.visible ? \"inactive\" : \"\");\n };\n\n e.removeClass(f);\n a = {\n browserEvent: a\n };\n b.firePointEvent ? b.firePointEvent(\"legendItemClick\", a, c) : v(b, \"legendItemClick\", a, c);\n });\n });\n };\n\n a.prototype.createCheckboxForItem = function (b) {\n b.checkbox = d(\"input\", {\n type: \"checkbox\",\n className: \"highcharts-legend-checkbox\",\n checked: b.selected,\n defaultChecked: b.selected\n }, this.options.itemCheckboxStyle, this.chart.container);\n e(b.checkbox, \"click\", function (a) {\n v(b.series || b, \"checkboxClick\", {\n checked: a.target.checked,\n item: b\n }, function () {\n b.select();\n });\n });\n };\n\n return a;\n }();\n\n (/Trident\\/7\\.0/.test(C.navigator && C.navigator.userAgent) || a) && u(H.prototype, \"positionItem\", function (a, b) {\n var c = this,\n d = function d() {\n b._legendItemPos && a.call(c, b);\n };\n\n d();\n c.bubbleLegend || setTimeout(d);\n });\n \"\";\n return H;\n });\n M(f, \"Core/Series/SeriesRegistry.js\", [f[\"Core/Globals.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/Series/Point.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G) {\n var u = f.defaultOptions,\n F = G.error,\n I = G.extendClass,\n B = G.merge,\n z;\n\n (function (f) {\n function m(a, d) {\n var e = u.plotOptions || {},\n h = d.defaultOptions;\n d.prototype.pointClass || (d.prototype.pointClass = C);\n d.prototype.type = a;\n h && (e[a] = h);\n f.seriesTypes[a] = d;\n }\n\n f.seriesTypes = a.seriesTypes;\n\n f.getSeries = function (a, d) {\n void 0 === d && (d = {});\n var e = a.options.chart;\n e = d.type || e.type || e.defaultSeriesType || \"\";\n var h = f.seriesTypes[e];\n f || F(17, !0, a, {\n missingModuleFor: e\n });\n e = new h();\n \"function\" === typeof e.init && e.init(a, d);\n return e;\n };\n\n f.registerSeriesType = m;\n\n f.seriesType = function (a, d, l, h, p) {\n var e = u.plotOptions || {};\n d = d || \"\";\n e[a] = B(e[d], l);\n m(a, I(f.seriesTypes[d] || function () {}, h));\n f.seriesTypes[a].prototype.type = a;\n p && (f.seriesTypes[a].prototype.pointClass = I(C, p));\n return f.seriesTypes[a];\n };\n })(z || (z = {}));\n\n return z;\n });\n M(f, \"Core/Chart/Chart.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Axis/Axis.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Foundation.js\"], f[\"Core/Globals.js\"], f[\"Core/Legend/Legend.js\"], f[\"Core/MSPointer.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/Pointer.js\"], f[\"Core/Renderer/RendererRegistry.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Renderer/SVG/SVGRenderer.js\"], f[\"Core/Time.js\"], f[\"Core/Utilities.js\"], f[\"Core/Renderer/HTML/AST.js\"]], function (a, f, C, G, u, H, I, B, z, p, m, e, d, l, h) {\n var t = a.animate,\n n = a.animObject,\n v = a.setAnimation,\n w = C.numberFormat,\n y = G.registerEventOptions,\n A = u.charts,\n q = u.doc,\n k = u.marginNames,\n c = u.svg,\n g = u.win,\n b = B.defaultOptions,\n r = B.defaultTime,\n x = m.seriesTypes,\n D = l.addEvent,\n K = l.attr,\n F = l.cleanRecursively,\n Q = l.createElement,\n O = l.css,\n W = l.defined,\n Z = l.discardElement,\n L = l.erase,\n J = l.error,\n M = l.extend,\n da = l.find,\n R = l.fireEvent,\n ea = l.getStyle,\n E = l.isArray,\n T = l.isNumber,\n N = l.isObject,\n U = l.isString,\n V = l.merge,\n X = l.objectEach,\n S = l.pick,\n fa = l.pInt,\n aa = l.relativeLength,\n ia = l.removeEvent,\n ha = l.splat,\n ba = l.syncTimeout,\n ka = l.uniqueKey;\n\n a = function () {\n function a(b, a, c) {\n 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;\n this.sharedClips = {};\n this.yAxis = this.xAxis = this.userOptions = this.titleOffset = this.time = this.symbolCounter = this.spacingBox = this.spacing = void 0;\n this.getArgs(b, a, c);\n }\n\n a.chart = function (b, c, d) {\n return new a(b, c, d);\n };\n\n a.prototype.getArgs = function (b, a, c) {\n U(b) || b.nodeName ? (this.renderTo = b, this.init(a, c)) : this.init(b, a);\n };\n\n a.prototype.init = function (a, c) {\n var e = a.plotOptions || {};\n R(this, \"init\", {\n args: arguments\n }, function () {\n var g = V(b, a),\n f = g.chart;\n X(g.plotOptions, function (b, a) {\n N(b) && (b.tooltip = e[a] && V(e[a].tooltip) || void 0);\n });\n g.tooltip.userOptions = a.chart && a.chart.forExport && a.tooltip.userOptions || a.tooltip;\n this.userOptions = a;\n this.margin = [];\n this.spacing = [];\n this.bounds = {\n h: {},\n v: {}\n };\n this.labelCollectors = [];\n this.callback = c;\n this.isResizing = 0;\n this.options = g;\n this.axes = [];\n this.series = [];\n this.time = a.time && Object.keys(a.time).length ? new d(a.time) : u.time;\n this.numberFormatter = f.numberFormatter || w;\n this.styledMode = f.styledMode;\n this.hasCartesianSeries = f.showAxes;\n this.index = A.length;\n A.push(this);\n u.chartCount++;\n y(this, f);\n this.xAxis = [];\n this.yAxis = [];\n this.pointCount = this.colorCounter = this.symbolCounter = 0;\n R(this, \"afterInit\");\n this.firstRender();\n });\n };\n\n a.prototype.initSeries = function (b) {\n var a = this.options.chart;\n a = b.type || a.type || a.defaultSeriesType;\n var c = x[a];\n c || J(17, !0, this, {\n missingModuleFor: a\n });\n a = new c();\n \"function\" === typeof a.init && a.init(this, b);\n return a;\n };\n\n a.prototype.setSeriesData = function () {\n this.getSeriesOrderByLinks().forEach(function (b) {\n b.points || b.data || !b.enabledDataSorting || b.setData(b.options.data, !1);\n });\n };\n\n a.prototype.getSeriesOrderByLinks = function () {\n return this.series.concat().sort(function (b, a) {\n return b.linkedSeries.length || a.linkedSeries.length ? a.linkedSeries.length - b.linkedSeries.length : 0;\n });\n };\n\n a.prototype.orderSeries = function (b) {\n var a = this.series;\n b = b || 0;\n\n for (var c = a.length; b < c; ++b) {\n a[b] && (a[b].index = b, a[b].name = a[b].getName());\n }\n };\n\n a.prototype.isInsidePlot = function (b, a, c) {\n void 0 === c && (c = {});\n var d = this.inverted,\n e = this.plotBox,\n g = this.plotLeft,\n f = this.plotTop,\n k = this.scrollablePlotBox,\n h = 0;\n var l = 0;\n c.visiblePlotOnly && this.scrollingContainer && (l = this.scrollingContainer, h = l.scrollLeft, l = l.scrollTop);\n var m = c.series;\n e = c.visiblePlotOnly && k || e;\n k = c.inverted ? a : b;\n a = c.inverted ? b : a;\n b = {\n x: k,\n y: a,\n isInsidePlot: !0\n };\n\n if (!c.ignoreX) {\n var n = m && (d ? m.yAxis : m.xAxis) || {\n pos: g,\n len: Infinity\n };\n k = c.paneCoordinates ? n.pos + k : g + k;\n k >= Math.max(h + g, n.pos) && k <= Math.min(h + g + e.width, n.pos + n.len) || (b.isInsidePlot = !1);\n }\n\n !c.ignoreY && b.isInsidePlot && (d = m && (d ? m.xAxis : m.yAxis) || {\n pos: f,\n len: Infinity\n }, c = c.paneCoordinates ? d.pos + a : f + a, c >= Math.max(l + f, d.pos) && c <= Math.min(l + f + e.height, d.pos + d.len) || (b.isInsidePlot = !1));\n R(this, \"afterIsInsidePlot\", b);\n return b.isInsidePlot;\n };\n\n a.prototype.redraw = function (b) {\n R(this, \"beforeRedraw\");\n var a = this.hasCartesianSeries ? this.axes : this.colorAxis || [],\n c = this.series,\n d = this.pointer,\n e = this.legend,\n g = this.userOptions.legend,\n f = this.renderer,\n k = f.isHidden(),\n h = [],\n l = this.isDirtyBox,\n m = this.isDirtyLegend;\n this.setResponsive && this.setResponsive(!1);\n v(this.hasRendered ? b : !1, this);\n k && this.temporaryDisplay();\n this.layOutTitles();\n\n for (b = c.length; b--;) {\n var n = c[b];\n\n if (n.options.stacking || n.options.centerInCategory) {\n var q = !0;\n\n if (n.isDirty) {\n var E = !0;\n break;\n }\n }\n }\n\n if (E) for (b = c.length; b--;) {\n n = c[b], n.options.stacking && (n.isDirty = !0);\n }\n c.forEach(function (b) {\n b.isDirty && (\"point\" === b.options.legendType ? (\"function\" === typeof b.updateTotals && b.updateTotals(), m = !0) : g && (g.labelFormatter || g.labelFormat) && (m = !0));\n b.isDirtyData && R(b, \"updatedData\");\n });\n m && e && e.options.enabled && (e.render(), this.isDirtyLegend = !1);\n q && this.getStacks();\n a.forEach(function (b) {\n b.updateNames();\n b.setScale();\n });\n this.getMargins();\n a.forEach(function (b) {\n b.isDirty && (l = !0);\n });\n a.forEach(function (b) {\n var a = b.min + \",\" + b.max;\n b.extKey !== a && (b.extKey = a, h.push(function () {\n R(b, \"afterSetExtremes\", M(b.eventArgs, b.getExtremes()));\n delete b.eventArgs;\n }));\n (l || q) && b.redraw();\n });\n l && this.drawChartBox();\n R(this, \"predraw\");\n c.forEach(function (b) {\n (l || b.isDirty) && b.visible && b.redraw();\n b.isDirtyData = !1;\n });\n d && d.reset(!0);\n f.draw();\n R(this, \"redraw\");\n R(this, \"render\");\n k && this.temporaryDisplay(!0);\n h.forEach(function (b) {\n b.call();\n });\n };\n\n a.prototype.get = function (b) {\n function a(a) {\n return a.id === b || a.options && a.options.id === b;\n }\n\n for (var c = this.series, d = da(this.axes, a) || da(this.series, a), e = 0; !d && e < c.length; e++) {\n d = da(c[e].points || [], a);\n }\n\n return d;\n };\n\n a.prototype.getAxes = function () {\n var b = this,\n a = this.options,\n c = a.xAxis = ha(a.xAxis || {});\n a = a.yAxis = ha(a.yAxis || {});\n R(this, \"getAxes\");\n c.forEach(function (b, a) {\n b.index = a;\n b.isX = !0;\n });\n a.forEach(function (b, a) {\n b.index = a;\n });\n c.concat(a).forEach(function (a) {\n new f(b, a);\n });\n R(this, \"afterGetAxes\");\n };\n\n a.prototype.getSelectedPoints = function () {\n return this.series.reduce(function (b, a) {\n a.getPointsCollection().forEach(function (a) {\n S(a.selectedStaging, a.selected) && b.push(a);\n });\n return b;\n }, []);\n };\n\n a.prototype.getSelectedSeries = function () {\n return this.series.filter(function (b) {\n return b.selected;\n });\n };\n\n a.prototype.setTitle = function (b, a, c) {\n this.applyDescription(\"title\", b);\n this.applyDescription(\"subtitle\", a);\n this.applyDescription(\"caption\", void 0);\n this.layOutTitles(c);\n };\n\n a.prototype.applyDescription = function (b, a) {\n var c = this,\n d = \"title\" === b ? {\n color: \"#333333\",\n fontSize: this.options.isStock ? \"16px\" : \"18px\"\n } : {\n color: \"#666666\"\n };\n d = this.options[b] = V(!this.styledMode && {\n style: d\n }, this.options[b], a);\n var e = this[b];\n e && a && (this[b] = e = e.destroy());\n d && !e && (e = this.renderer.text(d.text, 0, 0, d.useHTML).attr({\n align: d.align,\n \"class\": \"highcharts-\" + b,\n zIndex: d.zIndex || 4\n }).add(), e.update = function (a) {\n c[{\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n }[b]](a);\n }, this.styledMode || e.css(d.style), this[b] = e);\n };\n\n a.prototype.layOutTitles = function (b) {\n var a = [0, 0, 0],\n c = this.renderer,\n d = this.spacingBox;\n [\"title\", \"subtitle\", \"caption\"].forEach(function (b) {\n var e = this[b],\n g = this.options[b],\n f = g.verticalAlign || \"top\";\n b = \"title\" === b ? \"top\" === f ? -3 : 0 : \"top\" === f ? a[0] + 2 : 0;\n var k;\n\n if (e) {\n this.styledMode || (k = g.style && g.style.fontSize);\n k = c.fontMetrics(k, e).b;\n e.css({\n width: (g.width || d.width + (g.widthAdjust || 0)) + \"px\"\n });\n var h = Math.round(e.getBBox(g.useHTML).height);\n e.align(M({\n y: \"bottom\" === f ? k : b + k,\n height: h\n }, g), !1, \"spacingBox\");\n g.floating || (\"top\" === f ? a[0] = Math.ceil(a[0] + h) : \"bottom\" === f && (a[2] = Math.ceil(a[2] + h)));\n }\n }, this);\n a[0] && \"top\" === (this.options.title.verticalAlign || \"top\") && (a[0] += this.options.title.margin);\n a[2] && \"bottom\" === this.options.caption.verticalAlign && (a[2] += this.options.caption.margin);\n var e = !this.titleOffset || this.titleOffset.join(\",\") !== a.join(\",\");\n this.titleOffset = a;\n R(this, \"afterLayOutTitles\");\n !this.isDirtyBox && e && (this.isDirtyBox = this.isDirtyLegend = e, this.hasRendered && S(b, !0) && this.isDirtyBox && this.redraw());\n };\n\n a.prototype.getChartSize = function () {\n var b = this.options.chart,\n a = b.width;\n b = b.height;\n var c = this.renderTo;\n W(a) || (this.containerWidth = ea(c, \"width\"));\n W(b) || (this.containerHeight = ea(c, \"height\"));\n this.chartWidth = Math.max(0, a || this.containerWidth || 600);\n this.chartHeight = Math.max(0, aa(b, this.chartWidth) || (1 < this.containerHeight ? this.containerHeight : 400));\n };\n\n a.prototype.temporaryDisplay = function (b) {\n var a = this.renderTo;\n if (b) for (; a && a.style;) {\n a.hcOrigStyle && (O(a, a.hcOrigStyle), delete a.hcOrigStyle), a.hcOrigDetached && (q.body.removeChild(a), a.hcOrigDetached = !1), a = a.parentNode;\n } else for (; a && a.style;) {\n q.body.contains(a) || a.parentNode || (a.hcOrigDetached = !0, q.body.appendChild(a));\n if (\"none\" === ea(a, \"display\", !1) || a.hcOricDetached) a.hcOrigStyle = {\n display: a.style.display,\n height: a.style.height,\n overflow: a.style.overflow\n }, b = {\n display: \"block\",\n overflow: \"hidden\"\n }, a !== this.renderTo && (b.height = 0), O(a, b), a.offsetWidth || a.style.setProperty(\"display\", \"block\", \"important\");\n a = a.parentNode;\n if (a === q.body) break;\n }\n };\n\n a.prototype.setClassName = function (b) {\n this.container.className = \"highcharts-container \" + (b || \"\");\n };\n\n a.prototype.getContainer = function () {\n var b = this.options,\n a = b.chart,\n d = ka(),\n g,\n f = this.renderTo;\n f || (this.renderTo = f = a.renderTo);\n U(f) && (this.renderTo = f = q.getElementById(f));\n f || J(13, !0, this);\n var k = fa(K(f, \"data-highcharts-chart\"));\n T(k) && A[k] && A[k].hasRendered && A[k].destroy();\n K(f, \"data-highcharts-chart\", this.index);\n f.innerHTML = h.emptyHTML;\n a.skipClone || f.offsetWidth || this.temporaryDisplay();\n this.getChartSize();\n k = this.chartWidth;\n var l = this.chartHeight;\n O(f, {\n overflow: \"hidden\"\n });\n this.styledMode || (g = M({\n position: \"relative\",\n overflow: \"hidden\",\n width: k + \"px\",\n height: l + \"px\",\n textAlign: \"left\",\n lineHeight: \"normal\",\n zIndex: 0,\n \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\",\n userSelect: \"none\",\n \"touch-action\": \"manipulation\",\n outline: \"none\"\n }, a.style || {}));\n this.container = d = Q(\"div\", {\n id: d\n }, g, f);\n this._cursor = d.style.cursor;\n this.renderer = new (a.renderer || !c ? p.getRendererType(a.renderer) : e)(d, k, l, void 0, a.forExport, b.exporting && b.exporting.allowHTML, this.styledMode);\n v(void 0, this);\n this.setClassName(a.className);\n if (this.styledMode) for (var m in b.defs) {\n this.renderer.definition(b.defs[m]);\n } else this.renderer.setStyle(a.style);\n this.renderer.chartIndex = this.index;\n R(this, \"afterGetContainer\");\n };\n\n a.prototype.getMargins = function (b) {\n var a = this.spacing,\n c = this.margin,\n d = this.titleOffset;\n this.resetMargins();\n d[0] && !W(c[0]) && (this.plotTop = Math.max(this.plotTop, d[0] + a[0]));\n d[2] && !W(c[2]) && (this.marginBottom = Math.max(this.marginBottom, d[2] + a[2]));\n this.legend && this.legend.display && this.legend.adjustMargins(c, a);\n R(this, \"getMargins\");\n b || this.getAxisMargins();\n };\n\n a.prototype.getAxisMargins = function () {\n var b = this,\n a = b.axisOffset = [0, 0, 0, 0],\n c = b.colorAxis,\n d = b.margin,\n e = function e(b) {\n b.forEach(function (b) {\n b.visible && b.getOffset();\n });\n };\n\n b.hasCartesianSeries ? e(b.axes) : c && c.length && e(c);\n k.forEach(function (c, e) {\n W(d[e]) || (b[c] += a[e]);\n });\n b.setChartSize();\n };\n\n a.prototype.reflow = function (b) {\n var a = this,\n c = a.options.chart,\n d = a.renderTo,\n e = W(c.width) && W(c.height),\n f = c.width || ea(d, \"width\");\n c = c.height || ea(d, \"height\");\n d = b ? b.target : g;\n delete a.pointer.chartPosition;\n\n if (!e && !a.isPrinting && f && c && (d === g || d === q)) {\n if (f !== a.containerWidth || c !== a.containerHeight) l.clearTimeout(a.reflowTimeout), a.reflowTimeout = ba(function () {\n a.container && a.setSize(void 0, void 0, !1);\n }, b ? 100 : 0);\n a.containerWidth = f;\n a.containerHeight = c;\n }\n };\n\n a.prototype.setReflow = function (b) {\n var a = this;\n !1 === b || this.unbindReflow ? !1 === b && this.unbindReflow && (this.unbindReflow = this.unbindReflow()) : (this.unbindReflow = D(g, \"resize\", function (b) {\n a.options && a.reflow(b);\n }), D(this, \"destroy\", this.unbindReflow));\n };\n\n a.prototype.setSize = function (b, a, c) {\n var d = this,\n e = d.renderer;\n d.isResizing += 1;\n v(c, d);\n c = e.globalAnimation;\n d.oldChartHeight = d.chartHeight;\n d.oldChartWidth = d.chartWidth;\n \"undefined\" !== typeof b && (d.options.chart.width = b);\n \"undefined\" !== typeof a && (d.options.chart.height = a);\n d.getChartSize();\n d.styledMode || (c ? t : O)(d.container, {\n width: d.chartWidth + \"px\",\n height: d.chartHeight + \"px\"\n }, c);\n d.setChartSize(!0);\n e.setSize(d.chartWidth, d.chartHeight, c);\n d.axes.forEach(function (b) {\n b.isDirty = !0;\n b.setScale();\n });\n d.isDirtyLegend = !0;\n d.isDirtyBox = !0;\n d.layOutTitles();\n d.getMargins();\n d.redraw(c);\n d.oldChartHeight = null;\n R(d, \"resize\");\n ba(function () {\n d && R(d, \"endResize\", null, function () {\n --d.isResizing;\n });\n }, n(c).duration);\n };\n\n a.prototype.setChartSize = function (b) {\n var a = this.inverted,\n c = this.renderer,\n d = this.chartWidth,\n e = this.chartHeight,\n g = this.options.chart,\n f = this.spacing,\n k = this.clipOffset,\n h,\n l,\n m,\n n;\n this.plotLeft = h = Math.round(this.plotLeft);\n this.plotTop = l = Math.round(this.plotTop);\n this.plotWidth = m = Math.max(0, Math.round(d - h - this.marginRight));\n this.plotHeight = n = Math.max(0, Math.round(e - l - this.marginBottom));\n this.plotSizeX = a ? n : m;\n this.plotSizeY = a ? m : n;\n this.plotBorderWidth = g.plotBorderWidth || 0;\n this.spacingBox = c.spacingBox = {\n x: f[3],\n y: f[0],\n width: d - f[3] - f[1],\n height: e - f[0] - f[2]\n };\n this.plotBox = c.plotBox = {\n x: h,\n y: l,\n width: m,\n height: n\n };\n a = 2 * Math.floor(this.plotBorderWidth / 2);\n d = Math.ceil(Math.max(a, k[3]) / 2);\n e = Math.ceil(Math.max(a, k[0]) / 2);\n this.clipBox = {\n x: d,\n y: e,\n width: Math.floor(this.plotSizeX - Math.max(a, k[1]) / 2 - d),\n height: Math.max(0, Math.floor(this.plotSizeY - Math.max(a, k[2]) / 2 - e))\n };\n b || (this.axes.forEach(function (b) {\n b.setAxisSize();\n b.setAxisTranslation();\n }), c.alignElements());\n R(this, \"afterSetChartSize\", {\n skipAxes: b\n });\n };\n\n a.prototype.resetMargins = function () {\n R(this, \"resetMargins\");\n var b = this,\n a = b.options.chart;\n [\"margin\", \"spacing\"].forEach(function (c) {\n var d = a[c],\n e = N(d) ? d : [d, d, d, d];\n [\"Top\", \"Right\", \"Bottom\", \"Left\"].forEach(function (d, g) {\n b[c][g] = S(a[c + d], e[g]);\n });\n });\n k.forEach(function (a, c) {\n b[a] = S(b.margin[c], b.spacing[c]);\n });\n b.axisOffset = [0, 0, 0, 0];\n b.clipOffset = [0, 0, 0, 0];\n };\n\n a.prototype.drawChartBox = function () {\n var b = this.options.chart,\n a = this.renderer,\n c = this.chartWidth,\n d = this.chartHeight,\n e = this.styledMode,\n g = this.plotBGImage,\n f = b.backgroundColor,\n k = b.plotBackgroundColor,\n h = b.plotBackgroundImage,\n l = this.plotLeft,\n m = this.plotTop,\n n = this.plotWidth,\n q = this.plotHeight,\n E = this.plotBox,\n r = this.clipRect,\n p = this.clipBox,\n t = this.chartBackground,\n N = this.plotBackground,\n w = this.plotBorder,\n y,\n v = \"animate\";\n t || (this.chartBackground = t = a.rect().addClass(\"highcharts-background\").add(), v = \"attr\");\n if (e) var A = y = t.strokeWidth();else {\n A = b.borderWidth || 0;\n y = A + (b.shadow ? 8 : 0);\n f = {\n fill: f || \"none\"\n };\n if (A || t[\"stroke-width\"]) f.stroke = b.borderColor, f[\"stroke-width\"] = A;\n t.attr(f).shadow(b.shadow);\n }\n t[v]({\n x: y / 2,\n y: y / 2,\n width: c - y - A % 2,\n height: d - y - A % 2,\n r: b.borderRadius\n });\n v = \"animate\";\n N || (v = \"attr\", this.plotBackground = N = a.rect().addClass(\"highcharts-plot-background\").add());\n N[v](E);\n e || (N.attr({\n fill: k || \"none\"\n }).shadow(b.plotShadow), h && (g ? (h !== g.attr(\"href\") && g.attr(\"href\", h), g.animate(E)) : this.plotBGImage = a.image(h, l, m, n, q).add()));\n r ? r.animate({\n width: p.width,\n height: p.height\n }) : this.clipRect = a.clipRect(p);\n v = \"animate\";\n w || (v = \"attr\", this.plotBorder = w = a.rect().addClass(\"highcharts-plot-border\").attr({\n zIndex: 1\n }).add());\n e || w.attr({\n stroke: b.plotBorderColor,\n \"stroke-width\": b.plotBorderWidth || 0,\n fill: \"none\"\n });\n w[v](w.crisp({\n x: l,\n y: m,\n width: n,\n height: q\n }, -w.strokeWidth()));\n this.isDirtyBox = !1;\n R(this, \"afterDrawChartBox\");\n };\n\n a.prototype.propFromSeries = function () {\n var b = this,\n a = b.options.chart,\n c = b.options.series,\n d,\n e,\n g;\n [\"inverted\", \"angular\", \"polar\"].forEach(function (f) {\n e = x[a.type || a.defaultSeriesType];\n g = a[f] || e && e.prototype[f];\n\n for (d = c && c.length; !g && d--;) {\n (e = x[c[d].type]) && e.prototype[f] && (g = !0);\n }\n\n b[f] = g;\n });\n };\n\n a.prototype.linkSeries = function () {\n var b = this,\n a = b.series;\n a.forEach(function (b) {\n b.linkedSeries.length = 0;\n });\n a.forEach(function (a) {\n var c = a.options.linkedTo;\n U(c) && (c = \":previous\" === c ? b.series[a.index - 1] : b.get(c)) && c.linkedParent !== a && (c.linkedSeries.push(a), a.linkedParent = c, c.enabledDataSorting && a.setDataSortingOptions(), a.visible = S(a.options.visible, c.options.visible, a.visible));\n });\n R(this, \"afterLinkSeries\");\n };\n\n a.prototype.renderSeries = function () {\n this.series.forEach(function (b) {\n b.translate();\n b.render();\n });\n };\n\n a.prototype.renderLabels = function () {\n var b = this,\n a = b.options.labels;\n a.items && a.items.forEach(function (c) {\n var d = M(a.style, c.style),\n e = fa(d.left) + b.plotLeft,\n g = fa(d.top) + b.plotTop + 12;\n delete d.left;\n delete d.top;\n b.renderer.text(c.html, e, g).attr({\n zIndex: 2\n }).css(d).add();\n });\n };\n\n a.prototype.render = function () {\n var b = this.axes,\n a = this.colorAxis,\n c = this.renderer,\n d = this.options,\n e = function e(b) {\n b.forEach(function (b) {\n b.visible && b.render();\n });\n },\n g = 0;\n\n this.setTitle();\n this.legend = new H(this, d.legend);\n this.getStacks && this.getStacks();\n this.getMargins(!0);\n this.setChartSize();\n d = this.plotWidth;\n b.some(function (b) {\n if (b.horiz && b.visible && b.options.labels.enabled && b.series.length) return g = 21, !0;\n });\n var f = this.plotHeight = Math.max(this.plotHeight - g, 0);\n b.forEach(function (b) {\n b.setScale();\n });\n this.getAxisMargins();\n var k = 1.1 < d / this.plotWidth,\n h = 1.05 < f / this.plotHeight;\n if (k || h) b.forEach(function (b) {\n (b.horiz && k || !b.horiz && h) && b.setTickInterval(!0);\n }), this.getMargins();\n this.drawChartBox();\n this.hasCartesianSeries ? e(b) : a && a.length && e(a);\n this.seriesGroup || (this.seriesGroup = c.g(\"series-group\").attr({\n zIndex: 3\n }).add());\n this.renderSeries();\n this.renderLabels();\n this.addCredits();\n this.setResponsive && this.setResponsive();\n this.hasRendered = !0;\n };\n\n a.prototype.addCredits = function (b) {\n var a = this,\n c = V(!0, this.options.credits, b);\n c.enabled && !this.credits && (this.credits = this.renderer.text(c.text + (this.mapCredits || \"\"), 0, 0).addClass(\"highcharts-credits\").on(\"click\", function () {\n c.href && (g.location.href = c.href);\n }).attr({\n align: c.position.align,\n zIndex: 8\n }), a.styledMode || this.credits.css(c.style), this.credits.add().align(c.position), this.credits.update = function (b) {\n a.credits = a.credits.destroy();\n a.addCredits(b);\n });\n };\n\n a.prototype.destroy = function () {\n var b = this,\n a = b.axes,\n c = b.series,\n d = b.container,\n e = d && d.parentNode,\n g;\n R(b, \"destroy\");\n b.renderer.forExport ? L(A, b) : A[b.index] = void 0;\n u.chartCount--;\n b.renderTo.removeAttribute(\"data-highcharts-chart\");\n ia(b);\n\n for (g = a.length; g--;) {\n a[g] = a[g].destroy();\n }\n\n this.scroller && this.scroller.destroy && this.scroller.destroy();\n\n for (g = c.length; g--;) {\n c[g] = c[g].destroy();\n }\n\n \"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function (a) {\n var c = b[a];\n c && c.destroy && (b[a] = c.destroy());\n });\n d && (d.innerHTML = h.emptyHTML, ia(d), e && Z(d));\n X(b, function (a, c) {\n delete b[c];\n });\n };\n\n a.prototype.firstRender = function () {\n var b = this,\n a = b.options;\n\n if (!b.isReadyToRender || b.isReadyToRender()) {\n b.getContainer();\n b.resetMargins();\n b.setChartSize();\n b.propFromSeries();\n b.getAxes();\n (E(a.series) ? a.series : []).forEach(function (a) {\n b.initSeries(a);\n });\n b.linkSeries();\n b.setSeriesData();\n R(b, \"beforeRender\");\n z && (I.isRequired() ? b.pointer = new I(b, a) : b.pointer = new z(b, a));\n b.render();\n b.pointer.getChartPosition();\n if (!b.renderer.imgCount && !b.hasLoaded) b.onload();\n b.temporaryDisplay(!0);\n }\n };\n\n a.prototype.onload = function () {\n this.callbacks.concat([this.callback]).forEach(function (b) {\n b && \"undefined\" !== typeof this.index && b.apply(this, [this]);\n }, this);\n R(this, \"load\");\n R(this, \"render\");\n W(this.index) && this.setReflow(this.options.chart.reflow);\n this.hasLoaded = !0;\n };\n\n a.prototype.addSeries = function (b, a, c) {\n var d = this,\n e;\n b && (a = S(a, !0), R(d, \"addSeries\", {\n options: b\n }, function () {\n e = d.initSeries(b);\n d.isDirtyLegend = !0;\n d.linkSeries();\n e.enabledDataSorting && e.setData(b.data, !1);\n R(d, \"afterAddSeries\", {\n series: e\n });\n a && d.redraw(c);\n }));\n return e;\n };\n\n a.prototype.addAxis = function (b, a, c, d) {\n return this.createAxis(a ? \"xAxis\" : \"yAxis\", {\n axis: b,\n redraw: c,\n animation: d\n });\n };\n\n a.prototype.addColorAxis = function (b, a, c) {\n return this.createAxis(\"colorAxis\", {\n axis: b,\n redraw: a,\n animation: c\n });\n };\n\n a.prototype.createAxis = function (b, a) {\n b = new f(this, V(a.axis, {\n index: this[b].length,\n isX: \"xAxis\" === b\n }));\n S(a.redraw, !0) && this.redraw(a.animation);\n return b;\n };\n\n a.prototype.showLoading = function (b) {\n var a = this,\n c = a.options,\n d = c.loading,\n e = function e() {\n g && O(g, {\n left: a.plotLeft + \"px\",\n top: a.plotTop + \"px\",\n width: a.plotWidth + \"px\",\n height: a.plotHeight + \"px\"\n });\n },\n g = a.loadingDiv,\n f = a.loadingSpan;\n\n g || (a.loadingDiv = g = Q(\"div\", {\n className: \"highcharts-loading highcharts-loading-hidden\"\n }, null, a.container));\n f || (a.loadingSpan = f = Q(\"span\", {\n className: \"highcharts-loading-inner\"\n }, null, g), D(a, \"redraw\", e));\n g.className = \"highcharts-loading\";\n h.setElementHTML(f, S(b, c.lang.loading, \"\"));\n a.styledMode || (O(g, M(d.style, {\n zIndex: 10\n })), O(f, d.labelStyle), a.loadingShown || (O(g, {\n opacity: 0,\n display: \"\"\n }), t(g, {\n opacity: d.style.opacity || .5\n }, {\n duration: d.showDuration || 0\n })));\n a.loadingShown = !0;\n e();\n };\n\n a.prototype.hideLoading = function () {\n var b = this.options,\n a = this.loadingDiv;\n a && (a.className = \"highcharts-loading highcharts-loading-hidden\", this.styledMode || t(a, {\n opacity: 0\n }, {\n duration: b.loading.hideDuration || 100,\n complete: function complete() {\n O(a, {\n display: \"none\"\n });\n }\n }));\n this.loadingShown = !1;\n };\n\n a.prototype.update = function (b, a, c, e) {\n var g = this,\n f = {\n credits: \"addCredits\",\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n },\n k = b.isResponsiveOptions,\n h = [],\n l,\n m;\n R(g, \"update\", {\n options: b\n });\n k || g.setResponsive(!1, !0);\n b = F(b, g.options);\n g.userOptions = V(g.userOptions, b);\n var n = b.chart;\n\n if (n) {\n V(!0, g.options.chart, n);\n \"className\" in n && g.setClassName(n.className);\n \"reflow\" in n && g.setReflow(n.reflow);\n\n if (\"inverted\" in n || \"polar\" in n || \"type\" in n) {\n g.propFromSeries();\n var q = !0;\n }\n\n \"alignTicks\" in n && (q = !0);\n \"events\" in n && y(this, n);\n X(n, function (b, a) {\n -1 !== g.propsRequireUpdateSeries.indexOf(\"chart.\" + a) && (l = !0);\n -1 !== g.propsRequireDirtyBox.indexOf(a) && (g.isDirtyBox = !0);\n -1 !== g.propsRequireReflow.indexOf(a) && (k ? g.isDirtyBox = !0 : m = !0);\n });\n !g.styledMode && n.style && g.renderer.setStyle(g.options.chart.style || {});\n }\n\n !g.styledMode && b.colors && (this.options.colors = b.colors);\n b.time && (this.time === r && (this.time = new d(b.time)), V(!0, g.options.time, b.time));\n X(b, function (a, c) {\n if (g[c] && \"function\" === typeof g[c].update) g[c].update(a, !1);else if (\"function\" === typeof g[f[c]]) g[f[c]](a);else \"colors\" !== c && -1 === g.collectionsWithUpdate.indexOf(c) && V(!0, g.options[c], b[c]);\n \"chart\" !== c && -1 !== g.propsRequireUpdateSeries.indexOf(c) && (l = !0);\n });\n this.collectionsWithUpdate.forEach(function (a) {\n if (b[a]) {\n var d = [];\n g[a].forEach(function (b, a) {\n b.options.isInternal || d.push(S(b.options.index, a));\n });\n ha(b[a]).forEach(function (b, e) {\n var f = W(b.id),\n k;\n f && (k = g.get(b.id));\n !k && g[a] && (k = g[a][d ? d[e] : e]) && f && W(k.options.id) && (k = void 0);\n k && k.coll === a && (k.update(b, !1), c && (k.touched = !0));\n !k && c && g.collectionsWithInit[a] && (g.collectionsWithInit[a][0].apply(g, [b].concat(g.collectionsWithInit[a][1] || []).concat([!1])).touched = !0);\n });\n c && g[a].forEach(function (b) {\n b.touched || b.options.isInternal ? delete b.touched : h.push(b);\n });\n }\n });\n h.forEach(function (b) {\n b.chart && b.remove && b.remove(!1);\n });\n q && g.axes.forEach(function (b) {\n b.update({}, !1);\n });\n l && g.getSeriesOrderByLinks().forEach(function (b) {\n b.chart && b.update({}, !1);\n }, this);\n q = n && n.width;\n n = n && (U(n.height) ? aa(n.height, q || g.chartWidth) : n.height);\n m || T(q) && q !== g.chartWidth || T(n) && n !== g.chartHeight ? g.setSize(q, n, e) : S(a, !0) && g.redraw(e);\n R(g, \"afterUpdate\", {\n options: b,\n redraw: a,\n animation: e\n });\n };\n\n a.prototype.setSubtitle = function (b, a) {\n this.applyDescription(\"subtitle\", b);\n this.layOutTitles(a);\n };\n\n a.prototype.setCaption = function (b, a) {\n this.applyDescription(\"caption\", b);\n this.layOutTitles(a);\n };\n\n a.prototype.showResetZoom = function () {\n function a() {\n c.zoomOut();\n }\n\n var c = this,\n d = b.lang,\n e = c.options.chart.resetZoomButton,\n g = e.theme,\n f = g.states,\n k = \"chart\" === e.relativeTo || \"spacingBox\" === e.relativeTo ? null : \"scrollablePlotBox\";\n R(this, \"beforeShowResetZoom\", null, function () {\n c.resetZoomButton = c.renderer.button(d.resetZoom, null, null, a, g, f && f.hover).attr({\n align: e.position.align,\n title: d.resetZoomTitle\n }).addClass(\"highcharts-reset-zoom\").add().align(e.position, !1, k);\n });\n R(this, \"afterShowResetZoom\");\n };\n\n a.prototype.zoomOut = function () {\n R(this, \"selection\", {\n resetSelection: !0\n }, this.zoom);\n };\n\n a.prototype.zoom = function (b) {\n var a = this,\n c = a.pointer,\n d = a.inverted ? c.mouseDownX : c.mouseDownY,\n e = !1,\n g;\n !b || b.resetSelection ? (a.axes.forEach(function (b) {\n g = b.zoom();\n }), c.initiated = !1) : b.xAxis.concat(b.yAxis).forEach(function (b) {\n var f = b.axis,\n k = a.inverted ? f.left : f.top,\n h = a.inverted ? k + f.width : k + f.height,\n l = f.isXAxis,\n n = !1;\n if (!l && d >= k && d <= h || l || !W(d)) n = !0;\n c[l ? \"zoomX\" : \"zoomY\"] && n && (g = f.zoom(b.min, b.max), f.displayBtn && (e = !0));\n });\n var f = a.resetZoomButton;\n e && !f ? a.showResetZoom() : !e && N(f) && (a.resetZoomButton = f.destroy());\n g && a.redraw(S(a.options.chart.animation, b && b.animation, 100 > a.pointCount));\n };\n\n a.prototype.pan = function (b, a) {\n var c = this,\n d = c.hoverPoints;\n a = \"object\" === _typeof(a) ? a : {\n enabled: a,\n type: \"x\"\n };\n var e = c.options.chart,\n g = c.options.mapNavigation && c.options.mapNavigation.enabled;\n e && e.panning && (e.panning = a);\n var f = a.type,\n k;\n R(this, \"pan\", {\n originalEvent: b\n }, function () {\n d && d.forEach(function (b) {\n b.setState();\n });\n var a = c.xAxis;\n \"xy\" === f ? a = a.concat(c.yAxis) : \"y\" === f && (a = c.yAxis);\n var e = {};\n a.forEach(function (a) {\n if (a.options.panningEnabled && !a.options.isInternal) {\n var d = a.horiz,\n h = b[d ? \"chartX\" : \"chartY\"];\n d = d ? \"mouseDownX\" : \"mouseDownY\";\n var l = c[d],\n n = a.minPointOffset || 0,\n m = a.reversed && !c.inverted || !a.reversed && c.inverted ? -1 : 1,\n q = a.getExtremes(),\n E = a.toValue(l - h, !0) + n * m,\n r = a.toValue(l + a.len - h, !0) - (n * m || a.isXAxis && a.pointRangePadding || 0),\n p = r < E;\n m = a.hasVerticalPanning();\n l = p ? r : E;\n E = p ? E : r;\n var t = a.panningState;\n !m || a.isXAxis || t && !t.isDirty || a.series.forEach(function (b) {\n var a = b.getProcessedData(!0);\n a = b.getExtremes(a.yData, !0);\n t || (t = {\n startMin: Number.MAX_VALUE,\n startMax: -Number.MAX_VALUE\n });\n T(a.dataMin) && T(a.dataMax) && (t.startMin = Math.min(S(b.options.threshold, Infinity), a.dataMin, t.startMin), t.startMax = Math.max(S(b.options.threshold, -Infinity), a.dataMax, t.startMax));\n });\n m = Math.min(S(t && t.startMin, q.dataMin), n ? q.min : a.toValue(a.toPixels(q.min) - a.minPixelPadding));\n r = Math.max(S(t && t.startMax, q.dataMax), n ? q.max : a.toValue(a.toPixels(q.max) + a.minPixelPadding));\n a.panningState = t;\n a.isOrdinal || (n = m - l, 0 < n && (E += n, l = m), n = E - r, 0 < n && (E = r, l -= n), a.series.length && l !== q.min && E !== q.max && l >= m && E <= r && (a.setExtremes(l, E, !1, !1, {\n trigger: \"pan\"\n }), c.resetZoomButton || g || l === m || E === r || !f.match(\"y\") || (c.showResetZoom(), a.displayBtn = !1), k = !0), e[d] = h);\n }\n });\n X(e, function (b, a) {\n c[a] = b;\n });\n k && c.redraw(!1);\n O(c.container, {\n cursor: \"move\"\n });\n });\n };\n\n return a;\n }();\n\n M(a.prototype, {\n callbacks: [],\n collectionsWithInit: {\n xAxis: [a.prototype.addAxis, [!0]],\n yAxis: [a.prototype.addAxis, [!1]],\n series: [a.prototype.addSeries]\n },\n collectionsWithUpdate: [\"xAxis\", \"yAxis\", \"series\"],\n propsRequireDirtyBox: \"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),\n propsRequireReflow: \"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\n propsRequireUpdateSeries: \"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")\n });\n \"\";\n return a;\n });\n M(f, \"Core/Legend/LegendSymbol.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.merge,\n C = a.pick,\n G;\n\n (function (a) {\n a.drawLineMarker = function (a) {\n var u = this.options,\n B = a.symbolWidth,\n z = a.symbolHeight,\n p = z / 2,\n m = this.chart.renderer,\n e = this.legendGroup;\n a = a.baseline - Math.round(.3 * a.fontMetrics.b);\n var d = {},\n l = u.marker;\n this.chart.styledMode || (d = {\n \"stroke-width\": u.lineWidth || 0\n }, u.dashStyle && (d.dashstyle = u.dashStyle));\n this.legendLine = m.path([[\"M\", 0, a], [\"L\", B, a]]).addClass(\"highcharts-graph\").attr(d).add(e);\n l && !1 !== l.enabled && B && (u = Math.min(C(l.radius, p), p), 0 === this.symbol.indexOf(\"url\") && (l = f(l, {\n width: z,\n height: z\n }), u = 0), this.legendSymbol = B = m.symbol(this.symbol, B / 2 - u, a - u, 2 * u, 2 * u, l).addClass(\"highcharts-point\").add(e), B.isMarker = !0);\n };\n\n a.drawRectangle = function (a, f) {\n var u = a.symbolHeight,\n z = a.options.squareSymbol;\n f.legendSymbol = this.chart.renderer.rect(z ? (a.symbolWidth - u) / 2 : 0, a.baseline - u + 1, z ? u : a.symbolWidth, u, C(a.options.symbolRadius, u / 2)).addClass(\"highcharts-point\").attr({\n zIndex: 3\n }).add(f.legendGroup);\n };\n })(G || (G = {}));\n\n return G;\n });\n M(f, \"Core/Series/SeriesDefaults.js\", [], function () {\n return {\n lineWidth: 2,\n allowPointSelect: !1,\n crisp: !0,\n showCheckbox: !1,\n animation: {\n duration: 1E3\n },\n events: {},\n marker: {\n enabledThreshold: 2,\n lineColor: \"#ffffff\",\n lineWidth: 0,\n radius: 4,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n enabled: !0,\n radiusPlus: 2,\n lineWidthPlus: 1\n },\n select: {\n fillColor: \"#cccccc\",\n lineColor: \"#000000\",\n lineWidth: 2\n }\n }\n },\n point: {\n events: {}\n },\n dataLabels: {\n animation: {},\n align: \"center\",\n defer: !0,\n formatter: function formatter() {\n var a = this.series.chart.numberFormatter;\n return \"number\" !== typeof this.y ? \"\" : a(this.y, -1);\n },\n padding: 5,\n style: {\n fontSize: \"11px\",\n fontWeight: \"bold\",\n color: \"contrast\",\n textOutline: \"1px contrast\"\n },\n verticalAlign: \"bottom\",\n x: 0,\n y: 0\n },\n cropThreshold: 300,\n opacity: 1,\n pointRange: 0,\n softThreshold: !0,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n lineWidthPlus: 1,\n marker: {},\n halo: {\n size: 10,\n opacity: .25\n }\n },\n select: {\n animation: {\n duration: 0\n }\n },\n inactive: {\n animation: {\n duration: 50\n },\n opacity: .2\n }\n },\n stickyTracking: !0,\n turboThreshold: 1E3,\n findNearestPointBy: \"x\"\n };\n });\n M(f, \"Core/Series/Series.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/Foundation.js\"], f[\"Core/Globals.js\"], f[\"Core/Legend/LegendSymbol.js\"], f[\"Core/Series/Point.js\"], f[\"Core/Series/SeriesDefaults.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I, B, z, p) {\n var m = a.animObject,\n e = a.setAnimation,\n d = f.defaultOptions,\n l = C.registerEventOptions,\n h = G.hasTouch,\n t = G.svg,\n n = G.win,\n v = B.seriesTypes,\n w = p.addEvent,\n y = p.arrayMax,\n A = p.arrayMin,\n q = p.clamp,\n k = p.cleanRecursively,\n c = p.correctFloat,\n g = p.defined,\n b = p.erase,\n r = p.error,\n x = p.extend,\n D = p.find,\n K = p.fireEvent,\n F = p.getNestedProperty,\n Q = p.isArray,\n O = p.isNumber,\n W = p.isString,\n Z = p.merge,\n L = p.objectEach,\n J = p.pick,\n M = p.removeEvent,\n da = p.splat,\n R = p.syncTimeout;\n\n a = function () {\n function a() {\n 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;\n }\n\n a.prototype.init = function (a, b) {\n K(this, \"init\", {\n options: b\n });\n var c = this,\n d = a.series;\n this.eventsToUnbind = [];\n c.chart = a;\n c.options = c.setOptions(b);\n b = c.options;\n c.linkedSeries = [];\n c.bindAxes();\n x(c, {\n name: b.name,\n state: \"\",\n visible: !1 !== b.visible,\n selected: !0 === b.selected\n });\n l(this, b);\n var e = b.events;\n if (e && e.click || b.point && b.point.events && b.point.events.click || b.allowPointSelect) a.runTrackerClick = !0;\n c.getColor();\n c.getSymbol();\n c.parallelArrays.forEach(function (a) {\n c[a + \"Data\"] || (c[a + \"Data\"] = []);\n });\n c.isCartesian && (a.hasCartesianSeries = !0);\n var g;\n d.length && (g = d[d.length - 1]);\n c._i = J(g && g._i, -1) + 1;\n c.opacity = c.options.opacity;\n a.orderSeries(this.insert(d));\n b.dataSorting && b.dataSorting.enabled ? c.setDataSortingOptions() : c.points || c.data || c.setData(b.data, !1);\n K(this, \"afterInit\");\n };\n\n a.prototype.is = function (a) {\n return v[a] && this instanceof v[a];\n };\n\n a.prototype.insert = function (a) {\n var b = this.options.index,\n c;\n\n if (O(b)) {\n for (c = a.length; c--;) {\n if (b >= J(a[c].options.index, a[c]._i)) {\n a.splice(c + 1, 0, this);\n break;\n }\n }\n\n -1 === c && a.unshift(this);\n c += 1;\n } else a.push(this);\n\n return J(c, a.length - 1);\n };\n\n a.prototype.bindAxes = function () {\n var a = this,\n b = a.options,\n c = a.chart,\n d;\n K(this, \"bindAxes\", null, function () {\n (a.axisTypes || []).forEach(function (e) {\n var g = 0;\n c[e].forEach(function (c) {\n d = c.options;\n if (b[e] === g && !d.isInternal || \"undefined\" !== typeof b[e] && b[e] === d.id || \"undefined\" === typeof b[e] && 0 === d.index) a.insert(c.series), a[e] = c, c.isDirty = !0;\n d.isInternal || g++;\n });\n a[e] || a.optionalAxis === e || r(18, !0, c);\n });\n });\n K(this, \"afterBindAxes\");\n };\n\n a.prototype.updateParallelArrays = function (a, b) {\n var c = a.series,\n d = arguments,\n e = O(b) ? function (d) {\n var e = \"y\" === d && c.toYData ? c.toYData(a) : a[d];\n c[d + \"Data\"][b] = e;\n } : function (a) {\n Array.prototype[b].apply(c[a + \"Data\"], Array.prototype.slice.call(d, 2));\n };\n c.parallelArrays.forEach(e);\n };\n\n a.prototype.hasData = function () {\n return this.visible && \"undefined\" !== typeof this.dataMax && \"undefined\" !== typeof this.dataMin || this.visible && this.yData && 0 < this.yData.length;\n };\n\n a.prototype.autoIncrement = function (a) {\n var b = this.options,\n c = b.pointIntervalUnit,\n d = b.relativeXValue,\n e = this.chart.time,\n g = this.xIncrement,\n f;\n g = J(g, b.pointStart, 0);\n this.pointInterval = f = J(this.pointInterval, b.pointInterval, 1);\n d && O(a) && (f *= a);\n c && (b = new e.Date(g), \"day\" === c ? e.set(\"Date\", b, e.get(\"Date\", b) + f) : \"month\" === c ? e.set(\"Month\", b, e.get(\"Month\", b) + f) : \"year\" === c && e.set(\"FullYear\", b, e.get(\"FullYear\", b) + f), f = b.getTime() - g);\n if (d && O(a)) return g + f;\n this.xIncrement = g + f;\n return g;\n };\n\n a.prototype.setDataSortingOptions = function () {\n var a = this.options;\n x(this, {\n requireSorting: !1,\n sorted: !1,\n enabledDataSorting: !0,\n allowDG: !1\n });\n g(a.pointRange) || (a.pointRange = 1);\n };\n\n a.prototype.setOptions = function (a) {\n var b = this.chart,\n c = b.options,\n e = c.plotOptions,\n f = b.userOptions || {};\n a = Z(a);\n b = b.styledMode;\n var k = {\n plotOptions: e,\n userOptions: a\n };\n K(this, \"setOptions\", k);\n var h = k.plotOptions[this.type],\n l = f.plotOptions || {};\n this.userOptions = k.userOptions;\n f = Z(h, e.series, f.plotOptions && f.plotOptions[this.type], a);\n this.tooltipOptions = Z(d.tooltip, d.plotOptions.series && d.plotOptions.series.tooltip, d.plotOptions[this.type].tooltip, c.tooltip.userOptions, e.series && e.series.tooltip, e[this.type].tooltip, a.tooltip);\n this.stickyTracking = J(a.stickyTracking, l[this.type] && l[this.type].stickyTracking, l.series && l.series.stickyTracking, this.tooltipOptions.shared && !this.noSharedTooltip ? !0 : f.stickyTracking);\n null === h.marker && delete f.marker;\n this.zoneAxis = f.zoneAxis;\n e = this.zones = (f.zones || []).slice();\n !f.negativeColor && !f.negativeFillColor || f.zones || (c = {\n value: f[this.zoneAxis + \"Threshold\"] || f.threshold || 0,\n className: \"highcharts-negative\"\n }, b || (c.color = f.negativeColor, c.fillColor = f.negativeFillColor), e.push(c));\n e.length && g(e[e.length - 1].value) && e.push(b ? {} : {\n color: this.color,\n fillColor: this.fillColor\n });\n K(this, \"afterSetOptions\", {\n options: f\n });\n return f;\n };\n\n a.prototype.getName = function () {\n return J(this.options.name, \"Series \" + (this.index + 1));\n };\n\n a.prototype.getCyclic = function (a, b, c) {\n var d = this.chart,\n e = this.userOptions,\n f = a + \"Index\",\n k = a + \"Counter\",\n h = c ? c.length : J(d.options.chart[a + \"Count\"], d[a + \"Count\"]);\n\n if (!b) {\n var l = J(e[f], e[\"_\" + f]);\n g(l) || (d.series.length || (d[k] = 0), e[\"_\" + f] = l = d[k] % h, d[k] += 1);\n c && (b = c[l]);\n }\n\n \"undefined\" !== typeof l && (this[f] = l);\n this[a] = b;\n };\n\n a.prototype.getColor = function () {\n this.chart.styledMode ? this.getCyclic(\"color\") : this.options.colorByPoint ? this.color = \"#cccccc\" : this.getCyclic(\"color\", this.options.color || d.plotOptions[this.type].color, this.chart.options.colors);\n };\n\n a.prototype.getPointsCollection = function () {\n return (this.hasGroupedData ? this.points : this.data) || [];\n };\n\n a.prototype.getSymbol = function () {\n this.getCyclic(\"symbol\", this.options.marker.symbol, this.chart.options.symbols);\n };\n\n a.prototype.findPointIndex = function (a, b) {\n var c = a.id,\n d = a.x,\n e = this.points,\n g = this.options.dataSorting,\n f,\n k;\n if (c) g = this.chart.get(c), g instanceof H && (f = g);else if (this.linkedParent || this.enabledDataSorting || this.options.relativeXValue) if (f = function f(b) {\n return !b.touched && b.index === a.index;\n }, g && g.matchByName ? f = function f(b) {\n return !b.touched && b.name === a.name;\n } : this.options.relativeXValue && (f = function f(b) {\n return !b.touched && b.options.x === a.x;\n }), f = D(e, f), !f) return;\n\n if (f) {\n var h = f && f.index;\n \"undefined\" !== typeof h && (k = !0);\n }\n\n \"undefined\" === typeof h && O(d) && (h = this.xData.indexOf(d, b));\n -1 !== h && \"undefined\" !== typeof h && this.cropped && (h = h >= this.cropStart ? h - this.cropStart : h);\n !k && O(h) && e[h] && e[h].touched && (h = void 0);\n return h;\n };\n\n a.prototype.updateData = function (a, b) {\n var c = this.options,\n d = c.dataSorting,\n e = this.points,\n f = [],\n k = this.requireSorting,\n h = a.length === e.length,\n l,\n n,\n m,\n q = !0;\n this.xIncrement = null;\n a.forEach(function (a, b) {\n var n = g(a) && this.pointClass.prototype.optionsToObject.call({\n series: this\n }, a) || {},\n q = n.x;\n\n if (n.id || O(q)) {\n if (n = this.findPointIndex(n, m), -1 === n || \"undefined\" === typeof n ? f.push(a) : e[n] && a !== c.data[n] ? (e[n].update(a, !1, null, !1), e[n].touched = !0, k && (m = n + 1)) : e[n] && (e[n].touched = !0), !h || b !== n || d && d.enabled || this.hasDerivedData) l = !0;\n } else f.push(a);\n }, this);\n if (l) for (a = e.length; a--;) {\n (n = e[a]) && !n.touched && n.remove && n.remove(!1, b);\n } else !h || d && d.enabled ? q = !1 : (a.forEach(function (a, b) {\n a !== e[b].y && e[b].update && e[b].update(a, !1, null, !1);\n }), f.length = 0);\n e.forEach(function (a) {\n a && (a.touched = !1);\n });\n if (!q) return !1;\n f.forEach(function (a) {\n this.addPoint(a, !1, null, null, !1);\n }, this);\n null === this.xIncrement && this.xData && this.xData.length && (this.xIncrement = y(this.xData), this.autoIncrement());\n return !0;\n };\n\n a.prototype.setData = function (a, b, c, d) {\n var e = this,\n g = e.points,\n f = g && g.length || 0,\n k = e.options,\n h = e.chart,\n l = k.dataSorting,\n n = e.xAxis,\n m = k.turboThreshold,\n q = this.xData,\n p = this.yData,\n E = e.pointArrayMap;\n E = E && E.length;\n var t = k.keys,\n w,\n y = 0,\n v = 1,\n A = null;\n a = a || [];\n var x = a.length;\n b = J(b, !0);\n l && l.enabled && (a = this.sortData(a));\n !1 !== d && x && f && !e.cropped && !e.hasGroupedData && e.visible && !e.isSeriesBoosting && (w = this.updateData(a, c));\n\n if (!w) {\n e.xIncrement = null;\n e.colorCounter = 0;\n this.parallelArrays.forEach(function (a) {\n e[a + \"Data\"].length = 0;\n });\n if (m && x > m) {\n if (A = e.getFirstValidPoint(a), O(A)) for (c = 0; c < x; c++) {\n q[c] = this.autoIncrement(), p[c] = a[c];\n } else if (Q(A)) {\n if (E) {\n if (A.length === E) for (c = 0; c < x; c++) {\n q[c] = this.autoIncrement(), p[c] = a[c];\n } else for (c = 0; c < x; c++) {\n d = a[c], q[c] = d[0], p[c] = d.slice(1, E + 1);\n }\n } else if (t && (y = t.indexOf(\"x\"), v = t.indexOf(\"y\"), y = 0 <= y ? y : 0, v = 0 <= v ? v : 1), 1 === A.length && (v = 0), y === v) for (c = 0; c < x; c++) {\n q[c] = this.autoIncrement(), p[c] = a[c][v];\n } else for (c = 0; c < x; c++) {\n d = a[c], q[c] = d[y], p[c] = d[v];\n }\n } else r(12, !1, h);\n } else for (c = 0; c < x; c++) {\n \"undefined\" !== typeof a[c] && (d = {\n series: e\n }, e.pointClass.prototype.applyOptions.apply(d, [a[c]]), e.updateParallelArrays(d, c));\n }\n p && W(p[0]) && r(14, !0, h);\n e.data = [];\n e.options.data = e.userOptions.data = a;\n\n for (c = f; c--;) {\n g[c] && g[c].destroy && g[c].destroy();\n }\n\n n && (n.minRange = n.userMinRange);\n e.isDirty = h.isDirtyBox = !0;\n e.isDirtyData = !!g;\n c = !1;\n }\n\n \"point\" === k.legendType && (this.processData(), this.generatePoints());\n b && h.redraw(c);\n };\n\n a.prototype.sortData = function (a) {\n var b = this,\n c = b.options.dataSorting.sortKey || \"y\",\n d = function d(a, b) {\n return g(b) && a.pointClass.prototype.optionsToObject.call({\n series: a\n }, b) || {};\n };\n\n a.forEach(function (c, e) {\n a[e] = d(b, c);\n a[e].index = e;\n }, this);\n a.concat().sort(function (a, b) {\n a = F(c, a);\n b = F(c, b);\n return b < a ? -1 : b > a ? 1 : 0;\n }).forEach(function (a, b) {\n a.x = b;\n }, this);\n b.linkedSeries && b.linkedSeries.forEach(function (b) {\n var c = b.options,\n e = c.data;\n c.dataSorting && c.dataSorting.enabled || !e || (e.forEach(function (c, g) {\n e[g] = d(b, c);\n a[g] && (e[g].x = a[g].x, e[g].index = g);\n }), b.setData(e, !1));\n });\n return a;\n };\n\n a.prototype.getProcessedData = function (a) {\n var b = this.xAxis,\n c = this.options,\n d = c.cropThreshold,\n e = a || this.getExtremesFromAll || c.getExtremesFromAll,\n g = this.isCartesian;\n a = b && b.val2lin;\n c = !(!b || !b.logarithmic);\n var f = 0,\n k = this.xData,\n h = this.yData,\n l = this.requireSorting;\n var n = !1;\n var m = k.length;\n\n if (b) {\n n = b.getExtremes();\n var q = n.min;\n var p = n.max;\n n = !(!b.categories || b.names.length);\n }\n\n if (g && this.sorted && !e && (!d || m > d || this.forceCrop)) if (k[m - 1] < q || k[0] > p) k = [], h = [];else if (this.yData && (k[0] < q || k[m - 1] > p)) {\n var E = this.cropData(this.xData, this.yData, q, p);\n k = E.xData;\n h = E.yData;\n f = E.start;\n E = !0;\n }\n\n for (d = k.length || 1; --d;) {\n if (b = c ? a(k[d]) - a(k[d - 1]) : k[d] - k[d - 1], 0 < b && (\"undefined\" === typeof t || b < t)) var t = b;else 0 > b && l && !n && (r(15, !1, this.chart), l = !1);\n }\n\n return {\n xData: k,\n yData: h,\n cropped: E,\n cropStart: f,\n closestPointRange: t\n };\n };\n\n a.prototype.processData = function (a) {\n var b = this.xAxis;\n if (this.isCartesian && !this.isDirty && !b.isDirty && !this.yAxis.isDirty && !a) return !1;\n a = this.getProcessedData();\n this.cropped = a.cropped;\n this.cropStart = a.cropStart;\n this.processedXData = a.xData;\n this.processedYData = a.yData;\n this.closestPointRange = this.basePointRange = a.closestPointRange;\n K(this, \"afterProcessData\");\n };\n\n a.prototype.cropData = function (a, b, c, d, e) {\n var g = a.length,\n f,\n k = 0,\n h = g;\n e = J(e, this.cropShoulder);\n\n for (f = 0; f < g; f++) {\n if (a[f] >= c) {\n k = Math.max(0, f - e);\n break;\n }\n }\n\n for (c = f; c < g; c++) {\n if (a[c] > d) {\n h = c + e;\n break;\n }\n }\n\n return {\n xData: a.slice(k, h),\n yData: b.slice(k, h),\n start: k,\n end: h\n };\n };\n\n a.prototype.generatePoints = function () {\n var a = this.options,\n b = this.processedData || a.data,\n c = this.processedXData,\n d = this.processedYData,\n e = this.pointClass,\n g = c.length,\n f = this.cropStart || 0,\n k = this.hasGroupedData,\n h = a.keys,\n l = [];\n a = a.dataGrouping && a.dataGrouping.groupAll ? f : 0;\n var n,\n m,\n q = this.data;\n\n if (!q && !k) {\n var p = [];\n p.length = b.length;\n q = this.data = p;\n }\n\n h && k && (this.options.keys = !1);\n\n for (m = 0; m < g; m++) {\n p = f + m;\n\n if (k) {\n var r = new e().init(this, [c[m]].concat(da(d[m])));\n r.dataGroup = this.groupMap[a + m];\n r.dataGroup.options && (r.options = r.dataGroup.options, x(r, r.dataGroup.options), delete r.dataLabels);\n } else (r = q[p]) || \"undefined\" === typeof b[p] || (q[p] = r = new e().init(this, b[p], c[m]));\n\n r && (r.index = k ? a + m : p, l[m] = r);\n }\n\n this.options.keys = h;\n if (q && (g !== (n = q.length) || k)) for (m = 0; m < n; m++) {\n m !== f || k || (m += g), q[m] && (q[m].destroyElements(), q[m].plotX = void 0);\n }\n this.data = q;\n this.points = l;\n K(this, \"afterGeneratePoints\");\n };\n\n a.prototype.getXExtremes = function (a) {\n return {\n min: A(a),\n max: y(a)\n };\n };\n\n a.prototype.getExtremes = function (a, b) {\n var c = this.xAxis,\n d = this.yAxis,\n e = this.processedXData || this.xData,\n g = [],\n f = this.requireSorting ? this.cropShoulder : 0;\n d = d ? d.positiveValuesOnly : !1;\n var k,\n h = 0,\n l = 0,\n n = 0;\n a = a || this.stackedYData || this.processedYData || [];\n var m = a.length;\n\n if (c) {\n var q = c.getExtremes();\n h = q.min;\n l = q.max;\n }\n\n for (k = 0; k < m; k++) {\n var r = e[k];\n q = a[k];\n var p = (O(q) || Q(q)) && (q.length || 0 < q || !d);\n r = b || this.getExtremesFromAll || this.options.getExtremesFromAll || this.cropped || !c || (e[k + f] || r) >= h && (e[k - f] || r) <= l;\n if (p && r) if (p = q.length) for (; p--;) {\n O(q[p]) && (g[n++] = q[p]);\n } else g[n++] = q;\n }\n\n a = {\n activeYData: g,\n dataMin: A(g),\n dataMax: y(g)\n };\n K(this, \"afterGetExtremes\", {\n dataExtremes: a\n });\n return a;\n };\n\n a.prototype.applyExtremes = function () {\n var a = this.getExtremes();\n this.dataMin = a.dataMin;\n this.dataMax = a.dataMax;\n return a;\n };\n\n a.prototype.getFirstValidPoint = function (a) {\n for (var b = a.length, c = 0, d = null; null === d && c < b;) {\n d = a[c], c++;\n }\n\n return d;\n };\n\n a.prototype.translate = function () {\n this.processedXData || this.processData();\n this.generatePoints();\n var a = this.options,\n b = a.stacking,\n d = this.xAxis,\n e = d.categories,\n f = this.enabledDataSorting,\n k = this.yAxis,\n h = this.points,\n l = h.length,\n n = this.pointPlacementToXValue(),\n m = !!n,\n r = a.threshold,\n p = a.startFromThreshold ? r : 0,\n t = this.zoneAxis || \"y\",\n w,\n y,\n v = Number.MAX_VALUE;\n\n for (w = 0; w < l; w++) {\n var A = h[w],\n x = A.x,\n D = void 0,\n z = void 0,\n u = A.y,\n B = A.low,\n F = b && k.stacking && k.stacking.stacks[(this.negStacks && u < (p ? 0 : r) ? \"-\" : \"\") + this.stackKey];\n if (k.positiveValuesOnly && !k.validatePositiveValue(u) || d.positiveValuesOnly && !d.validatePositiveValue(x)) A.isNull = !0;\n A.plotX = y = c(q(d.translate(x, 0, 0, 0, 1, n, \"flags\" === this.type), -1E5, 1E5));\n\n if (b && this.visible && F && F[x]) {\n var C = this.getStackIndicator(C, x, this.index);\n A.isNull || (D = F[x], z = D.points[C.key]);\n }\n\n Q(z) && (B = z[0], u = z[1], B === p && C.key === F[x].base && (B = J(O(r) && r, k.min)), k.positiveValuesOnly && 0 >= B && (B = null), A.total = A.stackTotal = D.total, A.percentage = D.total && A.y / D.total * 100, A.stackY = u, this.irregularWidths || D.setOffset(this.pointXOffset || 0, this.barW || 0));\n A.yBottom = g(B) ? q(k.translate(B, 0, 1, 0, 1), -1E5, 1E5) : null;\n this.dataModify && (u = this.dataModify.modifyValue(u, w));\n A.plotY = void 0;\n O(u) && (D = k.translate(u, !1, !0, !1, !0), \"undefined\" !== typeof D && (A.plotY = q(D, -1E5, 1E5)));\n A.isInside = this.isPointInside(A);\n A.clientX = m ? c(d.translate(x, 0, 0, 0, 1, n)) : y;\n A.negative = A[t] < (a[t + \"Threshold\"] || r || 0);\n A.category = J(e && e[A.x], A.x);\n\n if (!A.isNull && !1 !== A.visible) {\n \"undefined\" !== typeof G && (v = Math.min(v, Math.abs(y - G)));\n var G = y;\n }\n\n A.zone = this.zones.length ? A.getZone() : void 0;\n !A.graphic && this.group && f && (A.isNew = !0);\n }\n\n this.closestPointRangePx = v;\n K(this, \"afterTranslate\");\n };\n\n a.prototype.getValidPoints = function (a, b, c) {\n var d = this.chart;\n return (a || this.points || []).filter(function (a) {\n return b && !d.isInsidePlot(a.plotX, a.plotY, {\n inverted: d.inverted\n }) ? !1 : !1 !== a.visible && (c || !a.isNull);\n });\n };\n\n a.prototype.getClipBox = function () {\n var a = this.chart,\n b = this.xAxis,\n c = this.yAxis,\n d = Z(a.clipBox);\n b && b.len !== a.plotSizeX && (d.width = b.len);\n c && c.len !== a.plotSizeY && (d.height = c.len);\n return d;\n };\n\n a.prototype.getSharedClipKey = function () {\n return this.sharedClipKey = (this.options.xAxis || 0) + \",\" + (this.options.yAxis || 0);\n };\n\n a.prototype.setClip = function () {\n var a = this.chart,\n b = this.group,\n c = this.markerGroup,\n d = a.sharedClips;\n a = a.renderer;\n var e = this.getClipBox(),\n g = this.getSharedClipKey(),\n f = d[g];\n f ? f.animate(e) : d[g] = f = a.clipRect(e);\n b && b.clip(!1 === this.options.clip ? void 0 : f);\n c && c.clip();\n };\n\n a.prototype.animate = function (a) {\n var b = this.chart,\n c = this.group,\n d = this.markerGroup,\n e = b.inverted,\n g = m(this.options.animation),\n f = [this.getSharedClipKey(), g.duration, g.easing, g.defer].join(),\n k = b.sharedClips[f],\n h = b.sharedClips[f + \"m\"];\n if (a && c) g = this.getClipBox(), k ? k.attr(\"height\", g.height) : (g.width = 0, e && (g.x = b.plotHeight), k = b.renderer.clipRect(g), b.sharedClips[f] = k, h = b.renderer.clipRect({\n x: e ? (b.plotSizeX || 0) + 99 : -99,\n y: e ? -b.plotLeft : -b.plotTop,\n width: 99,\n height: e ? b.chartWidth : b.chartHeight\n }), b.sharedClips[f + \"m\"] = h), c.clip(k), d && d.clip(h);else if (k && !k.hasClass(\"highcharts-animating\")) {\n b = this.getClipBox();\n var l = g.step;\n d && d.element.childNodes.length && (g.step = function (a, b) {\n l && l.apply(b, arguments);\n h && h.element && h.attr(b.prop, \"width\" === b.prop ? a + 99 : a);\n });\n k.addClass(\"highcharts-animating\").animate(b, g);\n }\n };\n\n a.prototype.afterAnimate = function () {\n var a = this;\n this.setClip();\n L(this.chart.sharedClips, function (b, c, d) {\n b && !a.chart.container.querySelector('[clip-path=\"url(#' + b.id + ')\"]') && (b.destroy(), delete d[c]);\n });\n this.finishedAnimating = !0;\n K(this, \"afterAnimate\");\n };\n\n a.prototype.drawPoints = function () {\n var a = this.points,\n b = this.chart,\n c = this.options.marker,\n d = this[this.specialGroup] || this.markerGroup,\n e = this.xAxis,\n g = J(c.enabled, !e || e.isRadial ? !0 : null, this.closestPointRangePx >= c.enabledThreshold * c.radius),\n f,\n k;\n if (!1 !== c.enabled || this._hasPointMarkers) for (f = 0; f < a.length; f++) {\n var h = a[f];\n var l = (k = h.graphic) ? \"animate\" : \"attr\";\n var n = h.marker || {};\n var m = !!h.marker;\n\n if ((g && \"undefined\" === typeof n.enabled || n.enabled) && !h.isNull && !1 !== h.visible) {\n var q = J(n.symbol, this.symbol, \"rect\");\n var r = this.markerAttribs(h, h.selected && \"select\");\n this.enabledDataSorting && (h.startXPos = e.reversed ? -(r.width || 0) : e.width);\n var p = !1 !== h.isInside;\n k ? k[p ? \"show\" : \"hide\"](p).animate(r) : p && (0 < (r.width || 0) || h.hasImage) && (h.graphic = k = b.renderer.symbol(q, r.x, r.y, r.width, r.height, m ? n : c).add(d), this.enabledDataSorting && b.hasRendered && (k.attr({\n x: h.startXPos\n }), l = \"animate\"));\n k && \"animate\" === l && k[p ? \"show\" : \"hide\"](p).animate(r);\n if (k && !b.styledMode) k[l](this.pointAttribs(h, h.selected && \"select\"));\n k && k.addClass(h.getClassName(), !0);\n } else k && (h.graphic = k.destroy());\n }\n };\n\n a.prototype.markerAttribs = function (a, b) {\n var c = this.options,\n d = c.marker,\n e = a.marker || {},\n g = e.symbol || d.symbol,\n f = J(e.radius, d && d.radius);\n b && (d = d.states[b], b = e.states && e.states[b], f = J(b && b.radius, d && d.radius, f && f + (d && d.radiusPlus || 0)));\n a.hasImage = g && 0 === g.indexOf(\"url\");\n a.hasImage && (f = 0);\n a = O(f) ? {\n x: c.crisp ? Math.floor(a.plotX - f) : a.plotX - f,\n y: a.plotY - f\n } : {};\n f && (a.width = a.height = 2 * f);\n return a;\n };\n\n a.prototype.pointAttribs = function (a, b) {\n var c = this.options.marker,\n d = a && a.options,\n e = d && d.marker || {},\n g = d && d.color,\n f = a && a.color,\n k = a && a.zone && a.zone.color,\n h = this.color;\n a = J(e.lineWidth, c.lineWidth);\n d = 1;\n h = g || k || f || h;\n g = e.fillColor || c.fillColor || h;\n f = e.lineColor || c.lineColor || h;\n b = b || \"normal\";\n c = c.states[b] || {};\n b = e.states && e.states[b] || {};\n a = J(b.lineWidth, c.lineWidth, a + J(b.lineWidthPlus, c.lineWidthPlus, 0));\n g = b.fillColor || c.fillColor || g;\n f = b.lineColor || c.lineColor || f;\n d = J(b.opacity, c.opacity, d);\n return {\n stroke: f,\n \"stroke-width\": a,\n fill: g,\n opacity: d\n };\n };\n\n a.prototype.destroy = function (a) {\n var c = this,\n d = c.chart,\n e = /AppleWebKit\\/533/.test(n.navigator.userAgent),\n g = c.data || [],\n f,\n k,\n h,\n l;\n K(c, \"destroy\", {\n keepEventsForUpdate: a\n });\n this.removeEvents(a);\n (c.axisTypes || []).forEach(function (a) {\n (l = c[a]) && l.series && (b(l.series, c), l.isDirty = l.forceRedraw = !0);\n });\n c.legendItem && c.chart.legend.destroyItem(c);\n\n for (k = g.length; k--;) {\n (h = g[k]) && h.destroy && h.destroy();\n }\n\n c.clips && c.clips.forEach(function (a) {\n return a.destroy();\n });\n p.clearTimeout(c.animationTimeout);\n L(c, function (a, b) {\n a instanceof z && !a.survive && (f = e && \"group\" === b ? \"hide\" : \"destroy\", a[f]());\n });\n d.hoverSeries === c && (d.hoverSeries = void 0);\n b(d.series, c);\n d.orderSeries();\n L(c, function (b, d) {\n a && \"hcEvents\" === d || delete c[d];\n });\n };\n\n a.prototype.applyZones = function () {\n var a = this,\n b = this.chart,\n c = b.renderer,\n d = this.zones,\n e = this.clips || [],\n g = this.graph,\n f = this.area,\n k = Math.max(b.chartWidth, b.chartHeight),\n h = this[(this.zoneAxis || \"y\") + \"Axis\"],\n l = b.inverted,\n n,\n m,\n r,\n p,\n t,\n w,\n A,\n y,\n v = !1;\n\n if (d.length && (g || f) && h && \"undefined\" !== typeof h.min) {\n var x = h.reversed;\n var D = h.horiz;\n g && !this.showLine && g.hide();\n f && f.hide();\n var z = h.getExtremes();\n d.forEach(function (d, E) {\n n = x ? D ? b.plotWidth : 0 : D ? 0 : h.toPixels(z.min) || 0;\n n = q(J(m, n), 0, k);\n m = q(Math.round(h.toPixels(J(d.value, z.max), !0) || 0), 0, k);\n v && (n = m = h.toPixels(z.max));\n p = Math.abs(n - m);\n t = Math.min(n, m);\n w = Math.max(n, m);\n h.isXAxis ? (r = {\n x: l ? w : t,\n y: 0,\n width: p,\n height: k\n }, D || (r.x = b.plotHeight - r.x)) : (r = {\n x: 0,\n y: l ? w : t,\n width: k,\n height: p\n }, D && (r.y = b.plotWidth - r.y));\n l && c.isVML && (r = h.isXAxis ? {\n x: 0,\n y: x ? t : w,\n height: r.width,\n width: b.chartWidth\n } : {\n x: r.y - b.plotLeft - b.spacingBox.x,\n y: 0,\n width: r.height,\n height: b.chartHeight\n });\n e[E] ? e[E].animate(r) : e[E] = c.clipRect(r);\n A = a[\"zone-area-\" + E];\n y = a[\"zone-graph-\" + E];\n g && y && y.clip(e[E]);\n f && A && A.clip(e[E]);\n v = d.value > z.max;\n a.resetZones && 0 === m && (m = void 0);\n });\n this.clips = e;\n } else a.visible && (g && g.show(!0), f && f.show(!0));\n };\n\n a.prototype.invertGroups = function (a) {\n function b() {\n [\"group\", \"markerGroup\"].forEach(function (b) {\n c[b] && (d.renderer.isVML && c[b].attr({\n width: c.yAxis.len,\n height: c.xAxis.len\n }), c[b].width = c.yAxis.len, c[b].height = c.xAxis.len, c[b].invert(c.isRadialSeries ? !1 : a));\n });\n }\n\n var c = this,\n d = c.chart;\n c.xAxis && (c.eventsToUnbind.push(w(d, \"resize\", b)), b(), c.invertGroups = b);\n };\n\n a.prototype.plotGroup = function (a, b, c, d, e) {\n var f = this[a],\n k = !f;\n c = {\n visibility: c,\n zIndex: d || .1\n };\n \"undefined\" === typeof this.opacity || this.chart.styledMode || \"inactive\" === this.state || (c.opacity = this.opacity);\n k && (this[a] = f = this.chart.renderer.g().add(e));\n f.addClass(\"highcharts-\" + b + \" highcharts-series-\" + this.index + \" highcharts-\" + this.type + \"-series \" + (g(this.colorIndex) ? \"highcharts-color-\" + this.colorIndex + \" \" : \"\") + (this.options.className || \"\") + (f.hasClass(\"highcharts-tracker\") ? \" highcharts-tracker\" : \"\"), !0);\n f.attr(c)[k ? \"attr\" : \"animate\"](this.getPlotBox());\n return f;\n };\n\n a.prototype.getPlotBox = function () {\n var a = this.chart,\n b = this.xAxis,\n c = this.yAxis;\n a.inverted && (b = c, c = this.xAxis);\n return {\n translateX: b ? b.left : a.plotLeft,\n translateY: c ? c.top : a.plotTop,\n scaleX: 1,\n scaleY: 1\n };\n };\n\n a.prototype.removeEvents = function (a) {\n a || M(this);\n this.eventsToUnbind.length && (this.eventsToUnbind.forEach(function (a) {\n a();\n }), this.eventsToUnbind.length = 0);\n };\n\n a.prototype.render = function () {\n var a = this,\n b = a.chart,\n c = a.options,\n d = m(c.animation),\n e = a.visible ? \"inherit\" : \"hidden\",\n g = c.zIndex,\n f = a.hasRendered,\n k = b.seriesGroup,\n h = b.inverted;\n b = !a.finishedAnimating && b.renderer.isSVG ? d.duration : 0;\n K(this, \"render\");\n var l = a.plotGroup(\"group\", \"series\", e, g, k);\n a.markerGroup = a.plotGroup(\"markerGroup\", \"markers\", e, g, k);\n !1 !== c.clip && a.setClip();\n a.animate && b && a.animate(!0);\n l.inverted = J(a.invertible, a.isCartesian) ? h : !1;\n a.drawGraph && (a.drawGraph(), a.applyZones());\n a.visible && a.drawPoints();\n a.drawDataLabels && a.drawDataLabels();\n a.redrawPoints && a.redrawPoints();\n a.drawTracker && !1 !== a.options.enableMouseTracking && a.drawTracker();\n a.invertGroups(h);\n a.animate && b && a.animate();\n f || (b && d.defer && (b += d.defer), a.animationTimeout = R(function () {\n a.afterAnimate();\n }, b || 0));\n a.isDirty = !1;\n a.hasRendered = !0;\n K(a, \"afterRender\");\n };\n\n a.prototype.redraw = function () {\n var a = this.chart,\n b = this.isDirty || this.isDirtyData,\n c = this.group,\n d = this.xAxis,\n e = this.yAxis;\n c && (a.inverted && c.attr({\n width: a.plotWidth,\n height: a.plotHeight\n }), c.animate({\n translateX: J(d && d.left, a.plotLeft),\n translateY: J(e && e.top, a.plotTop)\n }));\n this.translate();\n this.render();\n b && delete this.kdTree;\n };\n\n a.prototype.searchPoint = function (a, b) {\n var c = this.xAxis,\n d = this.yAxis,\n e = this.chart.inverted;\n return this.searchKDTree({\n clientX: e ? c.len - a.chartY + c.pos : a.chartX - c.pos,\n plotY: e ? d.len - a.chartX + d.pos : a.chartY - d.pos\n }, b, a);\n };\n\n a.prototype.buildKDTree = function (a) {\n function b(a, d, e) {\n var g = a && a.length;\n\n if (g) {\n var f = c.kdAxisArray[d % e];\n a.sort(function (a, b) {\n return a[f] - b[f];\n });\n g = Math.floor(g / 2);\n return {\n point: a[g],\n left: b(a.slice(0, g), d + 1, e),\n right: b(a.slice(g + 1), d + 1, e)\n };\n }\n }\n\n this.buildingKdTree = !0;\n var c = this,\n d = -1 < c.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n delete c.kdTree;\n R(function () {\n c.kdTree = b(c.getValidPoints(null, !c.directTouch), d, d);\n c.buildingKdTree = !1;\n }, c.options.kdNow || a && \"touchstart\" === a.type ? 0 : 1);\n };\n\n a.prototype.searchKDTree = function (a, b, c) {\n function d(a, b, c, l) {\n var n = b.point,\n m = e.kdAxisArray[c % l],\n q = n,\n r = g(a[f]) && g(n[f]) ? Math.pow(a[f] - n[f], 2) : null;\n var p = g(a[k]) && g(n[k]) ? Math.pow(a[k] - n[k], 2) : null;\n p = (r || 0) + (p || 0);\n n.dist = g(p) ? Math.sqrt(p) : Number.MAX_VALUE;\n n.distX = g(r) ? Math.sqrt(r) : Number.MAX_VALUE;\n m = a[m] - n[m];\n p = 0 > m ? \"left\" : \"right\";\n r = 0 > m ? \"right\" : \"left\";\n b[p] && (p = d(a, b[p], c + 1, l), q = p[h] < q[h] ? p : n);\n b[r] && Math.sqrt(m * m) < q[h] && (a = d(a, b[r], c + 1, l), q = a[h] < q[h] ? a : q);\n return q;\n }\n\n var e = this,\n f = this.kdAxisArray[0],\n k = this.kdAxisArray[1],\n h = b ? \"distX\" : \"dist\";\n b = -1 < e.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n this.kdTree || this.buildingKdTree || this.buildKDTree(c);\n if (this.kdTree) return d(a, this.kdTree, b, b);\n };\n\n a.prototype.pointPlacementToXValue = function () {\n var a = this.options,\n b = a.pointRange,\n c = this.xAxis;\n a = a.pointPlacement;\n \"between\" === a && (a = c.reversed ? -.5 : .5);\n return O(a) ? a * (b || c.pointRange) : 0;\n };\n\n a.prototype.isPointInside = function (a) {\n var b = this.chart,\n c = this.xAxis,\n d = this.yAxis;\n return \"undefined\" !== typeof a.plotY && \"undefined\" !== typeof a.plotX && 0 <= a.plotY && a.plotY <= (d ? d.len : b.plotHeight) && 0 <= a.plotX && a.plotX <= (c ? c.len : b.plotWidth);\n };\n\n a.prototype.drawTracker = function () {\n var a = this,\n b = a.options,\n c = b.trackByArea,\n d = [].concat(c ? a.areaPath : a.graphPath),\n e = a.chart,\n g = e.pointer,\n f = e.renderer,\n k = e.options.tooltip.snap,\n l = a.tracker,\n n = function n(b) {\n if (e.hoverSeries !== a) a.onMouseOver();\n },\n m = \"rgba(192,192,192,\" + (t ? .0001 : .002) + \")\";\n\n l ? l.attr({\n d: d\n }) : a.graph && (a.tracker = f.path(d).attr({\n visibility: a.visible ? \"visible\" : \"hidden\",\n zIndex: 2\n }).addClass(c ? \"highcharts-tracker-area\" : \"highcharts-tracker-line\").add(a.group), e.styledMode || a.tracker.attr({\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: m,\n fill: c ? m : \"none\",\n \"stroke-width\": a.graph.strokeWidth() + (c ? 0 : 2 * k)\n }), [a.tracker, a.markerGroup, a.dataLabelsGroup].forEach(function (a) {\n if (a && (a.addClass(\"highcharts-tracker\").on(\"mouseover\", n).on(\"mouseout\", function (a) {\n g.onTrackerMouseOut(a);\n }), b.cursor && !e.styledMode && a.css({\n cursor: b.cursor\n }), h)) a.on(\"touchstart\", n);\n }));\n K(this, \"afterDrawTracker\");\n };\n\n a.prototype.addPoint = function (a, b, c, d, e) {\n var g = this.options,\n f = this.data,\n k = this.chart,\n h = this.xAxis;\n h = h && h.hasNames && h.names;\n var l = g.data,\n n = this.xData,\n m;\n b = J(b, !0);\n var q = {\n series: this\n };\n this.pointClass.prototype.applyOptions.apply(q, [a]);\n var r = q.x;\n var p = n.length;\n if (this.requireSorting && r < n[p - 1]) for (m = !0; p && n[p - 1] > r;) {\n p--;\n }\n this.updateParallelArrays(q, \"splice\", p, 0, 0);\n this.updateParallelArrays(q, p);\n h && q.name && (h[r] = q.name);\n l.splice(p, 0, a);\n if (m || this.processedData) this.data.splice(p, 0, null), this.processData();\n \"point\" === g.legendType && this.generatePoints();\n c && (f[0] && f[0].remove ? f[0].remove(!1) : (f.shift(), this.updateParallelArrays(q, \"shift\"), l.shift()));\n !1 !== e && K(this, \"addPoint\", {\n point: q\n });\n this.isDirtyData = this.isDirty = !0;\n b && k.redraw(d);\n };\n\n a.prototype.removePoint = function (a, b, c) {\n var d = this,\n g = d.data,\n f = g[a],\n k = d.points,\n h = d.chart,\n l = function l() {\n k && k.length === g.length && k.splice(a, 1);\n g.splice(a, 1);\n d.options.data.splice(a, 1);\n d.updateParallelArrays(f || {\n series: d\n }, \"splice\", a, 1);\n f && f.destroy();\n d.isDirty = !0;\n d.isDirtyData = !0;\n b && h.redraw();\n };\n\n e(c, h);\n b = J(b, !0);\n f ? f.firePointEvent(\"remove\", null, l) : l();\n };\n\n a.prototype.remove = function (a, b, c, d) {\n function e() {\n g.destroy(d);\n f.isDirtyLegend = f.isDirtyBox = !0;\n f.linkSeries();\n J(a, !0) && f.redraw(b);\n }\n\n var g = this,\n f = g.chart;\n !1 !== c ? K(g, \"remove\", null, e) : e();\n };\n\n a.prototype.update = function (a, b) {\n a = k(a, this.userOptions);\n K(this, \"update\", {\n options: a\n });\n var c = this,\n d = c.chart,\n e = c.userOptions,\n g = c.initialType || c.type,\n f = d.options.plotOptions,\n h = v[g].prototype,\n l = c.finishedAnimating && {\n animation: !1\n },\n n = {},\n m,\n q = [\"eventOptions\", \"navigatorSeries\", \"baseSeries\"],\n p = a.type || e.type || d.options.chart.type,\n t = !(this.hasDerivedData || p && p !== this.type || \"undefined\" !== typeof a.pointStart || \"undefined\" !== typeof a.pointInterval || \"undefined\" !== typeof a.relativeXValue || a.joinBy || a.mapData || c.hasOptionChanged(\"dataGrouping\") || c.hasOptionChanged(\"pointStart\") || c.hasOptionChanged(\"pointInterval\") || c.hasOptionChanged(\"pointIntervalUnit\") || c.hasOptionChanged(\"keys\"));\n p = p || g;\n t && (q.push(\"data\", \"isDirtyData\", \"points\", \"processedXData\", \"processedYData\", \"xIncrement\", \"cropped\", \"_hasPointMarkers\", \"_hasPointLabels\", \"clips\", \"nodes\", \"layout\", \"level\", \"mapMap\", \"mapData\", \"minY\", \"maxY\", \"minX\", \"maxX\"), !1 !== a.visible && q.push(\"area\", \"graph\"), c.parallelArrays.forEach(function (a) {\n q.push(a + \"Data\");\n }), a.data && (a.dataSorting && x(c.options.dataSorting, a.dataSorting), this.setData(a.data, !1)));\n a = Z(e, l, {\n index: \"undefined\" === typeof e.index ? c.index : e.index,\n pointStart: J(f && f.series && f.series.pointStart, e.pointStart, c.xData[0])\n }, !t && {\n data: c.options.data\n }, a);\n t && a.data && (a.data = c.options.data);\n q = [\"group\", \"markerGroup\", \"dataLabelsGroup\", \"transformGroup\"].concat(q);\n q.forEach(function (a) {\n q[a] = c[a];\n delete c[a];\n });\n f = !1;\n\n if (v[p]) {\n if (f = p !== c.type, c.remove(!1, !1, !1, !0), f) if (Object.setPrototypeOf) Object.setPrototypeOf(c, v[p].prototype);else {\n l = Object.hasOwnProperty.call(c, \"hcEvents\") && c.hcEvents;\n\n for (m in h) {\n c[m] = void 0;\n }\n\n x(c, v[p].prototype);\n l ? c.hcEvents = l : delete c.hcEvents;\n }\n } else r(17, !0, d, {\n missingModuleFor: p\n });\n\n q.forEach(function (a) {\n c[a] = q[a];\n });\n c.init(d, a);\n\n if (t && this.points) {\n var w = c.options;\n !1 === w.visible ? (n.graphic = 1, n.dataLabel = 1) : c._hasPointLabels || (a = w.marker, h = w.dataLabels, !a || !1 !== a.enabled && (e.marker && e.marker.symbol) === a.symbol || (n.graphic = 1), h && !1 === h.enabled && (n.dataLabel = 1));\n this.points.forEach(function (a) {\n a && a.series && (a.resolveColor(), Object.keys(n).length && a.destroyElements(n), !1 === w.showInLegend && a.legendItem && d.legend.destroyItem(a));\n }, this);\n }\n\n c.initialType = g;\n d.linkSeries();\n f && c.linkedSeries.length && (c.isDirtyData = !0);\n K(this, \"afterUpdate\");\n J(b, !0) && d.redraw(t ? void 0 : !1);\n };\n\n a.prototype.setName = function (a) {\n this.name = this.options.name = this.userOptions.name = a;\n this.chart.isDirtyLegend = !0;\n };\n\n a.prototype.hasOptionChanged = function (a) {\n var b = this.options[a],\n c = this.chart.options.plotOptions,\n d = this.userOptions[a];\n return d ? b !== d : b !== J(c && c[this.type] && c[this.type][a], c && c.series && c.series[a], b);\n };\n\n a.prototype.onMouseOver = function () {\n var a = this.chart,\n b = a.hoverSeries;\n a.pointer.setHoverChartIndex();\n if (b && b !== this) b.onMouseOut();\n this.options.events.mouseOver && K(this, \"mouseOver\");\n this.setState(\"hover\");\n a.hoverSeries = this;\n };\n\n a.prototype.onMouseOut = function () {\n var a = this.options,\n b = this.chart,\n c = b.tooltip,\n d = b.hoverPoint;\n b.hoverSeries = null;\n if (d) d.onMouseOut();\n this && a.events.mouseOut && K(this, \"mouseOut\");\n !c || this.stickyTracking || c.shared && !this.noSharedTooltip || c.hide();\n b.series.forEach(function (a) {\n a.setState(\"\", !0);\n });\n };\n\n a.prototype.setState = function (a, b) {\n var c = this,\n d = c.options,\n e = c.graph,\n g = d.inactiveOtherPoints,\n f = d.states,\n k = J(f[a || \"normal\"] && f[a || \"normal\"].animation, c.chart.options.chart.animation),\n h = d.lineWidth,\n l = 0,\n n = d.opacity;\n a = a || \"\";\n\n if (c.state !== a && ([c.group, c.markerGroup, c.dataLabelsGroup].forEach(function (b) {\n b && (c.state && b.removeClass(\"highcharts-series-\" + c.state), a && b.addClass(\"highcharts-series-\" + a));\n }), c.state = a, !c.chart.styledMode)) {\n if (f[a] && !1 === f[a].enabled) return;\n a && (h = f[a].lineWidth || h + (f[a].lineWidthPlus || 0), n = J(f[a].opacity, n));\n if (e && !e.dashstyle) for (d = {\n \"stroke-width\": h\n }, e.animate(d, k); c[\"zone-graph-\" + l];) {\n c[\"zone-graph-\" + l].animate(d, k), l += 1;\n }\n g || [c.group, c.markerGroup, c.dataLabelsGroup, c.labelBySeries].forEach(function (a) {\n a && a.animate({\n opacity: n\n }, k);\n });\n }\n\n b && g && c.points && c.setAllPointsToState(a || void 0);\n };\n\n a.prototype.setAllPointsToState = function (a) {\n this.points.forEach(function (b) {\n b.setState && b.setState(a);\n });\n };\n\n a.prototype.setVisible = function (a, b) {\n var c = this,\n d = c.chart,\n e = c.legendItem,\n g = d.options.chart.ignoreHiddenSeries,\n f = c.visible,\n k = (c.visible = a = c.options.visible = c.userOptions.visible = \"undefined\" === typeof a ? !f : a) ? \"show\" : \"hide\";\n [\"group\", \"dataLabelsGroup\", \"markerGroup\", \"tracker\", \"tt\"].forEach(function (a) {\n if (c[a]) c[a][k]();\n });\n if (d.hoverSeries === c || (d.hoverPoint && d.hoverPoint.series) === c) c.onMouseOut();\n e && d.legend.colorizeItem(c, a);\n c.isDirty = !0;\n c.options.stacking && d.series.forEach(function (a) {\n a.options.stacking && a.visible && (a.isDirty = !0);\n });\n c.linkedSeries.forEach(function (b) {\n b.setVisible(a, !1);\n });\n g && (d.isDirtyBox = !0);\n K(c, k);\n !1 !== b && d.redraw();\n };\n\n a.prototype.show = function () {\n this.setVisible(!0);\n };\n\n a.prototype.hide = function () {\n this.setVisible(!1);\n };\n\n a.prototype.select = function (a) {\n this.selected = a = this.options.selected = \"undefined\" === typeof a ? !this.selected : a;\n this.checkbox && (this.checkbox.checked = a);\n K(this, a ? \"select\" : \"unselect\");\n };\n\n a.prototype.shouldShowTooltip = function (a, b, c) {\n void 0 === c && (c = {});\n c.series = this;\n c.visiblePlotOnly = !0;\n return this.chart.isInsidePlot(a, b, c);\n };\n\n a.defaultOptions = I;\n return a;\n }();\n\n x(a.prototype, {\n axisTypes: [\"xAxis\", \"yAxis\"],\n coll: \"series\",\n colorCounter: 0,\n cropShoulder: 1,\n directTouch: !1,\n drawLegendSymbol: u.drawLineMarker,\n isCartesian: !0,\n kdAxisArray: [\"clientX\", \"plotY\"],\n parallelArrays: [\"x\", \"y\"],\n pointClass: H,\n requireSorting: !0,\n sorted: !0\n });\n B.series = a;\n \"\";\n \"\";\n return a;\n });\n M(f, \"Extensions/ScrollablePlotArea.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Axis/Axis.js\"], f[\"Core/Chart/Chart.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Renderer/RendererRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H) {\n var F = a.stop,\n B = H.addEvent,\n z = H.createElement,\n p = H.merge,\n m = H.pick;\n B(C, \"afterSetChartSize\", function (a) {\n var d = this.options.chart.scrollablePlotArea,\n e = d && d.minWidth;\n d = d && d.minHeight;\n\n if (!this.renderer.forExport) {\n if (e) {\n if (this.scrollablePixelsX = e = Math.max(0, e - this.chartWidth)) {\n this.scrollablePlotBox = this.renderer.scrollablePlotBox = p(this.plotBox);\n this.plotBox.width = this.plotWidth += e;\n this.inverted ? this.clipBox.height += e : this.clipBox.width += e;\n var h = {\n 1: {\n name: \"right\",\n value: e\n }\n };\n }\n } else d && (this.scrollablePixelsY = e = Math.max(0, d - this.chartHeight)) && (this.scrollablePlotBox = this.renderer.scrollablePlotBox = p(this.plotBox), this.plotBox.height = this.plotHeight += e, this.inverted ? this.clipBox.width += e : this.clipBox.height += e, h = {\n 2: {\n name: \"bottom\",\n value: e\n }\n });\n\n h && !a.skipAxes && this.axes.forEach(function (a) {\n h[a.side] ? a.getPlotLinePath = function () {\n var d = h[a.side].name,\n e = this[d];\n this[d] = e - h[a.side].value;\n var l = f.prototype.getPlotLinePath.apply(this, arguments);\n this[d] = e;\n return l;\n } : (a.setAxisSize(), a.setAxisTranslation());\n });\n }\n });\n B(C, \"render\", function () {\n this.scrollablePixelsX || this.scrollablePixelsY ? (this.setUpScrolling && this.setUpScrolling(), this.applyFixed()) : this.fixedDiv && this.applyFixed();\n });\n\n C.prototype.setUpScrolling = function () {\n var a = this,\n d = {\n WebkitOverflowScrolling: \"touch\",\n overflowX: \"hidden\",\n overflowY: \"hidden\"\n };\n this.scrollablePixelsX && (d.overflowX = \"auto\");\n this.scrollablePixelsY && (d.overflowY = \"auto\");\n this.scrollingParent = z(\"div\", {\n className: \"highcharts-scrolling-parent\"\n }, {\n position: \"relative\"\n }, this.renderTo);\n this.scrollingContainer = z(\"div\", {\n className: \"highcharts-scrolling\"\n }, d, this.scrollingParent);\n B(this.scrollingContainer, \"scroll\", function () {\n a.pointer && delete a.pointer.chartPosition;\n });\n this.innerContainer = z(\"div\", {\n className: \"highcharts-inner-container\"\n }, null, this.scrollingContainer);\n this.innerContainer.appendChild(this.container);\n this.setUpScrolling = null;\n };\n\n C.prototype.moveFixedElements = function () {\n var a = this.container,\n d = this.fixedRenderer,\n f = \".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(\" \"),\n h;\n this.scrollablePixelsX && !this.inverted ? h = \".highcharts-yaxis\" : this.scrollablePixelsX && this.inverted ? h = \".highcharts-xaxis\" : this.scrollablePixelsY && !this.inverted ? h = \".highcharts-xaxis\" : this.scrollablePixelsY && this.inverted && (h = \".highcharts-yaxis\");\n h && f.push(h + \":not(.highcharts-radial-axis)\", h + \"-labels:not(.highcharts-radial-axis-labels)\");\n f.forEach(function (e) {\n [].forEach.call(a.querySelectorAll(e), function (a) {\n (a.namespaceURI === d.SVG_NS ? d.box : d.box.parentNode).appendChild(a);\n a.style.pointerEvents = \"auto\";\n });\n });\n };\n\n C.prototype.applyFixed = function () {\n var a = !this.fixedDiv,\n d = this.options.chart,\n f = d.scrollablePlotArea,\n h = u.getRendererType();\n a ? (this.fixedDiv = z(\"div\", {\n className: \"highcharts-fixed\"\n }, {\n position: \"absolute\",\n overflow: \"hidden\",\n pointerEvents: \"none\",\n zIndex: (d.style && d.style.zIndex || 0) + 2,\n top: 0\n }, null, !0), this.scrollingContainer && this.scrollingContainer.parentNode.insertBefore(this.fixedDiv, this.scrollingContainer), this.renderTo.style.overflow = \"visible\", this.fixedRenderer = d = new h(this.fixedDiv, this.chartWidth, this.chartHeight, this.options.chart.style), this.scrollableMask = d.path().attr({\n fill: this.options.chart.backgroundColor || \"#fff\",\n \"fill-opacity\": m(f.opacity, .85),\n zIndex: -1\n }).addClass(\"highcharts-scrollable-mask\").add(), B(this, \"afterShowResetZoom\", this.moveFixedElements), B(this, \"afterApplyDrilldown\", this.moveFixedElements), B(this, \"afterLayOutTitles\", this.moveFixedElements)) : this.fixedRenderer.setSize(this.chartWidth, this.chartHeight);\n if (this.scrollableDirty || a) this.scrollableDirty = !1, this.moveFixedElements();\n d = this.chartWidth + (this.scrollablePixelsX || 0);\n h = this.chartHeight + (this.scrollablePixelsY || 0);\n F(this.container);\n this.container.style.width = d + \"px\";\n this.container.style.height = h + \"px\";\n this.renderer.boxWrapper.attr({\n width: d,\n height: h,\n viewBox: [0, 0, d, h].join(\" \")\n });\n this.chartBackground.attr({\n width: d,\n height: h\n });\n this.scrollingContainer.style.height = this.chartHeight + \"px\";\n a && (f.scrollPositionX && (this.scrollingContainer.scrollLeft = this.scrollablePixelsX * f.scrollPositionX), f.scrollPositionY && (this.scrollingContainer.scrollTop = this.scrollablePixelsY * f.scrollPositionY));\n h = this.axisOffset;\n a = this.plotTop - h[0] - 1;\n f = this.plotLeft - h[3] - 1;\n d = this.plotTop + this.plotHeight + h[2] + 1;\n h = this.plotLeft + this.plotWidth + h[1] + 1;\n var p = this.plotLeft + this.plotWidth - (this.scrollablePixelsX || 0),\n n = this.plotTop + this.plotHeight - (this.scrollablePixelsY || 0);\n a = this.scrollablePixelsX ? [[\"M\", 0, a], [\"L\", this.plotLeft - 1, a], [\"L\", this.plotLeft - 1, d], [\"L\", 0, d], [\"Z\"], [\"M\", p, a], [\"L\", this.chartWidth, a], [\"L\", this.chartWidth, d], [\"L\", p, d], [\"Z\"]] : this.scrollablePixelsY ? [[\"M\", f, 0], [\"L\", f, this.plotTop - 1], [\"L\", h, this.plotTop - 1], [\"L\", h, 0], [\"Z\"], [\"M\", f, n], [\"L\", f, this.chartHeight], [\"L\", h, this.chartHeight], [\"L\", h, n], [\"Z\"]] : [[\"M\", 0, 0]];\n \"adjustHeight\" !== this.redrawTrigger && this.scrollableMask.attr({\n d: a\n });\n };\n\n B(f, \"afterInit\", function () {\n this.chart.scrollableDirty = !0;\n });\n B(G, \"show\", function () {\n this.chart.scrollableDirty = !0;\n });\n \"\";\n });\n M(f, \"Core/Axis/StackingAxis.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Axis/Axis.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = a.getDeferredAnimation,\n u = C.addEvent,\n H = C.destroyObjectProperties,\n I = C.fireEvent,\n B = C.isNumber,\n z = C.objectEach,\n p;\n\n (function (a) {\n function e() {\n var a = this.stacking;\n\n if (a) {\n var d = a.stacks;\n z(d, function (a, e) {\n H(a);\n d[e] = null;\n });\n a && a.stackTotalGroup && a.stackTotalGroup.destroy();\n }\n }\n\n function d() {\n this.stacking || (this.stacking = new h(this));\n }\n\n var f = [];\n\n a.compose = function (a) {\n -1 === f.indexOf(a) && (f.push(a), u(a, \"init\", d), u(a, \"destroy\", e));\n return a;\n };\n\n var h = function () {\n function a(a) {\n this.oldStacks = {};\n this.stacks = {};\n this.stacksTouched = 0;\n this.axis = a;\n }\n\n a.prototype.buildStacks = function () {\n var a = this.axis,\n d = a.series,\n e = a.options.reversedStacks,\n f = d.length,\n h;\n\n if (!a.isXAxis) {\n this.usePercentage = !1;\n\n for (h = f; h--;) {\n var l = d[e ? h : f - h - 1];\n l.setStackedPoints();\n l.setGroupedPoints();\n }\n\n for (h = 0; h < f; h++) {\n d[h].modifyStacks();\n }\n\n I(a, \"afterBuildStacks\");\n }\n };\n\n a.prototype.cleanStacks = function () {\n if (!this.axis.isXAxis) {\n if (this.oldStacks) var a = this.stacks = this.oldStacks;\n z(a, function (a) {\n z(a, function (a) {\n a.cumulative = a.total;\n });\n });\n }\n };\n\n a.prototype.resetStacks = function () {\n var a = this,\n d = a.stacks;\n a.axis.isXAxis || z(d, function (d) {\n z(d, function (e, f) {\n B(e.touched) && e.touched < a.stacksTouched ? (e.destroy(), delete d[f]) : (e.total = null, e.cumulative = null);\n });\n });\n };\n\n a.prototype.renderStackTotals = function () {\n var a = this.axis,\n d = a.chart,\n e = d.renderer,\n f = this.stacks;\n a = F(d, a.options.stackLabels && a.options.stackLabels.animation || !1);\n var h = this.stackTotalGroup = this.stackTotalGroup || e.g(\"stack-labels\").attr({\n visibility: \"visible\",\n zIndex: 6,\n opacity: 0\n }).add();\n h.translate(d.plotLeft, d.plotTop);\n z(f, function (a) {\n z(a, function (a) {\n a.render(h);\n });\n });\n h.animate({\n opacity: 1\n }, a);\n };\n\n return a;\n }();\n\n a.Additions = h;\n })(p || (p = {}));\n\n return p;\n });\n M(f, \"Extensions/Stacking.js\", [f[\"Core/Axis/Axis.js\"], f[\"Core/Chart/Chart.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Globals.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Axis/StackingAxis.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I) {\n var B = C.format,\n z = I.correctFloat,\n p = I.defined,\n m = I.destroyObjectProperties,\n e = I.isArray,\n d = I.isNumber,\n l = I.objectEach,\n h = I.pick,\n t = function () {\n function a(a, d, e, f, h) {\n var k = a.chart.inverted;\n this.axis = a;\n this.isNegative = e;\n this.options = d = d || {};\n this.x = f;\n this.total = null;\n this.points = {};\n this.hasValidPoints = !1;\n this.stack = h;\n this.rightCliff = this.leftCliff = 0;\n this.alignOptions = {\n align: d.align || (k ? e ? \"left\" : \"right\" : \"center\"),\n verticalAlign: d.verticalAlign || (k ? \"middle\" : e ? \"bottom\" : \"top\"),\n y: d.y,\n x: d.x\n };\n this.textAlign = d.textAlign || (k ? e ? \"right\" : \"left\" : \"center\");\n }\n\n a.prototype.destroy = function () {\n m(this, this.axis);\n };\n\n a.prototype.render = function (a) {\n var d = this.axis.chart,\n e = this.options,\n f = e.format;\n f = f ? B(f, this, d) : e.formatter.call(this);\n this.label ? this.label.attr({\n text: f,\n visibility: \"hidden\"\n }) : (this.label = d.renderer.label(f, null, null, e.shape, null, null, e.useHTML, !1, \"stack-labels\"), f = {\n r: e.borderRadius || 0,\n text: f,\n rotation: e.rotation,\n padding: h(e.padding, 5),\n visibility: \"hidden\"\n }, d.styledMode || (f.fill = e.backgroundColor, f.stroke = e.borderColor, f[\"stroke-width\"] = e.borderWidth, this.label.css(e.style)), this.label.attr(f), this.label.added || this.label.add(a));\n this.label.labelrank = d.plotSizeY;\n };\n\n a.prototype.setOffset = function (a, e, f, l, m) {\n var k = this.axis,\n c = k.chart;\n l = k.translate(k.stacking.usePercentage ? 100 : l ? l : this.total, 0, 0, 0, 1);\n f = k.translate(f ? f : 0);\n f = p(l) && Math.abs(l - f);\n a = h(m, c.xAxis[0].translate(this.x)) + a;\n k = p(l) && this.getStackBox(c, this, a, l, e, f, k);\n e = this.label;\n f = this.isNegative;\n a = \"justify\" === h(this.options.overflow, \"justify\");\n var g = this.textAlign;\n e && k && (m = e.getBBox(), l = e.padding, g = \"left\" === g ? c.inverted ? -l : l : \"right\" === g ? m.width : c.inverted && \"center\" === g ? m.width / 2 : c.inverted ? f ? m.width + l : -l : m.width / 2, f = c.inverted ? m.height / 2 : f ? -l : m.height, this.alignOptions.x = h(this.options.x, 0), this.alignOptions.y = h(this.options.y, 0), k.x -= g, k.y -= f, e.align(this.alignOptions, null, k), c.isInsidePlot(e.alignAttr.x + g - this.alignOptions.x, e.alignAttr.y + f - this.alignOptions.y) ? e.show() : (e.alignAttr.y = -9999, a = !1), a && u.prototype.justifyDataLabel.call(this.axis, e, this.alignOptions, e.alignAttr, m, k), e.attr({\n x: e.alignAttr.x,\n y: e.alignAttr.y\n }), h(!a && this.options.crop, !0) && ((c = d(e.x) && d(e.y) && c.isInsidePlot(e.x - l + e.width, e.y) && c.isInsidePlot(e.x + l, e.y)) || e.hide()));\n };\n\n a.prototype.getStackBox = function (a, d, e, f, h, k, c) {\n var g = d.axis.reversed,\n b = a.inverted,\n l = c.height + c.pos - (b ? a.plotLeft : a.plotTop);\n d = d.isNegative && !g || !d.isNegative && g;\n return {\n x: b ? d ? f - c.right : f - k + c.pos - a.plotLeft : e + a.xAxis[0].transB - a.plotLeft,\n y: b ? c.height - e - h : d ? l - f - k : l - f,\n width: b ? k : h,\n height: b ? h : k\n };\n };\n\n return a;\n }();\n\n f.prototype.getStacks = function () {\n var a = this,\n d = a.inverted;\n a.yAxis.forEach(function (a) {\n a.stacking && a.stacking.stacks && a.hasVisibleSeries && (a.stacking.oldStacks = a.stacking.stacks);\n });\n a.series.forEach(function (e) {\n var f = e.xAxis && e.xAxis.options || {};\n !e.options.stacking || !0 !== e.visible && !1 !== a.options.chart.ignoreHiddenSeries || (e.stackKey = [e.type, h(e.options.stack, \"\"), d ? f.top : f.left, d ? f.height : f.width].join());\n });\n };\n\n H.compose(a);\n\n u.prototype.setGroupedPoints = function () {\n var a = this.yAxis.stacking;\n this.options.centerInCategory && (this.is(\"column\") || this.is(\"columnrange\")) && !this.options.stacking && 1 < this.chart.series.length ? u.prototype.setStackedPoints.call(this, \"group\") : a && l(a.stacks, function (d, e) {\n \"group\" === e.slice(-5) && (l(d, function (a) {\n return a.destroy();\n }), delete a.stacks[e]);\n });\n };\n\n u.prototype.setStackedPoints = function (a) {\n var d = a || this.options.stacking;\n\n if (d && (!0 === this.visible || !1 === this.chart.options.chart.ignoreHiddenSeries)) {\n var f = this.processedXData,\n l = this.processedYData,\n m = [],\n n = l.length,\n k = this.options,\n c = k.threshold,\n g = h(k.startFromThreshold && c, 0);\n k = k.stack;\n a = a ? this.type + \",\" + d : this.stackKey;\n var b = \"-\" + a,\n r = this.negStacks,\n x = this.yAxis,\n D = x.stacking.stacks,\n u = x.stacking.oldStacks,\n B,\n F;\n x.stacking.stacksTouched += 1;\n\n for (F = 0; F < n; F++) {\n var C = f[F];\n var G = l[F];\n var I = this.getStackIndicator(I, C, this.index);\n var H = I.key;\n var J = (B = r && G < (g ? 0 : c)) ? b : a;\n D[J] || (D[J] = {});\n D[J][C] || (u[J] && u[J][C] ? (D[J][C] = u[J][C], D[J][C].total = null) : D[J][C] = new t(x, x.options.stackLabels, B, C, k));\n J = D[J][C];\n null !== G ? (J.points[H] = J.points[this.index] = [h(J.cumulative, g)], p(J.cumulative) || (J.base = H), J.touched = x.stacking.stacksTouched, 0 < I.index && !1 === this.singleStacks && (J.points[H][0] = J.points[this.index + \",\" + C + \",0\"][0])) : J.points[H] = J.points[this.index] = null;\n \"percent\" === d ? (B = B ? a : b, r && D[B] && D[B][C] ? (B = D[B][C], J.total = B.total = Math.max(B.total, J.total) + Math.abs(G) || 0) : J.total = z(J.total + (Math.abs(G) || 0))) : \"group\" === d ? (e(G) && (G = G[0]), null !== G && (J.total = (J.total || 0) + 1)) : J.total = z(J.total + (G || 0));\n J.cumulative = \"group\" === d ? (J.total || 1) - 1 : h(J.cumulative, g) + (G || 0);\n null !== G && (J.points[H].push(J.cumulative), m[F] = J.cumulative, J.hasValidPoints = !0);\n }\n\n \"percent\" === d && (x.stacking.usePercentage = !0);\n \"group\" !== d && (this.stackedYData = m);\n x.stacking.oldStacks = {};\n }\n };\n\n u.prototype.modifyStacks = function () {\n var a = this,\n d = a.stackKey,\n e = a.yAxis.stacking.stacks,\n f = a.processedXData,\n h,\n l = a.options.stacking;\n a[l + \"Stacker\"] && [d, \"-\" + d].forEach(function (d) {\n for (var c = f.length, g, b; c--;) {\n if (g = f[c], h = a.getStackIndicator(h, g, a.index, d), b = (g = e[d] && e[d][g]) && g.points[h.key]) a[l + \"Stacker\"](b, g, c);\n }\n });\n };\n\n u.prototype.percentStacker = function (a, d, e) {\n d = d.total ? 100 / d.total : 0;\n a[0] = z(a[0] * d);\n a[1] = z(a[1] * d);\n this.stackedYData[e] = a[1];\n };\n\n u.prototype.getStackIndicator = function (a, d, e, f) {\n !p(a) || a.x !== d || f && a.stackKey !== f ? a = {\n x: d,\n index: 0,\n key: f,\n stackKey: f\n } : a.index++;\n a.key = [e, d, a.index].join();\n return a;\n };\n\n G.StackItem = t;\n \"\";\n return G.StackItem;\n });\n M(f, \"Series/Line/LineSeries.js\", [f[\"Core/Series/Series.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = this && this.__extends || function () {\n var _a4 = function a(f, z) {\n _a4 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, f) {\n a.__proto__ = f;\n } || function (a, f) {\n for (var e in f) {\n f.hasOwnProperty(e) && (a[e] = f[e]);\n }\n };\n\n return _a4(f, z);\n };\n\n return function (f, z) {\n function p() {\n this.constructor = f;\n }\n\n _a4(f, z);\n\n f.prototype = null === z ? Object.create(z) : (p.prototype = z.prototype, new p());\n };\n }(),\n u = C.defined,\n H = C.merge;\n\n C = function (f) {\n function B() {\n var a = null !== f && f.apply(this, arguments) || this;\n a.data = void 0;\n a.options = void 0;\n a.points = void 0;\n return a;\n }\n\n F(B, f);\n\n B.prototype.drawGraph = function () {\n var a = this,\n f = this.options,\n m = (this.gappedPath || this.getGraphPath).call(this),\n e = this.chart.styledMode,\n d = [[\"graph\", \"highcharts-graph\"]];\n e || d[0].push(f.lineColor || this.color || \"#cccccc\", f.dashStyle);\n d = a.getZonesGraphs(d);\n d.forEach(function (d, h) {\n var l = d[0],\n n = a[l],\n p = n ? \"animate\" : \"attr\";\n n ? (n.endX = a.preventGraphAnimation ? null : m.xMap, n.animate({\n d: m\n })) : m.length && (a[l] = n = a.chart.renderer.path(m).addClass(d[1]).attr({\n zIndex: 1\n }).add(a.group));\n n && !e && (l = {\n stroke: d[2],\n \"stroke-width\": f.lineWidth,\n fill: a.fillGraph && a.color || \"none\"\n }, d[3] ? l.dashstyle = d[3] : \"square\" !== f.linecap && (l[\"stroke-linecap\"] = l[\"stroke-linejoin\"] = \"round\"), n[p](l).shadow(2 > h && f.shadow));\n n && (n.startX = m.xMap, n.isArea = m.isArea);\n });\n };\n\n B.prototype.getGraphPath = function (a, f, m) {\n var e = this,\n d = e.options,\n l = [],\n h = [],\n p,\n n = d.step;\n a = a || e.points;\n var v = a.reversed;\n v && a.reverse();\n (n = {\n right: 1,\n center: 2\n }[n] || n && 3) && v && (n = 4 - n);\n a = this.getValidPoints(a, !1, !(d.connectNulls && !f && !m));\n a.forEach(function (t, y) {\n var A = t.plotX,\n q = t.plotY,\n k = a[y - 1];\n (t.leftCliff || k && k.rightCliff) && !m && (p = !0);\n t.isNull && !u(f) && 0 < y ? p = !d.connectNulls : t.isNull && !f ? p = !0 : (0 === y || p ? y = [[\"M\", t.plotX, t.plotY]] : e.getPointSpline ? y = [e.getPointSpline(a, t, y)] : n ? (y = 1 === n ? [[\"L\", k.plotX, q]] : 2 === n ? [[\"L\", (k.plotX + A) / 2, k.plotY], [\"L\", (k.plotX + A) / 2, q]] : [[\"L\", A, k.plotY]], y.push([\"L\", A, q])) : y = [[\"L\", A, q]], h.push(t.x), n && (h.push(t.x), 2 === n && h.push(t.x)), l.push.apply(l, y), p = !1);\n });\n l.xMap = h;\n return e.graphPath = l;\n };\n\n B.prototype.getZonesGraphs = function (a) {\n this.zones.forEach(function (f, m) {\n m = [\"zone-graph-\" + m, \"highcharts-graph highcharts-zone-graph-\" + m + \" \" + (f.className || \"\")];\n this.chart.styledMode || m.push(f.color || this.color, f.dashStyle || this.options.dashStyle);\n a.push(m);\n }, this);\n return a;\n };\n\n B.defaultOptions = H(a.defaultOptions, {});\n return B;\n }(a);\n\n f.registerSeriesType(\"line\", C);\n \"\";\n return C;\n });\n M(f, \"Series/Area/AreaSeries.js\", [f[\"Core/Color/Color.js\"], f[\"Core/Legend/LegendSymbol.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G) {\n var u = this && this.__extends || function () {\n var _a5 = function a(e, d) {\n _a5 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, d) {\n a.__proto__ = d;\n } || function (a, d) {\n for (var e in d) {\n d.hasOwnProperty(e) && (a[e] = d[e]);\n }\n };\n\n return _a5(e, d);\n };\n\n return function (e, d) {\n function f() {\n this.constructor = e;\n }\n\n _a5(e, d);\n\n e.prototype = null === d ? Object.create(d) : (f.prototype = d.prototype, new f());\n };\n }(),\n F = a.parse,\n I = C.seriesTypes.line;\n\n a = G.extend;\n var B = G.merge,\n z = G.objectEach,\n p = G.pick;\n\n G = function (a) {\n function e() {\n var d = null !== a && a.apply(this, arguments) || this;\n d.data = void 0;\n d.options = void 0;\n d.points = void 0;\n return d;\n }\n\n u(e, a);\n\n e.prototype.drawGraph = function () {\n this.areaPath = [];\n a.prototype.drawGraph.apply(this);\n var d = this,\n e = this.areaPath,\n f = this.options,\n m = [[\"area\", \"highcharts-area\", this.color, f.fillColor]];\n this.zones.forEach(function (a, e) {\n m.push([\"zone-area-\" + e, \"highcharts-area highcharts-zone-area-\" + e + \" \" + a.className, a.color || d.color, a.fillColor || f.fillColor]);\n });\n m.forEach(function (a) {\n var h = a[0],\n l = d[h],\n m = l ? \"animate\" : \"attr\",\n n = {};\n l ? (l.endX = d.preventGraphAnimation ? null : e.xMap, l.animate({\n d: e\n })) : (n.zIndex = 0, l = d[h] = d.chart.renderer.path(e).addClass(a[1]).add(d.group), l.isArea = !0);\n d.chart.styledMode || (n.fill = p(a[3], F(a[2]).setOpacity(p(f.fillOpacity, .75)).get()));\n l[m](n);\n l.startX = e.xMap;\n l.shiftUnit = f.step ? 2 : 1;\n });\n };\n\n e.prototype.getGraphPath = function (a) {\n var d = I.prototype.getGraphPath,\n e = this.options,\n f = e.stacking,\n m = this.yAxis,\n v,\n w = [],\n y = [],\n A = this.index,\n q = m.stacking.stacks[this.stackKey],\n k = e.threshold,\n c = Math.round(m.getThreshold(e.threshold));\n e = p(e.connectNulls, \"percent\" === f);\n\n var g = function g(b, d, e) {\n var g = a[b];\n b = f && q[g.x].points[A];\n var h = g[e + \"Null\"] || 0;\n e = g[e + \"Cliff\"] || 0;\n g = !0;\n\n if (e || h) {\n var l = (h ? b[0] : b[1]) + e;\n var n = b[0] + e;\n g = !!h;\n } else !f && a[d] && a[d].isNull && (l = n = k);\n\n \"undefined\" !== typeof l && (y.push({\n plotX: r,\n plotY: null === l ? c : m.getThreshold(l),\n isNull: g,\n isCliff: !0\n }), w.push({\n plotX: r,\n plotY: null === n ? c : m.getThreshold(n),\n doCurve: !1\n }));\n };\n\n a = a || this.points;\n f && (a = this.getStackPoints(a));\n\n for (v = 0; v < a.length; v++) {\n f || (a[v].leftCliff = a[v].rightCliff = a[v].leftNull = a[v].rightNull = void 0);\n var b = a[v].isNull;\n var r = p(a[v].rectPlotX, a[v].plotX);\n var x = f ? p(a[v].yBottom, c) : c;\n if (!b || e) e || g(v, v - 1, \"left\"), b && !f && e || (y.push(a[v]), w.push({\n x: v,\n plotX: r,\n plotY: x\n })), e || g(v, v + 1, \"right\");\n }\n\n v = d.call(this, y, !0, !0);\n w.reversed = !0;\n b = d.call(this, w, !0, !0);\n (x = b[0]) && \"M\" === x[0] && (b[0] = [\"L\", x[1], x[2]]);\n b = v.concat(b);\n b.length && b.push([\"Z\"]);\n d = d.call(this, y, !1, e);\n b.xMap = v.xMap;\n this.areaPath = b;\n return d;\n };\n\n e.prototype.getStackPoints = function (a) {\n var d = this,\n e = [],\n f = [],\n m = this.xAxis,\n v = this.yAxis,\n w = v.stacking.stacks[this.stackKey],\n y = {},\n A = v.series,\n q = A.length,\n k = v.options.reversedStacks ? 1 : -1,\n c = A.indexOf(d);\n a = a || this.points;\n\n if (this.options.stacking) {\n for (var g = 0; g < a.length; g++) {\n a[g].leftNull = a[g].rightNull = void 0, y[a[g].x] = a[g];\n }\n\n z(w, function (a, b) {\n null !== a.total && f.push(b);\n });\n f.sort(function (a, b) {\n return a - b;\n });\n var b = A.map(function (a) {\n return a.visible;\n });\n f.forEach(function (a, g) {\n var h = 0,\n l,\n n;\n if (y[a] && !y[a].isNull) e.push(y[a]), [-1, 1].forEach(function (e) {\n var h = 1 === e ? \"rightNull\" : \"leftNull\",\n m = 0,\n p = w[f[g + e]];\n if (p) for (var r = c; 0 <= r && r < q;) {\n var t = A[r].index;\n l = p.points[t];\n l || (t === d.index ? y[a][h] = !0 : b[r] && (n = w[a].points[t]) && (m -= n[1] - n[0]));\n r += k;\n }\n y[a][1 === e ? \"rightCliff\" : \"leftCliff\"] = m;\n });else {\n for (var r = c; 0 <= r && r < q;) {\n if (l = w[a].points[A[r].index]) {\n h = l[1];\n break;\n }\n\n r += k;\n }\n\n h = p(h, 0);\n h = v.translate(h, 0, 1, 0, 1);\n e.push({\n isNull: !0,\n plotX: m.translate(a, 0, 0, 0, 1),\n x: a,\n plotY: h,\n yBottom: h\n });\n }\n });\n }\n\n return e;\n };\n\n e.defaultOptions = B(I.defaultOptions, {\n threshold: 0\n });\n return e;\n }(I);\n\n a(G.prototype, {\n singleStacks: !1,\n drawLegendSymbol: f.drawRectangle\n });\n C.registerSeriesType(\"area\", G);\n \"\";\n return G;\n });\n M(f, \"Series/Spline/SplineSeries.js\", [f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n var F = this && this.__extends || function () {\n var _a6 = function a(f, z) {\n _a6 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, f) {\n a.__proto__ = f;\n } || function (a, f) {\n for (var e in f) {\n f.hasOwnProperty(e) && (a[e] = f[e]);\n }\n };\n\n return _a6(f, z);\n };\n\n return function (f, z) {\n function p() {\n this.constructor = f;\n }\n\n _a6(f, z);\n\n f.prototype = null === z ? Object.create(z) : (p.prototype = z.prototype, new p());\n };\n }(),\n G = a.seriesTypes.line,\n u = f.merge,\n H = f.pick;\n\n f = function (a) {\n function f() {\n var f = null !== a && a.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n F(f, a);\n\n f.prototype.getPointSpline = function (a, f, m) {\n var e = f.plotX || 0,\n d = f.plotY || 0,\n l = a[m - 1];\n m = a[m + 1];\n\n if (l && !l.isNull && !1 !== l.doCurve && !f.isCliff && m && !m.isNull && !1 !== m.doCurve && !f.isCliff) {\n a = l.plotY || 0;\n var h = m.plotX || 0;\n m = m.plotY || 0;\n var p = 0;\n var n = (1.5 * e + (l.plotX || 0)) / 2.5;\n var v = (1.5 * d + a) / 2.5;\n h = (1.5 * e + h) / 2.5;\n var w = (1.5 * d + m) / 2.5;\n h !== n && (p = (w - v) * (h - e) / (h - n) + d - w);\n v += p;\n w += p;\n v > a && v > d ? (v = Math.max(a, d), w = 2 * d - v) : v < a && v < d && (v = Math.min(a, d), w = 2 * d - v);\n w > m && w > d ? (w = Math.max(m, d), v = 2 * d - w) : w < m && w < d && (w = Math.min(m, d), v = 2 * d - w);\n f.rightContX = h;\n f.rightContY = w;\n }\n\n f = [\"C\", H(l.rightContX, l.plotX, 0), H(l.rightContY, l.plotY, 0), H(n, e, 0), H(v, d, 0), e, d];\n l.rightContX = l.rightContY = void 0;\n return f;\n };\n\n f.defaultOptions = u(G.defaultOptions);\n return f;\n }(G);\n\n a.registerSeriesType(\"spline\", f);\n \"\";\n return f;\n });\n M(f, \"Series/AreaSpline/AreaSplineSeries.js\", [f[\"Series/Area/AreaSeries.js\"], f[\"Series/Spline/SplineSeries.js\"], f[\"Core/Legend/LegendSymbol.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u) {\n var F = this && this.__extends || function () {\n var _a7 = function a(f, e) {\n _a7 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, e) {\n a.__proto__ = e;\n } || function (a, e) {\n for (var d in e) {\n e.hasOwnProperty(d) && (a[d] = e[d]);\n }\n };\n\n return _a7(f, e);\n };\n\n return function (f, e) {\n function d() {\n this.constructor = f;\n }\n\n _a7(f, e);\n\n f.prototype = null === e ? Object.create(e) : (d.prototype = e.prototype, new d());\n };\n }(),\n I = a.prototype,\n B = u.extend,\n z = u.merge;\n\n u = function (p) {\n function m() {\n var a = null !== p && p.apply(this, arguments) || this;\n a.data = void 0;\n a.points = void 0;\n a.options = void 0;\n return a;\n }\n\n F(m, p);\n m.defaultOptions = z(f.defaultOptions, a.defaultOptions);\n return m;\n }(f);\n\n B(u.prototype, {\n getGraphPath: I.getGraphPath,\n getStackPoints: I.getStackPoints,\n drawGraph: I.drawGraph,\n drawLegendSymbol: C.drawRectangle\n });\n G.registerSeriesType(\"areaspline\", u);\n \"\";\n return u;\n });\n M(f, \"Series/Column/ColumnSeries.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Color/Color.js\"], f[\"Core/Globals.js\"], f[\"Core/Legend/LegendSymbol.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I) {\n var B = this && this.__extends || function () {\n var _a8 = function a(d, c) {\n _a8 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, b) {\n a.__proto__ = b;\n } || function (a, b) {\n for (var c in b) {\n b.hasOwnProperty(c) && (a[c] = b[c]);\n }\n };\n\n return _a8(d, c);\n };\n\n return function (d, c) {\n function e() {\n this.constructor = d;\n }\n\n _a8(d, c);\n\n d.prototype = null === c ? Object.create(c) : (e.prototype = c.prototype, new e());\n };\n }(),\n z = a.animObject,\n p = f.parse,\n m = C.hasTouch;\n\n a = C.noop;\n var e = I.clamp,\n d = I.css,\n l = I.defined,\n h = I.extend,\n t = I.fireEvent,\n n = I.isArray,\n v = I.isNumber,\n w = I.merge,\n y = I.pick,\n A = I.objectEach;\n\n I = function (a) {\n function f() {\n var c = null !== a && a.apply(this, arguments) || this;\n c.borderWidth = void 0;\n c.data = void 0;\n c.group = void 0;\n c.options = void 0;\n c.points = void 0;\n return c;\n }\n\n B(f, a);\n\n f.prototype.animate = function (a) {\n var c = this,\n b = this.yAxis,\n d = c.options,\n f = this.chart.inverted,\n k = {},\n l = f ? \"translateX\" : \"translateY\";\n if (a) k.scaleY = .001, a = e(b.toPixels(d.threshold), b.pos, b.pos + b.len), f ? k.translateX = a - b.len : k.translateY = a, c.clipBox && c.setClip(), c.group.attr(k);else {\n var m = Number(c.group.attr(l));\n c.group.animate({\n scaleY: 1\n }, h(z(c.options.animation), {\n step: function step(a, d) {\n c.group && (k[l] = m + d.pos * (b.pos - m), c.group.attr(k));\n }\n }));\n }\n };\n\n f.prototype.init = function (c, d) {\n a.prototype.init.apply(this, arguments);\n var b = this;\n c = b.chart;\n c.hasRendered && c.series.forEach(function (a) {\n a.type === b.type && (a.isDirty = !0);\n });\n };\n\n f.prototype.getColumnMetrics = function () {\n var a = this,\n d = a.options,\n b = a.xAxis,\n e = a.yAxis,\n f = b.options.reversedStacks;\n f = b.reversed && !f || !b.reversed && f;\n var k = {},\n h,\n l = 0;\n !1 === d.grouping ? l = 1 : a.chart.series.forEach(function (b) {\n var c = b.yAxis,\n d = b.options;\n\n if (b.type === a.type && (b.visible || !a.chart.options.chart.ignoreHiddenSeries) && e.len === c.len && e.pos === c.pos) {\n if (d.stacking && \"group\" !== d.stacking) {\n h = b.stackKey;\n \"undefined\" === typeof k[h] && (k[h] = l++);\n var f = k[h];\n } else !1 !== d.grouping && (f = l++);\n\n b.columnIndex = f;\n }\n });\n var m = Math.min(Math.abs(b.transA) * (b.ordinal && b.ordinal.slope || d.pointRange || b.closestPointRange || b.tickInterval || 1), b.len),\n n = m * d.groupPadding,\n q = (m - 2 * n) / (l || 1);\n d = Math.min(d.maxPointWidth || b.len, y(d.pointWidth, q * (1 - 2 * d.pointPadding)));\n a.columnMetrics = {\n width: d,\n offset: (q - d) / 2 + (n + ((a.columnIndex || 0) + (f ? 1 : 0)) * q - m / 2) * (f ? -1 : 1),\n paddedWidth: q,\n columnCount: l\n };\n return a.columnMetrics;\n };\n\n f.prototype.crispCol = function (a, d, b, e) {\n var c = this.chart,\n f = this.borderWidth,\n g = -(f % 2 ? .5 : 0);\n f = f % 2 ? .5 : 1;\n c.inverted && c.renderer.isVML && (f += 1);\n this.options.crisp && (b = Math.round(a + b) + g, a = Math.round(a) + g, b -= a);\n e = Math.round(d + e) + f;\n g = .5 >= Math.abs(d) && .5 < e;\n d = Math.round(d) + f;\n e -= d;\n g && e && (--d, e += 1);\n return {\n x: a,\n y: d,\n width: b,\n height: e\n };\n };\n\n f.prototype.adjustForMissingColumns = function (a, d, b, e) {\n var c = this,\n f = this.options.stacking;\n\n if (!b.isNull && 1 < e.columnCount) {\n var g = this.yAxis.options.reversedStacks,\n k = 0,\n h = g ? 0 : -e.columnCount;\n A(this.yAxis.stacking && this.yAxis.stacking.stacks, function (a) {\n if (\"number\" === typeof b.x && (a = a[b.x.toString()])) {\n var d = a.points[c.index],\n e = a.total;\n f ? (d && (k = h), a.hasValidPoints && (g ? h++ : h--)) : n(d) && (k = d[1], h = e || 0);\n }\n });\n a = (b.plotX || 0) + ((h - 1) * e.paddedWidth + d) / 2 - d - k * e.paddedWidth;\n }\n\n return a;\n };\n\n f.prototype.translate = function () {\n var a = this,\n d = a.chart,\n b = a.options,\n f = a.dense = 2 > a.closestPointRange * a.xAxis.transA;\n f = a.borderWidth = y(b.borderWidth, f ? 0 : 1);\n var k = a.xAxis,\n h = a.yAxis,\n m = b.threshold,\n n = a.translatedThreshold = h.getThreshold(m),\n q = y(b.minPointLength, 5),\n p = a.getColumnMetrics(),\n t = p.width,\n A = a.pointXOffset = p.offset,\n w = a.dataMin,\n z = a.dataMax,\n B = a.barW = Math.max(t, 1 + 2 * f);\n d.inverted && (n -= .5);\n b.pointPadding && (B = Math.ceil(B));\n u.prototype.translate.apply(a);\n a.points.forEach(function (c) {\n var f = y(c.yBottom, n),\n g = 999 + Math.abs(f),\n r = c.plotX || 0;\n g = e(c.plotY, -g, h.len + g);\n var x = Math.min(g, f),\n D = Math.max(g, f) - x,\n u = t,\n F = r + A,\n C = B;\n q && Math.abs(D) < q && (D = q, r = !h.reversed && !c.negative || h.reversed && c.negative, v(m) && v(z) && c.y === m && z <= m && (h.min || 0) < m && (w !== z || (h.max || 0) <= m) && (r = !r), x = Math.abs(x - n) > q ? f - q : n - (r ? q : 0));\n l(c.options.pointWidth) && (u = C = Math.ceil(c.options.pointWidth), F -= Math.round((u - t) / 2));\n b.centerInCategory && (F = a.adjustForMissingColumns(F, u, c, p));\n c.barX = F;\n c.pointWidth = u;\n c.tooltipPos = d.inverted ? [e(h.len + h.pos - d.plotLeft - g, h.pos - d.plotLeft, h.len + h.pos - d.plotLeft), k.len + k.pos - d.plotTop - F - C / 2, D] : [k.left - d.plotLeft + F + C / 2, e(g + h.pos - d.plotTop, h.pos - d.plotTop, h.len + h.pos - d.plotTop), D];\n c.shapeType = a.pointClass.prototype.shapeType || \"rect\";\n c.shapeArgs = a.crispCol.apply(a, c.isNull ? [F, n, C, 0] : [F, x, C, D]);\n });\n };\n\n f.prototype.drawGraph = function () {\n this.group[this.dense ? \"addClass\" : \"removeClass\"](\"highcharts-dense-data\");\n };\n\n f.prototype.pointAttribs = function (a, d) {\n var b = this.options,\n c = this.pointAttrToOptions || {},\n e = c.stroke || \"borderColor\",\n f = c[\"stroke-width\"] || \"borderWidth\",\n g = a && a.color || this.color,\n k = a && a[e] || b[e] || g;\n c = a && a.options.dashStyle || b.dashStyle;\n var h = a && a[f] || b[f] || this[f] || 0,\n l = y(a && a.opacity, b.opacity, 1);\n\n if (a && this.zones.length) {\n var m = a.getZone();\n g = a.options.color || m && (m.color || a.nonZonedColor) || this.color;\n m && (k = m.borderColor || k, c = m.dashStyle || c, h = m.borderWidth || h);\n }\n\n d && a && (a = w(b.states[d], a.options.states && a.options.states[d] || {}), d = a.brightness, g = a.color || \"undefined\" !== typeof d && p(g).brighten(a.brightness).get() || g, k = a[e] || k, h = a[f] || h, c = a.dashStyle || c, l = y(a.opacity, l));\n e = {\n fill: g,\n stroke: k,\n \"stroke-width\": h,\n opacity: l\n };\n c && (e.dashstyle = c);\n return e;\n };\n\n f.prototype.drawPoints = function () {\n var a = this,\n d = this.chart,\n b = a.options,\n e = d.renderer,\n f = b.animationLimit || 250,\n k;\n a.points.forEach(function (c) {\n var g = c.graphic,\n h = !!g,\n l = g && d.pointCount < f ? \"animate\" : \"attr\";\n\n if (v(c.plotY) && null !== c.y) {\n k = c.shapeArgs;\n g && c.hasNewShapeType() && (g = g.destroy());\n a.enabledDataSorting && (c.startXPos = a.xAxis.reversed ? -(k ? k.width || 0 : 0) : a.xAxis.width);\n g || (c.graphic = g = e[c.shapeType](k).add(c.group || a.group)) && a.enabledDataSorting && d.hasRendered && d.pointCount < f && (g.attr({\n x: c.startXPos\n }), h = !0, l = \"animate\");\n if (g && h) g[l](w(k));\n if (b.borderRadius) g[l]({\n r: b.borderRadius\n });\n d.styledMode || g[l](a.pointAttribs(c, c.selected && \"select\")).shadow(!1 !== c.allowShadow && b.shadow, null, b.stacking && !b.borderRadius);\n g && (g.addClass(c.getClassName(), !0), g.attr({\n visibility: c.visible ? \"inherit\" : \"hidden\"\n }));\n } else g && (c.graphic = g.destroy());\n });\n };\n\n f.prototype.drawTracker = function () {\n var a = this,\n e = a.chart,\n b = e.pointer,\n f = function f(a) {\n var c = b.getPointFromEvent(a);\n \"undefined\" !== typeof c && (b.isDirectTouch = !0, c.onMouseOver(a));\n },\n k;\n\n a.points.forEach(function (a) {\n k = n(a.dataLabels) ? a.dataLabels : a.dataLabel ? [a.dataLabel] : [];\n a.graphic && (a.graphic.element.point = a);\n k.forEach(function (b) {\n b.div ? b.div.point = a : b.element.point = a;\n });\n });\n a._hasTracking || (a.trackerGroups.forEach(function (c) {\n if (a[c]) {\n a[c].addClass(\"highcharts-tracker\").on(\"mouseover\", f).on(\"mouseout\", function (a) {\n b.onTrackerMouseOut(a);\n });\n if (m) a[c].on(\"touchstart\", f);\n !e.styledMode && a.options.cursor && a[c].css(d).css({\n cursor: a.options.cursor\n });\n }\n }), a._hasTracking = !0);\n t(this, \"afterDrawTracker\");\n };\n\n f.prototype.remove = function () {\n var a = this,\n d = a.chart;\n d.hasRendered && d.series.forEach(function (b) {\n b.type === a.type && (b.isDirty = !0);\n });\n u.prototype.remove.apply(a, arguments);\n };\n\n f.defaultOptions = w(u.defaultOptions, {\n borderRadius: 0,\n centerInCategory: !1,\n groupPadding: .2,\n marker: null,\n pointPadding: .1,\n minPointLength: 0,\n cropThreshold: 50,\n pointRange: null,\n states: {\n hover: {\n halo: !1,\n brightness: .1\n },\n select: {\n color: \"#cccccc\",\n borderColor: \"#000000\"\n }\n },\n dataLabels: {\n align: void 0,\n verticalAlign: void 0,\n y: void 0\n },\n startFromThreshold: !0,\n stickyTracking: !1,\n tooltip: {\n distance: 6\n },\n threshold: 0,\n borderColor: \"#ffffff\"\n });\n return f;\n }(u);\n\n h(I.prototype, {\n cropShoulder: 0,\n directTouch: !0,\n drawLegendSymbol: G.drawRectangle,\n getSymbol: a,\n negStacks: !0,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n H.registerSeriesType(\"column\", I);\n \"\";\n \"\";\n return I;\n });\n M(f, \"Core/Series/DataLabel.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = a.getDeferredAnimation,\n u = f.format,\n H = C.defined,\n I = C.extend,\n B = C.fireEvent,\n z = C.isArray,\n p = C.merge,\n m = C.objectEach,\n e = C.pick,\n d = C.splat,\n l;\n\n (function (a) {\n function f(a, c, d, b, f) {\n var g = this,\n k = this.chart,\n h = this.isCartesian && k.inverted,\n l = this.enabledDataSorting,\n m = e(a.dlBox && a.dlBox.centerX, a.plotX, -9999),\n n = e(a.plotY, -9999),\n q = c.getBBox(),\n p = d.rotation,\n r = d.align,\n t = k.isInsidePlot(m, Math.round(n), {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }),\n A = function A(b) {\n l && g.xAxis && !y && g.setDataLabelStartPos(a, c, f, t, b);\n },\n y = \"justify\" === e(d.overflow, l ? \"none\" : \"justify\"),\n w = this.visible && !1 !== a.visible && (a.series.forceDL || l && !y || t || e(d.inside, !!this.options.stacking) && b && k.isInsidePlot(m, h ? b.x + 1 : b.y + b.height - 1, {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }));\n\n if (w) {\n var v = k.renderer.fontMetrics(k.styledMode ? void 0 : d.style.fontSize, c).b;\n b = I({\n x: h ? this.yAxis.len - n : m,\n y: Math.round(h ? this.xAxis.len - m : n),\n width: 0,\n height: 0\n }, b);\n I(d, {\n width: q.width,\n height: q.height\n });\n p ? (y = !1, m = k.renderer.rotCorr(v, p), m = {\n x: b.x + (d.x || 0) + b.width / 2 + m.x,\n y: b.y + (d.y || 0) + {\n top: 0,\n middle: .5,\n bottom: 1\n }[d.verticalAlign] * b.height\n }, A(m), c[f ? \"attr\" : \"animate\"](m).attr({\n align: r\n }), A = (p + 720) % 360, A = 180 < A && 360 > A, \"left\" === r ? m.y -= A ? q.height : 0 : \"center\" === r ? (m.x -= q.width / 2, m.y -= q.height / 2) : \"right\" === r && (m.x -= q.width, m.y -= A ? 0 : q.height), c.placed = !0, c.alignAttr = m) : (A(b), c.align(d, void 0, b), m = c.alignAttr);\n y && 0 <= b.height ? this.justifyDataLabel(c, d, m, q, b, f) : e(d.crop, !0) && (w = k.isInsidePlot(m.x, m.y, {\n paneCoordinates: !0,\n series: g\n }) && k.isInsidePlot(m.x + q.width, m.y + q.height, {\n paneCoordinates: !0,\n series: g\n }));\n if (d.shape && !p) c[f ? \"attr\" : \"animate\"]({\n anchorX: h ? k.plotWidth - a.plotY : a.plotX,\n anchorY: h ? k.plotHeight - a.plotX : a.plotY\n });\n }\n\n f && l && (c.placed = !1);\n w || l && !y || (c.hide(!0), c.placed = !1);\n }\n\n function h(a, c) {\n var d = c.filter;\n return d ? (c = d.operator, a = a[d.property], d = d.value, \">\" === c && a > d || \"<\" === c && a < d || \">=\" === c && a >= d || \"<=\" === c && a <= d || \"==\" === c && a == d || \"===\" === c && a === d ? !0 : !1) : !0;\n }\n\n function l() {\n var a = this,\n c = a.chart,\n f = a.options,\n b = a.points,\n l = a.hasRendered || 0,\n n = c.renderer,\n q = f.dataLabels,\n p,\n t = q.animation;\n t = q.defer ? F(c, t, a) : {\n defer: 0,\n duration: 0\n };\n q = y(y(c.options.plotOptions && c.options.plotOptions.series && c.options.plotOptions.series.dataLabels, c.options.plotOptions && c.options.plotOptions[a.type] && c.options.plotOptions[a.type].dataLabels), q);\n B(this, \"drawDataLabels\");\n\n if (z(q) || q.enabled || a._hasPointLabels) {\n var A = a.plotGroup(\"dataLabelsGroup\", \"data-labels\", l ? \"inherit\" : \"hidden\", q.zIndex || 6);\n A.attr({\n opacity: +l\n });\n !l && (l = a.dataLabelsGroup) && (a.visible && A.show(!0), l[f.animation ? \"animate\" : \"attr\"]({\n opacity: 1\n }, t));\n b.forEach(function (b) {\n p = d(y(q, b.dlOptions || b.options && b.options.dataLabels));\n p.forEach(function (d, g) {\n var k = d.enabled && (!b.isNull || b.dataLabelOnNull) && h(b, d),\n l = b.connectors ? b.connectors[g] : b.connector,\n q = b.dataLabels ? b.dataLabels[g] : b.dataLabel,\n p = !q,\n r = e(d.distance, b.labelDistance);\n\n if (k) {\n var t = b.getLabelConfig();\n var y = e(d[b.formatPrefix + \"Format\"], d.format);\n t = H(y) ? u(y, t, c) : (d[b.formatPrefix + \"Formatter\"] || d.formatter).call(t, d);\n y = d.style;\n var x = d.rotation;\n c.styledMode || (y.color = e(d.color, y.color, a.color, \"#000000\"), \"contrast\" === y.color ? (b.contrastColor = n.getContrast(b.color || a.color), y.color = !H(r) && d.inside || 0 > r || f.stacking ? b.contrastColor : \"#000000\") : delete b.contrastColor, f.cursor && (y.cursor = f.cursor));\n var w = {\n r: d.borderRadius || 0,\n rotation: x,\n padding: d.padding,\n zIndex: 1\n };\n c.styledMode || (w.fill = d.backgroundColor, w.stroke = d.borderColor, w[\"stroke-width\"] = d.borderWidth);\n m(w, function (a, b) {\n \"undefined\" === typeof a && delete w[b];\n });\n }\n\n !q || k && H(t) && !!q.div === !!d.useHTML && (q.rotation && d.rotation || q.rotation === d.rotation) || (p = !0, b.dataLabel = q = b.dataLabel && b.dataLabel.destroy(), b.dataLabels && (1 === b.dataLabels.length ? delete b.dataLabels : delete b.dataLabels[g]), g || delete b.dataLabel, l && (b.connector = b.connector.destroy(), b.connectors && (1 === b.connectors.length ? delete b.connectors : delete b.connectors[g])));\n k && H(t) && (q ? w.text = t : (b.dataLabels = b.dataLabels || [], q = b.dataLabels[g] = x ? n.text(t, 0, -9999, d.useHTML).addClass(\"highcharts-data-label\") : n.label(t, 0, -9999, d.shape, null, null, d.useHTML, null, \"data-label\"), g || (b.dataLabel = q), q.addClass(\" highcharts-data-label-color-\" + b.colorIndex + \" \" + (d.className || \"\") + (d.useHTML ? \" highcharts-tracker\" : \"\"))), q.options = d, q.attr(w), c.styledMode || q.css(y).shadow(d.shadow), q.added || q.add(A), d.textPath && !d.useHTML && (q.setTextPath(b.getDataLabelPath && b.getDataLabelPath(q) || b.graphic, d.textPath), b.dataLabelPath && !d.textPath.enabled && (b.dataLabelPath = b.dataLabelPath.destroy())), a.alignDataLabel(b, q, d, null, p));\n });\n });\n }\n\n B(this, \"afterDrawDataLabels\");\n }\n\n function w(a, c, d, b, e, f) {\n var g = this.chart,\n h = c.align,\n k = c.verticalAlign,\n l = a.box ? 0 : a.padding || 0,\n m = c.x;\n m = void 0 === m ? 0 : m;\n var q = c.y;\n q = void 0 === q ? 0 : q;\n var n = (d.x || 0) + l;\n\n if (0 > n) {\n \"right\" === h && 0 <= m ? (c.align = \"left\", c.inside = !0) : m -= n;\n var p = !0;\n }\n\n n = (d.x || 0) + b.width - l;\n n > g.plotWidth && (\"left\" === h && 0 >= m ? (c.align = \"right\", c.inside = !0) : m += g.plotWidth - n, p = !0);\n n = d.y + l;\n 0 > n && (\"bottom\" === k && 0 <= q ? (c.verticalAlign = \"top\", c.inside = !0) : q -= n, p = !0);\n n = (d.y || 0) + b.height - l;\n n > g.plotHeight && (\"top\" === k && 0 >= q ? (c.verticalAlign = \"bottom\", c.inside = !0) : q += g.plotHeight - n, p = !0);\n p && (c.x = m, c.y = q, a.placed = !f, a.align(c, void 0, e));\n return p;\n }\n\n function y(a, c) {\n var d = [],\n b;\n if (z(a) && !z(c)) d = a.map(function (a) {\n return p(a, c);\n });else if (z(c) && !z(a)) d = c.map(function (b) {\n return p(a, b);\n });else if (z(a) || z(c)) for (b = Math.max(a.length, c.length); b--;) {\n d[b] = p(a[b], c[b]);\n } else d = p(a, c);\n return d;\n }\n\n function A(a, c, d, b, e) {\n var f = this.chart,\n g = f.inverted,\n h = this.xAxis,\n k = h.reversed,\n l = g ? c.height / 2 : c.width / 2;\n a = (a = a.pointWidth) ? a / 2 : 0;\n c.startXPos = g ? e.x : k ? -l - a : h.width - l + a;\n c.startYPos = g ? k ? this.yAxis.height - l + a : -l - a : e.y;\n b ? \"hidden\" === c.visibility && (c.show(), c.attr({\n opacity: 0\n }).animate({\n opacity: 1\n })) : c.attr({\n opacity: 1\n }).animate({\n opacity: 0\n }, void 0, c.hide);\n f.hasRendered && (d && c.attr({\n x: c.startXPos,\n y: c.startYPos\n }), c.placed = !0);\n }\n\n var q = [];\n\n a.compose = function (a) {\n if (-1 === q.indexOf(a)) {\n var c = a.prototype;\n q.push(a);\n c.alignDataLabel = f;\n c.drawDataLabels = l;\n c.justifyDataLabel = w;\n c.setDataLabelStartPos = A;\n }\n };\n })(l || (l = {}));\n\n \"\";\n return l;\n });\n M(f, \"Series/Column/ColumnDataLabel.js\", [f[\"Core/Series/DataLabel.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = f.series,\n u = C.merge,\n H = C.pick,\n I;\n\n (function (f) {\n function z(a, e, d, f, h) {\n var l = this.chart.inverted,\n m = a.series,\n p = (m.xAxis ? m.xAxis.len : this.chart.plotSizeX) || 0;\n m = (m.yAxis ? m.yAxis.len : this.chart.plotSizeY) || 0;\n var w = a.dlBox || a.shapeArgs,\n y = H(a.below, a.plotY > H(this.translatedThreshold, m)),\n A = H(d.inside, !!this.options.stacking);\n w && (f = u(w), 0 > f.y && (f.height += f.y, f.y = 0), w = f.y + f.height - m, 0 < w && w < f.height && (f.height -= w), l && (f = {\n x: m - f.y - f.height,\n y: p - f.x - f.width,\n width: f.height,\n height: f.width\n }), A || (l ? (f.x += y ? 0 : f.width, f.width = 0) : (f.y += y ? f.height : 0, f.height = 0)));\n d.align = H(d.align, !l || A ? \"center\" : y ? \"right\" : \"left\");\n d.verticalAlign = H(d.verticalAlign, l || A ? \"middle\" : y ? \"top\" : \"bottom\");\n F.prototype.alignDataLabel.call(this, a, e, d, f, h);\n d.inside && a.contrastColor && e.css({\n color: a.contrastColor\n });\n }\n\n var p = [];\n\n f.compose = function (f) {\n a.compose(F);\n -1 === p.indexOf(f) && (p.push(f), f.prototype.alignDataLabel = z);\n };\n })(I || (I = {}));\n\n return I;\n });\n M(f, \"Series/Bar/BarSeries.js\", [f[\"Series/Column/ColumnSeries.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = this && this.__extends || function () {\n var _a9 = function a(f, u) {\n _a9 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, f) {\n a.__proto__ = f;\n } || function (a, f) {\n for (var e in f) {\n f.hasOwnProperty(e) && (a[e] = f[e]);\n }\n };\n\n return _a9(f, u);\n };\n\n return function (f, u) {\n function p() {\n this.constructor = f;\n }\n\n _a9(f, u);\n\n f.prototype = null === u ? Object.create(u) : (p.prototype = u.prototype, new p());\n };\n }(),\n u = C.extend,\n H = C.merge;\n\n C = function (f) {\n function u() {\n var a = null !== f && f.apply(this, arguments) || this;\n a.data = void 0;\n a.options = void 0;\n a.points = void 0;\n return a;\n }\n\n F(u, f);\n u.defaultOptions = H(a.defaultOptions, {});\n return u;\n }(a);\n\n u(C.prototype, {\n inverted: !0\n });\n f.registerSeriesType(\"bar\", C);\n \"\";\n return C;\n });\n M(f, \"Series/Scatter/ScatterSeries.js\", [f[\"Series/Column/ColumnSeries.js\"], f[\"Series/Line/LineSeries.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G) {\n var u = this && this.__extends || function () {\n var _a10 = function a(f, m) {\n _a10 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, d) {\n a.__proto__ = d;\n } || function (a, d) {\n for (var e in d) {\n d.hasOwnProperty(e) && (a[e] = d[e]);\n }\n };\n\n return _a10(f, m);\n };\n\n return function (f, m) {\n function e() {\n this.constructor = f;\n }\n\n _a10(f, m);\n\n f.prototype = null === m ? Object.create(m) : (e.prototype = m.prototype, new e());\n };\n }(),\n F = G.addEvent,\n I = G.extend,\n B = G.merge;\n\n G = function (a) {\n function p() {\n var f = null !== a && a.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n u(p, a);\n\n p.prototype.applyJitter = function () {\n var a = this,\n e = this.options.jitter,\n d = this.points.length;\n e && this.points.forEach(function (f, h) {\n [\"x\", \"y\"].forEach(function (l, m) {\n var n = \"plot\" + l.toUpperCase();\n\n if (e[l] && !f.isNull) {\n var p = a[l + \"Axis\"];\n var t = e[l] * p.transA;\n\n if (p && !p.isLog) {\n var A = Math.max(0, f[n] - t);\n p = Math.min(p.len, f[n] + t);\n m = 1E4 * Math.sin(h + m * d);\n f[n] = A + (p - A) * (m - Math.floor(m));\n \"x\" === l && (f.clientX = f.plotX);\n }\n }\n });\n });\n };\n\n p.prototype.drawGraph = function () {\n this.options.lineWidth ? a.prototype.drawGraph.call(this) : this.graph && (this.graph = this.graph.destroy());\n };\n\n p.defaultOptions = B(f.defaultOptions, {\n lineWidth: 0,\n findNearestPointBy: \"xy\",\n jitter: {\n x: 0,\n y: 0\n },\n marker: {\n enabled: !0\n },\n tooltip: {\n headerFormat: \"\\u25CF {series.name}
\",\n pointFormat: \"x: {point.x}
y: {point.y}
\"\n }\n });\n return p;\n }(f);\n\n I(G.prototype, {\n drawTracker: a.prototype.drawTracker,\n sorted: !1,\n requireSorting: !1,\n noSharedTooltip: !0,\n trackerGroups: [\"group\", \"markerGroup\", \"dataLabelsGroup\"],\n takeOrdinalPosition: !1\n });\n F(G, \"afterTranslate\", function () {\n this.applyJitter();\n });\n C.registerSeriesType(\"scatter\", G);\n \"\";\n return G;\n });\n M(f, \"Series/CenteredUtilities.js\", [f[\"Core/Globals.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = a.deg2rad,\n u = C.isNumber,\n H = C.pick,\n I = C.relativeLength,\n B;\n\n (function (a) {\n a.getCenter = function () {\n var a = this.options,\n m = this.chart,\n e = 2 * (a.slicedOffset || 0),\n d = m.plotWidth - 2 * e,\n l = m.plotHeight - 2 * e,\n h = a.center,\n t = Math.min(d, l),\n n = a.size,\n v = a.innerSize || 0;\n \"string\" === typeof n && (n = parseFloat(n));\n \"string\" === typeof v && (v = parseFloat(v));\n a = [H(h[0], \"50%\"), H(h[1], \"50%\"), H(n && 0 > n ? void 0 : a.size, \"100%\"), H(v && 0 > v ? void 0 : a.innerSize || 0, \"0%\")];\n !m.angular || this instanceof f || (a[3] = 0);\n\n for (h = 0; 4 > h; ++h) {\n n = a[h], m = 2 > h || 2 === h && /%$/.test(n), a[h] = I(n, [d, l, t, a[2]][h]) + (m ? e : 0);\n }\n\n a[3] > a[2] && (a[3] = a[2]);\n return a;\n };\n\n a.getStartAndEndRadians = function (a, f) {\n a = u(a) ? a : 0;\n f = u(f) && f > a && 360 > f - a ? f : a + 360;\n return {\n start: F * (a + -90),\n end: F * (f + -90)\n };\n };\n })(B || (B = {}));\n\n \"\";\n return B;\n });\n M(f, \"Series/Pie/PiePoint.js\", [f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Series/Point.js\"], f[\"Core/Utilities.js\"]], function (a, f, C) {\n var F = this && this.__extends || function () {\n var _a11 = function a(e, d) {\n _a11 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, d) {\n a.__proto__ = d;\n } || function (a, d) {\n for (var e in d) {\n d.hasOwnProperty(e) && (a[e] = d[e]);\n }\n };\n\n return _a11(e, d);\n };\n\n return function (e, d) {\n function f() {\n this.constructor = e;\n }\n\n _a11(e, d);\n\n e.prototype = null === d ? Object.create(d) : (f.prototype = d.prototype, new f());\n };\n }(),\n u = a.setAnimation,\n H = C.addEvent,\n I = C.defined;\n\n a = C.extend;\n var B = C.isNumber,\n z = C.pick,\n p = C.relativeLength;\n\n f = function (a) {\n function e() {\n var d = null !== a && a.apply(this, arguments) || this;\n d.labelDistance = void 0;\n d.options = void 0;\n d.series = void 0;\n return d;\n }\n\n F(e, a);\n\n e.prototype.getConnectorPath = function () {\n var a = this.labelPosition,\n e = this.series.options.dataLabels,\n f = this.connectorShapes,\n m = e.connectorShape;\n f[m] && (m = f[m]);\n return m.call(this, {\n x: a.final.x,\n y: a.final.y,\n alignment: a.alignment\n }, a.connectorPosition, e);\n };\n\n e.prototype.getTranslate = function () {\n return this.sliced ? this.slicedTranslation : {\n translateX: 0,\n translateY: 0\n };\n };\n\n e.prototype.haloPath = function (a) {\n var d = this.shapeArgs;\n return this.sliced || !this.visible ? [] : this.series.chart.renderer.symbols.arc(d.x, d.y, d.r + a, d.r + a, {\n innerR: d.r - 1,\n start: d.start,\n end: d.end\n });\n };\n\n e.prototype.init = function () {\n var d = this;\n a.prototype.init.apply(this, arguments);\n this.name = z(this.name, \"Slice\");\n\n var e = function e(a) {\n d.slice(\"select\" === a.type);\n };\n\n H(this, \"select\", e);\n H(this, \"unselect\", e);\n return this;\n };\n\n e.prototype.isValid = function () {\n return B(this.y) && 0 <= this.y;\n };\n\n e.prototype.setVisible = function (a, e) {\n var d = this,\n f = this.series,\n m = f.chart,\n l = f.options.ignoreHiddenPoint;\n e = z(e, l);\n a !== this.visible && (this.visible = this.options.visible = a = \"undefined\" === typeof a ? !this.visible : a, f.options.data[f.data.indexOf(this)] = this.options, [\"graphic\", \"dataLabel\", \"connector\", \"shadowGroup\"].forEach(function (e) {\n if (d[e]) d[e][a ? \"show\" : \"hide\"](a);\n }), this.legendItem && m.legend.colorizeItem(this, a), a || \"hover\" !== this.state || this.setState(\"\"), l && (f.isDirty = !0), e && m.redraw());\n };\n\n e.prototype.slice = function (a, e, f) {\n var d = this.series;\n u(f, d.chart);\n z(e, !0);\n this.sliced = this.options.sliced = I(a) ? a : !this.sliced;\n d.options.data[d.data.indexOf(this)] = this.options;\n this.graphic && this.graphic.animate(this.getTranslate());\n this.shadowGroup && this.shadowGroup.animate(this.getTranslate());\n };\n\n return e;\n }(f);\n\n a(f.prototype, {\n connectorShapes: {\n fixedOffset: function fixedOffset(a, e, d) {\n var f = e.breakAt;\n e = e.touchingSliceAt;\n return [[\"M\", a.x, a.y], d.softConnector ? [\"C\", a.x + (\"left\" === a.alignment ? -5 : 5), a.y, 2 * f.x - e.x, 2 * f.y - e.y, f.x, f.y] : [\"L\", f.x, f.y], [\"L\", e.x, e.y]];\n },\n straight: function straight(a, e) {\n e = e.touchingSliceAt;\n return [[\"M\", a.x, a.y], [\"L\", e.x, e.y]];\n },\n crookedLine: function crookedLine(a, e, d) {\n e = e.touchingSliceAt;\n var f = this.series,\n h = f.center[0],\n m = f.chart.plotWidth,\n n = f.chart.plotLeft;\n f = a.alignment;\n var u = this.shapeArgs.r;\n d = p(d.crookDistance, 1);\n m = \"left\" === f ? h + u + (m + n - h - u) * (1 - d) : n + (h - u) * d;\n d = [\"L\", m, a.y];\n h = !0;\n if (\"left\" === f ? m > a.x || m < e.x : m < a.x || m > e.x) h = !1;\n a = [[\"M\", a.x, a.y]];\n h && a.push(d);\n a.push([\"L\", e.x, e.y]);\n return a;\n }\n }\n });\n return f;\n });\n M(f, \"Series/Pie/PieSeries.js\", [f[\"Series/CenteredUtilities.js\"], f[\"Series/Column/ColumnSeries.js\"], f[\"Core/Globals.js\"], f[\"Core/Legend/LegendSymbol.js\"], f[\"Series/Pie/PiePoint.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Renderer/SVG/Symbols.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u, H, I, B, z) {\n var p = this && this.__extends || function () {\n var _a12 = function a(d, e) {\n _a12 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, d) {\n a.__proto__ = d;\n } || function (a, d) {\n for (var e in d) {\n d.hasOwnProperty(e) && (a[e] = d[e]);\n }\n };\n\n return _a12(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n _a12(d, e);\n\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n m = a.getStartAndEndRadians;\n\n C = C.noop;\n var e = z.clamp,\n d = z.extend,\n l = z.fireEvent,\n h = z.merge,\n t = z.pick,\n n = z.relativeLength;\n\n z = function (a) {\n function d() {\n var d = null !== a && a.apply(this, arguments) || this;\n d.center = void 0;\n d.data = void 0;\n d.maxLabelDistance = void 0;\n d.options = void 0;\n d.points = void 0;\n return d;\n }\n\n p(d, a);\n\n d.prototype.animate = function (a) {\n var d = this,\n e = d.points,\n f = d.startAngleRad;\n a || e.forEach(function (a) {\n var c = a.graphic,\n b = a.shapeArgs;\n c && b && (c.attr({\n r: t(a.startR, d.center && d.center[3] / 2),\n start: f,\n end: f\n }), c.animate({\n r: b.r,\n start: b.start,\n end: b.end\n }, d.options.animation));\n });\n };\n\n d.prototype.drawEmpty = function () {\n var a = this.startAngleRad,\n d = this.endAngleRad,\n e = this.options;\n\n if (0 === this.total && this.center) {\n var f = this.center[0];\n var c = this.center[1];\n this.graph || (this.graph = this.chart.renderer.arc(f, c, this.center[1] / 2, 0, a, d).addClass(\"highcharts-empty-series\").add(this.group));\n this.graph.attr({\n d: B.arc(f, c, this.center[2] / 2, 0, {\n start: a,\n end: d,\n innerR: this.center[3] / 2\n })\n });\n this.chart.styledMode || this.graph.attr({\n \"stroke-width\": e.borderWidth,\n fill: e.fillColor || \"none\",\n stroke: e.color || \"#cccccc\"\n });\n } else this.graph && (this.graph = this.graph.destroy());\n };\n\n d.prototype.drawPoints = function () {\n var a = this.chart.renderer;\n this.points.forEach(function (d) {\n d.graphic && d.hasNewShapeType() && (d.graphic = d.graphic.destroy());\n d.graphic || (d.graphic = a[d.shapeType](d.shapeArgs).add(d.series.group), d.delayedRendering = !0);\n });\n };\n\n d.prototype.generatePoints = function () {\n a.prototype.generatePoints.call(this);\n this.updateTotals();\n };\n\n d.prototype.getX = function (a, d, f) {\n var h = this.center,\n c = this.radii ? this.radii[f.index] || 0 : h[2] / 2;\n a = Math.asin(e((a - h[1]) / (c + f.labelDistance), -1, 1));\n return h[0] + (d ? -1 : 1) * Math.cos(a) * (c + f.labelDistance) + (0 < f.labelDistance ? (d ? -1 : 1) * this.options.dataLabels.padding : 0);\n };\n\n d.prototype.hasData = function () {\n return !!this.processedXData.length;\n };\n\n d.prototype.redrawPoints = function () {\n var a = this,\n d = a.chart,\n e = d.renderer,\n f = a.options.shadow,\n c,\n g,\n b,\n m;\n this.drawEmpty();\n !f || a.shadowGroup || d.styledMode || (a.shadowGroup = e.g(\"shadow\").attr({\n zIndex: -1\n }).add(a.group));\n a.points.forEach(function (k) {\n var l = {};\n g = k.graphic;\n\n if (!k.isNull && g) {\n var n = void 0;\n m = k.shapeArgs;\n c = k.getTranslate();\n d.styledMode || (n = k.shadowGroup, f && !n && (n = k.shadowGroup = e.g(\"shadow\").add(a.shadowGroup)), n && n.attr(c), b = a.pointAttribs(k, k.selected && \"select\"));\n k.delayedRendering ? (g.setRadialReference(a.center).attr(m).attr(c), d.styledMode || g.attr(b).attr({\n \"stroke-linejoin\": \"round\"\n }).shadow(f, n), k.delayedRendering = !1) : (g.setRadialReference(a.center), d.styledMode || h(!0, l, b), h(!0, l, m, c), g.animate(l));\n g.attr({\n visibility: k.visible ? \"inherit\" : \"hidden\"\n });\n g.addClass(k.getClassName(), !0);\n } else g && (k.graphic = g.destroy());\n });\n };\n\n d.prototype.sortByAngle = function (a, d) {\n a.sort(function (a, e) {\n return \"undefined\" !== typeof a.angle && (e.angle - a.angle) * d;\n });\n };\n\n d.prototype.translate = function (a) {\n this.generatePoints();\n var d = this.options,\n e = d.slicedOffset,\n f = e + (d.borderWidth || 0),\n c = m(d.startAngle, d.endAngle),\n g = this.startAngleRad = c.start;\n c = (this.endAngleRad = c.end) - g;\n var b = this.points,\n h = d.dataLabels.distance;\n d = d.ignoreHiddenPoint;\n var p = b.length,\n u,\n w = 0;\n a || (this.center = a = this.getCenter());\n\n for (u = 0; u < p; u++) {\n var v = b[u];\n var y = g + w * c;\n !v.isValid() || d && !v.visible || (w += v.percentage / 100);\n var z = g + w * c;\n var B = {\n x: a[0],\n y: a[1],\n r: a[2] / 2,\n innerR: a[3] / 2,\n start: Math.round(1E3 * y) / 1E3,\n end: Math.round(1E3 * z) / 1E3\n };\n v.shapeType = \"arc\";\n v.shapeArgs = B;\n v.labelDistance = t(v.options.dataLabels && v.options.dataLabels.distance, h);\n v.labelDistance = n(v.labelDistance, B.r);\n this.maxLabelDistance = Math.max(this.maxLabelDistance || 0, v.labelDistance);\n z = (z + y) / 2;\n z > 1.5 * Math.PI ? z -= 2 * Math.PI : z < -Math.PI / 2 && (z += 2 * Math.PI);\n v.slicedTranslation = {\n translateX: Math.round(Math.cos(z) * e),\n translateY: Math.round(Math.sin(z) * e)\n };\n B = Math.cos(z) * a[2] / 2;\n var F = Math.sin(z) * a[2] / 2;\n v.tooltipPos = [a[0] + .7 * B, a[1] + .7 * F];\n v.half = z < -Math.PI / 2 || z > Math.PI / 2 ? 1 : 0;\n v.angle = z;\n y = Math.min(f, v.labelDistance / 5);\n v.labelPosition = {\n natural: {\n x: a[0] + B + Math.cos(z) * v.labelDistance,\n y: a[1] + F + Math.sin(z) * v.labelDistance\n },\n \"final\": {},\n alignment: 0 > v.labelDistance ? \"center\" : v.half ? \"right\" : \"left\",\n connectorPosition: {\n breakAt: {\n x: a[0] + B + Math.cos(z) * y,\n y: a[1] + F + Math.sin(z) * y\n },\n touchingSliceAt: {\n x: a[0] + B,\n y: a[1] + F\n }\n }\n };\n }\n\n l(this, \"afterTranslate\");\n };\n\n d.prototype.updateTotals = function () {\n var a = this.points,\n d = a.length,\n e = this.options.ignoreHiddenPoint,\n f,\n c = 0;\n\n for (f = 0; f < d; f++) {\n var g = a[f];\n !g.isValid() || e && !g.visible || (c += g.y);\n }\n\n this.total = c;\n\n for (f = 0; f < d; f++) {\n g = a[f], g.percentage = 0 < c && (g.visible || !e) ? g.y / c * 100 : 0, g.total = c;\n }\n };\n\n d.defaultOptions = h(H.defaultOptions, {\n center: [null, null],\n clip: !1,\n colorByPoint: !0,\n dataLabels: {\n allowOverlap: !0,\n connectorPadding: 5,\n connectorShape: \"fixedOffset\",\n crookDistance: \"70%\",\n distance: 30,\n enabled: !0,\n formatter: function formatter() {\n return this.point.isNull ? void 0 : this.point.name;\n },\n softConnector: !0,\n x: 0\n },\n fillColor: void 0,\n ignoreHiddenPoint: !0,\n inactiveOtherPoints: !0,\n legendType: \"point\",\n marker: null,\n size: null,\n showInLegend: !1,\n slicedOffset: 10,\n stickyTracking: !1,\n tooltip: {\n followPointer: !0\n },\n borderColor: \"#ffffff\",\n borderWidth: 1,\n lineWidth: void 0,\n states: {\n hover: {\n brightness: .1\n }\n }\n });\n return d;\n }(H);\n\n d(z.prototype, {\n axisTypes: [],\n directTouch: !0,\n drawGraph: void 0,\n drawLegendSymbol: G.drawRectangle,\n drawTracker: f.prototype.drawTracker,\n getCenter: a.getCenter,\n getSymbol: C,\n isCartesian: !1,\n noSharedTooltip: !0,\n pointAttribs: f.prototype.pointAttribs,\n pointClass: u,\n requireSorting: !1,\n searchPoint: C,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n I.registerSeriesType(\"pie\", z);\n \"\";\n return z;\n });\n M(f, \"Series/Pie/PieDataLabel.js\", [f[\"Core/Series/DataLabel.js\"], f[\"Core/Globals.js\"], f[\"Core/Renderer/RendererUtilities.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Core/Utilities.js\"]], function (a, f, C, G, u) {\n var F = f.noop,\n I = C.distribute,\n B = G.series,\n z = u.arrayMax,\n p = u.clamp,\n m = u.defined,\n e = u.merge,\n d = u.pick,\n l = u.relativeLength,\n h;\n\n (function (f) {\n function h() {\n var a = this,\n f = a.data,\n c = a.chart,\n g = a.options.dataLabels || {},\n b = g.connectorPadding,\n h = c.plotWidth,\n l = c.plotHeight,\n n = c.plotLeft,\n p = Math.round(c.chartWidth / 3),\n t = a.center,\n u = t[2] / 2,\n v = t[1],\n A = [[], []],\n w = [0, 0, 0, 0],\n y = a.dataLabelPositioners,\n F,\n C,\n G,\n H,\n M,\n E,\n T,\n N,\n U,\n V,\n X,\n S;\n a.visible && (g.enabled || a._hasPointLabels) && (f.forEach(function (a) {\n a.dataLabel && a.visible && a.dataLabel.shortened && (a.dataLabel.attr({\n width: \"auto\"\n }).css({\n width: \"auto\",\n textOverflow: \"clip\"\n }), a.dataLabel.shortened = !1);\n }), B.prototype.drawDataLabels.apply(a), f.forEach(function (a) {\n a.dataLabel && (a.visible ? (A[a.half].push(a), a.dataLabel._pos = null, !m(g.style.width) && !m(a.options.dataLabels && a.options.dataLabels.style && a.options.dataLabels.style.width) && a.dataLabel.getBBox().width > p && (a.dataLabel.css({\n width: Math.round(.7 * p) + \"px\"\n }), a.dataLabel.shortened = !0)) : (a.dataLabel = a.dataLabel.destroy(), a.dataLabels && 1 === a.dataLabels.length && delete a.dataLabels));\n }), A.forEach(function (e, f) {\n var k = e.length,\n q = [],\n p;\n\n if (k) {\n a.sortByAngle(e, f - .5);\n\n if (0 < a.maxLabelDistance) {\n var r = Math.max(0, v - u - a.maxLabelDistance);\n var A = Math.min(v + u + a.maxLabelDistance, c.plotHeight);\n e.forEach(function (a) {\n 0 < a.labelDistance && a.dataLabel && (a.top = Math.max(0, v - u - a.labelDistance), a.bottom = Math.min(v + u + a.labelDistance, c.plotHeight), p = a.dataLabel.getBBox().height || 21, a.distributeBox = {\n target: a.labelPosition.natural.y - a.top + p / 2,\n size: p,\n rank: a.y\n }, q.push(a.distributeBox));\n });\n r = A + p - r;\n I(q, r, r / 5);\n }\n\n for (X = 0; X < k; X++) {\n F = e[X];\n E = F.labelPosition;\n H = F.dataLabel;\n V = !1 === F.visible ? \"hidden\" : \"inherit\";\n U = r = E.natural.y;\n q && m(F.distributeBox) && (\"undefined\" === typeof F.distributeBox.pos ? V = \"hidden\" : (T = F.distributeBox.size, U = y.radialDistributionY(F)));\n delete F.positionIndex;\n if (g.justify) N = y.justify(F, u, t);else switch (g.alignTo) {\n case \"connectors\":\n N = y.alignToConnectors(e, f, h, n);\n break;\n\n case \"plotEdges\":\n N = y.alignToPlotEdges(H, f, h, n);\n break;\n\n default:\n N = y.radialDistributionX(a, F, U, r);\n }\n H._attr = {\n visibility: V,\n align: E.alignment\n };\n S = F.options.dataLabels || {};\n H._pos = {\n x: N + d(S.x, g.x) + ({\n left: b,\n right: -b\n }[E.alignment] || 0),\n y: U + d(S.y, g.y) - 10\n };\n E.final.x = N;\n E.final.y = U;\n d(g.crop, !0) && (M = H.getBBox().width, r = null, N - M < b && 1 === f ? (r = Math.round(M - N + b), w[3] = Math.max(r, w[3])) : N + M > h - b && 0 === f && (r = Math.round(N + M - h + b), w[1] = Math.max(r, w[1])), 0 > U - T / 2 ? w[0] = Math.max(Math.round(-U + T / 2), w[0]) : U + T / 2 > l && (w[2] = Math.max(Math.round(U + T / 2 - l), w[2])), H.sideOverflow = r);\n }\n }\n }), 0 === z(w) || this.verifyDataLabelOverflow(w)) && (this.placeDataLabels(), this.points.forEach(function (b) {\n S = e(g, b.options.dataLabels);\n\n if (C = d(S.connectorWidth, 1)) {\n var f;\n G = b.connector;\n\n if ((H = b.dataLabel) && H._pos && b.visible && 0 < b.labelDistance) {\n V = H._attr.visibility;\n if (f = !G) b.connector = G = c.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\" + b.colorIndex + (b.className ? \" \" + b.className : \"\")).add(a.dataLabelsGroup), c.styledMode || G.attr({\n \"stroke-width\": C,\n stroke: S.connectorColor || b.color || \"#666666\"\n });\n G[f ? \"attr\" : \"animate\"]({\n d: b.getConnectorPath()\n });\n G.attr(\"visibility\", V);\n } else G && (b.connector = G.destroy());\n }\n }));\n }\n\n function t() {\n this.points.forEach(function (a) {\n var d = a.dataLabel,\n c;\n d && a.visible && ((c = d._pos) ? (d.sideOverflow && (d._attr.width = Math.max(d.getBBox().width - d.sideOverflow, 0), d.css({\n width: d._attr.width + \"px\",\n textOverflow: (this.options.dataLabels.style || {}).textOverflow || \"ellipsis\"\n }), d.shortened = !0), d.attr(d._attr), d[d.moved ? \"animate\" : \"attr\"](c), d.moved = !0) : d && d.attr({\n y: -9999\n }));\n delete a.distributeBox;\n }, this);\n }\n\n function u(a) {\n var d = this.center,\n c = this.options,\n e = c.center,\n b = c.minSize || 80,\n f = null !== c.size;\n\n if (!f) {\n if (null !== e[0]) var h = Math.max(d[2] - Math.max(a[1], a[3]), b);else h = Math.max(d[2] - a[1] - a[3], b), d[0] += (a[3] - a[1]) / 2;\n null !== e[1] ? h = p(h, b, d[2] - Math.max(a[0], a[2])) : (h = p(h, b, d[2] - a[0] - a[2]), d[1] += (a[0] - a[2]) / 2);\n h < d[2] ? (d[2] = h, d[3] = Math.min(l(c.innerSize || 0, h), h), this.translate(d), this.drawDataLabels && this.drawDataLabels()) : f = !0;\n }\n\n return f;\n }\n\n var y = [],\n A = {\n radialDistributionY: function radialDistributionY(a) {\n return a.top + a.distributeBox.pos;\n },\n radialDistributionX: function radialDistributionX(a, d, c, e) {\n return a.getX(c < d.top + 2 || c > d.bottom - 2 ? e : c, d.half, d);\n },\n justify: function justify(a, d, c) {\n return c[0] + (a.half ? -1 : 1) * (d + a.labelDistance);\n },\n alignToPlotEdges: function alignToPlotEdges(a, d, c, e) {\n a = a.getBBox().width;\n return d ? a + e : c - a - e;\n },\n alignToConnectors: function alignToConnectors(a, d, c, e) {\n var b = 0,\n f;\n a.forEach(function (a) {\n f = a.dataLabel.getBBox().width;\n f > b && (b = f);\n });\n return d ? b + e : c - b - e;\n }\n };\n\n f.compose = function (d) {\n a.compose(B);\n -1 === y.indexOf(d) && (y.push(d), d = d.prototype, d.dataLabelPositioners = A, d.alignDataLabel = F, d.drawDataLabels = h, d.placeDataLabels = t, d.verifyDataLabelOverflow = u);\n };\n })(h || (h = {}));\n\n return h;\n });\n M(f, \"Extensions/OverlappingDataLabels.js\", [f[\"Core/Chart/Chart.js\"], f[\"Core/Utilities.js\"]], function (a, f) {\n function F(a, f) {\n var e = !1;\n\n if (a) {\n var d = a.newOpacity;\n a.oldOpacity !== d && (a.alignAttr && a.placed ? (a[d ? \"removeClass\" : \"addClass\"](\"highcharts-data-label-hidden\"), e = !0, a.alignAttr.opacity = d, a[a.isOld ? \"animate\" : \"attr\"](a.alignAttr, null, function () {\n f.styledMode || a.css({\n pointerEvents: d ? \"auto\" : \"none\"\n });\n }), u(f, \"afterHideOverlappingLabel\")) : a.attr({\n opacity: d\n }));\n a.isOld = !0;\n }\n\n return e;\n }\n\n var G = f.addEvent,\n u = f.fireEvent,\n H = f.isArray,\n I = f.isNumber,\n B = f.objectEach,\n z = f.pick;\n G(a, \"render\", function () {\n var a = this,\n f = [];\n (this.labelCollectors || []).forEach(function (a) {\n f = f.concat(a());\n });\n (this.yAxis || []).forEach(function (a) {\n a.stacking && a.options.stackLabels && !a.options.stackLabels.allowOverlap && B(a.stacking.stacks, function (a) {\n B(a, function (a) {\n a.label && \"hidden\" !== a.label.visibility && f.push(a.label);\n });\n });\n });\n (this.series || []).forEach(function (e) {\n var d = e.options.dataLabels;\n e.visible && (!1 !== d.enabled || e._hasPointLabels) && (d = function d(_d3) {\n return _d3.forEach(function (d) {\n d.visible && (H(d.dataLabels) ? d.dataLabels : d.dataLabel ? [d.dataLabel] : []).forEach(function (e) {\n var h = e.options;\n e.labelrank = z(h.labelrank, d.labelrank, d.shapeArgs && d.shapeArgs.height);\n h.allowOverlap ? (e.oldOpacity = e.opacity, e.newOpacity = 1, F(e, a)) : f.push(e);\n });\n });\n }, d(e.nodes || []), d(e.points));\n });\n this.hideOverlappingLabels(f);\n });\n\n a.prototype.hideOverlappingLabels = function (a) {\n var f = this,\n e = a.length,\n d = f.renderer,\n l,\n h,\n p,\n n = !1;\n\n var v = function v(a) {\n var e,\n f = a.box ? 0 : a.padding || 0,\n c = e = 0,\n g;\n\n if (a && (!a.alignAttr || a.placed)) {\n var b = a.alignAttr || {\n x: a.attr(\"x\"),\n y: a.attr(\"y\")\n };\n var h = a.parentGroup;\n a.width || (e = a.getBBox(), a.width = e.width, a.height = e.height, e = d.fontMetrics(null, a.element).h);\n var l = a.width - 2 * f;\n (g = {\n left: \"0\",\n center: \"0.5\",\n right: \"1\"\n }[a.alignValue]) ? c = +g * l : I(a.x) && Math.round(a.x) !== a.translateX && (c = a.x - a.translateX);\n return {\n x: b.x + (h.translateX || 0) + f - (c || 0),\n y: b.y + (h.translateY || 0) + f - e,\n width: a.width - 2 * f,\n height: a.height - 2 * f\n };\n }\n };\n\n for (h = 0; h < e; h++) {\n if (l = a[h]) l.oldOpacity = l.opacity, l.newOpacity = 1, l.absoluteBox = v(l);\n }\n\n a.sort(function (a, d) {\n return (d.labelrank || 0) - (a.labelrank || 0);\n });\n\n for (h = 0; h < e; h++) {\n var w = (v = a[h]) && v.absoluteBox;\n\n for (l = h + 1; l < e; ++l) {\n var y = (p = a[l]) && p.absoluteBox;\n !w || !y || v === p || 0 === v.newOpacity || 0 === p.newOpacity || y.x >= w.x + w.width || y.x + y.width <= w.x || y.y >= w.y + w.height || y.y + y.height <= w.y || ((v.labelrank < p.labelrank ? v : p).newOpacity = 0);\n }\n }\n\n a.forEach(function (a) {\n F(a, f) && (n = !0);\n });\n n && u(f, \"afterHideAllOverlappingLabels\");\n };\n });\n M(f, \"Core/Responsive.js\", [f[\"Core/Utilities.js\"]], function (a) {\n var f = a.extend,\n C = a.find,\n G = a.isArray,\n u = a.isObject,\n H = a.merge,\n I = a.objectEach,\n B = a.pick,\n z = a.splat,\n p = a.uniqueKey,\n m;\n\n (function (a) {\n var d = [];\n\n a.compose = function (a) {\n -1 === d.indexOf(a) && (d.push(a), f(a.prototype, e.prototype));\n return a;\n };\n\n var e = function () {\n function a() {}\n\n a.prototype.currentOptions = function (a) {\n function d(a, f, h, k) {\n var c;\n I(a, function (a, b) {\n if (!k && -1 < e.collectionsWithUpdate.indexOf(b) && f[b]) for (a = z(a), h[b] = [], c = 0; c < Math.max(a.length, f[b].length); c++) {\n f[b][c] && (void 0 === a[c] ? h[b][c] = f[b][c] : (h[b][c] = {}, d(a[c], f[b][c], h[b][c], k + 1)));\n } else u(a) ? (h[b] = G(a) ? [] : {}, d(a, f[b] || {}, h[b], k + 1)) : h[b] = \"undefined\" === typeof f[b] ? null : f[b];\n });\n }\n\n var e = this,\n f = {};\n d(a, this.options, f, 0);\n return f;\n };\n\n a.prototype.matchResponsiveRule = function (a, d) {\n var e = a.condition;\n (e.callback || function () {\n return this.chartWidth <= B(e.maxWidth, Number.MAX_VALUE) && this.chartHeight <= B(e.maxHeight, Number.MAX_VALUE) && this.chartWidth >= B(e.minWidth, 0) && this.chartHeight >= B(e.minHeight, 0);\n }).call(this) && d.push(a._id);\n };\n\n a.prototype.setResponsive = function (a, d) {\n var e = this,\n f = this.options.responsive,\n h = this.currentResponsive,\n l = [];\n !d && f && f.rules && f.rules.forEach(function (a) {\n \"undefined\" === typeof a._id && (a._id = p());\n e.matchResponsiveRule(a, l);\n }, this);\n d = H.apply(void 0, l.map(function (a) {\n return C((f || {}).rules || [], function (d) {\n return d._id === a;\n });\n }).map(function (a) {\n return a && a.chartOptions;\n }));\n d.isResponsiveOptions = !0;\n l = l.toString() || void 0;\n l !== (h && h.ruleIds) && (h && this.update(h.undoOptions, a, !0), l ? (h = this.currentOptions(d), h.isResponsiveOptions = !0, this.currentResponsive = {\n ruleIds: l,\n mergedOptions: d,\n undoOptions: h\n }, this.update(d, a, !0)) : this.currentResponsive = void 0);\n };\n\n return a;\n }();\n })(m || (m = {}));\n\n \"\";\n \"\";\n return m;\n });\n M(f, \"masters/highcharts.src.js\", [f[\"Core/Globals.js\"], f[\"Core/Utilities.js\"], f[\"Core/DefaultOptions.js\"], f[\"Core/Animation/Fx.js\"], f[\"Core/Animation/AnimationUtilities.js\"], f[\"Core/Renderer/HTML/AST.js\"], f[\"Core/FormatUtilities.js\"], f[\"Core/Renderer/RendererUtilities.js\"], f[\"Core/Renderer/SVG/SVGElement.js\"], f[\"Core/Renderer/SVG/SVGRenderer.js\"], f[\"Core/Renderer/HTML/HTMLElement.js\"], f[\"Core/Renderer/HTML/HTMLRenderer.js\"], f[\"Core/Axis/Axis.js\"], f[\"Core/Axis/DateTimeAxis.js\"], f[\"Core/Axis/LogarithmicAxis.js\"], f[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"], f[\"Core/Axis/Tick.js\"], f[\"Core/Tooltip.js\"], f[\"Core/Series/Point.js\"], f[\"Core/Pointer.js\"], f[\"Core/MSPointer.js\"], f[\"Core/Legend/Legend.js\"], f[\"Core/Chart/Chart.js\"], f[\"Core/Series/Series.js\"], f[\"Core/Series/SeriesRegistry.js\"], f[\"Series/Column/ColumnSeries.js\"], f[\"Series/Column/ColumnDataLabel.js\"], f[\"Series/Pie/PieSeries.js\"], f[\"Series/Pie/PieDataLabel.js\"], f[\"Core/Series/DataLabel.js\"], f[\"Core/Responsive.js\"], f[\"Core/Color/Color.js\"], f[\"Core/Time.js\"]], function (a, f, C, G, u, H, I, B, z, p, m, e, d, l, h, t, n, v, w, y, A, q, k, c, g, b, r, x, D, K, M, Q, O) {\n a.animate = u.animate;\n a.animObject = u.animObject;\n a.getDeferredAnimation = u.getDeferredAnimation;\n a.setAnimation = u.setAnimation;\n a.stop = u.stop;\n a.timers = G.timers;\n a.AST = H;\n a.Axis = d;\n a.Chart = k;\n a.chart = k.chart;\n a.Fx = G;\n a.Legend = q;\n a.PlotLineOrBand = t;\n a.Point = w;\n a.Pointer = A.isRequired() ? A : y;\n a.Series = c;\n a.SVGElement = z;\n a.SVGRenderer = p;\n a.Tick = n;\n a.Time = O;\n a.Tooltip = v;\n a.Color = Q;\n a.color = Q.parse;\n e.compose(p);\n m.compose(z);\n a.defaultOptions = C.defaultOptions;\n a.getOptions = C.getOptions;\n a.time = C.defaultTime;\n a.setOptions = C.setOptions;\n a.dateFormat = I.dateFormat;\n a.format = I.format;\n a.numberFormat = I.numberFormat;\n a.addEvent = f.addEvent;\n a.arrayMax = f.arrayMax;\n a.arrayMin = f.arrayMin;\n a.attr = f.attr;\n a.clearTimeout = f.clearTimeout;\n a.correctFloat = f.correctFloat;\n a.createElement = f.createElement;\n a.css = f.css;\n a.defined = f.defined;\n a.destroyObjectProperties = f.destroyObjectProperties;\n a.discardElement = f.discardElement;\n a.distribute = B.distribute;\n a.erase = f.erase;\n a.error = f.error;\n a.extend = f.extend;\n a.extendClass = f.extendClass;\n a.find = f.find;\n a.fireEvent = f.fireEvent;\n a.getMagnitude = f.getMagnitude;\n a.getStyle = f.getStyle;\n a.inArray = f.inArray;\n a.isArray = f.isArray;\n a.isClass = f.isClass;\n a.isDOMElement = f.isDOMElement;\n a.isFunction = f.isFunction;\n a.isNumber = f.isNumber;\n a.isObject = f.isObject;\n a.isString = f.isString;\n a.keys = f.keys;\n a.merge = f.merge;\n a.normalizeTickInterval = f.normalizeTickInterval;\n a.objectEach = f.objectEach;\n a.offset = f.offset;\n a.pad = f.pad;\n a.pick = f.pick;\n a.pInt = f.pInt;\n a.relativeLength = f.relativeLength;\n a.removeEvent = f.removeEvent;\n a.seriesType = g.seriesType;\n a.splat = f.splat;\n a.stableSort = f.stableSort;\n a.syncTimeout = f.syncTimeout;\n a.timeUnits = f.timeUnits;\n a.uniqueKey = f.uniqueKey;\n a.useSerialIds = f.useSerialIds;\n a.wrap = f.wrap;\n r.compose(b);\n K.compose(c);\n l.compose(d);\n h.compose(d);\n D.compose(x);\n t.compose(d);\n M.compose(k);\n return a;\n });\n f[\"masters/highcharts.src.js\"]._modules = f;\n return f[\"masters/highcharts.src.js\"];\n});","module.exports = __webpack_public_path__ + \"media/images/arg-40a9330d388164220b9fdaa47becb9df.svg\";","module.exports = __webpack_public_path__ + \"media/images/aus-a9157abccd81a6a9b9e178ac9fb1344e.svg\";","module.exports = __webpack_public_path__ + \"media/images/aut-9acfac7bcd3f2c3c4c65a770c91b373b.svg\";","module.exports = __webpack_public_path__ + \"media/images/bel-1a51c785fb867760b70096f31e38855d.svg\";","module.exports = __webpack_public_path__ + \"media/images/bih-7fe38299788abe05b54604c64b21db61.svg\";","module.exports = __webpack_public_path__ + \"media/images/blr-b8b701a17a108d0edc520a13ad51c118.svg\";","module.exports = __webpack_public_path__ + \"media/images/bra-acf8bd843121f58e726851b3f4d9aa55.svg\";","module.exports = __webpack_public_path__ + \"media/images/bul-b0e59e45b564afb05ed8141b3672628c.svg\";","module.exports = __webpack_public_path__ + \"media/images/can-b7f8c217c4071faac16642b21f8d5ecd.svg\";","module.exports = __webpack_public_path__ + \"media/images/chn-c8f9e31c38811742c182829fde86d0f3.svg\";","module.exports = __webpack_public_path__ + \"media/images/cro-434291d3d6bebd97c97cbf3ab1b76a1a.svg\";","module.exports = __webpack_public_path__ + \"media/images/cyp-6bec049b70b6e5cbbaa35384b897f7fe.svg\";","module.exports = __webpack_public_path__ + \"media/images/cze-4920f11288fe2e5698bf0db1b6457385.svg\";","module.exports = __webpack_public_path__ + \"media/images/den-99cbc127cd4d9e3184a47a60be478365.svg\";","module.exports = __webpack_public_path__ + \"media/images/esp-565198e29196011ebf811a3031ea5c4d.svg\";","module.exports = __webpack_public_path__ + \"media/images/est-2d3199d2ba7b1d9adfbba1f290d7c88e.svg\";","module.exports = __webpack_public_path__ + \"media/images/fin-dd9b4eb9275098b20b39c26ed070e4c2.svg\";","module.exports = __webpack_public_path__ + \"media/images/fra-95747314b9532ecac2cfc045921ac218.svg\";","module.exports = __webpack_public_path__ + \"media/images/gbr-b89f53b0520c2590b408e4dcfb1cb646.svg\";","module.exports = __webpack_public_path__ + \"media/images/geo-8868622314f074c60a3e74ada2630b24.svg\";","module.exports = __webpack_public_path__ + \"media/images/ger-cfbb0cf09f502653fe85aed9bd14d4ef.svg\";","module.exports = __webpack_public_path__ + \"media/images/gre-8fb75d94a36c96b803b1ad27c495717b.svg\";","module.exports = __webpack_public_path__ + \"media/images/hun-1ae32f74e4c536e74d35101c4c7ff997.svg\";","module.exports = __webpack_public_path__ + \"media/images/ina-a869fd327a1a08cdb324e73a2478a54a.svg\";","module.exports = __webpack_public_path__ + \"media/images/ind-c1de42805adfdb8b335c95a6379f60a6.svg\";","module.exports = __webpack_public_path__ + \"media/images/iri-01c0a08ed6d03c6518ca0e814c8bc91e.svg\";","module.exports = __webpack_public_path__ + \"media/images/irl-0202015eb5d6a3f9a2025422cc903547.svg\";","module.exports = __webpack_public_path__ + \"media/images/isr-927acd2009fa97938ab4a7ffcb90f3ea.svg\";","module.exports = __webpack_public_path__ + \"media/images/ita-58e75cebaf765e503d29181def4c9fee.svg\";","module.exports = __webpack_public_path__ + \"media/images/jor-6d45f2e5af066bb08f7f518b0509491b.svg\";","module.exports = __webpack_public_path__ + \"media/images/jpn-4ecbd30ab2e8917f4887b7e3e8651b09.svg\";","module.exports = __webpack_public_path__ + \"media/images/kaz-781fbde8446f8cd786f72ae6c15ab4a9.svg\";","module.exports = __webpack_public_path__ + \"media/images/kgz-350173f1f81b3455bc43fea609105a97.svg\";","module.exports = __webpack_public_path__ + \"media/images/lat-6f6eaa7b24c0a8bb5714621307a4fda1.svg\";","module.exports = __webpack_public_path__ + \"media/images/lbn-8cb787e4829b3a81bb7e5ac087190b16.svg\";","module.exports = __webpack_public_path__ + \"media/images/ltu-bf71f70dcd96ac579b0f5edc374481e3.svg\";","module.exports = __webpack_public_path__ + \"media/images/lux-58d7c92005e24755825c3c5a34e570f6.svg\";","module.exports = __webpack_public_path__ + \"media/images/mda-01c760d56b1195ae64a2ae9c6caa4b86.svg\";","module.exports = __webpack_public_path__ + \"media/images/mex-0327b02ecdd6a9df021bd7dd74ffb22b.svg\";","module.exports = __webpack_public_path__ + \"media/images/mkd-143fff99ad89cba0414b62850ab3fc5b.svg\";","module.exports = __webpack_public_path__ + \"media/images/mri-c4aa8b71da07d356eaf52ca5b44374ab.svg\";","module.exports = __webpack_public_path__ + \"media/images/nam-4322251d80b513d70f0aa9cac4864272.svg\";","module.exports = __webpack_public_path__ + \"media/images/ned-a7fdb74e17089394b68cb0a24a8d4dbe.svg\";","module.exports = __webpack_public_path__ + \"media/images/nil-fa7c2411097334d36e5b636ce3d76269.svg\";","module.exports = __webpack_public_path__ + \"media/images/nor-6d8f6e6625606a8751311c0bde3c7bcc.svg\";","module.exports = __webpack_public_path__ + \"media/images/nzl-06845d78bff43b6440c9371aea7c0173.svg\";","module.exports = __webpack_public_path__ + \"media/images/per-83cbe7a2e738d12672430962936a45ab.svg\";","module.exports = __webpack_public_path__ + \"media/images/pol-e2978cd583d46dfe1682d0f83fdc3f59.svg\";","module.exports = __webpack_public_path__ + \"media/images/por-8de166591d0cbb7c34334e764259b617.svg\";","module.exports = __webpack_public_path__ + \"media/images/ri-logo-b2ac4854544bc09ab9d40a1df6e0e7dc.png\";","module.exports = __webpack_public_path__ + \"media/images/rou-1e4b89dbd367cc381281d60e8f088159.svg\";","module.exports = __webpack_public_path__ + \"media/images/rsa-4d355ef5f9de728195c981db10d1c35a.svg\";","module.exports = __webpack_public_path__ + \"media/images/rus-f6bf75dc753a7e2944a7871bcdd29e60.svg\";","module.exports = __webpack_public_path__ + \"media/images/ser-4bf971be2682587e3bf9a422af74de1f.svg\";","module.exports = __webpack_public_path__ + \"media/images/slo-e7d45ba2117721b82de316fd280a4798.svg\";","module.exports = __webpack_public_path__ + \"media/images/srb-4bf971be2682587e3bf9a422af74de1f.svg\";","module.exports = __webpack_public_path__ + \"media/images/sui-bb13e8d79d5d8e5f91861f56734666c6.svg\";","module.exports = __webpack_public_path__ + \"media/images/svk-5ff847c7df012c7df060120d157240ab.svg\";","module.exports = __webpack_public_path__ + \"media/images/swe-f9da2d5ff8845a1e848fb7d09065335a.svg\";","module.exports = __webpack_public_path__ + \"media/images/syr-6d7188f85dd84d39154ff4844d601ac0.svg\";","module.exports = __webpack_public_path__ + \"media/images/tha-a65cc9bc0b9ffc4ee9c6df2795c5ba06.svg\";","module.exports = __webpack_public_path__ + \"media/images/tpe-7f28d8d889c6082c3281b04e7b90747c.svg\";","module.exports = __webpack_public_path__ + \"media/images/tur-69a0293b2c67b5b1cd2fee10843e6cd8.svg\";","module.exports = __webpack_public_path__ + \"media/images/ukr-f9cbc20b1a8b52e25c92bad309fd6f47.svg\";","module.exports = __webpack_public_path__ + \"media/images/usa-e834167e589569457e802802d3958724.svg\";","module.exports = __webpack_public_path__ + \"media/images/ven-38c522dac4ea6d32258ee300b225337b.svg\";","module.exports = __webpack_public_path__ + \"media/images/vie-b05bb20cdd1fa039f12f1b6abe8de1a3.svg\";","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Cookies EU banner v2.0.1 - Manage display of banner to accept/reject cookies from tracking services like Google Analytics\n * ------------------------\n * @link http://alex-d.github.io/Cookies-EU-banner/\n * @license MIT\n * @author Alex-D\n * Twitter : @AlexandreDemode\n * Website : alex-d.fr\n */\n; // jshint ignore:line\n\n(function (root, factory, undefined) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n module.exports = factory();\n } else {\n // root is window\n root.CookiesEuBanner = factory();\n }\n})(window, function () {\n 'use strict';\n\n var _CookiesEuBanner,\n document = window.document;\n\n _CookiesEuBanner = function CookiesEuBanner(launchFunction, waitAccept, useLocalStorage, undefined) {\n if (!(this instanceof _CookiesEuBanner)) {\n return new _CookiesEuBanner(launchFunction);\n }\n\n this.cookieTimeout = 33696000000; // 13 months in milliseconds\n\n this.bots = /bot|crawler|spider|crawling/i;\n this.cookieName = 'hasConsent';\n this.trackingCookiesNames = ['__utma', '__utmb', '__utmc', '__utmt', '__utmv', '__utmz', '_ga', '_gat', '_gid'];\n this.launchFunction = launchFunction;\n this.waitAccept = waitAccept || false;\n this.useLocalStorage = useLocalStorage || false;\n this.init();\n };\n\n _CookiesEuBanner.prototype = {\n init: function init() {\n // Detect if the visitor is a bot or not\n // Prevent for search engine take the cookie alert message as main content of the page\n var isBot = this.bots.test(navigator.userAgent); // Check if DoNotTrack is activated\n\n var dnt = navigator.doNotTrack || navigator.msDoNotTrack || window.doNotTrack;\n var isToTrack = dnt !== null && dnt !== undefined ? dnt && dnt !== 'yes' && dnt !== 1 && dnt !== '1' : true; // Do nothing if it is a bot\n // If DoNotTrack is activated, do nothing too\n\n if (isBot || !isToTrack || this.hasConsent() === false) {\n this.removeBanner(0);\n return false;\n } // User has already consent to use cookies to tracking\n\n\n if (this.hasConsent() === true) {\n // Launch user custom function\n this.launchFunction();\n return true;\n } // If it's not a bot, no DoNotTrack and not already accept, so show banner\n\n\n this.showBanner();\n\n if (!this.waitAccept) {\n // Accept cookies by default for the next page\n this.setConsent(true);\n }\n },\n\n /*\n * Show banner at the top of the page\n */\n showBanner: function showBanner() {\n var _this = this,\n getElementById = document.getElementById.bind(document),\n banner = getElementById('cookies-eu-banner'),\n rejectButton = getElementById('cookies-eu-reject'),\n acceptButton = getElementById('cookies-eu-accept'),\n moreLink = getElementById('cookies-eu-more'),\n waitRemove = banner.dataset.waitRemove === undefined ? 0 : parseInt(banner.dataset.waitRemove),\n // Variables for minification optimization\n addClickListener = this.addClickListener,\n removeBanner = _this.removeBanner.bind(_this, waitRemove);\n\n banner.style.display = 'block';\n\n if (moreLink) {\n addClickListener(moreLink, function () {\n _this.deleteCookie(_this.cookieName);\n });\n }\n\n if (acceptButton) {\n addClickListener(acceptButton, function () {\n removeBanner();\n\n _this.setConsent(true);\n\n _this.launchFunction();\n });\n }\n\n if (rejectButton) {\n addClickListener(rejectButton, function () {\n removeBanner();\n\n _this.setConsent(false); // Delete existing tracking cookies\n\n\n _this.trackingCookiesNames.map(_this.deleteCookie);\n });\n }\n },\n\n /*\n * Set consent cookie or localStorage\n */\n setConsent: function setConsent(consent) {\n if (this.useLocalStorage) {\n return localStorage.setItem(this.cookieName, consent);\n }\n\n this.setCookie(this.cookieName, consent);\n },\n\n /*\n * Check if user already consent\n */\n hasConsent: function hasConsent() {\n var cookieName = this.cookieName;\n\n var isCookieSetTo = function isCookieSetTo(value) {\n return document.cookie.indexOf(cookieName + '=' + value) > -1 || localStorage.getItem(cookieName) === value;\n };\n\n if (isCookieSetTo('true')) {\n return true;\n } else if (isCookieSetTo('false')) {\n return false;\n }\n\n return null;\n },\n\n /*\n * Create/update cookie\n */\n setCookie: function setCookie(name, value) {\n var date = new Date();\n date.setTime(date.getTime() + this.cookieTimeout);\n document.cookie = name + '=' + value + ';expires=' + date.toGMTString() + ';path=/';\n },\n\n /*\n * Delete cookie by changing expire\n */\n deleteCookie: function deleteCookie(name) {\n var hostname = document.location.hostname.replace(/^www\\./, ''),\n commonSuffix = '; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';\n document.cookie = name + '=; domain=.' + hostname + commonSuffix;\n document.cookie = name + '=' + commonSuffix;\n },\n addClickListener: function addClickListener(DOMElement, callback) {\n if (DOMElement.attachEvent) {\n // For IE 8 and earlier versions\n return DOMElement.attachEvent('onclick', callback);\n } // For all major browsers, except IE 8 and earlier\n\n\n DOMElement.addEventListener('click', callback);\n },\n\n /*\n * Delays removal of banner allowing developers\n * to specify their own transition effects\n */\n removeBanner: function removeBanner(wait) {\n setTimeout(function () {\n var banner = document.getElementById('cookies-eu-banner');\n\n if (banner && banner.parentNode) {\n banner.parentNode.removeChild(banner);\n }\n }, wait);\n }\n };\n return _CookiesEuBanner;\n});","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"channels\")\nrequire(\"chartkick\").use(require(\"highcharts\"))\n\nrequire(\"custom/cookie-banner\")\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\nconst images = require.context('../images', true)\nconst imagePath = (name) => images(name, true)\n\nimport \"highcharts\";\nimport \"@fortawesome/fontawesome-free/css/all\"\nimport \"../stylesheets/application\"\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n // Get all \"navbar-burger\" elements\n const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);\n\n // Check if there are any navbar burgers\n if ($navbarBurgers.length > 0) {\n\n // Add a click event on each of them\n $navbarBurgers.forEach( el => {\n el.addEventListener('click', () => {\n\n // Get the target from the \"data-target\" attribute\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n\n // Toggle the \"is-active\" class on both the \"navbar-burger\" and the \"navbar-menu\"\n el.classList.toggle('is-active');\n $target.classList.toggle('is-active');\n\n });\n });\n }\n\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 74;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * Chartkick.js\n * Create beautiful charts with one line of JavaScript\n * https://github.com/ankane/chartkick.js\n * v4.1.1\n * MIT License\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Chartkick = factory());\n})(this, function () {\n 'use strict';\n\n function isArray(variable) {\n return Object.prototype.toString.call(variable) === \"[object Array]\";\n }\n\n function isFunction(variable) {\n return variable instanceof Function;\n }\n\n function isPlainObject(variable) {\n // protect against prototype pollution, defense 2\n return Object.prototype.toString.call(variable) === \"[object Object]\" && !isFunction(variable) && variable instanceof Object;\n } // https://github.com/madrobby/zepto/blob/master/src/zepto.js\n\n\n function extend(target, source) {\n var key;\n\n for (key in source) {\n // protect against prototype pollution, defense 1\n if (key === \"__proto__\") {\n continue;\n }\n\n if (isPlainObject(source[key]) || isArray(source[key])) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n\n extend(target[key], source[key]);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n }\n\n function merge(obj1, obj2) {\n var target = {};\n extend(target, obj1);\n extend(target, obj2);\n return target;\n }\n\n var DATE_PATTERN = /^(\\d\\d\\d\\d)(-)?(\\d\\d)(-)?(\\d\\d)$/i;\n\n function negativeValues(series) {\n var i, j, data;\n\n for (i = 0; i < series.length; i++) {\n data = series[i].data;\n\n for (j = 0; j < data.length; j++) {\n if (data[j][1] < 0) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n function toStr(n) {\n return \"\" + n;\n }\n\n function toFloat(n) {\n return parseFloat(n);\n }\n\n function toDate(n) {\n var matches, year, month, day;\n\n if (_typeof(n) !== \"object\") {\n if (typeof n === \"number\") {\n n = new Date(n * 1000); // ms\n } else {\n n = toStr(n);\n\n if (matches = n.match(DATE_PATTERN)) {\n year = parseInt(matches[1], 10);\n month = parseInt(matches[3], 10) - 1;\n day = parseInt(matches[5], 10);\n return new Date(year, month, day);\n } else {\n // try our best to get the str into iso8601\n // TODO be smarter about this\n var str = n.replace(/ /, \"T\").replace(\" \", \"\").replace(\"UTC\", \"Z\"); // Date.parse returns milliseconds if valid and NaN if invalid\n\n n = new Date(Date.parse(str) || n);\n }\n }\n }\n\n return n;\n }\n\n function toArr(n) {\n if (!isArray(n)) {\n var arr = [],\n i;\n\n for (i in n) {\n if (n.hasOwnProperty(i)) {\n arr.push([i, n[i]]);\n }\n }\n\n n = arr;\n }\n\n return n;\n }\n\n function jsOptionsFunc(defaultOptions, hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle) {\n return function (chart, opts, chartOptions) {\n var series = chart.data;\n var options = merge({}, defaultOptions);\n options = merge(options, chartOptions || {});\n\n if (chart.singleSeriesFormat || \"legend\" in opts) {\n hideLegend(options, opts.legend, chart.singleSeriesFormat);\n }\n\n if (opts.title) {\n setTitle(options, opts.title);\n } // min\n\n\n if (\"min\" in opts) {\n setMin(options, opts.min);\n } else if (!negativeValues(series)) {\n setMin(options, 0);\n } // max\n\n\n if (opts.max) {\n setMax(options, opts.max);\n }\n\n if (\"stacked\" in opts) {\n setStacked(options, opts.stacked);\n }\n\n if (opts.colors) {\n options.colors = opts.colors;\n }\n\n if (opts.xtitle) {\n setXtitle(options, opts.xtitle);\n }\n\n if (opts.ytitle) {\n setYtitle(options, opts.ytitle);\n } // merge library last\n\n\n options = merge(options, opts.library || {});\n return options;\n };\n }\n\n function sortByTime(a, b) {\n return a[0].getTime() - b[0].getTime();\n }\n\n function sortByNumberSeries(a, b) {\n return a[0] - b[0];\n }\n\n function sortByNumber(a, b) {\n return a - b;\n }\n\n function isMinute(d) {\n return d.getMilliseconds() === 0 && d.getSeconds() === 0;\n }\n\n function isHour(d) {\n return isMinute(d) && d.getMinutes() === 0;\n }\n\n function isDay(d) {\n return isHour(d) && d.getHours() === 0;\n }\n\n function isWeek(d, dayOfWeek) {\n return isDay(d) && d.getDay() === dayOfWeek;\n }\n\n function isMonth(d) {\n return isDay(d) && d.getDate() === 1;\n }\n\n function isYear(d) {\n return isMonth(d) && d.getMonth() === 0;\n }\n\n function isDate(obj) {\n return !isNaN(toDate(obj)) && toStr(obj).length >= 6;\n }\n\n function isNumber(obj) {\n return typeof obj === \"number\";\n }\n\n var byteSuffixes = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"];\n\n function formatValue(pre, value, options, axis) {\n pre = pre || \"\";\n\n if (options.prefix) {\n if (value < 0) {\n value = value * -1;\n pre += \"-\";\n }\n\n pre += options.prefix;\n }\n\n var suffix = options.suffix || \"\";\n var precision = options.precision;\n var round = options.round;\n\n if (options.byteScale) {\n var suffixIdx;\n var baseValue = axis ? options.byteScale : value;\n\n if (baseValue >= 1152921504606846976) {\n value /= 1152921504606846976;\n suffixIdx = 6;\n } else if (baseValue >= 1125899906842624) {\n value /= 1125899906842624;\n suffixIdx = 5;\n } else if (baseValue >= 1099511627776) {\n value /= 1099511627776;\n suffixIdx = 4;\n } else if (baseValue >= 1073741824) {\n value /= 1073741824;\n suffixIdx = 3;\n } else if (baseValue >= 1048576) {\n value /= 1048576;\n suffixIdx = 2;\n } else if (baseValue >= 1024) {\n value /= 1024;\n suffixIdx = 1;\n } else {\n suffixIdx = 0;\n } // TODO handle manual precision case\n\n\n if (precision === undefined && round === undefined) {\n if (value >= 1023.5) {\n if (suffixIdx < byteSuffixes.length - 1) {\n value = 1.0;\n suffixIdx += 1;\n }\n }\n\n precision = value >= 1000 ? 4 : 3;\n }\n\n suffix = \" \" + byteSuffixes[suffixIdx];\n }\n\n if (precision !== undefined && round !== undefined) {\n throw Error(\"Use either round or precision, not both\");\n }\n\n if (!axis) {\n if (precision !== undefined) {\n value = value.toPrecision(precision);\n\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n\n if (round !== undefined) {\n if (round < 0) {\n var num = Math.pow(10, -1 * round);\n value = parseInt((1.0 * value / num).toFixed(0)) * num;\n } else {\n value = value.toFixed(round);\n\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n }\n }\n\n if (options.thousands || options.decimal) {\n value = toStr(value);\n var parts = value.split(\".\");\n value = parts[0];\n\n if (options.thousands) {\n value = value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, options.thousands);\n }\n\n if (parts.length > 1) {\n value += (options.decimal || \".\") + parts[1];\n }\n }\n\n return pre + value + suffix;\n }\n\n function seriesOption(chart, series, option) {\n if (option in series) {\n return series[option];\n } else if (option in chart.options) {\n return chart.options[option];\n }\n\n return null;\n }\n\n function allZeros(data) {\n var i, j, d;\n\n for (i = 0; i < data.length; i++) {\n d = data[i].data;\n\n for (j = 0; j < d.length; j++) {\n if (d[j][1] != 0) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n var baseOptions = {\n maintainAspectRatio: false,\n animation: false,\n plugins: {\n legend: {},\n tooltip: {\n displayColors: false,\n callbacks: {}\n },\n title: {\n font: {\n size: 20\n },\n color: \"#333\"\n }\n },\n interaction: {}\n };\n var defaultOptions$2 = {\n scales: {\n y: {\n ticks: {\n maxTicksLimit: 4\n },\n title: {\n font: {\n size: 16\n },\n color: \"#333\"\n },\n grid: {}\n },\n x: {\n grid: {\n drawOnChartArea: false\n },\n title: {\n font: {\n size: 16\n },\n color: \"#333\"\n },\n time: {},\n ticks: {}\n }\n }\n }; // http://there4.io/2012/05/02/google-chart-color-list/\n\n var defaultColors = [\"#3366CC\", \"#DC3912\", \"#FF9900\", \"#109618\", \"#990099\", \"#3B3EAC\", \"#0099C6\", \"#DD4477\", \"#66AA00\", \"#B82E2E\", \"#316395\", \"#994499\", \"#22AA99\", \"#AAAA11\", \"#6633CC\", \"#E67300\", \"#8B0707\", \"#329262\", \"#5574A6\", \"#651067\"];\n\n var hideLegend$2 = function hideLegend$2(options, legend, hideLegend) {\n if (legend !== undefined) {\n options.plugins.legend.display = !!legend;\n\n if (legend && legend !== true) {\n options.plugins.legend.position = legend;\n }\n } else if (hideLegend) {\n options.plugins.legend.display = false;\n }\n };\n\n var setTitle$2 = function setTitle$2(options, title) {\n options.plugins.title.display = true;\n options.plugins.title.text = title;\n };\n\n var setMin$2 = function setMin$2(options, min) {\n if (min !== null) {\n options.scales.y.min = toFloat(min);\n }\n };\n\n var setMax$2 = function setMax$2(options, max) {\n options.scales.y.max = toFloat(max);\n };\n\n var setBarMin$1 = function setBarMin$1(options, min) {\n if (min !== null) {\n options.scales.x.min = toFloat(min);\n }\n };\n\n var setBarMax$1 = function setBarMax$1(options, max) {\n options.scales.x.max = toFloat(max);\n };\n\n var setStacked$2 = function setStacked$2(options, stacked) {\n options.scales.x.stacked = !!stacked;\n options.scales.y.stacked = !!stacked;\n };\n\n var setXtitle$2 = function setXtitle$2(options, title) {\n options.scales.x.title.display = true;\n options.scales.x.title.text = title;\n };\n\n var setYtitle$2 = function setYtitle$2(options, title) {\n options.scales.y.title.display = true;\n options.scales.y.title.text = title;\n }; // https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\n\n\n var addOpacity = function addOpacity(hex, opacity) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? \"rgba(\" + parseInt(result[1], 16) + \", \" + parseInt(result[2], 16) + \", \" + parseInt(result[3], 16) + \", \" + opacity + \")\" : hex;\n }; // check if not null or undefined\n // https://stackoverflow.com/a/27757708/1177228\n\n\n var notnull = function notnull(x) {\n return x != null;\n };\n\n var setLabelSize = function setLabelSize(chart, data, options) {\n var maxLabelSize = Math.ceil(chart.element.offsetWidth / 4.0 / data.labels.length);\n\n if (maxLabelSize > 25) {\n maxLabelSize = 25;\n } else if (maxLabelSize < 10) {\n maxLabelSize = 10;\n }\n\n if (!options.scales.x.ticks.callback) {\n options.scales.x.ticks.callback = function (value) {\n value = toStr(this.getLabelForValue(value));\n\n if (value.length > maxLabelSize) {\n return value.substring(0, maxLabelSize - 2) + \"...\";\n } else {\n return value;\n }\n };\n }\n };\n\n var setFormatOptions$1 = function setFormatOptions$1(chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n if (chart.options.bytes) {\n var series = chart.data;\n\n if (chartType === \"pie\") {\n series = [{\n data: series\n }];\n } // calculate max\n\n\n var max = 0;\n\n for (var i = 0; i < series.length; i++) {\n var s = series[i];\n\n for (var j = 0; j < s.data.length; j++) {\n if (s.data[j][1] > max) {\n max = s.data[j][1];\n }\n }\n } // calculate scale\n\n\n var scale = 1;\n\n while (max >= 1024) {\n scale *= 1024;\n max /= 1024;\n } // set step size\n\n\n formatOptions.byteScale = scale;\n }\n\n if (chartType !== \"pie\") {\n var axis = options.scales.y;\n\n if (chartType === \"bar\") {\n axis = options.scales.x;\n }\n\n if (formatOptions.byteScale) {\n if (!axis.ticks.stepSize) {\n axis.ticks.stepSize = formatOptions.byteScale / 2;\n }\n\n if (!axis.ticks.maxTicksLimit) {\n axis.ticks.maxTicksLimit = 4;\n }\n }\n\n if (!axis.ticks.callback) {\n axis.ticks.callback = function (value) {\n return formatValue(\"\", value, formatOptions, true);\n };\n }\n }\n\n if (!options.plugins.tooltip.callbacks.label) {\n if (chartType === \"scatter\") {\n options.plugins.tooltip.callbacks.label = function (context) {\n var label = context.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n return label + '(' + context.label + ', ' + context.formattedValue + ')';\n };\n } else if (chartType === \"bubble\") {\n options.plugins.tooltip.callbacks.label = function (context) {\n var label = context.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n var dataPoint = context.raw;\n return label + '(' + dataPoint.x + ', ' + dataPoint.y + ', ' + dataPoint.v + ')';\n };\n } else if (chartType === \"pie\") {\n // need to use separate label for pie charts\n options.plugins.tooltip.callbacks.label = function (context) {\n var dataLabel = context.label;\n var value = ': ';\n\n if (isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return formatValue(dataLabel, context.parsed, formatOptions);\n };\n } else {\n var valueLabel = chartType === \"bar\" ? \"x\" : \"y\";\n\n options.plugins.tooltip.callbacks.label = function (context) {\n // don't show null values for stacked charts\n if (context.parsed[valueLabel] === null) {\n return;\n }\n\n var label = context.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n return formatValue(label, context.parsed[valueLabel], formatOptions);\n };\n }\n }\n };\n\n var jsOptions$2 = jsOptionsFunc(merge(baseOptions, defaultOptions$2), hideLegend$2, setTitle$2, setMin$2, setMax$2, setStacked$2, setXtitle$2, setYtitle$2);\n\n var createDataTable = function createDataTable(chart, options, chartType) {\n var datasets = [];\n var labels = [];\n var colors = chart.options.colors || defaultColors;\n var day = true;\n var week = true;\n var dayOfWeek;\n var month = true;\n var year = true;\n var hour = true;\n var minute = true;\n var series = chart.data;\n var max = 0;\n\n if (chartType === \"bubble\") {\n for (var i$1 = 0; i$1 < series.length; i$1++) {\n var s$1 = series[i$1];\n\n for (var j$1 = 0; j$1 < s$1.data.length; j$1++) {\n if (s$1.data[j$1][2] > max) {\n max = s$1.data[j$1][2];\n }\n }\n }\n }\n\n var i,\n j,\n s,\n d,\n key,\n rows = [],\n rows2 = [];\n\n if (chartType === \"bar\" || chartType === \"column\" || chart.xtype !== \"number\" && chart.xtype !== \"bubble\") {\n var sortedLabels = [];\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = chart.xtype == \"datetime\" ? d[0].getTime() : d[0];\n\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n }\n\n rows[key][i] = toFloat(d[1]);\n\n if (sortedLabels.indexOf(key) === -1) {\n sortedLabels.push(key);\n }\n }\n }\n\n if (chart.xtype === \"datetime\" || chart.xtype === \"number\") {\n sortedLabels.sort(sortByNumber);\n }\n\n for (j = 0; j < series.length; j++) {\n rows2.push([]);\n }\n\n var value;\n var k;\n\n for (k = 0; k < sortedLabels.length; k++) {\n i = sortedLabels[k];\n\n if (chart.xtype === \"datetime\") {\n value = new Date(toFloat(i)); // TODO make this efficient\n\n day = day && isDay(value);\n\n if (!dayOfWeek) {\n dayOfWeek = value.getDay();\n }\n\n week = week && isWeek(value, dayOfWeek);\n month = month && isMonth(value);\n year = year && isYear(value);\n hour = hour && isHour(value);\n minute = minute && isMinute(value);\n } else {\n value = i;\n }\n\n labels.push(value);\n\n for (j = 0; j < series.length; j++) {\n // Chart.js doesn't like undefined\n rows2[j].push(rows[i][j] === undefined ? null : rows[i][j]);\n }\n }\n } else {\n for (var i$2 = 0; i$2 < series.length; i$2++) {\n var s$2 = series[i$2];\n var d$1 = [];\n\n for (var j$2 = 0; j$2 < s$2.data.length; j$2++) {\n var point = {\n x: toFloat(s$2.data[j$2][0]),\n y: toFloat(s$2.data[j$2][1])\n };\n\n if (chartType === \"bubble\") {\n point.r = toFloat(s$2.data[j$2][2]) * 20 / max; // custom attribute, for tooltip\n\n point.v = s$2.data[j$2][2];\n }\n\n d$1.push(point);\n }\n\n rows2.push(d$1);\n }\n }\n\n var color;\n var backgroundColor;\n\n for (i = 0; i < series.length; i++) {\n s = series[i]; // use colors for each bar for single series format\n\n if (chart.options.colors && chart.singleSeriesFormat && (chartType === \"bar\" || chartType === \"column\") && !s.color && isArray(chart.options.colors) && !isArray(chart.options.colors[0])) {\n color = colors;\n backgroundColor = [];\n\n for (var j$3 = 0; j$3 < colors.length; j$3++) {\n backgroundColor[j$3] = addOpacity(color[j$3], 0.5);\n }\n } else {\n color = s.color || colors[i];\n backgroundColor = chartType !== \"line\" ? addOpacity(color, 0.5) : color;\n }\n\n var dataset = {\n label: s.name || \"\",\n data: rows2[i],\n fill: chartType === \"area\",\n borderColor: color,\n backgroundColor: backgroundColor,\n borderWidth: 2\n };\n var pointChart = chartType === \"line\" || chartType === \"area\" || chartType === \"scatter\" || chartType === \"bubble\";\n\n if (pointChart) {\n dataset.pointBackgroundColor = color;\n dataset.pointHoverBackgroundColor = color;\n dataset.pointHitRadius = 50;\n }\n\n if (chartType === \"bubble\") {\n dataset.pointBackgroundColor = backgroundColor;\n dataset.pointHoverBackgroundColor = backgroundColor;\n dataset.pointHoverBorderWidth = 2;\n }\n\n if (s.stack) {\n dataset.stack = s.stack;\n }\n\n var curve = seriesOption(chart, s, \"curve\");\n\n if (curve === false) {\n dataset.tension = 0;\n } else if (pointChart) {\n dataset.tension = 0.4;\n }\n\n var points = seriesOption(chart, s, \"points\");\n\n if (points === false) {\n dataset.pointRadius = 0;\n dataset.pointHoverRadius = 0;\n }\n\n dataset = merge(dataset, chart.options.dataset || {});\n dataset = merge(dataset, s.library || {});\n dataset = merge(dataset, s.dataset || {});\n datasets.push(dataset);\n }\n\n var xmin = chart.options.xmin;\n var xmax = chart.options.xmax;\n\n if (chart.xtype === \"datetime\") {\n if (notnull(xmin)) {\n options.scales.x.min = toDate(xmin).getTime();\n }\n\n if (notnull(xmax)) {\n options.scales.x.max = toDate(xmax).getTime();\n }\n } else if (chart.xtype === \"number\") {\n if (notnull(xmin)) {\n options.scales.x.min = xmin;\n }\n\n if (notnull(xmax)) {\n options.scales.x.max = xmax;\n }\n } // for empty datetime chart\n\n\n if (chart.xtype === \"datetime\" && labels.length === 0) {\n if (notnull(xmin)) {\n labels.push(toDate(xmin));\n }\n\n if (notnull(xmax)) {\n labels.push(toDate(xmax));\n }\n\n day = false;\n week = false;\n month = false;\n year = false;\n hour = false;\n minute = false;\n }\n\n if (chart.xtype === \"datetime\" && labels.length > 0) {\n var minTime = (notnull(xmin) ? toDate(xmin) : labels[0]).getTime();\n var maxTime = (notnull(xmax) ? toDate(xmax) : labels[0]).getTime();\n\n for (i = 1; i < labels.length; i++) {\n var value$1 = labels[i].getTime();\n\n if (value$1 < minTime) {\n minTime = value$1;\n }\n\n if (value$1 > maxTime) {\n maxTime = value$1;\n }\n }\n\n var timeDiff = (maxTime - minTime) / (86400 * 1000.0);\n\n if (!options.scales.x.time.unit) {\n var step;\n\n if (year || timeDiff > 365 * 10) {\n options.scales.x.time.unit = \"year\";\n step = 365;\n } else if (month || timeDiff > 30 * 10) {\n options.scales.x.time.unit = \"month\";\n step = 30;\n } else if (day || timeDiff > 10) {\n options.scales.x.time.unit = \"day\";\n step = 1;\n } else if (hour || timeDiff > 0.5) {\n options.scales.x.time.displayFormats = {\n hour: \"MMM d, h a\"\n };\n options.scales.x.time.unit = \"hour\";\n step = 1 / 24.0;\n } else if (minute) {\n options.scales.x.time.displayFormats = {\n minute: \"h:mm a\"\n };\n options.scales.x.time.unit = \"minute\";\n step = 1 / 24.0 / 60.0;\n }\n\n if (step && timeDiff > 0) {\n // width not available for hidden elements\n var width = chart.element.offsetWidth;\n\n if (width > 0) {\n var unitStepSize = Math.ceil(timeDiff / step / (width / 100.0));\n\n if (week && step === 1) {\n unitStepSize = Math.ceil(unitStepSize / 7.0) * 7;\n }\n\n options.scales.x.time.stepSize = unitStepSize;\n }\n }\n }\n\n if (!options.scales.x.time.tooltipFormat) {\n if (day) {\n options.scales.x.time.tooltipFormat = \"PP\";\n } else if (hour) {\n options.scales.x.time.tooltipFormat = \"MMM d, h a\";\n } else if (minute) {\n options.scales.x.time.tooltipFormat = \"h:mm a\";\n }\n }\n }\n\n var data = {\n labels: labels,\n datasets: datasets\n };\n return data;\n };\n\n var defaultExport$2 = function defaultExport(library) {\n this.name = \"chartjs\";\n this.library = library;\n };\n\n defaultExport$2.prototype.renderLineChart = function renderLineChart(chart, chartType) {\n var chartOptions = {}; // fix for https://github.com/chartjs/Chart.js/issues/2441\n\n if (!chart.options.max && allZeros(chart.data)) {\n chartOptions.max = 1;\n }\n\n var options = jsOptions$2(chart, merge(chartOptions, chart.options));\n setFormatOptions$1(chart, options, chartType);\n var data = createDataTable(chart, options, chartType || \"line\");\n\n if (chart.xtype === \"number\") {\n options.scales.x.type = options.scales.x.type || \"linear\";\n options.scales.x.position = options.scales.x.position || \"bottom\";\n } else {\n options.scales.x.type = chart.xtype === \"string\" ? \"category\" : \"time\";\n }\n\n this.drawChart(chart, \"line\", data, options);\n };\n\n defaultExport$2.prototype.renderPieChart = function renderPieChart(chart) {\n var options = merge({}, baseOptions);\n\n if (chart.options.donut) {\n options.cutout = \"50%\";\n }\n\n if (\"legend\" in chart.options) {\n hideLegend$2(options, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle$2(options, chart.options.title);\n }\n\n options = merge(options, chart.options.library || {});\n setFormatOptions$1(chart, options, \"pie\");\n var labels = [];\n var values = [];\n\n for (var i = 0; i < chart.data.length; i++) {\n var point = chart.data[i];\n labels.push(point[0]);\n values.push(point[1]);\n }\n\n var dataset = {\n data: values,\n backgroundColor: chart.options.colors || defaultColors\n };\n dataset = merge(dataset, chart.options.dataset || {});\n var data = {\n labels: labels,\n datasets: [dataset]\n };\n this.drawChart(chart, \"pie\", data, options);\n };\n\n defaultExport$2.prototype.renderColumnChart = function renderColumnChart(chart, chartType) {\n var options;\n\n if (chartType === \"bar\") {\n var barOptions = merge(baseOptions, defaultOptions$2);\n barOptions.indexAxis = \"y\"; // ensure gridlines have proper orientation\n\n barOptions.scales.x.grid.drawOnChartArea = true;\n barOptions.scales.y.grid.drawOnChartArea = false;\n delete barOptions.scales.y.ticks.maxTicksLimit;\n options = jsOptionsFunc(barOptions, hideLegend$2, setTitle$2, setBarMin$1, setBarMax$1, setStacked$2, setXtitle$2, setYtitle$2)(chart, chart.options);\n } else {\n options = jsOptions$2(chart, chart.options);\n }\n\n setFormatOptions$1(chart, options, chartType);\n var data = createDataTable(chart, options, \"column\");\n\n if (chartType !== \"bar\") {\n setLabelSize(chart, data, options);\n }\n\n this.drawChart(chart, \"bar\", data, options);\n };\n\n defaultExport$2.prototype.renderAreaChart = function renderAreaChart(chart) {\n this.renderLineChart(chart, \"area\");\n };\n\n defaultExport$2.prototype.renderBarChart = function renderBarChart(chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport$2.prototype.renderScatterChart = function renderScatterChart(chart, chartType) {\n chartType = chartType || \"scatter\";\n var options = jsOptions$2(chart, chart.options);\n setFormatOptions$1(chart, options, chartType);\n\n if (!(\"showLine\" in options)) {\n options.showLine = false;\n }\n\n var data = createDataTable(chart, options, chartType);\n options.scales.x.type = options.scales.x.type || \"linear\";\n options.scales.x.position = options.scales.x.position || \"bottom\"; // prevent grouping hover and tooltips\n\n if (!(\"mode\" in options.interaction)) {\n options.interaction.mode = \"nearest\";\n }\n\n this.drawChart(chart, chartType, data, options);\n };\n\n defaultExport$2.prototype.renderBubbleChart = function renderBubbleChart(chart) {\n this.renderScatterChart(chart, \"bubble\");\n };\n\n defaultExport$2.prototype.destroy = function destroy(chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport$2.prototype.drawChart = function drawChart(chart, type, data, options) {\n this.destroy(chart);\n\n if (chart.destroyed) {\n return;\n }\n\n var chartOptions = {\n type: type,\n data: data,\n options: options\n };\n\n if (chart.options.code) {\n window.console.log(\"new Chart(ctx, \" + JSON.stringify(chartOptions) + \");\");\n }\n\n chart.element.innerHTML = \"\";\n var ctx = chart.element.getElementsByTagName(\"CANVAS\")[0];\n chart.chart = new this.library(ctx, chartOptions);\n };\n\n var defaultOptions$1 = {\n chart: {},\n xAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n yAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n title: {\n text: null\n },\n credits: {\n enabled: false\n },\n legend: {\n borderWidth: 0\n },\n tooltip: {\n style: {\n fontSize: \"12px\"\n }\n },\n plotOptions: {\n areaspline: {},\n area: {},\n series: {\n marker: {}\n }\n },\n time: {\n useUTC: false\n }\n };\n\n var hideLegend$1 = function hideLegend$1(options, legend, hideLegend) {\n if (legend !== undefined) {\n options.legend.enabled = !!legend;\n\n if (legend && legend !== true) {\n if (legend === \"top\" || legend === \"bottom\") {\n options.legend.verticalAlign = legend;\n } else {\n options.legend.layout = \"vertical\";\n options.legend.verticalAlign = \"middle\";\n options.legend.align = legend;\n }\n }\n } else if (hideLegend) {\n options.legend.enabled = false;\n }\n };\n\n var setTitle$1 = function setTitle$1(options, title) {\n options.title.text = title;\n };\n\n var setMin$1 = function setMin$1(options, min) {\n options.yAxis.min = min;\n };\n\n var setMax$1 = function setMax$1(options, max) {\n options.yAxis.max = max;\n };\n\n var setStacked$1 = function setStacked$1(options, stacked) {\n var stackedValue = stacked ? stacked === true ? \"normal\" : stacked : null;\n options.plotOptions.series.stacking = stackedValue;\n options.plotOptions.area.stacking = stackedValue;\n options.plotOptions.areaspline.stacking = stackedValue;\n };\n\n var setXtitle$1 = function setXtitle$1(options, title) {\n options.xAxis.title.text = title;\n };\n\n var setYtitle$1 = function setYtitle$1(options, title) {\n options.yAxis.title.text = title;\n };\n\n var jsOptions$1 = jsOptionsFunc(defaultOptions$1, hideLegend$1, setTitle$1, setMin$1, setMax$1, setStacked$1, setXtitle$1, setYtitle$1);\n\n var setFormatOptions = function setFormatOptions(chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n if (chartType !== \"pie\" && !options.yAxis.labels.formatter) {\n options.yAxis.labels.formatter = function () {\n return formatValue(\"\", this.value, formatOptions);\n };\n }\n\n if (!options.tooltip.pointFormatter && !options.tooltip.pointFormat) {\n options.tooltip.pointFormatter = function () {\n return '\\u25CF \" + formatValue(this.series.name + ': ', this.y, formatOptions) + '
';\n };\n }\n };\n\n var defaultExport$1 = function defaultExport(library) {\n this.name = \"highcharts\";\n this.library = library;\n };\n\n defaultExport$1.prototype.renderLineChart = function renderLineChart(chart, chartType) {\n chartType = chartType || \"spline\";\n var chartOptions = {};\n\n if (chartType === \"areaspline\") {\n chartOptions = {\n plotOptions: {\n areaspline: {\n stacking: \"normal\"\n },\n area: {\n stacking: \"normal\"\n },\n series: {\n marker: {\n enabled: false\n }\n }\n }\n };\n }\n\n if (chart.options.curve === false) {\n if (chartType === \"areaspline\") {\n chartType = \"area\";\n } else if (chartType === \"spline\") {\n chartType = \"line\";\n }\n }\n\n var options = jsOptions$1(chart, chart.options, chartOptions),\n data,\n i,\n j;\n\n if (chart.xtype === \"number\") {\n options.xAxis.type = options.xAxis.type || \"linear\";\n } else {\n options.xAxis.type = chart.xtype === \"string\" ? \"category\" : \"datetime\";\n }\n\n if (!options.chart.type) {\n options.chart.type = chartType;\n }\n\n setFormatOptions(chart, options, chartType);\n var series = chart.data;\n\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n data = series[i].data;\n\n if (chart.xtype === \"datetime\") {\n for (j = 0; j < data.length; j++) {\n data[j][0] = data[j][0].getTime();\n }\n }\n\n series[i].marker = {\n symbol: \"circle\"\n };\n\n if (chart.options.points === false) {\n series[i].marker.enabled = false;\n }\n }\n\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderScatterChart = function renderScatterChart(chart) {\n var options = jsOptions$1(chart, chart.options, {});\n options.chart.type = \"scatter\";\n this.drawChart(chart, chart.data, options);\n };\n\n defaultExport$1.prototype.renderPieChart = function renderPieChart(chart) {\n var chartOptions = merge(defaultOptions$1, {});\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n\n if (chart.options.donut) {\n chartOptions.plotOptions = {\n pie: {\n innerSize: \"50%\"\n }\n };\n }\n\n if (\"legend\" in chart.options) {\n hideLegend$1(chartOptions, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle$1(chartOptions, chart.options.title);\n }\n\n var options = merge(chartOptions, chart.options.library || {});\n setFormatOptions(chart, options, \"pie\");\n var series = [{\n type: \"pie\",\n name: chart.options.label || \"Value\",\n data: chart.data\n }];\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderColumnChart = function renderColumnChart(chart, chartType) {\n chartType = chartType || \"column\";\n var series = chart.data;\n var options = jsOptions$1(chart, chart.options),\n i,\n j,\n s,\n d,\n rows = [],\n categories = [];\n options.chart.type = chartType;\n setFormatOptions(chart, options, chartType);\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n\n if (!rows[d[0]]) {\n rows[d[0]] = new Array(series.length);\n categories.push(d[0]);\n }\n\n rows[d[0]][i] = d[1];\n }\n }\n\n if (chart.xtype === \"number\") {\n categories.sort(sortByNumber);\n }\n\n options.xAxis.categories = categories;\n var newSeries = [],\n d2;\n\n for (i = 0; i < series.length; i++) {\n d = [];\n\n for (j = 0; j < categories.length; j++) {\n d.push(rows[categories[j]][i] || 0);\n }\n\n d2 = {\n name: series[i].name || \"Value\",\n data: d\n };\n\n if (series[i].stack) {\n d2.stack = series[i].stack;\n }\n\n newSeries.push(d2);\n }\n\n this.drawChart(chart, newSeries, options);\n };\n\n defaultExport$1.prototype.renderBarChart = function renderBarChart(chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport$1.prototype.renderAreaChart = function renderAreaChart(chart) {\n this.renderLineChart(chart, \"areaspline\");\n };\n\n defaultExport$1.prototype.destroy = function destroy(chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport$1.prototype.drawChart = function drawChart(chart, data, options) {\n this.destroy(chart);\n\n if (chart.destroyed) {\n return;\n }\n\n options.chart.renderTo = chart.element.id;\n options.series = data;\n\n if (chart.options.code) {\n window.console.log(\"new Highcharts.Chart(\" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.Chart(options);\n };\n\n var loaded = {};\n var callbacks = []; // Set chart options\n\n var defaultOptions = {\n chartArea: {},\n fontName: \"'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif\",\n pointSize: 6,\n legend: {\n textStyle: {\n fontSize: 12,\n color: \"#444\"\n },\n alignment: \"center\",\n position: \"right\"\n },\n curveType: \"function\",\n hAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n gridlines: {\n color: \"transparent\"\n },\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n vAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n tooltip: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n }\n }\n };\n\n var hideLegend = function hideLegend(options, legend, _hideLegend) {\n if (legend !== undefined) {\n var position;\n\n if (!legend) {\n position = \"none\";\n } else if (legend === true) {\n position = \"right\";\n } else {\n position = legend;\n }\n\n options.legend.position = position;\n } else if (_hideLegend) {\n options.legend.position = \"none\";\n }\n };\n\n var setTitle = function setTitle(options, title) {\n options.title = title;\n options.titleTextStyle = {\n color: \"#333\",\n fontSize: \"20px\"\n };\n };\n\n var setMin = function setMin(options, min) {\n options.vAxis.viewWindow.min = min;\n };\n\n var setMax = function setMax(options, max) {\n options.vAxis.viewWindow.max = max;\n };\n\n var setBarMin = function setBarMin(options, min) {\n options.hAxis.viewWindow.min = min;\n };\n\n var setBarMax = function setBarMax(options, max) {\n options.hAxis.viewWindow.max = max;\n };\n\n var setStacked = function setStacked(options, stacked) {\n options.isStacked = stacked ? stacked : false;\n };\n\n var setXtitle = function setXtitle(options, title) {\n options.hAxis.title = title;\n options.hAxis.titleTextStyle.italic = false;\n };\n\n var setYtitle = function setYtitle(options, title) {\n options.vAxis.title = title;\n options.vAxis.titleTextStyle.italic = false;\n };\n\n var jsOptions = jsOptionsFunc(defaultOptions, hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle);\n\n var resize = function resize(callback) {\n if (window.attachEvent) {\n window.attachEvent(\"onresize\", callback);\n } else if (window.addEventListener) {\n window.addEventListener(\"resize\", callback, true);\n }\n\n callback();\n };\n\n var defaultExport = function defaultExport(library) {\n this.name = \"google\";\n this.library = library;\n };\n\n defaultExport.prototype.renderLineChart = function renderLineChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n\n if (chart.options.curve === false) {\n chartOptions.curveType = \"none\";\n }\n\n if (chart.options.points === false) {\n chartOptions.pointSize = 0;\n }\n\n var options = jsOptions(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n this$1.drawChart(chart, \"LineChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderPieChart = function renderPieChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n chartArea: {\n top: \"10%\",\n height: \"80%\"\n },\n legend: {}\n };\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n\n if (chart.options.donut) {\n chartOptions.pieHole = 0.5;\n }\n\n if (\"legend\" in chart.options) {\n hideLegend(chartOptions, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle(chartOptions, chart.options.title);\n }\n\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n var data = new this$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", \"Value\");\n data.addRows(chart.data);\n this$1.drawChart(chart, \"PieChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderColumnChart = function renderColumnChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var options = jsOptions(chart, chart.options);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n this$1.drawChart(chart, \"ColumnChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderBarChart = function renderBarChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n hAxis: {\n gridlines: {\n color: \"#ccc\"\n }\n }\n };\n var options = jsOptionsFunc(defaultOptions, hideLegend, setTitle, setBarMin, setBarMax, setStacked, setXtitle, setYtitle)(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n this$1.drawChart(chart, \"BarChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderAreaChart = function renderAreaChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n isStacked: true,\n pointSize: 0,\n areaOpacity: 0.5\n };\n var options = jsOptions(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n this$1.drawChart(chart, \"AreaChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderGeoChart = function renderGeoChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, \"geochart\", function () {\n var chartOptions = {\n legend: \"none\",\n colorAxis: {\n colors: chart.options.colors || [\"#f6c7b6\", \"#ce502d\"]\n }\n };\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n var data = new this$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", chart.options.label || \"Value\");\n data.addRows(chart.data);\n this$1.drawChart(chart, \"GeoChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderScatterChart = function renderScatterChart(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n var options = jsOptions(chart, chart.options, chartOptions);\n var series = chart.data,\n rows2 = [],\n i,\n j,\n data,\n d;\n\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n d = series[i].data;\n\n for (j = 0; j < d.length; j++) {\n var row = new Array(series.length + 1);\n row[0] = d[j][0];\n row[i + 1] = d[j][1];\n rows2.push(row);\n }\n }\n\n data = new this$1.library.visualization.DataTable();\n data.addColumn(\"number\", \"\");\n\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n\n data.addRows(rows2);\n this$1.drawChart(chart, \"ScatterChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderTimeline = function renderTimeline(chart) {\n var this$1 = this;\n this.waitForLoaded(chart, \"timeline\", function () {\n var chartOptions = {\n legend: \"none\"\n };\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n var data = new this$1.library.visualization.DataTable();\n data.addColumn({\n type: \"string\",\n id: \"Name\"\n });\n data.addColumn({\n type: \"date\",\n id: \"Start\"\n });\n data.addColumn({\n type: \"date\",\n id: \"End\"\n });\n data.addRows(chart.data);\n chart.element.style.lineHeight = \"normal\";\n this$1.drawChart(chart, \"Timeline\", data, options);\n });\n }; // TODO remove resize events\n\n\n defaultExport.prototype.destroy = function destroy(chart) {\n if (chart.chart) {\n chart.chart.clearChart();\n }\n };\n\n defaultExport.prototype.drawChart = function drawChart(chart, type, data, options) {\n this.destroy(chart);\n\n if (chart.destroyed) {\n return;\n }\n\n if (chart.options.code) {\n window.console.log(\"var data = new google.visualization.DataTable(\" + data.toJSON() + \");\\nvar chart = new google.visualization.\" + type + \"(element);\\nchart.draw(data, \" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.visualization[type](chart.element);\n resize(function () {\n chart.chart.draw(data, options);\n });\n };\n\n defaultExport.prototype.waitForLoaded = function waitForLoaded(chart, pack, callback) {\n var this$1 = this;\n\n if (!callback) {\n callback = pack;\n pack = \"corechart\";\n }\n\n callbacks.push({\n pack: pack,\n callback: callback\n });\n\n if (loaded[pack]) {\n this.runCallbacks();\n } else {\n loaded[pack] = true; // https://groups.google.com/forum/#!topic/google-visualization-api/fMKJcyA2yyI\n\n var loadOptions = {\n packages: [pack],\n callback: function callback() {\n this$1.runCallbacks();\n }\n };\n\n var config = chart.__config();\n\n if (config.language) {\n loadOptions.language = config.language;\n }\n\n if (pack === \"geochart\" && config.mapsApiKey) {\n loadOptions.mapsApiKey = config.mapsApiKey;\n }\n\n this.library.charts.load(\"current\", loadOptions);\n }\n };\n\n defaultExport.prototype.runCallbacks = function runCallbacks() {\n var cb, call;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n call = this.library.visualization && (cb.pack === \"corechart\" && this.library.visualization.LineChart || cb.pack === \"timeline\" && this.library.visualization.Timeline || cb.pack === \"geochart\" && this.library.visualization.GeoChart);\n\n if (call) {\n cb.callback();\n callbacks.splice(i, 1);\n i--;\n }\n }\n }; // cant use object as key\n\n\n defaultExport.prototype.createDataTable = function createDataTable(series, columnType) {\n var i,\n j,\n s,\n d,\n key,\n rows = [],\n sortedLabels = [];\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n series[i].name = series[i].name || \"Value\";\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = columnType === \"datetime\" ? d[0].getTime() : d[0];\n\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n sortedLabels.push(key);\n }\n\n rows[key][i] = toFloat(d[1]);\n }\n }\n\n var rows2 = [];\n var day = true;\n var value;\n\n for (j = 0; j < sortedLabels.length; j++) {\n i = sortedLabels[j];\n\n if (columnType === \"datetime\") {\n value = new Date(toFloat(i));\n day = day && isDay(value);\n } else if (columnType === \"number\") {\n value = toFloat(i);\n } else {\n value = i;\n }\n\n rows2.push([value].concat(rows[i]));\n }\n\n if (columnType === \"datetime\") {\n rows2.sort(sortByTime);\n } else if (columnType === \"number\") {\n rows2.sort(sortByNumberSeries);\n\n for (i = 0; i < rows2.length; i++) {\n rows2[i][0] = toStr(rows2[i][0]);\n }\n\n columnType = \"string\";\n } // create datatable\n\n\n var data = new this.library.visualization.DataTable();\n columnType = columnType === \"datetime\" && day ? \"date\" : columnType;\n data.addColumn(columnType, \"\");\n\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n\n data.addRows(rows2);\n return data;\n };\n\n function formatSeriesData(data, keyType) {\n var r = [],\n j,\n keyFunc;\n\n if (keyType === \"number\") {\n keyFunc = toFloat;\n } else if (keyType === \"datetime\") {\n keyFunc = toDate;\n } else {\n keyFunc = toStr;\n }\n\n if (keyType === \"bubble\") {\n for (j = 0; j < data.length; j++) {\n r.push([toFloat(data[j][0]), toFloat(data[j][1]), toFloat(data[j][2])]);\n }\n } else {\n for (j = 0; j < data.length; j++) {\n r.push([keyFunc(data[j][0]), toFloat(data[j][1])]);\n }\n }\n\n if (keyType === \"datetime\") {\n r.sort(sortByTime);\n } else if (keyType === \"number\") {\n r.sort(sortByNumberSeries);\n }\n\n return r;\n }\n\n function detectXType(series, noDatetime, options) {\n if (dataEmpty(series)) {\n if ((options.xmin || options.xmax) && (!options.xmin || isDate(options.xmin)) && (!options.xmax || isDate(options.xmax))) {\n return \"datetime\";\n } else {\n return \"number\";\n }\n } else if (detectXTypeWithFunction(series, isNumber)) {\n return \"number\";\n } else if (!noDatetime && detectXTypeWithFunction(series, isDate)) {\n return \"datetime\";\n } else {\n return \"string\";\n }\n }\n\n function detectXTypeWithFunction(series, func) {\n var i, j, data;\n\n for (i = 0; i < series.length; i++) {\n data = toArr(series[i].data);\n\n for (j = 0; j < data.length; j++) {\n if (!func(data[j][0])) {\n return false;\n }\n }\n }\n\n return true;\n } // creates a shallow copy of each element of the array\n // elements are expected to be objects\n\n\n function copySeries(series) {\n var newSeries = [],\n i,\n j;\n\n for (i = 0; i < series.length; i++) {\n var copy = {};\n\n for (j in series[i]) {\n if (series[i].hasOwnProperty(j)) {\n copy[j] = series[i][j];\n }\n }\n\n newSeries.push(copy);\n }\n\n return newSeries;\n }\n\n function processSeries(chart, keyType, noDatetime) {\n var i;\n var opts = chart.options;\n var series = chart.rawData; // see if one series or multiple\n\n chart.singleSeriesFormat = !isArray(series) || _typeof(series[0]) !== \"object\" || isArray(series[0]);\n\n if (chart.singleSeriesFormat) {\n series = [{\n name: opts.label,\n data: series\n }];\n } // convert to array\n // must come before dataEmpty check\n\n\n series = copySeries(series);\n\n for (i = 0; i < series.length; i++) {\n series[i].data = toArr(series[i].data);\n }\n\n chart.xtype = keyType ? keyType : opts.discrete ? \"string\" : detectXType(series, noDatetime, opts); // right format\n\n for (i = 0; i < series.length; i++) {\n series[i].data = formatSeriesData(series[i].data, chart.xtype);\n }\n\n return series;\n }\n\n function processSimple(chart) {\n var perfectData = toArr(chart.rawData),\n i;\n\n for (i = 0; i < perfectData.length; i++) {\n perfectData[i] = [toStr(perfectData[i][0]), toFloat(perfectData[i][1])];\n }\n\n return perfectData;\n }\n\n function dataEmpty(data, chartType) {\n if (chartType === \"PieChart\" || chartType === \"GeoChart\" || chartType === \"Timeline\") {\n return data.length === 0;\n } else {\n for (var i = 0; i < data.length; i++) {\n if (data[i].data.length > 0) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function addDownloadButton(chart) {\n var element = chart.element;\n var link = document.createElement(\"a\");\n var download = chart.options.download;\n\n if (download === true) {\n download = {};\n } else if (typeof download === \"string\") {\n download = {\n filename: download\n };\n }\n\n link.download = download.filename || \"chart.png\"; // https://caniuse.com/download\n\n link.style.position = \"absolute\";\n link.style.top = \"20px\";\n link.style.right = \"20px\";\n link.style.zIndex = 1000;\n link.style.lineHeight = \"20px\";\n link.target = \"_blank\"; // for safari\n\n var image = document.createElement(\"img\");\n image.alt = \"Download\";\n image.style.border = \"none\"; // icon from font-awesome\n // http://fa2png.io/\n\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAABCFBMVEUAAADMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMywEsqxAAAAV3RSTlMAAQIDBggJCgsMDQ4PERQaHB0eISIjJCouLzE0OTo/QUJHSUpLTU5PUllhYmltcHh5foWLjI+SlaCio6atr7S1t7m6vsHHyM7R2tze5Obo7fHz9ff5+/1hlxK2AAAA30lEQVQYGUXBhVYCQQBA0TdYWAt2d3d3YWAHyur7/z9xgD16Lw0DW+XKx+1GgX+FRzM3HWQWrHl5N/oapW5RPe0PkBu+UYeICvozTWZVK23Ao04B79oJrOsJDOoxkZoQPWgX29pHpCZEk7rEvQYiNSFq1UMqvlCjJkRBS1R8hb00Vb/TajtBL7nTHE1X1vyMQF732dQhyF2o6SAwrzP06iUQzvwsArlnzcOdrgBhJyHa1QOgO9U1GsKuvjUTjavliZYQ8nNPapG6sap/3nrIdJ6bOWzmX/fy0XVpfzZP3S8OJT3g9EEiJwAAAABJRU5ErkJggg==\";\n link.appendChild(image);\n element.style.position = \"relative\";\n chart.__downloadAttached = true; // mouseenter\n\n chart.__enterEvent = addEvent(element, \"mouseover\", function (e) {\n var related = e.relatedTarget; // check download option again to ensure it wasn't changed\n\n if ((!related || related !== this && !childOf(this, related)) && chart.options.download) {\n link.href = chart.toImage(download);\n element.appendChild(link);\n }\n }); // mouseleave\n\n chart.__leaveEvent = addEvent(element, \"mouseout\", function (e) {\n var related = e.relatedTarget;\n\n if (!related || related !== this && !childOf(this, related)) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n }\n });\n } // https://stackoverflow.com/questions/10149963/adding-event-listener-cross-browser\n\n\n function addEvent(elem, event, fn) {\n if (elem.addEventListener) {\n elem.addEventListener(event, fn, false);\n return fn;\n } else {\n var fn2 = function fn2() {\n // set the this pointer same as addEventListener when fn is called\n return fn.call(elem, window.event);\n };\n\n elem.attachEvent(\"on\" + event, fn2);\n return fn2;\n }\n }\n\n function removeEvent(elem, event, fn) {\n if (elem.removeEventListener) {\n elem.removeEventListener(event, fn, false);\n } else {\n elem.detachEvent(\"on\" + event, fn);\n }\n } // https://gist.github.com/shawnbot/4166283\n\n\n function childOf(p, c) {\n if (p === c) {\n return false;\n }\n\n while (c && c !== p) {\n c = c.parentNode;\n }\n\n return c === p;\n }\n\n var pendingRequests = [],\n runningRequests = 0,\n maxRequests = 4;\n\n function pushRequest(url, success, error) {\n pendingRequests.push([url, success, error]);\n runNext();\n }\n\n function runNext() {\n if (runningRequests < maxRequests) {\n var request = pendingRequests.shift();\n\n if (request) {\n runningRequests++;\n getJSON(request[0], request[1], request[2]);\n runNext();\n }\n }\n }\n\n function requestComplete() {\n runningRequests--;\n runNext();\n }\n\n function getJSON(url, success, error) {\n ajaxCall(url, success, function (jqXHR, textStatus, errorThrown) {\n var message = typeof errorThrown === \"string\" ? errorThrown : errorThrown.message;\n error(message);\n });\n }\n\n function ajaxCall(url, success, error) {\n var $ = window.jQuery || window.Zepto || window.$;\n\n if ($ && $.ajax) {\n $.ajax({\n dataType: \"json\",\n url: url,\n success: success,\n error: error,\n complete: requestComplete\n });\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n\n xhr.onload = function () {\n requestComplete();\n\n if (xhr.status === 200) {\n success(JSON.parse(xhr.responseText), xhr.statusText, xhr);\n } else {\n error(xhr, \"error\", xhr.statusText);\n }\n };\n\n xhr.send();\n }\n }\n\n var config = {};\n var adapters = []; // helpers\n\n function setText(element, text) {\n if (document.body.innerText) {\n element.innerText = text;\n } else {\n element.textContent = text;\n }\n } // TODO remove prefix for all messages\n\n\n function chartError(element, message, noPrefix) {\n if (!noPrefix) {\n message = \"Error Loading Chart: \" + message;\n }\n\n setText(element, message);\n element.style.color = \"#ff0000\";\n }\n\n function errorCatcher(chart) {\n try {\n chart.__render();\n } catch (err) {\n chartError(chart.element, err.message);\n throw err;\n }\n }\n\n function fetchDataSource(chart, dataSource, showLoading) {\n // only show loading message for urls and callbacks\n if (showLoading && chart.options.loading && (typeof dataSource === \"string\" || typeof dataSource === \"function\")) {\n setText(chart.element, chart.options.loading);\n }\n\n if (typeof dataSource === \"string\") {\n pushRequest(dataSource, function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message);\n });\n } else if (typeof dataSource === \"function\") {\n try {\n dataSource(function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message, true);\n });\n } catch (err) {\n chartError(chart.element, err, true);\n }\n } else {\n chart.rawData = dataSource;\n errorCatcher(chart);\n }\n }\n\n function getAdapterType(library) {\n if (library) {\n if (library.product === \"Highcharts\") {\n return defaultExport$1;\n } else if (library.charts) {\n return defaultExport;\n } else if (isFunction(library)) {\n return defaultExport$2;\n }\n }\n\n throw new Error(\"Unknown adapter\");\n }\n\n function addAdapter(library) {\n var adapterType = getAdapterType(library);\n var adapter = new adapterType(library);\n\n if (adapters.indexOf(adapter) === -1) {\n adapters.push(adapter);\n }\n }\n\n function loadAdapters() {\n if (\"Chart\" in window) {\n addAdapter(window.Chart);\n }\n\n if (\"Highcharts\" in window) {\n addAdapter(window.Highcharts);\n }\n\n if (window.google && window.google.charts) {\n addAdapter(window.google);\n }\n }\n\n function renderChart(chartType, chart) {\n if (dataEmpty(chart.data, chartType)) {\n var message = chart.options.empty || chart.options.messages && chart.options.messages.empty || \"No data\";\n setText(chart.element, message);\n } else {\n callAdapter(chartType, chart);\n\n if (chart.options.download && !chart.__downloadAttached && chart.adapter === \"chartjs\") {\n addDownloadButton(chart);\n }\n }\n } // TODO remove chartType if cross-browser way\n // to get the name of the chart class\n\n\n function callAdapter(chartType, chart) {\n var i, adapter, fnName, adapterName;\n fnName = \"render\" + chartType;\n adapterName = chart.options.adapter;\n loadAdapters();\n\n for (i = 0; i < adapters.length; i++) {\n adapter = adapters[i];\n\n if ((!adapterName || adapterName === adapter.name) && isFunction(adapter[fnName])) {\n chart.adapter = adapter.name;\n chart.__adapterObject = adapter;\n return adapter[fnName](chart);\n }\n }\n\n if (adapters.length > 0) {\n throw new Error(\"No charting library found for \" + chartType);\n } else {\n throw new Error(\"No charting libraries found - be sure to include one before your charts\");\n }\n } // define classes\n\n\n var Chart = function Chart(element, dataSource, options) {\n var elementId;\n\n if (typeof element === \"string\") {\n elementId = element;\n element = document.getElementById(element);\n\n if (!element) {\n throw new Error(\"No element with id \" + elementId);\n }\n }\n\n this.element = element;\n this.options = merge(Chartkick.options, options || {});\n this.dataSource = dataSource;\n Chartkick.charts[element.id] = this;\n fetchDataSource(this, dataSource, true);\n\n if (this.options.refresh) {\n this.startRefresh();\n }\n };\n\n Chart.prototype.getElement = function getElement() {\n return this.element;\n };\n\n Chart.prototype.getDataSource = function getDataSource() {\n return this.dataSource;\n };\n\n Chart.prototype.getData = function getData() {\n return this.data;\n };\n\n Chart.prototype.getOptions = function getOptions() {\n return this.options;\n };\n\n Chart.prototype.getChartObject = function getChartObject() {\n return this.chart;\n };\n\n Chart.prototype.getAdapter = function getAdapter() {\n return this.adapter;\n };\n\n Chart.prototype.updateData = function updateData(dataSource, options) {\n this.dataSource = dataSource;\n\n if (options) {\n this.__updateOptions(options);\n }\n\n fetchDataSource(this, dataSource, true);\n };\n\n Chart.prototype.setOptions = function setOptions(options) {\n this.__updateOptions(options);\n\n this.redraw();\n };\n\n Chart.prototype.redraw = function redraw() {\n fetchDataSource(this, this.rawData);\n };\n\n Chart.prototype.refreshData = function refreshData() {\n if (typeof this.dataSource === \"string\") {\n // prevent browser from caching\n var sep = this.dataSource.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n var url = this.dataSource + sep + \"_=\" + new Date().getTime();\n fetchDataSource(this, url);\n } else if (typeof this.dataSource === \"function\") {\n fetchDataSource(this, this.dataSource);\n }\n };\n\n Chart.prototype.startRefresh = function startRefresh() {\n var this$1 = this;\n var refresh = this.options.refresh;\n\n if (refresh && typeof this.dataSource !== \"string\" && typeof this.dataSource !== \"function\") {\n throw new Error(\"Data source must be a URL or callback for refresh\");\n }\n\n if (!this.intervalId) {\n if (refresh) {\n this.intervalId = setInterval(function () {\n this$1.refreshData();\n }, refresh * 1000);\n } else {\n throw new Error(\"No refresh interval\");\n }\n }\n };\n\n Chart.prototype.stopRefresh = function stopRefresh() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n };\n\n Chart.prototype.toImage = function toImage(download) {\n if (this.adapter === \"chartjs\") {\n if (download && download.background && download.background !== \"transparent\") {\n // https://stackoverflow.com/questions/30464750/chartjs-line-chart-set-background-color\n var canvas = this.chart.canvas;\n var ctx = this.chart.ctx;\n var tmpCanvas = document.createElement(\"canvas\");\n var tmpCtx = tmpCanvas.getContext(\"2d\");\n tmpCanvas.width = ctx.canvas.width;\n tmpCanvas.height = ctx.canvas.height;\n tmpCtx.fillStyle = download.background;\n tmpCtx.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);\n tmpCtx.drawImage(canvas, 0, 0);\n return tmpCanvas.toDataURL(\"image/png\");\n } else {\n return this.chart.toBase64Image();\n }\n } else {\n throw new Error(\"Feature only available for Chart.js\");\n }\n };\n\n Chart.prototype.destroy = function destroy() {\n this.destroyed = true;\n this.stopRefresh();\n\n if (this.__adapterObject) {\n this.__adapterObject.destroy(this);\n }\n\n if (this.__enterEvent) {\n removeEvent(this.element, \"mouseover\", this.__enterEvent);\n }\n\n if (this.__leaveEvent) {\n removeEvent(this.element, \"mouseout\", this.__leaveEvent);\n }\n };\n\n Chart.prototype.__updateOptions = function __updateOptions(options) {\n var updateRefresh = options.refresh && options.refresh !== this.options.refresh;\n this.options = merge(Chartkick.options, options);\n\n if (updateRefresh) {\n this.stopRefresh();\n this.startRefresh();\n }\n };\n\n Chart.prototype.__render = function __render() {\n this.data = this.__processData();\n renderChart(this.__chartName(), this);\n };\n\n Chart.prototype.__config = function __config() {\n return config;\n };\n\n var LineChart = /*@__PURE__*/function (Chart) {\n function LineChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) LineChart.__proto__ = Chart;\n LineChart.prototype = Object.create(Chart && Chart.prototype);\n LineChart.prototype.constructor = LineChart;\n\n LineChart.prototype.__processData = function __processData() {\n return processSeries(this);\n };\n\n LineChart.prototype.__chartName = function __chartName() {\n return \"LineChart\";\n };\n\n return LineChart;\n }(Chart);\n\n var PieChart = /*@__PURE__*/function (Chart) {\n function PieChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) PieChart.__proto__ = Chart;\n PieChart.prototype = Object.create(Chart && Chart.prototype);\n PieChart.prototype.constructor = PieChart;\n\n PieChart.prototype.__processData = function __processData() {\n return processSimple(this);\n };\n\n PieChart.prototype.__chartName = function __chartName() {\n return \"PieChart\";\n };\n\n return PieChart;\n }(Chart);\n\n var ColumnChart = /*@__PURE__*/function (Chart) {\n function ColumnChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) ColumnChart.__proto__ = Chart;\n ColumnChart.prototype = Object.create(Chart && Chart.prototype);\n ColumnChart.prototype.constructor = ColumnChart;\n\n ColumnChart.prototype.__processData = function __processData() {\n return processSeries(this, null, true);\n };\n\n ColumnChart.prototype.__chartName = function __chartName() {\n return \"ColumnChart\";\n };\n\n return ColumnChart;\n }(Chart);\n\n var BarChart = /*@__PURE__*/function (Chart) {\n function BarChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) BarChart.__proto__ = Chart;\n BarChart.prototype = Object.create(Chart && Chart.prototype);\n BarChart.prototype.constructor = BarChart;\n\n BarChart.prototype.__processData = function __processData() {\n return processSeries(this, null, true);\n };\n\n BarChart.prototype.__chartName = function __chartName() {\n return \"BarChart\";\n };\n\n return BarChart;\n }(Chart);\n\n var AreaChart = /*@__PURE__*/function (Chart) {\n function AreaChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) AreaChart.__proto__ = Chart;\n AreaChart.prototype = Object.create(Chart && Chart.prototype);\n AreaChart.prototype.constructor = AreaChart;\n\n AreaChart.prototype.__processData = function __processData() {\n return processSeries(this);\n };\n\n AreaChart.prototype.__chartName = function __chartName() {\n return \"AreaChart\";\n };\n\n return AreaChart;\n }(Chart);\n\n var GeoChart = /*@__PURE__*/function (Chart) {\n function GeoChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) GeoChart.__proto__ = Chart;\n GeoChart.prototype = Object.create(Chart && Chart.prototype);\n GeoChart.prototype.constructor = GeoChart;\n\n GeoChart.prototype.__processData = function __processData() {\n return processSimple(this);\n };\n\n GeoChart.prototype.__chartName = function __chartName() {\n return \"GeoChart\";\n };\n\n return GeoChart;\n }(Chart);\n\n var ScatterChart = /*@__PURE__*/function (Chart) {\n function ScatterChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) ScatterChart.__proto__ = Chart;\n ScatterChart.prototype = Object.create(Chart && Chart.prototype);\n ScatterChart.prototype.constructor = ScatterChart;\n\n ScatterChart.prototype.__processData = function __processData() {\n return processSeries(this, \"number\");\n };\n\n ScatterChart.prototype.__chartName = function __chartName() {\n return \"ScatterChart\";\n };\n\n return ScatterChart;\n }(Chart);\n\n var BubbleChart = /*@__PURE__*/function (Chart) {\n function BubbleChart() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) BubbleChart.__proto__ = Chart;\n BubbleChart.prototype = Object.create(Chart && Chart.prototype);\n BubbleChart.prototype.constructor = BubbleChart;\n\n BubbleChart.prototype.__processData = function __processData() {\n return processSeries(this, \"bubble\");\n };\n\n BubbleChart.prototype.__chartName = function __chartName() {\n return \"BubbleChart\";\n };\n\n return BubbleChart;\n }(Chart);\n\n var Timeline = /*@__PURE__*/function (Chart) {\n function Timeline() {\n Chart.apply(this, arguments);\n }\n\n if (Chart) Timeline.__proto__ = Chart;\n Timeline.prototype = Object.create(Chart && Chart.prototype);\n Timeline.prototype.constructor = Timeline;\n\n Timeline.prototype.__processData = function __processData() {\n var i,\n data = this.rawData;\n\n for (i = 0; i < data.length; i++) {\n data[i][1] = toDate(data[i][1]);\n data[i][2] = toDate(data[i][2]);\n }\n\n return data;\n };\n\n Timeline.prototype.__chartName = function __chartName() {\n return \"Timeline\";\n };\n\n return Timeline;\n }(Chart);\n\n var Chartkick = {\n LineChart: LineChart,\n PieChart: PieChart,\n ColumnChart: ColumnChart,\n BarChart: BarChart,\n AreaChart: AreaChart,\n GeoChart: GeoChart,\n ScatterChart: ScatterChart,\n BubbleChart: BubbleChart,\n Timeline: Timeline,\n charts: {},\n configure: function configure(options) {\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n config[key] = options[key];\n }\n }\n },\n setDefaultOptions: function setDefaultOptions(opts) {\n Chartkick.options = opts;\n },\n eachChart: function eachChart(callback) {\n for (var chartId in Chartkick.charts) {\n if (Chartkick.charts.hasOwnProperty(chartId)) {\n callback(Chartkick.charts[chartId]);\n }\n }\n },\n destroyAll: function destroyAll() {\n for (var chartId in Chartkick.charts) {\n if (Chartkick.charts.hasOwnProperty(chartId)) {\n Chartkick.charts[chartId].destroy();\n delete Chartkick.charts[chartId];\n }\n }\n },\n config: config,\n options: {},\n adapters: adapters,\n addAdapter: addAdapter,\n use: function use(adapter) {\n addAdapter(adapter);\n return Chartkick;\n }\n }; // not ideal, but allows for simpler integration\n\n if (typeof window !== \"undefined\" && !window.Chartkick) {\n window.Chartkick = Chartkick; // clean up previous charts before Turbolinks loads new page\n\n document.addEventListener(\"turbolinks:before-render\", function () {\n Chartkick.destroyAll();\n });\n document.addEventListener(\"turbo:before-render\", function () {\n Chartkick.destroyAll();\n }); // use setTimeout so charting library can come later in same JS file\n\n setTimeout(function () {\n window.dispatchEvent(new Event(\"chartkick:load\"));\n }, 0);\n } // backwards compatibility for esm require\n\n\n Chartkick.default = Chartkick;\n return Chartkick;\n});","import CookiesEuBanner from 'cookies-eu-banner';\nimport 'cookies-eu-banner/css/cookies-eu-banner.default.css'\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new CookiesEuBanner(() => {\n console.log('Cookies EU Banner accepted');\n }, true)\n});\n","var map = {\n\t\"./arg\": 2,\n\t\"./arg.svg\": 2,\n\t\"./aus\": 3,\n\t\"./aus.svg\": 3,\n\t\"./aut\": 4,\n\t\"./aut.svg\": 4,\n\t\"./bel\": 5,\n\t\"./bel.svg\": 5,\n\t\"./bih\": 6,\n\t\"./bih.svg\": 6,\n\t\"./blr\": 7,\n\t\"./blr.svg\": 7,\n\t\"./bra\": 8,\n\t\"./bra.svg\": 8,\n\t\"./bul\": 9,\n\t\"./bul.svg\": 9,\n\t\"./can\": 10,\n\t\"./can.svg\": 10,\n\t\"./chn\": 11,\n\t\"./chn.svg\": 11,\n\t\"./cro\": 12,\n\t\"./cro.svg\": 12,\n\t\"./cyp\": 13,\n\t\"./cyp.svg\": 13,\n\t\"./cze\": 14,\n\t\"./cze.svg\": 14,\n\t\"./den\": 15,\n\t\"./den.svg\": 15,\n\t\"./esp\": 16,\n\t\"./esp.svg\": 16,\n\t\"./est\": 17,\n\t\"./est.svg\": 17,\n\t\"./fin\": 18,\n\t\"./fin.svg\": 18,\n\t\"./fra\": 19,\n\t\"./fra.svg\": 19,\n\t\"./gbr\": 20,\n\t\"./gbr.svg\": 20,\n\t\"./geo\": 21,\n\t\"./geo.svg\": 21,\n\t\"./ger\": 22,\n\t\"./ger.svg\": 22,\n\t\"./gre\": 23,\n\t\"./gre.svg\": 23,\n\t\"./hun\": 24,\n\t\"./hun.svg\": 24,\n\t\"./ina\": 25,\n\t\"./ina.svg\": 25,\n\t\"./ind\": 26,\n\t\"./ind.svg\": 26,\n\t\"./iri\": 27,\n\t\"./iri.svg\": 27,\n\t\"./irl\": 28,\n\t\"./irl.svg\": 28,\n\t\"./isr\": 29,\n\t\"./isr.svg\": 29,\n\t\"./ita\": 30,\n\t\"./ita.svg\": 30,\n\t\"./jor\": 31,\n\t\"./jor.svg\": 31,\n\t\"./jpn\": 32,\n\t\"./jpn.svg\": 32,\n\t\"./kaz\": 33,\n\t\"./kaz.svg\": 33,\n\t\"./kgz\": 34,\n\t\"./kgz.svg\": 34,\n\t\"./lat\": 35,\n\t\"./lat.svg\": 35,\n\t\"./lbn\": 36,\n\t\"./lbn.svg\": 36,\n\t\"./ltu\": 37,\n\t\"./ltu.svg\": 37,\n\t\"./lux\": 38,\n\t\"./lux.svg\": 38,\n\t\"./mda\": 39,\n\t\"./mda.svg\": 39,\n\t\"./mex\": 40,\n\t\"./mex.svg\": 40,\n\t\"./mkd\": 41,\n\t\"./mkd.svg\": 41,\n\t\"./mri\": 42,\n\t\"./mri.svg\": 42,\n\t\"./nam\": 43,\n\t\"./nam.svg\": 43,\n\t\"./ned\": 44,\n\t\"./ned.svg\": 44,\n\t\"./nil\": 45,\n\t\"./nil.svg\": 45,\n\t\"./nor\": 46,\n\t\"./nor.svg\": 46,\n\t\"./nzl\": 47,\n\t\"./nzl.svg\": 47,\n\t\"./per\": 48,\n\t\"./per.svg\": 48,\n\t\"./pol\": 49,\n\t\"./pol.svg\": 49,\n\t\"./por\": 50,\n\t\"./por.svg\": 50,\n\t\"./ri-logo\": 51,\n\t\"./ri-logo.png\": 51,\n\t\"./rou\": 52,\n\t\"./rou.svg\": 52,\n\t\"./rsa\": 53,\n\t\"./rsa.svg\": 53,\n\t\"./rus\": 54,\n\t\"./rus.svg\": 54,\n\t\"./ser\": 55,\n\t\"./ser.svg\": 55,\n\t\"./slo\": 56,\n\t\"./slo.svg\": 56,\n\t\"./srb\": 57,\n\t\"./srb.svg\": 57,\n\t\"./sui\": 58,\n\t\"./sui.svg\": 58,\n\t\"./svk\": 59,\n\t\"./svk.svg\": 59,\n\t\"./swe\": 60,\n\t\"./swe.svg\": 60,\n\t\"./syr\": 61,\n\t\"./syr.svg\": 61,\n\t\"./tha\": 62,\n\t\"./tha.svg\": 62,\n\t\"./tpe\": 63,\n\t\"./tpe.svg\": 63,\n\t\"./tur\": 64,\n\t\"./tur.svg\": 64,\n\t\"./ukr\": 65,\n\t\"./ukr.svg\": 65,\n\t\"./usa\": 66,\n\t\"./usa.svg\": 66,\n\t\"./ven\": 67,\n\t\"./ven.svg\": 67,\n\t\"./vie\": 68,\n\t\"./vie.svg\": 68\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 78;"],"sourceRoot":""}