{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-SG.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./results/index.js","webpack:///./src/results.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","res","length","push","hasOwnProp","a","b","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","obj","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","month","date","daysInMonth","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","day","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","h","hh","dd","M","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","weekdayProvided","weekdayActual","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","moment","conversions","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","lab2lch","hsl2rgb","hsl2hsv","hsl","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","hsv","sl","v","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2rgb","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab2rgb","lch2lab","lch2xyz","lch2rgb","rgb","g","delta","reverseKeywords","JSON","stringify","z","xyz","t1","t2","t3","hi","f","q","hwb","wh","bl","ratio","cmyk","lab","y2","hr","atan2","PI","sqrt","lch","cos","sin","keyword","cssKeywords","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","convert","Converter","pair","convs","routeSpace","space","getValues","setValues","vals","fspace","colorConvert","colorName","colorString","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","scale","num","str","Color","valid","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","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","w1","w2","type","target","error","spaces","maxes","capped","chans","sname","svalues","window","id","chartjsColor","helpers","noop","uid","isNullOrUndef","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","setFn","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","helpers_core","callCallback","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","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","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","beginPath","lineTo","SQRT1_2","fill","stroke","drawImage","_isPointInArea","point","area","clipArea","save","clip","unclipArea","restore","previous","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","scope","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","global","fontSize","font","family","fontFamily","lineHeight","fontStyle","toFontString","resolve","inputs","context","helpers$1","easing","canvas","Element","configuration","initialize","hidden","pivot","_view","_model","_start","transition","ease","start","view","actual","origin","c0","c1","interpolate","tooltipPosition","hasValue","core_element","exports$2","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","animation","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","DatasetController","datasetIndex","datasetElementType","dataElementType","linkScales","addElements","updateIndex","meta","getMeta","dataset","getDataset","xAxisID","scales","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","update","destroy","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","configurable","method","resyncElements","easingValue","elements","draw","removeHoverStyle","$previousStyle","setHoverStyle","custom","getHoverColor","backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","numMeta","numData","insertElements","count","onDataPush","onDataPop","pop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","borderAlign","element_arc","inLabelRange","mouseX","vm","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","distance","startAngle","endAngle","betweenAngles","withinRadius","innerRadius","outerRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","angleMargin","sA","eA","pixelMargin","fillStyle","lineWidth","lineJoin","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","current","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","lineCap","setLineDash","lineDashOffset","previousItem","skip","valueOrDefault$2","defaultColor$1","xRange","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","x2","y1","half","swap","orig","v2","parseBorderWidth","maxW","maxH","edge","borderSkipped","horizontal","parseBorderSkipped","skipX","skipY","bounds","rectangle","element_rectangle","rects","border","outer","inner","boundingRects","fillRect","Arc","Line","Point","Rectangle","resolve$1","hover","categoryPercentage","barPercentage","gridLines","offsetGridLines","controller_bar","bar","_ruler","getRuler","_resolveElementOptions","_xScale","_yScale","datasetLabel","label","labels","_updateElementGeometry","vscale","getBasePixel","isHorizontal","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","stacked","stacks","isDatasetVisible","getStackCount","getStackIndex","stackCount","end","pixels","getPixelForValue","barThickness","prev","curr","ticks","getTicks","getPixelForTick","computeMinSampleSize","imeta","ivalue","getRightValue","minBarLength","controller","range","percent","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","maxBarThickness","Infinity","dataIndex","valueOrDefault$3","resolve$2","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","resolve$3","valueOrDefault$4","animateRotate","animateScale","legendCallback","text","legend","generateLabels","ds","arcOpts","bw","onClick","legendItem","cutoutPercentage","circumference","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","opts","availableWidth","availableHeight","minSize","arcs","chartWeight","_getRingWeight","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","offsetX","offsetY","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","controller_horizontalBar","valueOrDefault$5","resolve$4","isPointInArea","lineEnabled","showLine","controller_line","lineTension","_scale","_resolveLineOptions","updateBezierControlPoints","lineModel","_resolvePointOptions","calculatePointY","ELEMENT_OPTIONS","elementOptions","dsMeta","sumPos","sumNeg","stackedRightValue","rightValue","controlPoints","capControlPoint","pt","filter","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","halfBorderWidth","resolve$5","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$6","resolve$6","controller_radar","pointPosition","getPointPositionForValue","controllers","bubble","horizontalBar","polarArea","pie","radar","scatter","getRelativePosition","native","parseVisibleItems","handler","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","x-axis","nearest","intersectsItem","filterByPosition","where","sortByWeight","_tmpIndex_","addSizeByPosition","boxes","box","layout","core_layouts","addBox","fullWidth","removeBox","layoutItem","configure","props","layoutOptions","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","maxPadding","verticalBoxes","horizontalBoxes","outerBoxes","chartWidth","chartHeight","chartAreaWidth","verticalBoxWidth","maxChartAreaWidth","maxChartAreaHeight","outerBoxSizes","minBoxSizes","getPadding","boxPadding","findMaxPadding","fitBox","minBoxSize","findNextWhere","scaleMargin","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBox","stylesheet","freeze","default","EXPANDO_KEY","CSS_SIZE_MONITOR","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","getStyle","eventListenerOptions","supports","addEventListener","passive","addListener","node","removeListener","removeEventListener","createEvent","nativeEvent","createDiv","cls","el","document","createElement","className","addResizeListener","ticking","expando","resizer","expand","shrink","appendChild","_reset","scrollLeft","scrollTop","onScroll","createResizer","container","maintainAspectRatio","parentNode","clientWidth","proxy","renderProxy","animationName","reflow","offsetParent","classList","watchForRender","insertBefore","firstChild","removeResizeListener","remove","unwatchForRender","removeChild","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","_loaded","platform","css","_style","setAttribute","getElementsByTagName","createTextNode","injectCSS","acquireContext","getElementById","getContext","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","removeAttribute","proxies","event","fromNativeEvent","addEvent","removeEvent","implementation","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptor","params","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$7","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","String","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getAlignedX","align","getBeforeAfterBodyLines","exports$3","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","changed","indexScale","valueScale","existingModel","active","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","body","dataPoints","tooltip","combinedBodyLength","reduce","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","lf","rf","olf","orf","yf","midX","midY","determineAlignment","paddingAndSize","radiusAndPadding","getBackgroundPoint","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","textAlign","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$8","mergeScaleConfig","slen","mergeConfig","positionIsHorizontal","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","ensureScalesHaveIDs","buildOrUpdateScales","initToolTip","stop","silent","newWidth","getMaximumWidth","newHeight","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","newOptions","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","hoverOptions","core_controller","abstract","DateAdapter","Controller","types","configMerge","scaleMerge","parse","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","log10","tickString","maxTick","logTick","toExponential","numDecimal","logarithmic","remain","valueOrDefault$9","labelsFromTicks","computeTextSize","tick","longestText","color","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","minor","major","core_scale","paddingLeft","paddingTop","paddingRight","paddingBottom","_ticks","beforeUpdate","maxWidth","maxHeight","margins","_maxLabelLines","longestLabelWidth","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","cosRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","toRadians","scaleLabelOpts","gridLineOpts","_isVisible","parseFont","isFullWidth","scaleLabelFont","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","numberOfLabelLines","lineSpace","tickPadding","sinRotation","labelHeight","firstLabelWidth","lastLabelWidth","offsetLeft","offsetRight","handleMargins","rawValue","getValueForPixel","innerWidth","pixel","finalVal","innerHeight","decimal","valueOffset","getBaseValue","_autoSkip","optionTicks","tickCount","skipRatio","maxTicks","maxTicksLimit","ticksLength","_tickSize","axisLength","PaddingBottom","rot","borderValue","tickStart","tickEnd","optionMajorTicks","isRotated","isMirrored","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","labelRotationRadians","itemsToDraw","axisWidth","alignPixel","_alignPixel","lineColor","tx1","ty1","tx2","ty2","labelX","labelY","textOffset","zeroLineIndex","lineValue","getPixelForGridLine","labelYOffset","labelXOffset","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","translate","scaleLabelX","scaleLabelY","halfLineHeight","isLeft","firstLineWidth","lastLineWidth","scale_category","getLabels","xLabels","yLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","_defaults","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","stepSize","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","factor","niceMin","niceMax","numSpaces","maxNumSpaces","rmin","rmax","spacing","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","defaultConfig$1","scale_linear","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","innerDimension","_defaults$1","valueOrDefault$a","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","minNotZero","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","firstTickValue","_defaults$2","valueOrDefault$b","valueAtIndexOrDefault$1","resolve$7","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","param","scale_radialLinear","drawingArea","NEGATIVE_INFINITY","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","toDegrees","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","outerPosition","extra","pointLabelPosition","pointLabelFontColor","drawPointLabels","yCenterOffset","drawRadiusLine","_defaults$3","valueOrDefault$c","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","arrayUnique","hash","interpolate$1","table","skey","tkey","mid","i0","i1","lo","lookup","span","toTimestamp","adapter","_adapter","parser","determineMajorUnit","generate","capacity","timeOpts","minUnit","interval","determineUnitForAutoTicks","unitStepSize","majorTicksEnabled","first","determineStepSize","scale_time","adapters","displayFormats","timestamp","timestamps","dataLabels","_horizontal","_table","_timestamps","getLabelCapacity","_unit","determineUnitForFormatting","_majorUnit","distribution","buildLookupTable","_offsets","computeOffsets","majorUnit","ticksFromTimestamps","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","isReverse","getLabelWidth","ticksOpts","tickLabelWidth","tickFontSize","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","plugin_filler","afterDatasetsUpdate","$filler","mapper","beforeDatasetDraw","loop","p0","d0","d1","doFill","noop$1","valueOrDefault$d","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","textWidth","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","lineCount","fontOpts","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","arrayToSearch","startIndex","currentItem","findPreviousWhere","epsilon","rounded","exponent","log","LOG10E","powerOf10","isPowerOf10","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","parent","host","cw","clientHeight","ch","currentStyle","getPropertyValue","forceRatio","pixelRatio","pixelSize","arrayOfThings","gc","garbageCollect","longest","thing","nestedThing","gcLen","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","Animation","animationService","Interaction","layouts","Scale","scaleService","Ticks","Tooltip","src","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","webpackPolyfill","paths","children","symbolMap","1","2","3","4","5","6","7","8","9","0","numberMap","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","১","২","৩","৪","৫","৬","৭","৮","৯","০","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","relativeTimeWithMutation","mutationTable","substring","softMutation","mutation","lastNumber","monthsParseExact","ll","lll","llll","plural","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","affix","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","१","२","३","४","५","६","७","८","९","०","weekEndings","40","១","២","៣","៤","៥","៦","៧","៨","៩","០","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","isUpper","eifelerRegelAppliesToNumber","firstDigit","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","monthsNominative","monthsSubjective","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","12","13","numbersNouns","numberNoun","hundred","ten","one","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","nounCase","./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-SG","./en-SG.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","./ga","./ga.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-ch","./it-ch.js","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.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","results","set1","win_chro_simplify_vs_false","win_chro_simplify_vs_true","win_edge_simplify_vs_false","win_edge_simplify_vs_true","set2","win_edge_simplify_stack_false","win_edge_simplify_stack_true","set3","mac_safa_bavaria_vs_false","mac_safa_bavaria_vs_true","mac_ffox_bavaria_vs_false","mac_ffox_bavaria_vs_true","set4","ubu_ffox_bavaria_vs_false","ubu_ffox_bavaria_jsstack_false","ubu_ffox_bavaria_vs_true","ubu_ffox_bavaria_jsstack_true","set5","ipad_safa_simplify_vs_false","ipad_safa_simplify_vs_true","ipad_ffox_simplify_vs_false","ipad_ffox_simplify_vs_true","processHash","location","resultsRoot","charts","destroyCharts","hasChildNodes","lastChild","killChildren","createChart","setCharts","dimensionMap","dimensions","getElementsByClassName","dim","child","printStats","mean","sum","median","onhashchange","toggleLabel"],"mappings":"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GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,UAAA,GACAC,aAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,UAAA,GACAC,aAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,I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","file":"results.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 303);\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;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\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 6th 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 function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (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 === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (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 beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning 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, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\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 || normalizedInput.isoWeek || 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 : 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 = {};\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(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(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 var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, 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 var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\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 === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\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 asQuarters = makeAs('Q');\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.asQuarters = asQuarters;\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.24.0';\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: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","/*!\n * Chart.js v2.8.0\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\n/* MIT license */\n\nvar conversions = {\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\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\nvar colorConvert = convert;\n\nvar colorName = {\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};\n\n/* MIT license */\n\n\nvar colorString = {\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,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/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 hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\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 if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\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 = colorName[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(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\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 colorName) {\n reverseNames[colorName[name]] = name;\n}\n\n/* MIT license */\n\n\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 = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.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 colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.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] = colorConvert[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\nvar chartjsColor = Color;\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 (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\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 true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\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 https://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): also used by mergeConfig and mergeScaleConfig 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|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|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\nvar helpers_core = 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\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\nvar helpers_easing = {\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_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\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\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\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, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\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.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\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\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== '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\nvar helpers_canvas = exports$1;\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_core.clear = exports$1.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_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\ndefaults._set('global', {\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\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\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_core.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 * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\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_core.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\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\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 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(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 (helpers$1.isFinite(origin) && helpers$1.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$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.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$1.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$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$2 = core_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\nvar core_animation = exports$2;\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$2.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$2.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\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\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\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\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$1.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$1.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\n\t\tme.advance();\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() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.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\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis.update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nvar element_arc = core_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$1.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\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar angleMargin;\n\n\t\tctx.save();\n\n\t\tctx.beginPath();\n\t\tctx.arc(vm.x, vm.y, Math.max(vm.outerRadius - pixelMargin, 0), sA, eA);\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\tctx.closePath();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tif (vm.borderAlign === 'inner') {\n\t\t\t\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t\t\t\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\t\t\t\tctx.beginPath();\n\t\t\t\tangleMargin = pixelMargin / vm.outerRadius;\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin);\n\t\t\t\tif (vm.innerRadius > pixelMargin) {\n\t\t\t\t\tangleMargin = pixelMargin / vm.innerRadius;\n\t\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true);\n\t\t\t\t} else {\n\t\t\t\t\tctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2);\n\t\t\t\t}\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.clip();\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\t\t\tctx.closePath();\n\n\t\t\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\t\t\tctx.lineJoin = 'round';\n\t\t\t} else {\n\t\t\t\tctx.lineWidth = vm.borderWidth;\n\t\t\t\tctx.lineJoin = 'bevel';\n\t\t\t}\n\n\t\t\tctx.strokeStyle = vm.borderColor;\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: 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\nvar element_line = core_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 globalDefaults = core_defaults.global;\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 = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(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$1.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$1.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\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\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\nvar element_point = core_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 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 globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\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 || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.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(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = 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 - half;\n\t\ty2 = vm.y + half;\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\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\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\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\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\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - 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\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\t\t\toffset: true,\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\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, Math.abs(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$1.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 size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : 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 - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(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\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tme._updateElementGeometry(rectangle, index, reset);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\n\t\t\t\t(stacked === false ||\n\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\n\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stackCount = me.getStackCount();\n\t\tvar datasetIndex = me.index;\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar start = isHorizontal ? scale.left : scale.top;\n\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\n\t\tvar pixels = [];\n\t\tvar i, ilen, min;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\n\t\t}\n\n\t\tmin = helpers$1.isNullOrUndef(scale.options.barThickness)\n\t\t\t? computeMinSampleSize(scale, pixels)\n\t\t\t: -1;\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tpixels: pixels,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tstackCount: stackCount,\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar value = +scale.getRightValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = scale.options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = meta.stack;\n\t\tvar start = 0;\n\t\tvar i, imeta, ivalue, base, head, size;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < datasetIndex; ++i) {\n\t\t\t\timeta = chart.getDatasetMeta(i);\n\n\t\t\t\tif (imeta.bar &&\n\t\t\t\t\timeta.stack === stack &&\n\t\t\t\t\timeta.controller._getValueScaleId() === scale.id &&\n\t\t\t\t\tchart.isDatasetVisible(i)) {\n\n\t\t\t\t\tivalue = +scale.getRightValue(datasets[i].data[index]);\n\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + value);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (value >= 0 && !isHorizontal || value < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\n\t\tvar me = this;\n\t\tvar options = ruler.scale.options;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\thelpers$1.valueOrDefault(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(rectangle, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = rectangle.custom || {};\n\t\tvar options = chart.options.elements.rectangle;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderSkipped',\n\t\t\t'borderWidth'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$1([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\n\ncore_defaults._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\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$3(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$3(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$3(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = point.custom || {};\n\t\tvar options = chart.options.elements.point;\n\t\tvar data = dataset.data[index];\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderWidth',\n\t\t\t'hoverBackgroundColor',\n\t\t\t'hoverBorderColor',\n\t\t\t'hoverBorderWidth',\n\t\t\t'hoverRadius',\n\t\t\t'hitRadius',\n\t\t\t'pointStyle',\n\t\t\t'rotation'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$2([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$2([\n\t\t\tcustom.radius,\n\t\t\tdata ? data.r : undefined,\n\t\t\tdataset.radius,\n\t\t\toptions.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar resolve$3 = helpers$1.options.resolve;\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\n\ncore_defaults._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 arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = resolve$3([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i);\n\t\t\t\t\t\tvar stroke = resolve$3([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i);\n\t\t\t\t\t\tvar bw = resolve$3([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i);\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$1.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\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar availableWidth = chartArea.right - chartArea.left;\n\t\tvar availableHeight = chartArea.bottom - chartArea.top;\n\t\tvar minSize = Math.min(availableWidth, availableHeight);\n\t\tvar offset = {x: 0, y: 0};\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutoutPercentage = opts.cutoutPercentage;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar i, ilen;\n\n\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\tif (circumference < Math.PI * 2.0) {\n\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\n\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n\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\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n\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\tvar cutout = cutoutPercentage / 100.0;\n\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\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\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offset.x * chart.outerRadius;\n\t\tchart.offsetY = offset.y * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_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\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn (Math.PI * 2.0) * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\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\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\toptions = controller ? controller._resolveElementOptions(arc, i) : arc._options;\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\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}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(arc, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = arc.custom || {};\n\t\tvar options = chart.options.elements.arc;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderWidth',\n\t\t\t'borderAlign',\n\t\t\t'hoverBackgroundColor',\n\t\t\t'hoverBorderColor',\n\t\t\t'hoverBorderWidth',\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$3([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$4(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._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\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\t\t\toffset: true,\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\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\nvar resolve$4 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._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\nfunction lineEnabled(dataset, options) {\n\treturn valueOrDefault$5(dataset.showLine, options.showLines);\n}\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.getScaleForId(meta.yAxisID);\n\t\tvar dataset = me.getDataset();\n\t\tvar showLine = lineEnabled(dataset, me.chart.options);\n\t\tvar i, ilen;\n\n\t\t// Update Line\n\t\tif (showLine) {\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\t// Utility\n\t\t\tline._scale = scale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveLineOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolvePointOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$5(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolvePointOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = chart.data.datasets[me.index];\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements.point;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar ELEMENT_OPTIONS = {\n\t\t\tbackgroundColor: 'pointBackgroundColor',\n\t\t\tborderColor: 'pointBorderColor',\n\t\t\tborderWidth: 'pointBorderWidth',\n\t\t\thitRadius: 'pointHitRadius',\n\t\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\t\thoverRadius: 'pointHoverRadius',\n\t\t\tpointStyle: 'pointStyle',\n\t\t\tradius: 'pointRadius',\n\t\t\trotation: 'pointRotation'\n\t\t};\n\t\tvar keys = Object.keys(ELEMENT_OPTIONS);\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$4([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[ELEMENT_OPTIONS[key]],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveLineOptions: function(element) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = chart.data.datasets[me.index];\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options;\n\t\tvar elementOptions = options.elements.line;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderWidth',\n\t\t\t'borderColor',\n\t\t\t'borderCapStyle',\n\t\t\t'borderDash',\n\t\t\t'borderDashOffset',\n\t\t\t'borderJoinStyle',\n\t\t\t'fill',\n\t\t\t'cubicInterpolationMode'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$4([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\telementOptions[key]\n\t\t\t]);\n\t\t}\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$5(dataset.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$5(dataset.lineTension, elementOptions.tension);\n\t\tvalues.steppedLine = resolve$4([custom.steppedLine, dataset.steppedLine, elementOptions.stepped]);\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta;\n\n\t\tif (yScale.options.stacked) {\n\t\t\tfor (i = 0; i < datasetIndex; i++) {\n\t\t\t\tds = chart.data.datasets[i];\n\t\t\t\tdsMeta = chart.getDatasetMeta(i);\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n\t\t\t\t\tvar stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar rightValue = Number(yScale.getRightValue(value));\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar ilen = points.length;\n\t\tvar halfBorderWidth;\n\t\tvar i = 0;\n\n\t\tif (lineEnabled(me.getDataset(), chart.options)) {\n\t\t\thalfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: area.left,\n\t\t\t\tright: area.right,\n\t\t\t\ttop: area.top - halfBorderWidth,\n\t\t\t\tbottom: area.bottom + halfBorderWidth\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$5(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$5 = helpers$1.options.resolve;\n\ncore_defaults._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\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 arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = resolve$5([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i);\n\t\t\t\t\t\tvar stroke = resolve$5([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i);\n\t\t\t\t\t\tvar bw = resolve$5([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i);\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\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_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\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(arc, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = arc.custom || {};\n\t\tvar options = chart.options.elements.arc;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderWidth',\n\t\t\t'borderAlign',\n\t\t\t'hoverBackgroundColor',\n\t\t\t'hoverBorderColor',\n\t\t\t'hoverBorderWidth',\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$5([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$5([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$6 = helpers$1.options.resolve;\n\ncore_defaults._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\nvar controller_radar = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar dataset = me.getDataset();\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\tdataset.lineTension = dataset.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveLineOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolvePointOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolvePointOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = chart.data.datasets[me.index];\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements.point;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar ELEMENT_OPTIONS = {\n\t\t\tbackgroundColor: 'pointBackgroundColor',\n\t\t\tborderColor: 'pointBorderColor',\n\t\t\tborderWidth: 'pointBorderWidth',\n\t\t\thitRadius: 'pointHitRadius',\n\t\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\t\thoverRadius: 'pointHoverRadius',\n\t\t\tpointStyle: 'pointStyle',\n\t\t\tradius: 'pointRadius',\n\t\t\trotation: 'pointRotation'\n\t\t};\n\t\tvar keys = Object.keys(ELEMENT_OPTIONS);\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$6([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[ELEMENT_OPTIONS[key]],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveLineOptions: function(element) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = chart.data.datasets[me.index];\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements.line;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderWidth',\n\t\t\t'borderColor',\n\t\t\t'borderCapStyle',\n\t\t\t'borderDash',\n\t\t\t'borderDashOffset',\n\t\t\t'borderJoinStyle',\n\t\t\t'fill'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$6([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t]);\n\t\t}\n\n\t\tvalues.tension = valueOrDefault$6(dataset.lineTension, options.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._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\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\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 {object} 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$1.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 {function} handler - 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 {ChartElement[]} items - elements to filter\n * @param {object} position - 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 {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - 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\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 */\nvar core_interaction = {\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 {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - 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 {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - 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 {Event} e - 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 {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - 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\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\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 {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - 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 {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - 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\nfunction filterByPosition(array, position) {\n\treturn helpers$1.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\nfunction findMaxPadding(boxes) {\n\tvar top = 0;\n\tvar left = 0;\n\tvar bottom = 0;\n\tvar right = 0;\n\thelpers$1.each(boxes, function(box) {\n\t\tif (box.getPadding) {\n\t\t\tvar boxPadding = box.getPadding();\n\t\t\ttop = Math.max(top, boxPadding.top);\n\t\t\tleft = Math.max(left, boxPadding.left);\n\t\t\tbottom = Math.max(bottom, boxPadding.bottom);\n\t\t\tright = Math.max(right, boxPadding.right);\n\t\t}\n\t});\n\treturn {\n\t\ttop: top,\n\t\tleft: left,\n\t\tbottom: bottom,\n\t\tright: right\n\t};\n}\n\nfunction addSizeByPosition(boxes, size) {\n\thelpers$1.each(boxes, function(box) {\n\t\tsize[box.position] += box.isHorizontal() ? box.height : box.width;\n\t});\n}\n\ncore_defaults._set('global', {\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\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.\nvar core_layouts = {\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 {ILayoutItem} 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 {ILayoutItem} 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$1.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\tvar verticalBoxes = leftBoxes.concat(rightBoxes);\n\t\tvar horizontalBoxes = topBoxes.concat(bottomBoxes);\n\t\tvar outerBoxes = verticalBoxes.concat(horizontalBoxes);\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\n\t\t// Step 2\n\t\tvar verticalBoxWidth = (width - chartAreaWidth) / verticalBoxes.length;\n\n\t\t// Step 3\n\t\t// TODO re-limit horizontal axis height (this limit has affected only padding calculation since PR 1837)\n\t\t// var horizontalBoxHeight = (height - chartAreaHeight) / horizontalBoxes.length;\n\n\t\t// Step 4\n\t\tvar maxChartAreaWidth = chartWidth;\n\t\tvar maxChartAreaHeight = chartHeight;\n\t\tvar outerBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding};\n\t\tvar minBoxSizes = [];\n\t\tvar maxPadding;\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, chartHeight / 2);\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\twidth: minSize.width,\n\t\t\t\tbox: box,\n\t\t\t});\n\t\t}\n\n\t\thelpers$1.each(outerBoxes, 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\tmaxPadding = findMaxPadding(outerBoxes);\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\n\t\t// Function to fit a box\n\t\tfunction fitBox(box) {\n\t\t\tvar minBoxSize = helpers$1.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 (minBoxSize.horizontal) {\n\t\t\t\t\tvar scaleMargin = {\n\t\t\t\t\t\tleft: Math.max(outerBoxSizes.left, maxPadding.left),\n\t\t\t\t\t\tright: Math.max(outerBoxSizes.right, maxPadding.right),\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.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$1.each(verticalBoxes, fitBox);\n\t\taddSizeByPosition(verticalBoxes, outerBoxSizes);\n\n\t\t// Set the Left and Right margins for the horizontal boxes\n\t\thelpers$1.each(horizontalBoxes, fitBox);\n\t\taddSizeByPosition(horizontalBoxes, outerBoxSizes);\n\n\t\tfunction finalFitVerticalBox(box) {\n\t\t\tvar minBoxSize = helpers$1.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: outerBoxSizes.top,\n\t\t\t\tbottom: outerBoxSizes.bottom\n\t\t\t};\n\n\t\t\tif (minBoxSize) {\n\t\t\t\tbox.update(minBoxSize.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$1.each(verticalBoxes, 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\touterBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding};\n\t\taddSizeByPosition(outerBoxes, outerBoxSizes);\n\n\t\t// We may be adding some padding to account for rotated x axis labels\n\t\tvar leftPaddingAddition = Math.max(maxPadding.left - outerBoxSizes.left, 0);\n\t\touterBoxSizes.left += leftPaddingAddition;\n\t\touterBoxSizes.right += Math.max(maxPadding.right - outerBoxSizes.right, 0);\n\n\t\tvar topPaddingAddition = Math.max(maxPadding.top - outerBoxSizes.top, 0);\n\t\touterBoxSizes.top += topPaddingAddition;\n\t\touterBoxSizes.bottom += Math.max(maxPadding.bottom - outerBoxSizes.bottom, 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 - outerBoxSizes.top - outerBoxSizes.bottom;\n\t\tvar newMaxChartAreaWidth = width - outerBoxSizes.left - outerBoxSizes.right;\n\n\t\tif (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\n\t\t\thelpers$1.each(verticalBoxes, function(box) {\n\t\t\t\tbox.height = newMaxChartAreaHeight;\n\t\t\t});\n\n\t\t\thelpers$1.each(horizontalBoxes, 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 : outerBoxSizes.left;\n\t\t\t\tbox.right = box.fullWidth ? width - rightPadding : outerBoxSizes.left + 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 = outerBoxSizes.top;\n\t\t\t\tbox.bottom = outerBoxSizes.top + 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$1.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$1.each(rightBoxes, placeBox);\n\t\thelpers$1.each(bottomBoxes, placeBox);\n\n\t\t// Step 8\n\t\tchart.chartArea = {\n\t\t\tleft: outerBoxSizes.left,\n\t\t\ttop: outerBoxSizes.top,\n\t\t\tright: outerBoxSizes.left + maxChartAreaWidth,\n\t\t\tbottom: outerBoxSizes.top + maxChartAreaHeight\n\t\t};\n\n\t\t// Step 9\n\t\thelpers$1.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\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\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\nvar platform_dom = \"/*\\n * DOM element rendering detection\\n * https://davidwalsh.name/detect-node-insertion\\n */\\n@keyframes chartjs-render-animation {\\n\\tfrom { opacity: 0.99; }\\n\\tto { opacity: 1; }\\n}\\n\\n.chartjs-render-monitor {\\n\\tanimation: chartjs-render-animation 0.001s;\\n}\\n\\n/*\\n * DOM element resizing detection\\n * https://github.com/marcj/css-element-queries\\n */\\n.chartjs-size-monitor,\\n.chartjs-size-monitor-expand,\\n.chartjs-size-monitor-shrink {\\n\\tposition: absolute;\\n\\tdirection: ltr;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\toverflow: hidden;\\n\\tpointer-events: none;\\n\\tvisibility: hidden;\\n\\tz-index: -1;\\n}\\n\\n.chartjs-size-monitor-expand > div {\\n\\tposition: absolute;\\n\\twidth: 1000000px;\\n\\theight: 1000000px;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.chartjs-size-monitor-shrink > div {\\n\\tposition: absolute;\\n\\twidth: 200%;\\n\\theight: 200%;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\ndefault: platform_dom\n});\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n.default || n;\n}\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\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$1.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\t// eslint-disable-next-line getter-return\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 addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(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$1.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$1.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\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\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\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(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$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(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$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(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\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\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// https://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\nvar platform_dom$2 = {\n\t/**\n\t * When `true`, prevents the automatic injection of the stylesheet required to\n\t * correctly detect when the chart is added to the DOM and then resized. This\n\t * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`)\n\t * to be manually imported to make this library compatible with any CSP.\n\t * See https://github.com/chartjs/Chart.js/issues/5208\n\t */\n\tdisableCSSInjection: false,\n\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\t/**\n\t * @private\n\t */\n\t_ensureLoaded: function() {\n\t\tif (this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._loaded = true;\n\n\t\t// https://github.com/chartjs/Chart.js/issues/5208\n\t\tif (!this.disableCSSInjection) {\n\t\t\tinjectCSS(this, stylesheet);\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// Load platform resources on first chart creation, to make possible to change\n\t\t// platform options after importing the library (e.g. `disableCSSInjection`).\n\t\tthis._ensureLoaded();\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$1.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$1.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\t// eslint-disable-next-line no-self-assign\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\taddListener(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);\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\tremoveListener(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$1.addEvent = addListener;\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$1.removeEvent = removeListener;\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nvar platform = helpers$1.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\ncore_defaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nvar core_plugins = {\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 {IPlugin[]|IPlugin} 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 {IPlugin[]|IPlugin} 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 {IPlugin[]} 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 {Chart} 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 {object[]} [{ 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$1.clone(core_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\nvar core_scaleService = {\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$1.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$1.merge({}, [core_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$1.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$1.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\tcore_layouts.addBox(chart, scale);\n\t\t});\n\t}\n};\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._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$1.noop,\n\t\t\ttitle: function(tooltipItems, data) {\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\t\t\t\t\tif (item.label) {\n\t\t\t\t\t\ttitle = item.label;\n\t\t\t\t\t} else if (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$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers$1.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\tif (!helpers$1.isNullOrUndef(tooltipItem.value)) {\n\t\t\t\t\tlabel += tooltipItem.value;\n\t\t\t\t} else {\n\t\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\t}\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$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers$1.noop,\n\t\t\tfooter: helpers$1.noop,\n\t\t\tafterFooter: helpers$1.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 {object} 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: x / count,\n\t\t\ty: 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 {object} the position of the event in canvas coordinates\n\t * @returns {object} 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$1.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// 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$1.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 {string[]} 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/**\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\n */\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\tvar controller = element._chart.getDatasetMeta(datasetIndex).controller;\n\tvar indexScale = controller._getIndexScale();\n\tvar valueScale = controller._getValueScale();\n\n\treturn {\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tlabel: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tvalue: valueScale ? '' + valueScale.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 = core_defaults.global;\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$7(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t_bodyFontStyle: valueOrDefault$7(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\tbodyFontSize: valueOrDefault$7(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t// Title\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t_titleFontFamily: valueOrDefault$7(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t_titleFontStyle: valueOrDefault$7(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\ttitleFontSize: valueOrDefault$7(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$7(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t_footerFontStyle: valueOrDefault$7(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\tfooterFontSize: valueOrDefault$7(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$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\thelpers$1.each(model.title, maxLineWidth);\n\n\t// Body width\n\tctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\thelpers$1.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$1.each(body, function(bodyItem) {\n\t\thelpers$1.each(bodyItem.before, maxLineWidth);\n\t\thelpers$1.each(bodyItem.lines, maxLineWidth);\n\t\thelpers$1.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$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\thelpers$1.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\nfunction getAlignedX(vm, align) {\n\treturn align === 'center'\n\t\t? vm.x + vm.width / 2\n\t\t: align === 'right'\n\t\t\t? vm.x + vm.width - vm.xPadding\n\t\t\t: vm.x + vm.xPadding;\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$3 = core_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$1.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$1.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 = tooltipPosition.x;\n\t\t\tmodel.y = 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) {\n\t\tvar title = vm.title;\n\n\t\tif (title.length) {\n\t\t\tpt.x = getAlignedX(vm, vm._titleAlign);\n\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 = vm.titleFontColor;\n\t\t\tctx.font = helpers$1.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) {\n\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\tvar bodySpacing = vm.bodySpacing;\n\t\tvar bodyAlign = vm._bodyAlign;\n\t\tvar body = vm.body;\n\t\tvar drawColorBoxes = vm.displayColors;\n\t\tvar labelColors = vm.labelColors;\n\t\tvar xLinePadding = 0;\n\t\tvar colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0;\n\t\tvar textColor;\n\n\t\tctx.textAlign = bodyAlign;\n\t\tctx.textBaseline = 'top';\n\t\tctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\tpt.x = getAlignedX(vm, bodyAlign);\n\n\t\t// Before Body\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 = vm.bodyFontColor;\n\t\thelpers$1.each(vm.beforeBody, fillLineOfText);\n\n\t\txLinePadding = drawColorBoxes && bodyAlign !== 'right'\n\t\t\t? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2)\n\t\t\t: 0;\n\n\t\t// Draw body lines now\n\t\thelpers$1.each(body, function(bodyItem, i) {\n\t\t\ttextColor = vm.labelTextColors[i];\n\t\t\tctx.fillStyle = textColor;\n\t\t\thelpers$1.each(bodyItem.before, fillLineOfText);\n\n\t\t\thelpers$1.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 = vm.legendColorBackground;\n\t\t\t\t\tctx.fillRect(colorX, 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 = labelColors[i].borderColor;\n\t\t\t\t\tctx.strokeRect(colorX, pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Inner square\n\t\t\t\t\tctx.fillStyle = labelColors[i].backgroundColor;\n\t\t\t\t\tctx.fillRect(colorX + 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$1.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$1.each(vm.afterBody, fillLineOfText);\n\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t},\n\n\tdrawFooter: function(pt, vm, ctx) {\n\t\tvar footer = vm.footer;\n\n\t\tif (footer.length) {\n\t\t\tpt.x = getAlignedX(vm, vm._footerAlign);\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 = vm.footerFontColor;\n\t\t\tctx.font = helpers$1.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\thelpers$1.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) {\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\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\tctx.save();\n\t\t\tctx.globalAlpha = opacity;\n\n\t\t\t// Draw Background\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize);\n\n\t\t\t// Draw Title, Body, and Footer\n\t\t\tpt.y += vm.yPadding;\n\n\t\t\t// Titles\n\t\t\tthis.drawTitle(pt, vm, ctx);\n\n\t\t\t// Body\n\t\t\tthis.drawBody(pt, vm, ctx);\n\n\t\t\t// Footer\n\t\t\tthis.drawFooter(pt, vm, ctx);\n\n\t\t\tctx.restore();\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$1.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 */\nvar positioners_1 = positioners;\n\nvar core_tooltip = exports$3;\ncore_tooltip.positioners = positioners_1;\n\nvar valueOrDefault$8 = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\telements: {},\n\tevents: [\n\t\t'mousemove',\n\t\t'mouseout',\n\t\t'click',\n\t\t'touchstart',\n\t\t'touchmove'\n\t],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\n\tmaintainAspectRatio: true,\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0\n});\n\n/**\n * Recursively merge the given config objects representing the `scales` option\n * by incorporating scale defaults in `xAxes` and `yAxes` array items, then\n * returns a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeScaleConfig(/* config objects ... */) {\n\treturn helpers$1.merge({}, [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\tvar slen = source[key].length;\n\t\t\t\tvar i, type, scale;\n\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\ttype = valueOrDefault$8(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\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// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\thelpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\thelpers$1.merge(target[key][i], scale);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * Recursively merge the given config objects as the root options by handling\n * default scale options for the `scales` and `scale` properties, then returns\n * a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeConfig(/* config objects ... */) {\n\treturn helpers$1.merge({}, [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tvar tval = target[key] || {};\n\t\t\tvar sval = source[key];\n\n\t\t\tif (key === 'scales') {\n\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\ttarget[key] = mergeScaleConfig(tval, sval);\n\t\t\t} else if (key === 'scale') {\n\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\ttarget[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction initConfig(config) {\n\tconfig = config || {};\n\n\t// Do NOT use mergeConfig for the data object because this method merges arrays\n\t// and so would change references to labels and datasets, preventing data updates.\n\tvar data = config.data = config.data || {};\n\tdata.datasets = data.datasets || [];\n\tdata.labels = data.labels || [];\n\n\tconfig.options = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[config.type],\n\t\tconfig.options || {});\n\n\treturn config;\n}\n\nfunction updateConfig(chart) {\n\tvar newOptions = chart.options;\n\n\thelpers$1.each(chart.scales, function(scale) {\n\t\tcore_layouts.removeBox(chart, scale);\n\t});\n\n\tnewOptions = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[chart.config.type],\n\t\tnewOptions);\n\n\tchart.options = chart.config.options = newOptions;\n\tchart.ensureScalesHaveIDs();\n\tchart.buildOrUpdateScales();\n\n\t// Tooltip\n\tchart.tooltip._options = newOptions.tooltips;\n\tchart.tooltip.initialize();\n}\n\nfunction positionIsHorizontal(position) {\n\treturn position === 'top' || position === 'bottom';\n}\n\nvar Chart = function(item, config) {\n\tthis.construct(item, config);\n\treturn this;\n};\n\nhelpers$1.extend(Chart.prototype, /** @lends Chart */ {\n\t/**\n\t * @private\n\t */\n\tconstruct: function(item, config) {\n\t\tvar me = this;\n\n\t\tconfig = initConfig(config);\n\n\t\tvar context = platform.acquireContext(item, config);\n\t\tvar canvas = context && context.canvas;\n\t\tvar height = canvas && canvas.height;\n\t\tvar width = canvas && canvas.width;\n\n\t\tme.id = helpers$1.uid();\n\t\tme.ctx = context;\n\t\tme.canvas = canvas;\n\t\tme.config = config;\n\t\tme.width = width;\n\t\tme.height = height;\n\t\tme.aspectRatio = height ? width / height : null;\n\t\tme.options = config.options;\n\t\tme._bufferedRender = false;\n\n\t\t/**\n\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t * @prop Chart#chart\n\t\t * @deprecated since version 2.6.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tme.chart = me;\n\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t// Add the chart instance to the global namespace\n\t\tChart.instances[me.id] = me;\n\n\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\tObject.defineProperty(me, 'data', {\n\t\t\tget: function() {\n\t\t\t\treturn me.config.data;\n\t\t\t},\n\t\t\tset: function(value) {\n\t\t\t\tme.config.data = value;\n\t\t\t}\n\t\t});\n\n\t\tif (!context || !canvas) {\n\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\treturn;\n\t\t}\n\n\t\tme.initialize();\n\t\tme.update();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinitialize: function() {\n\t\tvar me = this;\n\n\t\t// Before init plugin notification\n\t\tcore_plugins.notify(me, 'beforeInit');\n\n\t\thelpers$1.retinaScale(me, me.options.devicePixelRatio);\n\n\t\tme.bindEvents();\n\n\t\tif (me.options.responsive) {\n\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\tme.resize(true);\n\t\t}\n\n\t\t// Make sure scales have IDs and are built before we build any controllers.\n\t\tme.ensureScalesHaveIDs();\n\t\tme.buildOrUpdateScales();\n\t\tme.initToolTip();\n\n\t\t// After init plugin notification\n\t\tcore_plugins.notify(me, 'afterInit');\n\n\t\treturn me;\n\t},\n\n\tclear: function() {\n\t\thelpers$1.canvas.clear(this);\n\t\treturn this;\n\t},\n\n\tstop: function() {\n\t\t// Stops any current animation loop occurring\n\t\tcore_animations.cancelAnimation(this);\n\t\treturn this;\n\t},\n\n\tresize: function(silent) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar canvas = me.canvas;\n\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\n\t\tvar newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas)));\n\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas)));\n\n\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\tcanvas.width = me.width = newWidth;\n\t\tcanvas.height = me.height = newHeight;\n\t\tcanvas.style.width = newWidth + 'px';\n\t\tcanvas.style.height = newHeight + 'px';\n\n\t\thelpers$1.retinaScale(me, options.devicePixelRatio);\n\n\t\tif (!silent) {\n\t\t\t// Notify any plugins about the resize\n\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\tcore_plugins.notify(me, 'resize', [newSize]);\n\n\t\t\t// Notify of resize\n\t\t\tif (options.onResize) {\n\t\t\t\toptions.onResize(me, newSize);\n\t\t\t}\n\n\t\t\tme.stop();\n\t\t\tme.update({\n\t\t\t\tduration: options.responsiveAnimationDuration\n\t\t\t});\n\t\t}\n\t},\n\n\tensureScalesHaveIDs: function() {\n\t\tvar options = this.options;\n\t\tvar scalesOptions = options.scales || {};\n\t\tvar scaleOptions = options.scale;\n\n\t\thelpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n\t\t});\n\n\t\thelpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n\t\t});\n\n\t\tif (scaleOptions) {\n\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t}\n\t},\n\n\t/**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n\tbuildOrUpdateScales: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar scales = me.scales || {};\n\t\tvar items = [];\n\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\tobj[id] = false;\n\t\t\treturn obj;\n\t\t}, {});\n\n\t\tif (options.scales) {\n\t\t\titems = items.concat(\n\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t}),\n\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (options.scale) {\n\t\t\titems.push({\n\t\t\t\toptions: options.scale,\n\t\t\t\tdtype: 'radialLinear',\n\t\t\t\tisDefault: true,\n\t\t\t\tdposition: 'chartArea'\n\t\t\t});\n\t\t}\n\n\t\thelpers$1.each(items, function(item) {\n\t\t\tvar scaleOptions = item.options;\n\t\t\tvar id = scaleOptions.id;\n\t\t\tvar scaleType = valueOrDefault$8(scaleOptions.type, item.dtype);\n\n\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t}\n\n\t\t\tupdated[id] = true;\n\t\t\tvar scale = null;\n\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\tscale = scales[id];\n\t\t\t\tscale.options = scaleOptions;\n\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\tscale.chart = me;\n\t\t\t} else {\n\t\t\t\tvar scaleClass = core_scaleService.getScaleConstructor(scaleType);\n\t\t\t\tif (!scaleClass) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tscale = new scaleClass({\n\t\t\t\t\tid: id,\n\t\t\t\t\ttype: scaleType,\n\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\tchart: me\n\t\t\t\t});\n\t\t\t\tscales[scale.id] = scale;\n\t\t\t}\n\n\t\t\tscale.mergeTicksOptions();\n\n\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\tif (item.isDefault) {\n\t\t\t\tme.scale = scale;\n\t\t\t}\n\t\t});\n\t\t// clear up discarded scales\n\t\thelpers$1.each(updated, function(hasUpdated, id) {\n\t\t\tif (!hasUpdated) {\n\t\t\t\tdelete scales[id];\n\t\t\t}\n\t\t});\n\n\t\tme.scales = scales;\n\n\t\tcore_scaleService.addScalesToLayout(this);\n\t},\n\n\tbuildOrUpdateControllers: function() {\n\t\tvar me = this;\n\t\tvar newControllers = [];\n\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\tme.destroyDatasetMeta(datasetIndex);\n\t\t\t\tmeta = me.getDatasetMeta(datasetIndex);\n\t\t\t}\n\t\t\tmeta.type = type;\n\n\t\t\tif (meta.controller) {\n\t\t\t\tmeta.controller.updateIndex(datasetIndex);\n\t\t\t\tmeta.controller.linkScales();\n\t\t\t} else {\n\t\t\t\tvar ControllerClass = controllers[meta.type];\n\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t}\n\n\t\t\t\tmeta.controller = new ControllerClass(me, datasetIndex);\n\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t}\n\t\t}, me);\n\n\t\treturn newControllers;\n\t},\n\n\t/**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n\tresetElements: function() {\n\t\tvar me = this;\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t}, me);\n\t},\n\n\t/**\n\t* Resets the chart back to it's state before the initial animation\n\t*/\n\treset: function() {\n\t\tthis.resetElements();\n\t\tthis.tooltip.initialize();\n\t},\n\n\tupdate: function(config) {\n\t\tvar me = this;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tupdateConfig(me);\n\n\t\t// plugins options references might have change, let's invalidate the cache\n\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\tcore_plugins._invalidate(me);\n\n\t\tif (core_plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In case the entire data object changed\n\t\tme.tooltip._data = me.data;\n\n\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t// Make sure all dataset controllers have correct meta data counts\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n\t\t}, me);\n\n\t\tme.updateLayout();\n\n\t\t// Can only reset the new controllers after the scales have been updated\n\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\thelpers$1.each(newControllers, function(controller) {\n\t\t\t\tcontroller.reset();\n\t\t\t});\n\t\t}\n\n\t\tme.updateDatasets();\n\n\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t// after update.\n\t\tme.tooltip.initialize();\n\n\t\t// Last active contains items that were previously in the tooltip.\n\t\t// When we reset the tooltip, we need to clear it\n\t\tme.lastActive = [];\n\n\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\tcore_plugins.notify(me, 'afterUpdate');\n\n\t\tif (me._bufferedRender) {\n\t\t\tme._bufferedRequest = {\n\t\t\t\tduration: config.duration,\n\t\t\t\teasing: config.easing,\n\t\t\t\tlazy: config.lazy\n\t\t\t};\n\t\t} else {\n\t\t\tme.render(config);\n\t\t}\n\t},\n\n\t/**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n\tupdateLayout: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeLayout') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tcore_layouts.update(this, this.width, this.height);\n\n\t\t/**\n\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t * @method IPlugin#afterScaleUpdate\n\t\t * @deprecated since version 2.5.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tcore_plugins.notify(me, 'afterScaleUpdate');\n\t\tcore_plugins.notify(me, 'afterLayout');\n\t},\n\n\t/**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n\tupdateDatasets: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.updateDataset(i);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsUpdate');\n\t},\n\n\t/**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n\tupdateDataset: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getDatasetMeta(index);\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: index\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller.update();\n\n\t\tcore_plugins.notify(me, 'afterDatasetUpdate', [args]);\n\t},\n\n\trender: function(config) {\n\t\tvar me = this;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tvar animationOptions = me.options.animation;\n\t\tvar duration = valueOrDefault$8(config.duration, animationOptions && animationOptions.duration);\n\t\tvar lazy = config.lazy;\n\n\t\tif (core_plugins.notify(me, 'beforeRender') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar onComplete = function(animation) {\n\t\t\tcore_plugins.notify(me, 'afterRender');\n\t\t\thelpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t};\n\n\t\tif (animationOptions && duration) {\n\t\t\tvar animation = new core_animation({\n\t\t\t\tnumSteps: duration / 16.66, // 60 fps\n\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\tvar easingFunction = helpers$1.easing.effects[animationObject.easing];\n\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t},\n\n\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\tonAnimationComplete: onComplete\n\t\t\t});\n\n\t\t\tcore_animations.addAnimation(me, animation, duration, lazy);\n\t\t} else {\n\t\t\tme.draw();\n\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\tonComplete(new core_animation({numSteps: 0, chart: me}));\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdraw: function(easingValue) {\n\t\tvar me = this;\n\n\t\tme.clear();\n\n\t\tif (helpers$1.isNullOrUndef(easingValue)) {\n\t\t\teasingValue = 1;\n\t\t}\n\n\t\tme.transition(easingValue);\n\n\t\tif (me.width <= 0 || me.height <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Draw all the scales\n\t\thelpers$1.each(me.boxes, function(box) {\n\t\t\tbox.draw(me.chartArea);\n\t\t}, me);\n\n\t\tme.drawDatasets(easingValue);\n\t\tme._drawTooltip(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDraw', [easingValue]);\n\t},\n\n\t/**\n\t * @private\n\t */\n\ttransition: function(easingValue) {\n\t\tvar me = this;\n\n\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t}\n\t\t}\n\n\t\tme.tooltip.transition(easingValue);\n\t},\n\n\t/**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n\tdrawDatasets: function(easingValue) {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Draw datasets reversed to support proper line stacking\n\t\tfor (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\n\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\tme.drawDataset(i, easingValue);\n\t\t\t}\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t},\n\n\t/**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n\tdrawDataset: function(index, easingValue) {\n\t\tvar me = this;\n\t\tvar meta = me.getDatasetMeta(index);\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: index,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller.draw(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDatasetDraw', [args]);\n\t},\n\n\t/**\n\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t * @private\n\t */\n\t_drawTooltip: function(easingValue) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\t\tvar args = {\n\t\t\ttooltip: tooltip,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip.draw();\n\n\t\tcore_plugins.notify(me, 'afterTooltipDraw', [args]);\n\t},\n\n\t/**\n\t * Get the single element that was clicked on\n\t * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t */\n\tgetElementAtEvent: function(e) {\n\t\treturn core_interaction.modes.single(this, e);\n\t},\n\n\tgetElementsAtEvent: function(e) {\n\t\treturn core_interaction.modes.label(this, e, {intersect: true});\n\t},\n\n\tgetElementsAtXAxis: function(e) {\n\t\treturn core_interaction.modes['x-axis'](this, e, {intersect: true});\n\t},\n\n\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\tvar method = core_interaction.modes[mode];\n\t\tif (typeof method === 'function') {\n\t\t\treturn method(this, e, options);\n\t\t}\n\n\t\treturn [];\n\t},\n\n\tgetDatasetAtEvent: function(e) {\n\t\treturn core_interaction.modes.dataset(this, e, {intersect: true});\n\t},\n\n\tgetDatasetMeta: function(datasetIndex) {\n\t\tvar me = this;\n\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\tif (!dataset._meta) {\n\t\t\tdataset._meta = {};\n\t\t}\n\n\t\tvar meta = dataset._meta[me.id];\n\t\tif (!meta) {\n\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\ttype: null,\n\t\t\t\tdata: [],\n\t\t\t\tdataset: null,\n\t\t\t\tcontroller: null,\n\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\txAxisID: null,\n\t\t\t\tyAxisID: null\n\t\t\t};\n\t\t}\n\n\t\treturn meta;\n\t},\n\n\tgetVisibleDatasetCount: function() {\n\t\tvar count = 0;\n\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t},\n\n\tisDatasetVisible: function(datasetIndex) {\n\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t},\n\n\tgenerateLegend: function() {\n\t\treturn this.options.legendCallback(this);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroyDatasetMeta: function(datasetIndex) {\n\t\tvar id = this.id;\n\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\tif (meta) {\n\t\t\tmeta.controller.destroy();\n\t\t\tdelete dataset._meta[id];\n\t\t}\n\t},\n\n\tdestroy: function() {\n\t\tvar me = this;\n\t\tvar canvas = me.canvas;\n\t\tvar i, ilen;\n\n\t\tme.stop();\n\n\t\t// dataset controllers need to cleanup associated data\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.destroyDatasetMeta(i);\n\t\t}\n\n\t\tif (canvas) {\n\t\t\tme.unbindEvents();\n\t\t\thelpers$1.canvas.clear(me);\n\t\t\tplatform.releaseContext(me.ctx);\n\t\t\tme.canvas = null;\n\t\t\tme.ctx = null;\n\t\t}\n\n\t\tcore_plugins.notify(me, 'destroy');\n\n\t\tdelete Chart.instances[me.id];\n\t},\n\n\ttoBase64Image: function() {\n\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t},\n\n\tinitToolTip: function() {\n\t\tvar me = this;\n\t\tme.tooltip = new core_tooltip({\n\t\t\t_chart: me,\n\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t_data: me.data,\n\t\t\t_options: me.options.tooltips\n\t\t}, me);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners = {};\n\t\tvar listener = function() {\n\t\t\tme.eventHandler.apply(me, arguments);\n\t\t};\n\n\t\thelpers$1.each(me.options.events, function(type) {\n\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\tlisteners[type] = listener;\n\t\t});\n\n\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\tif (me.options.responsive) {\n\t\t\tlistener = function() {\n\t\t\t\tme.resize();\n\t\t\t};\n\n\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\tlisteners.resize = listener;\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tunbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners;\n\t\tif (!listeners) {\n\t\t\treturn;\n\t\t}\n\n\t\tdelete me._listeners;\n\t\thelpers$1.each(listeners, function(listener, type) {\n\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t});\n\t},\n\n\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\tvar method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\n\t\tvar element, i, ilen;\n\n\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\telement = elements[i];\n\t\t\tif (element) {\n\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[method](element);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\teventHandler: function(e) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\n\t\tif (core_plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Buffer any update calls so that renders do not occur\n\t\tme._bufferedRender = true;\n\t\tme._bufferedRequest = null;\n\n\t\tvar changed = me.handleEvent(e);\n\t\t// for smooth tooltip animations issue #4989\n\t\t// the tooltip should be the source of change\n\t\t// Animation check workaround:\n\t\t// tooltip._start will be null when tooltip isn't animating\n\t\tif (tooltip) {\n\t\t\tchanged = tooltip._start\n\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterEvent', [e]);\n\n\t\tvar bufferedRequest = me._bufferedRequest;\n\t\tif (bufferedRequest) {\n\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\tme.render(bufferedRequest);\n\t\t} else if (changed && !me.animating) {\n\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\tme.stop();\n\n\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\tme.render({\n\t\t\t\tduration: me.options.hover.animationDuration,\n\t\t\t\tlazy: true\n\t\t\t});\n\t\t}\n\n\t\tme._bufferedRender = false;\n\t\tme._bufferedRequest = null;\n\n\t\treturn me;\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 the chart needs to re-render\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me.options || {};\n\t\tvar hoverOptions = options.hover;\n\t\tvar changed = false;\n\n\t\tme.lastActive = me.lastActive || [];\n\n\t\t// Find Active Elements for hover and tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme.active = [];\n\t\t} else {\n\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t}\n\n\t\t// Invoke onHover hook\n\t\t// Need to call with native event here to not break backwards compatibility\n\t\thelpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\tif (options.onClick) {\n\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t}\n\t\t}\n\n\t\t// Remove styling for last active (even if it may still be active)\n\t\tif (me.lastActive.length) {\n\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t}\n\n\t\t// Built in hover styling\n\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t}\n\n\t\tchanged = !helpers$1.arrayEquals(me.active, me.lastActive);\n\n\t\t// Remember Last Actives\n\t\tme.lastActive = me.active;\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * NOTE(SB) We actually don't use this container anymore but we need to keep it\n * for backward compatibility. Though, it can still be useful for plugins that\n * would need to work on multiple charts?!\n */\nChart.instances = {};\n\nvar core_controller = Chart;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6\n * @todo remove at version 3\n * @private\n */\nChart.Controller = Chart;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\nChart.types = {};\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.configMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.configMerge = mergeConfig;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.scaleMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.scaleMerge = mergeScaleConfig;\n\nvar core_helpers = function() {\n\n\t// -- Basic js utility methods\n\n\thelpers$1.where = function(collection, filterCallback) {\n\t\tif (helpers$1.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers$1.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$1.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$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers$1.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$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers$1.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$1.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers$1.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers$1.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\n\t};\n\thelpers$1.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$1.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$1.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$1.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$1.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers$1.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\n\t/**\n\t * Returns the number of decimal places\n\t * i.e. the number of digits after the decimal point, of the value of this Number.\n\t * @param {number} x - A number.\n\t * @returns {number} The number of decimal places.\n\t * @private\n\t */\n\thelpers$1._decimalPlaces = function(x) {\n\t\tif (!helpers$1.isFinite(x)) {\n\t\t\treturn;\n\t\t}\n\t\tvar e = 1;\n\t\tvar p = 0;\n\t\twhile (Math.round(x * e) / e !== x) {\n\t\t\te *= 10;\n\t\t\tp++;\n\t\t}\n\t\treturn p;\n\t};\n\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers$1.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$1.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\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.helpers.aliasPixel\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\thelpers$1.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\n\t/**\n\t * Returns the aligned pixel value to avoid anti-aliasing blur\n\t * @param {Chart} chart - The chart instance.\n\t * @param {number} pixel - A pixel value.\n\t * @param {number} width - The width of the element.\n\t * @returns {number} The aligned pixel value.\n\t * @private\n\t */\n\thelpers$1._alignPixel = function(chart, pixel, width) {\n\t\tvar devicePixelRatio = chart.currentDevicePixelRatio;\n\t\tvar halfWidth = width / 2;\n\t\treturn Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n\t};\n\n\thelpers$1.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$1.EPSILON = Number.EPSILON || 1e-14;\n\thelpers$1.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$1.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$1.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$1.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$1.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers$1.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 - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers$1.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$1.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// https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers$1.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/**\n\t * Returns the max width or height of the given DOM node in a cross-browser compatible fashion\n\t * @param {HTMLElement} domNode - the node to check the constraint on\n\t * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height')\n\t * @param {string} percentageProperty - property of parent to use when calculating width as a percentage\n\t * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser}\n\t */\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = helpers$1._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$1.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\t/**\n\t * @private\n \t */\n\thelpers$1._calculatePadding = function(container, padding, parentDimension) {\n\t\tpadding = helpers$1.getStyle(container, padding);\n\n\t\treturn padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10);\n\t};\n\t/**\n\t * @private\n\t */\n\thelpers$1._getParentNode = function(domNode) {\n\t\tvar parent = domNode.parentNode;\n\t\tif (parent && parent.toString() === '[object ShadowRoot]') {\n\t\t\tparent = parent.host;\n\t\t}\n\t\treturn parent;\n\t};\n\thelpers$1.getMaximumWidth = function(domNode) {\n\t\tvar container = helpers$1._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$1._calculatePadding(container, 'padding-left', clientWidth);\n\t\tvar paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth);\n\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers$1.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers$1.getMaximumHeight = function(domNode) {\n\t\tvar container = helpers$1._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$1._calculatePadding(container, 'padding-top', clientHeight);\n\t\tvar paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight);\n\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers$1.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers$1.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$1.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$1.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers$1.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$1.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$1.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers$1.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$1.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$1.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers$1.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$1.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$1.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers$1.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers$1.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$1.color = !chartjsColor ?\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 = core_defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn chartjsColor(value);\n\t\t};\n\n\thelpers$1.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ?\n\t\t\tcolorValue :\n\t\t\thelpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n\nfunction abstract() {\n\tthrow new Error(\n\t\t'This method is not implemented: either no adapter can ' +\n\t\t'be found or an incomplete integration was provided.'\n\t);\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\n\n/**\n * Currently supported unit string values.\n * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')}\n * @memberof Chart._adapters._date\n * @name Unit\n */\n\n/**\n * @class\n */\nfunction DateAdapter(options) {\n\tthis.options = options || {};\n}\n\nhelpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ {\n\t/**\n\t * Returns a map of time formats for the supported formatting units defined\n\t * in Unit as well as 'datetime' representing a detailed date/time string.\n\t * @returns {{string: string}}\n\t */\n\tformats: abstract,\n\n\t/**\n\t * Parses the given `value` and return the associated timestamp.\n\t * @param {any} value - the value to parse (usually comes from the data)\n\t * @param {string} [format] - the expected data format\n\t * @returns {(number|null)}\n\t * @function\n\t */\n\tparse: abstract,\n\n\t/**\n\t * Returns the formatted date in the specified `format` for a given `timestamp`.\n\t * @param {number} timestamp - the timestamp to format\n\t * @param {string} format - the date/time token\n\t * @return {string}\n\t * @function\n\t */\n\tformat: abstract,\n\n\t/**\n\t * Adds the specified `amount` of `unit` to the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {number} amount - the amount to add\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tadd: abstract,\n\n\t/**\n\t * Returns the number of `unit` between the given timestamps.\n\t * @param {number} max - the input timestamp (reference)\n\t * @param {number} min - the timestamp to substract\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tdiff: abstract,\n\n\t/**\n\t * Returns start of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @param {number} [weekday] - the ISO day of the week with 1 being Monday\n\t * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n\t * @function\n\t */\n\tstartOf: abstract,\n\n\t/**\n\t * Returns end of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @function\n\t */\n\tendOf: abstract,\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility for scale.getValueForPixel(),\n\t * this method should be overridden only by the moment adapter.\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(value) {\n\t\treturn value;\n\t}\n});\n\nDateAdapter.override = function(members) {\n\thelpers$1.extend(DateAdapter.prototype, members);\n};\n\nvar _date = DateAdapter;\n\nvar core_adapters = {\n\t_date: _date\n};\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nvar core_ticks = {\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|string[]} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers$1.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 {number[]} 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$1.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$1.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$1.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\nvar valueOrDefault$9 = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault;\n\ncore_defaults._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// 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: core_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 getPixelForGridLine(scale, index, offsetGridLines) {\n\tvar lineValue = scale.getPixelForTick(index);\n\n\tif (offsetGridLines) {\n\t\tif (scale.getTicks().length === 1) {\n\t\t\tlineValue -= scale.isHorizontal() ?\n\t\t\t\tMath.max(lineValue - scale.left, scale.right - lineValue) :\n\t\t\t\tMath.max(lineValue - scale.top, scale.bottom - lineValue);\n\t\t} else if (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$1.isArray(tick) ?\n\t\thelpers$1.longestText(context, font, tick) :\n\t\tcontext.measureText(tick).width;\n}\n\nvar core_scale = core_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$1.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$1.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\n\t\tme._maxLabelLines = 0;\n\t\tme.longestLabelWidth = 0;\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\t// Allow modification of ticks in callback.\n\t\tticks = me.afterBuildTicks(ticks) || ticks;\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$1.callback(this.options.afterUpdate, [this]);\n\t},\n\n\t//\n\n\tbeforeSetDimensions: function() {\n\t\thelpers$1.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$1.callback(this.options.afterSetDimensions, [this]);\n\t},\n\n\t// Data limits\n\tbeforeDataLimits: function() {\n\t\thelpers$1.callback(this.options.beforeDataLimits, [this]);\n\t},\n\tdetermineDataLimits: helpers$1.noop,\n\tafterDataLimits: function() {\n\t\thelpers$1.callback(this.options.afterDataLimits, [this]);\n\t},\n\n\t//\n\tbeforeBuildTicks: function() {\n\t\thelpers$1.callback(this.options.beforeBuildTicks, [this]);\n\t},\n\tbuildTicks: helpers$1.noop,\n\tafterBuildTicks: function(ticks) {\n\t\tvar me = this;\n\t\t// ticks is empty for old axis implementations here\n\t\tif (helpers$1.isArray(ticks) && ticks.length) {\n\t\t\treturn helpers$1.callback(me.options.afterBuildTicks, [me, ticks]);\n\t\t}\n\t\t// Support old implementations (that modified `this.ticks` directly in buildTicks)\n\t\tme.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks;\n\t\treturn ticks;\n\t},\n\n\tbeforeTickToLabelConversion: function() {\n\t\thelpers$1.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$1.callback(this.options.afterTickToLabelConversion, [this]);\n\t},\n\n\t//\n\n\tbeforeCalculateTickRotation: function() {\n\t\thelpers$1.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 = helpers$1.options._parseFont(tickOpts);\n\t\tcontext.font = tickFont.string;\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$1.longestText(context, tickFont.string, 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$1.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$1.callback(this.options.afterCalculateTickRotation, [this]);\n\t},\n\n\t//\n\n\tbeforeFit: function() {\n\t\thelpers$1.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 = me._isVisible();\n\t\tvar position = opts.position;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tvar parseFont = helpers$1.options._parseFont;\n\t\tvar tickFont = parseFont(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 scaleLabelFont = parseFont(scaleLabelOpts);\n\t\t\tvar scaleLabelPadding = helpers$1.options.toPadding(scaleLabelOpts.padding);\n\t\t\tvar deltaHeight = scaleLabelFont.lineHeight + 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 the labels\n\t\tif (tickOpts.display && display) {\n\t\t\tvar largestTextWidth = helpers$1.longestText(me.ctx, tickFont.string, labels, me.longestTextCache);\n\t\t\tvar tallestLabelHeightInLines = helpers$1.numberOfLabelLines(labels);\n\t\t\tvar lineSpace = tickFont.size * 0.5;\n\t\t\tvar tickPadding = me.options.ticks.padding;\n\n\t\t\t// Store max number of lines and widest label for _autoSkip\n\t\t\tme._maxLabelLines = tallestLabelHeightInLines;\n\t\t\tme.longestLabelWidth = largestTextWidth;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tvar angleRadians = helpers$1.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.lineHeight * tallestLabelHeightInLines)\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.string;\n\t\t\t\tvar firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.string);\n\t\t\t\tvar lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.string);\n\t\t\t\tvar offsetLeft = me.getPixelForTick(0) - me.left;\n\t\t\t\tvar offsetRight = me.right - me.getPixelForTick(labels.length - 1);\n\t\t\t\tvar paddingLeft, paddingRight;\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\tpaddingLeft = position === 'bottom' ? (cosRotation * firstLabelWidth) : (cosRotation * lineSpace);\n\t\t\t\t\tpaddingRight = position === 'bottom' ? (cosRotation * lineSpace) : (cosRotation * lastLabelWidth);\n\t\t\t\t} else {\n\t\t\t\t\tpaddingLeft = firstLabelWidth / 2;\n\t\t\t\t\tpaddingRight = lastLabelWidth / 2;\n\t\t\t\t}\n\t\t\t\tme.paddingLeft = Math.max(paddingLeft - offsetLeft, 0) + 3; // add 3 px to move away from canvas edges\n\t\t\t\tme.paddingRight = Math.max(paddingRight - offsetRight, 0) + 3;\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$1.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$1.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' || rawValue instanceof 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$1.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$1.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$1.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 + 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 + 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 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 skipRatio = false;\n\t\tvar maxTicks = optionTicks.maxTicksLimit;\n\n\t\t// Total space needed to display all ticks. First and last ticks are\n\t\t// drawn as their center at end of axis, so tickCount-1\n\t\tvar ticksLength = me._tickSize() * (tickCount - 1);\n\n\t\t// Axis length\n\t\tvar axisLength = isHorizontal\n\t\t\t? me.width - (me.paddingLeft + me.paddingRight)\n\t\t\t: me.height - (me.paddingTop + me.PaddingBottom);\n\n\t\tvar result = [];\n\t\tvar i, tick;\n\n\t\tif (ticksLength > axisLength) {\n\t\t\tskipRatio = 1 + Math.floor(ticksLength / axisLength);\n\t\t}\n\n\t\t// if they defined a max number of optionTicks,\n\t\t// increase skipRatio until that number is met\n\t\tif (tickCount > maxTicks) {\n\t\t\tskipRatio = Math.max(skipRatio, 1 + Math.floor(tickCount / maxTicks));\n\t\t}\n\n\t\tfor (i = 0; i < tickCount; i++) {\n\t\t\ttick = ticks[i];\n\n\t\t\tif (skipRatio > 1 && i % skipRatio > 0) {\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/**\n\t * @private\n\t */\n\t_tickSize: function() {\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar optionTicks = me.options.ticks.minor;\n\n\t\t// Calculate space needed by label in axis direction.\n\t\tvar rot = helpers$1.toRadians(me.labelRotation);\n\t\tvar cos = Math.abs(Math.cos(rot));\n\t\tvar sin = Math.abs(Math.sin(rot));\n\n\t\tvar padding = optionTicks.autoSkipPadding || 0;\n\t\tvar w = (me.longestLabelWidth + padding) || 0;\n\n\t\tvar tickFont = helpers$1.options._parseFont(optionTicks);\n\t\tvar h = (me._maxLabelLines * tickFont.lineHeight + padding) || 0;\n\n\t\t// Calculate space needed for 1 tick in axis direction.\n\t\treturn isHorizontal\n\t\t\t? h * cos > w * sin ? w / cos : h / sin\n\t\t\t: h * sin < w * cos ? h / cos : w / sin;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_isVisible: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar display = me.options.display;\n\t\tvar i, ilen, meta;\n\n\t\tif (display !== 'auto') {\n\t\t\treturn !!display;\n\t\t}\n\n\t\t// When 'auto', the scale is visible if at least one associated dataset is visible.\n\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.xAxisID === me.id || meta.yAxisID === me.id) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t/**\n\t * Actually draw the scale on the canvas\n\t * @param {object} chartArea - the area of the chart to draw full grid lines on\n\t */\n\tdraw: function(chartArea) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\n\t\tif (!me._isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar chart = me.chart;\n\t\tvar context = me.ctx;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultFontColor = globalDefaults.defaultFontColor;\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\t\tvar position = options.position;\n\n\t\tvar isRotated = me.labelRotation !== 0;\n\t\tvar isMirrored = optionTicks.mirror;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tvar parseFont = helpers$1.options._parseFont;\n\t\tvar ticks = optionTicks.display && optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\n\t\tvar tickFontColor = valueOrDefault$9(optionTicks.fontColor, defaultFontColor);\n\t\tvar tickFont = parseFont(optionTicks);\n\t\tvar lineHeight = tickFont.lineHeight;\n\t\tvar majorTickFontColor = valueOrDefault$9(optionMajorTicks.fontColor, defaultFontColor);\n\t\tvar majorTickFont = parseFont(optionMajorTicks);\n\t\tvar tickPadding = optionTicks.padding;\n\t\tvar labelOffset = optionTicks.labelOffset;\n\n\t\tvar tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\n\n\t\tvar scaleLabelFontColor = valueOrDefault$9(scaleLabel.fontColor, defaultFontColor);\n\t\tvar scaleLabelFont = parseFont(scaleLabel);\n\t\tvar scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding);\n\t\tvar labelRotationRadians = helpers$1.toRadians(me.labelRotation);\n\n\t\tvar itemsToDraw = [];\n\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar borderValue, tickStart, tickEnd;\n\n\t\tif (position === 'top') {\n\t\t\tborderValue = alignPixel(chart, me.bottom, axisWidth);\n\t\t\ttickStart = me.bottom - tl;\n\t\t\ttickEnd = borderValue - axisWidth / 2;\n\t\t} else if (position === 'bottom') {\n\t\t\tborderValue = alignPixel(chart, me.top, axisWidth);\n\t\t\ttickStart = borderValue + axisWidth / 2;\n\t\t\ttickEnd = me.top + tl;\n\t\t} else if (position === 'left') {\n\t\t\tborderValue = alignPixel(chart, me.right, axisWidth);\n\t\t\ttickStart = me.right - tl;\n\t\t\ttickEnd = borderValue - axisWidth / 2;\n\t\t} else {\n\t\t\tborderValue = alignPixel(chart, me.left, axisWidth);\n\t\t\ttickStart = borderValue + axisWidth / 2;\n\t\t\ttickEnd = me.left + tl;\n\t\t}\n\n\t\tvar epsilon = 0.0000001; // 0.0000001 is margin in pixels for Accumulated error.\n\n\t\thelpers$1.each(ticks, function(tick, index) {\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (helpers$1.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 || 0.0;\n\t\t\t} else {\n\t\t\t\tlineWidth = valueAtIndexOrDefault(gridLines.lineWidth, index);\n\t\t\t\tlineColor = valueAtIndexOrDefault(gridLines.color, index);\n\t\t\t\tborderDash = gridLines.borderDash || [];\n\t\t\t\tborderDashOffset = gridLines.borderDashOffset || 0.0;\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, textOffset, textAlign;\n\t\t\tvar labelCount = helpers$1.isArray(label) ? label.length : 1;\n\t\t\tvar lineValue = getPixelForGridLine(me, index, gridLines.offsetGridLines);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tvar labelYOffset = tl + tickPadding;\n\n\t\t\t\tif (lineValue < me.left - epsilon) {\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t}\n\n\t\t\t\ttx1 = tx2 = x1 = x2 = alignPixel(chart, lineValue, lineWidth);\n\t\t\t\tty1 = tickStart;\n\t\t\t\tty2 = tickEnd;\n\t\t\t\tlabelX = me.getPixelForTick(index) + labelOffset; // x values for optionTicks (need to consider offsetLabel option)\n\n\t\t\t\tif (position === 'top') {\n\t\t\t\t\ty1 = alignPixel(chart, chartArea.top, axisWidth) + axisWidth / 2;\n\t\t\t\t\ty2 = chartArea.bottom;\n\t\t\t\t\ttextOffset = ((!isRotated ? 0.5 : 1) - labelCount) * lineHeight;\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'left';\n\t\t\t\t\tlabelY = me.bottom - labelYOffset;\n\t\t\t\t} else {\n\t\t\t\t\ty1 = chartArea.top;\n\t\t\t\t\ty2 = alignPixel(chart, chartArea.bottom, axisWidth) - axisWidth / 2;\n\t\t\t\t\ttextOffset = (!isRotated ? 0.5 : 0) * lineHeight;\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'right';\n\t\t\t\t\tlabelY = me.top + labelYOffset;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar labelXOffset = (isMirrored ? 0 : tl) + tickPadding;\n\n\t\t\t\tif (lineValue < me.top - epsilon) {\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t}\n\n\t\t\t\ttx1 = tickStart;\n\t\t\t\ttx2 = tickEnd;\n\t\t\t\tty1 = ty2 = y1 = y2 = alignPixel(chart, lineValue, lineWidth);\n\t\t\t\tlabelY = me.getPixelForTick(index) + labelOffset;\n\t\t\t\ttextOffset = (1 - labelCount) * lineHeight / 2;\n\n\t\t\t\tif (position === 'left') {\n\t\t\t\t\tx1 = alignPixel(chart, chartArea.left, axisWidth) + axisWidth / 2;\n\t\t\t\t\tx2 = chartArea.right;\n\t\t\t\t\ttextAlign = isMirrored ? 'left' : 'right';\n\t\t\t\t\tlabelX = me.right - labelXOffset;\n\t\t\t\t} else {\n\t\t\t\t\tx1 = chartArea.left;\n\t\t\t\t\tx2 = alignPixel(chart, chartArea.right, axisWidth) - axisWidth / 2;\n\t\t\t\t\ttextAlign = isMirrored ? 'right' : 'left';\n\t\t\t\t\tlabelX = me.left + labelXOffset;\n\t\t\t\t}\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\ttextOffset: textOffset,\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$1.each(itemsToDraw, function(itemToDraw) {\n\t\t\tvar glWidth = itemToDraw.glWidth;\n\t\t\tvar glColor = itemToDraw.glColor;\n\n\t\t\tif (gridLines.display && glWidth && glColor) {\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.lineWidth = glWidth;\n\t\t\t\tcontext.strokeStyle = 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.string : tickFont.string;\n\t\t\t\tcontext.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\n\t\t\t\tcontext.textBaseline = 'middle';\n\t\t\t\tcontext.textAlign = itemToDraw.textAlign;\n\n\t\t\t\tvar label = itemToDraw.label;\n\t\t\t\tvar y = itemToDraw.textOffset;\n\t\t\t\tif (helpers$1.isArray(label)) {\n\t\t\t\t\tfor (var i = 0; i < label.length; ++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\ty += lineHeight;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontext.fillText(label, 0, y);\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 = scaleLabelFont.lineHeight / 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 = 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 = 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.string;\n\t\t\tcontext.fillText(scaleLabel.labelString, 0, 0);\n\t\t\tcontext.restore();\n\t\t}\n\n\t\tif (axisWidth) {\n\t\t\t// Draw the line at the edge of the axis\n\t\t\tvar firstLineWidth = axisWidth;\n\t\t\tvar lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, ticks.length - 1, 0);\n\t\t\tvar x1, x2, y1, y2;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tx1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\tx2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\ty1 = y2 = borderValue;\n\t\t\t} else {\n\t\t\t\ty1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\ty2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\tx1 = x2 = borderValue;\n\t\t\t}\n\n\t\t\tcontext.lineWidth = axisWidth;\n\t\t\tcontext.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0);\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\nvar defaultConfig = {\n\tposition: 'bottom'\n};\n\nvar scale_category = core_scale.extend({\n\t/**\n\t* Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\n\t* else fall back to data.labels\n\t* @private\n\t*/\n\tgetLabels: function() {\n\t\tvar data = this.chart.data;\n\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar labels = me.getLabels();\n\t\tme.minIndex = 0;\n\t\tme.maxIndex = labels.length - 1;\n\t\tvar findIndex;\n\n\t\tif (me.options.ticks.min !== undefined) {\n\t\t\t// user specified min value\n\t\t\tfindIndex = labels.indexOf(me.options.ticks.min);\n\t\t\tme.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\n\t\t}\n\n\t\tif (me.options.ticks.max !== undefined) {\n\t\t\t// user specified max value\n\t\t\tfindIndex = labels.indexOf(me.options.ticks.max);\n\t\t\tme.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\n\t\t}\n\n\t\tme.min = labels[me.minIndex];\n\t\tme.max = labels[me.maxIndex];\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar labels = me.getLabels();\n\t\t// If we are viewing some subset of labels, slice the original array\n\t\tme.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\n\t\tif (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) {\n\t\t\treturn me.getRightValue(chart.data.datasets[datasetIndex].data[index]);\n\t\t}\n\n\t\treturn me.ticks[index - me.minIndex];\n\t},\n\n\t// Used to get data value locations. Value can either be an index or a numerical value\n\tgetPixelForValue: function(value, index) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\t// 1 is added because we need the length but we have the indexes\n\t\tvar offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\n\n\t\t// If value is a data object, then index is the index in the data array,\n\t\t// not the index of the scale. We need to change that.\n\t\tvar valueCategory;\n\t\tif (value !== undefined && value !== null) {\n\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t}\n\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\tvar labels = me.getLabels();\n\t\t\tvalue = valueCategory || value;\n\t\t\tvar idx = labels.indexOf(value);\n\t\t\tindex = idx !== -1 ? idx : index;\n\t\t}\n\n\t\tif (me.isHorizontal()) {\n\t\t\tvar valueWidth = me.width / offsetAmt;\n\t\t\tvar widthOffset = (valueWidth * (index - me.minIndex));\n\n\t\t\tif (offset) {\n\t\t\t\twidthOffset += (valueWidth / 2);\n\t\t\t}\n\n\t\t\treturn me.left + widthOffset;\n\t\t}\n\t\tvar valueHeight = me.height / offsetAmt;\n\t\tvar heightOffset = (valueHeight * (index - me.minIndex));\n\n\t\tif (offset) {\n\t\t\theightOffset += (valueHeight / 2);\n\t\t}\n\n\t\treturn me.top + heightOffset;\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\treturn this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar value;\n\t\tvar offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n\t\tvar horz = me.isHorizontal();\n\t\tvar valueDimension = (horz ? me.width : me.height) / offsetAmt;\n\n\t\tpixel -= horz ? me.left : me.top;\n\n\t\tif (offset) {\n\t\t\tpixel -= (valueDimension / 2);\n\t\t}\n\n\t\tif (pixel <= 0) {\n\t\t\tvalue = 0;\n\t\t} else {\n\t\t\tvalue = Math.round(pixel / valueDimension);\n\t\t}\n\n\t\treturn value + me.minIndex;\n\t},\n\n\tgetBasePixel: function() {\n\t\treturn this.bottom;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults = defaultConfig;\nscale_category._defaults = _defaults;\n\nvar noop = helpers$1.noop;\nvar isNullOrUndef = helpers$1.isNullOrUndef;\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 {number[]} 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 https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar MIN_SPACING = 1e-14;\n\tvar stepSize = generationOptions.stepSize;\n\tvar unit = stepSize || 1;\n\tvar maxNumSpaces = generationOptions.maxTicks - 1;\n\tvar min = generationOptions.min;\n\tvar max = generationOptions.max;\n\tvar precision = generationOptions.precision;\n\tvar rmin = dataRange.min;\n\tvar rmax = dataRange.max;\n\tvar spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit;\n\tvar factor, niceMin, niceMax, numSpaces;\n\n\t// Beyond MIN_SPACING floating point numbers being to lose precision\n\t// such that we can't do the math necessary to generate ticks\n\tif (spacing < MIN_SPACING && isNullOrUndef(min) && isNullOrUndef(max)) {\n\t\treturn [rmin, rmax];\n\t}\n\n\tnumSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\tif (numSpaces > maxNumSpaces) {\n\t\t// If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n\t\tspacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit;\n\t}\n\n\tif (stepSize || isNullOrUndef(precision)) {\n\t\t// If a precision is not specified, calculate factor based on spacing\n\t\tfactor = Math.pow(10, helpers$1._decimalPlaces(spacing));\n\t} else {\n\t\t// If the user specified a precision, round to that number of decimal places\n\t\tfactor = Math.pow(10, precision);\n\t\tspacing = Math.ceil(spacing * factor) / factor;\n\t}\n\n\tniceMin = Math.floor(rmin / spacing) * spacing;\n\tniceMax = Math.ceil(rmax / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (!isNullOrUndef(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) {\n\t\t\tniceMin = min;\n\t\t}\n\t\tif (!isNullOrUndef(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) {\n\t\t\tniceMax = max;\n\t\t}\n\t}\n\n\tnumSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers$1.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\tniceMin = Math.round(niceMin * factor) / factor;\n\tniceMax = Math.round(niceMax * factor) / factor;\n\tticks.push(isNullOrUndef(min) ? niceMin : min);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * factor) / factor);\n\t}\n\tticks.push(isNullOrUndef(max) ? niceMax : max);\n\n\treturn ticks;\n}\n\nvar scale_linearbase = core_scale.extend({\n\tgetRightValue: function(value) {\n\t\tif (typeof value === 'string') {\n\t\t\treturn +value;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, value);\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t// axis, they can manually override it\n\t\tif (tickOpts.beginAtZero) {\n\t\t\tvar minSign = helpers$1.sign(me.min);\n\t\t\tvar maxSign = helpers$1.sign(me.max);\n\n\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t// move the top up to 0\n\t\t\t\tme.max = 0;\n\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t// move the bottom down to 0\n\t\t\t\tme.min = 0;\n\t\t\t}\n\t\t}\n\n\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\tif (tickOpts.min !== undefined) {\n\t\t\tme.min = tickOpts.min;\n\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t} else {\n\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t}\n\t\t}\n\n\t\tif (tickOpts.max !== undefined) {\n\t\t\tme.max = tickOpts.max;\n\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t} else {\n\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t}\n\t\t}\n\n\t\tif (setMin !== setMax) {\n\t\t\t// We set the min or the max but not both.\n\t\t\t// So ensure that our range is good\n\t\t\t// Inverted or 0 length range can happen when\n\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\tif (me.min >= me.max) {\n\t\t\t\tif (setMin) {\n\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (me.min === me.max) {\n\t\t\tme.max++;\n\n\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\tme.min--;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar stepSize = tickOpts.stepSize;\n\t\tvar maxTicksLimit = tickOpts.maxTicksLimit;\n\t\tvar maxTicks;\n\n\t\tif (stepSize) {\n\t\t\tmaxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n\t\t} else {\n\t\t\tmaxTicks = me._computeTickLimit();\n\t\t\tmaxTicksLimit = maxTicksLimit || 11;\n\t\t}\n\n\t\tif (maxTicksLimit) {\n\t\t\tmaxTicks = Math.min(maxTicksLimit, maxTicks);\n\t\t}\n\n\t\treturn maxTicks;\n\t},\n\n\t_computeTickLimit: function() {\n\t\treturn Number.POSITIVE_INFINITY;\n\t},\n\n\thandleDirectionalChanges: noop,\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t// the graph. Make sure we always have at least 2 ticks\n\t\tvar maxTicks = me.getTickLimit();\n\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\tvar numericGeneratorOptions = {\n\t\t\tmaxTicks: maxTicks,\n\t\t\tmin: tickOpts.min,\n\t\t\tmax: tickOpts.max,\n\t\t\tprecision: tickOpts.precision,\n\t\t\tstepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\tme.handleDirectionalChanges();\n\n\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// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(me);\n\t}\n});\n\nvar defaultConfig$1 = {\n\tposition: 'left',\n\tticks: {\n\t\tcallback: core_ticks.formatters.linear\n\t}\n};\n\nvar scale_linear = scale_linearbase.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar DEFAULT_MIN = 0;\n\t\tvar DEFAULT_MAX = 1;\n\n\t\tfunction IDMatches(meta) {\n\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t}\n\n\t\t// First Calculate the range\n\t\tme.min = null;\n\t\tme.max = null;\n\n\t\tvar hasStacks = opts.stacked;\n\t\tif (hasStacks === undefined) {\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tif (hasStacks) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\thasStacks = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (opts.stacked || hasStacks) {\n\t\t\tvar valuesPerStack = {};\n\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tvar key = [\n\t\t\t\t\tmeta.type,\n\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((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\tmeta.stack\n\t\t\t\t].join('.');\n\n\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\tvaluesPerStack[key] = {\n\t\t\t\t\t\tpositiveValues: [],\n\t\t\t\t\t\tnegativeValues: []\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Store these per type\n\t\t\t\tvar positiveValues = valuesPerStack[key].positiveValues;\n\t\t\t\tvar negativeValues = valuesPerStack[key].negativeValues;\n\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\thelpers$1.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\tpositiveValues[index] = positiveValues[index] || 0;\n\t\t\t\t\t\tnegativeValues[index] = negativeValues[index] || 0;\n\n\t\t\t\t\t\tif (opts.relativePoints) {\n\t\t\t\t\t\t\tpositiveValues[index] = 100;\n\t\t\t\t\t\t} else if (value < 0) {\n\t\t\t\t\t\t\tnegativeValues[index] += value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpositiveValues[index] += value;\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\thelpers$1.each(valuesPerStack, function(valuesForType) {\n\t\t\t\tvar values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\n\t\t\t\tvar minVal = helpers$1.min(values);\n\t\t\t\tvar maxVal = helpers$1.max(values);\n\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\n\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n\t\t\t});\n\n\t\t} else {\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\thelpers$1.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\tif (me.min === null) {\n\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tme.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\tme.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tthis.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickFont;\n\n\t\tif (me.isHorizontal()) {\n\t\t\treturn Math.ceil(me.width / 40);\n\t\t}\n\t\ttickFont = helpers$1.options._parseFont(me.options.ticks);\n\t\treturn Math.ceil(me.height / tickFont.lineHeight);\n\t},\n\n\t// Called after the ticks are built. We need\n\thandleDirectionalChanges: function() {\n\t\tif (!this.isHorizontal()) {\n\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\tthis.ticks.reverse();\n\t\t}\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\t// Utils\n\tgetPixelForValue: function(value) {\n\t\t// This must be called after fit has been run so that\n\t\t// this.left, this.top, this.right, and this.bottom have been defined\n\t\tvar me = this;\n\t\tvar start = me.start;\n\n\t\tvar rightValue = +me.getRightValue(value);\n\t\tvar pixel;\n\t\tvar range = me.end - start;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tpixel = me.left + (me.width / range * (rightValue - start));\n\t\t} else {\n\t\t\tpixel = me.bottom - (me.height / range * (rightValue - start));\n\t\t}\n\t\treturn pixel;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar innerDimension = isHorizontal ? me.width : me.height;\n\t\tvar offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\n\t\treturn me.start + ((me.end - me.start) * offset);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\treturn this.getPixelForValue(this.ticksAsNumbers[index]);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$1 = defaultConfig$1;\nscale_linear._defaults = _defaults$1;\n\nvar valueOrDefault$a = helpers$1.valueOrDefault;\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 {number[]} array of tick values\n */\nfunction generateTicks$1(generationOptions, dataRange) {\n\tvar ticks = [];\n\n\tvar tickVal = valueOrDefault$a(generationOptions.min, Math.pow(10, Math.floor(helpers$1.log10(dataRange.min))));\n\n\tvar endExp = Math.floor(helpers$1.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$1.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$1.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$a(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\nvar defaultConfig$2 = {\n\tposition: 'left',\n\n\t// label settings\n\tticks: {\n\t\tcallback: core_ticks.formatters.logarithmic\n\t}\n};\n\n// TODO(v3): change this to positiveOrDefault\nfunction nonNegativeOrDefault(value, defaultValue) {\n\treturn helpers$1.isFinite(value) && value >= 0 ? value : defaultValue;\n}\n\nvar scale_logarithmic = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tfunction IDMatches(meta) {\n\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t}\n\n\t\t// Calculate Range\n\t\tme.min = null;\n\t\tme.max = null;\n\t\tme.minNotZero = null;\n\n\t\tvar hasStacks = opts.stacked;\n\t\tif (hasStacks === undefined) {\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tif (hasStacks) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\thasStacks = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (opts.stacked || hasStacks) {\n\t\t\tvar valuesPerStack = {};\n\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tvar key = [\n\t\t\t\t\tmeta.type,\n\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((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\tmeta.stack\n\t\t\t\t].join('.');\n\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalues[index] = values[index] || 0;\n\t\t\t\t\t\tvalues[index] += value;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\thelpers$1.each(valuesPerStack, function(valuesForType) {\n\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\tvar minVal = helpers$1.min(valuesForType);\n\t\t\t\t\tvar maxVal = helpers$1.max(valuesForType);\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\t\t\t});\n\n\t\t} else {\n\t\t\thelpers$1.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (me.min === null) {\n\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\n\t\t\t\t\t\t\tme.minNotZero = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\tthis.handleTickRangeOptions();\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar DEFAULT_MIN = 1;\n\t\tvar DEFAULT_MAX = 10;\n\n\t\tme.min = nonNegativeOrDefault(tickOpts.min, me.min);\n\t\tme.max = nonNegativeOrDefault(tickOpts.max, me.max);\n\n\t\tif (me.min === me.max) {\n\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(helpers$1.log10(me.min)) - 1);\n\t\t\t\tme.max = Math.pow(10, Math.floor(helpers$1.log10(me.max)) + 1);\n\t\t\t} else {\n\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t}\n\t\t}\n\t\tif (me.min === null) {\n\t\t\tme.min = Math.pow(10, Math.floor(helpers$1.log10(me.max)) - 1);\n\t\t}\n\t\tif (me.max === null) {\n\t\t\tme.max = me.min !== 0\n\t\t\t\t? Math.pow(10, Math.floor(helpers$1.log10(me.min)) + 1)\n\t\t\t\t: DEFAULT_MAX;\n\t\t}\n\t\tif (me.minNotZero === null) {\n\t\t\tif (me.min > 0) {\n\t\t\t\tme.minNotZero = me.min;\n\t\t\t} else if (me.max < 1) {\n\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(helpers$1.log10(me.max)));\n\t\t\t} else {\n\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t}\n\t\t}\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = !me.isHorizontal();\n\n\t\tvar generationOptions = {\n\t\t\tmin: nonNegativeOrDefault(tickOpts.min),\n\t\t\tmax: nonNegativeOrDefault(tickOpts.max)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks$1(generationOptions, me);\n\n\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// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\treverse = !reverse;\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t\tif (reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tthis.tickValues = this.ticks.slice();\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(this);\n\t},\n\n\t// Get the correct tooltip label\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\treturn this.getPixelForValue(this.tickValues[index]);\n\t},\n\n\t/**\n\t * Returns the value of the first tick.\n\t * @param {number} value - The minimum not zero value.\n\t * @return {number} The first tick value.\n\t * @private\n\t */\n\t_getFirstTickValue: function(value) {\n\t\tvar exp = Math.floor(helpers$1.log10(value));\n\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\treturn significand * Math.pow(10, exp);\n\t},\n\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = tickOpts.reverse;\n\t\tvar log10 = helpers$1.log10;\n\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\tvar offset = 0;\n\t\tvar innerDimension, pixel, start, end, sign;\n\n\t\tvalue = +me.getRightValue(value);\n\t\tif (reverse) {\n\t\t\tstart = me.end;\n\t\t\tend = me.start;\n\t\t\tsign = -1;\n\t\t} else {\n\t\t\tstart = me.start;\n\t\t\tend = me.end;\n\t\t\tsign = 1;\n\t\t}\n\t\tif (me.isHorizontal()) {\n\t\t\tinnerDimension = me.width;\n\t\t\tpixel = reverse ? me.right : me.left;\n\t\t} else {\n\t\t\tinnerDimension = me.height;\n\t\t\tsign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\n\t\t\tpixel = reverse ? me.top : me.bottom;\n\t\t}\n\t\tif (value !== start) {\n\t\t\tif (start === 0) { // include zero tick\n\t\t\t\toffset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize);\n\t\t\t\tinnerDimension -= offset;\n\t\t\t\tstart = firstTickValue;\n\t\t\t}\n\t\t\tif (value !== 0) {\n\t\t\t\toffset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\n\t\t\t}\n\t\t\tpixel += sign * offset;\n\t\t}\n\t\treturn pixel;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = tickOpts.reverse;\n\t\tvar log10 = helpers$1.log10;\n\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\tvar innerDimension, start, end, value;\n\n\t\tif (reverse) {\n\t\t\tstart = me.end;\n\t\t\tend = me.start;\n\t\t} else {\n\t\t\tstart = me.start;\n\t\t\tend = me.end;\n\t\t}\n\t\tif (me.isHorizontal()) {\n\t\t\tinnerDimension = me.width;\n\t\t\tvalue = reverse ? me.right - pixel : pixel - me.left;\n\t\t} else {\n\t\t\tinnerDimension = me.height;\n\t\t\tvalue = reverse ? pixel - me.top : me.bottom - pixel;\n\t\t}\n\t\tif (value !== start) {\n\t\t\tif (start === 0) { // include zero tick\n\t\t\t\tvar offset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize);\n\t\t\t\tvalue -= offset;\n\t\t\t\tinnerDimension -= offset;\n\t\t\t\tstart = firstTickValue;\n\t\t\t}\n\t\t\tvalue *= log10(end) - log10(start);\n\t\t\tvalue /= innerDimension;\n\t\t\tvalue = Math.pow(10, log10(start) + value);\n\t\t}\n\t\treturn value;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$2 = defaultConfig$2;\nscale_logarithmic._defaults = _defaults$2;\n\nvar valueOrDefault$b = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault;\nvar resolve$7 = helpers$1.options.resolve;\n\nvar defaultConfig$3 = {\n\tdisplay: true,\n\n\t// Boolean - Whether to animate scaling the chart from the centre\n\tanimate: true,\n\tposition: 'chartArea',\n\n\tangleLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0, 0, 0, 0.1)',\n\t\tlineWidth: 1,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\tgridLines: {\n\t\tcircular: false\n\t},\n\n\t// label settings\n\tticks: {\n\t\t// Boolean - Show a backdrop to the scale label\n\t\tshowLabelBackdrop: true,\n\n\t\t// String - The colour of the label backdrop\n\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t// Number - The backdrop padding above & below the label in pixels\n\t\tbackdropPaddingY: 2,\n\n\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\tbackdropPaddingX: 2,\n\n\t\tcallback: core_ticks.formatters.linear\n\t},\n\n\tpointLabels: {\n\t\t// Boolean - if true, show point labels\n\t\tdisplay: true,\n\n\t\t// Number - Point label font size in pixels\n\t\tfontSize: 10,\n\n\t\t// Function - Used to convert point labels\n\t\tcallback: function(label) {\n\t\t\treturn label;\n\t\t}\n\t}\n};\n\nfunction getValueCount(scale) {\n\tvar opts = scale.options;\n\treturn opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\n}\n\nfunction getTickBackdropHeight(opts) {\n\tvar tickOpts = opts.ticks;\n\n\tif (tickOpts.display && opts.display) {\n\t\treturn valueOrDefault$b(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2;\n\t}\n\treturn 0;\n}\n\nfunction measureLabelSize(ctx, lineHeight, label) {\n\tif (helpers$1.isArray(label)) {\n\t\treturn {\n\t\t\tw: helpers$1.longestText(ctx, ctx.font, label),\n\t\t\th: label.length * lineHeight\n\t\t};\n\t}\n\n\treturn {\n\t\tw: ctx.measureText(label).width,\n\t\th: lineHeight\n\t};\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n\tif (angle === min || angle === max) {\n\t\treturn {\n\t\t\tstart: pos - (size / 2),\n\t\t\tend: pos + (size / 2)\n\t\t};\n\t} else if (angle < min || angle > max) {\n\t\treturn {\n\t\t\tstart: pos - size,\n\t\t\tend: pos\n\t\t};\n\t}\n\n\treturn {\n\t\tstart: pos,\n\t\tend: pos + size\n\t};\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n\t// Right, this is really confusing and there is a lot of maths going on here\n\t// The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t//\n\t// Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t//\n\t// Solution:\n\t//\n\t// We assume the radius of the polygon is half the size of the canvas at first\n\t// at each index we check if the text overlaps.\n\t//\n\t// Where it does, we store that angle and that index.\n\t//\n\t// After finding the largest index and angle we calculate how much we need to remove\n\t// from the shape radius to move the point inwards by that x.\n\t//\n\t// We average the left and right distances to get the maximum shape radius that can fit in the box\n\t// along with labels.\n\t//\n\t// Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t// on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t//\n\t// This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t// and position it in the most space efficient manner\n\t//\n\t// https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n\tvar plFont = helpers$1.options._parseFont(scale.options.pointLabels);\n\n\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\tvar furthestLimits = {\n\t\tl: 0,\n\t\tr: scale.width,\n\t\tt: 0,\n\t\tb: scale.height - scale.paddingTop\n\t};\n\tvar furthestAngles = {};\n\tvar i, textSize, pointPosition;\n\n\tscale.ctx.font = plFont.string;\n\tscale._pointLabelSizes = [];\n\n\tvar valueCount = getValueCount(scale);\n\tfor (i = 0; i < valueCount; i++) {\n\t\tpointPosition = scale.getPointPosition(i, scale.drawingArea + 5);\n\t\ttextSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i] || '');\n\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians) % 360;\n\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\tfurthestAngles.l = angleRadians;\n\t\t}\n\n\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\tfurthestAngles.r = angleRadians;\n\t\t}\n\n\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\tfurthestAngles.t = angleRadians;\n\t\t}\n\n\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\tfurthestAngles.b = angleRadians;\n\t\t}\n\t}\n\n\tscale.setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n}\n\nfunction getTextAlignForAngle(angle) {\n\tif (angle === 0 || angle === 180) {\n\t\treturn 'center';\n\t} else if (angle < 180) {\n\t\treturn 'left';\n\t}\n\n\treturn 'right';\n}\n\nfunction fillText(ctx, text, position, lineHeight) {\n\tvar y = position.y + lineHeight / 2;\n\tvar i, ilen;\n\n\tif (helpers$1.isArray(text)) {\n\t\tfor (i = 0, ilen = text.length; i < ilen; ++i) {\n\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\ty += lineHeight;\n\t\t}\n\t} else {\n\t\tctx.fillText(text, position.x, y);\n\t}\n}\n\nfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\tif (angle === 90 || angle === 270) {\n\t\tposition.y -= (textSize.h / 2);\n\t} else if (angle > 270 || angle < 90) {\n\t\tposition.y -= textSize.h;\n\t}\n}\n\nfunction drawPointLabels(scale) {\n\tvar ctx = scale.ctx;\n\tvar opts = scale.options;\n\tvar angleLineOpts = opts.angleLines;\n\tvar gridLineOpts = opts.gridLines;\n\tvar pointLabelOpts = opts.pointLabels;\n\tvar lineWidth = valueOrDefault$b(angleLineOpts.lineWidth, gridLineOpts.lineWidth);\n\tvar lineColor = valueOrDefault$b(angleLineOpts.color, gridLineOpts.color);\n\tvar tickBackdropHeight = getTickBackdropHeight(opts);\n\n\tctx.save();\n\tctx.lineWidth = lineWidth;\n\tctx.strokeStyle = lineColor;\n\tif (ctx.setLineDash) {\n\t\tctx.setLineDash(resolve$7([angleLineOpts.borderDash, gridLineOpts.borderDash, []]));\n\t\tctx.lineDashOffset = resolve$7([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]);\n\t}\n\n\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n\t// Point Label Font\n\tvar plFont = helpers$1.options._parseFont(pointLabelOpts);\n\n\tctx.font = plFont.string;\n\tctx.textBaseline = 'middle';\n\n\tfor (var i = getValueCount(scale) - 1; i >= 0; i--) {\n\t\tif (angleLineOpts.display && lineWidth && lineColor) {\n\t\t\tvar outerPosition = scale.getPointPosition(i, outerDistance);\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(scale.xCenter, scale.yCenter);\n\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tif (pointLabelOpts.display) {\n\t\t\t// Extra pixels out for some label spacing\n\t\t\tvar extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n\t\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5);\n\n\t\t\t// Keep this in loop since we may support array properties here\n\t\t\tvar pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor);\n\t\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\t\tvar angle = helpers$1.toDegrees(angleRadians);\n\t\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\t\tfillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.lineHeight);\n\t\t}\n\t}\n\tctx.restore();\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\tvar ctx = scale.ctx;\n\tvar circular = gridLineOpts.circular;\n\tvar valueCount = getValueCount(scale);\n\tvar lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1);\n\tvar lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1);\n\tvar pointPosition;\n\n\tif ((!circular && !valueCount) || !lineColor || !lineWidth) {\n\t\treturn;\n\t}\n\n\tctx.save();\n\tctx.strokeStyle = lineColor;\n\tctx.lineWidth = lineWidth;\n\tif (ctx.setLineDash) {\n\t\tctx.setLineDash(gridLineOpts.borderDash || []);\n\t\tctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0;\n\t}\n\n\tctx.beginPath();\n\tif (circular) {\n\t\t// Draw circular arcs between the points\n\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t} else {\n\t\t// Draw straight lines connecting each index\n\t\tpointPosition = scale.getPointPosition(0, radius);\n\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t}\n\t}\n\tctx.closePath();\n\tctx.stroke();\n\tctx.restore();\n}\n\nfunction numberOrZero(param) {\n\treturn helpers$1.isNumber(param) ? param : 0;\n}\n\nvar scale_radialLinear = scale_linearbase.extend({\n\tsetDimensions: function() {\n\t\tvar me = this;\n\n\t\t// Set the unconstrained dimension before label rotation\n\t\tme.width = me.maxWidth;\n\t\tme.height = me.maxHeight;\n\t\tme.paddingTop = getTickBackdropHeight(me.options) / 2;\n\t\tme.xCenter = Math.floor(me.width / 2);\n\t\tme.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n\t\tme.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar min = Number.POSITIVE_INFINITY;\n\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\thelpers$1.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\treturn Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\n\t\tscale_linearbase.prototype.convertTicksToLabels.call(me);\n\n\t\t// Point labels\n\t\tme.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\n\t\tif (opts.display && opts.pointLabels.display) {\n\t\t\tfitWithPointLabels(me);\n\t\t} else {\n\t\t\tme.setCenterPoint(0, 0, 0, 0);\n\t\t}\n\t},\n\n\t/**\n\t * Set radius reductions and determine new radius and center point\n\t * @private\n\t */\n\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\tvar me = this;\n\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n\n\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\tme.drawingArea = Math.min(\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t},\n\n\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\tvar me = this;\n\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\tvar maxTop = topMovement + me.drawingArea;\n\t\tvar maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea;\n\n\t\tme.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left);\n\t\tme.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop);\n\t},\n\n\tgetIndexAngle: function(index) {\n\t\tvar angleMultiplier = (Math.PI * 2) / getValueCount(this);\n\t\tvar startAngle = this.chart.options && this.chart.options.startAngle ?\n\t\t\tthis.chart.options.startAngle :\n\t\t\t0;\n\n\t\tvar startAngleRadians = startAngle * Math.PI * 2 / 360;\n\n\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\treturn index * angleMultiplier + startAngleRadians;\n\t},\n\n\tgetDistanceFromCenterForValue: function(value) {\n\t\tvar me = this;\n\n\t\tif (value === null) {\n\t\t\treturn 0; // null always in center\n\t\t}\n\n\t\t// Take into account half font size + the yPadding of the top value\n\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\tif (me.options.ticks.reverse) {\n\t\t\treturn (me.max - value) * scalingFactor;\n\t\t}\n\t\treturn (value - me.min) * scalingFactor;\n\t},\n\n\tgetPointPosition: function(index, distanceFromCenter) {\n\t\tvar me = this;\n\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\treturn {\n\t\t\tx: Math.cos(thisAngle) * distanceFromCenter + me.xCenter,\n\t\t\ty: Math.sin(thisAngle) * distanceFromCenter + me.yCenter\n\t\t};\n\t},\n\n\tgetPointPositionForValue: function(index, value) {\n\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t},\n\n\tgetBasePosition: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.getPointPositionForValue(0,\n\t\t\tme.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\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar tickOpts = opts.ticks;\n\n\t\tif (opts.display) {\n\t\t\tvar ctx = me.ctx;\n\t\t\tvar startAngle = this.getIndexAngle(0);\n\t\t\tvar tickFont = helpers$1.options._parseFont(tickOpts);\n\n\t\t\tif (opts.angleLines.display || opts.pointLabels.display) {\n\t\t\t\tdrawPointLabels(me);\n\t\t\t}\n\n\t\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\t\t// Don't draw a centre value (if it is minimum)\n\t\t\t\tif (index > 0 || tickOpts.reverse) {\n\t\t\t\t\tvar yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\t\t\t// Draw circular lines around the scale\n\t\t\t\t\tif (gridLineOpts.display && index !== 0) {\n\t\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, yCenterOffset, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (tickOpts.display) {\n\t\t\t\t\t\tvar tickFontColor = valueOrDefault$b(tickOpts.fontColor, core_defaults.global.defaultFontColor);\n\t\t\t\t\t\tctx.font = tickFont.string;\n\n\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\tctx.translate(me.xCenter, me.yCenter);\n\t\t\t\t\t\tctx.rotate(startAngle);\n\n\t\t\t\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\n\t\t\t\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\t\t\t\t\t\t\tctx.fillRect(\n\t\t\t\t\t\t\t\t-labelWidth / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t\t\t\t-yCenterOffset - tickFont.size / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\t\t\t\tlabelWidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\t\t\t\ttickFont.size + tickOpts.backdropPaddingY * 2\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\tctx.textBaseline = 'middle';\n\t\t\t\t\t\tctx.fillStyle = tickFontColor;\n\t\t\t\t\t\tctx.fillText(label, 0, -yCenterOffset);\n\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$3 = defaultConfig$3;\nscale_radialLinear._defaults = _defaults$3;\n\nvar valueOrDefault$c = helpers$1.valueOrDefault;\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 https://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$1(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\nfunction toTimestamp(scale, input) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options.time;\n\tvar parser = options.parser;\n\tvar format = parser || options.format;\n\tvar value = input;\n\n\tif (typeof parser === 'function') {\n\t\tvalue = parser(value);\n\t}\n\n\t// Only parse if its not a timestamp already\n\tif (!helpers$1.isFinite(value)) {\n\t\tvalue = typeof format === 'string'\n\t\t\t? adapter.parse(value, format)\n\t\t\t: adapter.parse(value);\n\t}\n\n\tif (value !== null) {\n\t\treturn +value;\n\t}\n\n\t// Labels are in an incompatible format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option for parsing.\n\tif (!parser && typeof format === 'function') {\n\t\tvalue = format(input);\n\n\t\t// `format` could return something else than a timestamp, if so, parse it\n\t\tif (!helpers$1.isFinite(value)) {\n\t\t\tvalue = adapter.parse(value);\n\t\t}\n\t}\n\n\treturn value;\n}\n\nfunction parse(scale, input) {\n\tif (helpers$1.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = toTimestamp(scale, scale.getRightValue(input));\n\tif (value === null) {\n\t\treturn value;\n\t}\n\n\tif (options.round) {\n\t\tvalue = +scale._adapter.startOf(value, options.round);\n\t}\n\n\treturn value;\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(scale, ticks, minUnit, min, max) {\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 && scale._adapter.diff(max, min, 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(scale, min, max, capacity) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.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 = valueOrDefault$c(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 = min;\n\tvar last = 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 = +adapter.startOf(first, 'isoWeek', weekday);\n\t\tlast = +adapter.startOf(last, 'isoWeek', weekday);\n\t}\n\n\t// Align first/last ticks on unit\n\tfirst = +adapter.startOf(first, weekday ? 'day' : minor);\n\tlast = +adapter.startOf(last, weekday ? 'day' : minor);\n\n\t// Make sure that the last tick include max\n\tif (last < max) {\n\t\tlast = +adapter.add(last, 1, minor);\n\t}\n\n\ttime = 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 = +adapter.startOf(time, major);\n\t\ttime = +adapter.add(time, ~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\n\t}\n\n\tfor (; time < last; time = +adapter.add(time, stepSize, minor)) {\n\t\tticks.push(+time);\n\t}\n\n\tticks.push(+time);\n\n\treturn ticks;\n}\n\n/**\n * Returns the start and end offsets from edges in the form of {start, end}\n * where each value is a relative width to the scale and ranges between 0 and 1.\n * They add extra margins on the both sides by scaling down the original scale.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar start = 0;\n\tvar end = 0;\n\tvar first, last;\n\n\tif (options.offset && ticks.length) {\n\t\tif (!options.time.min) {\n\t\t\tfirst = interpolate$1(table, 'time', ticks[0], 'pos');\n\t\t\tif (ticks.length === 1) {\n\t\t\t\tstart = 1 - first;\n\t\t\t} else {\n\t\t\t\tstart = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2;\n\t\t\t}\n\t\t}\n\t\tif (!options.time.max) {\n\t\t\tlast = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos');\n\t\t\tif (ticks.length === 1) {\n\t\t\t\tend = last;\n\t\t\t} else {\n\t\t\t\tend = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {start: start, end: end};\n}\n\nfunction ticksFromTimestamps(scale, 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 === +scale._adapter.startOf(value, 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\nvar defaultConfig$4 = {\n\tposition: 'bottom',\n\n\t/**\n\t * Data distribution along the scale:\n\t * - 'linear': data are spread according to their time (distances can vary),\n\t * - 'series': data are spread at the same distance from each other.\n\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t * @since 2.7.0\n\t */\n\tdistribution: 'linear',\n\n\t/**\n\t * Scale boundary strategy (bypassed by min/max time options)\n\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t * @since 2.7.0\n\t */\n\tbounds: 'data',\n\n\tadapters: {},\n\ttime: {\n\t\tparser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\tformat: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from https://momentjs.com/docs/#/parsing/string-format/\n\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\tround: false, // none, or override with week, month, year, etc.\n\t\tdisplayFormat: false, // DEPRECATED\n\t\tisoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/\n\t\tminUnit: 'millisecond',\n\t\tdisplayFormats: {}\n\t},\n\tticks: {\n\t\tautoSkip: false,\n\n\t\t/**\n\t\t * Ticks generation input values:\n\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tsource: 'auto',\n\n\t\tmajor: {\n\t\t\tenabled: false\n\t\t}\n\t}\n};\n\nvar scale_time = core_scale.extend({\n\tinitialize: function() {\n\t\tthis.mergeTicksOptions();\n\t\tcore_scale.prototype.initialize.call(this);\n\t},\n\n\tupdate: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar time = options.time || (options.time = {});\n\t\tvar adapter = me._adapter = new core_adapters._date(options.adapters.date);\n\n\t\t// DEPRECATIONS: output a message only one time per update\n\t\tif (time.format) {\n\t\t\tconsole.warn('options.time.format is deprecated and replaced by options.time.parser.');\n\t\t}\n\n\t\t// Backward compatibility: before introducing adapter, `displayFormats` was\n\t\t// supposed to contain *all* unit/string pairs but this can't be resolved\n\t\t// when loading the scale (adapters are loaded afterward), so let's populate\n\t\t// missing formats on update\n\t\thelpers$1.mergeIf(time.displayFormats, adapter.formats());\n\n\t\treturn core_scale.prototype.update.apply(me, arguments);\n\t},\n\n\t/**\n\t * Allows data to be referenced via 't' attribute\n\t */\n\tgetRightValue: function(rawValue) {\n\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\trawValue = rawValue.t;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, rawValue);\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar adapter = me._adapter;\n\t\tvar timeOpts = me.options.time;\n\t\tvar unit = timeOpts.unit || 'day';\n\t\tvar min = MAX_INTEGER;\n\t\tvar max = MIN_INTEGER;\n\t\tvar timestamps = [];\n\t\tvar datasets = [];\n\t\tvar labels = [];\n\t\tvar i, j, ilen, jlen, data, timestamp;\n\t\tvar dataLabels = chart.data.labels || [];\n\n\t\t// Convert labels to timestamps\n\t\tfor (i = 0, ilen = dataLabels.length; i < ilen; ++i) {\n\t\t\tlabels.push(parse(me, dataLabels[i]));\n\t\t}\n\n\t\t// Convert data to timestamps\n\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\tif (helpers$1.isObject(data[0])) {\n\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\ttimestamp = parse(me, data[j]);\n\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (j = 0, jlen = labels.length; j < jlen; ++j) {\n\t\t\t\t\t\ttimestamps.push(labels[j]);\n\t\t\t\t\t}\n\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdatasets[i] = [];\n\t\t\t}\n\t\t}\n\n\t\tif (labels.length) {\n\t\t\t// Sort labels **after** data have been converted\n\t\t\tlabels = arrayUnique(labels).sort(sorter);\n\t\t\tmin = Math.min(min, labels[0]);\n\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t}\n\n\t\tif (timestamps.length) {\n\t\t\ttimestamps = arrayUnique(timestamps).sort(sorter);\n\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t}\n\n\t\tmin = parse(me, timeOpts.min) || min;\n\t\tmax = parse(me, timeOpts.max) || max;\n\n\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\tmin = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min;\n\t\tmax = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max;\n\n\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\tme.min = Math.min(min, max);\n\t\tme.max = Math.max(min + 1, max);\n\n\t\t// PRIVATE\n\t\tme._horizontal = me.isHorizontal();\n\t\tme._table = [];\n\t\tme._timestamps = {\n\t\t\tdata: timestamps,\n\t\t\tdatasets: datasets,\n\t\t\tlabels: labels\n\t\t};\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\t\tvar options = me.options;\n\t\tvar timeOpts = options.time;\n\t\tvar timestamps = [];\n\t\tvar ticks = [];\n\t\tvar i, ilen, timestamp;\n\n\t\tswitch (options.ticks.source) {\n\t\tcase 'data':\n\t\t\ttimestamps = me._timestamps.data;\n\t\t\tbreak;\n\t\tcase 'labels':\n\t\t\ttimestamps = me._timestamps.labels;\n\t\t\tbreak;\n\t\tcase 'auto':\n\t\tdefault:\n\t\t\ttimestamps = generate(me, min, max, me.getLabelCapacity(min), options);\n\t\t}\n\n\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\tmin = timestamps[0];\n\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t}\n\n\t\t// Enforce limits with user min/max options\n\t\tmin = parse(me, timeOpts.min) || min;\n\t\tmax = parse(me, timeOpts.max) || max;\n\n\t\t// Remove ticks outside the min/max range\n\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\ttimestamp = timestamps[i];\n\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\tticks.push(timestamp);\n\t\t\t}\n\t\t}\n\n\t\tme.min = min;\n\t\tme.max = max;\n\n\t\t// PRIVATE\n\t\tme._unit = timeOpts.unit || determineUnitForFormatting(me, ticks, timeOpts.minUnit, me.min, me.max);\n\t\tme._majorUnit = determineMajorUnit(me._unit);\n\t\tme._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\n\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\n\t\tif (options.ticks.reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\n\t\treturn ticksFromTimestamps(me, ticks, me._majorUnit);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar data = me.chart.data;\n\t\tvar timeOpts = me.options.time;\n\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\tif (helpers$1.isObject(value)) {\n\t\t\tlabel = me.getRightValue(value);\n\t\t}\n\t\tif (timeOpts.tooltipFormat) {\n\t\t\treturn adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat);\n\t\t}\n\t\tif (typeof label === 'string') {\n\t\t\treturn label;\n\t\t}\n\t\treturn adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime);\n\t},\n\n\t/**\n\t * Function to format an individual tick mark\n\t * @private\n\t */\n\ttickFormatFunction: function(time, index, ticks, format) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar formats = options.time.displayFormats;\n\t\tvar minorFormat = formats[me._unit];\n\t\tvar majorUnit = me._majorUnit;\n\t\tvar majorFormat = formats[majorUnit];\n\t\tvar majorTime = +adapter.startOf(time, majorUnit);\n\t\tvar majorTickOpts = options.ticks.major;\n\t\tvar major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\n\t\tvar label = adapter.format(time, format ? format : major ? majorFormat : minorFormat);\n\t\tvar tickOpts = major ? majorTickOpts : options.ticks.minor;\n\t\tvar formatter = valueOrDefault$c(tickOpts.callback, tickOpts.userCallback);\n\n\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t},\n\n\tconvertTicksToLabels: function(ticks) {\n\t\tvar labels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tlabels.push(this.tickFormatFunction(ticks[i].value, i, ticks));\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetPixelForOffset: function(time) {\n\t\tvar me = this;\n\t\tvar isReverse = me.options.ticks.reverse;\n\t\tvar size = me._horizontal ? me.width : me.height;\n\t\tvar start = me._horizontal ? isReverse ? me.right : me.left : isReverse ? me.bottom : me.top;\n\t\tvar pos = interpolate$1(me._table, 'time', time, 'pos');\n\t\tvar offset = size * (me._offsets.start + pos) / (me._offsets.start + 1 + me._offsets.end);\n\n\t\treturn isReverse ? start - offset : start + offset;\n\t},\n\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar time = null;\n\n\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t}\n\n\t\tif (time === null) {\n\t\t\ttime = parse(me, value);\n\t\t}\n\n\t\tif (time !== null) {\n\t\t\treturn me.getPixelForOffset(time);\n\t\t}\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.getTicks();\n\t\treturn index >= 0 && index < ticks.length ?\n\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\tnull;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar size = me._horizontal ? me.width : me.height;\n\t\tvar start = me._horizontal ? me.left : me.top;\n\t\tvar pos = (size ? (pixel - start) / size : 0) * (me._offsets.start + 1 + me._offsets.start) - me._offsets.end;\n\t\tvar time = interpolate$1(me._table, 'pos', pos, 'time');\n\n\t\t// DEPRECATION, we should return time directly\n\t\treturn me._adapter._create(time);\n\t},\n\n\t/**\n\t * Crude approximation of what the label width might be\n\t * @private\n\t */\n\tgetLabelWidth: function(label) {\n\t\tvar me = this;\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\tvar angle = helpers$1.toRadians(ticksOpts.maxRotation);\n\t\tvar cosRotation = Math.cos(angle);\n\t\tvar sinRotation = Math.sin(angle);\n\t\tvar tickFontSize = valueOrDefault$c(ticksOpts.fontSize, core_defaults.global.defaultFontSize);\n\n\t\treturn (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetLabelCapacity: function(exampleTime) {\n\t\tvar me = this;\n\n\t\t// pick the longest format (milliseconds) for guestimation\n\t\tvar format = me.options.time.displayFormats.millisecond;\n\t\tvar exampleLabel = me.tickFormatFunction(exampleTime, 0, [], format);\n\t\tvar tickLabelWidth = me.getLabelWidth(exampleLabel);\n\t\tvar innerWidth = me.isHorizontal() ? me.width : me.height;\n\t\tvar capacity = Math.floor(innerWidth / tickLabelWidth);\n\n\t\treturn capacity > 0 ? capacity : 1;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$4 = defaultConfig$4;\nscale_time._defaults = _defaults$4;\n\nvar scales = {\n\tcategory: scale_category,\n\tlinear: scale_linear,\n\tlogarithmic: scale_logarithmic,\n\tradialLinear: scale_radialLinear,\n\ttime: scale_time\n};\n\nvar FORMATS = {\n\tdatetime: 'MMM D, YYYY, h:mm:ss a',\n\tmillisecond: 'h:mm:ss.SSS a',\n\tsecond: 'h:mm:ss a',\n\tminute: 'h:mm a',\n\thour: 'hA',\n\tday: 'MMM D',\n\tweek: 'll',\n\tmonth: 'MMM YYYY',\n\tquarter: '[Q]Q - YYYY',\n\tyear: 'YYYY'\n};\n\ncore_adapters._date.override(typeof moment === 'function' ? {\n\t_id: 'moment', // DEBUG ONLY\n\n\tformats: function() {\n\t\treturn FORMATS;\n\t},\n\n\tparse: function(value, format) {\n\t\tif (typeof value === 'string' && typeof format === 'string') {\n\t\t\tvalue = moment(value, format);\n\t\t} else if (!(value instanceof moment)) {\n\t\t\tvalue = moment(value);\n\t\t}\n\t\treturn value.isValid() ? value.valueOf() : null;\n\t},\n\n\tformat: function(time, format) {\n\t\treturn moment(time).format(format);\n\t},\n\n\tadd: function(time, amount, unit) {\n\t\treturn moment(time).add(amount, unit).valueOf();\n\t},\n\n\tdiff: function(max, min, unit) {\n\t\treturn moment.duration(moment(max).diff(moment(min))).as(unit);\n\t},\n\n\tstartOf: function(time, unit, weekday) {\n\t\ttime = moment(time);\n\t\tif (unit === 'isoWeek') {\n\t\t\treturn time.isoWeekday(weekday).valueOf();\n\t\t}\n\t\treturn time.startOf(unit).valueOf();\n\t},\n\n\tendOf: function(time, unit) {\n\t\treturn moment(time).endOf(unit).valueOf();\n\t},\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility with scale.getValueForPixel().\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(time) {\n\t\treturn moment(time);\n\t},\n} : {});\n\ncore_defaults._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 (helpers$1.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$1.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$1.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\nvar plugin_filler = {\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 || core_defaults.global.defaultColor;\n\n\t\tif (mapper && color && points.length) {\n\t\t\thelpers$1.canvas.clipArea(ctx, chart.chartArea);\n\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\thelpers$1.canvas.unclipArea(ctx);\n\t\t}\n\t}\n};\n\nvar noop$1 = helpers$1.noop;\nvar valueOrDefault$d = helpers$1.valueOrDefault;\n\ncore_defaults._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\t\tonLeave: 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$1.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$1.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 {object} labelopts - the label options on the legend\n * @param {number} fontSize - the label font size\n * @return {number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ?\n\t\tfontSize :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = core_element.extend({\n\n\tinitialize: function(config) {\n\t\thelpers$1.extend(this, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tthis.legendHitBoxes = [];\n\n\t\t/**\n \t\t * @private\n \t\t */\n\t\tthis._hoveredItem = null;\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$1,\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$1,\n\n\t//\n\n\tbeforeSetDimensions: noop$1,\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$1,\n\n\t//\n\n\tbeforeBuildLabels: noop$1,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers$1.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$1,\n\n\t//\n\n\tbeforeFit: noop$1,\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 labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\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.string;\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 = 0;\n\n\t\t\t\tctx.textAlign = 'left';\n\t\t\t\tctx.textBaseline = 'top';\n\n\t\t\t\thelpers$1.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 (i === 0 || lineWidths[lineWidths.length - 1] + width + labelOpts.padding > minSize.width) {\n\t\t\t\t\t\ttotalHeight += fontSize + labelOpts.padding;\n\t\t\t\t\t\tlineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = labelOpts.padding;\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$1.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 (i > 0 && currentColHeight + itemHeight > minSize.height - vPadding) {\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$1,\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 globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor;\n\t\tvar lineDefault = globalDefaults.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 fontColor = valueOrDefault$d(labelOpts.fontColor, globalDefaults.defaultFontColor);\n\t\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\t\tvar fontSize = labelFont.size;\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.string;\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\tvar lineWidth = valueOrDefault$d(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\t\tctx.fillStyle = valueOrDefault$d(legendItem.fillStyle, defaultColor);\n\t\t\t\tctx.lineCap = valueOrDefault$d(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\t\tctx.lineDashOffset = valueOrDefault$d(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\t\tctx.lineJoin = valueOrDefault$d(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\t\tctx.lineWidth = lineWidth;\n\t\t\t\tctx.strokeStyle = valueOrDefault$d(legendItem.strokeStyle, defaultColor);\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$d(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 = boxWidth * Math.SQRT2 / 2;\n\t\t\t\t\tvar centerX = x + boxWidth / 2;\n\t\t\t\t\tvar centerY = y + fontSize / 2;\n\n\t\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\t\thelpers$1.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 (lineWidth !== 0) {\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) + 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} 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$1.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\t// Use (me.left + me.minSize.width) and (me.top + me.minSize.height)\n\t\t\t\t// instead of me.right and me.bottom because me.width and me.height\n\t\t\t\t// may have been changed since me.minSize was calculated\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tif (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) {\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) + labelOpts.padding;\n\t\t\t\t\t}\n\t\t\t\t} else if (i > 0 && y + itemHeight > me.top + me.minSize.height) {\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 * @private\n\t */\n\t_getLegendItemAt: function(x, y) {\n\t\tvar me = this;\n\t\tvar i, hitBox, lh;\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\tlh = me.legendHitBoxes;\n\t\t\tfor (i = 0; i < lh.length; ++i) {\n\t\t\t\thitBox = 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\treturn me.legendItems[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\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 hoveredItem;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover && !opts.onLeave) {\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\thoveredItem = me._getLegendItemAt(e.x, e.y);\n\n\t\tif (type === 'click') {\n\t\t\tif (hoveredItem && opts.onClick) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onClick.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t} else {\n\t\t\tif (opts.onLeave && hoveredItem !== me._hoveredItem) {\n\t\t\t\tif (me._hoveredItem) {\n\t\t\t\t\topts.onLeave.call(me, e.native, me._hoveredItem);\n\t\t\t\t}\n\t\t\t\tme._hoveredItem = hoveredItem;\n\t\t\t}\n\n\t\t\tif (opts.onHover && hoveredItem) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onHover.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t}\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\tcore_layouts.configure(chart, legend, legendOpts);\n\tcore_layouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nvar plugin_legend = {\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$1.mergeIf(legendOpts, core_defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tcore_layouts.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\tcore_layouts.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\nvar noop$2 = helpers$1.noop;\n\ncore_defaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\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 = core_element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.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$2,\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$2,\n\n\t//\n\n\tbeforeSetDimensions: noop$2,\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$2,\n\n\t//\n\n\tbeforeBuildLabels: noop$2,\n\tbuildLabels: noop$2,\n\tafterBuildLabels: noop$2,\n\n\t//\n\n\tbeforeFit: noop$2,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar display = opts.display;\n\t\tvar minSize = me.minSize;\n\t\tvar lineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1;\n\t\tvar fontOpts = helpers$1.options._parseFont(opts);\n\t\tvar textSize = display ? (lineCount * fontOpts.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$2,\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 opts = me.options;\n\n\t\tif (opts.display) {\n\t\t\tvar fontOpts = helpers$1.options._parseFont(opts);\n\t\t\tvar lineHeight = fontOpts.lineHeight;\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 = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour\n\t\t\tctx.font = fontOpts.string;\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$1.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\tcore_layouts.configure(chart, title, titleOpts);\n\tcore_layouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nvar plugin_title = {\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$1.mergeIf(titleOpts, core_defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tcore_layouts.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\tcore_layouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n\nvar plugins = {};\nvar filler = plugin_filler;\nvar legend = plugin_legend;\nvar title = plugin_title;\nplugins.filler = filler;\nplugins.legend = legend;\nplugins.title = title;\n\n/**\n * @namespace Chart\n */\n\n\ncore_controller.helpers = helpers$1;\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\ncore_helpers(core_controller);\n\ncore_controller._adapters = core_adapters;\ncore_controller.Animation = core_animation;\ncore_controller.animationService = core_animations;\ncore_controller.controllers = controllers;\ncore_controller.DatasetController = core_datasetController;\ncore_controller.defaults = core_defaults;\ncore_controller.Element = core_element;\ncore_controller.elements = elements;\ncore_controller.Interaction = core_interaction;\ncore_controller.layouts = core_layouts;\ncore_controller.platform = platform;\ncore_controller.plugins = core_plugins;\ncore_controller.Scale = core_scale;\ncore_controller.scaleService = core_scaleService;\ncore_controller.Ticks = core_ticks;\ncore_controller.Tooltip = core_tooltip;\n\n// Register built-in scales\n\ncore_controller.helpers.each(scales, function(scale, type) {\n\tcore_controller.scaleService.registerScaleType(type, scale, scale._defaults);\n});\n\n// Load to register built-in adapters (as side effects)\n\n\n// Loading built-in plugins\n\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tcore_controller.plugins.register(plugins[k]);\n\t}\n}\n\ncore_controller.platform.initialize();\n\nvar src = core_controller;\nif (typeof window !== 'undefined') {\n\twindow.Chart = core_controller;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Chart\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.Chart = core_controller;\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 */\ncore_controller.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 */\ncore_controller.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 */\ncore_controller.pluginService = core_controller.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 */\ncore_controller.PluginBase = core_controller.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 */\ncore_controller.canvasHelpers = core_controller.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.7.3\n * @todo remove at version 3\n * @private\n */\ncore_controller.layoutService = core_controller.layouts;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.LinearScaleBase\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\ncore_controller.LinearScaleBase = scale_linearbase;\n\n/**\n * Provided for backward compatibility, instead we should create a new Chart\n * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`).\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n */\ncore_controller.helpers.each(\n\t[\n\t\t'Bar',\n\t\t'Bubble',\n\t\t'Doughnut',\n\t\t'Line',\n\t\t'PolarArea',\n\t\t'Radar',\n\t\t'Scatter'\n\t],\n\tfunction(klass) {\n\t\tcore_controller[klass] = function(ctx, cfg) {\n\t\t\treturn new core_controller(ctx, core_controller.helpers.merge(cfg || {}, {\n\t\t\t\ttype: klass.charAt(0).toLowerCase() + klass.slice(1)\n\t\t\t}));\n\t\t};\n\t}\n);\n\nreturn src;\n\n})));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\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 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 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 12th 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 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 4th is the first week of the year.\n }\n });\n\n return arDz;\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 12th 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 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 12th is the first week of the year.\n }\n });\n\n return arLy;\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 12th 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 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 6th is the first week of the year.\n }\n });\n\n return arSa;\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","//! 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çə saniyə',\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 7th 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 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 7th is the first week of the year.\n }\n });\n\n return be;\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 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 7th 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 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","//! 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 6th 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 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 6th 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 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 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 7th 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 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","//! 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\n var monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i];\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n var monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\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 monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex : /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex : /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\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 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 7th 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 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","//! 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 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 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 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","//! 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 12th 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 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 enSG = moment.defineLocale('en-SG', {\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 enSG;\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","//! 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","//! 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 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","//! 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 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 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 7th 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 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\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 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 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 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 : 'MM/DD/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 : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\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","//! 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 7th 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 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 12th 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 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 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 minuttur',\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ður',\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 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 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 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 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","//! 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\n var months = [\n 'Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'\n ];\n\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\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: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné aig] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d mí',\n y: 'bliain',\n yy: '%d bliain'\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 ga;\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 '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 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","//! 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 voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\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 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 6th 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 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","//! 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 6th is the first week of the year.\n }\n });\n\n return hi;\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 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 7th is the first week of the year.\n }\n });\n\n return hr;\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","//! 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 7th 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 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 7th 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 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 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 itCh = moment.defineLocale('it-ch', {\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 itCh;\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 : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.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","//! 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 7th is the first week of the year.\n }\n });\n\n return jv;\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 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 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 7th 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 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","//! 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 6th is the first week of the year.\n }\n });\n\n return kn;\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 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 months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n var ku = moment.defineLocale('ku', {\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 : '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 week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\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 7th 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 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","//! 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 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","//! 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","//! 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 7th is the first week of the year.\n }\n });\n\n return me;\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 7th 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 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","//! 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 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 6th 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 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 7th 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 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 7th is the first week of the year.\n }\n });\n\n return msMy;\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 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': '၁',\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 4th 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 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 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 6th 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 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|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|april|mei|ju[nl]i|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 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|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|april|mei|ju[nl]i|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 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 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 Calendar 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 6th is the first week of the year.\n }\n });\n\n return paIn;\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","//! 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 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 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 7th 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 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 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","//! 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","//! 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","//! 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","//! 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 += '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 7th 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 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","//! 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 7th 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 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 7th is the first week of the year.\n }\n });\n\n return srCyrl;\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 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 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","//! 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 7th is the first week of the year.\n }\n });\n\n return sw;\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 6th 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 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 6th is the first week of the year.\n }\n });\n\n return te;\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 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 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 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 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 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","\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 7th 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 // 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 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 12th is the first week of the year.\n }\n });\n\n return tzm;\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 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\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","//! 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 === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\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 7th 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 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","//! 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","//! 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 7th is the first week of the year.\n }\n });\n\n return uzLatn;\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 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 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 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 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 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","//! 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","var map = {\n\t\"./af\": 7,\n\t\"./af.js\": 7,\n\t\"./ar\": 8,\n\t\"./ar-dz\": 9,\n\t\"./ar-dz.js\": 9,\n\t\"./ar-kw\": 10,\n\t\"./ar-kw.js\": 10,\n\t\"./ar-ly\": 11,\n\t\"./ar-ly.js\": 11,\n\t\"./ar-ma\": 12,\n\t\"./ar-ma.js\": 12,\n\t\"./ar-sa\": 13,\n\t\"./ar-sa.js\": 13,\n\t\"./ar-tn\": 14,\n\t\"./ar-tn.js\": 14,\n\t\"./ar.js\": 8,\n\t\"./az\": 15,\n\t\"./az.js\": 15,\n\t\"./be\": 16,\n\t\"./be.js\": 16,\n\t\"./bg\": 17,\n\t\"./bg.js\": 17,\n\t\"./bm\": 18,\n\t\"./bm.js\": 18,\n\t\"./bn\": 19,\n\t\"./bn.js\": 19,\n\t\"./bo\": 20,\n\t\"./bo.js\": 20,\n\t\"./br\": 21,\n\t\"./br.js\": 21,\n\t\"./bs\": 22,\n\t\"./bs.js\": 22,\n\t\"./ca\": 23,\n\t\"./ca.js\": 23,\n\t\"./cs\": 24,\n\t\"./cs.js\": 24,\n\t\"./cv\": 25,\n\t\"./cv.js\": 25,\n\t\"./cy\": 26,\n\t\"./cy.js\": 26,\n\t\"./da\": 27,\n\t\"./da.js\": 27,\n\t\"./de\": 28,\n\t\"./de-at\": 29,\n\t\"./de-at.js\": 29,\n\t\"./de-ch\": 30,\n\t\"./de-ch.js\": 30,\n\t\"./de.js\": 28,\n\t\"./dv\": 31,\n\t\"./dv.js\": 31,\n\t\"./el\": 32,\n\t\"./el.js\": 32,\n\t\"./en-SG\": 33,\n\t\"./en-SG.js\": 33,\n\t\"./en-au\": 34,\n\t\"./en-au.js\": 34,\n\t\"./en-ca\": 35,\n\t\"./en-ca.js\": 35,\n\t\"./en-gb\": 36,\n\t\"./en-gb.js\": 36,\n\t\"./en-ie\": 37,\n\t\"./en-ie.js\": 37,\n\t\"./en-il\": 38,\n\t\"./en-il.js\": 38,\n\t\"./en-nz\": 39,\n\t\"./en-nz.js\": 39,\n\t\"./eo\": 40,\n\t\"./eo.js\": 40,\n\t\"./es\": 41,\n\t\"./es-do\": 42,\n\t\"./es-do.js\": 42,\n\t\"./es-us\": 43,\n\t\"./es-us.js\": 43,\n\t\"./es.js\": 41,\n\t\"./et\": 44,\n\t\"./et.js\": 44,\n\t\"./eu\": 45,\n\t\"./eu.js\": 45,\n\t\"./fa\": 46,\n\t\"./fa.js\": 46,\n\t\"./fi\": 47,\n\t\"./fi.js\": 47,\n\t\"./fo\": 48,\n\t\"./fo.js\": 48,\n\t\"./fr\": 49,\n\t\"./fr-ca\": 50,\n\t\"./fr-ca.js\": 50,\n\t\"./fr-ch\": 51,\n\t\"./fr-ch.js\": 51,\n\t\"./fr.js\": 49,\n\t\"./fy\": 52,\n\t\"./fy.js\": 52,\n\t\"./ga\": 53,\n\t\"./ga.js\": 53,\n\t\"./gd\": 54,\n\t\"./gd.js\": 54,\n\t\"./gl\": 55,\n\t\"./gl.js\": 55,\n\t\"./gom-latn\": 56,\n\t\"./gom-latn.js\": 56,\n\t\"./gu\": 57,\n\t\"./gu.js\": 57,\n\t\"./he\": 58,\n\t\"./he.js\": 58,\n\t\"./hi\": 59,\n\t\"./hi.js\": 59,\n\t\"./hr\": 60,\n\t\"./hr.js\": 60,\n\t\"./hu\": 61,\n\t\"./hu.js\": 61,\n\t\"./hy-am\": 62,\n\t\"./hy-am.js\": 62,\n\t\"./id\": 63,\n\t\"./id.js\": 63,\n\t\"./is\": 64,\n\t\"./is.js\": 64,\n\t\"./it\": 65,\n\t\"./it-ch\": 66,\n\t\"./it-ch.js\": 66,\n\t\"./it.js\": 65,\n\t\"./ja\": 67,\n\t\"./ja.js\": 67,\n\t\"./jv\": 68,\n\t\"./jv.js\": 68,\n\t\"./ka\": 69,\n\t\"./ka.js\": 69,\n\t\"./kk\": 70,\n\t\"./kk.js\": 70,\n\t\"./km\": 71,\n\t\"./km.js\": 71,\n\t\"./kn\": 72,\n\t\"./kn.js\": 72,\n\t\"./ko\": 73,\n\t\"./ko.js\": 73,\n\t\"./ku\": 74,\n\t\"./ku.js\": 74,\n\t\"./ky\": 75,\n\t\"./ky.js\": 75,\n\t\"./lb\": 76,\n\t\"./lb.js\": 76,\n\t\"./lo\": 77,\n\t\"./lo.js\": 77,\n\t\"./lt\": 78,\n\t\"./lt.js\": 78,\n\t\"./lv\": 79,\n\t\"./lv.js\": 79,\n\t\"./me\": 80,\n\t\"./me.js\": 80,\n\t\"./mi\": 81,\n\t\"./mi.js\": 81,\n\t\"./mk\": 82,\n\t\"./mk.js\": 82,\n\t\"./ml\": 83,\n\t\"./ml.js\": 83,\n\t\"./mn\": 84,\n\t\"./mn.js\": 84,\n\t\"./mr\": 85,\n\t\"./mr.js\": 85,\n\t\"./ms\": 86,\n\t\"./ms-my\": 87,\n\t\"./ms-my.js\": 87,\n\t\"./ms.js\": 86,\n\t\"./mt\": 88,\n\t\"./mt.js\": 88,\n\t\"./my\": 89,\n\t\"./my.js\": 89,\n\t\"./nb\": 90,\n\t\"./nb.js\": 90,\n\t\"./ne\": 91,\n\t\"./ne.js\": 91,\n\t\"./nl\": 92,\n\t\"./nl-be\": 93,\n\t\"./nl-be.js\": 93,\n\t\"./nl.js\": 92,\n\t\"./nn\": 94,\n\t\"./nn.js\": 94,\n\t\"./pa-in\": 95,\n\t\"./pa-in.js\": 95,\n\t\"./pl\": 96,\n\t\"./pl.js\": 96,\n\t\"./pt\": 97,\n\t\"./pt-br\": 98,\n\t\"./pt-br.js\": 98,\n\t\"./pt.js\": 97,\n\t\"./ro\": 99,\n\t\"./ro.js\": 99,\n\t\"./ru\": 100,\n\t\"./ru.js\": 100,\n\t\"./sd\": 101,\n\t\"./sd.js\": 101,\n\t\"./se\": 102,\n\t\"./se.js\": 102,\n\t\"./si\": 103,\n\t\"./si.js\": 103,\n\t\"./sk\": 104,\n\t\"./sk.js\": 104,\n\t\"./sl\": 105,\n\t\"./sl.js\": 105,\n\t\"./sq\": 106,\n\t\"./sq.js\": 106,\n\t\"./sr\": 107,\n\t\"./sr-cyrl\": 108,\n\t\"./sr-cyrl.js\": 108,\n\t\"./sr.js\": 107,\n\t\"./ss\": 109,\n\t\"./ss.js\": 109,\n\t\"./sv\": 110,\n\t\"./sv.js\": 110,\n\t\"./sw\": 111,\n\t\"./sw.js\": 111,\n\t\"./ta\": 112,\n\t\"./ta.js\": 112,\n\t\"./te\": 113,\n\t\"./te.js\": 113,\n\t\"./tet\": 114,\n\t\"./tet.js\": 114,\n\t\"./tg\": 115,\n\t\"./tg.js\": 115,\n\t\"./th\": 116,\n\t\"./th.js\": 116,\n\t\"./tl-ph\": 117,\n\t\"./tl-ph.js\": 117,\n\t\"./tlh\": 118,\n\t\"./tlh.js\": 118,\n\t\"./tr\": 119,\n\t\"./tr.js\": 119,\n\t\"./tzl\": 120,\n\t\"./tzl.js\": 120,\n\t\"./tzm\": 121,\n\t\"./tzm-latn\": 122,\n\t\"./tzm-latn.js\": 122,\n\t\"./tzm.js\": 121,\n\t\"./ug-cn\": 123,\n\t\"./ug-cn.js\": 123,\n\t\"./uk\": 124,\n\t\"./uk.js\": 124,\n\t\"./ur\": 125,\n\t\"./ur.js\": 125,\n\t\"./uz\": 126,\n\t\"./uz-latn\": 127,\n\t\"./uz-latn.js\": 127,\n\t\"./uz.js\": 126,\n\t\"./vi\": 128,\n\t\"./vi.js\": 128,\n\t\"./x-pseudo\": 129,\n\t\"./x-pseudo.js\": 129,\n\t\"./yo\": 130,\n\t\"./yo.js\": 130,\n\t\"./zh-cn\": 131,\n\t\"./zh-cn.js\": 131,\n\t\"./zh-hk\": 132,\n\t\"./zh-hk.js\": 132,\n\t\"./zh-tw\": 133,\n\t\"./zh-tw.js\": 133\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 137;","import ipad_ffox_simplify_vs_false from './ipad_ffox_simplify_vs_false.json'\nimport ipad_ffox_simplify_vs_true from './ipad_ffox_simplify_vs_true.json'\nimport ipad_safa_simplify_vs_false from './ipad_safa_simplify_vs_false.json'\nimport ipad_safa_simplify_vs_true from './ipad_safa_simplify_vs_true.json'\nimport mac_ffox_bavaria_vs_false from './mac_ffox_bavaria_vs_false.json'\nimport mac_ffox_bavaria_vs_true from './mac_ffox_bavaria_vs_true.json'\nimport mac_safa_bavaria_vs_false from './mac_safa_bavaria_vs_false.json'\nimport mac_safa_bavaria_vs_true from './mac_safa_bavaria_vs_true.json'\nimport ubu_ffox_bavaria_jsstack_false from './ubu_ffox_bavaria_jsstack_false.json'\nimport ubu_ffox_bavaria_jsstack_true from './ubu_ffox_bavaria_jsstack_true.json'\nimport ubu_ffox_bavaria_vs_false from './ubu_ffox_bavaria_vs_false.json'\nimport ubu_ffox_bavaria_vs_true from './ubu_ffox_bavaria_vs_true.json'\nimport win_chro_simplify_vs_false from './win_chro_simplify_vs_false.json'\nimport win_chro_simplify_vs_true from './win_chro_simplify_vs_true.json'\nimport win_edge_simplify_stack_false from './win_edge_simplify_stack_false.json'\nimport win_edge_simplify_stack_true from './win_edge_simplify_stack_true.json'\nimport win_edge_simplify_vs_false from './win_edge_simplify_vs_false.json'\nimport win_edge_simplify_vs_true from './win_edge_simplify_vs_true.json'\nimport win_ffox_simplify_vs_false from './win_ffox_simplify_vs_false.json'\nimport win_ffox_simplify_vs_true from './win_ffox_simplify_vs_true.json'\n\nexport default {\n set1: [\n win_ffox_simplify_vs_false,\n win_ffox_simplify_vs_true,\n win_chro_simplify_vs_false,\n win_chro_simplify_vs_true,\n win_edge_simplify_vs_false,\n win_edge_simplify_vs_true\n ],\n set2: [win_edge_simplify_stack_false, win_edge_simplify_stack_true],\n set3: [\n mac_safa_bavaria_vs_false,\n mac_safa_bavaria_vs_true,\n mac_ffox_bavaria_vs_false,\n mac_ffox_bavaria_vs_true\n ],\n set4: [\n ubu_ffox_bavaria_vs_false,\n ubu_ffox_bavaria_jsstack_false,\n ubu_ffox_bavaria_vs_true,\n ubu_ffox_bavaria_jsstack_true\n ],\n set5: [\n ipad_safa_simplify_vs_false,\n ipad_safa_simplify_vs_true,\n ipad_ffox_simplify_vs_false,\n ipad_ffox_simplify_vs_true\n ]\n}\n","import Chart from 'chart.js'\n\nimport results from '../results/index.js'\n\nfunction processHash() {\n if (window.location.hash) {\n let set = window.location.hash.substring(1)\n\n if (!results.hasOwnProperty(set)) {\n console.error(`No result set \"${set}\" defined`)\n return\n }\n\n setCharts(set)\n setDimensions(set)\n printStats()\n }\n}\n\n// Dimension rendering\n\nconst dimensionMap = {\n set1: [[0], [0, 1, 2], [0], [0, 1], [0]],\n set2: [[0], [2], [0], [0, 1], [1]],\n set3: [[0], [0, 3], [1], [0, 1], [0]],\n set4: [[0], [0], [1], [0, 1], [0, 2]],\n set5: [[1], [0, 3], [0], [0, 1], [0]]\n}\nfunction setDimensions(set) {\n let map = dimensionMap[set]\n let dimensions = document.getElementsByClassName('characteristics')\n\n for (let i = 0; i < dimensions.length; i++) {\n let dim = dimensions[i]\n for (let j = 0; j < dim.children.length; j++) {\n let child = dim.children[j]\n if (map[i].indexOf(j) !== -1) child.setAttribute('active', 'active')\n else child.removeAttribute('active')\n }\n }\n}\n\n// Chart rendering\n\nconst charts = []\n\nfunction killChildren(node) {\n while (node.hasChildNodes()) node.removeChild(node.lastChild)\n}\n\nfunction createChart(config) {\n let canvas = document.createElement('canvas')\n let ctx = canvas.getContext('2d')\n charts.push(new Chart(ctx, config))\n return canvas\n}\n\nfunction destroyCharts() {\n while (charts.length) {\n let chart = charts.pop()\n chart.destroy()\n }\n}\n\nfunction setCharts(set) {\n let resultsRoot = document.getElementById('chartRoot')\n destroyCharts()\n killChildren(resultsRoot)\n for (let config of results[set]) {\n resultsRoot.appendChild(createChart(config))\n }\n}\n\n// toggle button\n\nfunction togglePerformanceMeasure() {\n const toggleLabel = label =>\n label === 'Performance - Milliseconds per operation (ms)'\n ? 'Performance - Operations per second (hz)'\n : 'Performance - Milliseconds per operation (ms)'\n\n for (let chart of charts) {\n let datasets = chart.config.data.datasets\n for (let dataset of datasets) {\n if (dataset.id !== 'numberOfNodes') {\n dataset.data = dataset.data.map(val => 1000 / val)\n }\n }\n let scaleLabel = chart.config.options.scales.yAxes[0].scaleLabel\n scaleLabel.labelString = toggleLabel(scaleLabel.labelString)\n chart.update()\n }\n printStats()\n}\n\n// stats\n\nfunction printStats() {\n const sum = arr => arr.reduce((a, b) => a + b, 0)\n const mean = arr => sum(arr) / arr.length\n const median = arr => [...arr].sort()[Math.floor(arr.length / 2)]\n let i = 0\n for (let chart of charts) {\n console.log(`=== Stats for chart #${i} ===`)\n let datasets = chart.config.data.datasets\n for (let dataset of datasets) {\n if (dataset.data.length === 0 || dataset.id === 'numberOfNodes') continue\n let data = dataset.data\n console.log(\n `Dataset: ${dataset.label}, mean: ${mean(data)}, median: ${median(\n data\n )}`\n )\n }\n i++\n }\n}\n\n// init\n\nprocessHash()\nwindow.onhashchange = processHash\ndocument\n .getElementById('toggle')\n .addEventListener('click', togglePerformanceMeasure)\n"],"sourceRoot":""}