{"version":3,"sources":["webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/chart.js/src/plugins/plugin.legend.js","webpack:///./node_modules/chart.js/src/helpers/helpers.options.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/chart.js/src/core/core.animation.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/chart.js/src/core/core.defaults.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/chart.js/src/controllers/controller.line.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/chart.js/src/platforms/platform.basic.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///./node_modules/vue-chartjs/es/index.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/chart.js/src/core/core.datasetController.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/chart.js/src/core/core.element.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/chart.js/src/charts/Chart.Bar.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/chart.js/src/elements/element.point.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/chart.js/src/charts/Chart.Bubble.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/chart.js/src/scales/scale.time.js","webpack:///./node_modules/chart.js/src/helpers/index.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/chart.js/src/helpers/helpers.canvas.js","webpack:///./node_modules/chart.js/src/charts/Chart.Scatter.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/chart.js/src/charts/Chart.Doughnut.js","webpack:///./node_modules/chart.js/src/helpers/helpers.core.js","webpack:///./node_modules/color-name/index.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/chart.js/src/elements/element.line.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/chart.js/src/core/core.plugins.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/chart.js/src/chart.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/chart.js/src/controllers/controller.doughnut.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/chart.js/src/elements/element.arc.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/chart.js/src/scales/scale.linear.js","webpack:///./node_modules/chart.js/src/scales/scale.logarithmic.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/chart.js/src/controllers/controller.bar.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/chart.js/src/controllers/controller.radar.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/chart.js/src/controllers/controller.bubble.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/chart.js/src/core/core.scale.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/chart.js/src/core/core.animations.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/chart.js/src/core/core.layouts.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/chart.js/src/core/core.ticks.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/chart.js/src/platforms/platform.js","webpack:///./node_modules/chart.js/src/charts/Chart.Radar.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/chart.js/src/plugins/index.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/chartjs-color-string/color-string.js","webpack:///./node_modules/chart.js/src/plugins/plugin.title.js","webpack:///./node_modules/chart.js/src/core/core.interaction.js","webpack:///./node_modules/chart.js/src/core/core.helpers.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/chart.js/src/scales/scale.linearbase.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/chart.js/src/charts/Chart.PolarArea.js","webpack:///./node_modules/chart.js/src/platforms/platform.dom.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/chart.js/src/core/core.scaleService.js","webpack:///./node_modules/color-convert/conversions.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/color-convert/index.js","webpack:///./node_modules/chart.js/src/helpers/helpers.easing.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/chart.js/src/plugins/plugin.filler.js","webpack:///./node_modules/chart.js/src/elements/index.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/chart.js/src/core/core.tooltip.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/chart.js/src/core/core.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/chart.js/src/elements/element.rectangle.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/chart.js/src/controllers/controller.scatter.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/chart.js/src/controllers/controller.polarArea.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/chart.js/src/core/core.controller.js","webpack:///./node_modules/chartjs-color/index.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/chart.js/src/charts/Chart.Line.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/chart.js/src/scales/scale.category.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/chart.js/src/scales/scale.radialLinear.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/se.js"],"names":["global","factory","__webpack_require__","this","moment","uzLatn","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","week","dow","doy","defaults","Element","helpers","layouts","noop","getBoxWidth","labelOpts","fontSize","usePointStyle","Math","SQRT2","boxWidth","_set","legend","display","position","fullWidth","reverse","weight","onClick","e","legendItem","index","datasetIndex","ci","chart","meta","getDatasetMeta","hidden","data","datasets","update","onHover","labels","padding","generateLabels","isArray","map","dataset","i","text","label","fillStyle","backgroundColor","isDatasetVisible","lineCap","borderCapStyle","lineDash","borderDash","lineDashOffset","borderDashOffset","lineJoin","borderJoinStyle","lineWidth","borderWidth","strokeStyle","borderColor","pointStyle","legendCallback","push","id","length","join","Legend","extend","initialize","config","legendHitBoxes","doughnutMode","beforeUpdate","maxWidth","maxHeight","margins","me","beforeSetDimensions","setDimensions","afterSetDimensions","beforeBuildLabels","buildLabels","afterBuildLabels","beforeFit","fit","afterFit","afterUpdate","minSize","isHorizontal","width","left","right","height","top","bottom","paddingLeft","paddingTop","paddingRight","paddingBottom","options","legendItems","callback","filter","item","opts","ctx","globalDefault","valueOrDefault","defaultFontSize","fontStyle","defaultFontStyle","fontFamily","defaultFontFamily","labelFont","fontString","hitboxes","font","lineWidths","totalHeight","textAlign","textBaseline","each","measureText","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","max","draw","lineDefault","elements","line","legendWidth","cursor","fontColor","defaultFontColor","drawLegendBox","x","isNaN","save","defaultColor","isLineWidthZero","setLineDash","radius","offSet","centerX","centerY","canvas","drawPoint","strokeRect","fillRect","restore","fillText","textWidth","halfFontSize","xLeft","yMiddle","beginPath","moveTo","lineTo","stroke","handleEvent","type","changed","lh","hitBox","call","native","createNewLegendAndAttach","legendOpts","configure","addBox","module","exports","_element","beforeInit","mergeIf","removeBox","afterEvent","toLineHeight","value","size","matches","match","toPadding","t","r","b","l","isObject","resolve","inputs","context","ilen","undefined","ml","monthsParseExact","meridiemParse","meridiemHour","hour","meridiem","minute","isLower","currentStep","numSteps","easing","render","onAnimationProgress","onAnimationComplete","Object","defineProperty","prototype","get","set","cv","output","affix","exec","dayOfMonthOrdinalParse","ordinal","plural","n","translate","number","withoutSuffix","key","isFuture","result","is","fo","ja","ll","lll","llll","isPM","input","now","period","scope","values","merge","monthsShortDot","monthsParse","monthsRegex","esDo","format","test","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","hours","arMa","processRelativeTime","gomLatn","frCh","enAu","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","tr","a","c","da","tlPh","eu","th","translator","words","correctGrammaticalCase","wordKey","srCyrl","day","lastWeekDays","showLines","spanGaps","hover","mode","scales","xAxes","yAxes","Chart","lineEnabled","showLine","controllers","DatasetController","datasetElementType","Line","dataElementType","Point","reset","custom","getMeta","points","lineElementOptions","scale","getScaleForId","yAxisID","getDataset","tension","lineTension","_scale","_datasetIndex","_children","_model","fill","steppedLine","stepped","cubicInterpolationMode","pivot","updateElement","updateBezierControlPoints","getPointBackgroundColor","point","pointBackgroundColor","valueAtIndexOrDefault","getPointBorderColor","pointBorderColor","getPointBorderWidth","pointBorderWidth","getPointRotation","pointRotation","rotation","yScale","xScale","xAxisID","pointOptions","pointRadius","hitRadius","pointHitRadius","getPixelForValue","NaN","getBasePixel","calculatePointY","_xScale","_yScale","_index","skip","ds","dsMeta","sumPos","sumNeg","stacked","stackedRightValue","Number","getRightValue","rightValue","model","controlPoints","area","chartArea","capControlPoint","pt","min","splineCurveMonotone","splineCurve","previousItem","nextItem","controlPointPreviousX","previous","controlPointPreviousY","controlPointNextX","next","controlPointNextY","capBezierPoints","halfBorderWidth","clipArea","unclipArea","setHoverStyle","element","$previousStyle","hoverBackgroundColor","pointHoverBackgroundColor","getHoverColor","hoverBorderColor","pointHoverBorderColor","hoverBorderWidth","pointHoverBorderWidth","hoverRadius","pointHoverRadius","mt","symbolMap","0","pluralForm","plurals","pluralize","u","string","f","str","replace","arLy","preparse","postformat","acquireContext","getContext","word","num","forms","relativeTimeWithPlural","be","standalone","isFormat","dataHandler","newData","oldData","$data","_chart","newDatasetLabels","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","forEach","oldDatasetKeys","keys","newDatasetKeys","deletionKeys","indexOf","attribute","deletionKey","hasOwnProperty","$emit","xLabels","yLabels","destroy","renderChart","chartData","reactiveData","watch","reactiveProp","props","required","mixins","generateChart","chartId","chartType","createElement","style","styles","class","cssClasses","attrs","ref","default","String","plugins","Array","_plugins","methods","addPlugin","plugin","generateLegend","chart_default","$refs","beforeDestroy","Bar","Pie","__webpack_exports__","ka","ko","token","isUpper","bs","units","translateSeconds","translateSingular","special","lt","arrayEvents","listenArrayEvents","array","listener","_chartjs","listeners","configurable","enumerable","method","charAt","toUpperCase","slice","base","args","arguments","res","apply","object","unlistenArrayEvents","stub","splice","linkScales","addElements","updateIndex","scaleID","_data","createMetaDataset","createMetaData","metaData","addElementAndReset","buildOrUpdateElements","resyncElements","transition","easingValue","removeHoverStyle","numMeta","numData","insertElements","start","count","onDataPush","onDataPop","pop","onDataShift","shift","onDataSplice","onDataUnshift","inherits","vi","minutes","color","interpolate","view","ease","actual","origin","target","c0","c1","valid","mix","rgbString","isFinite","configuration","_view","clone","_start","tooltipPosition","hasValue","isNumber","af","uz","enCa","xRange","mouseX","vm","abs","yRange","mouseY","inRange","pow","inLabelRange","inXRange","inYRange","getCenterPoint","getArea","PI","errMargin","enGb","numberMap","१","२","३","४","५","६","७","८","९","०","relativeTimeMr","mr","ne","12","13","40","tg","cs","_monthsParse","RegExp","_shortMonthsParse","_longMonthsParse","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","ta","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","kn","Bubble","arKw","processFutureTime","substr","eifelerRegelAppliesToNumber","processPastTime","parseInt","lastDigit","firstDigit","lb","window","Scale","scaleService","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","quarter","year","UNITS","sorter","arrayUnique","items","hash","out","buildLookupTable","timestamps","distribution","time","pos","prev","curr","table","round","lookup","mid","i0","i1","lo","hi","skey","sval","tkey","range","span","ratio","offset","momentify","parser","isValid","parse","isNullOrUndef","startOf","valueOf","determineStepSize","unit","capacity","factor","interval","milliseconds","ceil","determineUnitForAutoTicks","minUnit","determineUnitForFormatting","ticks","duration","diff","as","determineMajorUnit","generate","timeOpts","minor","major","stepSize","unitStepSize","weekday","isoWeekday","majorTicksEnabled","enabled","first","last","add","computeOffsets","upper","lower","ticksFromTimestamps","majorUnit","determineLabelFormat","momentDate","hasTime","defaultConfig","bounds","displayFormat","displayFormats","autoSkip","source","TimeScale","Error","mergeTicksOptions","console","warn","rawValue","determineDataLimits","j","jlen","timestamp","sort","endOf","_horizontal","_table","_timestamps","buildTicks","getLabelCapacity","_unit","_majorUnit","_offsets","_labelFormat","getLabelForIndex","tooltipFormat","tickFormatFunction","tick","formatOverride","formats","minorFormat","majorFormat","majorTime","majorTickOpts","tickOpts","formatter","userCallback","convertTicksToLabels","getPixelForOffset","getPixelForTick","getTicks","getValueForPixel","pixel","getLabelWidth","ticksOpts","tickLabelWidth","angle","toRadians","maxRotation","cosRotation","cos","sinRotation","sin","tickFontSize","exampleTime","exampleLabel","innerWidth","floor","registerScaleType","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","webpackContext","req","webpackContextResolve","code","az","zhHk","hm","clear","clearRect","roundedRect","epsilon","arcTo","closePath","rect","edgeLength","xOffset","yOffset","toString","drawImage","rotate","arc","sqrt","leftX","topY","sideSize","clip","flip","bezierCurveTo","drawRoundedRectangle","Scatter","hr","Doughnut","uid","defaultValue","fn","thisArg","loopable","len","arrayEquals","a0","a1","v0","v1","klen","k","_merger","tval","_mergerIf","sources","merger","setFn","extensions","ChartElement","constructor","Surrogate","__super__","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","days","ur","globalDefaults","current","currentVM","globalOptionLineElements","lastDrawnIndex","_loop","esUs","_cacheId","register","p","concat","unregister","idx","getAll","notify","hook","descriptor","params","descriptors","cache","$plugins","_invalidate","tet","dv","weekEndings","hu","toLowerCase","Animation","animationService","Interaction","platform","Ticks","Tooltip","Title","title","pluginService","PluginBase","canvasHelpers","layoutService","zhCn","te","animation","animateRotate","animateScale","arcOpts","bw","cutoutPercentage","circumference","tooltips","callbacks","tooltipItem","dataLabel","doughnut","pie","Arc","getRingIndex","ringIndex","availableWidth","availableHeight","startAngle","endAngle","end","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","outerRadius","innerRadius","radiusLength","getVisibleDatasetCount","offsetX","offsetY","total","calculateTotal","animationOpts","calculateCircumference","elementOpts","arcs","hoverWidth","sv","chartX","chartY","pointRelativePosition","getAngleFromPoint","distance","betweenAngles","withinRadius","halfAngle","halfRadius","centreAngle","rangeFromCentre","sA","eA","ugCn","formatters","linear","LinearScale","LinearScaleBase","DEFAULT_MIN","DEFAULT_MAX","IDMatches","hasStacks","stack","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","handleTickRangeOptions","getTickLimit","maxTicks","maxTicksLimit","handleDirectionalChanges","innerDimension","ticksAsNumbers","generateTicks","generationOptions","dataRange","exp","significand","tickVal","log10","endExp","endSignificand","minNotZero","precision","lastTick","logarithmic","LogarithmicScale","tickValues","_getFirstTickValue","sign","firstTickValue","msMy","computeMinSampleSize","pixels","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","axis","rectangle","borderSkipped","yLabel","datasetLabel","xLabel","bar","Rectangle","rects","_ruler","getRuler","rectangleOptions","updateElementGeometry","vscale","getValueScale","horizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","getValueScaleId","getIndexScaleId","getIndexScale","_getStacks","stacks","getStackCount","getStackIndex","name","imeta","ivalue","controller","stackIndex","maxBarThickness","Infinity","horizontalBar","eo","sd","radar","pointElementOptions","pointPosition","getPointPositionForValue","xCenter","yCenter","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","substring","br","mi","mk","last2Digits","nb","kk","arTn","dataPoint","bubble","_resolveElementOptions","dsIndex","getPixelForDecimal","_options","dataIndex","it","enNz","monthsShortWithDots","monthsShortWithoutDots","fy","labelsFromTicks","getLineValue","lineValue","computeTextSize","longestText","parseFontOptions","family","parseLineHeight","lineHeight","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","beginAtZero","minRotation","mirror","autoSkipPadding","labelOffset","getPadding","_ticks","longestTextCache","beforeDataLimits","afterDataLimits","beforeBuildTicks","afterBuildTicks","beforeTickToLabelConversion","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","tickFont","labelRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","isFullWidth","scaleLabelLineHeight","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","numberOfLabelLines","lineSpace","tickPadding","longestLabelWidth","labelHeight","firstLabelWidth","lastLabelWidth","handleMargins","finalVal","innerHeight","decimal","valueOffset","getBaseValue","_autoSkip","skipRatio","shouldSkip","optionTicks","tickCount","labelRotationRadians","longestRotatedLabel","optionMajorTicks","isRotated","tickFontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","scaleLabelFont","itemsToDraw","axisWidth","xTickStart","xTickEnd","yTickStart","yTickEnd","lineColor","tx1","ty1","tx2","ty2","x1","y1","x2","y2","labelX","labelY","zeroLineIndex","labelYOffset","xLineValue","aliasPixel","labelXOffset","isLeft","yLineValue","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","lineCount","scaleLabelX","scaleLabelY","halfLineHeight","enIl","sw","onProgress","onComplete","frameDuration","animations","dropFrames","request","addAnimation","lazy","animating","requestAnimationFrame","cancelAnimation","findIndex","requestAnimFrame","startDigest","startTime","Date","framesToDrop","advance","endTime","sk","filterByPosition","where","v","sortByWeight","_tmpIndex_","boxes","layoutItem","prop","layoutOptions","layout","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","chartWidth","chartHeight","chartAreaWidth","chartAreaHeight","verticalBoxWidth","horizontalBoxHeight","maxChartAreaWidth","maxChartAreaHeight","minBoxSizes","getMinimumBoxSize","maxHorizontalLeftPadding","maxHorizontalRightPadding","maxVerticalTopPadding","maxVerticalBottomPadding","horizontalBox","boxPadding","verticalBox","totalLeftBoxesWidth","totalRightBoxesWidth","totalTopBoxesHeight","totalBottomBoxesHeight","fitBox","box","finalFitVerticalBox","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBoxSize","findNextWhere","minBox","scaleMargin","yo","sl","numbersPast","numbersFuture","verbalNumber","fi","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","arSa","tickValue","delta","logDelta","tickString","maxTick","logTick","toExponential","numDecimal","toFixed","remain","bg","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","my","gl","basic","dom","implementation","_enabled","releaseContext","addEventListener","removeEventListener","Radar","es","isFunction","Function","el","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsNominative","monthsSubjective","pl","filler","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","fa","ar","১","২","৩","৪","৫","৬","৭","৮","৯","০","bn","zhTw","ru","mn","ky","separator","ro","cy","colorNames","getRgba","abbr","hex","rgba","per","keyword","rgb","parseFloat","getHsla","hsl","alpha","getHwb","hwb","w","getRgb","getHsl","hsla","getAlpha","vals","hexString","hexDouble","rgbaString","percentString","percentaString","g","hslString","hslaString","hwbString","reverseNames","textSize","titleX","titleY","titleFont","createNewTitleBlockAndAttach","titleOpts","titleBlock","getRelativePosition","parseVisibleItems","handler","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","modes","single","x-axis","nearest","sizeA","sizeB","ret","intersectsItem","parseMaxStyle","styleValue","node","parentProperty","valueInPixels","parentNode","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","document","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","configMerge","scaleMerge","getScaleDefaults","slen","collection","filterCallback","filtered","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","reduce","NEGATIVE_INFINITY","exponent","log","LOG10E","powerOf10","isPowerOf10","degrees","toDegrees","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","distanceBetweenPoints","pixelWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","getStyle","currentDevicePixelRatio","getConstraintWidth","getConstraintHeight","_calculatePadding","container","parentDimension","parent","host","getMaximumWidth","clientWidth","cw","getMaximumHeight","clientHeight","ch","property","currentStyle","getPropertyValue","retinaScale","forceRatio","pixelRatio","devicePixelRatio","pixelSize","arrayOfThings","gc","garbageCollect","longest","thing","nestedThing","gcLen","numberOfLines","CanvasGradient","error","colorValue","CanvasPattern","saturate","darken","fr","arDz","spacing","niceRange","niceMin","niceMax","numSpaces","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","numericGeneratorOptions","fixedStepSize","bm","PolarArea","EXPANDO_KEY","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","passive","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createResizer","resizer","cls","maxSize","cssText","className","innerHTML","expand","childNodes","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","css","_style","setAttribute","getElementsByTagName","appendChild","createTextNode","keyframes","getElementById","removeAttribute","proxies","addEvent","removeEvent","weekdaysCaseReplace","nominative","accusative","genitive","nounCase","processHoursFunction","uk","deAt","de","tzmLatn","jv","constructors","scaleConstructor","scaleDefaults","getScaleConstructor","updateScaleDefaults","additions","addScalesToLayout","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","reverseKeywords","rgb2xyz","z","rgb2lab","xyz","rgb2lch","lab2lch","hsl2rgb","t1","t2","t3","val","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv","q","hsv2hsl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","wh","bl","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab","lab2rgb","lch2lab","lch","lch2xyz","lch2rgb","keyword2rgb","cssKeywords","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","nn","relativeTimeWithSingular","relativeSeconds","lv","conversions","convert","Converter","func","arg","pair","from","to","convs","routeSpace","space","getValues","setValues","fspace","effects","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","deCh","propagate","mappers","visible","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","getBasePosition","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","afterDatasetsUpdate","$filler","beforeDatasetDraw","tzm","hookCallback","some","hooks","setHookCallback","isObjectEmpty","obj","getOwnPropertyNames","isUndefined","isDate","arr","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","defaultLongDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","lastIndex","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","date","daysInMonth","stringGet","stringSet","prioritized","mod","modMonth","o","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","_months","defaultLocaleMonthsShort","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","localeWeekdays","_weekdays","defaultLocaleWeekdaysShort","localeWeekdaysShort","_weekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","localeMeridiem","globalLocale","getSetHour","baseConfig","locales","localeFamilies","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","trim","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","_milliseconds","_days","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","direction","dur","tmp","isAdding","invalid","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","zone","prefix","datetime","suffix","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","isoWeekYear","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","abs$1","toISOString$1","Y","D","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","he","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","cornerRadius","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","tp","mergeOpacity","colorString","opacity","pushOrConcat","toPush","splitNewlines","createTooltipItem","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getBeforeAfterBodyLines","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","drawBody","xLinePadding","fillLineOfText","drawColorBoxes","textColor","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","getElementsAtEventForMode","sq","responsive","responsiveAnimationDuration","maintainAspectRatio","events","animationDuration","construct","sr","tzl","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","tlh","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","bo","ptBr","hyAm","ca","isVertical","getBarBounds","halfWidth","halfHeight","signX","signY","barSize","halfStroke","borderLeft","borderRight","borderTop","borderBottom","corners","borders","startCorner","cornerAt","corner","frCa","nlBe","scatter","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","gu","enIe","angleLines","circular","pointLabels","polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","១","២","៣","៤","៥","៦","៧","៨","៩","០","km","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","positionIsHorizontal","types","instances","_bufferedRender","bindEvents","resize","initToolTip","stop","silent","newWidth","newHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","hoverOptions","Controller","Color","lightness","whiteness","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","hue","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","desaturate","whiten","blacken","greyscale","clearer","opaquer","mixinColor","color1","w1","w2","spaces","maxes","capped","chans","sname","svalues","et","si","DatasetScale","getLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","paIn","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getPointLabelFontOptions","pointLabelOptions","measureLabelSize","determineLimits","fitWithPointLabels","plFont","largestPossibleRadius","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","drawingArea","setCenterPoint","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","angleLineOpts","pointLabelOpts","outerDistance","outerPosition","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","LinearRadialScale","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","tickFontStyle","tickFontFamily","tickLabelFont","yCenterOffset","gd","nl","xPseudo","se"],"mappings":"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AA,OACAC,UAAA,QACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,QACAC,UAAA,QACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,aAAA,OACAC,UAAA,OACAC,aAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,QACAC,UAAA,QACAC,OAAA,OACAC,UAAA,OACAC,aAAA,OACAC,gBAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,UAAA,OACAC,aAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,aAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,aAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,UAAA,OACAC,aAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,aAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UAAA,OACAC,OAAA,OACAC,UA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","file":"js/chunk-4170a5bc.91a76a7a.js","sourcesContent":["//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\nvar layouts = require('../core/core.layouts');\n\nvar noop = helpers.noop;\n\ndefaults._set('global', {\n\tlegend: {\n\t\tdisplay: true,\n\t\tposition: 'top',\n\t\tfullWidth: true,\n\t\treverse: false,\n\t\tweight: 1000,\n\n\t\t// a callback that will handle\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.datasetIndex;\n\t\t\tvar ci = this.chart;\n\t\t\tvar meta = ci.getDatasetMeta(index);\n\n\t\t\t// See controller.isDatasetVisible comment\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n\t\t\t// We hid a dataset ... rerender the chart\n\t\t\tci.update();\n\t\t},\n\n\t\tonHover: null,\n\n\t\tlabels: {\n\t\t\tboxWidth: 40,\n\t\t\tpadding: 10,\n\t\t\t// Generates labels shown in the legend\n\t\t\t// Valid properties to return:\n\t\t\t// text : text to display\n\t\t\t// fillStyle : fill of coloured box\n\t\t\t// strokeStyle: stroke of coloured box\n\t\t\t// hidden : if this legend item refers to a hidden item\n\t\t\t// lineCap : cap style for line\n\t\t\t// lineDash\n\t\t\t// lineDashOffset :\n\t\t\t// lineJoin :\n\t\t\t// lineWidth :\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\treturn helpers.isArray(data.datasets) ? data.datasets.map(function(dataset, i) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: dataset.label,\n\t\t\t\t\t\tfillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(i),\n\t\t\t\t\t\tlineCap: dataset.borderCapStyle,\n\t\t\t\t\t\tlineDash: dataset.borderDash,\n\t\t\t\t\t\tlineDashOffset: dataset.borderDashOffset,\n\t\t\t\t\t\tlineJoin: dataset.borderJoinStyle,\n\t\t\t\t\t\tlineWidth: dataset.borderWidth,\n\t\t\t\t\t\tstrokeStyle: dataset.borderColor,\n\t\t\t\t\t\tpointStyle: dataset.pointStyle,\n\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\n\t\t\t\t\t\tdatasetIndex: i\n\t\t\t\t\t};\n\t\t\t\t}, this) : [];\n\t\t\t}\n\t\t}\n\t},\n\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('');\n\t\treturn text.join('');\n\t}\n});\n\n/**\n * Helper function to get the box width based on the usePointStyle option\n * @param labelopts {Object} the label options on the legend\n * @param fontSize {Number} the label font size\n * @return {Number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle ?\n\t\tfontSize * Math.SQRT2 :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = Element.extend({\n\n\tinitialize: function(config) {\n\t\thelpers.extend(this, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tthis.legendHitBoxes = [];\n\n\t\t// Are we in doughnut mode which has a different data type\n\t\tthis.doughnutMode = false;\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\t// Any function defined here is inherited by all legend types.\n\t// Any function can be extended by the legend type\n\n\tbeforeUpdate: noop,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\t},\n\tafterUpdate: noop,\n\n\t//\n\n\tbeforeSetDimensions: noop,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop,\n\n\t//\n\n\tbeforeBuildLabels: noop,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n\t\tif (labelOpts.filter) {\n\t\t\tlegendItems = legendItems.filter(function(item) {\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\n\t\t\t});\n\t\t}\n\n\t\tif (me.options.reverse) {\n\t\t\tlegendItems.reverse();\n\t\t}\n\n\t\tme.legendItems = legendItems;\n\t},\n\tafterBuildLabels: noop,\n\n\t//\n\n\tbeforeFit: noop,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar display = opts.display;\n\n\t\tvar ctx = me.ctx;\n\n\t\tvar globalDefault = defaults.global;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n\t\t// Reset hit boxes\n\t\tvar hitboxes = me.legendHitBoxes = [];\n\n\t\tvar minSize = me.minSize;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = display ? 10 : 0;\n\t\t} else {\n\t\t\tminSize.width = display ? 10 : 0;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Increase sizes here\n\t\tif (display) {\n\t\t\tctx.font = labelFont;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// Labels\n\n\t\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n\t\t\t\tvar lineWidths = me.lineWidths = [0];\n\t\t\t\tvar totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\n\n\t\t\t\tctx.textAlign = 'left';\n\t\t\t\tctx.textBaseline = 'top';\n\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t\tif (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\n\t\t\t\t\t\ttotalHeight += fontSize + (labelOpts.padding);\n\t\t\t\t\t\tlineWidths[lineWidths.length] = me.left;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\t\thitboxes[i] = {\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: fontSize\n\t\t\t\t\t};\n\n\t\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n\t\t\t\t});\n\n\t\t\t\tminSize.height += totalHeight;\n\n\t\t\t} else {\n\t\t\t\tvar vPadding = labelOpts.padding;\n\t\t\t\tvar columnWidths = me.columnWidths = [];\n\t\t\t\tvar totalWidth = labelOpts.padding;\n\t\t\t\tvar currentColWidth = 0;\n\t\t\t\tvar currentColHeight = 0;\n\t\t\t\tvar itemHeight = fontSize + vPadding;\n\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t\t// If too tall, go to new column\n\t\t\t\t\tif (currentColHeight + itemHeight > minSize.height) {\n\t\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\n\t\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\n\n\t\t\t\t\t\tcurrentColWidth = 0;\n\t\t\t\t\t\tcurrentColHeight = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get max width\n\t\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\n\t\t\t\t\tcurrentColHeight += itemHeight;\n\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\t\thitboxes[i] = {\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\t\theight: fontSize\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\ttotalWidth += currentColWidth;\n\t\t\t\tcolumnWidths.push(currentColWidth);\n\t\t\t\tminSize.width += totalWidth;\n\t\t\t}\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\tafterFit: noop,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\n\t// Actually draw the legend on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar globalDefault = defaults.global;\n\t\tvar lineDefault = globalDefault.elements.line;\n\t\tvar legendWidth = me.width;\n\t\tvar lineWidths = me.lineWidths;\n\n\t\tif (opts.display) {\n\t\t\tvar ctx = me.ctx;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\t\tvar fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\n\t\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n\t\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n\t\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n\t\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\t\t\tvar cursor;\n\n\t\t\t// Canvas setup\n\t\t\tctx.textAlign = 'left';\n\t\t\tctx.textBaseline = 'middle';\n\t\t\tctx.lineWidth = 0.5;\n\t\t\tctx.strokeStyle = fontColor; // for strikethrough effect\n\t\t\tctx.fillStyle = fontColor; // render in correct colour\n\t\t\tctx.font = labelFont;\n\n\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\tvar hitboxes = me.legendHitBoxes;\n\n\t\t\t// current position\n\t\t\tvar drawLegendBox = function(x, y, legendItem) {\n\t\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Set the ctx for the box\n\t\t\t\tctx.save();\n\n\t\t\t\tctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\n\t\t\t\tctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\t\tctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\t\tctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\t\tctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\t\tctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\n\t\t\t\tvar isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\n\n\t\t\t\tif (ctx.setLineDash) {\n\t\t\t\t\t// IE 9 and 10 do not support line dash\n\t\t\t\t\tctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\n\t\t\t\t}\n\n\t\t\t\tif (opts.labels && opts.labels.usePointStyle) {\n\t\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\n\t\t\t\t\t// x and y to be center of figure (instead of top left)\n\t\t\t\t\tvar radius = fontSize * Math.SQRT2 / 2;\n\t\t\t\t\tvar offSet = radius / Math.SQRT2;\n\t\t\t\t\tvar centerX = x + offSet;\n\t\t\t\t\tvar centerY = y + offSet;\n\n\t\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\t\thelpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\t// Draw box as legend symbol\n\t\t\t\t\tif (!isLineWidthZero) {\n\t\t\t\t\t\tctx.strokeRect(x, y, boxWidth, fontSize);\n\t\t\t\t\t}\n\t\t\t\t\tctx.fillRect(x, y, boxWidth, fontSize);\n\t\t\t\t}\n\n\t\t\t\tctx.restore();\n\t\t\t};\n\t\t\tvar fillText = function(x, y, legendItem, textWidth) {\n\t\t\t\tvar halfFontSize = fontSize / 2;\n\t\t\t\tvar xLeft = boxWidth + halfFontSize + x;\n\t\t\t\tvar yMiddle = y + halfFontSize;\n\n\t\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\n\n\t\t\t\tif (legendItem.hidden) {\n\t\t\t\t\t// Strikethrough the text if hidden\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.lineWidth = 2;\n\t\t\t\t\tctx.moveTo(xLeft, yMiddle);\n\t\t\t\t\tctx.lineTo(xLeft + textWidth, yMiddle);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Horizontal\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tif (isHorizontal) {\n\t\t\t\tcursor = {\n\t\t\t\t\tx: me.left + ((legendWidth - lineWidths[0]) / 2),\n\t\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\t\tline: 0\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tcursor = {\n\t\t\t\t\tx: me.left + labelOpts.padding,\n\t\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\t\tline: 0\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar itemHeight = fontSize + labelOpts.padding;\n\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\n\t\t\t\tvar x = cursor.x;\n\t\t\t\tvar y = cursor.y;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tif (x + width >= legendWidth) {\n\t\t\t\t\t\ty = cursor.y += itemHeight;\n\t\t\t\t\t\tcursor.line++;\n\t\t\t\t\t\tx = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\n\t\t\t\t\t}\n\t\t\t\t} else if (y + itemHeight > me.bottom) {\n\t\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n\t\t\t\t\ty = cursor.y = me.top + labelOpts.padding;\n\t\t\t\t\tcursor.line++;\n\t\t\t\t}\n\n\t\t\t\tdrawLegendBox(x, y, legendItem);\n\n\t\t\t\thitboxes[i].left = x;\n\t\t\t\thitboxes[i].top = y;\n\n\t\t\t\t// Fill the actual label\n\t\t\t\tfillText(x, y, legendItem, textWidth);\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tcursor.x += width + (labelOpts.padding);\n\t\t\t\t} else {\n\t\t\t\t\tcursor.y += itemHeight;\n\t\t\t\t}\n\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @return {Boolean} true if a change occured\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\n\t\tvar changed = false;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (type === 'click') {\n\t\t\tif (!opts.onClick) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chart event already has relative position in it\n\t\tvar x = e.x;\n\t\tvar y = e.y;\n\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n\t\t\t// See if we are touching one of the dataset boxes\n\t\t\tvar lh = me.legendHitBoxes;\n\t\t\tfor (var i = 0; i < lh.length; ++i) {\n\t\t\t\tvar hitBox = lh[i];\n\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n\t\t\t\t\t// Touching an element\n\t\t\t\t\tif (type === 'click') {\n\t\t\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\t\t\topts.onClick.call(me, e.native, me.legendItems[i]);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (type === 'mousemove') {\n\t\t\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\t\t\topts.onHover.call(me, e.native, me.legendItems[i]);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\nfunction createNewLegendAndAttach(chart, legendOpts) {\n\tvar legend = new Legend({\n\t\tctx: chart.ctx,\n\t\toptions: legendOpts,\n\t\tchart: chart\n\t});\n\n\tlayouts.configure(chart, legend, legendOpts);\n\tlayouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nmodule.exports = {\n\tid: 'legend',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Legend,\n\n\tbeforeInit: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\n\t\tif (legendOpts) {\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\t\tvar legend = chart.legend;\n\n\t\tif (legendOpts) {\n\t\t\thelpers.mergeIf(legendOpts, defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tlayouts.configure(chart, legend, legendOpts);\n\t\t\t\tlegend.options = legendOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t\t}\n\t\t} else if (legend) {\n\t\t\tlayouts.removeBox(chart, legend);\n\t\t\tdelete chart.legend;\n\t\t}\n\t},\n\n\tafterEvent: function(chart, e) {\n\t\tvar legend = chart.legend;\n\t\tif (legend) {\n\t\t\tlegend.handleEvent(e);\n\t\t}\n\t}\n};\n","'use strict';\n\nvar helpers = require('./helpers.core');\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nmodule.exports = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {Number|String} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {Number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {Number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {Number|Object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {Object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array[]} inputs - An array of values, falling back to the last value.\n\t * @param {Object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {Number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index) {\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t}\n\t\t\tif (index !== undefined && helpers.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -നു',\n LTS : 'A h:mm:ss -നു',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -നു',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar : {\n sameDay : '[ഇന്ന്] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇന്നലെ] LT',\n lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s കഴിഞ്ഞ്',\n past : '%s മുൻപ്',\n s : 'അൽപ നിമിഷങ്ങൾ',\n ss : '%d സെക്കൻഡ്',\n m : 'ഒരു മിനിറ്റ്',\n mm : '%d മിനിറ്റ്',\n h : 'ഒരു മണിക്കൂർ',\n hh : '%d മണിക്കൂർ',\n d : 'ഒരു ദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരു മാസം',\n MM : '%d മാസം',\n y : 'ഒരു വർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n\n return ml;\n\n})));\n","'use strict';\n\nvar Element = require('./core.element');\n\nvar exports = module.exports = Element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каялла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр сехет',\n hh : '%d сехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Í dag kl.] LT',\n nextDay : '[Í morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[Í gjár kl.] LT',\n lastWeek : '[síðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s síðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minutt',\n mm : '%d minuttir',\n h : 'ein tími',\n hh : '%d tímar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaði',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM : function (input) {\n return input === '午後';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n });\n\n return ja;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nmodule.exports = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka horan', 'ek hor'],\n 'hh': [number + ' horanim', number + ' horam'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่อวานนี้ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'อีก %s',\n past : '%sที่แล้ว',\n s : 'ไม่กี่วินาที',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดือน',\n MM : '%d เดือน',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико секунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'месец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tfunction lineEnabled(dataset, options) {\n\t\treturn helpers.valueOrDefault(dataset.showLine, options.showLines);\n\t}\n\n\tChart.controllers.line = Chart.DatasetController.extend({\n\n\t\tdatasetElementType: elements.Line,\n\n\t\tdataElementType: elements.Point,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar line = meta.dataset;\n\t\t\tvar points = meta.data || [];\n\t\t\tvar options = me.chart.options;\n\t\t\tvar lineElementOptions = options.elements.line;\n\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar i, ilen, custom;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar showLine = lineEnabled(dataset, options);\n\n\t\t\t// Update Line\n\t\t\tif (showLine) {\n\t\t\t\tcustom = line.custom || {};\n\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t\t}\n\n\t\t\t\t// Utility\n\t\t\t\tline._scale = scale;\n\t\t\t\tline._datasetIndex = me.index;\n\t\t\t\t// Data\n\t\t\t\tline._children = points;\n\t\t\t\t// Model\n\t\t\t\tline._model = {\n\t\t\t\t\t// Appearance\n\t\t\t\t\t// The default behavior of lines is to break at null values, according\n\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t\t\t\t// This option gives lines the ability to span gaps\n\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\tsteppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\n\t\t\t\t\tcubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\n\t\t\t\t};\n\n\t\t\t\tline.pivot();\n\t\t\t}\n\n\t\t\t// Update Points\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tme.updateElement(points[i], i, reset);\n\t\t\t}\n\n\t\t\tif (showLine && line._model.tension !== 0) {\n\t\t\t\tme.updateBezierControlPoints();\n\t\t\t}\n\n\t\t\t// Now pivot the point for animation\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tpoints[i].pivot();\n\t\t\t}\n\t\t},\n\n\t\tgetPointBackgroundColor: function(point, index) {\n\t\t\tvar backgroundColor = this.chart.options.elements.point.backgroundColor;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (custom.backgroundColor) {\n\t\t\t\tbackgroundColor = custom.backgroundColor;\n\t\t\t} else if (dataset.pointBackgroundColor) {\n\t\t\t\tbackgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\n\t\t\t} else if (dataset.backgroundColor) {\n\t\t\t\tbackgroundColor = dataset.backgroundColor;\n\t\t\t}\n\n\t\t\treturn backgroundColor;\n\t\t},\n\n\t\tgetPointBorderColor: function(point, index) {\n\t\t\tvar borderColor = this.chart.options.elements.point.borderColor;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (custom.borderColor) {\n\t\t\t\tborderColor = custom.borderColor;\n\t\t\t} else if (dataset.pointBorderColor) {\n\t\t\t\tborderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\n\t\t\t} else if (dataset.borderColor) {\n\t\t\t\tborderColor = dataset.borderColor;\n\t\t\t}\n\n\t\t\treturn borderColor;\n\t\t},\n\n\t\tgetPointBorderWidth: function(point, index) {\n\t\t\tvar borderWidth = this.chart.options.elements.point.borderWidth;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (!isNaN(custom.borderWidth)) {\n\t\t\t\tborderWidth = custom.borderWidth;\n\t\t\t} else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\n\t\t\t\tborderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\n\t\t\t} else if (!isNaN(dataset.borderWidth)) {\n\t\t\t\tborderWidth = dataset.borderWidth;\n\t\t\t}\n\n\t\t\treturn borderWidth;\n\t\t},\n\n\t\tgetPointRotation: function(point, index) {\n\t\t\tvar pointRotation = this.chart.options.elements.point.rotation;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (!isNaN(custom.rotation)) {\n\t\t\t\tpointRotation = custom.rotation;\n\t\t\t} else if (!isNaN(dataset.pointRotation) || helpers.isArray(dataset.pointRotation)) {\n\t\t\t\tpointRotation = helpers.valueAtIndexOrDefault(dataset.pointRotation, index, pointRotation);\n\t\t\t}\n\t\t\treturn pointRotation;\n\t\t},\n\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar datasetIndex = me.index;\n\t\t\tvar value = dataset.data[index];\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\tvar pointOptions = me.chart.options.elements.point;\n\t\t\tvar x, y;\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n\t\t\t\tdataset.pointRadius = dataset.radius;\n\t\t\t}\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\n\t\t\t}\n\n\t\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t\t// Utility\n\t\t\tpoint._xScale = xScale;\n\t\t\tpoint._yScale = yScale;\n\t\t\tpoint._datasetIndex = datasetIndex;\n\t\t\tpoint._index = index;\n\n\t\t\t// Desired view properties\n\t\t\tpoint._model = {\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t\t// Appearance\n\t\t\t\tradius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\n\t\t\t\tpointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\n\t\t\t\trotation: me.getPointRotation(point, index),\n\t\t\t\tbackgroundColor: me.getPointBackgroundColor(point, index),\n\t\t\t\tborderColor: me.getPointBorderColor(point, index),\n\t\t\t\tborderWidth: me.getPointBorderWidth(point, index),\n\t\t\t\ttension: meta.dataset._model ? meta.dataset._model.tension : 0,\n\t\t\t\tsteppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\n\t\t\t\t// Tooltip\n\t\t\t\thitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\n\t\t\t};\n\t\t},\n\n\t\tcalculatePointY: function(value, index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar sumPos = 0;\n\t\t\tvar sumNeg = 0;\n\t\t\tvar i, ds, dsMeta;\n\n\t\t\tif (yScale.options.stacked) {\n\t\t\t\tfor (i = 0; i < datasetIndex; i++) {\n\t\t\t\t\tds = chart.data.datasets[i];\n\t\t\t\t\tdsMeta = chart.getDatasetMeta(i);\n\t\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n\t\t\t\t\t\tvar stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\n\t\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar rightValue = Number(yScale.getRightValue(value));\n\t\t\t\tif (rightValue < 0) {\n\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t\t}\n\t\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t\t}\n\n\t\t\treturn yScale.getPixelForValue(value);\n\t\t},\n\n\t\tupdateBezierControlPoints: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar area = me.chart.chartArea;\n\t\t\tvar points = (meta.data || []);\n\t\t\tvar i, ilen, point, model, controlPoints;\n\n\t\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\t\tif (meta.dataset._model.spanGaps) {\n\t\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\t\treturn !pt._model.skip;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction capControlPoint(pt, min, max) {\n\t\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t\t}\n\n\t\t\tif (meta.dataset._model.cubicInterpolationMode === 'monotone') {\n\t\t\t\thelpers.splineCurveMonotone(points);\n\t\t\t} else {\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\t\tpoint = points[i];\n\t\t\t\t\tmodel = point._model;\n\t\t\t\t\tcontrolPoints = helpers.splineCurve(\n\t\t\t\t\t\thelpers.previousItem(points, i)._model,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\thelpers.nextItem(points, i)._model,\n\t\t\t\t\t\tmeta.dataset._model.tension\n\t\t\t\t\t);\n\t\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (me.chart.options.elements.line.capBezierPoints) {\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\t\tmodel = points[i]._model;\n\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar points = meta.data || [];\n\t\t\tvar area = chart.chartArea;\n\t\t\tvar ilen = points.length;\n\t\t\tvar halfBorderWidth;\n\t\t\tvar i = 0;\n\n\t\t\tif (lineEnabled(me.getDataset(), chart.options)) {\n\t\t\t\thalfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2;\n\n\t\t\t\thelpers.canvas.clipArea(chart.ctx, {\n\t\t\t\t\tleft: area.left,\n\t\t\t\t\tright: area.right,\n\t\t\t\t\ttop: area.top - halfBorderWidth,\n\t\t\t\t\tbottom: area.bottom + halfBorderWidth\n\t\t\t\t});\n\n\t\t\t\tmeta.dataset.draw();\n\n\t\t\t\thelpers.canvas.unclipArea(chart.ctx);\n\t\t\t}\n\n\t\t\t// Draw the points\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\tpoints[i].draw(area);\n\t\t\t}\n\t\t},\n\n\t\tsetHoverStyle: function(element) {\n\t\t\t// Point\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\t\tvar index = element._index;\n\t\t\tvar custom = element.custom || {};\n\t\t\tvar model = element._model;\n\n\t\t\telement.$previousStyle = {\n\t\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\t\tborderColor: model.borderColor,\n\t\t\t\tborderWidth: model.borderWidth,\n\t\t\t\tradius: model.radius\n\t\t\t};\n\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n\t\t\tmodel.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n\t\t},\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'ġurnata',\n dd : '%d ġranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nmodule.exports = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'месяц_месяцы_месяцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays : {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі секунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM : function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","function dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n required: true\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n this.$data._chart = new Chart(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n};","import mixins from './mixins/index.js';\nimport { Bar, HorizontalBar, Doughnut, Line, Pie, PolarArea, Radar, Bubble, Scatter, generateChart } from './BaseCharts';\nvar VueCharts = {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter,\n mixins: mixins,\n generateChart: generateChart,\n render: function render() {\n return console.error('[vue-chartjs]: This is not a vue component. It is the whole object containing all vue components. Please import the named export or access the components over the dot notation. For more info visit https://vue-chartjs.org/#/home?id=quick-start');\n }\n};\nexport default VueCharts;\nexport { VueCharts, Bar, HorizontalBar, Doughnut, Line, Pie, PolarArea, Radar, Bubble, Scatter, mixins, generateChart };","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წამი|წუთი|საათი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რამდენიმე წამი',\n ss : '%d წამი',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'საათი',\n hh : '%d საათი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss' : 'sekundė_sekundžių_sekundes',\n 'm' : 'minutė_minutės_minutę',\n 'mm': 'minutės_minučių_minutes',\n 'h' : 'valanda_valandos_valandą',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dieną',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mėnuo_mėnesio_mėnesį',\n 'MM': 'mėnesiai_mėnesių_mėnesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Šiandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[Praėjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieš %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nmodule.exports = function(Chart) {\n\n\tvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n\t/**\n\t * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n\t * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n\t * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n\t */\n\tfunction listenArrayEvents(array, listener) {\n\t\tif (array._chartjs) {\n\t\t\tarray._chartjs.listeners.push(listener);\n\t\t\treturn;\n\t\t}\n\n\t\tObject.defineProperty(array, '_chartjs', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: {\n\t\t\t\tlisteners: [listener]\n\t\t\t}\n\t\t});\n\n\t\tarrayEvents.forEach(function(key) {\n\t\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\t\tvar base = array[key];\n\n\t\t\tObject.defineProperty(array, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: function() {\n\t\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\t\thelpers.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Removes the given array event listener and cleanup extra attached properties (such as\n\t * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n\t */\n\tfunction unlistenArrayEvents(array, listener) {\n\t\tvar stub = array._chartjs;\n\t\tif (!stub) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar listeners = stub.listeners;\n\t\tvar index = listeners.indexOf(listener);\n\t\tif (index !== -1) {\n\t\t\tlisteners.splice(index, 1);\n\t\t}\n\n\t\tif (listeners.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tarrayEvents.forEach(function(key) {\n\t\t\tdelete array[key];\n\t\t});\n\n\t\tdelete array._chartjs;\n\t}\n\n\t// Base class for all dataset controllers (line, bar, etc)\n\tChart.DatasetController = function(chart, datasetIndex) {\n\t\tthis.initialize(chart, datasetIndex);\n\t};\n\n\thelpers.extend(Chart.DatasetController.prototype, {\n\n\t\t/**\n\t\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t\t * @type {Chart.core.element}\n\t\t */\n\t\tdatasetElementType: null,\n\n\t\t/**\n\t\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t\t * @type {Chart.core.element}\n\t\t */\n\t\tdataElementType: null,\n\n\t\tinitialize: function(chart, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tme.chart = chart;\n\t\t\tme.index = datasetIndex;\n\t\t\tme.linkScales();\n\t\t\tme.addElements();\n\t\t},\n\n\t\tupdateIndex: function(datasetIndex) {\n\t\t\tthis.index = datasetIndex;\n\t\t},\n\n\t\tlinkScales: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar dataset = me.getDataset();\n\n\t\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n\t\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n\t\t\t}\n\t\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n\t\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n\t\t\t}\n\t\t},\n\n\t\tgetDataset: function() {\n\t\t\treturn this.chart.data.datasets[this.index];\n\t\t},\n\n\t\tgetMeta: function() {\n\t\t\treturn this.chart.getDatasetMeta(this.index);\n\t\t},\n\n\t\tgetScaleForId: function(scaleID) {\n\t\t\treturn this.chart.scales[scaleID];\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.update(true);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tdestroy: function() {\n\t\t\tif (this._data) {\n\t\t\t\tunlistenArrayEvents(this._data, this);\n\t\t\t}\n\t\t},\n\n\t\tcreateMetaDataset: function() {\n\t\t\tvar me = this;\n\t\t\tvar type = me.datasetElementType;\n\t\t\treturn type && new type({\n\t\t\t\t_chart: me.chart,\n\t\t\t\t_datasetIndex: me.index\n\t\t\t});\n\t\t},\n\n\t\tcreateMetaData: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar type = me.dataElementType;\n\t\t\treturn type && new type({\n\t\t\t\t_chart: me.chart,\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index\n\t\t\t});\n\t\t},\n\n\t\taddElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar data = me.getDataset().data || [];\n\t\t\tvar metaData = meta.data;\n\t\t\tvar i, ilen;\n\n\t\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t\t}\n\n\t\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t\t},\n\n\t\taddElementAndReset: function(index) {\n\t\t\tvar element = this.createMetaData(index);\n\t\t\tthis.getMeta().data.splice(index, 0, element);\n\t\t\tthis.updateElement(element, index, true);\n\t\t},\n\n\t\tbuildOrUpdateElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t\t// the internal meta data accordingly.\n\t\t\tif (me._data !== data) {\n\t\t\t\tif (me._data) {\n\t\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t\t}\n\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t\tme._data = data;\n\t\t\t}\n\n\t\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\t\tme.resyncElements();\n\t\t},\n\n\t\tupdate: helpers.noop,\n\n\t\ttransition: function(easingValue) {\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar elements = meta.data || [];\n\t\t\tvar ilen = elements.length;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\telements[i].transition(easingValue);\n\t\t\t}\n\n\t\t\tif (meta.dataset) {\n\t\t\t\tmeta.dataset.transition(easingValue);\n\t\t\t}\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar elements = meta.data || [];\n\t\t\tvar ilen = elements.length;\n\t\t\tvar i = 0;\n\n\t\t\tif (meta.dataset) {\n\t\t\t\tmeta.dataset.draw();\n\t\t\t}\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\telements[i].draw();\n\t\t\t}\n\t\t},\n\n\t\tremoveHoverStyle: function(element) {\n\t\t\thelpers.merge(element._model, element.$previousStyle || {});\n\t\t\tdelete element.$previousStyle;\n\t\t},\n\n\t\tsetHoverStyle: function(element) {\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\t\tvar index = element._index;\n\t\t\tvar custom = element.custom || {};\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\tvar getHoverColor = helpers.getHoverColor;\n\t\t\tvar model = element._model;\n\n\t\t\telement.$previousStyle = {\n\t\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\t\tborderColor: model.borderColor,\n\t\t\t\tborderWidth: model.borderWidth\n\t\t\t};\n\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tresyncElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar data = me.getDataset().data;\n\t\t\tvar numMeta = meta.data.length;\n\t\t\tvar numData = data.length;\n\n\t\t\tif (numData < numMeta) {\n\t\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t\t} else if (numData > numMeta) {\n\t\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinsertElements: function(start, count) {\n\t\t\tfor (var i = 0; i < count; ++i) {\n\t\t\t\tthis.addElementAndReset(start + i);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataPush: function() {\n\t\t\tthis.insertElements(this.getDataset().data.length - 1, arguments.length);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataPop: function() {\n\t\t\tthis.getMeta().data.pop();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataShift: function() {\n\t\t\tthis.getMeta().data.shift();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataSplice: function(start, count) {\n\t\t\tthis.getMeta().data.splice(start, count);\n\t\t\tthis.insertElements(start, arguments.length - 2);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataUnshift: function() {\n\t\t\tthis.insertElements(0, arguments.length);\n\t\t}\n\t});\n\n\tChart.DatasetController.extend = helpers.inherits;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return me;\n\n})));\n","'use strict';\n\nvar color = require('chartjs-color');\nvar helpers = require('../helpers/index');\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = color(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = color(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === 'number' && isFinite(origin) && isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers.extend(Element.prototype, {\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers.clone(me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = model;\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers.isNumber(this._model.x) && helpers.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers.inherits;\n\nmodule.exports = Element;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var af = moment.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uz = moment.defineLocale('uz', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун соат] LT [да]',\n nextDay : '[Эртага] LT [да]',\n nextWeek : 'dddd [куни соат] LT [да]',\n lastDay : '[Кеча соат] LT [да]',\n lastWeek : '[Утган] dddd [куни соат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурсат',\n ss : '%d фурсат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир соат',\n hh : '%d соат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n\n})));\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Bar = function(context, config) {\n\t\tconfig.type = 'bar';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enCa = moment.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enCa;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\nvar defaultColor = defaults.global.defaultColor;\n\ndefaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nmodule.exports = Element.extend({\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar model = this._model;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || (model.x >= chartArea.left && chartArea.right * errMargin >= model.x && model.y >= chartArea.top && chartArea.bottom * errMargin >= model.y)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'एक मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'एक तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'एक दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'एक महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'एक वर्ष'; break;\n case 'yy': output = '%d वर्षे'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'एका मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'एका तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'एका दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'एका महिन्या'; break;\n case 'MM': output = '%d महिन्यां'; break;\n case 'y': output = 'एका वर्षा'; break;\n case 'yy': output = '%d वर्षां'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उद्या] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात्री') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात्री';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var ne = moment.defineLocale('ne', {\n months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[भोलि] LT',\n nextWeek : '[आउँदो] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गएको] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही क्षण',\n ss : '%d सेकेण्ड',\n m : 'एक मिनेट',\n mm : '%d मिनेट',\n h : 'एक घण्टा',\n hh : '%d घण्टा',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महिना',\n MM : '%d महिना',\n y : 'एक बर्ष',\n yy : '%d बर्ष'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n var tg = moment.defineLocale('tg', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз соати] LT',\n nextDay : '[Пагоҳ соати] LT',\n lastDay : '[Дирӯз соати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'якчанд сония',\n m : 'як дақиқа',\n mm : '%d дақиқа',\n h : 'як соат',\n hh : '%d соат',\n d : 'як рӯз',\n dd : '%d рӯз',\n M : 'як моҳ',\n MM : '%d моҳ',\n y : 'як сол',\n yy : '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months : months,\n monthsShort : monthsShort,\n monthsParse : (function (months, monthsShort) {\n var i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months, monthsShort)),\n shortMonthsParse : (function (monthsShort) {\n var i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse : (function (months) {\n var i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months)),\n weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'před %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n var ta = moment.defineLocale('ta', {\n months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இன்று] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேற்று] LT',\n lastWeek : '[கடந்த வாரம்] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இல்',\n past : '%s முன்',\n s : 'ஒரு சில விநாடிகள்',\n ss : '%d விநாடிகள்',\n m : 'ஒரு நிமிடம்',\n mm : '%d நிமிடங்கள்',\n h : 'ஒரு மணி நேரம்',\n hh : '%d மணி நேரம்',\n d : 'ஒரு நாள்',\n dd : '%d நாட்கள்',\n M : 'ஒரு மாதம்',\n MM : '%d மாதங்கள்',\n y : 'ஒரு வருடம்',\n yy : '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal : function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n var kn = moment.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದು] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನ್ನೆ] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss : '%d ಸೆಕೆಂಡುಗಳು',\n m : 'ಒಂದು ನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದು ಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದು ದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದು ತಿಂಗಳು',\n MM : '%d ತಿಂಗಳು',\n y : 'ಒಂದು ವರ್ಷ',\n yy : '%d ವರ್ಷ'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return kn;\n\n})));\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Bubble = function(context, config) {\n\t\tconfig.type = 'bubble';\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arKw = moment.defineLocale('ar-kw', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","/* global window: false */\n'use strict';\n\nvar moment = require('moment');\nmoment = typeof moment === 'function' ? moment : window.moment;\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\nvar Scale = require('../core/core.scale');\nvar scaleService = require('../core/core.scaleService');\n\n// Integer constants are from the ES6 spec.\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nvar INTERVALS = {\n\tmillisecond: {\n\t\tcommon: true,\n\t\tsize: 1,\n\t\tsteps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\n\t},\n\tsecond: {\n\t\tcommon: true,\n\t\tsize: 1000,\n\t\tsteps: [1, 2, 5, 10, 15, 30]\n\t},\n\tminute: {\n\t\tcommon: true,\n\t\tsize: 60000,\n\t\tsteps: [1, 2, 5, 10, 15, 30]\n\t},\n\thour: {\n\t\tcommon: true,\n\t\tsize: 3600000,\n\t\tsteps: [1, 2, 3, 6, 12]\n\t},\n\tday: {\n\t\tcommon: true,\n\t\tsize: 86400000,\n\t\tsteps: [1, 2, 5]\n\t},\n\tweek: {\n\t\tcommon: false,\n\t\tsize: 604800000,\n\t\tsteps: [1, 2, 3, 4]\n\t},\n\tmonth: {\n\t\tcommon: true,\n\t\tsize: 2.628e9,\n\t\tsteps: [1, 2, 3]\n\t},\n\tquarter: {\n\t\tcommon: false,\n\t\tsize: 7.884e9,\n\t\tsteps: [1, 2, 3, 4]\n\t},\n\tyear: {\n\t\tcommon: true,\n\t\tsize: 3.154e10\n\t}\n};\n\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n\treturn a - b;\n}\n\nfunction arrayUnique(items) {\n\tvar hash = {};\n\tvar out = [];\n\tvar i, ilen, item;\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\titem = items[i];\n\t\tif (!hash[item]) {\n\t\t\thash[item] = true;\n\t\t\tout.push(item);\n\t\t}\n\t}\n\n\treturn out;\n}\n\n/**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\nfunction buildLookupTable(timestamps, min, max, distribution) {\n\tif (distribution === 'linear' || !timestamps.length) {\n\t\treturn [\n\t\t\t{time: min, pos: 0},\n\t\t\t{time: max, pos: 1}\n\t\t];\n\t}\n\n\tvar table = [];\n\tvar items = [min];\n\tvar i, ilen, prev, curr, next;\n\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\tcurr = timestamps[i];\n\t\tif (curr > min && curr < max) {\n\t\t\titems.push(curr);\n\t\t}\n\t}\n\n\titems.push(max);\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\tnext = items[i + 1];\n\t\tprev = items[i - 1];\n\t\tcurr = items[i];\n\n\t\t// only add points that breaks the scale linearity\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\n\t\t}\n\t}\n\n\treturn table;\n}\n\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\nfunction lookup(table, key, value) {\n\tvar lo = 0;\n\tvar hi = table.length - 1;\n\tvar mid, i0, i1;\n\n\twhile (lo >= 0 && lo <= hi) {\n\t\tmid = (lo + hi) >> 1;\n\t\ti0 = table[mid - 1] || null;\n\t\ti1 = table[mid];\n\n\t\tif (!i0) {\n\t\t\t// given value is outside table (before first item)\n\t\t\treturn {lo: null, hi: i1};\n\t\t} else if (i1[key] < value) {\n\t\t\tlo = mid + 1;\n\t\t} else if (i0[key] > value) {\n\t\t\thi = mid - 1;\n\t\t} else {\n\t\t\treturn {lo: i0, hi: i1};\n\t\t}\n\t}\n\n\t// given value is outside table (after last item)\n\treturn {lo: i1, hi: null};\n}\n\n/**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\nfunction interpolate(table, skey, sval, tkey) {\n\tvar range = lookup(table, skey, sval);\n\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n\tvar span = next[skey] - prev[skey];\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\n\n\treturn prev[tkey] + offset;\n}\n\n/**\n * Convert the given value to a moment object using the given time options.\n * @see http://momentjs.com/docs/#/parsing/\n */\nfunction momentify(value, options) {\n\tvar parser = options.parser;\n\tvar format = options.parser || options.format;\n\n\tif (typeof parser === 'function') {\n\t\treturn parser(value);\n\t}\n\n\tif (typeof value === 'string' && typeof format === 'string') {\n\t\treturn moment(value, format);\n\t}\n\n\tif (!(value instanceof moment)) {\n\t\tvalue = moment(value);\n\t}\n\n\tif (value.isValid()) {\n\t\treturn value;\n\t}\n\n\t// Labels are in an incompatible moment format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option to convert his inputs.\n\tif (typeof format === 'function') {\n\t\treturn format(value);\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, scale) {\n\tif (helpers.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = momentify(scale.getRightValue(input), options);\n\tif (!value.isValid()) {\n\t\treturn null;\n\t}\n\n\tif (options.round) {\n\t\tvalue.startOf(options.round);\n\t}\n\n\treturn value.valueOf();\n}\n\n/**\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\n */\nfunction determineStepSize(min, max, unit, capacity) {\n\tvar range = max - min;\n\tvar interval = INTERVALS[unit];\n\tvar milliseconds = interval.size;\n\tvar steps = interval.steps;\n\tvar i, ilen, factor;\n\n\tif (!steps) {\n\t\treturn Math.ceil(range / (capacity * milliseconds));\n\t}\n\n\tfor (i = 0, ilen = steps.length; i < ilen; ++i) {\n\t\tfactor = steps[i];\n\t\tif (Math.ceil(range / (milliseconds * factor)) <= capacity) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn factor;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n\tvar ilen = UNITS.length;\n\tvar i, interval, factor;\n\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n\t\tinterval = INTERVALS[UNITS[i]];\n\t\tfactor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\n\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n\n\treturn UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n */\nfunction determineUnitForFormatting(ticks, minUnit, min, max) {\n\tvar duration = moment.duration(moment(max).diff(moment(min)));\n\tvar ilen = UNITS.length;\n\tvar i, unit;\n\n\tfor (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) {\n\t\tunit = UNITS[i];\n\t\tif (INTERVALS[unit].common && duration.as(unit) >= ticks.length) {\n\t\t\treturn unit;\n\t\t}\n\t}\n\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n\t\tif (INTERVALS[UNITS[i]].common) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n}\n\n/**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\nfunction generate(min, max, capacity, options) {\n\tvar timeOpts = options.time;\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n\tvar major = determineMajorUnit(minor);\n\tvar stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n\tvar majorTicksEnabled = options.ticks.major.enabled;\n\tvar interval = INTERVALS[minor];\n\tvar first = moment(min);\n\tvar last = moment(max);\n\tvar ticks = [];\n\tvar time;\n\n\tif (!stepSize) {\n\t\tstepSize = determineStepSize(min, max, minor, capacity);\n\t}\n\n\t// For 'week' unit, handle the first day of week option\n\tif (weekday) {\n\t\tfirst = first.isoWeekday(weekday);\n\t\tlast = last.isoWeekday(weekday);\n\t}\n\n\t// Align first/last ticks on unit\n\tfirst = first.startOf(weekday ? 'day' : minor);\n\tlast = last.startOf(weekday ? 'day' : minor);\n\n\t// Make sure that the last tick include max\n\tif (last < max) {\n\t\tlast.add(1, minor);\n\t}\n\n\ttime = moment(first);\n\n\tif (majorTicksEnabled && major && !weekday && !timeOpts.round) {\n\t\t// Align the first tick on the previous `minor` unit aligned on the `major` unit:\n\t\t// we first aligned time on the previous `major` unit then add the number of full\n\t\t// stepSize there is between first and the previous major time.\n\t\ttime.startOf(major);\n\t\ttime.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\n\t}\n\n\tfor (; time < last; time.add(stepSize, minor)) {\n\t\tticks.push(+time);\n\t}\n\n\tticks.push(+time);\n\n\treturn ticks;\n}\n\n/**\n * Returns the right and left offsets from edges in the form of {left, right}.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar left = 0;\n\tvar right = 0;\n\tvar upper, lower;\n\n\tif (options.offset && ticks.length) {\n\t\tif (!options.time.min) {\n\t\t\tupper = ticks.length > 1 ? ticks[1] : max;\n\t\t\tlower = ticks[0];\n\t\t\tleft = (\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\n\t\t\t) / 2;\n\t\t}\n\t\tif (!options.time.max) {\n\t\t\tupper = ticks[ticks.length - 1];\n\t\t\tlower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\n\t\t\tright = (\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\n\t\t\t) / 2;\n\t\t}\n\t}\n\n\treturn {left: left, right: right};\n}\n\nfunction ticksFromTimestamps(values, majorUnit) {\n\tvar ticks = [];\n\tvar i, ilen, value, major;\n\n\tfor (i = 0, ilen = values.length; i < ilen; ++i) {\n\t\tvalue = values[i];\n\t\tmajor = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\n\n\t\tticks.push({\n\t\t\tvalue: value,\n\t\t\tmajor: major\n\t\t});\n\t}\n\n\treturn ticks;\n}\n\nfunction determineLabelFormat(data, timeOpts) {\n\tvar i, momentDate, hasTime;\n\tvar ilen = data.length;\n\n\t// find the label with the most parts (milliseconds, minutes, etc.)\n\t// format all labels with the same level of detail as the most specific label\n\tfor (i = 0; i < ilen; i++) {\n\t\tmomentDate = momentify(data[i], timeOpts);\n\t\tif (momentDate.millisecond() !== 0) {\n\t\t\treturn 'MMM D, YYYY h:mm:ss.SSS a';\n\t\t}\n\t\tif (momentDate.second() !== 0 || momentDate.minute() !== 0 || momentDate.hour() !== 0) {\n\t\t\thasTime = true;\n\t\t}\n\t}\n\tif (hasTime) {\n\t\treturn 'MMM D, YYYY h:mm:ss a';\n\t}\n\treturn 'MMM D, YYYY';\n}\n\nmodule.exports = function() {\n\n\tvar defaultConfig = {\n\t\tposition: 'bottom',\n\n\t\t/**\n\t\t * Data distribution along the scale:\n\t\t * - 'linear': data are spread according to their time (distances can vary),\n\t\t * - 'series': data are spread at the same distance from each other.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tdistribution: 'linear',\n\n\t\t/**\n\t\t * Scale boundary strategy (bypassed by min/max time options)\n\t\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t\t * @since 2.7.0\n\t\t */\n\t\tbounds: 'data',\n\n\t\ttime: {\n\t\t\tparser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\t\tformat: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\n\t\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\t\tround: false, // none, or override with week, month, year, etc.\n\t\t\tdisplayFormat: false, // DEPRECATED\n\t\t\tisoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\n\t\t\tminUnit: 'millisecond',\n\n\t\t\t// defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\n\t\t\tdisplayFormats: {\n\t\t\t\tmillisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\n\t\t\t\tsecond: 'h:mm:ss a', // 11:20:01 AM\n\t\t\t\tminute: 'h:mm a', // 11:20 AM\n\t\t\t\thour: 'hA', // 5PM\n\t\t\t\tday: 'MMM D', // Sep 4\n\t\t\t\tweek: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\n\t\t\t\tmonth: 'MMM YYYY', // Sept 2015\n\t\t\t\tquarter: '[Q]Q - YYYY', // Q3\n\t\t\t\tyear: 'YYYY' // 2015\n\t\t\t},\n\t\t},\n\t\tticks: {\n\t\t\tautoSkip: false,\n\n\t\t\t/**\n\t\t\t * Ticks generation input values:\n\t\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t\t * @since 2.7.0\n\t\t\t */\n\t\t\tsource: 'auto',\n\n\t\t\tmajor: {\n\t\t\t\tenabled: false\n\t\t\t}\n\t\t}\n\t};\n\n\tvar TimeScale = Scale.extend({\n\t\tinitialize: function() {\n\t\t\tif (!moment) {\n\t\t\t\tthrow new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\n\t\t\t}\n\n\t\t\tthis.mergeTicksOptions();\n\n\t\t\tScale.prototype.initialize.call(this);\n\t\t},\n\n\t\tupdate: function() {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\n\t\t\t// DEPRECATIONS: output a message only one time per update\n\t\t\tif (options.time && options.time.format) {\n\t\t\t\tconsole.warn('options.time.format is deprecated and replaced by options.time.parser.');\n\t\t\t}\n\n\t\t\treturn Scale.prototype.update.apply(me, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Allows data to be referenced via 't' attribute\n\t\t */\n\t\tgetRightValue: function(rawValue) {\n\t\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\t\trawValue = rawValue.t;\n\t\t\t}\n\t\t\treturn Scale.prototype.getRightValue.call(this, rawValue);\n\t\t},\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar timeOpts = me.options.time;\n\t\t\tvar unit = timeOpts.unit || 'day';\n\t\t\tvar min = MAX_INTEGER;\n\t\t\tvar max = MIN_INTEGER;\n\t\t\tvar timestamps = [];\n\t\t\tvar datasets = [];\n\t\t\tvar labels = [];\n\t\t\tvar i, j, ilen, jlen, data, timestamp;\n\n\t\t\t// Convert labels to timestamps\n\t\t\tfor (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\n\t\t\t\tlabels.push(parse(chart.data.labels[i], me));\n\t\t\t}\n\n\t\t\t// Convert data to timestamps\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\t\tif (helpers.isObject(data[0])) {\n\t\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\t\ttimestamp = parse(data[j], me);\n\t\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimestamps.push.apply(timestamps, labels);\n\t\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatasets[i] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (labels.length) {\n\t\t\t\t// Sort labels **after** data have been converted\n\t\t\t\tlabels = arrayUnique(labels).sort(sorter);\n\t\t\t\tmin = Math.min(min, labels[0]);\n\t\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t\t}\n\n\t\t\tif (timestamps.length) {\n\t\t\t\ttimestamps = arrayUnique(timestamps).sort(sorter);\n\t\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t\t}\n\n\t\t\tmin = parse(timeOpts.min, me) || min;\n\t\t\tmax = parse(timeOpts.max, me) || max;\n\n\t\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\t\tmin = min === MAX_INTEGER ? +moment().startOf(unit) : min;\n\t\t\tmax = max === MIN_INTEGER ? +moment().endOf(unit) + 1 : max;\n\n\t\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\t\tme.min = Math.min(min, max);\n\t\t\tme.max = Math.max(min + 1, max);\n\n\t\t\t// PRIVATE\n\t\t\tme._horizontal = me.isHorizontal();\n\t\t\tme._table = [];\n\t\t\tme._timestamps = {\n\t\t\t\tdata: timestamps,\n\t\t\t\tdatasets: datasets,\n\t\t\t\tlabels: labels\n\t\t\t};\n\t\t},\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar min = me.min;\n\t\t\tvar max = me.max;\n\t\t\tvar options = me.options;\n\t\t\tvar timeOpts = options.time;\n\t\t\tvar timestamps = [];\n\t\t\tvar ticks = [];\n\t\t\tvar i, ilen, timestamp;\n\n\t\t\tswitch (options.ticks.source) {\n\t\t\tcase 'data':\n\t\t\t\ttimestamps = me._timestamps.data;\n\t\t\t\tbreak;\n\t\t\tcase 'labels':\n\t\t\t\ttimestamps = me._timestamps.labels;\n\t\t\t\tbreak;\n\t\t\tcase 'auto':\n\t\t\tdefault:\n\t\t\t\ttimestamps = generate(min, max, me.getLabelCapacity(min), options);\n\t\t\t}\n\n\t\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\t\tmin = timestamps[0];\n\t\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t\t}\n\n\t\t\t// Enforce limits with user min/max options\n\t\t\tmin = parse(timeOpts.min, me) || min;\n\t\t\tmax = parse(timeOpts.max, me) || max;\n\n\t\t\t// Remove ticks outside the min/max range\n\t\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\t\ttimestamp = timestamps[i];\n\t\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\t\tticks.push(timestamp);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.min = min;\n\t\t\tme.max = max;\n\n\t\t\t// PRIVATE\n\t\t\tme._unit = timeOpts.unit || determineUnitForFormatting(ticks, timeOpts.minUnit, me.min, me.max);\n\t\t\tme._majorUnit = determineMajorUnit(me._unit);\n\t\t\tme._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\n\t\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\t\t\tme._labelFormat = determineLabelFormat(me._timestamps.data, timeOpts);\n\n\t\t\treturn ticksFromTimestamps(ticks, me._majorUnit);\n\t\t},\n\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar data = me.chart.data;\n\t\t\tvar timeOpts = me.options.time;\n\t\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\t\tif (helpers.isObject(value)) {\n\t\t\t\tlabel = me.getRightValue(value);\n\t\t\t}\n\t\t\tif (timeOpts.tooltipFormat) {\n\t\t\t\treturn momentify(label, timeOpts).format(timeOpts.tooltipFormat);\n\t\t\t}\n\t\t\tif (typeof label === 'string') {\n\t\t\t\treturn label;\n\t\t\t}\n\n\t\t\treturn momentify(label, timeOpts).format(me._labelFormat);\n\t\t},\n\n\t\t/**\n\t\t * Function to format an individual tick mark\n\t\t * @private\n\t\t */\n\t\ttickFormatFunction: function(tick, index, ticks, formatOverride) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar time = tick.valueOf();\n\t\t\tvar formats = options.time.displayFormats;\n\t\t\tvar minorFormat = formats[me._unit];\n\t\t\tvar majorUnit = me._majorUnit;\n\t\t\tvar majorFormat = formats[majorUnit];\n\t\t\tvar majorTime = tick.clone().startOf(majorUnit).valueOf();\n\t\t\tvar majorTickOpts = options.ticks.major;\n\t\t\tvar major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\n\t\t\tvar label = tick.format(formatOverride ? formatOverride : major ? majorFormat : minorFormat);\n\t\t\tvar tickOpts = major ? majorTickOpts : options.ticks.minor;\n\t\t\tvar formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\n\n\t\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t\t},\n\n\t\tconvertTicksToLabels: function(ticks) {\n\t\t\tvar labels = [];\n\t\t\tvar i, ilen;\n\n\t\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\t\tlabels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\n\t\t\t}\n\n\t\t\treturn labels;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetPixelForOffset: function(time) {\n\t\t\tvar me = this;\n\t\t\tvar size = me._horizontal ? me.width : me.height;\n\t\t\tvar start = me._horizontal ? me.left : me.top;\n\t\t\tvar pos = interpolate(me._table, 'time', time, 'pos');\n\n\t\t\treturn start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\n\t\t},\n\n\t\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar time = null;\n\n\t\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t\t}\n\n\t\t\tif (time === null) {\n\t\t\t\ttime = parse(value, me);\n\t\t\t}\n\n\t\t\tif (time !== null) {\n\t\t\t\treturn me.getPixelForOffset(time);\n\t\t\t}\n\t\t},\n\n\t\tgetPixelForTick: function(index) {\n\t\t\tvar ticks = this.getTicks();\n\t\t\treturn index >= 0 && index < ticks.length ?\n\t\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\t\tnull;\n\t\t},\n\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar size = me._horizontal ? me.width : me.height;\n\t\t\tvar start = me._horizontal ? me.left : me.top;\n\t\t\tvar pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\n\t\t\tvar time = interpolate(me._table, 'pos', pos, 'time');\n\n\t\t\treturn moment(time);\n\t\t},\n\n\t\t/**\n\t\t * Crude approximation of what the label width might be\n\t\t * @private\n\t\t */\n\t\tgetLabelWidth: function(label) {\n\t\t\tvar me = this;\n\t\t\tvar ticksOpts = me.options.ticks;\n\t\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\t\tvar angle = helpers.toRadians(ticksOpts.maxRotation);\n\t\t\tvar cosRotation = Math.cos(angle);\n\t\t\tvar sinRotation = Math.sin(angle);\n\t\t\tvar tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\n\n\t\t\treturn (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetLabelCapacity: function(exampleTime) {\n\t\t\tvar me = this;\n\n\t\t\tvar formatOverride = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\n\n\t\t\tvar exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, [], formatOverride);\n\t\t\tvar tickLabelWidth = me.getLabelWidth(exampleLabel);\n\t\t\tvar innerWidth = me.isHorizontal() ? me.width : me.height;\n\n\t\t\tvar capacity = Math.floor(innerWidth / tickLabelWidth);\n\t\t\treturn capacity > 0 ? capacity : 1;\n\t\t}\n\t});\n\n\tscaleService.registerScaleType('time', TimeScale, defaultConfig);\n};\n","'use strict';\n\nmodule.exports = require('./helpers.core');\nmodule.exports.easing = require('./helpers.easing');\nmodule.exports.canvas = require('./helpers.canvas');\nmodule.exports.options = require('./helpers.options');\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"73332\",\n\t\"./en-il.js\": \"73332\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b8\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b8\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df48\",\n\t\"./fa.js\": \"8df48\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./gd\": \"f6b46\",\n\t\"./gd.js\": \"f6b46\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda57\",\n\t\"./si.js\": \"eda57\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e9\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e9\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\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 id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n var az = moment.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gələn həftə] dddd [saat] LT',\n lastDay : '[dünən] LT',\n lastWeek : '[keçən həftə] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s əvvəl',\n s : 'birneçə saniyyə',\n ss : '%d saniyə',\n m : 'bir dəqiqə',\n mm : '%d dəqiqə',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM : function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhHk;\n\n})));\n","'use strict';\n\nvar helpers = require('./helpers.core');\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports = module.exports = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {Number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {Number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {Number} width - The rectangle's width.\n\t * @param {Number} height - The rectangle's height.\n\t * @param {Number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\t// NOTE(SB) `epsilon` helps to prevent minor artifacts appearing\n\t\t\t// on Chrome when `r` is exactly half the height or the width.\n\t\t\tvar epsilon = 0.0000001;\n\t\t\tvar r = Math.min(radius, (height / 2) - epsilon, (width / 2) - epsilon);\n\n\t\t\tctx.moveTo(x + r, y);\n\t\t\tctx.lineTo(x + width - r, y);\n\t\t\tctx.arcTo(x + width, y, x + width, y + r, r);\n\t\t\tctx.lineTo(x + width, y + height - r);\n\t\t\tctx.arcTo(x + width, y + height, x + width - r, y + height, r);\n\t\t\tctx.lineTo(x + r, y + height);\n\t\t\tctx.arcTo(x, y + height, x, y + height - r, r);\n\t\t\tctx.lineTo(x, y + r);\n\t\t\tctx.arcTo(x, y, x + r, y, r);\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, edgeLength, xOffset, yOffset, height, size;\n\t\trotation = rotation || 0;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(x, y);\n\t\tctx.rotate(rotation * Math.PI / 180);\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(0, 0, radius, 0, Math.PI * 2);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tedgeLength = 3 * radius / Math.sqrt(3);\n\t\t\theight = edgeLength * Math.sqrt(3) / 2;\n\t\t\tctx.moveTo(-edgeLength / 2, height / 3);\n\t\t\tctx.lineTo(edgeLength / 2, height / 3);\n\t\t\tctx.lineTo(0, -2 * height / 3);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\tctx.rect(-size, -size, 2 * size, 2 * size);\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\tvar offset = radius / Math.SQRT2;\n\t\t\tvar leftX = -offset;\n\t\t\tvar topY = -offset;\n\t\t\tvar sideSize = Math.SQRT2 * radius;\n\n\t\t\t// NOTE(SB) the rounded rect implementation changed to use `arcTo`\n\t\t\t// instead of `quadraticCurveTo` since it generates better results\n\t\t\t// when rect is almost a circle. 0.425 (instead of 0.5) produces\n\t\t\t// results visually closer to the previous impl.\n\t\t\tthis.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius * 0.425);\n\t\t\tbreak;\n\t\tcase 'rectRot':\n\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\tctx.moveTo(-size, 0);\n\t\t\tctx.lineTo(0, size);\n\t\t\tctx.lineTo(size, 0);\n\t\t\tctx.lineTo(0, -size);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'cross':\n\t\t\tctx.moveTo(0, radius);\n\t\t\tctx.lineTo(0, -radius);\n\t\t\tctx.moveTo(-radius, 0);\n\t\t\tctx.lineTo(radius, 0);\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\n\t\t\tctx.moveTo(-xOffset, -yOffset);\n\t\t\tctx.lineTo(xOffset, yOffset);\n\t\t\tctx.moveTo(-xOffset, yOffset);\n\t\t\tctx.lineTo(xOffset, -yOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\tctx.moveTo(0, radius);\n\t\t\tctx.lineTo(0, -radius);\n\t\t\tctx.moveTo(-radius, 0);\n\t\t\tctx.lineTo(radius, 0);\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\n\t\t\tctx.moveTo(-xOffset, -yOffset);\n\t\t\tctx.lineTo(xOffset, yOffset);\n\t\t\tctx.moveTo(-xOffset, yOffset);\n\t\t\tctx.lineTo(xOffset, -yOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\tctx.moveTo(-radius, 0);\n\t\t\tctx.lineTo(radius, 0);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(0, 0);\n\t\t\tctx.lineTo(radius, 0);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t\tctx.restore();\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tif (target.steppedLine) {\n\t\t\tif ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.clear = exports.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports.roundedRect.apply(exports, arguments);\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\tChart.Scatter = function(context, config) {\n\t\tconfig.type = 'scatter';\n\t\treturn new Chart(context, config);\n\t};\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months : {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return hr;\n\n})));\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Doughnut = function(context, config) {\n\t\tconfig.type = 'doughnut';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {Number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {Boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {Boolean}\n\t * @function\n\t */\n\tisArray: Array.isArray ? Array.isArray : function(value) {\n\t\treturn Object.prototype.toString.call(value) === '[object Array]';\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {Boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {Number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {Function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {Object|Array} loopable - The object or array to be iterated.\n\t * @param {Function} fn - The function to call for each item.\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {Boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see http://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {Boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): this method is also used by configMerge and scaleMerge as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {Object} target - The target object in which all sources are merged into.\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n\t * @param {Object} [options] - Merging options:\n\t * @param {Function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {Object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {Object} target - The target object in which all sources are merged into.\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n\t * @returns {Object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {Object} target - The target object in which all objects are merged into.\n\t * @param {Object} arg1 - Object containing additional properties to merge in target.\n\t * @param {Object} argN - Additional objects containing properties to merge in target.\n\t * @returns {Object} The `target` object.\n\t */\n\textend: function(target) {\n\t\tvar setFn = function(value, key) {\n\t\t\ttarget[key] = value;\n\t\t};\n\t\tfor (var i = 1, ilen = arguments.length; i < ilen; ++i) {\n\t\t\thelpers.each(arguments[i], setFn);\n\t\t}\n\t\treturn target;\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t}\n};\n\nmodule.exports = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var id = moment.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n var ur = moment.defineLocale('ur', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[کل بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[گذشتہ روز بوقت] LT',\n lastWeek : '[گذشتہ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹہ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماہ',\n MM : '%d ماہ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\nvar globalDefaults = defaults.global;\n\ndefaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: globalDefaults.defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: globalDefaults.defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nmodule.exports = Element.extend({\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar index, current, previous, currentVM;\n\n\t\t// If we are looping, adding the first point again\n\t\tif (me._loop && points.length) {\n\t\t\tpoints.push(points[0]);\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = vm.borderWidth || globalOptionLineElements.borderWidth;\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\t\tlastDrawnIndex = -1;\n\n\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\tcurrent = points[index];\n\t\t\tprevious = helpers.previousItem(points, index);\n\t\t\tcurrentVM = current._view;\n\n\t\t\t// First point moves to it's starting position no matter what\n\t\t\tif (index === 0) {\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprevious = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\n\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Line to next point\n\t\t\t\t\t\thelpers.canvas.lineTo(ctx, previous._view, current._view);\n\t\t\t\t\t}\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ss = moment.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var esUs = moment.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM [de] D [de] YYYY',\n LLL : 'MMMM [de] D [de] YYYY h:mm A',\n LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return esUs;\n\n})));\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nmodule.exports = {\n\t/**\n\t * Globally registered plugins.\n\t * @private\n\t */\n\t_plugins: [],\n\n\t/**\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\n\t * incremented and descriptors are regenerated during following API calls.\n\t * @private\n\t */\n\t_cacheId: 0,\n\n\t/**\n\t * Registers the given plugin(s) if not already registered.\n\t * @param {Array|Object} plugins plugin instance(s).\n\t */\n\tregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tif (p.indexOf(plugin) === -1) {\n\t\t\t\tp.push(plugin);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Unregisters the given plugin(s) only if registered.\n\t * @param {Array|Object} plugins plugin instance(s).\n\t */\n\tunregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tvar idx = p.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\tp.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Remove all registered plugins.\n\t * @since 2.1.5\n\t */\n\tclear: function() {\n\t\tthis._plugins = [];\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Returns the number of registered plugins?\n\t * @returns {Number}\n\t * @since 2.1.5\n\t */\n\tcount: function() {\n\t\treturn this._plugins.length;\n\t},\n\n\t/**\n\t * Returns all registered plugin instances.\n\t * @returns {Array} array of plugin objects.\n\t * @since 2.1.5\n\t */\n\tgetAll: function() {\n\t\treturn this._plugins;\n\t},\n\n\t/**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Object} chart - The chart instance for which plugins should be called.\n\t * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\n\t * @returns {Boolean} false if any of the plugins return false, else returns true.\n\t */\n\tnotify: function(chart, hook, args) {\n\t\tvar descriptors = this.descriptors(chart);\n\t\tvar ilen = descriptors.length;\n\t\tvar i, descriptor, plugin, params, method;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tdescriptor = descriptors[i];\n\t\t\tplugin = descriptor.plugin;\n\t\t\tmethod = plugin[hook];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\tparams = [chart].concat(args || []);\n\t\t\t\tparams.push(descriptor.options);\n\t\t\t\tif (method.apply(plugin, params) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns descriptors of enabled plugins for the given chart.\n\t * @returns {Array} [{ plugin, options }]\n\t * @private\n\t */\n\tdescriptors: function(chart) {\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\n\t\tif (cache.id === this._cacheId) {\n\t\t\treturn cache.descriptors;\n\t\t}\n\n\t\tvar plugins = [];\n\t\tvar descriptors = [];\n\t\tvar config = (chart && chart.config) || {};\n\t\tvar options = (config.options && config.options.plugins) || {};\n\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\n\t\t\tvar idx = plugins.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar id = plugin.id;\n\t\t\tvar opts = options[id];\n\t\t\tif (opts === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (opts === true) {\n\t\t\t\topts = helpers.clone(defaults.global.plugins[id]);\n\t\t\t}\n\n\t\t\tplugins.push(plugin);\n\t\t\tdescriptors.push({\n\t\t\t\tplugin: plugin,\n\t\t\t\toptions: opts || {}\n\t\t\t});\n\t\t});\n\n\t\tcache.descriptors = descriptors;\n\t\tcache.id = this._cacheId;\n\t\treturn descriptors;\n\t},\n\n\t/**\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n\t * but in some cases, this reference can be changed by the user when updating options.\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t * @private\n\t */\n\t_invalidate: function(chart) {\n\t\tdelete chart.$plugins;\n\t}\n};\n\n/**\n * Plugin extension hooks.\n * @interface IPlugin\n * @since 2.1.0\n */\n/**\n * @method IPlugin#beforeInit\n * @desc Called before initializing `chart`.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#afterInit\n * @desc Called after `chart` has been initialized and before the first update.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeUpdate\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart update.\n */\n/**\n * @method IPlugin#afterUpdate\n * @desc Called after `chart` has been updated and before rendering. Note that this\n * hook will not be called if the chart update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetsUpdate\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\n * the datasets update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} false to cancel the datasets update.\n * @since version 2.1.5\n*/\n/**\n * @method IPlugin#afterDatasetsUpdate\n * @desc Called after the `chart` datasets have been updated. Note that this hook\n * will not be called if the datasets update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @since version 2.1.5\n */\n/**\n * @method IPlugin#beforeDatasetUpdate\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetUpdate\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\n * that this hook will not be called if the datasets update has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeLayout\n * @desc Called before laying out `chart`. If any plugin returns `false`,\n * the layout update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart layout.\n */\n/**\n * @method IPlugin#afterLayout\n * @desc Called after the `chart` has been layed out. Note that this hook will not\n * be called if the layout update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeRender\n * @desc Called before rendering `chart`. If any plugin returns `false`,\n * the rendering is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart rendering.\n */\n/**\n * @method IPlugin#afterRender\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\n * that this hook will not be called if the rendering has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDraw\n * @desc Called before drawing `chart` at every animation frame specified by the given\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\n * another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart drawing.\n */\n/**\n * @method IPlugin#afterDraw\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\n * that this hook will not be called if the drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetsDraw\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\n * the datasets drawing is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetsDraw\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\n * will not be called if the datasets drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetDraw\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\n * is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetDraw\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\n * (datasets are drawn in the reverse order). Note that this hook will not be called\n * if the datasets drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeTooltipDraw\n * @desc Called before drawing the `tooltip`. If any plugin returns `false`,\n * the tooltip drawing is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart tooltip drawing.\n */\n/**\n * @method IPlugin#afterTooltipDraw\n * @desc Called after drawing the `tooltip`. Note that this hook will not\n * be called if the tooltip drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeEvent\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\n * the event will be discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#afterEvent\n * @desc Called after the `event` has been consumed. Note that this hook\n * will not be called if the `event` has been previously discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#resize\n * @desc Called after the chart as been resized.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#destroy\n * @desc Called after the chart as been destroyed.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tet = moment.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n var dv = moment.defineLocale('dv', {\n months : months,\n monthsShort : months,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /މކ|މފ/,\n isPM : function (input) {\n return 'މފ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar : {\n sameDay : '[މިއަދު] LT',\n nextDay : '[މާދަމާ] LT',\n nextWeek : 'dddd LT',\n lastDay : '[އިއްޔެ] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރޭގައި %s',\n past : 'ކުރިން %s',\n s : 'ސިކުންތުކޮޅެއް',\n ss : 'd% ސިކުންތު',\n m : 'މިނިޓެއް',\n mm : 'މިނިޓު %d',\n h : 'ގަޑިއިރެއް',\n hh : 'ގަޑިއިރު %d',\n d : 'ދުވަހެއް',\n dd : 'ދުވަސް %d',\n M : 'މަހެއް',\n MM : 'މަސް %d',\n y : 'އަހަރެއް',\n yy : 'އަހަރު %d'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n\n})));\n","/**\n * @namespace Chart\n */\nvar Chart = require('./core/core')();\n\nChart.helpers = require('./helpers/index');\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\nrequire('./core/core.helpers')(Chart);\n\nChart.Animation = require('./core/core.animation');\nChart.animationService = require('./core/core.animations');\nChart.defaults = require('./core/core.defaults');\nChart.Element = require('./core/core.element');\nChart.elements = require('./elements/index');\nChart.Interaction = require('./core/core.interaction');\nChart.layouts = require('./core/core.layouts');\nChart.platform = require('./platforms/platform');\nChart.plugins = require('./core/core.plugins');\nChart.Scale = require('./core/core.scale');\nChart.scaleService = require('./core/core.scaleService');\nChart.Ticks = require('./core/core.ticks');\nChart.Tooltip = require('./core/core.tooltip');\n\nrequire('./core/core.controller')(Chart);\nrequire('./core/core.datasetController')(Chart);\n\nrequire('./scales/scale.linearbase')(Chart);\nrequire('./scales/scale.category')(Chart);\nrequire('./scales/scale.linear')(Chart);\nrequire('./scales/scale.logarithmic')(Chart);\nrequire('./scales/scale.radialLinear')(Chart);\nrequire('./scales/scale.time')(Chart);\n\n// Controllers must be loaded after elements\n// See Chart.core.datasetController.dataElementType\nrequire('./controllers/controller.bar')(Chart);\nrequire('./controllers/controller.bubble')(Chart);\nrequire('./controllers/controller.doughnut')(Chart);\nrequire('./controllers/controller.line')(Chart);\nrequire('./controllers/controller.polarArea')(Chart);\nrequire('./controllers/controller.radar')(Chart);\nrequire('./controllers/controller.scatter')(Chart);\n\nrequire('./charts/Chart.Bar')(Chart);\nrequire('./charts/Chart.Bubble')(Chart);\nrequire('./charts/Chart.Doughnut')(Chart);\nrequire('./charts/Chart.Line')(Chart);\nrequire('./charts/Chart.PolarArea')(Chart);\nrequire('./charts/Chart.Radar')(Chart);\nrequire('./charts/Chart.Scatter')(Chart);\n\n// Loading built-in plugins\nvar plugins = require('./plugins');\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tChart.plugins.register(plugins[k]);\n\t}\n}\n\nChart.platform.initialize();\n\nmodule.exports = Chart;\nif (typeof window !== 'undefined') {\n\twindow.Chart = Chart;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.Legend = plugins.legend._element;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.Title = plugins.title._element;\n\n/**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.pluginService = Chart.plugins;\n\n/**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\nChart.PluginBase = Chart.Element.extend({});\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nChart.canvasHelpers = Chart.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nChart.layoutService = Chart.layouts;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhCn = moment.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日Ah点mm分',\n LLLL : 'YYYY年M月D日ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%s前',\n s : '几秒',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 小时',\n hh : '%d 小时',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 年',\n yy : '%d 年'\n },\n week : {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var te = moment.defineLocale('te', {\n months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడు] LT',\n nextDay : '[రేపు] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నిన్న] LT',\n lastWeek : '[గత] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s క్రితం',\n s : 'కొన్ని క్షణాలు',\n ss : '%d సెకన్లు',\n m : 'ఒక నిమిషం',\n mm : '%d నిమిషాలు',\n h : 'ఒక గంట',\n hh : '%d గంటలు',\n d : 'ఒక రోజు',\n dd : '%d రోజులు',\n M : 'ఒక నెల',\n MM : '%d నెలలు',\n y : 'ఒక సంవత్సరం',\n yy : '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}వ/,\n ordinal : '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return te;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('');\n\t\treturn text.join('');\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\tvar custom = arc && arc.custom || {};\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: Math.PI * -0.5,\n\n\t// The total circumference of the chart.\n\tcircumference: Math.PI * 2.0,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\ndefaults._set('pie', helpers.clone(defaults.doughnut));\ndefaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Arc,\n\n\t\tlinkScales: helpers.noop,\n\n\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\t\tgetRingIndex: function(datasetIndex) {\n\t\t\tvar ringIndex = 0;\n\n\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t\t++ringIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ringIndex;\n\t\t},\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar opts = chart.options;\n\t\t\tvar arcOpts = opts.elements.arc;\n\t\t\tvar availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\n\t\t\tvar availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\n\t\t\tvar minSize = Math.min(availableWidth, availableHeight);\n\t\t\tvar offset = {x: 0, y: 0};\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar cutoutPercentage = opts.cutoutPercentage;\n\t\t\tvar circumference = opts.circumference;\n\n\t\t\t// If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\n\t\t\tif (circumference < Math.PI * 2.0) {\n\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\n\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n\t\t\t\tvar endAngle = startAngle + circumference;\n\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n\t\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n\t\t\t\tvar contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\n\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n\t\t\t\tvar contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\n\t\t\t\tvar cutout = cutoutPercentage / 100.0;\n\t\t\t\tvar min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\n\t\t\t\tvar max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\n\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n\t\t\t}\n\n\t\t\tchart.borderWidth = me.getMaxBorderWidth(meta.data);\n\t\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\t\t\tchart.offsetX = offset.x * chart.outerRadius;\n\t\t\tchart.offsetY = offset.y * chart.outerRadius;\n\n\t\t\tmeta.total = me.calculateTotal();\n\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\n\t\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\n\n\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t});\n\t\t},\n\n\t\tupdateElement: function(arc, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar opts = chart.options;\n\t\t\tvar animationOpts = opts.animation;\n\t\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\n\t\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n\t\t\thelpers.extend(arc, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\t\tstartAngle: startAngle,\n\t\t\t\t\tendAngle: endAngle,\n\t\t\t\t\tcircumference: circumference,\n\t\t\t\t\touterRadius: outerRadius,\n\t\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar model = arc._model;\n\n\t\t\t// Resets the visual styles\n\t\t\tvar custom = arc.custom || {};\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\tvar elementOpts = this.chart.options.elements.arc;\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\n\n\t\t\t// Set correct angles if not resetting\n\t\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t\t} else {\n\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t\t}\n\n\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t\t}\n\n\t\t\tarc.pivot();\n\t\t},\n\n\t\tcalculateTotal: function() {\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar total = 0;\n\t\t\tvar value;\n\n\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\tvalue = dataset.data[index];\n\t\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\t\ttotal += Math.abs(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t/* if (total === 0) {\n\t\t\t\ttotal = NaN;\n\t\t\t}*/\n\n\t\t\treturn total;\n\t\t},\n\n\t\tcalculateCircumference: function(value) {\n\t\t\tvar total = this.getMeta().total;\n\t\t\tif (total > 0 && !isNaN(value)) {\n\t\t\t\treturn (Math.PI * 2.0) * (Math.abs(value) / total);\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\n\t\t// gets the max border or hover width to properly scale pie charts\n\t\tgetMaxBorderWidth: function(arcs) {\n\t\t\tvar max = 0;\n\t\t\tvar index = this.index;\n\t\t\tvar length = arcs.length;\n\t\t\tvar borderWidth;\n\t\t\tvar hoverWidth;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tborderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\n\t\t\t\thoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t\treturn max;\n\t\t}\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2\n\t\t}\n\t}\n});\n\nmodule.exports = Element.extend({\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar\tangle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += 2.0 * Math.PI;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar sA = vm.startAngle;\n\t\tvar eA = vm.endAngle;\n\n\t\tctx.beginPath();\n\n\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\n\t\tctx.closePath();\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = vm.borderWidth;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\n\t\tctx.fill();\n\t\tctx.lineJoin = 'bevel';\n\n\t\tif (vm.borderWidth) {\n\t\t\tctx.stroke();\n\t\t}\n\t}\n});\n","//! moment.js language configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\nvar scaleService = require('../core/core.scaleService');\nvar Ticks = require('../core/core.ticks');\n\nmodule.exports = function(Chart) {\n\n\tvar defaultConfig = {\n\t\tposition: 'left',\n\t\tticks: {\n\t\t\tcallback: Ticks.formatters.linear\n\t\t}\n\t};\n\n\tvar LinearScale = Chart.LinearScaleBase.extend({\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar chart = me.chart;\n\t\t\tvar data = chart.data;\n\t\t\tvar datasets = data.datasets;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tvar DEFAULT_MIN = 0;\n\t\t\tvar DEFAULT_MAX = 1;\n\n\t\t\tfunction IDMatches(meta) {\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t\t}\n\n\t\t\t// First Calculate the range\n\t\t\tme.min = null;\n\t\t\tme.max = null;\n\n\t\t\tvar hasStacks = opts.stacked;\n\t\t\tif (hasStacks === undefined) {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (hasStacks) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\t\thasStacks = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (opts.stacked || hasStacks) {\n\t\t\t\tvar valuesPerStack = {};\n\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tvar key = [\n\t\t\t\t\t\tmeta.type,\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\t\tmeta.stack\n\t\t\t\t\t].join('.');\n\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = {\n\t\t\t\t\t\t\tpositiveValues: [],\n\t\t\t\t\t\t\tnegativeValues: []\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Store these per type\n\t\t\t\t\tvar positiveValues = valuesPerStack[key].positiveValues;\n\t\t\t\t\tvar negativeValues = valuesPerStack[key].negativeValues;\n\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpositiveValues[index] = positiveValues[index] || 0;\n\t\t\t\t\t\t\tnegativeValues[index] = negativeValues[index] || 0;\n\n\t\t\t\t\t\t\tif (opts.relativePoints) {\n\t\t\t\t\t\t\t\tpositiveValues[index] = 100;\n\t\t\t\t\t\t\t} else if (value < 0) {\n\t\t\t\t\t\t\t\tnegativeValues[index] += value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpositiveValues[index] += value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\n\t\t\t\t\tvar values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\n\t\t\t\t\tvar minVal = helpers.min(values);\n\t\t\t\t\tvar maxVal = helpers.max(values);\n\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\n\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.min === null) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tme.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\t\tme.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\t\tthis.handleTickRangeOptions();\n\t\t},\n\t\tgetTickLimit: function() {\n\t\t\tvar maxTicks;\n\t\t\tvar me = this;\n\t\t\tvar tickOpts = me.options.ticks;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\n\t\t\t} else {\n\t\t\t\t// The factor of 2 used to scale the font size has been experimentally determined.\n\t\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\n\t\t\t}\n\n\t\t\treturn maxTicks;\n\t\t},\n\t\t// Called after the ticks are built. We need\n\t\thandleDirectionalChanges: function() {\n\t\t\tif (!this.isHorizontal()) {\n\t\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\t\tthis.ticks.reverse();\n\t\t\t}\n\t\t},\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\t// Utils\n\t\tgetPixelForValue: function(value) {\n\t\t\t// This must be called after fit has been run so that\n\t\t\t// this.left, this.top, this.right, and this.bottom have been defined\n\t\t\tvar me = this;\n\t\t\tvar start = me.start;\n\n\t\t\tvar rightValue = +me.getRightValue(value);\n\t\t\tvar pixel;\n\t\t\tvar range = me.end - start;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tpixel = me.left + (me.width / range * (rightValue - start));\n\t\t\t} else {\n\t\t\t\tpixel = me.bottom - (me.height / range * (rightValue - start));\n\t\t\t}\n\t\t\treturn pixel;\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tvar innerDimension = isHorizontal ? me.width : me.height;\n\t\t\tvar offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\n\t\t\treturn me.start + ((me.end - me.start) * offset);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.ticksAsNumbers[index]);\n\t\t}\n\t});\n\n\tscaleService.registerScaleType('linear', LinearScale, defaultConfig);\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\nvar Scale = require('../core/core.scale');\nvar scaleService = require('../core/core.scaleService');\nvar Ticks = require('../core/core.ticks');\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\tvar valueOrDefault = helpers.valueOrDefault;\n\n\t// Figure out what the max number of ticks we can support it is based on the size of\n\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t// the graph\n\tvar tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\n\n\tvar endExp = Math.floor(helpers.log10(dataRange.max));\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n\tvar exp, significand;\n\n\tif (tickVal === 0) {\n\t\texp = Math.floor(helpers.log10(dataRange.minNotZero));\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n\t\tticks.push(tickVal);\n\t\ttickVal = significand * Math.pow(10, exp);\n\t} else {\n\t\texp = Math.floor(helpers.log10(tickVal));\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\n\t}\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n\tdo {\n\t\tticks.push(tickVal);\n\n\t\t++significand;\n\t\tif (significand === 10) {\n\t\t\tsignificand = 1;\n\t\t\t++exp;\n\t\t\tprecision = exp >= 0 ? 1 : precision;\n\t\t}\n\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n\tvar lastTick = valueOrDefault(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\n\nmodule.exports = function(Chart) {\n\n\tvar defaultConfig = {\n\t\tposition: 'left',\n\n\t\t// label settings\n\t\tticks: {\n\t\t\tcallback: Ticks.formatters.logarithmic\n\t\t}\n\t};\n\n\tvar LogarithmicScale = Scale.extend({\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar chart = me.chart;\n\t\t\tvar data = chart.data;\n\t\t\tvar datasets = data.datasets;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tfunction IDMatches(meta) {\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t\t}\n\n\t\t\t// Calculate Range\n\t\t\tme.min = null;\n\t\t\tme.max = null;\n\t\t\tme.minNotZero = null;\n\n\t\t\tvar hasStacks = opts.stacked;\n\t\t\tif (hasStacks === undefined) {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (hasStacks) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\t\thasStacks = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (opts.stacked || hasStacks) {\n\t\t\t\tvar valuesPerStack = {};\n\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tvar key = [\n\t\t\t\t\t\tmeta.type,\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\t\tmeta.stack\n\t\t\t\t\t].join('.');\n\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalues[index] = values[index] || 0;\n\t\t\t\t\t\t\tvalues[index] += value;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\n\t\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\t\tvar minVal = helpers.min(valuesForType);\n\t\t\t\t\t\tvar maxVal = helpers.max(valuesForType);\n\t\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\n\t\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.min === null) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\n\t\t\t\t\t\t\t\tme.minNotZero = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\t\tthis.handleTickRangeOptions();\n\t\t},\n\t\thandleTickRangeOptions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\t\tvar DEFAULT_MIN = 1;\n\t\t\tvar DEFAULT_MAX = 10;\n\n\t\t\tme.min = valueOrDefault(tickOpts.min, me.min);\n\t\t\tme.max = valueOrDefault(tickOpts.max, me.max);\n\n\t\t\tif (me.min === me.max) {\n\t\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\n\t\t\t\t\tme.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\n\t\t\t\t} else {\n\t\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.max)) - 1);\n\t\t\t}\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = me.min !== 0\n\t\t\t\t\t? Math.pow(10, Math.floor(helpers.log10(me.min)) + 1)\n\t\t\t\t\t: DEFAULT_MAX;\n\t\t\t}\n\t\t\tif (me.minNotZero === null) {\n\t\t\t\tif (me.min > 0) {\n\t\t\t\t\tme.minNotZero = me.min;\n\t\t\t\t} else if (me.max < 1) {\n\t\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(helpers.log10(me.max)));\n\t\t\t\t} else {\n\t\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar reverse = !me.isHorizontal();\n\n\t\t\tvar generationOptions = {\n\t\t\t\tmin: tickOpts.min,\n\t\t\t\tmax: tickOpts.max\n\t\t\t};\n\t\t\tvar ticks = me.ticks = generateTicks(generationOptions, me);\n\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t\t// range of the scale\n\t\t\tme.max = helpers.max(ticks);\n\t\t\tme.min = helpers.min(ticks);\n\n\t\t\tif (tickOpts.reverse) {\n\t\t\t\treverse = !reverse;\n\t\t\t\tme.start = me.max;\n\t\t\t\tme.end = me.min;\n\t\t\t} else {\n\t\t\t\tme.start = me.min;\n\t\t\t\tme.end = me.max;\n\t\t\t}\n\t\t\tif (reverse) {\n\t\t\t\tticks.reverse();\n\t\t\t}\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tthis.tickValues = this.ticks.slice();\n\n\t\t\tScale.prototype.convertTicksToLabels.call(this);\n\t\t},\n\t\t// Get the correct tooltip label\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.tickValues[index]);\n\t\t},\n\t\t/**\n\t\t * Returns the value of the first tick.\n\t\t * @param {Number} value - The minimum not zero value.\n\t\t * @return {Number} The first tick value.\n\t\t * @private\n\t\t */\n\t\t_getFirstTickValue: function(value) {\n\t\t\tvar exp = Math.floor(helpers.log10(value));\n\t\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\t\treturn significand * Math.pow(10, exp);\n\t\t},\n\t\tgetPixelForValue: function(value) {\n\t\t\tvar me = this;\n\t\t\tvar reverse = me.options.ticks.reverse;\n\t\t\tvar log10 = helpers.log10;\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\t\tvar offset = 0;\n\t\t\tvar innerDimension, pixel, start, end, sign;\n\n\t\t\tvalue = +me.getRightValue(value);\n\t\t\tif (reverse) {\n\t\t\t\tstart = me.end;\n\t\t\t\tend = me.start;\n\t\t\t\tsign = -1;\n\t\t\t} else {\n\t\t\t\tstart = me.start;\n\t\t\t\tend = me.end;\n\t\t\t\tsign = 1;\n\t\t\t}\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tinnerDimension = me.width;\n\t\t\t\tpixel = reverse ? me.right : me.left;\n\t\t\t} else {\n\t\t\t\tinnerDimension = me.height;\n\t\t\t\tsign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\n\t\t\t\tpixel = reverse ? me.top : me.bottom;\n\t\t\t}\n\t\t\tif (value !== start) {\n\t\t\t\tif (start === 0) { // include zero tick\n\t\t\t\t\toffset = helpers.getValueOrDefault(\n\t\t\t\t\t\tme.options.ticks.fontSize,\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\n\t\t\t\t\t);\n\t\t\t\t\tinnerDimension -= offset;\n\t\t\t\t\tstart = firstTickValue;\n\t\t\t\t}\n\t\t\t\tif (value !== 0) {\n\t\t\t\t\toffset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\n\t\t\t\t}\n\t\t\t\tpixel += sign * offset;\n\t\t\t}\n\t\t\treturn pixel;\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar reverse = me.options.ticks.reverse;\n\t\t\tvar log10 = helpers.log10;\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\t\tvar innerDimension, start, end, value;\n\n\t\t\tif (reverse) {\n\t\t\t\tstart = me.end;\n\t\t\t\tend = me.start;\n\t\t\t} else {\n\t\t\t\tstart = me.start;\n\t\t\t\tend = me.end;\n\t\t\t}\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tinnerDimension = me.width;\n\t\t\t\tvalue = reverse ? me.right - pixel : pixel - me.left;\n\t\t\t} else {\n\t\t\t\tinnerDimension = me.height;\n\t\t\t\tvalue = reverse ? pixel - me.top : me.bottom - pixel;\n\t\t\t}\n\t\t\tif (value !== start) {\n\t\t\t\tif (start === 0) { // include zero tick\n\t\t\t\t\tvar offset = helpers.getValueOrDefault(\n\t\t\t\t\t\tme.options.ticks.fontSize,\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\n\t\t\t\t\t);\n\t\t\t\t\tvalue -= offset;\n\t\t\t\t\tinnerDimension -= offset;\n\t\t\t\t\tstart = firstTickValue;\n\t\t\t\t}\n\t\t\t\tvalue *= log10(end) - log10(start);\n\t\t\t\tvalue /= innerDimension;\n\t\t\t\tvalue = Math.pow(10, log10(start) + value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t});\n\n\tscaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var msMy = moment.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return msMy;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\n\t\t\t// Specific to Bar Controller\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\n\t\t\t// offset settings\n\t\t\toffset: true,\n\n\t\t\t// grid line settings\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ndefaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\tposition: 'left',\n\t\t\ttype: 'category',\n\n\t\t\t// Specific to Horizontal Bar Controller\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\n\t\t\t// offset settings\n\t\t\toffset: true,\n\n\t\t\t// grid line settings\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function(item, data) {\n\t\t\t\t// Pick first xLabel for now\n\t\t\t\tvar title = '';\n\n\t\t\t\tif (item.length > 0) {\n\t\t\t\t\tif (item[0].yLabel) {\n\t\t\t\t\t\ttitle = item[0].yLabel;\n\t\t\t\t\t} else if (data.labels.length > 0 && item[0].index < data.labels.length) {\n\t\t\t\t\t\ttitle = data.labels[item[0].index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\treturn datasetLabel + ': ' + item.xLabel;\n\t\t\t}\n\t\t},\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale.isHorizontal() ? scale.width : scale.height;\n\tvar ticks = scale.getTicks();\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, pixels[i] - pixels[i - 1]);\n\t}\n\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, curr - prev) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar size, ratio;\n\n\tif (helpers.isNullOrUndef(thickness)) {\n\t\tsize = ruler.min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale end extremity.\n\t\tprev = curr - (next === null ? ruler.end - curr : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - ((curr - prev) / 2) * percent;\n\tsize = ((next - prev) / 2) * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.bar = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Rectangle,\n\n\t\tinitialize: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta;\n\n\t\t\tChart.DatasetController.prototype.initialize.apply(me, arguments);\n\n\t\t\tmeta = me.getMeta();\n\t\t\tmeta.stack = me.getDataset().stack;\n\t\t\tmeta.bar = true;\n\t\t},\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar rects = me.getMeta().data;\n\t\t\tvar i, ilen;\n\n\t\t\tme._ruler = me.getRuler();\n\n\t\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\t\tme.updateElement(rects[i], i, reset);\n\t\t\t}\n\t\t},\n\n\t\tupdateElement: function(rectangle, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar custom = rectangle.custom || {};\n\t\t\tvar rectangleOptions = chart.options.elements.rectangle;\n\n\t\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\t\trectangle._datasetIndex = me.index;\n\t\t\trectangle._index = index;\n\n\t\t\trectangle._model = {\n\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\tlabel: chart.data.labels[index],\n\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\n\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\n\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\n\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\n\t\t\t};\n\n\t\t\tme.updateElementGeometry(rectangle, index, reset);\n\n\t\t\trectangle.pivot();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tupdateElementGeometry: function(rectangle, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar model = rectangle._model;\n\t\t\tvar vscale = me.getValueScale();\n\t\t\tvar base = vscale.getBasePixel();\n\t\t\tvar horizontal = vscale.isHorizontal();\n\t\t\tvar ruler = me._ruler || me.getRuler();\n\t\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\n\t\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n\t\t\tmodel.horizontal = horizontal;\n\t\t\tmodel.base = reset ? base : vpixels.base;\n\t\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScaleId: function() {\n\t\t\treturn this.getMeta().yAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScaleId: function() {\n\t\t\treturn this.getMeta().xAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScale: function() {\n\t\t\treturn this.getScaleForId(this.getValueScaleId());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScale: function() {\n\t\t\treturn this.getScaleForId(this.getIndexScaleId());\n\t\t},\n\n\t\t/**\n\t\t * Returns the stacks based on groups and bar visibility.\n\t\t * @param {Number} [last] - The dataset index\n\t\t * @returns {Array} The stack list\n\t\t * @private\n\t\t */\n\t\t_getStacks: function(last) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar scale = me.getIndexScale();\n\t\t\tvar stacked = scale.options.stacked;\n\t\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\n\t\t\tvar stacks = [];\n\t\t\tvar i, meta;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\n\t\t\t\t\t(stacked === false ||\n\t\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\n\t\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n\t\t\t\t\tstacks.push(meta.stack);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn stacks;\n\t\t},\n\n\t\t/**\n\t\t * Returns the effective number of stacks based on groups and bar visibility.\n\t\t * @private\n\t\t */\n\t\tgetStackCount: function() {\n\t\t\treturn this._getStacks().length;\n\t\t},\n\n\t\t/**\n\t\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t\t * @param {Number} [datasetIndex] - The dataset index\n\t\t * @param {String} [name] - The stack name to find\n\t\t * @returns {Number} The stack index\n\t\t * @private\n\t\t */\n\t\tgetStackIndex: function(datasetIndex, name) {\n\t\t\tvar stacks = this._getStacks(datasetIndex);\n\t\t\tvar index = (name !== undefined)\n\t\t\t\t? stacks.indexOf(name)\n\t\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\t\treturn (index === -1)\n\t\t\t\t? stacks.length - 1\n\t\t\t\t: index;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetRuler: function() {\n\t\t\tvar me = this;\n\t\t\tvar scale = me.getIndexScale();\n\t\t\tvar stackCount = me.getStackCount();\n\t\t\tvar datasetIndex = me.index;\n\t\t\tvar isHorizontal = scale.isHorizontal();\n\t\t\tvar start = isHorizontal ? scale.left : scale.top;\n\t\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\n\t\t\tvar pixels = [];\n\t\t\tvar i, ilen, min;\n\n\t\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\n\t\t\t}\n\n\t\t\tmin = helpers.isNullOrUndef(scale.options.barThickness)\n\t\t\t\t? computeMinSampleSize(scale, pixels)\n\t\t\t\t: -1;\n\n\t\t\treturn {\n\t\t\t\tmin: min,\n\t\t\t\tpixels: pixels,\n\t\t\t\tstart: start,\n\t\t\t\tend: end,\n\t\t\t\tstackCount: stackCount,\n\t\t\t\tscale: scale\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Note: pixel values are not clamped to the scale area.\n\t\t * @private\n\t\t */\n\t\tcalculateBarValuePixels: function(datasetIndex, index) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar scale = me.getValueScale();\n\t\t\tvar datasets = chart.data.datasets;\n\t\t\tvar value = scale.getRightValue(datasets[datasetIndex].data[index]);\n\t\t\tvar stacked = scale.options.stacked;\n\t\t\tvar stack = meta.stack;\n\t\t\tvar start = 0;\n\t\t\tvar i, imeta, ivalue, base, head, size;\n\n\t\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\t\tfor (i = 0; i < datasetIndex; ++i) {\n\t\t\t\t\timeta = chart.getDatasetMeta(i);\n\n\t\t\t\t\tif (imeta.bar &&\n\t\t\t\t\t\timeta.stack === stack &&\n\t\t\t\t\t\timeta.controller.getValueScaleId() === scale.id &&\n\t\t\t\t\t\tchart.isDatasetVisible(i)) {\n\n\t\t\t\t\t\tivalue = scale.getRightValue(datasets[i].data[index]);\n\t\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n\t\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbase = scale.getPixelForValue(start);\n\t\t\thead = scale.getPixelForValue(start + value);\n\t\t\tsize = (head - base) / 2;\n\n\t\t\treturn {\n\t\t\t\tsize: size,\n\t\t\t\tbase: base,\n\t\t\t\thead: head,\n\t\t\t\tcenter: head + size / 2\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\n\t\t\tvar me = this;\n\t\t\tvar options = ruler.scale.options;\n\t\t\tvar range = options.barThickness === 'flex'\n\t\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\t\tvar size = Math.min(\n\t\t\t\thelpers.valueOrDefault(options.maxBarThickness, Infinity),\n\t\t\t\trange.chunk * range.ratio);\n\n\t\t\treturn {\n\t\t\t\tbase: center - size / 2,\n\t\t\t\thead: center + size / 2,\n\t\t\t\tcenter: center,\n\t\t\t\tsize: size\n\t\t\t};\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar scale = me.getValueScale();\n\t\t\tvar rects = me.getMeta().data;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar ilen = rects.length;\n\t\t\tvar i = 0;\n\n\t\t\thelpers.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\n\t\t\t\t\trects[i].draw();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\n\t\t},\n\t});\n\n\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScaleId: function() {\n\t\t\treturn this.getMeta().xAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScaleId: function() {\n\t\t\treturn this.getMeta().yAxisID;\n\t\t}\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[Hodiaŭ je] LT',\n nextDay : '[Morgaŭ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[Hieraŭ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaŭ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n var sd = moment.defineLocale('sd', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين هفتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل هفتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'هڪ منٽ',\n mm : '%d منٽ',\n h : 'هڪ ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'هڪ ڏينهن',\n dd : '%d ڏينهن',\n M : 'هڪ مهينو',\n MM : '%d مهينا',\n y : 'هڪ سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('radar', {\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.radar = Chart.DatasetController.extend({\n\n\t\tdatasetElementType: elements.Line,\n\n\t\tdataElementType: elements.Point,\n\n\t\tlinkScales: helpers.noop,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar line = meta.dataset;\n\t\t\tvar points = meta.data;\n\t\t\tvar custom = line.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar lineElementOptions = me.chart.options.elements.line;\n\t\t\tvar scale = me.chart.scale;\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t}\n\n\t\t\thelpers.extend(meta.dataset, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_scale: scale,\n\t\t\t\t// Data\n\t\t\t\t_children: points,\n\t\t\t\t_loop: true,\n\t\t\t\t// Model\n\t\t\t\t_model: {\n\t\t\t\t\t// Appearance\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmeta.dataset.pivot();\n\n\t\t\t// Update Points\n\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t}, me);\n\n\t\t\t// Update bezier control points\n\t\t\tme.updateBezierControlPoints();\n\t\t},\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar scale = me.chart.scale;\n\t\t\tvar pointElementOptions = me.chart.options.elements.point;\n\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n\t\t\t\tdataset.pointRadius = dataset.radius;\n\t\t\t}\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\n\t\t\t}\n\n\t\t\thelpers.extend(point, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\t\t\t\t_scale: scale,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\n\n\t\t\t\t\t// Appearance\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\n\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\n\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\n\t\t\t\t\trotation: custom.rotation ? custom.rotation : helpers.valueAtIndexOrDefault(dataset.pointRotation, index, pointElementOptions.rotation),\n\n\t\t\t\t\t// Tooltip\n\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\n\t\t},\n\t\tupdateBezierControlPoints: function() {\n\t\t\tvar chartArea = this.chart.chartArea;\n\t\t\tvar meta = this.getMeta();\n\n\t\t\thelpers.each(meta.data, function(point, index) {\n\t\t\t\tvar model = point._model;\n\t\t\t\tvar controlPoints = helpers.splineCurve(\n\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\n\t\t\t\t\tmodel.tension\n\t\t\t\t);\n\n\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\n\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\n\n\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\n\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\n\n\t\t\t\t// Now pivot the point for animation\n\t\t\t\tpoint.pivot();\n\t\t\t});\n\t\t},\n\n\t\tsetHoverStyle: function(point) {\n\t\t\t// Point\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar index = point._index;\n\t\t\tvar model = point._model;\n\n\t\t\tpoint.$previousStyle = {\n\t\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\t\tborderColor: model.borderColor,\n\t\t\t\tborderWidth: model.borderWidth,\n\t\t\t\tradius: model.radius\n\t\t\t};\n\n\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n\t\t},\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var br = moment.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mk = moment.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Денес во] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'после %s',\n past : 'пред %s',\n s : 'неколку секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дена',\n M : 'месец',\n MM : '%d месеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nb = moment.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en måned',\n MM : '%d måneder',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n var kk = moment.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін сағат] LT',\n nextDay : '[Ертең сағат] LT',\n nextWeek : 'dddd [сағат] LT',\n lastDay : '[Кеше сағат] LT',\n lastWeek : '[Өткен аптаның] dddd [сағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше секунд',\n ss : '%d секунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір сағат',\n hh : '%d сағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.bubble = Chart.DatasetController.extend({\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tdataElementType: elements.Point,\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar points = meta.data;\n\n\t\t\t// Update Points\n\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar options = me._resolveElementOptions(point, index);\n\t\t\tvar data = me.getDataset().data[index];\n\t\t\tvar dsIndex = me.index;\n\n\t\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\t\tpoint._xScale = xScale;\n\t\t\tpoint._yScale = yScale;\n\t\t\tpoint._options = options;\n\t\t\tpoint._datasetIndex = dsIndex;\n\t\t\tpoint._index = index;\n\t\t\tpoint._model = {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\thitRadius: options.hitRadius,\n\t\t\t\tpointStyle: options.pointStyle,\n\t\t\t\trotation: options.rotation,\n\t\t\t\tradius: reset ? 0 : options.radius,\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t};\n\n\t\t\tpoint.pivot();\n\t\t},\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tsetHoverStyle: function(point) {\n\t\t\tvar model = point._model;\n\t\t\tvar options = point._options;\n\t\t\tpoint.$previousStyle = {\n\t\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\t\tborderColor: model.borderColor,\n\t\t\t\tborderWidth: model.borderWidth,\n\t\t\t\tradius: model.radius\n\t\t\t};\n\t\t\tmodel.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\n\t\t\tmodel.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\n\t\t\tmodel.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t\t\tmodel.radius = options.radius + options.hoverRadius;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_resolveElementOptions: function(point, index) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar datasets = chart.data.datasets;\n\t\t\tvar dataset = datasets[me.index];\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar options = chart.options.elements.point;\n\t\t\tvar resolve = helpers.options.resolve;\n\t\t\tvar data = dataset.data[index];\n\t\t\tvar values = {};\n\t\t\tvar i, ilen, key;\n\n\t\t\t// Scriptable options\n\t\t\tvar context = {\n\t\t\t\tchart: chart,\n\t\t\t\tdataIndex: index,\n\t\t\t\tdataset: dataset,\n\t\t\t\tdatasetIndex: me.index\n\t\t\t};\n\n\t\t\tvar keys = [\n\t\t\t\t'backgroundColor',\n\t\t\t\t'borderColor',\n\t\t\t\t'borderWidth',\n\t\t\t\t'hoverBackgroundColor',\n\t\t\t\t'hoverBorderColor',\n\t\t\t\t'hoverBorderWidth',\n\t\t\t\t'hoverRadius',\n\t\t\t\t'hitRadius',\n\t\t\t\t'pointStyle',\n\t\t\t\t'rotation'\n\t\t\t];\n\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdataset[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index);\n\t\t\t}\n\n\t\t\t// Custom radius resolution\n\t\t\tvalues.radius = resolve([\n\t\t\t\tcustom.radius,\n\t\t\t\tdata ? data.r : undefined,\n\t\t\t\tdataset.radius,\n\t\t\t\toptions.radius\n\t\t\t], context, index);\n\t\t\treturn values;\n\t\t}\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enNz = moment.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n\n})));\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar Element = require('./core.element');\nvar helpers = require('../helpers/index');\nvar Ticks = require('./core.ticks');\n\ndefaults._set('scale', {\n\tdisplay: true,\n\tposition: 'left',\n\toffset: false,\n\n\t// grid line settings\n\tgridLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0, 0, 0, 0.1)',\n\t\tlineWidth: 1,\n\t\tdrawBorder: true,\n\t\tdrawOnChartArea: true,\n\t\tdrawTicks: true,\n\t\ttickMarkLength: 10,\n\t\tzeroLineWidth: 1,\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\n\t\tzeroLineBorderDash: [],\n\t\tzeroLineBorderDashOffset: 0.0,\n\t\toffsetGridLines: false,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\t// scale label\n\tscaleLabel: {\n\t\t// display property\n\t\tdisplay: false,\n\n\t\t// actual label\n\t\tlabelString: '',\n\n\t\t// line height\n\t\tlineHeight: 1.2,\n\n\t\t// top/bottom padding\n\t\tpadding: {\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\n\t// label settings\n\tticks: {\n\t\tbeginAtZero: false,\n\t\tminRotation: 0,\n\t\tmaxRotation: 50,\n\t\tmirror: false,\n\t\tpadding: 0,\n\t\treverse: false,\n\t\tdisplay: true,\n\t\tautoSkip: true,\n\t\tautoSkipPadding: 0,\n\t\tlabelOffset: 0,\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n\t\tcallback: Ticks.formatters.values,\n\t\tminor: {},\n\t\tmajor: {}\n\t}\n});\n\nfunction labelsFromTicks(ticks) {\n\tvar labels = [];\n\tvar i, ilen;\n\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\tlabels.push(ticks[i].label);\n\t}\n\n\treturn labels;\n}\n\nfunction getLineValue(scale, index, offsetGridLines) {\n\tvar lineValue = scale.getPixelForTick(index);\n\n\tif (offsetGridLines) {\n\t\tif (index === 0) {\n\t\t\tlineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\n\t\t} else {\n\t\t\tlineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\n\t\t}\n\t}\n\treturn lineValue;\n}\n\nfunction computeTextSize(context, tick, font) {\n\treturn helpers.isArray(tick) ?\n\t\thelpers.longestText(context, font, tick) :\n\t\tcontext.measureText(tick).width;\n}\n\nfunction parseFontOptions(options) {\n\tvar valueOrDefault = helpers.valueOrDefault;\n\tvar globalDefaults = defaults.global;\n\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\tvar style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\n\tvar family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\n\n\treturn {\n\t\tsize: size,\n\t\tstyle: style,\n\t\tfamily: family,\n\t\tfont: helpers.fontString(size, style, family)\n\t};\n}\n\nfunction parseLineHeight(options) {\n\treturn helpers.options.toLineHeight(\n\t\thelpers.valueOrDefault(options.lineHeight, 1.2),\n\t\thelpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\n}\n\nmodule.exports = Element.extend({\n\t/**\n\t * Get the padding needed for the scale\n\t * @method getPadding\n\t * @private\n\t * @returns {Padding} the necessary padding\n\t */\n\tgetPadding: function() {\n\t\tvar me = this;\n\t\treturn {\n\t\t\tleft: me.paddingLeft || 0,\n\t\t\ttop: me.paddingTop || 0,\n\t\t\tright: me.paddingRight || 0,\n\t\t\tbottom: me.paddingBottom || 0\n\t\t};\n\t},\n\n\t/**\n\t * Returns the scale tick objects ({label, major})\n\t * @since 2.7\n\t */\n\tgetTicks: function() {\n\t\treturn this._ticks;\n\t},\n\n\t// These methods are ordered by lifecyle. Utilities then follow.\n\t// Any function defined here is inherited by all scale types.\n\t// Any function can be extended by the scale type\n\n\tmergeTicksOptions: function() {\n\t\tvar ticks = this.options.ticks;\n\t\tif (ticks.minor === false) {\n\t\t\tticks.minor = {\n\t\t\t\tdisplay: false\n\t\t\t};\n\t\t}\n\t\tif (ticks.major === false) {\n\t\t\tticks.major = {\n\t\t\t\tdisplay: false\n\t\t\t};\n\t\t}\n\t\tfor (var key in ticks) {\n\t\t\tif (key !== 'major' && key !== 'minor') {\n\t\t\t\tif (typeof ticks.minor[key] === 'undefined') {\n\t\t\t\t\tticks.minor[key] = ticks[key];\n\t\t\t\t}\n\t\t\t\tif (typeof ticks.major[key] === 'undefined') {\n\t\t\t\t\tticks.major[key] = ticks[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tbeforeUpdate: function() {\n\t\thelpers.callback(this.options.beforeUpdate, [this]);\n\t},\n\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\t\tvar i, ilen, labels, label, ticks, tick;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = helpers.extend({\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ttop: 0,\n\t\t\tbottom: 0\n\t\t}, margins);\n\t\tme.longestTextCache = me.longestTextCache || {};\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\n\t\t// Data min/max\n\t\tme.beforeDataLimits();\n\t\tme.determineDataLimits();\n\t\tme.afterDataLimits();\n\n\t\t// Ticks - `this.ticks` is now DEPRECATED!\n\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n\t\t// and must not be accessed directly from outside this class. `this.ticks` being\n\t\t// around for long time and not marked as private, we can't change its structure\n\t\t// without unexpected breaking changes. If you need to access the scale ticks,\n\t\t// use scale.getTicks() instead.\n\n\t\tme.beforeBuildTicks();\n\n\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\n\t\t// we still support no return (`this.ticks` internally set by calling this method).\n\t\tticks = me.buildTicks() || [];\n\n\t\tme.afterBuildTicks();\n\n\t\tme.beforeTickToLabelConversion();\n\n\t\t// New implementations should return the formatted tick labels but for BACKWARD\n\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\n\t\t// this method and supposed to contain only string values).\n\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\n\n\t\tme.afterTickToLabelConversion();\n\n\t\tme.ticks = labels; // BACKWARD COMPATIBILITY\n\n\t\t// IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\n\n\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n\t\tfor (i = 0, ilen = labels.length; i < ilen; ++i) {\n\t\t\tlabel = labels[i];\n\t\t\ttick = ticks[i];\n\t\t\tif (!tick) {\n\t\t\t\tticks.push(tick = {\n\t\t\t\t\tlabel: label,\n\t\t\t\t\tmajor: false\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttick.label = label;\n\t\t\t}\n\t\t}\n\n\t\tme._ticks = ticks;\n\n\t\t// Tick Rotation\n\t\tme.beforeCalculateTickRotation();\n\t\tme.calculateTickRotation();\n\t\tme.afterCalculateTickRotation();\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: function() {\n\t\thelpers.callback(this.options.afterUpdate, [this]);\n\t},\n\n\t//\n\n\tbeforeSetDimensions: function() {\n\t\thelpers.callback(this.options.beforeSetDimensions, [this]);\n\t},\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\t},\n\tafterSetDimensions: function() {\n\t\thelpers.callback(this.options.afterSetDimensions, [this]);\n\t},\n\n\t// Data limits\n\tbeforeDataLimits: function() {\n\t\thelpers.callback(this.options.beforeDataLimits, [this]);\n\t},\n\tdetermineDataLimits: helpers.noop,\n\tafterDataLimits: function() {\n\t\thelpers.callback(this.options.afterDataLimits, [this]);\n\t},\n\n\t//\n\tbeforeBuildTicks: function() {\n\t\thelpers.callback(this.options.beforeBuildTicks, [this]);\n\t},\n\tbuildTicks: helpers.noop,\n\tafterBuildTicks: function() {\n\t\thelpers.callback(this.options.afterBuildTicks, [this]);\n\t},\n\n\tbeforeTickToLabelConversion: function() {\n\t\thelpers.callback(this.options.beforeTickToLabelConversion, [this]);\n\t},\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\t// Convert ticks to strings\n\t\tvar tickOpts = me.options.ticks;\n\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n\t},\n\tafterTickToLabelConversion: function() {\n\t\thelpers.callback(this.options.afterTickToLabelConversion, [this]);\n\t},\n\n\t//\n\n\tbeforeCalculateTickRotation: function() {\n\t\thelpers.callback(this.options.beforeCalculateTickRotation, [this]);\n\t},\n\tcalculateTickRotation: function() {\n\t\tvar me = this;\n\t\tvar context = me.ctx;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar labels = labelsFromTicks(me._ticks);\n\n\t\t// Get the width of each grid by calculating the difference\n\t\t// between x offsets between 0 and 1.\n\t\tvar tickFont = parseFontOptions(tickOpts);\n\t\tcontext.font = tickFont.font;\n\n\t\tvar labelRotation = tickOpts.minRotation || 0;\n\n\t\tif (labels.length && me.options.display && me.isHorizontal()) {\n\t\t\tvar originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\n\t\t\tvar labelWidth = originalLabelWidth;\n\t\t\tvar cosRotation, sinRotation;\n\n\t\t\t// Allow 3 pixels x2 padding either side for label readability\n\t\t\tvar tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\n\n\t\t\t// Max label rotation can be set or default to 90 - also act as a loop counter\n\t\t\twhile (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\n\t\t\t\tvar angleRadians = helpers.toRadians(labelRotation);\n\t\t\t\tcosRotation = Math.cos(angleRadians);\n\t\t\t\tsinRotation = Math.sin(angleRadians);\n\n\t\t\t\tif (sinRotation * originalLabelWidth > me.maxHeight) {\n\t\t\t\t\t// go back one step\n\t\t\t\t\tlabelRotation--;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tlabelRotation++;\n\t\t\t\tlabelWidth = cosRotation * originalLabelWidth;\n\t\t\t}\n\t\t}\n\n\t\tme.labelRotation = labelRotation;\n\t},\n\tafterCalculateTickRotation: function() {\n\t\thelpers.callback(this.options.afterCalculateTickRotation, [this]);\n\t},\n\n\t//\n\n\tbeforeFit: function() {\n\t\thelpers.callback(this.options.beforeFit, [this]);\n\t},\n\tfit: function() {\n\t\tvar me = this;\n\t\t// Reset\n\t\tvar minSize = me.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\n\t\tvar labels = labelsFromTicks(me._ticks);\n\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\t\tvar scaleLabelOpts = opts.scaleLabel;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar display = opts.display;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tvar tickFont = parseFontOptions(tickOpts);\n\t\tvar tickMarkLength = opts.gridLines.tickMarkLength;\n\n\t\t// Width\n\t\tif (isHorizontal) {\n\t\t\t// subtract the margins to line up with the chartArea if we are a full width scale\n\t\t\tminSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\n\t\t} else {\n\t\t\tminSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n\t\t}\n\n\t\t// height\n\t\tif (isHorizontal) {\n\t\t\tminSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n\t\t} else {\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Are we showing a title for the scale?\n\t\tif (scaleLabelOpts.display && display) {\n\t\t\tvar scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\n\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\n\t\t\tvar deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tminSize.height += deltaHeight;\n\t\t\t} else {\n\t\t\t\tminSize.width += deltaHeight;\n\t\t\t}\n\t\t}\n\n\t\t// Don't bother fitting the ticks if we are not showing them\n\t\tif (tickOpts.display && display) {\n\t\t\tvar largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\n\t\t\tvar tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\n\t\t\tvar lineSpace = tickFont.size * 0.5;\n\t\t\tvar tickPadding = me.options.ticks.padding;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// A horizontal axis is more constrained by the height.\n\t\t\t\tme.longestLabelWidth = largestTextWidth;\n\n\t\t\t\tvar angleRadians = helpers.toRadians(me.labelRotation);\n\t\t\t\tvar cosRotation = Math.cos(angleRadians);\n\t\t\t\tvar sinRotation = Math.sin(angleRadians);\n\n\t\t\t\t// TODO - improve this calculation\n\t\t\t\tvar labelHeight = (sinRotation * largestTextWidth)\n\t\t\t\t\t+ (tickFont.size * tallestLabelHeightInLines)\n\t\t\t\t\t+ (lineSpace * (tallestLabelHeightInLines - 1))\n\t\t\t\t\t+ lineSpace; // padding\n\n\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n\t\t\t\tme.ctx.font = tickFont.font;\n\t\t\t\tvar firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\n\t\t\t\tvar lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\n\n\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n\t\t\t\t// which means that the right padding is dominated by the font height\n\t\t\t\tif (me.labelRotation !== 0) {\n\t\t\t\t\tme.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\n\t\t\t\t\tme.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\n\t\t\t\t} else {\n\t\t\t\t\tme.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\n\t\t\t\t\tme.paddingRight = lastLabelWidth / 2 + 3;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\n\t\t\t\t// dominant factor here, so get that length first and account for padding\n\t\t\t\tif (tickOpts.mirror) {\n\t\t\t\t\tlargestTextWidth = 0;\n\t\t\t\t} else {\n\t\t\t\t\t// use lineSpace for consistency with horizontal axis\n\t\t\t\t\t// tickPadding is not implemented for horizontal\n\t\t\t\t\tlargestTextWidth += tickPadding + lineSpace;\n\t\t\t\t}\n\n\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\n\n\t\t\t\tme.paddingTop = tickFont.size / 2;\n\t\t\t\tme.paddingBottom = tickFont.size / 2;\n\t\t\t}\n\t\t}\n\n\t\tme.handleMargins();\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\n\t/**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n\thandleMargins: function() {\n\t\tvar me = this;\n\t\tif (me.margins) {\n\t\t\tme.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\n\t\t\tme.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\n\t\t\tme.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\n\t\t\tme.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\n\t\t}\n\t},\n\n\tafterFit: function() {\n\t\thelpers.callback(this.options.afterFit, [this]);\n\t},\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\tisFullWidth: function() {\n\t\treturn (this.options.fullWidth);\n\t},\n\n\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n\tgetRightValue: function(rawValue) {\n\t\t// Null and undefined values first\n\t\tif (helpers.isNullOrUndef(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n\t\tif (typeof rawValue === 'number' && !isFinite(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\t\t// If it is in fact an object, dive in one more level\n\t\tif (rawValue) {\n\t\t\tif (this.isHorizontal()) {\n\t\t\t\tif (rawValue.x !== undefined) {\n\t\t\t\t\treturn this.getRightValue(rawValue.x);\n\t\t\t\t}\n\t\t\t} else if (rawValue.y !== undefined) {\n\t\t\t\treturn this.getRightValue(rawValue.y);\n\t\t\t}\n\t\t}\n\n\t\t// Value is good, return it\n\t\treturn rawValue;\n\t},\n\n\t/**\n\t * Used to get the value to display in the tooltip for the data at the given index\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetLabelForIndex: helpers.noop,\n\n\t/**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param value\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetPixelForValue: helpers.noop,\n\n\t/**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param pixel\n\t */\n\tgetValueForPixel: helpers.noop,\n\n\t/**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForTick: function(index) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tif (me.isHorizontal()) {\n\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n\t\t\tvar tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n\t\t\tvar pixel = (tickWidth * index) + me.paddingLeft;\n\n\t\t\tif (offset) {\n\t\t\t\tpixel += tickWidth / 2;\n\t\t\t}\n\n\t\t\tvar finalVal = me.left + Math.round(pixel);\n\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\n\t\t\treturn finalVal;\n\t\t}\n\t\tvar innerHeight = me.height - (me.paddingTop + me.paddingBottom);\n\t\treturn me.top + (index * (innerHeight / (me._ticks.length - 1)));\n\t},\n\n\t/**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForDecimal: function(decimal) {\n\t\tvar me = this;\n\t\tif (me.isHorizontal()) {\n\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n\t\t\tvar valueOffset = (innerWidth * decimal) + me.paddingLeft;\n\n\t\t\tvar finalVal = me.left + Math.round(valueOffset);\n\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\n\t\t\treturn finalVal;\n\t\t}\n\t\treturn me.top + (decimal * me.height);\n\t},\n\n\t/**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetBasePixel: function() {\n\t\treturn this.getPixelForValue(this.getBaseValue());\n\t},\n\n\tgetBaseValue: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0;\n\t},\n\n\t/**\n\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\n\t * @private\n\t */\n\t_autoSkip: function(ticks) {\n\t\tvar skipRatio;\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar optionTicks = me.options.ticks.minor;\n\t\tvar tickCount = ticks.length;\n\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\n\t\tvar cosRotation = Math.cos(labelRotationRadians);\n\t\tvar longestRotatedLabel = me.longestLabelWidth * cosRotation;\n\t\tvar result = [];\n\t\tvar i, tick, shouldSkip;\n\n\t\t// figure out the maximum number of gridlines to show\n\t\tvar maxTicks;\n\t\tif (optionTicks.maxTicksLimit) {\n\t\t\tmaxTicks = optionTicks.maxTicksLimit;\n\t\t}\n\n\t\tif (isHorizontal) {\n\t\t\tskipRatio = false;\n\n\t\t\tif ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\n\t\t\t\tskipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\n\t\t\t}\n\n\t\t\t// if they defined a max number of optionTicks,\n\t\t\t// increase skipRatio until that number is met\n\t\t\tif (maxTicks && tickCount > maxTicks) {\n\t\t\t\tskipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < tickCount; i++) {\n\t\t\ttick = ticks[i];\n\n\t\t\t// Since we always show the last tick,we need may need to hide the last shown one before\n\t\t\tshouldSkip = (skipRatio > 1 && i % skipRatio > 0) || (i % skipRatio === 0 && i + skipRatio >= tickCount);\n\t\t\tif (shouldSkip && i !== tickCount - 1) {\n\t\t\t\t// leave tick in place but make sure it's not displayed (#4635)\n\t\t\t\tdelete tick.label;\n\t\t\t}\n\t\t\tresult.push(tick);\n\t\t}\n\t\treturn result;\n\t},\n\n\t// Actually draw the scale on the canvas\n\t// @param {rectangle} chartArea : the area of the chart to draw full grid lines on\n\tdraw: function(chartArea) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tif (!options.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar context = me.ctx;\n\t\tvar globalDefaults = defaults.global;\n\t\tvar optionTicks = options.ticks.minor;\n\t\tvar optionMajorTicks = options.ticks.major || optionTicks;\n\t\tvar gridLines = options.gridLines;\n\t\tvar scaleLabel = options.scaleLabel;\n\n\t\tvar isRotated = me.labelRotation !== 0;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tvar ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\n\t\tvar tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\n\t\tvar tickFont = parseFontOptions(optionTicks);\n\t\tvar majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\n\t\tvar majorTickFont = parseFontOptions(optionMajorTicks);\n\n\t\tvar tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\n\n\t\tvar scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\n\t\tvar scaleLabelFont = parseFontOptions(scaleLabel);\n\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\n\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\n\n\t\tvar itemsToDraw = [];\n\n\t\tvar axisWidth = me.options.gridLines.lineWidth;\n\t\tvar xTickStart = options.position === 'right' ? me.left : me.right - axisWidth - tl;\n\t\tvar xTickEnd = options.position === 'right' ? me.left + tl : me.right;\n\t\tvar yTickStart = options.position === 'bottom' ? me.top + axisWidth : me.bottom - tl - axisWidth;\n\t\tvar yTickEnd = options.position === 'bottom' ? me.top + axisWidth + tl : me.bottom + axisWidth;\n\n\t\thelpers.each(ticks, function(tick, index) {\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (helpers.isNullOrUndef(tick.label)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar label = tick.label;\n\t\t\tvar lineWidth, lineColor, borderDash, borderDashOffset;\n\t\t\tif (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\n\t\t\t\t// Draw the first index specially\n\t\t\t\tlineWidth = gridLines.zeroLineWidth;\n\t\t\t\tlineColor = gridLines.zeroLineColor;\n\t\t\t\tborderDash = gridLines.zeroLineBorderDash;\n\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset;\n\t\t\t} else {\n\t\t\t\tlineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\n\t\t\t\tlineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\n\t\t\t\tborderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\n\t\t\t\tborderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\n\t\t\t}\n\n\t\t\t// Common properties\n\t\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\n\t\t\tvar textAlign = 'middle';\n\t\t\tvar textBaseline = 'middle';\n\t\t\tvar tickPadding = optionTicks.padding;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tvar labelYOffset = tl + tickPadding;\n\n\t\t\t\tif (options.position === 'bottom') {\n\t\t\t\t\t// bottom\n\t\t\t\t\ttextBaseline = !isRotated ? 'top' : 'middle';\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'right';\n\t\t\t\t\tlabelY = me.top + labelYOffset;\n\t\t\t\t} else {\n\t\t\t\t\t// top\n\t\t\t\t\ttextBaseline = !isRotated ? 'bottom' : 'middle';\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'left';\n\t\t\t\t\tlabelY = me.bottom - labelYOffset;\n\t\t\t\t}\n\n\t\t\t\tvar xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n\t\t\t\tif (xLineValue < me.left) {\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t}\n\t\t\t\txLineValue += helpers.aliasPixel(lineWidth);\n\n\t\t\t\tlabelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\n\n\t\t\t\ttx1 = tx2 = x1 = x2 = xLineValue;\n\t\t\t\tty1 = yTickStart;\n\t\t\t\tty2 = yTickEnd;\n\t\t\t\ty1 = chartArea.top;\n\t\t\t\ty2 = chartArea.bottom + axisWidth;\n\t\t\t} else {\n\t\t\t\tvar isLeft = options.position === 'left';\n\t\t\t\tvar labelXOffset;\n\n\t\t\t\tif (optionTicks.mirror) {\n\t\t\t\t\ttextAlign = isLeft ? 'left' : 'right';\n\t\t\t\t\tlabelXOffset = tickPadding;\n\t\t\t\t} else {\n\t\t\t\t\ttextAlign = isLeft ? 'right' : 'left';\n\t\t\t\t\tlabelXOffset = tl + tickPadding;\n\t\t\t\t}\n\n\t\t\t\tlabelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\n\n\t\t\t\tvar yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n\t\t\t\tif (yLineValue < me.top) {\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t}\n\t\t\t\tyLineValue += helpers.aliasPixel(lineWidth);\n\n\t\t\t\tlabelY = me.getPixelForTick(index) + optionTicks.labelOffset;\n\n\t\t\t\ttx1 = xTickStart;\n\t\t\t\ttx2 = xTickEnd;\n\t\t\t\tx1 = chartArea.left;\n\t\t\t\tx2 = chartArea.right + axisWidth;\n\t\t\t\tty1 = ty2 = y1 = y2 = yLineValue;\n\t\t\t}\n\n\t\t\titemsToDraw.push({\n\t\t\t\ttx1: tx1,\n\t\t\t\tty1: ty1,\n\t\t\t\ttx2: tx2,\n\t\t\t\tty2: ty2,\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2,\n\t\t\t\tlabelX: labelX,\n\t\t\t\tlabelY: labelY,\n\t\t\t\tglWidth: lineWidth,\n\t\t\t\tglColor: lineColor,\n\t\t\t\tglBorderDash: borderDash,\n\t\t\t\tglBorderDashOffset: borderDashOffset,\n\t\t\t\trotation: -1 * labelRotationRadians,\n\t\t\t\tlabel: label,\n\t\t\t\tmajor: tick.major,\n\t\t\t\ttextBaseline: textBaseline,\n\t\t\t\ttextAlign: textAlign\n\t\t\t});\n\t\t});\n\n\t\t// Draw all of the tick labels, tick marks, and grid lines at the correct places\n\t\thelpers.each(itemsToDraw, function(itemToDraw) {\n\t\t\tif (gridLines.display) {\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.lineWidth = itemToDraw.glWidth;\n\t\t\t\tcontext.strokeStyle = itemToDraw.glColor;\n\t\t\t\tif (context.setLineDash) {\n\t\t\t\t\tcontext.setLineDash(itemToDraw.glBorderDash);\n\t\t\t\t\tcontext.lineDashOffset = itemToDraw.glBorderDashOffset;\n\t\t\t\t}\n\n\t\t\t\tcontext.beginPath();\n\n\t\t\t\tif (gridLines.drawTicks) {\n\t\t\t\t\tcontext.moveTo(itemToDraw.tx1, itemToDraw.ty1);\n\t\t\t\t\tcontext.lineTo(itemToDraw.tx2, itemToDraw.ty2);\n\t\t\t\t}\n\n\t\t\t\tif (gridLines.drawOnChartArea) {\n\t\t\t\t\tcontext.moveTo(itemToDraw.x1, itemToDraw.y1);\n\t\t\t\t\tcontext.lineTo(itemToDraw.x2, itemToDraw.y2);\n\t\t\t\t}\n\n\t\t\t\tcontext.stroke();\n\t\t\t\tcontext.restore();\n\t\t\t}\n\n\t\t\tif (optionTicks.display) {\n\t\t\t\t// Make sure we draw text in the correct color and font\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.translate(itemToDraw.labelX, itemToDraw.labelY);\n\t\t\t\tcontext.rotate(itemToDraw.rotation);\n\t\t\t\tcontext.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\n\t\t\t\tcontext.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\n\t\t\t\tcontext.textBaseline = itemToDraw.textBaseline;\n\t\t\t\tcontext.textAlign = itemToDraw.textAlign;\n\n\t\t\t\tvar label = itemToDraw.label;\n\t\t\t\tif (helpers.isArray(label)) {\n\t\t\t\t\tvar lineCount = label.length;\n\t\t\t\t\tvar lineHeight = tickFont.size * 1.5;\n\t\t\t\t\tvar y = me.isHorizontal() ? 0 : -lineHeight * (lineCount - 1) / 2;\n\n\t\t\t\t\tfor (var i = 0; i < lineCount; ++i) {\n\t\t\t\t\t\t// We just make sure the multiline element is a string here..\n\t\t\t\t\t\tcontext.fillText('' + label[i], 0, y);\n\t\t\t\t\t\t// apply same lineSpacing as calculated @ L#320\n\t\t\t\t\t\ty += lineHeight;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontext.fillText(label, 0, 0);\n\t\t\t\t}\n\t\t\t\tcontext.restore();\n\t\t\t}\n\t\t});\n\n\t\tif (scaleLabel.display) {\n\t\t\t// Draw the scale label\n\t\t\tvar scaleLabelX;\n\t\t\tvar scaleLabelY;\n\t\t\tvar rotation = 0;\n\t\t\tvar halfLineHeight = parseLineHeight(scaleLabel) / 2;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tscaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\n\t\t\t\tscaleLabelY = options.position === 'bottom'\n\t\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n\t\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\n\t\t\t} else {\n\t\t\t\tvar isLeft = options.position === 'left';\n\t\t\t\tscaleLabelX = isLeft\n\t\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\n\t\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\n\t\t\t\tscaleLabelY = me.top + ((me.bottom - me.top) / 2);\n\t\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n\t\t\t}\n\n\t\t\tcontext.save();\n\t\t\tcontext.translate(scaleLabelX, scaleLabelY);\n\t\t\tcontext.rotate(rotation);\n\t\t\tcontext.textAlign = 'center';\n\t\t\tcontext.textBaseline = 'middle';\n\t\t\tcontext.fillStyle = scaleLabelFontColor; // render in correct colour\n\t\t\tcontext.font = scaleLabelFont.font;\n\t\t\tcontext.fillText(scaleLabel.labelString, 0, 0);\n\t\t\tcontext.restore();\n\t\t}\n\n\t\tif (gridLines.drawBorder) {\n\t\t\t// Draw the line at the edge of the axis\n\t\t\tcontext.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\n\t\t\tcontext.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\n\t\t\tvar x1 = me.left;\n\t\t\tvar x2 = me.right + axisWidth;\n\t\t\tvar y1 = me.top;\n\t\t\tvar y2 = me.bottom + axisWidth;\n\n\t\t\tvar aliasPixel = helpers.aliasPixel(context.lineWidth);\n\t\t\tif (isHorizontal) {\n\t\t\t\ty1 = y2 = options.position === 'top' ? me.bottom : me.top;\n\t\t\t\ty1 += aliasPixel;\n\t\t\t\ty2 += aliasPixel;\n\t\t\t} else {\n\t\t\t\tx1 = x2 = options.position === 'left' ? me.right : me.left;\n\t\t\t\tx1 += aliasPixel;\n\t\t\t\tx2 += aliasPixel;\n\t\t\t}\n\n\t\t\tcontext.beginPath();\n\t\t\tcontext.moveTo(x1, y1);\n\t\t\tcontext.lineTo(x2, y2);\n\t\t\tcontext.stroke();\n\t\t}\n\t}\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sw = moment.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return sw;\n\n})));\n","/* global window: false */\n'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers.noop,\n\t\tonComplete: helpers.noop\n\t}\n});\n\nmodule.exports = {\n\tframeDuration: 17,\n\tanimations: [],\n\tdropFrames: 0,\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {Number} duration - The animation duration in ms.\n\t * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\t\tvar startTime = Date.now();\n\t\tvar framesToDrop = 0;\n\n\t\tif (me.dropFrames > 1) {\n\t\t\tframesToDrop = Math.floor(me.dropFrames);\n\t\t\tme.dropFrames = me.dropFrames % 1;\n\t\t}\n\n\t\tme.advance(1 + framesToDrop);\n\n\t\tvar endTime = Date.now();\n\n\t\tme.dropFrames += (endTime - startTime) / me.frameDuration;\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function(count) {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart;\n\t\tvar i = 0;\n\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\n\t\t\tanimation.currentStep = (animation.currentStep || 0) + count;\n\t\t\tanimation.currentStep = Math.min(animation.currentStep, animation.numSteps);\n\n\t\t\thelpers.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= animation.numSteps) {\n\t\t\t\thelpers.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months : months,\n monthsShort : monthsShort,\n weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nfunction filterByPosition(array, position) {\n\treturn helpers.where(array, function(v) {\n\t\treturn v.position === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\tarray.forEach(function(v, i) {\n\t\tv._tmpIndex_ = i;\n\t\treturn v;\n\t});\n\tarray.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0._tmpIndex_ - v1._tmpIndex_ :\n\t\t\tv0.weight - v1.weight;\n\t});\n\tarray.forEach(function(v) {\n\t\tdelete v._tmpIndex_;\n\t});\n}\n\n/**\n * @interface ILayoutItem\n * @prop {String} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\n * @prop {Function} getPadding - Returns an object with padding on the edges\n * @prop {Number} width - Width of item. Must be valid after update()\n * @prop {Number} height - Height of item. Must be valid after update()\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nmodule.exports = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {Object} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {Object} item - the item to configure with the given options\n\t * @param {Object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {Number} width - the width to fit into\n\t * @param {Number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers.options.toPadding(layoutOptions.padding);\n\t\tvar leftPadding = padding.left;\n\t\tvar rightPadding = padding.right;\n\t\tvar topPadding = padding.top;\n\t\tvar bottomPadding = padding.bottom;\n\n\t\tvar leftBoxes = filterByPosition(chart.boxes, 'left');\n\t\tvar rightBoxes = filterByPosition(chart.boxes, 'right');\n\t\tvar topBoxes = filterByPosition(chart.boxes, 'top');\n\t\tvar bottomBoxes = filterByPosition(chart.boxes, 'bottom');\n\t\tvar chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\n\n\t\t// Sort boxes by weight. A higher weight is further away from the chart area\n\t\tsortByWeight(leftBoxes, true);\n\t\tsortByWeight(rightBoxes, false);\n\t\tsortByWeight(topBoxes, true);\n\t\tsortByWeight(bottomBoxes, false);\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\t\t// What we do to find the best sizing, we do the following\n\t\t// 1. Determine the minimum size of the chart area.\n\t\t// 2. Split the remaining width equally between each vertical axis\n\t\t// 3. Split the remaining height equally between each horizontal axis\n\t\t// 4. Give each layout the maximum size it can be. The layout will return it's minimum size\n\t\t// 5. Adjust the sizes of each axis based on it's minimum reported size.\n\t\t// 6. Refit each axis\n\t\t// 7. Position each axis in the final location\n\t\t// 8. Tell the chart the final location of the chart area\n\t\t// 9. Tell any axes that overlay the chart area the positions of the chart area\n\n\t\t// Step 1\n\t\tvar chartWidth = width - leftPadding - rightPadding;\n\t\tvar chartHeight = height - topPadding - bottomPadding;\n\t\tvar chartAreaWidth = chartWidth / 2; // min 50%\n\t\tvar chartAreaHeight = chartHeight / 2; // min 50%\n\n\t\t// Step 2\n\t\tvar verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\n\n\t\t// Step 3\n\t\tvar horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\n\n\t\t// Step 4\n\t\tvar maxChartAreaWidth = chartWidth;\n\t\tvar maxChartAreaHeight = chartHeight;\n\t\tvar minBoxSizes = [];\n\n\t\tfunction getMinimumBoxSize(box) {\n\t\t\tvar minSize;\n\t\t\tvar isHorizontal = box.isHorizontal();\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tminSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\n\t\t\t\tmaxChartAreaHeight -= minSize.height;\n\t\t\t} else {\n\t\t\t\tminSize = box.update(verticalBoxWidth, maxChartAreaHeight);\n\t\t\t\tmaxChartAreaWidth -= minSize.width;\n\t\t\t}\n\n\t\t\tminBoxSizes.push({\n\t\t\t\thorizontal: isHorizontal,\n\t\t\t\tminSize: minSize,\n\t\t\t\tbox: box,\n\t\t\t});\n\t\t}\n\n\t\thelpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\n\n\t\t// If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\n\t\tvar maxHorizontalLeftPadding = 0;\n\t\tvar maxHorizontalRightPadding = 0;\n\t\tvar maxVerticalTopPadding = 0;\n\t\tvar maxVerticalBottomPadding = 0;\n\n\t\thelpers.each(topBoxes.concat(bottomBoxes), function(horizontalBox) {\n\t\t\tif (horizontalBox.getPadding) {\n\t\t\t\tvar boxPadding = horizontalBox.getPadding();\n\t\t\t\tmaxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\n\t\t\t\tmaxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\n\t\t\t}\n\t\t});\n\n\t\thelpers.each(leftBoxes.concat(rightBoxes), function(verticalBox) {\n\t\t\tif (verticalBox.getPadding) {\n\t\t\t\tvar boxPadding = verticalBox.getPadding();\n\t\t\t\tmaxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\n\t\t\t\tmaxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\n\t\t\t}\n\t\t});\n\n\t\t// At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\n\t\t// be if the axes are drawn at their minimum sizes.\n\t\t// Steps 5 & 6\n\t\tvar totalLeftBoxesWidth = leftPadding;\n\t\tvar totalRightBoxesWidth = rightPadding;\n\t\tvar totalTopBoxesHeight = topPadding;\n\t\tvar totalBottomBoxesHeight = bottomPadding;\n\n\t\t// Function to fit a box\n\t\tfunction fitBox(box) {\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minBox) {\n\t\t\t\treturn minBox.box === box;\n\t\t\t});\n\n\t\t\tif (minBoxSize) {\n\t\t\t\tif (box.isHorizontal()) {\n\t\t\t\t\tvar scaleMargin = {\n\t\t\t\t\t\tleft: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\n\t\t\t\t\t\tright: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tbottom: 0\n\t\t\t\t\t};\n\n\t\t\t\t\t// Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\n\t\t\t\t\t// on the margin. Sometimes they need to increase in size slightly\n\t\t\t\t\tbox.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\n\t\t\t\t} else {\n\t\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update, and calculate the left and right margins for the horizontal boxes\n\t\thelpers.each(leftBoxes.concat(rightBoxes), fitBox);\n\n\t\thelpers.each(leftBoxes, function(box) {\n\t\t\ttotalLeftBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(rightBoxes, function(box) {\n\t\t\ttotalRightBoxesWidth += box.width;\n\t\t});\n\n\t\t// Set the Left and Right margins for the horizontal boxes\n\t\thelpers.each(topBoxes.concat(bottomBoxes), fitBox);\n\n\t\t// Figure out how much margin is on the top and bottom of the vertical boxes\n\t\thelpers.each(topBoxes, function(box) {\n\t\t\ttotalTopBoxesHeight += box.height;\n\t\t});\n\n\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\ttotalBottomBoxesHeight += box.height;\n\t\t});\n\n\t\tfunction finalFitVerticalBox(box) {\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minSize) {\n\t\t\t\treturn minSize.box === box;\n\t\t\t});\n\n\t\t\tvar scaleMargin = {\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\ttop: totalTopBoxesHeight,\n\t\t\t\tbottom: totalBottomBoxesHeight\n\t\t\t};\n\n\t\t\tif (minBoxSize) {\n\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\n\t\t\t}\n\t\t}\n\n\t\t// Let the left layout know the final margin\n\t\thelpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\n\n\t\t// Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\n\t\ttotalLeftBoxesWidth = leftPadding;\n\t\ttotalRightBoxesWidth = rightPadding;\n\t\ttotalTopBoxesHeight = topPadding;\n\t\ttotalBottomBoxesHeight = bottomPadding;\n\n\t\thelpers.each(leftBoxes, function(box) {\n\t\t\ttotalLeftBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(rightBoxes, function(box) {\n\t\t\ttotalRightBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(topBoxes, function(box) {\n\t\t\ttotalTopBoxesHeight += box.height;\n\t\t});\n\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\ttotalBottomBoxesHeight += box.height;\n\t\t});\n\n\t\t// We may be adding some padding to account for rotated x axis labels\n\t\tvar leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\n\t\ttotalLeftBoxesWidth += leftPaddingAddition;\n\t\ttotalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\n\n\t\tvar topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\n\t\ttotalTopBoxesHeight += topPaddingAddition;\n\t\ttotalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\n\n\t\t// Figure out if our chart area changed. This would occur if the dataset layout label rotation\n\t\t// changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\n\t\t// without calling `fit` again\n\t\tvar newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\n\t\tvar newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\n\n\t\tif (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\n\t\t\thelpers.each(leftBoxes, function(box) {\n\t\t\t\tbox.height = newMaxChartAreaHeight;\n\t\t\t});\n\n\t\t\thelpers.each(rightBoxes, function(box) {\n\t\t\t\tbox.height = newMaxChartAreaHeight;\n\t\t\t});\n\n\t\t\thelpers.each(topBoxes, function(box) {\n\t\t\t\tif (!box.fullWidth) {\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\t\tif (!box.fullWidth) {\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmaxChartAreaHeight = newMaxChartAreaHeight;\n\t\t\tmaxChartAreaWidth = newMaxChartAreaWidth;\n\t\t}\n\n\t\t// Step 7 - Position the boxes\n\t\tvar left = leftPadding + leftPaddingAddition;\n\t\tvar top = topPadding + topPaddingAddition;\n\n\t\tfunction placeBox(box) {\n\t\t\tif (box.isHorizontal()) {\n\t\t\t\tbox.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\n\t\t\t\tbox.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\n\t\t\t\tbox.top = top;\n\t\t\t\tbox.bottom = top + box.height;\n\n\t\t\t\t// Move to next point\n\t\t\t\ttop = box.bottom;\n\n\t\t\t} else {\n\n\t\t\t\tbox.left = left;\n\t\t\t\tbox.right = left + box.width;\n\t\t\t\tbox.top = totalTopBoxesHeight;\n\t\t\t\tbox.bottom = totalTopBoxesHeight + maxChartAreaHeight;\n\n\t\t\t\t// Move to next point\n\t\t\t\tleft = box.right;\n\t\t\t}\n\t\t}\n\n\t\thelpers.each(leftBoxes.concat(topBoxes), placeBox);\n\n\t\t// Account for chart width and height\n\t\tleft += maxChartAreaWidth;\n\t\ttop += maxChartAreaHeight;\n\n\t\thelpers.each(rightBoxes, placeBox);\n\t\thelpers.each(bottomBoxes, placeBox);\n\n\t\t// Step 8\n\t\tchart.chartArea = {\n\t\t\tleft: totalLeftBoxesWidth,\n\t\t\ttop: totalTopBoxesHeight,\n\t\t\tright: totalLeftBoxesWidth + maxChartAreaWidth,\n\t\t\tbottom: totalTopBoxesHeight + maxChartAreaHeight\n\t\t};\n\n\t\t// Step 9\n\t\thelpers.each(chartAreaBoxes, function(box) {\n\t\t\tbox.left = chart.chartArea.left;\n\t\t\tbox.top = chart.chartArea.top;\n\t\t\tbox.right = chart.chartArea.right;\n\t\t\tbox.bottom = chart.chartArea.bottom;\n\n\t\t\tbox.update(maxChartAreaWidth, maxChartAreaHeight);\n\t\t});\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var yo = moment.defineLocale('yo', {\n months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Ònì ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n lastDay : '[Àna ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ní %s',\n past : '%s kọjá',\n s : 'ìsẹjú aayá die',\n ss :'aayá %d',\n m : 'ìsẹjú kan',\n mm : 'ìsẹjú %d',\n h : 'wákati kan',\n hh : 'wákati %d',\n d : 'ọjọ́ kan',\n dd : 'ọjọ́ %d',\n M : 'osù kan',\n MM : 'osù %d',\n y : 'ọdún kan',\n yy : 'ọdún %d'\n },\n dayOfMonthOrdinalParse : /ọjọ́\\s\\d{1,2}/,\n ordinal : 'ọjọ́ %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[včeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'čez %s',\n past : 'pred %s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return arSa;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nmodule.exports = {\n\t/**\n\t * Namespace to hold formatters for different types of ticks\n\t * @namespace Chart.Ticks.formatters\n\t */\n\tformatters: {\n\t\t/**\n\t\t * Formatter for value labels\n\t\t * @method Chart.Ticks.formatters.values\n\t\t * @param value the value to display\n\t\t * @return {String|Array} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers.isArray(value) ? value : '' + value;\n\t\t},\n\n\t\t/**\n\t\t * Formatter for linear numeric ticks\n\t\t * @method Chart.Ticks.formatters.linear\n\t\t * @param tickValue {Number} the value to be formatted\n\t\t * @param index {Number} the position of the tickValue parameter in the ticks array\n\t\t * @param ticks {Array} the list of ticks being converted\n\t\t * @return {String} string representation of the tickValue parameter\n\t\t */\n\t\tlinear: function(tickValue, index, ticks) {\n\t\t\t// If we have lots of ticks, don't use the ones\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\n\t\t\tif (Math.abs(delta) > 1) {\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\n\t\t\t\t\t// not an integer\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar logDelta = helpers.log10(Math.abs(delta));\n\t\t\tvar tickString = '';\n\n\t\t\tif (tickValue !== 0) {\n\t\t\t\tvar maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1]));\n\t\t\t\tif (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation\n\t\t\t\t\tvar logTick = helpers.log10(Math.abs(tickValue));\n\t\t\t\t\ttickString = tickValue.toExponential(Math.floor(logTick) - Math.floor(logDelta));\n\t\t\t\t} else {\n\t\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\n\t\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n\t\t\t\t\ttickString = tickValue.toFixed(numDecimal);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttickString = '0'; // never show decimal places for 0\n\t\t\t}\n\n\t\t\treturn tickString;\n\t\t},\n\n\t\tlogarithmic: function(tickValue, index, ticks) {\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\n\n\t\t\tif (tickValue === 0) {\n\t\t\t\treturn '0';\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n\t\t\t\treturn tickValue.toExponential();\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t}\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bg = moment.defineLocale('bg', {\n months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Днес в] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'след %s',\n past : 'преди %s',\n s : 'няколко секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дни',\n M : 'месец',\n MM : '%d месеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var gl = moment.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\nvar basic = require('./platform.basic');\nvar dom = require('./platform.dom');\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = dom._enabled ? dom : basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nmodule.exports = helpers.extend({\n\t/**\n\t * @since 2.7.0\n\t */\n\tinitialize: function() {},\n\n\t/**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {*} item - The native item from which to acquire context (platform specific)\n\t * @param {Object} options - The chart options\n\t * @returns {CanvasRenderingContext2D} context2d instance\n\t */\n\tacquireContext: function() {},\n\n\t/**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {Boolean} true if the method succeeded, else false\n\t */\n\treleaseContext: function() {},\n\n\t/**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {String} type - The ({@link IEvent}) type to listen for\n\t * @param {Function} listener - Receives a notification (an object that implements\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\n\t */\n\taddEventListener: function() {},\n\n\t/**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart -Chart from which to remove the listener\n\t * @param {String} type - The ({@link IEvent}) type to remove\n\t * @param {Function} listener - The listener function to remove from the event target.\n\t */\n\tremoveEventListener: function() {}\n\n}, implementation);\n\n/**\n * @interface IPlatform\n * Allows abstracting platform dependencies away from the chart\n * @borrows Chart.platform.acquireContext as acquireContext\n * @borrows Chart.platform.releaseContext as releaseContext\n * @borrows Chart.platform.addEventListener as addEventListener\n * @borrows Chart.platform.removeEventListener as removeEventListener\n */\n\n/**\n * @interface IEvent\n * @prop {String} type - The event type name, possible values are:\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\n */\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Radar = function(context, config) {\n\t\tconfig.type = 'radar';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[Σήμερα {}] LT',\n nextDay : '[Αύριο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s πριν',\n s : 'λίγα δευτερόλεπτα',\n ss : '%d δευτερόλεπτα',\n m : 'ένα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ώρα',\n hh : '%d ώρες',\n d : 'μία μέρα',\n dd : '%d μέρες',\n M : 'ένας μήνας',\n MM : '%d μήνες',\n y : 'ένας χρόνος',\n yy : '%d χρόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n function plural(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : '1 dzień',\n dd : '%d dni',\n M : 'miesiąc',\n MM : translate,\n y : 'rok',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n\n})));\n","'use strict';\n\nmodule.exports = {};\nmodule.exports.filler = require('./plugin.filler');\nmodule.exports.legend = require('./plugin.legend');\nmodule.exports.title = require('./plugin.title');\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n var fa = moment.defineLocale('fa', {\n months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[فردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal : '%dم',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var ar = moment.defineLocale('ar', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n var bn = moment.defineLocale('bn', {\n months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেন্ড',\n ss : '%d সেকেন্ড',\n m : 'এক মিনিট',\n mm : '%d মিনিট',\n h : 'এক ঘন্টা',\n hh : '%d ঘন্টা',\n d : 'এক দিন',\n dd : '%d দিন',\n M : 'এক মাস',\n MM : '%d মাস',\n y : 'এক বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhTw = moment.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhTw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months : {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'несколько секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'час',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM : function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact : true,\n weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[Ирэх] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[Өнгөрсөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n var ky = moment.defineLocale('ky', {\n months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн саат] LT',\n nextDay : '[Эртең саат] LT',\n nextWeek : 'dddd [саат] LT',\n lastDay : '[Кече саат] LT',\n lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече секунд',\n ss : '%d секунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир саат',\n hh : '%d саат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","/* MIT license */\nvar colorNames = require('color-name');\n\nmodule.exports = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n}\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3})$/i,\n hex = /^#([a-fA-F0-9]{6})$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr);\n if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorNames[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgb) {\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorNames) {\n reverseNames[colorNames[name]] = name;\n}\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\nvar layouts = require('../core/core.layouts');\n\nvar noop = helpers.noop;\n\ndefaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\n\t\tlineHeight: 1.2,\n\t\tpadding: 10,\n\t\tposition: 'top',\n\t\ttext: '',\n\t\tweight: 2000 // by default greater than legend (1000) to be above\n\t}\n});\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Title = Element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\n\tbeforeUpdate: noop,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: noop,\n\n\t//\n\n\tbeforeSetDimensions: noop,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop,\n\n\t//\n\n\tbeforeBuildLabels: noop,\n\tbuildLabels: noop,\n\tafterBuildLabels: noop,\n\n\t//\n\n\tbeforeFit: noop,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar opts = me.options;\n\t\tvar display = opts.display;\n\t\tvar fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\n\t\tvar minSize = me.minSize;\n\t\tvar lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\n\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n\t\tvar textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = textSize;\n\t\t} else {\n\t\t\tminSize.width = textSize;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\n\t},\n\tafterFit: noop,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\n\t// Actually draw the title block on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar opts = me.options;\n\t\tvar globalDefaults = defaults.global;\n\n\t\tif (opts.display) {\n\t\t\tvar fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\n\t\t\tvar fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\n\t\t\tvar fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\n\t\t\tvar titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\t\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n\t\t\tvar offset = lineHeight / 2 + opts.padding;\n\t\t\tvar rotation = 0;\n\t\t\tvar top = me.top;\n\t\t\tvar left = me.left;\n\t\t\tvar bottom = me.bottom;\n\t\t\tvar right = me.right;\n\t\t\tvar maxWidth, titleX, titleY;\n\n\t\t\tctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\n\t\t\tctx.font = titleFont;\n\n\t\t\t// Horizontal\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\n\t\t\t\ttitleY = top + offset;\n\t\t\t\tmaxWidth = right - left;\n\t\t\t} else {\n\t\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\n\t\t\t\ttitleY = top + ((bottom - top) / 2);\n\t\t\t\tmaxWidth = bottom - top;\n\t\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n\t\t\t}\n\n\t\t\tctx.save();\n\t\t\tctx.translate(titleX, titleY);\n\t\t\tctx.rotate(rotation);\n\t\t\tctx.textAlign = 'center';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tvar text = opts.text;\n\t\t\tif (helpers.isArray(text)) {\n\t\t\t\tvar y = 0;\n\t\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\n\t\t\t\t\ty += lineHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tctx.fillText(text, 0, 0, maxWidth);\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t}\n});\n\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\n\tvar title = new Title({\n\t\tctx: chart.ctx,\n\t\toptions: titleOpts,\n\t\tchart: chart\n\t});\n\n\tlayouts.configure(chart, title, titleOpts);\n\tlayouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nmodule.exports = {\n\tid: 'title',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Title,\n\n\tbeforeInit: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\n\t\tif (titleOpts) {\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\t\tvar titleBlock = chart.titleBlock;\n\n\t\tif (titleOpts) {\n\t\t\thelpers.mergeIf(titleOpts, defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tlayouts.configure(chart, titleBlock, titleOpts);\n\t\t\t\ttitleBlock.options = titleOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t\t}\n\t\t} else if (titleBlock) {\n\t\t\tlayouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {Point} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param chart {chart} the chart\n * @param handler {Function} the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar datasets = chart.data.datasets;\n\tvar meta, i, j, ilen, jlen;\n\n\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\n\t\tif (!chart.isDatasetVisible(i)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tmeta = chart.getDatasetMeta(i);\n\t\tfor (j = 0, jlen = meta.data.length; j < jlen; ++j) {\n\t\t\tvar element = meta.data[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param items {ChartElement[]} elements to filter\n * @param position {Point} the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param chart {Chart} the chart to look at elements from\n * @param position {Point} the point to be nearest to\n * @param intersect {Boolean} if true, only consider items that intersect the position\n * @param distanceMetric {Function} function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {String} axis the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart.data.datasets.forEach(function(dataset, datasetIndex) {\n\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\tvar element = meta.data[items[0]._index];\n\n\t\t\t// don't count items that are skipped (null data)\n\t\t\tif (element && !element._view.skip) {\n\t\t\t\telements.push(element);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nmodule.exports = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\n\n\t\t\t// We have multiple items at the same distance from the event. Now sort by smallest\n\t\t\tif (nearestItems.length > 1) {\n\t\t\t\tnearestItems.sort(function(a, b) {\n\t\t\t\t\tvar sizeA = a.getArea();\n\t\t\t\t\tvar sizeB = b.getArea();\n\t\t\t\t\tvar ret = sizeA - sizeB;\n\n\t\t\t\t\tif (ret === 0) {\n\t\t\t\t\t\t// if equal sort by dataset index\n\t\t\t\t\t\tret = a._datasetIndex - b._datasetIndex;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ret;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Return only 1 item\n\t\t\treturn nearestItems.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n","/* global window: false */\n/* global document: false */\n'use strict';\n\nvar color = require('chartjs-color');\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\nvar scaleService = require('../core/core.scaleService');\n\nmodule.exports = function() {\n\n\t// -- Basic js utility methods\n\n\thelpers.configMerge = function(/* objects ... */) {\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, target, source, options) {\n\t\t\t\tvar tval = target[key] || {};\n\t\t\t\tvar sval = source[key];\n\n\t\t\t\tif (key === 'scales') {\n\t\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\t\ttarget[key] = helpers.scaleMerge(tval, sval);\n\t\t\t\t} else if (key === 'scale') {\n\t\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\t\ttarget[key] = helpers.merge(tval, [scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t\t} else {\n\t\t\t\t\thelpers._merger(key, target, source, options);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thelpers.scaleMerge = function(/* objects ... */) {\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, target, source, options) {\n\t\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\t\tvar slen = source[key].length;\n\t\t\t\t\tvar i, type, scale;\n\n\t\t\t\t\tif (!target[key]) {\n\t\t\t\t\t\ttarget[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\t\ttype = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\t\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\n\t\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\t\thelpers.merge(target[key][i], [scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\t\thelpers.merge(target[key][i], scale);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\thelpers._merger(key, target, source, options);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thelpers.where = function(collection, filterCallback) {\n\t\tif (helpers.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers.each(collection, function(item) {\n\t\t\tif (filterCallback(item)) {\n\t\t\t\tfiltered.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn filtered;\n\t};\n\thelpers.findIndex = Array.prototype.findIndex ?\n\t\tfunction(array, callback, scope) {\n\t\t\treturn array.findIndex(callback, scope);\n\t\t} :\n\t\tfunction(array, callback, scope) {\n\t\t\tscope = scope === undefined ? array : scope;\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\thelpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = -1;\n\t\t}\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\thelpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = arrayToSearch.length;\n\t\t}\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\n\t// -- Math methods\n\thelpers.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\n\t};\n\thelpers.max = function(array) {\n\t\treturn array.reduce(function(max, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.max(max, value);\n\t\t\t}\n\t\t\treturn max;\n\t\t}, Number.NEGATIVE_INFINITY);\n\t};\n\thelpers.min = function(array) {\n\t\treturn array.reduce(function(min, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.min(min, value);\n\t\t\t}\n\t\t\treturn min;\n\t\t}, Number.POSITIVE_INFINITY);\n\t};\n\thelpers.sign = Math.sign ?\n\t\tfunction(x) {\n\t\t\treturn Math.sign(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tx = +x; // convert to a number\n\t\t\tif (x === 0 || isNaN(x)) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn x > 0 ? 1 : -1;\n\t\t};\n\thelpers.log10 = Math.log10 ?\n\t\tfunction(x) {\n\t\t\treturn Math.log10(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t\t// Check for whole powers of 10,\n\t\t\t// which due to floating point rounding error should be corrected.\n\t\t\tvar powerOf10 = Math.round(exponent);\n\t\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t\t};\n\thelpers.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers.getAngleFromPoint = function(centrePoint, anglePoint) {\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\tif (angle < (-0.5 * Math.PI)) {\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n\t\t}\n\n\t\treturn {\n\t\t\tangle: angle,\n\t\t\tdistance: radialDistanceFromCenter\n\t\t};\n\t};\n\thelpers.distanceBetweenPoints = function(pt1, pt2) {\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n\t};\n\thelpers.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\thelpers.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n\t\t// This function must also respect \"skipped\" points\n\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\n\t\tvar current = middlePoint;\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\n\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n\t\tvar s01 = d01 / (d01 + d12);\n\t\tvar s12 = d12 / (d01 + d12);\n\n\t\t// If all points are the same, s01 & s02 will be inf\n\t\ts01 = isNaN(s01) ? 0 : s01;\n\t\ts12 = isNaN(s12) ? 0 : s12;\n\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\n\t\tvar fb = t * s12;\n\n\t\treturn {\n\t\t\tprevious: {\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\n\t\t\t},\n\t\t\tnext: {\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\n\t\t\t}\n\t\t};\n\t};\n\thelpers.EPSILON = Number.EPSILON || 1e-14;\n\thelpers.splineCurveMonotone = function(points) {\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\n\t\t// between the dataset discrete points due to the interpolation.\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\n\t\t\treturn {\n\t\t\t\tmodel: point._model,\n\t\t\t\tdeltaK: 0,\n\t\t\t\tmK: 0\n\t\t\t};\n\t\t});\n\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\n\t\tvar pointsLen = pointsWithTangents.length;\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n\t\t\t}\n\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n\t\t\t\tpointCurrent.mK = 0;\n\t\t\t} else {\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust tangents to ensure monotonic properties\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tpointAfter = pointsWithTangents[i + 1];\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\t\t\tif (squaredMagnitude <= 9) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n\t\t}\n\n\t\t// Compute control points\n\t\tvar deltaX;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t}\n\t};\n\thelpers.nextItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\n\t\t}\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n\t};\n\thelpers.previousItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n\t\t}\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\n\t};\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\n\thelpers.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers.log10(range));\n\t\tvar fraction = range / Math.pow(10, exponent);\n\t\tvar niceFraction;\n\n\t\tif (round) {\n\t\t\tif (fraction < 1.5) {\n\t\t\t\tniceFraction = 1;\n\t\t\t} else if (fraction < 3) {\n\t\t\t\tniceFraction = 2;\n\t\t\t} else if (fraction < 7) {\n\t\t\t\tniceFraction = 5;\n\t\t\t} else {\n\t\t\t\tniceFraction = 10;\n\t\t\t}\n\t\t} else if (fraction <= 1.0) {\n\t\t\tniceFraction = 1;\n\t\t} else if (fraction <= 2) {\n\t\t\tniceFraction = 2;\n\t\t} else if (fraction <= 5) {\n\t\t\tniceFraction = 5;\n\t\t} else {\n\t\t\tniceFraction = 10;\n\t\t}\n\n\t\treturn niceFraction * Math.pow(10, exponent);\n\t};\n\t// Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers.requestAnimFrame = (function() {\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn function(callback) {\n\t\t\t\tcallback();\n\t\t\t};\n\t\t}\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t};\n\t}());\n\t// -- DOM methods\n\thelpers.getRelativePosition = function(evt, chart) {\n\t\tvar mouseX, mouseY;\n\t\tvar e = evt.originalEvent || evt;\n\t\tvar canvas = evt.target || evt.srcElement;\n\t\tvar boundingRect = canvas.getBoundingClientRect();\n\n\t\tvar touches = e.touches;\n\t\tif (touches && touches.length > 0) {\n\t\t\tmouseX = touches[0].clientX;\n\t\t\tmouseY = touches[0].clientY;\n\n\t\t} else {\n\t\t\tmouseX = e.clientX;\n\t\t\tmouseY = e.clientY;\n\t\t}\n\n\t\t// Scale mouse coordinates into canvas coordinates\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\n\t\t// http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n\t\treturn {\n\t\t\tx: mouseX,\n\t\t\ty: mouseY\n\t\t};\n\n\t};\n\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\n\t\tvar valueInPixels;\n\t\tif (typeof styleValue === 'string') {\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\n\n\t\t\tif (styleValue.indexOf('%') !== -1) {\n\t\t\t\t// percentage * size in dimension\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n\t\t\t}\n\t\t} else {\n\t\t\tvalueInPixels = styleValue;\n\t\t}\n\n\t\treturn valueInPixels;\n\t}\n\n\t/**\n\t * Returns if the given value contains an effective constraint.\n\t * @private\n\t */\n\tfunction isConstrainedValue(value) {\n\t\treturn value !== undefined && value !== null && value !== 'none';\n\t}\n\n\t// Private helper to get a constraint dimension\n\t// @param domNode : the node to check the constraint on\n\t// @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\n\t// @param percentageProperty : property of parent to use when calculating width as a percentage\n\t// @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = helpers._getParentNode(domNode);\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\n\t\tvar infinity = Number.POSITIVE_INFINITY;\n\n\t\tif (hasCNode || hasCContainer) {\n\t\t\treturn Math.min(\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n\t\t}\n\n\t\treturn 'none';\n\t}\n\t// returns Number or undefined if no constraint\n\thelpers.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\t/**\n\t * @private\n \t */\n\thelpers._calculatePadding = function(container, padding, parentDimension) {\n\t\tpadding = helpers.getStyle(container, padding);\n\n\t\treturn padding.indexOf('%') > -1 ? parentDimension / parseInt(padding, 10) : parseInt(padding, 10);\n\t};\n\t/**\n\t * @private\n\t */\n\thelpers._getParentNode = function(domNode) {\n\t\tvar parent = domNode.parentNode;\n\t\tif (parent && parent.host) {\n\t\t\tparent = parent.host;\n\t\t}\n\t\treturn parent;\n\t};\n\thelpers.getMaximumWidth = function(domNode) {\n\t\tvar container = helpers._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientWidth;\n\t\t}\n\n\t\tvar clientWidth = container.clientWidth;\n\t\tvar paddingLeft = helpers._calculatePadding(container, 'padding-left', clientWidth);\n\t\tvar paddingRight = helpers._calculatePadding(container, 'padding-right', clientWidth);\n\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers.getMaximumHeight = function(domNode) {\n\t\tvar container = helpers._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientHeight;\n\t\t}\n\n\t\tvar clientHeight = container.clientHeight;\n\t\tvar paddingTop = helpers._calculatePadding(container, 'padding-top', clientHeight);\n\t\tvar paddingBottom = helpers._calculatePadding(container, 'padding-bottom', clientHeight);\n\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers.getStyle = function(el, property) {\n\t\treturn el.currentStyle ?\n\t\t\tel.currentStyle[property] :\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n\t};\n\thelpers.retinaScale = function(chart, forceRatio) {\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n\t\tif (pixelRatio === 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar canvas = chart.canvas;\n\t\tvar height = chart.height;\n\t\tvar width = chart.width;\n\n\t\tcanvas.height = height * pixelRatio;\n\t\tcanvas.width = width * pixelRatio;\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\n\n\t\t// If no style has been set on the canvas, the render size is used as display size,\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\n\t\tif (!canvas.style.height && !canvas.style.width) {\n\t\t\tcanvas.style.height = height + 'px';\n\t\t\tcanvas.style.width = width + 'px';\n\t\t}\n\t};\n\t// -- Canvas methods\n\thelpers.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers.longestText = function(ctx, font, arrayOfThings, cache) {\n\t\tcache = cache || {};\n\t\tvar data = cache.data = cache.data || {};\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\n\n\t\tif (cache.font !== font) {\n\t\t\tdata = cache.data = {};\n\t\t\tgc = cache.garbageCollect = [];\n\t\t\tcache.font = font;\n\t\t}\n\n\t\tctx.font = font;\n\t\tvar longest = 0;\n\t\thelpers.each(arrayOfThings, function(thing) {\n\t\t\t// Undefined strings and arrays should not be measured\n\t\t\tif (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers.isArray(thing)) {\n\t\t\t\t// if it is an array lets measure each element\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\n\t\t\t\thelpers.each(thing, function(nestedThing) {\n\t\t\t\t\t// Undefined strings and arrays should not be measured\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, nestedThing);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tvar gcLen = gc.length / 2;\n\t\tif (gcLen > arrayOfThings.length) {\n\t\t\tfor (var i = 0; i < gcLen; i++) {\n\t\t\t\tdelete data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers.measureText = function(ctx, data, gc, longest, string) {\n\t\tvar textWidth = data[string];\n\t\tif (!textWidth) {\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\n\t\t\tgc.push(string);\n\t\t}\n\t\tif (textWidth > longest) {\n\t\t\tlongest = textWidth;\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers.isArray(thing)) {\n\t\t\t\tif (thing.length > numberOfLines) {\n\t\t\t\t\tnumberOfLines = thing.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn numberOfLines;\n\t};\n\n\thelpers.color = !color ?\n\t\tfunction(value) {\n\t\t\tconsole.error('Color.js not found!');\n\t\t\treturn value;\n\t\t} :\n\t\tfunction(value) {\n\t\t\t/* global CanvasGradient */\n\t\t\tif (value instanceof CanvasGradient) {\n\t\t\t\tvalue = defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn color(value);\n\t\t};\n\n\thelpers.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern) ?\n\t\t\tcolorValue :\n\t\t\thelpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\nvar Scale = require('../core/core.scale');\n\n/**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\n\t// \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar factor;\n\tvar precision;\n\tvar spacing;\n\n\tif (generationOptions.stepSize && generationOptions.stepSize > 0) {\n\t\tspacing = generationOptions.stepSize;\n\t} else {\n\t\tvar niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\n\t\tspacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\n\n\t\tprecision = generationOptions.precision;\n\t\tif (precision !== undefined) {\n\t\t\t// If the user specified a precision, round to that number of decimal places\n\t\t\tfactor = Math.pow(10, precision);\n\t\t\tspacing = Math.ceil(spacing * factor) / factor;\n\t\t}\n\t}\n\tvar niceMin = Math.floor(dataRange.min / spacing) * spacing;\n\tvar niceMax = Math.ceil(dataRange.max / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (!helpers.isNullOrUndef(generationOptions.min) && !helpers.isNullOrUndef(generationOptions.max) && generationOptions.stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\n\t\t\tniceMin = generationOptions.min;\n\t\t\tniceMax = generationOptions.max;\n\t\t}\n\t}\n\n\tvar numSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n\t\tnumSpaces = Math.round(numSpaces);\n\t} else {\n\t\tnumSpaces = Math.ceil(numSpaces);\n\t}\n\n\tprecision = 1;\n\tif (spacing < 1) {\n\t\tprecision = Math.pow(10, 1 - Math.floor(helpers.log10(spacing)));\n\t\tniceMin = Math.round(niceMin * precision) / precision;\n\t\tniceMax = Math.round(niceMax * precision) / precision;\n\t}\n\tticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * precision) / precision);\n\t}\n\tticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\n\n\treturn ticks;\n}\n\nmodule.exports = function(Chart) {\n\n\tvar noop = helpers.noop;\n\n\tChart.LinearScaleBase = Scale.extend({\n\t\tgetRightValue: function(value) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn +value;\n\t\t\t}\n\t\t\treturn Scale.prototype.getRightValue.call(this, value);\n\t\t},\n\n\t\thandleTickRangeOptions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\n\t\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t\t// axis, they can manually override it\n\t\t\tif (tickOpts.beginAtZero) {\n\t\t\t\tvar minSign = helpers.sign(me.min);\n\t\t\t\tvar maxSign = helpers.sign(me.max);\n\n\t\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t\t// move the top up to 0\n\t\t\t\t\tme.max = 0;\n\t\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t\t// move the bottom down to 0\n\t\t\t\t\tme.min = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\t\tif (tickOpts.min !== undefined) {\n\t\t\t\tme.min = tickOpts.min;\n\t\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\t\tif (me.min === null) {\n\t\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tickOpts.max !== undefined) {\n\t\t\t\tme.max = tickOpts.max;\n\t\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\t\tif (me.max === null) {\n\t\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t\t} else {\n\t\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (setMin !== setMax) {\n\t\t\t\t// We set the min or the max but not both.\n\t\t\t\t// So ensure that our range is good\n\t\t\t\t// Inverted or 0 length range can happen when\n\t\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\t\tif (me.min >= me.max) {\n\t\t\t\t\tif (setMin) {\n\t\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (me.min === me.max) {\n\t\t\t\tme.max++;\n\n\t\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\t\tme.min--;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetTickLimit: noop,\n\t\thandleDirectionalChanges: noop,\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\n\t\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n\t\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t\t// the graph. Make sure we always have at least 2 ticks\n\t\t\tvar maxTicks = me.getTickLimit();\n\t\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\t\tvar numericGeneratorOptions = {\n\t\t\t\tmaxTicks: maxTicks,\n\t\t\t\tmin: tickOpts.min,\n\t\t\t\tmax: tickOpts.max,\n\t\t\t\tprecision: tickOpts.precision,\n\t\t\t\tstepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t\t};\n\t\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\t\tme.handleDirectionalChanges();\n\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t\t// range of the scale\n\t\t\tme.max = helpers.max(ticks);\n\t\t\tme.min = helpers.min(ticks);\n\n\t\t\tif (tickOpts.reverse) {\n\t\t\t\tticks.reverse();\n\n\t\t\t\tme.start = me.max;\n\t\t\t\tme.end = me.min;\n\t\t\t} else {\n\t\t\t\tme.start = me.min;\n\t\t\t\tme.end = me.max;\n\t\t\t}\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tvar me = this;\n\t\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\t\tScale.prototype.convertTicksToLabels.call(me);\n\t\t}\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lɛrɛ] LT',\n nextDay : '[Sini lɛrɛ] LT',\n nextWeek : 'dddd [don lɛrɛ] LT',\n lastDay : '[Kunu lɛrɛ] LT',\n lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kɔnɔ',\n past : 'a bɛ %s bɔ',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lɛrɛ kelen',\n hh : 'lɛrɛ %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.PolarArea = function(context, config) {\n\t\tconfig.type = 'polarArea';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\n'use strict';\n\nvar helpers = require('../helpers/index');\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {Number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addEventListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeEventListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar resizer = document.createElement('div');\n\tvar cls = CSS_PREFIX + 'size-monitor';\n\tvar maxSize = 1000000;\n\tvar style =\n\t\t'position:absolute;' +\n\t\t'left:0;' +\n\t\t'top:0;' +\n\t\t'right:0;' +\n\t\t'bottom:0;' +\n\t\t'overflow:hidden;' +\n\t\t'pointer-events:none;' +\n\t\t'visibility:hidden;' +\n\t\t'z-index:-1;';\n\n\tresizer.style.cssText = style;\n\tresizer.className = cls;\n\tresizer.innerHTML =\n\t\t'
' +\n\t\t\t'
' +\n\t\t\t'
' +\n\t\t'
' +\n\t\t'
' +\n\t\t\t'
' +\n\t\t\t'
' +\n\t\t'
';\n\n\tvar expand = resizer.childNodes[0];\n\tvar shrink = resizer.childNodes[1];\n\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddEventListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveEventListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\treturn listener(createEvent('resize', chart));\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\nfunction injectCSS(platform, css) {\n\t// http://stackoverflow.com/q/3922139\n\tvar style = platform._style || document.createElement('style');\n\tif (!platform._style) {\n\t\tplatform._style = style;\n\t\tcss = '/* Chart.js */\\n' + css;\n\t\tstyle.setAttribute('type', 'text/css');\n\t\tdocument.getElementsByTagName('head')[0].appendChild(style);\n\t}\n\n\tstyle.appendChild(document.createTextNode(css));\n}\n\nmodule.exports = {\n\t/**\n\t * This property holds whether this platform is enabled for the current environment.\n\t * Currently used by platform.js to select the proper implementation.\n\t * @private\n\t */\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n\tinitialize: function() {\n\t\tvar keyframes = 'from{opacity:0.99}to{opacity:1}';\n\n\t\tinjectCSS(this,\n\t\t\t// DOM rendering detection\n\t\t\t// https://davidwalsh.name/detect-node-insertion\n\t\t\t'@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n\t\t\t'@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n\t\t\t'.' + CSS_RENDER_MONITOR + '{' +\n\t\t\t\t'-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n\t\t\t\t'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n\t\t\t'}'\n\t\t);\n\t},\n\n\tacquireContext: function(item, config) {\n\t\tif (typeof item === 'string') {\n\t\t\titem = document.getElementById(item);\n\t\t} else if (item.length) {\n\t\t\t// Support for array based queries (such as jQuery)\n\t\t\titem = item[0];\n\t\t}\n\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\tvar context = item && item.getContext && item.getContext('2d');\n\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n\t\t// inside an iframe or when running in a protected environment. We could guess the\n\t\t// types from their toString() value but let's keep things flexible and assume it's\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\n\t\tif (context && context.canvas === item) {\n\t\t\tinitCanvas(item, config);\n\t\t\treturn context;\n\t\t}\n\n\t\treturn null;\n\t},\n\n\treleaseContext: function(context) {\n\t\tvar canvas = context.canvas;\n\t\tif (!canvas[EXPANDO_KEY]) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\n\t\t['height', 'width'].forEach(function(prop) {\n\t\t\tvar value = initial[prop];\n\t\t\tif (helpers.isNullOrUndef(value)) {\n\t\t\t\tcanvas.removeAttribute(prop);\n\t\t\t} else {\n\t\t\t\tcanvas.setAttribute(prop, value);\n\t\t\t}\n\t\t});\n\n\t\thelpers.each(initial.style || {}, function(value, key) {\n\t\t\tcanvas.style[key] = value;\n\t\t});\n\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n\t\tcanvas.width = canvas.width;\n\n\t\tdelete canvas[EXPANDO_KEY];\n\t},\n\n\taddEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\taddResizeListener(canvas, listener, chart);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\n\t\t\tlistener(fromNativeEvent(event, chart));\n\t\t};\n\n\t\taddEventListener(canvas, type, proxy);\n\t},\n\n\tremoveEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\tremoveResizeListener(canvas, listener);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || {};\n\t\tvar proxies = expando.proxies || {};\n\t\tvar proxy = proxies[chart.id + '_' + type];\n\t\tif (!proxy) {\n\t\t\treturn;\n\t\t}\n\n\t\tremoveEventListener(canvas, type, proxy);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.addEvent = addEventListener;\n\n/**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.removeEvent = removeEventListener;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'місяць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້ອື່ນເວລາ] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ອີກ %s',\n past : '%sຜ່ານມາ',\n s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືອນ',\n MM : '%d ເດືອນ',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuḍ',\n mm : '%d minuḍ',\n h : 'saɛa',\n hh : '%d tassaɛin',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\nvar layouts = require('./core.layouts');\n\nmodule.exports = {\n\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n\t// use the new chart options to grab the correct scale\n\tconstructors: {},\n\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\n\t// old browsers\n\n\t// Scale config defaults\n\tdefaults: {},\n\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\n\t\tthis.constructors[type] = scaleConstructor;\n\t\tthis.defaults[type] = helpers.clone(scaleDefaults);\n\t},\n\tgetScaleConstructor: function(type) {\n\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n\t},\n\tgetScaleDefaults: function(type) {\n\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\n\t\treturn this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\n\t},\n\tupdateScaleDefaults: function(type, additions) {\n\t\tvar me = this;\n\t\tif (me.defaults.hasOwnProperty(type)) {\n\t\t\tme.defaults[type] = helpers.extend(me.defaults[type], additions);\n\t\t}\n\t},\n\taddScalesToLayout: function(chart) {\n\t\t// Adds each scale to the chart.boxes array to be sized accordingly\n\t\thelpers.each(chart.scales, function(scale) {\n\t\t\t// Set ILayoutItem parameters for backwards compatibility\n\t\t\tscale.fullWidth = scale.options.fullWidth;\n\t\t\tscale.position = scale.options.position;\n\t\t\tscale.weight = scale.options.weight;\n\t\t\tlayouts.addBox(chart, scale);\n\t\t});\n\t}\n};\n","/* MIT license */\n\nmodule.exports = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n}\n\n\nfunction rgb2hsl(rgb) {\n var r = rgb[0]/255,\n g = rgb[1]/255,\n b = rgb[2]/255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g)/ delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n}\n\nfunction rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta/max * 1000)/10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n}\n\nfunction rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1/255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n}\n\nfunction rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n}\n\nfunction rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n}\n\nfunction rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Šodien pulksten] LT',\n nextDay : '[Rīt pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[Pagājušā] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pēc %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","var conversions = require(\"./conversions\");\n\nvar convert = function() {\n return new Converter();\n}\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n }\n});\n\nmodule.exports = convert;","'use strict';\n\nvar helpers = require('./helpers.core');\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nmodule.exports = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.easingEffects = effects;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\n'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tplugins: {\n\t\tfiller: {\n\t\t\tpropagate: true\n\t\t}\n\t}\n});\n\nvar mappers = {\n\tdataset: function(source) {\n\t\tvar index = source.fill;\n\t\tvar chart = source.chart;\n\t\tvar meta = chart.getDatasetMeta(index);\n\t\tvar visible = meta && chart.isDatasetVisible(index);\n\t\tvar points = (visible && meta.dataset._children) || [];\n\t\tvar length = points.length || 0;\n\n\t\treturn !length ? null : function(point, i) {\n\t\t\treturn (i < length && points[i]._view) || null;\n\t\t};\n\t},\n\n\tboundary: function(source) {\n\t\tvar boundary = source.boundary;\n\t\tvar x = boundary ? boundary.x : null;\n\t\tvar y = boundary ? boundary.y : null;\n\n\t\treturn function(point) {\n\t\t\treturn {\n\t\t\t\tx: x === null ? point.x : x,\n\t\t\t\ty: y === null ? point.y : y,\n\t\t\t};\n\t\t};\n\t}\n};\n\n// @todo if (fill[0] === '#')\nfunction decodeFill(el, index, count) {\n\tvar model = el._model || {};\n\tvar fill = model.fill;\n\tvar target;\n\n\tif (fill === undefined) {\n\t\tfill = !!model.backgroundColor;\n\t}\n\n\tif (fill === false || fill === null) {\n\t\treturn false;\n\t}\n\n\tif (fill === true) {\n\t\treturn 'origin';\n\t}\n\n\ttarget = parseFloat(fill, 10);\n\tif (isFinite(target) && Math.floor(target) === target) {\n\t\tif (fill[0] === '-' || fill[0] === '+') {\n\t\t\ttarget = index + target;\n\t\t}\n\n\t\tif (target === index || target < 0 || target >= count) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tswitch (fill) {\n\t// compatibility\n\tcase 'bottom':\n\t\treturn 'start';\n\tcase 'top':\n\t\treturn 'end';\n\tcase 'zero':\n\t\treturn 'origin';\n\t// supported boundaries\n\tcase 'origin':\n\tcase 'start':\n\tcase 'end':\n\t\treturn fill;\n\t// invalid fill values\n\tdefault:\n\t\treturn false;\n\t}\n}\n\nfunction computeBoundary(source) {\n\tvar model = source.el._model || {};\n\tvar scale = source.el._scale || {};\n\tvar fill = source.fill;\n\tvar target = null;\n\tvar horizontal;\n\n\tif (isFinite(fill)) {\n\t\treturn null;\n\t}\n\n\t// Backward compatibility: until v3, we still need to support boundary values set on\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n\t// controllers might still use it (e.g. the Smith chart).\n\n\tif (fill === 'start') {\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n\t} else if (fill === 'end') {\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\n\t} else if (model.scaleZero !== undefined) {\n\t\ttarget = model.scaleZero;\n\t} else if (scale.getBasePosition) {\n\t\ttarget = scale.getBasePosition();\n\t} else if (scale.getBasePixel) {\n\t\ttarget = scale.getBasePixel();\n\t}\n\n\tif (target !== undefined && target !== null) {\n\t\tif (target.x !== undefined && target.y !== undefined) {\n\t\t\treturn target;\n\t\t}\n\n\t\tif (typeof target === 'number' && isFinite(target)) {\n\t\t\thorizontal = scale.isHorizontal();\n\t\t\treturn {\n\t\t\t\tx: horizontal ? target : null,\n\t\t\t\ty: horizontal ? null : target\n\t\t\t};\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction resolveTarget(sources, index, propagate) {\n\tvar source = sources[index];\n\tvar fill = source.fill;\n\tvar visited = [index];\n\tvar target;\n\n\tif (!propagate) {\n\t\treturn fill;\n\t}\n\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\n\t\tif (!isFinite(fill)) {\n\t\t\treturn fill;\n\t\t}\n\n\t\ttarget = sources[fill];\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target.visible) {\n\t\t\treturn fill;\n\t\t}\n\n\t\tvisited.push(fill);\n\t\tfill = target.fill;\n\t}\n\n\treturn false;\n}\n\nfunction createMapper(source) {\n\tvar fill = source.fill;\n\tvar type = 'dataset';\n\n\tif (fill === false) {\n\t\treturn null;\n\t}\n\n\tif (!isFinite(fill)) {\n\t\ttype = 'boundary';\n\t}\n\n\treturn mappers[type](source);\n}\n\nfunction isDrawable(point) {\n\treturn point && !point.skip;\n}\n\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\n\tvar i;\n\n\tif (!len0 || !len1) {\n\t\treturn;\n\t}\n\n\t// building first area curve (normal)\n\tctx.moveTo(curve0[0].x, curve0[0].y);\n\tfor (i = 1; i < len0; ++i) {\n\t\thelpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n\t}\n\n\t// joining the two area curves\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n\t// building opposite area curve (reverse)\n\tfor (i = len1 - 1; i > 0; --i) {\n\t\thelpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n\t}\n}\n\nfunction doFill(ctx, points, mapper, view, color, loop) {\n\tvar count = points.length;\n\tvar span = view.spanGaps;\n\tvar curve0 = [];\n\tvar curve1 = [];\n\tvar len0 = 0;\n\tvar len1 = 0;\n\tvar i, ilen, index, p0, p1, d0, d1;\n\n\tctx.beginPath();\n\n\tfor (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\n\t\tindex = i % count;\n\t\tp0 = points[index]._view;\n\t\tp1 = mapper(p0, index, view);\n\t\td0 = isDrawable(p0);\n\t\td1 = isDrawable(p1);\n\n\t\tif (d0 && d1) {\n\t\t\tlen0 = curve0.push(p0);\n\t\t\tlen1 = curve1.push(p1);\n\t\t} else if (len0 && len1) {\n\t\t\tif (!span) {\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\n\t\t\t\tlen0 = len1 = 0;\n\t\t\t\tcurve0 = [];\n\t\t\t\tcurve1 = [];\n\t\t\t} else {\n\t\t\t\tif (d0) {\n\t\t\t\t\tcurve0.push(p0);\n\t\t\t\t}\n\t\t\t\tif (d1) {\n\t\t\t\t\tcurve1.push(p1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdrawArea(ctx, curve0, curve1, len0, len1);\n\n\tctx.closePath();\n\tctx.fillStyle = color;\n\tctx.fill();\n}\n\nmodule.exports = {\n\tid: 'filler',\n\n\tafterDatasetsUpdate: function(chart, options) {\n\t\tvar count = (chart.data.datasets || []).length;\n\t\tvar propagate = options.propagate;\n\t\tvar sources = [];\n\t\tvar meta, i, el, source;\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tel = meta.dataset;\n\t\t\tsource = null;\n\n\t\t\tif (el && el._model && el instanceof elements.Line) {\n\t\t\t\tsource = {\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\n\t\t\t\t\tfill: decodeFill(el, i, count),\n\t\t\t\t\tchart: chart,\n\t\t\t\t\tel: el\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tmeta.$filler = source;\n\t\t\tsources.push(source);\n\t\t}\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!source) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\n\t\t\tsource.boundary = computeBoundary(source);\n\t\t\tsource.mapper = createMapper(source);\n\t\t}\n\t},\n\n\tbeforeDatasetDraw: function(chart, args) {\n\t\tvar meta = args.meta.$filler;\n\t\tif (!meta) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = chart.ctx;\n\t\tvar el = meta.el;\n\t\tvar view = el._view;\n\t\tvar points = el._children || [];\n\t\tvar mapper = meta.mapper;\n\t\tvar color = view.backgroundColor || defaults.global.defaultColor;\n\n\t\tif (mapper && color && points.length) {\n\t\t\thelpers.canvas.clipArea(ctx, chart.chartArea);\n\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\thelpers.canvas.unclipArea(ctx);\n\t\t}\n\t}\n};\n","'use strict';\n\nmodule.exports = {};\nmodule.exports.Arc = require('./element.arc');\nmodule.exports.Line = require('./element.line');\nmodule.exports.Point = require('./element.point');\nmodule.exports.Rectangle = require('./element.rectangle');\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzm = moment.defineLocale('tzm', {\n months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past : 'ⵢⴰⵏ %s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉⵏⵓⴺ',\n mm : '%d ⵎⵉⵏⵓⴺ',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰⵏ',\n M : 'ⴰⵢoⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔⵏ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return tzm;\n\n})));\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').trim();\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.22.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'YYYY-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var he = moment.defineLocale('he', {\n months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[היום ב־]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[אתמול ב־]LT',\n lastWeek : '[ביום] dddd [האחרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : 'לפני %s',\n s : 'מספר שניות',\n ss : '%d שניות',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d : 'יום',\n dd : function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y : 'שנה',\n yy : function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n\n return he;\n\n})));\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar Element = require('./core.element');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\ttooltips: {\n\t\tenabled: true,\n\t\tcustom: null,\n\t\tmode: 'nearest',\n\t\tposition: 'average',\n\t\tintersect: true,\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\n\t\ttitleFontStyle: 'bold',\n\t\ttitleSpacing: 2,\n\t\ttitleMarginBottom: 6,\n\t\ttitleFontColor: '#fff',\n\t\ttitleAlign: 'left',\n\t\tbodySpacing: 2,\n\t\tbodyFontColor: '#fff',\n\t\tbodyAlign: 'left',\n\t\tfooterFontStyle: 'bold',\n\t\tfooterSpacing: 2,\n\t\tfooterMarginTop: 6,\n\t\tfooterFontColor: '#fff',\n\t\tfooterAlign: 'left',\n\t\tyPadding: 6,\n\t\txPadding: 6,\n\t\tcaretPadding: 2,\n\t\tcaretSize: 5,\n\t\tcornerRadius: 6,\n\t\tmultiKeyBackground: '#fff',\n\t\tdisplayColors: true,\n\t\tborderColor: 'rgba(0,0,0,0)',\n\t\tborderWidth: 0,\n\t\tcallbacks: {\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeTitle: helpers.noop,\n\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\t// Pick first xLabel for now\n\t\t\t\tvar title = '';\n\t\t\t\tvar labels = data.labels;\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\n\n\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\tvar item = tooltipItems[0];\n\n\t\t\t\t\tif (item.xLabel) {\n\t\t\t\t\t\ttitle = item.xLabel;\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\n\t\t\t\t\t\ttitle = labels[item.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\t\t\tafterTitle: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers.noop,\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel += ': ';\n\t\t\t\t}\n\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\treturn label;\n\t\t\t},\n\t\t\tlabelColor: function(tooltipItem, chart) {\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\n\t\t\t\tvar view = activeElement._view;\n\t\t\t\treturn {\n\t\t\t\t\tborderColor: view.borderColor,\n\t\t\t\t\tbackgroundColor: view.backgroundColor\n\t\t\t\t};\n\t\t\t},\n\t\t\tlabelTextColor: function() {\n\t\t\t\treturn this._options.bodyFontColor;\n\t\t\t},\n\t\t\tafterLabel: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers.noop,\n\t\t\tfooter: helpers.noop,\n\t\t\tafterFooter: helpers.noop\n\t\t}\n\t}\n});\n\nvar positioners = {\n\t/**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t * @function Chart.Tooltip.positioners.average\n\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\n\t * @returns {Point} tooltip position\n\t */\n\taverage: function(elements) {\n\t\tif (!elements.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar i, len;\n\t\tvar x = 0;\n\t\tvar y = 0;\n\t\tvar count = 0;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar pos = el.tooltipPosition();\n\t\t\t\tx += pos.x;\n\t\t\t\ty += pos.y;\n\t\t\t\t++count;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tx: Math.round(x / count),\n\t\t\ty: Math.round(y / count)\n\t\t};\n\t},\n\n\t/**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t * @function Chart.Tooltip.positioners.nearest\n\t * @param elements {Chart.Element[]} the tooltip elements\n\t * @param eventPosition {Point} the position of the event in canvas coordinates\n\t * @returns {Point} the tooltip position\n\t */\n\tnearest: function(elements, eventPosition) {\n\t\tvar x = eventPosition.x;\n\t\tvar y = eventPosition.y;\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\n\t\tvar i, len, nearestElement;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar center = el.getCenterPoint();\n\t\t\t\tvar d = helpers.distanceBetweenPoints(eventPosition, center);\n\n\t\t\t\tif (d < minDistance) {\n\t\t\t\t\tminDistance = d;\n\t\t\t\t\tnearestElement = el;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (nearestElement) {\n\t\t\tvar tp = nearestElement.tooltipPosition();\n\t\t\tx = tp.x;\n\t\t\ty = tp.y;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t}\n};\n\n/**\n * Helper method to merge the opacity into a color\n */\nfunction mergeOpacity(colorString, opacity) {\n\tvar color = helpers.color(colorString);\n\treturn color.alpha(opacity * color.alpha()).rgbaString();\n}\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n\tif (toPush) {\n\t\tif (helpers.isArray(toPush)) {\n\t\t\t// base = base.concat(toPush);\n\t\t\tArray.prototype.push.apply(base, toPush);\n\t\t} else {\n\t\t\tbase.push(toPush);\n\t\t}\n\t}\n\n\treturn base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {String} value - The value to split by newline.\n * @returns {Array} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n\tif ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n\t\treturn str.split('\\n');\n\t}\n\treturn str;\n}\n\n\n// Private helper to create a tooltip item model\n// @param element : the chart element (point, arc, bar) to create the tooltip item for\n// @return : new tooltip item\nfunction createTooltipItem(element) {\n\tvar xScale = element._xScale;\n\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\n\tvar index = element._index;\n\tvar datasetIndex = element._datasetIndex;\n\n\treturn {\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tindex: index,\n\t\tdatasetIndex: datasetIndex,\n\t\tx: element._model.x,\n\t\ty: element._model.y\n\t};\n}\n\n/**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {Object} the tooltip options\n */\nfunction getBaseModel(tooltipOpts) {\n\tvar globalDefaults = defaults.global;\n\tvar valueOrDefault = helpers.valueOrDefault;\n\n\treturn {\n\t\t// Positioning\n\t\txPadding: tooltipOpts.xPadding,\n\t\tyPadding: tooltipOpts.yPadding,\n\t\txAlign: tooltipOpts.xAlign,\n\t\tyAlign: tooltipOpts.yAlign,\n\n\t\t// Body\n\t\tbodyFontColor: tooltipOpts.bodyFontColor,\n\t\t_bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t_bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\tbodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t// Title\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t_titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t_titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\ttitleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n\t\t_titleAlign: tooltipOpts.titleAlign,\n\t\ttitleSpacing: tooltipOpts.titleSpacing,\n\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\n\n\t\t// Footer\n\t\tfooterFontColor: tooltipOpts.footerFontColor,\n\t\t_footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t_footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\tfooterFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n\t\t_footerAlign: tooltipOpts.footerAlign,\n\t\tfooterSpacing: tooltipOpts.footerSpacing,\n\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\n\n\t\t// Appearance\n\t\tcaretSize: tooltipOpts.caretSize,\n\t\tcornerRadius: tooltipOpts.cornerRadius,\n\t\tbackgroundColor: tooltipOpts.backgroundColor,\n\t\topacity: 0,\n\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\n\t\tdisplayColors: tooltipOpts.displayColors,\n\t\tborderColor: tooltipOpts.borderColor,\n\t\tborderWidth: tooltipOpts.borderWidth\n\t};\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, model) {\n\tvar ctx = tooltip._chart.ctx;\n\n\tvar height = model.yPadding * 2; // Tooltip Padding\n\tvar width = 0;\n\n\t// Count of all lines in the body\n\tvar body = model.body;\n\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\n\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n\t}, 0);\n\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n\tvar titleLineCount = model.title.length;\n\tvar footerLineCount = model.footer.length;\n\tvar titleFontSize = model.titleFontSize;\n\tvar bodyFontSize = model.bodyFontSize;\n\tvar footerFontSize = model.footerFontSize;\n\n\theight += titleLineCount * titleFontSize; // Title Lines\n\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n\theight += combinedBodyLength * bodyFontSize; // Body Lines\n\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n\theight += footerLineCount * (footerFontSize); // Footer Lines\n\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n\t// Title width\n\tvar widthPadding = 0;\n\tvar maxLineWidth = function(line) {\n\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\n\t};\n\n\tctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\thelpers.each(model.title, maxLineWidth);\n\n\t// Body width\n\tctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\thelpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n\t// Body lines may include some extra width due to the color box\n\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n\thelpers.each(body, function(bodyItem) {\n\t\thelpers.each(bodyItem.before, maxLineWidth);\n\t\thelpers.each(bodyItem.lines, maxLineWidth);\n\t\thelpers.each(bodyItem.after, maxLineWidth);\n\t});\n\n\t// Reset back to 0\n\twidthPadding = 0;\n\n\t// Footer width\n\tctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\thelpers.each(model.footer, maxLineWidth);\n\n\t// Add padding\n\twidth += 2 * model.xPadding;\n\n\treturn {\n\t\twidth: width,\n\t\theight: height\n\t};\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(tooltip, size) {\n\tvar model = tooltip._model;\n\tvar chart = tooltip._chart;\n\tvar chartArea = tooltip._chart.chartArea;\n\tvar xAlign = 'center';\n\tvar yAlign = 'center';\n\n\tif (model.y < size.height) {\n\t\tyAlign = 'top';\n\t} else if (model.y > (chart.height - size.height)) {\n\t\tyAlign = 'bottom';\n\t}\n\n\tvar lf, rf; // functions to determine left, right alignment\n\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n\tvar midX = (chartArea.left + chartArea.right) / 2;\n\tvar midY = (chartArea.top + chartArea.bottom) / 2;\n\n\tif (yAlign === 'center') {\n\t\tlf = function(x) {\n\t\t\treturn x <= midX;\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x > midX;\n\t\t};\n\t} else {\n\t\tlf = function(x) {\n\t\t\treturn x <= (size.width / 2);\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x >= (chart.width - (size.width / 2));\n\t\t};\n\t}\n\n\tolf = function(x) {\n\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\n\t};\n\torf = function(x) {\n\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\n\t};\n\tyf = function(y) {\n\t\treturn y <= midY ? 'top' : 'bottom';\n\t};\n\n\tif (lf(model.x)) {\n\t\txAlign = 'left';\n\n\t\t// Is tooltip too wide and goes over the right side of the chart.?\n\t\tif (olf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t} else if (rf(model.x)) {\n\t\txAlign = 'right';\n\n\t\t// Is tooltip too wide and goes outside left edge of canvas?\n\t\tif (orf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t}\n\n\tvar opts = tooltip._options;\n\treturn {\n\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\n\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\n\t};\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(vm, size, alignment, chart) {\n\t// Background Position\n\tvar x = vm.x;\n\tvar y = vm.y;\n\n\tvar caretSize = vm.caretSize;\n\tvar caretPadding = vm.caretPadding;\n\tvar cornerRadius = vm.cornerRadius;\n\tvar xAlign = alignment.xAlign;\n\tvar yAlign = alignment.yAlign;\n\tvar paddingAndSize = caretSize + caretPadding;\n\tvar radiusAndPadding = cornerRadius + caretPadding;\n\n\tif (xAlign === 'right') {\n\t\tx -= size.width;\n\t} else if (xAlign === 'center') {\n\t\tx -= (size.width / 2);\n\t\tif (x + size.width > chart.width) {\n\t\t\tx = chart.width - size.width;\n\t\t}\n\t\tif (x < 0) {\n\t\t\tx = 0;\n\t\t}\n\t}\n\n\tif (yAlign === 'top') {\n\t\ty += paddingAndSize;\n\t} else if (yAlign === 'bottom') {\n\t\ty -= size.height + paddingAndSize;\n\t} else {\n\t\ty -= (size.height / 2);\n\t}\n\n\tif (yAlign === 'center') {\n\t\tif (xAlign === 'left') {\n\t\t\tx += paddingAndSize;\n\t\t} else if (xAlign === 'right') {\n\t\t\tx -= paddingAndSize;\n\t\t}\n\t} else if (xAlign === 'left') {\n\t\tx -= radiusAndPadding;\n\t} else if (xAlign === 'right') {\n\t\tx += radiusAndPadding;\n\t}\n\n\treturn {\n\t\tx: x,\n\t\ty: y\n\t};\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n\treturn pushOrConcat([], splitNewlines(callback));\n}\n\nvar exports = module.exports = Element.extend({\n\tinitialize: function() {\n\t\tthis._model = getBaseModel(this._options);\n\t\tthis._lastActive = [];\n\t},\n\n\t// Get the title\n\t// Args are: (tooltipItem, data)\n\tgetTitle: function() {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\t\tvar callbacks = opts.callbacks;\n\n\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n\t\tvar title = callbacks.title.apply(me, arguments);\n\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeTitle));\n\t\tlines = pushOrConcat(lines, splitNewlines(title));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n\t\treturn lines;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBeforeBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments));\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBody: function(tooltipItems, data) {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\t\tvar bodyItems = [];\n\n\t\thelpers.each(tooltipItems, function(tooltipItem) {\n\t\t\tvar bodyItem = {\n\t\t\t\tbefore: [],\n\t\t\t\tlines: [],\n\t\t\t\tafter: []\n\t\t\t};\n\t\t\tpushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data)));\n\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n\t\t\tpushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data)));\n\n\t\t\tbodyItems.push(bodyItem);\n\t\t});\n\n\t\treturn bodyItems;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetAfterBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments));\n\t},\n\n\t// Get the footer and beforeFooter and afterFooter lines\n\t// Args are: (tooltipItem, data)\n\tgetFooter: function() {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\n\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n\t\tvar footer = callbacks.footer.apply(me, arguments);\n\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeFooter));\n\t\tlines = pushOrConcat(lines, splitNewlines(footer));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n\t\treturn lines;\n\t},\n\n\tupdate: function(changed) {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\n\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n\t\t// which breaks any animations.\n\t\tvar existingModel = me._model;\n\t\tvar model = me._model = getBaseModel(opts);\n\t\tvar active = me._active;\n\n\t\tvar data = me._data;\n\n\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\n\t\tvar alignment = {\n\t\t\txAlign: existingModel.xAlign,\n\t\t\tyAlign: existingModel.yAlign\n\t\t};\n\t\tvar backgroundPoint = {\n\t\t\tx: existingModel.x,\n\t\t\ty: existingModel.y\n\t\t};\n\t\tvar tooltipSize = {\n\t\t\twidth: existingModel.width,\n\t\t\theight: existingModel.height\n\t\t};\n\t\tvar tooltipPosition = {\n\t\t\tx: existingModel.caretX,\n\t\t\ty: existingModel.caretY\n\t\t};\n\n\t\tvar i, len;\n\n\t\tif (active.length) {\n\t\t\tmodel.opacity = 1;\n\n\t\t\tvar labelColors = [];\n\t\t\tvar labelTextColors = [];\n\t\t\ttooltipPosition = positioners[opts.position].call(me, active, me._eventPosition);\n\n\t\t\tvar tooltipItems = [];\n\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\n\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\n\t\t\t}\n\n\t\t\t// If the user provided a filter function, use it to modify the tooltip items\n\t\t\tif (opts.filter) {\n\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\n\t\t\t\t\treturn opts.filter(a, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\n\t\t\tif (opts.itemSort) {\n\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\n\t\t\t\t\treturn opts.itemSort(a, b, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Determine colors for boxes\n\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\n\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n\t\t\t});\n\n\n\t\t\t// Build the Text Lines\n\t\t\tmodel.title = me.getTitle(tooltipItems, data);\n\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\n\t\t\tmodel.body = me.getBody(tooltipItems, data);\n\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\n\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\n\n\t\t\t// Initial positioning and colors\n\t\t\tmodel.x = Math.round(tooltipPosition.x);\n\t\t\tmodel.y = Math.round(tooltipPosition.y);\n\t\t\tmodel.caretPadding = opts.caretPadding;\n\t\t\tmodel.labelColors = labelColors;\n\t\t\tmodel.labelTextColors = labelTextColors;\n\n\t\t\t// data points\n\t\t\tmodel.dataPoints = tooltipItems;\n\n\t\t\t// We need to determine alignment of the tooltip\n\t\t\ttooltipSize = getTooltipSize(this, model);\n\t\t\talignment = determineAlignment(this, tooltipSize);\n\t\t\t// Final Size and Position\n\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n\t\t} else {\n\t\t\tmodel.opacity = 0;\n\t\t}\n\n\t\tmodel.xAlign = alignment.xAlign;\n\t\tmodel.yAlign = alignment.yAlign;\n\t\tmodel.x = backgroundPoint.x;\n\t\tmodel.y = backgroundPoint.y;\n\t\tmodel.width = tooltipSize.width;\n\t\tmodel.height = tooltipSize.height;\n\n\t\t// Point where the caret on the tooltip points to\n\t\tmodel.caretX = tooltipPosition.x;\n\t\tmodel.caretY = tooltipPosition.y;\n\n\t\tme._model = model;\n\n\t\tif (changed && opts.custom) {\n\t\t\topts.custom.call(me, model);\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdrawCaret: function(tooltipPoint, size) {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\n\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\n\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\n\t},\n\tgetCaretPosition: function(tooltipPoint, size, vm) {\n\t\tvar x1, x2, x3, y1, y2, y3;\n\t\tvar caretSize = vm.caretSize;\n\t\tvar cornerRadius = vm.cornerRadius;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar ptX = tooltipPoint.x;\n\t\tvar ptY = tooltipPoint.y;\n\t\tvar width = size.width;\n\t\tvar height = size.height;\n\n\t\tif (yAlign === 'center') {\n\t\t\ty2 = ptY + (height / 2);\n\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx1 = ptX;\n\t\t\t\tx2 = x1 - caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 + caretSize;\n\t\t\t\ty3 = y2 - caretSize;\n\t\t\t} else {\n\t\t\t\tx1 = ptX + width;\n\t\t\t\tx2 = x1 + caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 - caretSize;\n\t\t\t\ty3 = y2 + caretSize;\n\t\t\t}\n\t\t} else {\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else if (xAlign === 'right') {\n\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else {\n\t\t\t\tx2 = vm.caretX;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t}\n\t\t\tif (yAlign === 'top') {\n\t\t\t\ty1 = ptY;\n\t\t\t\ty2 = y1 - caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t} else {\n\t\t\t\ty1 = ptY + height;\n\t\t\t\ty2 = y1 + caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t\t// invert drawing order\n\t\t\t\tvar tmp = x3;\n\t\t\t\tx3 = x1;\n\t\t\t\tx1 = tmp;\n\t\t\t}\n\t\t}\n\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n\t},\n\n\tdrawTitle: function(pt, vm, ctx, opacity) {\n\t\tvar title = vm.title;\n\n\t\tif (title.length) {\n\t\t\tctx.textAlign = vm._titleAlign;\n\t\t\tctx.textBaseline = 'top';\n\n\t\t\tvar titleFontSize = vm.titleFontSize;\n\t\t\tvar titleSpacing = vm.titleSpacing;\n\n\t\t\tctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\n\t\t\tctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n\t\t\tvar i, len;\n\t\t\tfor (i = 0, len = title.length; i < len; ++i) {\n\t\t\t\tctx.fillText(title[i], pt.x, pt.y);\n\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n\t\t\t\tif (i + 1 === title.length) {\n\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBody: function(pt, vm, ctx, opacity) {\n\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\tvar bodySpacing = vm.bodySpacing;\n\t\tvar body = vm.body;\n\n\t\tctx.textAlign = vm._bodyAlign;\n\t\tctx.textBaseline = 'top';\n\t\tctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\t// Before Body\n\t\tvar xLinePadding = 0;\n\t\tvar fillLineOfText = function(line) {\n\t\t\tctx.fillText(line, pt.x + xLinePadding, pt.y);\n\t\t\tpt.y += bodyFontSize + bodySpacing;\n\t\t};\n\n\t\t// Before body lines\n\t\tctx.fillStyle = mergeOpacity(vm.bodyFontColor, opacity);\n\t\thelpers.each(vm.beforeBody, fillLineOfText);\n\n\t\tvar drawColorBoxes = vm.displayColors;\n\t\txLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\n\n\t\t// Draw body lines now\n\t\thelpers.each(body, function(bodyItem, i) {\n\t\t\tvar textColor = mergeOpacity(vm.labelTextColors[i], opacity);\n\t\t\tctx.fillStyle = textColor;\n\t\t\thelpers.each(bodyItem.before, fillLineOfText);\n\n\t\t\thelpers.each(bodyItem.lines, function(line) {\n\t\t\t\t// Draw Legend-like boxes if needed\n\t\t\t\tif (drawColorBoxes) {\n\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\n\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\n\t\t\t\t\tctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Border\n\t\t\t\t\tctx.lineWidth = 1;\n\t\t\t\t\tctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\n\t\t\t\t\tctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Inner square\n\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\n\t\t\t\t\tctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n\t\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\t}\n\n\t\t\t\tfillLineOfText(line);\n\t\t\t});\n\n\t\t\thelpers.each(bodyItem.after, fillLineOfText);\n\t\t});\n\n\t\t// Reset back to 0 for after body\n\t\txLinePadding = 0;\n\n\t\t// After body lines\n\t\thelpers.each(vm.afterBody, fillLineOfText);\n\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t},\n\n\tdrawFooter: function(pt, vm, ctx, opacity) {\n\t\tvar footer = vm.footer;\n\n\t\tif (footer.length) {\n\t\t\tpt.y += vm.footerMarginTop;\n\n\t\t\tctx.textAlign = vm._footerAlign;\n\t\t\tctx.textBaseline = 'top';\n\n\t\t\tctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\n\t\t\tctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\thelpers.each(footer, function(line) {\n\t\t\t\tctx.fillText(line, pt.x, pt.y);\n\t\t\t\tpt.y += vm.footerFontSize + vm.footerSpacing;\n\t\t\t});\n\t\t}\n\t},\n\n\tdrawBackground: function(pt, vm, ctx, tooltipSize, opacity) {\n\t\tctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\n\t\tctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar x = pt.x;\n\t\tvar y = pt.y;\n\t\tvar width = tooltipSize.width;\n\t\tvar height = tooltipSize.height;\n\t\tvar radius = vm.cornerRadius;\n\n\t\tctx.beginPath();\n\t\tctx.moveTo(x + radius, y);\n\t\tif (yAlign === 'top') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width - radius, y);\n\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\tif (yAlign === 'center' && xAlign === 'right') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width, y + height - radius);\n\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\tif (yAlign === 'bottom') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + radius, y + height);\n\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\tif (yAlign === 'center' && xAlign === 'left') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x, y + radius);\n\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\tctx.closePath();\n\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth > 0) {\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\n\t\tif (vm.opacity === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tooltipSize = {\n\t\t\twidth: vm.width,\n\t\t\theight: vm.height\n\t\t};\n\t\tvar pt = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\n\t\t// IE11/Edge does not like very small opacities, so snap to 0\n\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n\t\t// Truthy/falsey value for empty tooltip\n\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n\t\tif (this._options.enabled && hasTooltipContent) {\n\t\t\t// Draw Background\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize, opacity);\n\n\t\t\t// Draw Title, Body, and Footer\n\t\t\tpt.x += vm.xPadding;\n\t\t\tpt.y += vm.yPadding;\n\n\t\t\t// Titles\n\t\t\tthis.drawTitle(pt, vm, ctx, opacity);\n\n\t\t\t// Body\n\t\t\tthis.drawBody(pt, vm, ctx, opacity);\n\n\t\t\t// Footer\n\t\t\tthis.drawFooter(pt, vm, ctx, opacity);\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @returns {Boolean} true if the tooltip changed\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me._options;\n\t\tvar changed = false;\n\n\t\tme._lastActive = me._lastActive || [];\n\n\t\t// Find Active Elements for tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme._active = [];\n\t\t} else {\n\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n\t\t}\n\n\t\t// Remember Last Actives\n\t\tchanged = !helpers.arrayEquals(me._active, me._lastActive);\n\n\t\t// Only handle target event on tooltip change\n\t\tif (changed) {\n\t\t\tme._lastActive = me._active;\n\n\t\t\tif (options.enabled || options.custom) {\n\t\t\t\tme._eventPosition = {\n\t\t\t\t\tx: e.x,\n\t\t\t\t\ty: e.y\n\t\t\t\t};\n\n\t\t\t\tme.update(true);\n\t\t\t\tme.pivot();\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * @namespace Chart.Tooltip.positioners\n */\nexports.positioners = positioners;\n\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sq = moment.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n\n})));\n","'use strict';\n\nvar defaults = require('./core.defaults');\n\ndefaults._set('global', {\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0,\n\tmaintainAspectRatio: true,\n\tevents: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tshowLines: true,\n\n\t// Element defaults defined in element extensions\n\telements: {},\n\n\t// Layout options such as padding\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\nmodule.exports = function() {\n\n\t// Occupy the global variable of Chart, and create a simple base class\n\tvar Chart = function(item, config) {\n\t\tthis.construct(item, config);\n\t\treturn this;\n\t};\n\n\tChart.Chart = Chart;\n\n\treturn Chart;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à] LT',\n nextDay : '[demà à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[ieiri à] LT',\n lastWeek : '[sür el] dddd [lasteu à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n míut', '\\'iens míut'],\n 'mm': [number + ' míuts', '' + number + ' míuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate,\n m : 'wa’ tup',\n mm : translate,\n h : 'wa’ rep',\n hh : translate,\n d : 'wa’ jaj',\n dd : translate,\n M : 'wa’ jar',\n MM : translate,\n y : 'wa’ DIS',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n var bo = moment.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[ཁ་སང] LT',\n lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སྐར་ཆ།',\n m : 'སྐར་མ་གཅིག',\n mm : '%d སྐར་མ',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ptBr = moment.defineLocale('pt-br', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var hyAm = moment.defineLocale('hy-am', {\n months : {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY թ.',\n LLL : 'D MMMM YYYY թ., HH:mm',\n LLLL : 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar : {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s հետո',\n past : '%s առաջ',\n s : 'մի քանի վայրկյան',\n ss : '%d վայրկյան',\n m : 'րոպե',\n mm : '%d րոպե',\n h : 'ժամ',\n hh : '%d ժամ',\n d : 'օր',\n dd : '%d օր',\n M : 'ամիս',\n MM : '%d ամիս',\n y : 'տարի',\n yy : '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ca = moment.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquí %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\n\ndefaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaults.global.defaultColor,\n\t\t\tborderColor: defaults.global.defaultColor,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(bar) {\n\treturn bar._view.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar) {\n\tvar vm = bar._view;\n\tvar x1, x2, y1, y2;\n\n\tif (isVertical(bar)) {\n\t\t// vertical\n\t\tvar halfWidth = vm.width / 2;\n\t\tx1 = vm.x - halfWidth;\n\t\tx2 = vm.x + halfWidth;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\t// horizontal bar\n\t\tvar halfHeight = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - halfHeight;\n\t\ty2 = vm.y + halfHeight;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nmodule.exports = Element.extend({\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar left, right, top, bottom, signX, signY, borderSkipped;\n\t\tvar borderWidth = vm.borderWidth;\n\n\t\tif (!vm.horizontal) {\n\t\t\t// bar\n\t\t\tleft = vm.x - vm.width / 2;\n\t\t\tright = vm.x + vm.width / 2;\n\t\t\ttop = vm.y;\n\t\t\tbottom = vm.base;\n\t\t\tsignX = 1;\n\t\t\tsignY = bottom > top ? 1 : -1;\n\t\t\tborderSkipped = vm.borderSkipped || 'bottom';\n\t\t} else {\n\t\t\t// horizontal bar\n\t\t\tleft = vm.base;\n\t\t\tright = vm.x;\n\t\t\ttop = vm.y - vm.height / 2;\n\t\t\tbottom = vm.y + vm.height / 2;\n\t\t\tsignX = right > left ? 1 : -1;\n\t\t\tsignY = 1;\n\t\t\tborderSkipped = vm.borderSkipped || 'left';\n\t\t}\n\n\t\t// Canvas doesn't allow us to stroke inside the width so we can\n\t\t// adjust the sizes to fit if we're setting a stroke on the line\n\t\tif (borderWidth) {\n\t\t\t// borderWidth shold be less than bar width and bar height.\n\t\t\tvar barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n\t\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\n\t\t\tvar halfStroke = borderWidth / 2;\n\t\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\n\t\t\tvar borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n\t\t\tvar borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n\t\t\tvar borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n\t\t\tvar borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n\t\t\t// not become a vertical line?\n\t\t\tif (borderLeft !== borderRight) {\n\t\t\t\ttop = borderTop;\n\t\t\t\tbottom = borderBottom;\n\t\t\t}\n\t\t\t// not become a horizontal line?\n\t\t\tif (borderTop !== borderBottom) {\n\t\t\t\tleft = borderLeft;\n\t\t\t\tright = borderRight;\n\t\t\t}\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = borderWidth;\n\n\t\t// Corner points, from bottom-left to bottom-right clockwise\n\t\t// | 1 2 |\n\t\t// | 0 3 |\n\t\tvar corners = [\n\t\t\t[left, bottom],\n\t\t\t[left, top],\n\t\t\t[right, top],\n\t\t\t[right, bottom]\n\t\t];\n\n\t\t// Find first (starting) corner with fallback to 'bottom'\n\t\tvar borders = ['bottom', 'left', 'top', 'right'];\n\t\tvar startCorner = borders.indexOf(borderSkipped, 0);\n\t\tif (startCorner === -1) {\n\t\t\tstartCorner = 0;\n\t\t}\n\n\t\tfunction cornerAt(index) {\n\t\t\treturn corners[(startCorner + index) % 4];\n\t\t}\n\n\t\t// Draw rectangle from 'startCorner'\n\t\tvar corner = cornerAt(0);\n\t\tctx.moveTo(corner[0], corner[1]);\n\n\t\tfor (var i = 1; i < 4; i++) {\n\t\t\tcorner = cornerAt(i);\n\t\t\tctx.lineTo(corner[0], corner[1]);\n\t\t}\n\n\t\tctx.fill();\n\t\tif (borderWidth) {\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar inRange = false;\n\n\t\tif (this._view) {\n\t\t\tvar bounds = getBarBounds(this);\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t\t}\n\n\t\treturn inRange;\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar inRange = false;\n\t\tvar bounds = getBarBounds(me);\n\n\t\tif (isVertical(me)) {\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right;\n\t\t} else {\n\t\t\tinRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t\t}\n\n\t\treturn inRange;\n\t},\n\n\tinXRange: function(mouseX) {\n\t\tvar bounds = getBarBounds(this);\n\t\treturn mouseX >= bounds.left && mouseX <= bounds.right;\n\t},\n\n\tinYRange: function(mouseY) {\n\t\tvar bounds = getBarBounds(this);\n\t\treturn mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(this)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.width * Math.abs(vm.y - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCa = moment.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var hi = moment.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कुछ ही क्षण',\n ss : '%d सेकंड',\n m : 'एक मिनट',\n mm : '%d मिनट',\n h : 'एक घंटा',\n hh : '%d घंटे',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महीने',\n MM : '%d महीने',\n y : 'एक वर्ष',\n yy : '%d वर्ष'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return hi;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\n\ndefaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\tshowLines: false,\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\t// Scatter charts use line controllers\n\tChart.controllers.scatter = Chart.controllers.line;\n\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('
    ');\n\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\n\t\tif (datasets.length) {\n\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\n\t\t\t\ttext.push('
  • ');\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\ttext.push(labels[i]);\n\t\t\t\t}\n\t\t\t\ttext.push('
  • ');\n\t\t\t}\n\t\t}\n\n\t\ttext.push('
');\n\t\treturn text.join('');\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\tvar custom = arc.custom || {};\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.polarArea = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Arc,\n\n\t\tlinkScales: helpers.noop,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar start = me.chart.options.startAngle || 0;\n\t\t\tvar starts = me._starts = [];\n\t\t\tvar angles = me._angles = [];\n\t\t\tvar i, ilen, angle;\n\n\t\t\tme._updateRadius();\n\n\t\t\tmeta.count = me.countVisibleElements();\n\n\t\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\t\tstarts[i] = start;\n\t\t\t\tangle = me._computeAngle(i);\n\t\t\t\tangles[i] = angle;\n\t\t\t\tstart += angle;\n\t\t\t}\n\n\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_updateRadius: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar opts = chart.options;\n\t\t\tvar arcOpts = opts.elements.arc;\n\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\n\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t\t},\n\n\t\tupdateElement: function(arc, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar opts = chart.options;\n\t\t\tvar animationOpts = opts.animation;\n\t\t\tvar scale = chart.scale;\n\t\t\tvar labels = chart.data.labels;\n\n\t\t\tvar centerX = scale.xCenter;\n\t\t\tvar centerY = scale.yCenter;\n\n\t\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\t\tvar datasetStartAngle = opts.startAngle;\n\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\t\tvar startAngle = me._starts[index];\n\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\n\t\t\thelpers.extend(arc, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\t\t\t\t_scale: scale,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: centerX,\n\t\t\t\t\ty: centerY,\n\t\t\t\t\tinnerRadius: 0,\n\t\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\t\tlabel: helpers.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Apply border and fill style\n\t\t\tvar elementOpts = this.chart.options.elements.arc;\n\t\t\tvar custom = arc.custom || {};\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\tvar model = arc._model;\n\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\n\n\t\t\tarc.pivot();\n\t\t},\n\n\t\tcountVisibleElements: function() {\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar count = 0;\n\n\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn count;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_computeAngle: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar count = this.getMeta().count;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar meta = me.getMeta();\n\n\t\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// Scriptable options\n\t\t\tvar context = {\n\t\t\t\tchart: me.chart,\n\t\t\t\tdataIndex: index,\n\t\t\t\tdataset: dataset,\n\t\t\t\tdatasetIndex: me.index\n\t\t\t};\n\n\t\t\treturn helpers.options.resolve([\n\t\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t\t(2 * Math.PI) / count\n\t\t\t], context, index);\n\t\t}\n\t});\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n\n})));\n","'use strict';\n\nvar Animation = require('./core.animation');\nvar animations = require('./core.animations');\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\nvar Interaction = require('./core.interaction');\nvar layouts = require('./core.layouts');\nvar platform = require('../platforms/platform');\nvar plugins = require('./core.plugins');\nvar scaleService = require('../core/core.scaleService');\nvar Tooltip = require('./core.tooltip');\n\nmodule.exports = function(Chart) {\n\n\t// Create a dictionary of chart types, to allow for extension of existing types\n\tChart.types = {};\n\n\t// Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n\t// Destroy method on the chart will remove the instance of the chart from this reference.\n\tChart.instances = {};\n\n\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\n\tChart.controllers = {};\n\n\t/**\n\t * Initializes the given config with global and chart default values.\n\t */\n\tfunction initConfig(config) {\n\t\tconfig = config || {};\n\n\t\t// Do NOT use configMerge() for the data object because this method merges arrays\n\t\t// and so would change references to labels and datasets, preventing data updates.\n\t\tvar data = config.data = config.data || {};\n\t\tdata.datasets = data.datasets || [];\n\t\tdata.labels = data.labels || [];\n\n\t\tconfig.options = helpers.configMerge(\n\t\t\tdefaults.global,\n\t\t\tdefaults[config.type],\n\t\t\tconfig.options || {});\n\n\t\treturn config;\n\t}\n\n\t/**\n\t * Updates the config of the chart\n\t * @param chart {Chart} chart to update the options for\n\t */\n\tfunction updateConfig(chart) {\n\t\tvar newOptions = chart.options;\n\n\t\thelpers.each(chart.scales, function(scale) {\n\t\t\tlayouts.removeBox(chart, scale);\n\t\t});\n\n\t\tnewOptions = helpers.configMerge(\n\t\t\tChart.defaults.global,\n\t\t\tChart.defaults[chart.config.type],\n\t\t\tnewOptions);\n\n\t\tchart.options = chart.config.options = newOptions;\n\t\tchart.ensureScalesHaveIDs();\n\t\tchart.buildOrUpdateScales();\n\t\t// Tooltip\n\t\tchart.tooltip._options = newOptions.tooltips;\n\t\tchart.tooltip.initialize();\n\t}\n\n\tfunction positionIsHorizontal(position) {\n\t\treturn position === 'top' || position === 'bottom';\n\t}\n\n\thelpers.extend(Chart.prototype, /** @lends Chart */ {\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tconstruct: function(item, config) {\n\t\t\tvar me = this;\n\n\t\t\tconfig = initConfig(config);\n\n\t\t\tvar context = platform.acquireContext(item, config);\n\t\t\tvar canvas = context && context.canvas;\n\t\t\tvar height = canvas && canvas.height;\n\t\t\tvar width = canvas && canvas.width;\n\n\t\t\tme.id = helpers.uid();\n\t\t\tme.ctx = context;\n\t\t\tme.canvas = canvas;\n\t\t\tme.config = config;\n\t\t\tme.width = width;\n\t\t\tme.height = height;\n\t\t\tme.aspectRatio = height ? width / height : null;\n\t\t\tme.options = config.options;\n\t\t\tme._bufferedRender = false;\n\n\t\t\t/**\n\t\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t\t * @prop Chart#chart\n\t\t\t * @deprecated since version 2.6.0\n\t\t\t * @todo remove at version 3\n\t\t\t * @private\n\t\t\t */\n\t\t\tme.chart = me;\n\t\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t\t// Add the chart instance to the global namespace\n\t\t\tChart.instances[me.id] = me;\n\n\t\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\t\tObject.defineProperty(me, 'data', {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn me.config.data;\n\t\t\t\t},\n\t\t\t\tset: function(value) {\n\t\t\t\t\tme.config.data = value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!context || !canvas) {\n\t\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tme.initialize();\n\t\t\tme.update();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tvar me = this;\n\n\t\t\t// Before init plugin notification\n\t\t\tplugins.notify(me, 'beforeInit');\n\n\t\t\thelpers.retinaScale(me, me.options.devicePixelRatio);\n\n\t\t\tme.bindEvents();\n\n\t\t\tif (me.options.responsive) {\n\t\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\t\tme.resize(true);\n\t\t\t}\n\n\t\t\t// Make sure scales have IDs and are built before we build any controllers.\n\t\t\tme.ensureScalesHaveIDs();\n\t\t\tme.buildOrUpdateScales();\n\t\t\tme.initToolTip();\n\n\t\t\t// After init plugin notification\n\t\t\tplugins.notify(me, 'afterInit');\n\n\t\t\treturn me;\n\t\t},\n\n\t\tclear: function() {\n\t\t\thelpers.canvas.clear(this);\n\t\t\treturn this;\n\t\t},\n\n\t\tstop: function() {\n\t\t\t// Stops any current animation loop occurring\n\t\t\tanimations.cancelAnimation(this);\n\t\t\treturn this;\n\t\t},\n\n\t\tresize: function(silent) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar canvas = me.canvas;\n\t\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\n\t\t\tvar newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\n\t\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\n\n\t\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcanvas.width = me.width = newWidth;\n\t\t\tcanvas.height = me.height = newHeight;\n\t\t\tcanvas.style.width = newWidth + 'px';\n\t\t\tcanvas.style.height = newHeight + 'px';\n\n\t\t\thelpers.retinaScale(me, options.devicePixelRatio);\n\n\t\t\tif (!silent) {\n\t\t\t\t// Notify any plugins about the resize\n\t\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\t\tplugins.notify(me, 'resize', [newSize]);\n\n\t\t\t\t// Notify of resize\n\t\t\t\tif (me.options.onResize) {\n\t\t\t\t\tme.options.onResize(me, newSize);\n\t\t\t\t}\n\n\t\t\t\tme.stop();\n\t\t\t\tme.update({\n\t\t\t\t\tduration: me.options.responsiveAnimationDuration\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tensureScalesHaveIDs: function() {\n\t\t\tvar options = this.options;\n\t\t\tvar scalesOptions = options.scales || {};\n\t\t\tvar scaleOptions = options.scale;\n\n\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n\t\t\t});\n\n\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n\t\t\t});\n\n\t\t\tif (scaleOptions) {\n\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Builds a map of scale ID to scale object for future lookup.\n\t\t */\n\t\tbuildOrUpdateScales: function() {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar scales = me.scales || {};\n\t\t\tvar items = [];\n\t\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\t\tobj[id] = false;\n\t\t\t\treturn obj;\n\t\t\t}, {});\n\n\t\t\tif (options.scales) {\n\t\t\t\titems = items.concat(\n\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t\t}),\n\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (options.scale) {\n\t\t\t\titems.push({\n\t\t\t\t\toptions: options.scale,\n\t\t\t\t\tdtype: 'radialLinear',\n\t\t\t\t\tisDefault: true,\n\t\t\t\t\tdposition: 'chartArea'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thelpers.each(items, function(item) {\n\t\t\t\tvar scaleOptions = item.options;\n\t\t\t\tvar id = scaleOptions.id;\n\t\t\t\tvar scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\n\n\t\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t\t}\n\n\t\t\t\tupdated[id] = true;\n\t\t\t\tvar scale = null;\n\t\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\t\tscale = scales[id];\n\t\t\t\t\tscale.options = scaleOptions;\n\t\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\t\tscale.chart = me;\n\t\t\t\t} else {\n\t\t\t\t\tvar scaleClass = scaleService.getScaleConstructor(scaleType);\n\t\t\t\t\tif (!scaleClass) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tscale = new scaleClass({\n\t\t\t\t\t\tid: id,\n\t\t\t\t\t\ttype: scaleType,\n\t\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\t\tchart: me\n\t\t\t\t\t});\n\t\t\t\t\tscales[scale.id] = scale;\n\t\t\t\t}\n\n\t\t\t\tscale.mergeTicksOptions();\n\n\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\t\tif (item.isDefault) {\n\t\t\t\t\tme.scale = scale;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// clear up discarded scales\n\t\t\thelpers.each(updated, function(hasUpdated, id) {\n\t\t\t\tif (!hasUpdated) {\n\t\t\t\t\tdelete scales[id];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tme.scales = scales;\n\n\t\t\tscaleService.addScalesToLayout(this);\n\t\t},\n\n\t\tbuildOrUpdateControllers: function() {\n\t\t\tvar me = this;\n\t\t\tvar types = [];\n\t\t\tvar newControllers = [];\n\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\t\tme.destroyDatasetMeta(datasetIndex);\n\t\t\t\t\tmeta = me.getDatasetMeta(datasetIndex);\n\t\t\t\t}\n\t\t\t\tmeta.type = type;\n\n\t\t\t\ttypes.push(meta.type);\n\n\t\t\t\tif (meta.controller) {\n\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\n\t\t\t\t\tmeta.controller.linkScales();\n\t\t\t\t} else {\n\t\t\t\t\tvar ControllerClass = Chart.controllers[meta.type];\n\t\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t\t}\n\n\t\t\t\t\tmeta.controller = new ControllerClass(me, datasetIndex);\n\t\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t\t}\n\t\t\t}, me);\n\n\t\t\treturn newControllers;\n\t\t},\n\n\t\t/**\n\t\t * Reset the elements of all datasets\n\t\t * @private\n\t\t */\n\t\tresetElements: function() {\n\t\t\tvar me = this;\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t\t}, me);\n\t\t},\n\n\t\t/**\n\t\t* Resets the chart back to it's state before the initial animation\n\t\t*/\n\t\treset: function() {\n\t\t\tthis.resetElements();\n\t\t\tthis.tooltip.initialize();\n\t\t},\n\n\t\tupdate: function(config) {\n\t\t\tvar me = this;\n\n\t\t\tif (!config || typeof config !== 'object') {\n\t\t\t\t// backwards compatibility\n\t\t\t\tconfig = {\n\t\t\t\t\tduration: config,\n\t\t\t\t\tlazy: arguments[1]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tupdateConfig(me);\n\n\t\t\t// plugins options references might have change, let's invalidate the cache\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\t\tplugins._invalidate(me);\n\n\t\t\tif (plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In case the entire data object changed\n\t\t\tme.tooltip._data = me.data;\n\n\t\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t\t// Make sure all dataset controllers have correct meta data counts\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n\t\t\t}, me);\n\n\t\t\tme.updateLayout();\n\n\t\t\t// Can only reset the new controllers after the scales have been updated\n\t\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\t\thelpers.each(newControllers, function(controller) {\n\t\t\t\t\tcontroller.reset();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tme.updateDatasets();\n\n\t\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t\t// after update.\n\t\t\tme.tooltip.initialize();\n\n\t\t\t// Last active contains items that were previously in the tooltip.\n\t\t\t// When we reset the tooltip, we need to clear it\n\t\t\tme.lastActive = [];\n\n\t\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\t\tplugins.notify(me, 'afterUpdate');\n\n\t\t\tif (me._bufferedRender) {\n\t\t\t\tme._bufferedRequest = {\n\t\t\t\t\tduration: config.duration,\n\t\t\t\t\teasing: config.easing,\n\t\t\t\t\tlazy: config.lazy\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tme.render(config);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t\t * @private\n\t\t */\n\t\tupdateLayout: function() {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeLayout') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlayouts.update(this, this.width, this.height);\n\n\t\t\t/**\n\t\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t\t * @method IPlugin#afterScaleUpdate\n\t\t\t * @deprecated since version 2.5.0\n\t\t\t * @todo remove at version 3\n\t\t\t * @private\n\t\t\t */\n\t\t\tplugins.notify(me, 'afterScaleUpdate');\n\t\t\tplugins.notify(me, 'afterLayout');\n\t\t},\n\n\t\t/**\n\t\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t\t * @private\n\t\t */\n\t\tupdateDatasets: function() {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tme.updateDataset(i);\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterDatasetsUpdate');\n\t\t},\n\n\t\t/**\n\t\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t\t * @private\n\t\t */\n\t\tupdateDataset: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getDatasetMeta(index);\n\t\t\tvar args = {\n\t\t\t\tmeta: meta,\n\t\t\t\tindex: index\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmeta.controller.update();\n\n\t\t\tplugins.notify(me, 'afterDatasetUpdate', [args]);\n\t\t},\n\n\t\trender: function(config) {\n\t\t\tvar me = this;\n\n\t\t\tif (!config || typeof config !== 'object') {\n\t\t\t\t// backwards compatibility\n\t\t\t\tconfig = {\n\t\t\t\t\tduration: config,\n\t\t\t\t\tlazy: arguments[1]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar duration = config.duration;\n\t\t\tvar lazy = config.lazy;\n\n\t\t\tif (plugins.notify(me, 'beforeRender') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar animationOptions = me.options.animation;\n\t\t\tvar onComplete = function(animation) {\n\t\t\t\tplugins.notify(me, 'afterRender');\n\t\t\t\thelpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t\t};\n\n\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\n\t\t\t\tvar animation = new Animation({\n\t\t\t\t\tnumSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\n\t\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\t\tvar easingFunction = helpers.easing.effects[animationObject.easing];\n\t\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t\t},\n\n\t\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\t\tonAnimationComplete: onComplete\n\t\t\t\t});\n\n\t\t\t\tanimations.addAnimation(me, animation, duration, lazy);\n\t\t\t} else {\n\t\t\t\tme.draw();\n\n\t\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\t\tonComplete(new Animation({numSteps: 0, chart: me}));\n\t\t\t}\n\n\t\t\treturn me;\n\t\t},\n\n\t\tdraw: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tme.clear();\n\n\t\t\tif (helpers.isNullOrUndef(easingValue)) {\n\t\t\t\teasingValue = 1;\n\t\t\t}\n\n\t\t\tme.transition(easingValue);\n\n\t\t\tif (me.width <= 0 || me.height <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Draw all the scales\n\t\t\thelpers.each(me.boxes, function(box) {\n\t\t\t\tbox.draw(me.chartArea);\n\t\t\t}, me);\n\n\t\t\tif (me.scale) {\n\t\t\t\tme.scale.draw();\n\t\t\t}\n\n\t\t\tme.drawDatasets(easingValue);\n\t\t\tme._drawTooltip(easingValue);\n\n\t\t\tplugins.notify(me, 'afterDraw', [easingValue]);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\ttransition: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.tooltip.transition(easingValue);\n\t\t},\n\n\t\t/**\n\t\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t\t * @private\n\t\t */\n\t\tdrawDatasets: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Draw datasets reversed to support proper line stacking\n\t\t\tfor (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\n\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\tme.drawDataset(i, easingValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t\t},\n\n\t\t/**\n\t\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t\t * @private\n\t\t */\n\t\tdrawDataset: function(index, easingValue) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getDatasetMeta(index);\n\t\t\tvar args = {\n\t\t\t\tmeta: meta,\n\t\t\t\tindex: index,\n\t\t\t\teasingValue: easingValue\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmeta.controller.draw(easingValue);\n\n\t\t\tplugins.notify(me, 'afterDatasetDraw', [args]);\n\t\t},\n\n\t\t/**\n\t\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t\t * @private\n\t\t */\n\t\t_drawTooltip: function(easingValue) {\n\t\t\tvar me = this;\n\t\t\tvar tooltip = me.tooltip;\n\t\t\tvar args = {\n\t\t\t\ttooltip: tooltip,\n\t\t\t\teasingValue: easingValue\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttooltip.draw();\n\n\t\t\tplugins.notify(me, 'afterTooltipDraw', [args]);\n\t\t},\n\n\t\t// Get the single element that was clicked on\n\t\t// @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t\tgetElementAtEvent: function(e) {\n\t\t\treturn Interaction.modes.single(this, e);\n\t\t},\n\n\t\tgetElementsAtEvent: function(e) {\n\t\t\treturn Interaction.modes.label(this, e, {intersect: true});\n\t\t},\n\n\t\tgetElementsAtXAxis: function(e) {\n\t\t\treturn Interaction.modes['x-axis'](this, e, {intersect: true});\n\t\t},\n\n\t\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\t\tvar method = Interaction.modes[mode];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\treturn method(this, e, options);\n\t\t\t}\n\n\t\t\treturn [];\n\t\t},\n\n\t\tgetDatasetAtEvent: function(e) {\n\t\t\treturn Interaction.modes.dataset(this, e, {intersect: true});\n\t\t},\n\n\t\tgetDatasetMeta: function(datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\t\tif (!dataset._meta) {\n\t\t\t\tdataset._meta = {};\n\t\t\t}\n\n\t\t\tvar meta = dataset._meta[me.id];\n\t\t\tif (!meta) {\n\t\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\t\ttype: null,\n\t\t\t\t\tdata: [],\n\t\t\t\t\tdataset: null,\n\t\t\t\t\tcontroller: null,\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\t\txAxisID: null,\n\t\t\t\t\tyAxisID: null\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn meta;\n\t\t},\n\n\t\tgetVisibleDatasetCount: function() {\n\t\t\tvar count = 0;\n\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\tisDatasetVisible: function(datasetIndex) {\n\t\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t\t},\n\n\t\tgenerateLegend: function() {\n\t\t\treturn this.options.legendCallback(this);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tdestroyDatasetMeta: function(datasetIndex) {\n\t\t\tvar id = this.id;\n\t\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\t\tif (meta) {\n\t\t\t\tmeta.controller.destroy();\n\t\t\t\tdelete dataset._meta[id];\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function() {\n\t\t\tvar me = this;\n\t\t\tvar canvas = me.canvas;\n\t\t\tvar i, ilen;\n\n\t\t\tme.stop();\n\n\t\t\t// dataset controllers need to cleanup associated data\n\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tme.destroyDatasetMeta(i);\n\t\t\t}\n\n\t\t\tif (canvas) {\n\t\t\t\tme.unbindEvents();\n\t\t\t\thelpers.canvas.clear(me);\n\t\t\t\tplatform.releaseContext(me.ctx);\n\t\t\t\tme.canvas = null;\n\t\t\t\tme.ctx = null;\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'destroy');\n\n\t\t\tdelete Chart.instances[me.id];\n\t\t},\n\n\t\ttoBase64Image: function() {\n\t\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t\t},\n\n\t\tinitToolTip: function() {\n\t\t\tvar me = this;\n\t\t\tme.tooltip = new Tooltip({\n\t\t\t\t_chart: me,\n\t\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t\t_data: me.data,\n\t\t\t\t_options: me.options.tooltips\n\t\t\t}, me);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tbindEvents: function() {\n\t\t\tvar me = this;\n\t\t\tvar listeners = me._listeners = {};\n\t\t\tvar listener = function() {\n\t\t\t\tme.eventHandler.apply(me, arguments);\n\t\t\t};\n\n\t\t\thelpers.each(me.options.events, function(type) {\n\t\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\t\tlisteners[type] = listener;\n\t\t\t});\n\n\t\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\t\tif (me.options.responsive) {\n\t\t\t\tlistener = function() {\n\t\t\t\t\tme.resize();\n\t\t\t\t};\n\n\t\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\t\tlisteners.resize = listener;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tunbindEvents: function() {\n\t\t\tvar me = this;\n\t\t\tvar listeners = me._listeners;\n\t\t\tif (!listeners) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdelete me._listeners;\n\t\t\thelpers.each(listeners, function(listener, type) {\n\t\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t\t});\n\t\t},\n\n\t\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\t\tvar method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\n\t\t\tvar element, i, ilen;\n\n\t\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\t\telement = elements[i];\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[method](element);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\teventHandler: function(e) {\n\t\t\tvar me = this;\n\t\t\tvar tooltip = me.tooltip;\n\n\t\t\tif (plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Buffer any update calls so that renders do not occur\n\t\t\tme._bufferedRender = true;\n\t\t\tme._bufferedRequest = null;\n\n\t\t\tvar changed = me.handleEvent(e);\n\t\t\t// for smooth tooltip animations issue #4989\n\t\t\t// the tooltip should be the source of change\n\t\t\t// Animation check workaround:\n\t\t\t// tooltip._start will be null when tooltip isn't animating\n\t\t\tif (tooltip) {\n\t\t\t\tchanged = tooltip._start\n\t\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterEvent', [e]);\n\n\t\t\tvar bufferedRequest = me._bufferedRequest;\n\t\t\tif (bufferedRequest) {\n\t\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\t\tme.render(bufferedRequest);\n\t\t\t} else if (changed && !me.animating) {\n\t\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\t\tme.stop();\n\n\t\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\t\tme.render({\n\t\t\t\t\tduration: me.options.hover.animationDuration,\n\t\t\t\t\tlazy: true\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tme._bufferedRender = false;\n\t\t\tme._bufferedRequest = null;\n\n\t\t\treturn me;\n\t\t},\n\n\t\t/**\n\t\t * Handle an event\n\t\t * @private\n\t\t * @param {IEvent} event the event to handle\n\t\t * @return {Boolean} true if the chart needs to re-render\n\t\t */\n\t\thandleEvent: function(e) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options || {};\n\t\t\tvar hoverOptions = options.hover;\n\t\t\tvar changed = false;\n\n\t\t\tme.lastActive = me.lastActive || [];\n\n\t\t\t// Find Active Elements for hover and tooltips\n\t\t\tif (e.type === 'mouseout') {\n\t\t\t\tme.active = [];\n\t\t\t} else {\n\t\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t\t}\n\n\t\t\t// Invoke onHover hook\n\t\t\t// Need to call with native event here to not break backwards compatibility\n\t\t\thelpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\t\tif (options.onClick) {\n\t\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove styling for last active (even if it may still be active)\n\t\t\tif (me.lastActive.length) {\n\t\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t\t}\n\n\t\t\t// Built in hover styling\n\t\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t\t}\n\n\t\t\tchanged = !helpers.arrayEquals(me.active, me.lastActive);\n\n\t\t\t// Remember Last Actives\n\t\t\tme.lastActive = me.active;\n\n\t\t\treturn changed;\n\t\t}\n\t});\n\n\t/**\n\t * Provided for backward compatibility, use Chart instead.\n\t * @class Chart.Controller\n\t * @deprecated since version 2.6.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\tChart.Controller = Chart;\n};\n","/* MIT license */\nvar convert = require('color-convert');\nvar string = require('chartjs-color-string');\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = string.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = string.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = string.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn string.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn string.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = convert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nmodule.exports = Color;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n\n})));\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Line = function(context, config) {\n\t\tconfig.type = 'line';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'තත්පර කිහිපය',\n ss : 'තත්පර %d',\n m : 'මිනිත්තුව',\n mm : 'මිනිත්තු %d',\n h : 'පැය',\n hh : 'පැය %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මාසය',\n MM : 'මාස %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal : function (number) {\n return number + ' වැනි';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM : function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n\n return si;\n\n})));\n","'use strict';\n\nvar Scale = require('../core/core.scale');\nvar scaleService = require('../core/core.scaleService');\n\nmodule.exports = function() {\n\n\t// Default config for a category scale\n\tvar defaultConfig = {\n\t\tposition: 'bottom'\n\t};\n\n\tvar DatasetScale = Scale.extend({\n\t\t/**\n\t\t* Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\n\t\t* else fall back to data.labels\n\t\t* @private\n\t\t*/\n\t\tgetLabels: function() {\n\t\t\tvar data = this.chart.data;\n\t\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\n\t\t},\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar labels = me.getLabels();\n\t\t\tme.minIndex = 0;\n\t\t\tme.maxIndex = labels.length - 1;\n\t\t\tvar findIndex;\n\n\t\t\tif (me.options.ticks.min !== undefined) {\n\t\t\t\t// user specified min value\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.min);\n\t\t\t\tme.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\n\t\t\t}\n\n\t\t\tif (me.options.ticks.max !== undefined) {\n\t\t\t\t// user specified max value\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.max);\n\t\t\t\tme.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\n\t\t\t}\n\n\t\t\tme.min = labels[me.minIndex];\n\t\t\tme.max = labels[me.maxIndex];\n\t\t},\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar labels = me.getLabels();\n\t\t\t// If we are viewing some subset of labels, slice the original array\n\t\t\tme.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\n\t\t},\n\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar data = me.chart.data;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t\tif (data.yLabels && !isHorizontal) {\n\t\t\t\treturn me.getRightValue(data.datasets[datasetIndex].data[index]);\n\t\t\t}\n\t\t\treturn me.ticks[index - me.minIndex];\n\t\t},\n\n\t\t// Used to get data value locations. Value can either be an index or a numerical value\n\t\tgetPixelForValue: function(value, index) {\n\t\t\tvar me = this;\n\t\t\tvar offset = me.options.offset;\n\t\t\t// 1 is added because we need the length but we have the indexes\n\t\t\tvar offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\n\n\t\t\t// If value is a data object, then index is the index in the data array,\n\t\t\t// not the index of the scale. We need to change that.\n\t\t\tvar valueCategory;\n\t\t\tif (value !== undefined && value !== null) {\n\t\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t\t}\n\t\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\t\tvar labels = me.getLabels();\n\t\t\t\tvalue = valueCategory || value;\n\t\t\t\tvar idx = labels.indexOf(value);\n\t\t\t\tindex = idx !== -1 ? idx : index;\n\t\t\t}\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tvar valueWidth = me.width / offsetAmt;\n\t\t\t\tvar widthOffset = (valueWidth * (index - me.minIndex));\n\n\t\t\t\tif (offset) {\n\t\t\t\t\twidthOffset += (valueWidth / 2);\n\t\t\t\t}\n\n\t\t\t\treturn me.left + Math.round(widthOffset);\n\t\t\t}\n\t\t\tvar valueHeight = me.height / offsetAmt;\n\t\t\tvar heightOffset = (valueHeight * (index - me.minIndex));\n\n\t\t\tif (offset) {\n\t\t\t\theightOffset += (valueHeight / 2);\n\t\t\t}\n\n\t\t\treturn me.top + Math.round(heightOffset);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar offset = me.options.offset;\n\t\t\tvar value;\n\t\t\tvar offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n\t\t\tvar horz = me.isHorizontal();\n\t\t\tvar valueDimension = (horz ? me.width : me.height) / offsetAmt;\n\n\t\t\tpixel -= horz ? me.left : me.top;\n\n\t\t\tif (offset) {\n\t\t\t\tpixel -= (valueDimension / 2);\n\t\t\t}\n\n\t\t\tif (pixel <= 0) {\n\t\t\t\tvalue = 0;\n\t\t\t} else {\n\t\t\t\tvalue = Math.round(pixel / valueDimension);\n\t\t\t}\n\n\t\t\treturn value + me.minIndex;\n\t\t},\n\t\tgetBasePixel: function() {\n\t\t\treturn this.bottom;\n\t\t}\n\t});\n\n\tscaleService.registerScaleType('category', DatasetScale, defaultConfig);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var pt = moment.defineLocale('pt', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕੁਝ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return paIn;\n\n})));\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\nvar scaleService = require('../core/core.scaleService');\nvar Ticks = require('../core/core.ticks');\n\nmodule.exports = function(Chart) {\n\n\tvar globalDefaults = defaults.global;\n\n\tvar defaultConfig = {\n\t\tdisplay: true,\n\n\t\t// Boolean - Whether to animate scaling the chart from the centre\n\t\tanimate: true,\n\t\tposition: 'chartArea',\n\n\t\tangleLines: {\n\t\t\tdisplay: true,\n\t\t\tcolor: 'rgba(0, 0, 0, 0.1)',\n\t\t\tlineWidth: 1\n\t\t},\n\n\t\tgridLines: {\n\t\t\tcircular: false\n\t\t},\n\n\t\t// label settings\n\t\tticks: {\n\t\t\t// Boolean - Show a backdrop to the scale label\n\t\t\tshowLabelBackdrop: true,\n\n\t\t\t// String - The colour of the label backdrop\n\t\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t\t// Number - The backdrop padding above & below the label in pixels\n\t\t\tbackdropPaddingY: 2,\n\n\t\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\t\tbackdropPaddingX: 2,\n\n\t\t\tcallback: Ticks.formatters.linear\n\t\t},\n\n\t\tpointLabels: {\n\t\t\t// Boolean - if true, show point labels\n\t\t\tdisplay: true,\n\n\t\t\t// Number - Point label font size in pixels\n\t\t\tfontSize: 10,\n\n\t\t\t// Function - Used to convert point labels\n\t\t\tcallback: function(label) {\n\t\t\t\treturn label;\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction getValueCount(scale) {\n\t\tvar opts = scale.options;\n\t\treturn opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\n\t}\n\n\tfunction getPointLabelFontOptions(scale) {\n\t\tvar pointLabelOptions = scale.options.pointLabels;\n\t\tvar fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\n\t\tvar fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\n\t\tvar fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\n\t\tvar font = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n\t\treturn {\n\t\t\tsize: fontSize,\n\t\t\tstyle: fontStyle,\n\t\t\tfamily: fontFamily,\n\t\t\tfont: font\n\t\t};\n\t}\n\n\tfunction measureLabelSize(ctx, fontSize, label) {\n\t\tif (helpers.isArray(label)) {\n\t\t\treturn {\n\t\t\t\tw: helpers.longestText(ctx, ctx.font, label),\n\t\t\t\th: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tw: ctx.measureText(label).width,\n\t\t\th: fontSize\n\t\t};\n\t}\n\n\tfunction determineLimits(angle, pos, size, min, max) {\n\t\tif (angle === min || angle === max) {\n\t\t\treturn {\n\t\t\t\tstart: pos - (size / 2),\n\t\t\t\tend: pos + (size / 2)\n\t\t\t};\n\t\t} else if (angle < min || angle > max) {\n\t\t\treturn {\n\t\t\t\tstart: pos - size - 5,\n\t\t\t\tend: pos\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tstart: pos,\n\t\t\tend: pos + size + 5\n\t\t};\n\t}\n\n\t/**\n\t * Helper function to fit a radial linear scale with point labels\n\t */\n\tfunction fitWithPointLabels(scale) {\n\t\t/*\n\t\t * Right, this is really confusing and there is a lot of maths going on here\n\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t\t *\n\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t\t *\n\t\t * Solution:\n\t\t *\n\t\t * We assume the radius of the polygon is half the size of the canvas at first\n\t\t * at each index we check if the text overlaps.\n\t\t *\n\t\t * Where it does, we store that angle and that index.\n\t\t *\n\t\t * After finding the largest index and angle we calculate how much we need to remove\n\t\t * from the shape radius to move the point inwards by that x.\n\t\t *\n\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\n\t\t * along with labels.\n\t\t *\n\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t\t *\n\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t\t * and position it in the most space efficient manner\n\t\t *\n\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\t\t */\n\n\t\tvar plFont = getPointLabelFontOptions(scale);\n\n\t\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n\t\tvar furthestLimits = {\n\t\t\tr: scale.width,\n\t\t\tl: 0,\n\t\t\tt: scale.height,\n\t\t\tb: 0\n\t\t};\n\t\tvar furthestAngles = {};\n\t\tvar i, textSize, pointPosition;\n\n\t\tscale.ctx.font = plFont.font;\n\t\tscale._pointLabelSizes = [];\n\n\t\tvar valueCount = getValueCount(scale);\n\t\tfor (i = 0; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, largestPossibleRadius);\n\t\t\ttextSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\n\t\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\t\tvar angle = helpers.toDegrees(angleRadians) % 360;\n\t\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\t\tfurthestAngles.l = angleRadians;\n\t\t\t}\n\n\t\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\t\tfurthestAngles.r = angleRadians;\n\t\t\t}\n\n\t\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\t\tfurthestAngles.t = angleRadians;\n\t\t\t}\n\n\t\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\t\tfurthestAngles.b = angleRadians;\n\t\t\t}\n\t\t}\n\n\t\tscale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\n\t}\n\n\t/**\n\t * Helper function to fit a radial linear scale with no point labels\n\t */\n\tfunction fit(scale) {\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n\t\tscale.drawingArea = Math.round(largestPossibleRadius);\n\t\tscale.setCenterPoint(0, 0, 0, 0);\n\t}\n\n\tfunction getTextAlignForAngle(angle) {\n\t\tif (angle === 0 || angle === 180) {\n\t\t\treturn 'center';\n\t\t} else if (angle < 180) {\n\t\t\treturn 'left';\n\t\t}\n\n\t\treturn 'right';\n\t}\n\n\tfunction fillText(ctx, text, position, fontSize) {\n\t\tif (helpers.isArray(text)) {\n\t\t\tvar y = position.y;\n\t\t\tvar spacing = 1.5 * fontSize;\n\n\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\t\ty += spacing;\n\t\t\t}\n\t\t} else {\n\t\t\tctx.fillText(text, position.x, position.y);\n\t\t}\n\t}\n\n\tfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\t\tif (angle === 90 || angle === 270) {\n\t\t\tposition.y -= (textSize.h / 2);\n\t\t} else if (angle > 270 || angle < 90) {\n\t\t\tposition.y -= textSize.h;\n\t\t}\n\t}\n\n\tfunction drawPointLabels(scale) {\n\t\tvar ctx = scale.ctx;\n\t\tvar opts = scale.options;\n\t\tvar angleLineOpts = opts.angleLines;\n\t\tvar pointLabelOpts = opts.pointLabels;\n\n\t\tctx.lineWidth = angleLineOpts.lineWidth;\n\t\tctx.strokeStyle = angleLineOpts.color;\n\n\t\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n\t\t// Point Label Font\n\t\tvar plFont = getPointLabelFontOptions(scale);\n\n\t\tctx.textBaseline = 'top';\n\n\t\tfor (var i = getValueCount(scale) - 1; i >= 0; i--) {\n\t\t\tif (angleLineOpts.display) {\n\t\t\t\tvar outerPosition = scale.getPointPosition(i, outerDistance);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(scale.xCenter, scale.yCenter);\n\t\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.closePath();\n\t\t\t}\n\n\t\t\tif (pointLabelOpts.display) {\n\t\t\t\t// Extra 3px out for some label spacing\n\t\t\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\n\n\t\t\t\t// Keep this in loop since we may support array properties here\n\t\t\t\tvar pointLabelFontColor = helpers.valueAtIndexOrDefault(pointLabelOpts.fontColor, i, globalDefaults.defaultFontColor);\n\t\t\t\tctx.font = plFont.font;\n\t\t\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\t\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\t\t\tvar angle = helpers.toDegrees(angleRadians);\n\t\t\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\t\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\t\t\tfillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\t\tvar ctx = scale.ctx;\n\t\tctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\n\t\tctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\n\n\t\tif (scale.options.gridLines.circular) {\n\t\t\t// Draw circular arcs between the points\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t\t\tctx.closePath();\n\t\t\tctx.stroke();\n\t\t} else {\n\t\t\t// Draw straight lines connecting each index\n\t\t\tvar valueCount = getValueCount(scale);\n\n\t\t\tif (valueCount === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tctx.beginPath();\n\t\t\tvar pointPosition = scale.getPointPosition(0, radius);\n\t\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t\t}\n\n\t\t\tctx.closePath();\n\t\t\tctx.stroke();\n\t\t}\n\t}\n\n\tfunction numberOrZero(param) {\n\t\treturn helpers.isNumber(param) ? param : 0;\n\t}\n\n\tvar LinearRadialScale = Chart.LinearScaleBase.extend({\n\t\tsetDimensions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\t// Set the unconstrained dimension before label rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.height = me.maxHeight;\n\t\t\tme.xCenter = Math.round(me.width / 2);\n\t\t\tme.yCenter = Math.round(me.height / 2);\n\n\t\t\tvar minSize = helpers.min([me.height, me.width]);\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\tme.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\n\t\t},\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar min = Number.POSITIVE_INFINITY;\n\t\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\t\thelpers.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\t\tme.handleTickRangeOptions();\n\t\t},\n\t\tgetTickLimit: function() {\n\t\t\tvar tickOpts = this.options.ticks;\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\treturn Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tvar me = this;\n\n\t\t\tChart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\n\n\t\t\t// Point labels\n\t\t\tme.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\n\t\t},\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\tfit: function() {\n\t\t\tif (this.options.pointLabels.display) {\n\t\t\t\tfitWithPointLabels(this);\n\t\t\t} else {\n\t\t\t\tfit(this);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Set radius reductions and determine new radius and center point\n\t\t * @private\n\t\t */\n\t\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\t\tvar me = this;\n\t\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\n\n\t\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\t\tme.drawingArea = Math.min(\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t\t},\n\t\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\t\tvar me = this;\n\t\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\t\tvar maxTop = topMovement + me.drawingArea;\n\t\t\tvar maxBottom = me.height - bottomMovement - me.drawingArea;\n\n\t\t\tme.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\n\t\t\tme.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\n\t\t},\n\n\t\tgetIndexAngle: function(index) {\n\t\t\tvar angleMultiplier = (Math.PI * 2) / getValueCount(this);\n\t\t\tvar startAngle = this.chart.options && this.chart.options.startAngle ?\n\t\t\t\tthis.chart.options.startAngle :\n\t\t\t\t0;\n\n\t\t\tvar startAngleRadians = startAngle * Math.PI * 2 / 360;\n\n\t\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\t\treturn index * angleMultiplier + startAngleRadians;\n\t\t},\n\t\tgetDistanceFromCenterForValue: function(value) {\n\t\t\tvar me = this;\n\n\t\t\tif (value === null) {\n\t\t\t\treturn 0; // null always in center\n\t\t\t}\n\n\t\t\t// Take into account half font size + the yPadding of the top value\n\t\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\t\tif (me.options.ticks.reverse) {\n\t\t\t\treturn (me.max - value) * scalingFactor;\n\t\t\t}\n\t\t\treturn (value - me.min) * scalingFactor;\n\t\t},\n\t\tgetPointPosition: function(index, distanceFromCenter) {\n\t\t\tvar me = this;\n\t\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\t\treturn {\n\t\t\t\tx: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\n\t\t\t\ty: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\n\t\t\t};\n\t\t},\n\t\tgetPointPositionForValue: function(index, value) {\n\t\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t\t},\n\n\t\tgetBasePosition: function() {\n\t\t\tvar me = this;\n\t\t\tvar min = me.min;\n\t\t\tvar max = me.max;\n\n\t\t\treturn me.getPointPositionForValue(0,\n\t\t\t\tme.beginAtZero ? 0 :\n\t\t\t\tmin < 0 && max < 0 ? max :\n\t\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t\t0);\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar gridLineOpts = opts.gridLines;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\n\t\t\tif (opts.display) {\n\t\t\t\tvar ctx = me.ctx;\n\t\t\t\tvar startAngle = this.getIndexAngle(0);\n\n\t\t\t\t// Tick Font\n\t\t\t\tvar tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\t\tvar tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\n\t\t\t\tvar tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\n\t\t\t\tvar tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\n\n\t\t\t\thelpers.each(me.ticks, function(label, index) {\n\t\t\t\t\t// Don't draw a centre value (if it is minimum)\n\t\t\t\t\tif (index > 0 || tickOpts.reverse) {\n\t\t\t\t\t\tvar yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\t\t\t\t// Draw circular lines around the scale\n\t\t\t\t\t\tif (gridLineOpts.display && index !== 0) {\n\t\t\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, yCenterOffset, index);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (tickOpts.display) {\n\t\t\t\t\t\t\tvar tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\n\t\t\t\t\t\t\tctx.font = tickLabelFont;\n\n\t\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\t\tctx.translate(me.xCenter, me.yCenter);\n\t\t\t\t\t\t\tctx.rotate(startAngle);\n\n\t\t\t\t\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\n\t\t\t\t\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\t\t\t\t\t\t\t\tctx.fillRect(\n\t\t\t\t\t\t\t\t\t-labelWidth / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t\t\t\t\t-yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\t\t\t\t\tlabelWidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\t\t\t\t\ttickFontSize + tickOpts.backdropPaddingY * 2\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\t\tctx.textBaseline = 'middle';\n\t\t\t\t\t\t\tctx.fillStyle = tickFontColor;\n\t\t\t\t\t\t\tctx.fillText(label, 0, -yCenterOffset);\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (opts.angleLines.display || opts.pointLabels.display) {\n\t\t\t\t\tdrawPointLabels(me);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tscaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-màireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ý~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'í~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~míñ~úté',\n mm : '%d m~íñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var se = moment.defineLocale('se', {\n months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maŋit %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n\n})));\n"],"sourceRoot":""}