diff --git a/dist/calendar-card.js b/dist/calendar-card.js index b89b40c..5502033 100755 --- a/dist/calendar-card.js +++ b/dist/calendar-card.js @@ -802,7 +802,7 @@ var Ne,Ce=function(e,t){var a=e.startNode.parentNode,n=void 0===t?e.endNode:t.st width: 50%; margin-left: 35px; } -`;const et=(e,t,a={},n={})=>{const s=new Event(t,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return s.detail=a,e.dispatchEvent(s),s};customElements.define("calendar-card-editor",class extends Je{static get styles(){return Xe}static get properties(){return{hass:{},_config:{}}}setConfig(e){this._config=Object.assign({},Qe,e)}get entityOptions(){return Object.keys(this.hass.states).filter(e=>"calendar"===e.substr(0,e.indexOf("."))).map(e=>{const t=this._config.entities.find(t=>(t&&t.entity||t)===e);return{entity:e,name:t&&t.name||e,checked:!!t}})}firstUpdated(){this._firstRendered=!0}render(){return this.hass?ee` +`;const et=(e,t,a={},n={})=>{const s=new Event(t,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return s.detail=a,e.dispatchEvent(s),s};customElements.define("calendar-card-editor",class extends Je{static get styles(){return Xe}static get properties(){return{hass:{},_config:{}}}setConfig(e){this._config=Object.assign({},Qe,e)}get entityOptions(){return Object.keys(this.hass.states).filter(e=>"calendar"===e.substr(0,e.indexOf("."))).map(e=>{const t=this._config.entities.find(t=>(t&&t.entity||t)===e),a=this.hass.states[e];return{entity:e,name:t&&t.name||a.attributes.friendly_name||e,checked:!!t}})}firstUpdated(){this._firstRendered=!0}render(){return this.hass?ee`
@@ -958,7 +958,7 @@ var Ne,Ce=function(e,t){var a=e.startNode.parentNode,n=void 0===t?e.endNode:t.st `)}
- `:ee``}checkboxChanged(e){if(this.cantFireEvent)return;const{target:{configValue:t},detail:{value:a}}=e;this._config=Object.assign({},this._config,{[t]:a}),et(this,"config-changed",{config:this._config})}inputChanged(e){if(this.cantFireEvent)return;const{target:{configValue:t},detail:{value:a}}=e;this._config=Object.assign({},this._config,{[t]:a}),et(this,"config-changed",{config:this._config})}get entities(){return[...this._config.entities||[]].map(e=>e.entity?e:{entity:e,name:e})}entityNameChanged(e){if(this.cantFireEvent)return;const{target:{entityId:t},detail:{value:a}}=e;let n=[...this.entities];n=n.map(e=>(e.entity===t&&(e.name=a||""),e)),this._config=Object.assign({},this._config,{entities:n}),et(this,"config-changed",{config:this._config})}entityChanged(e){if(this.cantFireEvent)return;const{target:{entityId:t},detail:{value:a}}=e;let n=[...this.entities];a?n.push({entity:t,name:t}):n=n.filter(e=>e.entity!==t),this._config=Object.assign({},this._config,{entities:n}),et(this,"config-changed",{config:this._config})}get cantFireEvent(){return!this._config||!this.hass||!this._firstRendered}});customElements.define("calendar-card",class extends Je{static get properties(){return{hass:{type:Object},config:{type:Object},events:{type:Object}}}constructor(){super(),this.events=!1}static async getConfigElement(){return document.createElement("calendar-card-editor")}setConfig(e){if(!(e={...Qe,...e}).entities||!e.entities.length)throw new Error("You need to define at least one calendar entity via entities");if(e.entities&&(isNaN(e.eventsLimit)||e.eventsLimit<0))throw new Error("The eventsLimit option needs to be a positive number");const t=(e.entities||[]).map(e=>e.entity||e),a=((this.config||{}).entities||[]).map(e=>e.entity||e);this.config&&JSON.stringify(t)===JSON.stringify(a)&&e.numberOfDays===this.config.numberOfDays||(this.cardNeedsUpdating=!0),JSON.stringify(e)!==JSON.stringify(this.config||{})&&(this.cardNeedsUpdating=!0),this.config={...e}}getCardSize(){return 8}static get styles(){return Ze}render(){return this.updateCard(),ee` + `:ee``}checkboxChanged(e){if(this.cantFireEvent)return;const{target:{configValue:t},detail:{value:a}}=e;this._config=Object.assign({},this._config,{[t]:a}),et(this,"config-changed",{config:this._config})}inputChanged(e){if(this.cantFireEvent)return;const{target:{configValue:t},detail:{value:a}}=e;this._config=Object.assign({},this._config,{[t]:a}),et(this,"config-changed",{config:this._config})}get entities(){return[...this._config.entities||[]].map(e=>e.entity?e:{entity:e,name:e})}entityNameChanged({target:{entityId:e},detail:{value:t}}){if(this.cantFireEvent)return;let a=[...this.entities];a=a.map(a=>(a.entity===e&&(a.name=t||""),a)),this._config=Object.assign({},this._config,{entities:a}),et(this,"config-changed",{config:this._config})}entityChanged({target:{entityId:e},detail:{value:t}}){if(this.cantFireEvent)return;let a=[...this.entities];if(t){const t=this.hass.states[e];a.push({entity:e,name:t.attributes.friendly_name||e})}else a=a.filter(t=>t.entity!==e);this._config=Object.assign({},this._config,{entities:a}),et(this,"config-changed",{config:this._config})}get cantFireEvent(){return!this._config||!this.hass||!this._firstRendered}});customElements.define("calendar-card",class extends Je{static get properties(){return{hass:{type:Object},config:{type:Object},events:{type:Object}}}constructor(){super(),this.events=!1}static async getConfigElement(){return document.createElement("calendar-card-editor")}setConfig(e){if(!(e={...Qe,...e}).entities||!e.entities.length)throw new Error("You need to define at least one calendar entity via entities");if(e.entities&&(isNaN(e.eventsLimit)||e.eventsLimit<0))throw new Error("The eventsLimit option needs to be a positive number");const t=(e.entities||[]).map(e=>e.entity||e),a=((this.config||{}).entities||[]).map(e=>e.entity||e);this.config&&JSON.stringify(t)===JSON.stringify(a)&&e.numberOfDays===this.config.numberOfDays||(this.cardNeedsUpdating=!0),JSON.stringify(e)!==JSON.stringify(this.config||{})&&(this.cardNeedsUpdating=!0),this.config={...e}}getCardSize(){return 8}static get styles(){return Ze}render(){return this.updateCard(),ee` ${e=this.config,e.hideHeader||!1===e.title?ee``:ee`
${e.title}
`} ${this.events?ee`${this.events}`:ee` diff --git a/dist/calendar-card.js.map b/dist/calendar-card.js.map index 88a7f1f..4887dcc 100755 --- a/dist/calendar-card.js.map +++ b/dist/calendar-card.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./src/moment.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./src/locales.js","webpack:///../src/lib/directive.ts","webpack:///../src/lib/dom.ts","webpack:///../src/lib/part.ts","webpack:///../src/lib/template.ts","webpack:///../src/lib/template-instance.ts","webpack:///../src/lib/template-result.ts","webpack:///../src/lib/parts.ts","webpack:///../src/lib/default-template-processor.ts","webpack:///../src/lib/template-factory.ts","webpack:///../src/lib/render.ts","webpack:///src/lit-html.ts","webpack:///../src/lib/modify-template.ts","webpack:///../src/lib/shady-render.ts","webpack:///../src/lib/updating-element.ts","webpack:///../src/lib/css-tag.ts","webpack:///src/lit-element.ts","webpack:///../src/directives/repeat.ts","webpack:///./src/calendar-event.js","webpack:///./src/event.tools.js","webpack:///./src/style.js","webpack:///./src/defaults.js","webpack:///./src/style-editor.js","webpack:///./src/index-editor.js","webpack:///./src/index.js","webpack:///./src/html.tools.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","global","window","Math","self","Function","__g","store","uid","USE_SYMBOL","it","isObject","TypeError","a","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","P","Attributes","e","exec","hide","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","core","redefine","ctx","$export","type","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","target","expProto","undefined","U","W","R","$iterators","getKeys","Iterators","wks","ITERATOR","TO_STRING_TAG","ArrayValues","Array","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","length","NAME","explicit","Collection","proto","addToUnscopables","step","toIObject","iterated","kind","_t","_i","_k","index","Arguments","classof","test","DESCRIPTORS","META","KEY","$fails","shared","setToStringTag","wksExt","wksDefine","enumKeys","isArray","toObject","createDesc","_create","gOPNExt","$GOPD","$GOPS","$DP","$keys","gOPD","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","wrap","tag","sym","isSymbol","iterator","$defineProperty","$defineProperties","keys","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","IS_OP","arguments","$set","configurable","set","es6Symbols","j","wellKnownSymbols","k","keyFor","useSetter","useSimple","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","apply","valueOf","aFunction","fn","that","b","$at","point","done","toString","slice","version","__e","IObject","defined","TYPE","id","px","random","concat","bitmap","writable","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","def","TAG","stat","enumBugKeys","toInteger","min","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","document","open","write","lt","close","Properties","FProto","nameRE","match","InternalMap","each","assign","weak","validate","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","uncaughtFrozenStore","ufstore","wrapper","methods","data","$WeakMap","getConstructor","method","_f","hookCallback","some","hooks","input","isUndefined","isNumber","isDate","Date","map","arr","res","hasOwnProp","extend","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","bigHour","isFrozen","createInvalid","NaN","fun","len","momentProperties","copyConfig","to","from","prop","_isAMomentObject","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","obj","absFloor","number","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","Error","stack","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","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","defaultLocaleMonthsShort","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","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","getSetGlobalLocale","_abbr","values","getLocale","defineLocale","abbr","_config","parentLocale","forEach","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","GG","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","parsedArray","weekdayStr","parsedInput","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","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","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","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","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","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","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","field","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","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","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","weekdaysParseExact","symbolMap","pluralForm","plurals","pluralize","str","months$1","symbolMap$1","numberMap","symbolMap$2","numberMap$1","pluralForm$1","plurals$1","pluralize$1","months$2","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","relativeTimeWithPlural","word","num","forms","plural","standalone","lastDigit","last2Digits","symbolMap$3","numberMap$2","symbolMap$4","numberMap$3","relativeTimeWithMutation","text","mutationTable","substring","softMutation","mutation","translate","lastNumber","monthsParseExact","ll","lll","llll","months$3","monthsRegex$1","plural$1","translate$1","processRelativeTime","processRelativeTime$1","processRelativeTime$2","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","months$4","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","monthsShort$1","monthsParse$1","monthsRegex$2","monthsShortDot$1","monthsShort$2","monthsParse$2","monthsRegex$3","monthsShortDot$2","monthsShort$3","monthsParse$3","monthsRegex$4","processRelativeTime$3","symbolMap$5","numberMap$4","numbersPast","numbersFuture","translate$2","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","processRelativeTime$4","symbolMap$6","numberMap$5","symbolMap$7","numberMap$6","translate$3","weekEndings","translate$4","plural$2","translate$5","suffixes$1","0","40","symbolMap$8","numberMap$7","symbolMap$9","numberMap$8","isUpper","symbolMap$a","numberMap$9","months$7","suffixes$2","processRelativeTime$5","eifelerRegelAppliesToNumber","translateSingular","special","translate$6","units$1","format$1","relativeTimeWithPlural$1","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","translate$7","symbolMap$b","numberMap$a","relativeTimeMr","symbolMap$c","numberMap$b","symbolMap$d","numberMap$c","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$4","monthsRegex$5","monthsShortWithDots$2","monthsShortWithoutDots$2","monthsParse$5","monthsRegex$6","symbolMap$e","numberMap$d","monthsNominative","monthsSubjective","plural$3","translate$8","relativeTimeWithPlural$2","relativeTimeWithPlural$3","plural$4","monthsParse$6","months$8","days$1","months$9","monthsShort$6","plural$5","translate$9","processRelativeTime$6","translator$1","translator$2","symbolMap$f","numberMap$e","suffixes$3","12","13","numbersNouns","translate$a","numberNoun","hundred","ten","one","numberAsNoun","suffixes$4","processRelativeTime$7","relativeTimeWithPlural$4","plural$6","processHoursFunction","months$a","days$2","copyright","hiddenKeys","pIE","setPrototypeOf","cof","ARG","T","tryGet","callee","Constructor","forbiddenField","isArrayIter","toLength","getIterFn","BREAK","RETURN","iterable","entries","iterFn","ignoreCase","multiline","unicode","sticky","strong","entry","getEntry","v","is","createElement","getPrototypeOf","propertyKey","desc","receiver","LIBRARY","$iterCreate","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SPECIES","C","redefineAll","forOf","anInstance","fails","$iterDetect","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","iter","BUGGY_ZERO","$instance","constructor","clear","setStrong","SAFE_CLOSING","riter","skipClosing","createProperty","arrayLike","aLen","mapfn","mapping","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","re","arrayIndexOf","documentElement","check","buggy","__proto__","TO_STRING","charCodeAt","$iterDefine","setSpecies","SIZE","prev","callbackfn","ArrayProto","getIteratorMethod","asc","$create","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","gOPS","$assign","A","K","getSymbols","$flags","define","MATCH","isRegExp","un","defer","channel","port","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","originalModule","webpackPolyfill","children","symbols","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","windowNames","getWindowNames","UNSCOPABLES","descriptor","speciesConstructor","original","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","advanceStringIndex","callRegExpExec","regexpExec","$min","$push","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","regexp","rx","unicodeMatching","lim","q","z","at","builtinExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","forced","$RegExp","CORRECT_NEW","tiRE","piRE","fiU","proxy","rConstruct","Reflect","construct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","arraySlice","factories","partArgs","bound","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","err","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","Promise","__await","then","unwrapped","error","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","pop","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","versions","v8","$Promise","isNode","newPromiseCapability","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","onrejectionhandled","$reject","$resolve","executor","onFulfilled","onRejected","capability","all","remaining","$index","alreadyCalled","race","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","navigator","toggle","node","createTextNode","observe","characterData","promiseCapability","$trim","trim","$Number","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","code","digits","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","moment","months$6","directives","WeakMap","isDirective","isCEPolyfill","customElements","polyfillWrapFlushCallback","reparentNodes","container","start","end","before","nextSibling","insertBefore","removeNodes","noChange","nothing","marker","nodeMarker","markerRegex","Template","element","nodesToRemove","walker","createTreeWalker","content","lastPartIndex","partIndex","strings","nextNode","nodeType","hasAttributes","attributes","count","endsWith","stringForPart","lastAttributeNameRegex","attributeLookupName","attributeValue","getAttribute","removeAttribute","statics","tagName","currentNode","parentNode","insert","createMarker","previousSibling","isTemplatePartActive","part","createComment","template","processor","options","__parts","setValue","commit","fragment","cloneNode","importNode","nodeIndex","nodeName","handleTextExpression","insertAfterNode","handleAttributeExpressions","adoptNode","upgrade","commentMarker","isCommentBinding","commentOpen","lastIndexOf","attributeMatch","innerHTML","getHTML","isPrimitive","isIterable","AttributeCommitter","dirty","_createPart","setAttribute","_getValue","committer","directive","__pendingValue","startNode","endNode","ref","__insert","__commitText","__commitTemplateResult","Node","__commitNode","__commitIterable","valueAsString","templateFactory","update","_clone","itemPart","itemParts","item","NodePart","appendIntoPart","insertAfterPart","PropertyCommitter","single","PropertyPart","eventOptionsSupported","removeEventListener","_e","eventName","eventContext","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","capture","once","passive","shouldAddListener","__options","getOptions","defaultTemplateProcessor","templateCache","templateCaches","stringsArray","keyString","Map","getTemplateElement","walkerNodeFilter","removeNodesFromTemplate","removeCount","nodesToRemoveInTemplate","currentRemovingNode","countNodes","startIndex","getTemplateCacheKey","scopeName","compatibleShadyCSSVersion","ShadyCSS","prepareTemplateDom","cacheKey","TEMPLATE_TYPES","shadyRenderSet","Set","renderedDOM","templateElement","styles","querySelectorAll","condensedStyle","textContent","templates","refNode","insertCount","walkerIndex","insertNodeIntoTemplate","firstChild","prepareTemplateStyles","querySelector","nativeShadow","removes","JSCompiler_renameProperty","_obj","defaultConverter","toAttribute","Boolean","fromAttribute","Number","parse","notEqual","old","defaultPropertyDeclaration","attribute","converter","reflect","hasChanged","microtaskPromise","UpdatingElement","_updateState","_instanceProperties","_updatePromise","_hasConnectedResolver","_changedProperties","_reflectingProperties","initialize","HTMLElement","_saveInstanceProperties","_requestUpdate","_classProperties","_attributeToProperty","attr","_attributeNameForProperty","attrValue","_propertyValueToAttribute","propName","_attributeToPropertyMap","_propertyValueFromAttribute","oldValue","shouldRequestUpdate","_valueHasChanged","_hasRequestedUpdate","_enqueueUpdate","updateComplete","previousUpdatePromise","rej","_hasConnected","performUpdate","_applyInstanceProperties","shouldUpdate","changedProperties","_markUpdated","firstUpdated","updated","size","_propertyToAttribute","_getUpdateComplete","superProperties","_ensureClassProperties","noAccessor","superCtor","finalize","props","properties","propKeys","supportsAdoptingStyleSheets","Document","CSSStyleSheet","constructionToken","CSSResult","cssText","safeToken","_styleSheet","replaceSync","textFromCSSResult","css","reduce","acc","idx","flattenStyles","flat","Infinity","arrayFlat","_styles","_getUniqueStyles","userStyles","reduceRight","unshift","renderRoot","createRenderRoot","ShadowRoot","adoptStyles","attachShadow","adoptedStyleSheets","styleSheet","_needsShimAdoptedStyleSheets","ScopingShim","prepareAdoptedCssText","localName","hasUpdated","styleElement","templateResult","render","hasRendered","needsScoping","host","firstScopeRender","renderContainer","createDocumentFragment","appendInto","delete","containerPart","beforePart","beforeNode","newPart","updatePart","generateMap","list","partListCache","keyListCache","repeat","items","keyFnOrTemplate","keyFn","newKeyToIndexMap","oldKeyToIndexMap","oldParts","oldKeys","newParts","newValues","newKeys","oldHead","oldTail","newHead","newTail","oldIndex","oldPart","calendarEvent","_calendarEvent","title","originCalendar","_startDateTime","dateTime","_processDate","_endDateTime","addDays","daysLong","isEndDate","isFirstDay","startDateTime","isLastDay","recurringEventId","htmlLink","endDateTime","summary","description","location","processEvents","allEvents","uniqueEvents","filter","findIndex","today","newEvents","events","caldavEvent","entities","find","entity","newEvent","hidePastEvents","startFromToday","ignoreEventsExpression","ignoreEventsByLocationExpression","showMultiDay","isMultiDay","endDate","numberOfDays","partialEvents","copiedEvent","rawEvent","partialEvent","dateTopFormat","dateBottomFormat","hideTime","progressBar","showLocation","showLocationIcon","eventsLimit","showEventOrigin","hideHeader","highlightToday","fireEvent","detail","Event","bubbles","cancelable","composed","dispatchEvent","hass","states","eid","matchingConfigEnitity","checked","_firstRendered","inputChanged","checkboxChanged","entityOptions","entityChanged","entityNameChanged","ev","cantFireEvent","configValue","entityId","entityObjects","super","newNames","oldNames","cardNeedsUpdating","updateCard","language","lastEventsUpdate","failedEvents","calendarEntityPromises","calendarEntity","url","callApi","rawEvents","catch","getAllEvents","__hass","groupedEventsByDay","groupedEvents","matchingDateIndex","group","numberOfEvents","hasMaxedOutEvents","groupEventsByDay","failedCalendars","errorTemplate","failedEntity","htmlTemplate","eventDay","eventsTemplate","isLastEventInGroup","lastKls","eventDateTime","todayKls","momentDay","top","bottom","getDateHtml","getLinkHtml","getEventOrigin","isAllDayEvent","getTimeHtml","nowSeconds","startSeconds","endSeconds","getProgressBar","locationAddress","getLocationHtml"],"mappings":"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","file":"calendar-card.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 = \"/local/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 118);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","require('./_wks-define')('asyncIterator');\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","module.exports = {};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","export default (function () {\n '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 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 //! moment.js\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\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$1 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n hooks.defineLocale('ar-ly', {\n months: months$1,\n monthsShort: months$1,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$1 = {\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 hooks.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$1[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$2 = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap$1 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm$1 = 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$1 = {\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$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months$2 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n hooks.defineLocale('ar', {\n months: months$2,\n monthsShort: months$2,\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$1('s'),\n ss: pluralize$1('s'),\n m: pluralize$1('m'),\n mm: pluralize$1('m'),\n h: pluralize$1('h'),\n hh: pluralize$1('h'),\n d: pluralize$1('d'),\n dd: pluralize$1('d'),\n M: pluralize$1('M'),\n MM: pluralize$1('M'),\n y: pluralize$1('y'),\n yy: pluralize$1('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$2[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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$3 = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap$2 = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n hooks.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$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[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 //! moment.js locale configuration\n\n var symbolMap$4 = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap$3 = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n hooks.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$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var months$3 = '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$1 = /^(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$1(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate$1(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$1(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$1(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$1(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$1(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$1(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$1(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n hooks.defineLocale('cs', {\n months: months$3,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\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$1,\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: translate$1,\n dd: translate$1,\n M: translate$1,\n MM: translate$1,\n y: translate$1,\n yy: translate$1\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\n\n function processRelativeTime$1(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 hooks.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$1,\n mm: '%d Minuten',\n h: processRelativeTime$1,\n hh: '%d Stunden',\n d: processRelativeTime$1,\n dd: processRelativeTime$1,\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1\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 //! moment.js locale configuration\n\n function processRelativeTime$2(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 hooks.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$2,\n mm: '%d Minuten',\n h: processRelativeTime$2,\n hh: '%d Stunden',\n d: processRelativeTime$2,\n dd: processRelativeTime$2,\n M: processRelativeTime$2,\n MM: processRelativeTime$2,\n y: processRelativeTime$2,\n yy: processRelativeTime$2\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 //! moment.js locale configuration\n\n var months$4 = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n hooks.defineLocale('dv', {\n months: months$4,\n monthsShort: months$4,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$1 = [/^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$2 = /^(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 hooks.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$1[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\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$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\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 //! moment.js locale configuration\n\n var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$2 = [/^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$3 = /^(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 hooks.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$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\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$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\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 //! moment.js locale configuration\n\n var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$3 = [/^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$4 = /^(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 hooks.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$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\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$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\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 //! moment.js locale configuration\n\n function processRelativeTime$3(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 hooks.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$3,\n ss: processRelativeTime$3,\n m: processRelativeTime$3,\n mm: processRelativeTime$3,\n h: processRelativeTime$3,\n hh: processRelativeTime$3,\n d: processRelativeTime$3,\n dd: '%d päeva',\n M: processRelativeTime$3,\n MM: processRelativeTime$3,\n y: processRelativeTime$3,\n yy: processRelativeTime$3\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$5 = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap$4 = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n hooks.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$4[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[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 //! moment.js locale configuration\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$2(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 hooks.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$2,\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: translate$2,\n dd: translate$2,\n M: translate$2,\n MM: translate$2,\n y: translate$2,\n yy: translate$2\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\n\n\n var months$5 = [\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$4 = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays$1 = ['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 hooks.defineLocale('ga', {\n months: months$5,\n monthsShort: monthsShort$4,\n monthsParseExact: true,\n weekdays: weekdays$1,\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 //! moment.js locale configuration\n\n var months$6 = [\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$5 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays$2 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n hooks.defineLocale('gd', {\n months: months$6,\n monthsShort: monthsShort$5,\n monthsParseExact: true,\n weekdays: weekdays$2,\n weekdaysShort: weekdaysShort$1,\n weekdaysMin: weekdaysMin$1,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n function processRelativeTime$4(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 hooks.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$4,\n ss: processRelativeTime$4,\n m: processRelativeTime$4,\n mm: processRelativeTime$4,\n h: processRelativeTime$4,\n hh: processRelativeTime$4,\n d: processRelativeTime$4,\n dd: processRelativeTime$4,\n M: processRelativeTime$4,\n MM: processRelativeTime$4,\n y: processRelativeTime$4,\n yy: processRelativeTime$4\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 //! moment.js locale configuration\n\n var symbolMap$6 = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap$5 = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n hooks.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$5[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$6[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$7 = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$6 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n hooks.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$6[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[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 //! moment.js locale configuration\n\n function translate$3(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 hooks.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$3,\n m: translate$3,\n mm: translate$3,\n h: translate$3,\n hh: translate$3,\n d: 'dan',\n dd: translate$3,\n M: 'mjesec',\n MM: translate$3,\n y: 'godinu',\n yy: translate$3\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 //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate$4(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 hooks.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$4,\n ss: translate$4,\n m: translate$4,\n mm: translate$4,\n h: translate$4,\n hh: translate$4,\n d: translate$4,\n dd: translate$4,\n M: translate$4,\n MM: translate$4,\n y: translate$4,\n yy: translate$4\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n function plural$2(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$5(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$2(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$2(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$2(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$2(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$2(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$2(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n hooks.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$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: 'klukkustund',\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var suffixes$1 = {\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 hooks.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$1[number] || suffixes$1[a] || suffixes$1[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 //! moment.js locale configuration\n\n var symbolMap$8 = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap$7 = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n hooks.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$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[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 //! moment.js locale configuration\n\n var symbolMap$9 = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap$8 = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n hooks.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$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$a = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap$9 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months$7 = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n hooks.defineLocale('ku', {\n months: months$7,\n monthsShort: months$7,\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$9[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[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 //! moment.js locale configuration\n\n var suffixes$2 = {\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 hooks.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$2[number] || suffixes$2[a] || suffixes$2[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 //! moment.js locale configuration\n\n function processRelativeTime$5(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 hooks.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$5,\n mm: '%d Minutten',\n h: processRelativeTime$5,\n hh: '%d Stonnen',\n d: processRelativeTime$5,\n dd: '%d Deeg',\n M: processRelativeTime$5,\n MM: '%d Méint',\n y: processRelativeTime$5,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\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$6(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 hooks.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$6,\n m: translateSingular,\n mm: translate$6,\n h: translateSingular,\n hh: translate$6,\n d: translateSingular,\n dd: translate$6,\n M: translateSingular,\n MM: translate$6,\n y: translateSingular,\n yy: translate$6\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 //! moment.js locale configuration\n\n var units$1 = {\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$1(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$1(number, withoutSuffix, key) {\n return number + ' ' + format$1(units$1[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format$1(units$1[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n hooks.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$1,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural$1,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural$1,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural$1,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural$1,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural$1\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 //! moment.js locale configuration\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 hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n function translate$7(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 hooks.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$7,\n ss: translate$7,\n m: translate$7,\n mm: translate$7,\n h: translate$7,\n hh: translate$7,\n d: translate$7,\n dd: translate$7,\n M: translate$7,\n MM: translate$7,\n y: translate$7,\n yy: translate$7\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 //! moment.js locale configuration\n\n var symbolMap$b = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$a = {\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 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 hooks.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$a[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$b[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$c = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap$b = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n hooks.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$b[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$d = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$c = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n hooks.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$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[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 //! moment.js locale configuration\n\n var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$4 = [/^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$5 = /^(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 hooks.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$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\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$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\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 //! moment.js locale configuration\n\n var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$5 = [/^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$6 = /^(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 hooks.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$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$6,\n monthsShortRegex: monthsRegex$6,\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$5,\n longMonthsParse: monthsParse$5,\n shortMonthsParse: monthsParse$5,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$e = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap$d = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n hooks.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$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[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 //! moment.js locale configuration\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$3(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate$8(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n hooks.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$8,\n m: translate$8,\n mm: translate$8,\n h: translate$8,\n hh: translate$8,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate$8,\n y: 'rok',\n yy: translate$8\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(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 hooks.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$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2\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 //! moment.js locale configuration\n\n function plural$4(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$3(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$4(format[key], +number);\n }\n }\n var monthsParse$6 = [/^янв/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 hooks.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$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: monthsParse$6,\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$3,\n m: relativeTimeWithPlural$3,\n mm: relativeTimeWithPlural$3,\n h: 'час',\n hh: relativeTimeWithPlural$3,\n d: 'день',\n dd: relativeTimeWithPlural$3,\n M: 'месяц',\n MM: relativeTimeWithPlural$3,\n y: 'год',\n yy: relativeTimeWithPlural$3\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 //! moment.js locale configuration\n\n var months$8 = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days$1 = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n hooks.defineLocale('sd', {\n months: months$8,\n monthsShort: months$8,\n weekdays: days$1,\n weekdaysShort: days$1,\n weekdaysMin: days$1,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n /*jshint -W100*/\n hooks.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 //! moment.js locale configuration\n\n var months$9 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort$6 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural$5(n) {\n return (n > 1) && (n < 5);\n }\n function translate$9(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$5(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$5(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$5(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$5(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$5(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$5(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n hooks.defineLocale('sk', {\n months: months$9,\n monthsShort: monthsShort$6,\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$9,\n ss: translate$9,\n m: translate$9,\n mm: translate$9,\n h: translate$9,\n hh: translate$9,\n d: translate$9,\n dd: translate$9,\n M: translate$9,\n MM: translate$9,\n y: translate$9,\n yy: translate$9\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 //! moment.js locale configuration\n\n function processRelativeTime$6(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 hooks.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$6,\n ss: processRelativeTime$6,\n m: processRelativeTime$6,\n mm: processRelativeTime$6,\n h: processRelativeTime$6,\n hh: processRelativeTime$6,\n d: processRelativeTime$6,\n dd: processRelativeTime$6,\n M: processRelativeTime$6,\n MM: processRelativeTime$6,\n y: processRelativeTime$6,\n yy: processRelativeTime$6\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var translator$1 = {\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$1.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n hooks.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$1.translate,\n m: translator$1.translate,\n mm: translator$1.translate,\n h: translator$1.translate,\n hh: translator$1.translate,\n d: 'дан',\n dd: translator$1.translate,\n M: 'месец',\n MM: translator$1.translate,\n y: 'годину',\n yy: translator$1.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 //! moment.js locale configuration\n\n var translator$2 = {\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$2.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n hooks.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$2.translate,\n m: translator$2.translate,\n mm: translator$2.translate,\n h: translator$2.translate,\n hh: translator$2.translate,\n d: 'dan',\n dd: translator$2.translate,\n M: 'mesec',\n MM: translator$2.translate,\n y: 'godinu',\n yy: translator$2.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var symbolMap$f = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap$e = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n hooks.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$e[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$f[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n var suffixes$3 = {\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 hooks.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$3[number] || suffixes$3[a] || suffixes$3[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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\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$a(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 hooks.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$a,\n m: 'wa’ tup',\n mm: translate$a,\n h: 'wa’ rep',\n hh: translate$a,\n d: 'wa’ jaj',\n dd: translate$a,\n M: 'wa’ jar',\n MM: translate$a,\n y: 'wa’ DIS',\n yy: translate$a\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 var suffixes$4 = {\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 hooks.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$4[a] || suffixes$4[b] || suffixes$4[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 //! moment.js locale configuration\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 hooks.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$7,\n ss: processRelativeTime$7,\n m: processRelativeTime$7,\n mm: processRelativeTime$7,\n h: processRelativeTime$7,\n hh: processRelativeTime$7,\n d: processRelativeTime$7,\n dd: processRelativeTime$7,\n M: processRelativeTime$7,\n MM: processRelativeTime$7,\n y: processRelativeTime$7,\n yy: processRelativeTime$7\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$7(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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js language configuration\n\n hooks.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 //! moment.js locale configuration\n\n function plural$6(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$4(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$6(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 hooks.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$4,\n m: relativeTimeWithPlural$4,\n mm: relativeTimeWithPlural$4,\n h: 'годину',\n hh: relativeTimeWithPlural$4,\n d: 'день',\n dd: relativeTimeWithPlural$4,\n M: 'місяць',\n MM: relativeTimeWithPlural$4,\n y: 'рік',\n yy: relativeTimeWithPlural$4\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 //! moment.js locale configuration\n\n var months$a = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days$2 = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n hooks.defineLocale('ur', {\n months: months$a,\n monthsShort: months$a,\n weekdays: days$2,\n weekdaysShort: days$2,\n weekdaysMin: days$2,\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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 //! moment.js locale configuration\n\n hooks.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 hooks.locale('en');\n\n return hooks;\n\n})();","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\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\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","import moment from './moment';\n\nexport default (function (moment) { \n 'use strict';\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$1 = {\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 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$1[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$2 = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap$1 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm$1 = 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$1 = {\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$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months$1 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n moment.defineLocale('ar', {\n months : months$1,\n monthsShort : months$1,\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$1('s'),\n ss : pluralize$1('s'),\n m : pluralize$1('m'),\n mm : pluralize$1('m'),\n h : pluralize$1('h'),\n hh : pluralize$1('h'),\n d : pluralize$1('d'),\n dd : pluralize$1('d'),\n M : pluralize$1('M'),\n MM : pluralize$1('M'),\n y : pluralize$1('y'),\n yy : pluralize$1('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$2[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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$3 = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap$2 = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n 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$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[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 //! moment.js locale configuration\n\n var symbolMap$4 = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap$3 = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n 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$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var months$2 = '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$1(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate$1(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$1(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$1(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$1(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$1(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$1(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$1(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n moment.defineLocale('cs', {\n months : months$2,\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$1,\n ss : translate$1,\n m : translate$1,\n mm : translate$1,\n h : translate$1,\n hh : translate$1,\n d : translate$1,\n dd : translate$1,\n M : translate$1,\n MM : translate$1,\n y : translate$1,\n yy : translate$1\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n function processRelativeTime$1(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 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$1,\n mm : '%d Minuten',\n h : processRelativeTime$1,\n hh : '%d Stunden',\n d : processRelativeTime$1,\n dd : processRelativeTime$1,\n M : processRelativeTime$1,\n MM : processRelativeTime$1,\n y : processRelativeTime$1,\n yy : processRelativeTime$1\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 //! moment.js locale configuration\n\n function processRelativeTime$2(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 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$2,\n mm : '%d Minuten',\n h : processRelativeTime$2,\n hh : '%d Stunden',\n d : processRelativeTime$2,\n dd : processRelativeTime$2,\n M : processRelativeTime$2,\n MM : processRelativeTime$2,\n y : processRelativeTime$2,\n yy : processRelativeTime$2\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 //! moment.js locale configuration\n\n var months$3 = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n moment.defineLocale('dv', {\n months : months$3,\n monthsShort : months$3,\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 function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$1 = [/^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$1 = /^(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 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$1[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\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$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\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 //! moment.js locale configuration\n\n var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$2 = [/^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$2 = /^(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 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$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\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$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\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 //! moment.js locale configuration\n\n var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$3 = [/^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$3 = /^(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 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$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex : monthsRegex$3,\n monthsShortRegex : monthsRegex$3,\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$3,\n longMonthsParse : monthsParse$3,\n shortMonthsParse : monthsParse$3,\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 //! moment.js locale configuration\n\n function processRelativeTime$3(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 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$3,\n ss : processRelativeTime$3,\n m : processRelativeTime$3,\n mm : processRelativeTime$3,\n h : processRelativeTime$3,\n hh : processRelativeTime$3,\n d : processRelativeTime$3,\n dd : '%d päeva',\n M : processRelativeTime$3,\n MM : processRelativeTime$3,\n y : processRelativeTime$3,\n yy : processRelativeTime$3\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$5 = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap$4 = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n 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$4[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[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 //! moment.js locale configuration\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$2(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 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$2,\n ss : translate$2,\n m : translate$2,\n mm : translate$2,\n h : translate$2,\n hh : translate$2,\n d : translate$2,\n dd : translate$2,\n M : translate$2,\n MM : translate$2,\n y : translate$2,\n yy : translate$2\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n\n var months$4 = [\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$4 = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays$1 = ['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 moment.defineLocale('ga', {\n months: months$4,\n monthsShort: monthsShort$4,\n monthsParseExact: true,\n weekdays: weekdays$1,\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 //! moment.js locale configuration\n\n var months$5 = [\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$5 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays$2 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n moment.defineLocale('gd', {\n months : months$5,\n monthsShort : monthsShort$5,\n monthsParseExact : true,\n weekdays : weekdays$2,\n weekdaysShort : weekdaysShort$1,\n weekdaysMin : weekdaysMin$1,\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n function processRelativeTime$4(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 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$4,\n ss : processRelativeTime$4,\n m : processRelativeTime$4,\n mm : processRelativeTime$4,\n h : processRelativeTime$4,\n hh : processRelativeTime$4,\n d : processRelativeTime$4,\n dd : processRelativeTime$4,\n M : processRelativeTime$4,\n MM : processRelativeTime$4,\n y : processRelativeTime$4,\n yy : processRelativeTime$4\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 //! moment.js locale configuration\n\n var symbolMap$6 = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap$5 = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n 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$5[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$6[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$7 = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$6 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n 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$6[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[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 //! moment.js locale configuration\n\n function translate$3(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 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$3,\n m : translate$3,\n mm : translate$3,\n h : translate$3,\n hh : translate$3,\n d : 'dan',\n dd : translate$3,\n M : 'mjesec',\n MM : translate$3,\n y : 'godinu',\n yy : translate$3\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 //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate$4(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 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$4,\n ss : translate$4,\n m : translate$4,\n mm : translate$4,\n h : translate$4,\n hh : translate$4,\n d : translate$4,\n dd : translate$4,\n M : translate$4,\n MM : translate$4,\n y : translate$4,\n yy : translate$4\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n function plural$2(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$5(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$2(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$2(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$2(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$2(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$2(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$2(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n 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$5,\n ss : translate$5,\n m : translate$5,\n mm : translate$5,\n h : 'klukkustund',\n hh : translate$5,\n d : translate$5,\n dd : translate$5,\n M : translate$5,\n MM : translate$5,\n y : translate$5,\n yy : translate$5\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var suffixes$1 = {\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 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$1[number] || suffixes$1[a] || suffixes$1[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 //! moment.js locale configuration\n\n var symbolMap$8 = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap$7 = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n 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$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[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 //! moment.js locale configuration\n\n var symbolMap$9 = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap$8 = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n 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$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$a = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap$9 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months$6 = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n moment.defineLocale('ku', {\n months : months$6,\n monthsShort : months$6,\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$9[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[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 //! moment.js locale configuration\n\n var suffixes$2 = {\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 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$2[number] || suffixes$2[a] || suffixes$2[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 //! moment.js locale configuration\n\n function processRelativeTime$5(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 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$5,\n mm : '%d Minutten',\n h : processRelativeTime$5,\n hh : '%d Stonnen',\n d : processRelativeTime$5,\n dd : '%d Deeg',\n M : processRelativeTime$5,\n MM : '%d Méint',\n y : processRelativeTime$5,\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\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$6(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 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$6,\n m : translateSingular,\n mm : translate$6,\n h : translateSingular,\n hh : translate$6,\n d : translateSingular,\n dd : translate$6,\n M : translateSingular,\n MM : translate$6,\n y : translateSingular,\n yy : translate$6\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 //! moment.js locale configuration\n\n var units$1 = {\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$1(number, withoutSuffix, key) {\n return number + ' ' + format(units$1[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units$1[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n 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$1,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural$1,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural$1,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural$1,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural$1,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural$1\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 //! moment.js locale configuration\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 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n function translate$7(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 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$7,\n ss : translate$7,\n m : translate$7,\n mm : translate$7,\n h : translate$7,\n hh : translate$7,\n d : translate$7,\n dd : translate$7,\n M : translate$7,\n MM : translate$7,\n y : translate$7,\n yy : translate$7\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 //! moment.js locale configuration\n\n var symbolMap$b = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$a = {\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 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$a[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$b[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$c = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap$b = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n 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$b[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$d = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$c = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n 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$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[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 //! moment.js locale configuration\n\n var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$4 = [/^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$4 = /^(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 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$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\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$4,\n longMonthsParse : monthsParse$4,\n shortMonthsParse : monthsParse$4,\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 //! moment.js locale configuration\n\n var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$5 = [/^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$5 = /^(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 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$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\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$5,\n longMonthsParse : monthsParse$5,\n shortMonthsParse : monthsParse$5,\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$e = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap$d = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n 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$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[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 //! moment.js locale configuration\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$3(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate$8(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n 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$8,\n m : translate$8,\n mm : translate$8,\n h : translate$8,\n hh : translate$8,\n d : '1 dzień',\n dd : '%d dni',\n M : 'miesiąc',\n MM : translate$8,\n y : 'rok',\n yy : translate$8\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(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 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$2,\n m : 'un minut',\n mm : relativeTimeWithPlural$2,\n h : 'o oră',\n hh : relativeTimeWithPlural$2,\n d : 'o zi',\n dd : relativeTimeWithPlural$2,\n M : 'o lună',\n MM : relativeTimeWithPlural$2,\n y : 'un an',\n yy : relativeTimeWithPlural$2\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 //! moment.js locale configuration\n\n function plural$4(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$3(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$4(format[key], +number);\n }\n }\n var monthsParse$6 = [/^янв/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 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$6,\n longMonthsParse : monthsParse$6,\n shortMonthsParse : monthsParse$6,\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$3,\n m : relativeTimeWithPlural$3,\n mm : relativeTimeWithPlural$3,\n h : 'час',\n hh : relativeTimeWithPlural$3,\n d : 'день',\n dd : relativeTimeWithPlural$3,\n M : 'месяц',\n MM : relativeTimeWithPlural$3,\n y : 'год',\n yy : relativeTimeWithPlural$3\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 //! moment.js locale configuration\n\n var months$7 = [\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 moment.defineLocale('sd', {\n months : months$7,\n monthsShort : months$7,\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n /*jshint -W100*/\n 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 //! moment.js locale configuration\n\n var months$8 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort$6 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural$5(n) {\n return (n > 1) && (n < 5);\n }\n function translate$9(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$5(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$5(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$5(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$5(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$5(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$5(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n moment.defineLocale('sk', {\n months : months$8,\n monthsShort : monthsShort$6,\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$9,\n ss : translate$9,\n m : translate$9,\n mm : translate$9,\n h : translate$9,\n hh : translate$9,\n d : translate$9,\n dd : translate$9,\n M : translate$9,\n MM : translate$9,\n y : translate$9,\n yy : translate$9\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 //! moment.js locale configuration\n\n function processRelativeTime$6(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 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$6,\n ss : processRelativeTime$6,\n m : processRelativeTime$6,\n mm : processRelativeTime$6,\n h : processRelativeTime$6,\n hh : processRelativeTime$6,\n d : processRelativeTime$6,\n dd : processRelativeTime$6,\n M : processRelativeTime$6,\n MM : processRelativeTime$6,\n y : processRelativeTime$6,\n yy : processRelativeTime$6\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var translator$1 = {\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$1.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n 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$1.translate,\n m : translator$1.translate,\n mm : translator$1.translate,\n h : translator$1.translate,\n hh : translator$1.translate,\n d : 'дан',\n dd : translator$1.translate,\n M : 'месец',\n MM : translator$1.translate,\n y : 'годину',\n yy : translator$1.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 //! moment.js locale configuration\n\n var translator$2 = {\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$2.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n 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$2.translate,\n m : translator$2.translate,\n mm : translator$2.translate,\n h : translator$2.translate,\n hh : translator$2.translate,\n d : 'dan',\n dd : translator$2.translate,\n M : 'mesec',\n MM : translator$2.translate,\n y : 'godinu',\n yy : translator$2.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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var symbolMap$f = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap$e = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n 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$e[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$f[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n var suffixes$3 = {\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 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$3[number] || suffixes$3[a] || suffixes$3[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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\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$a(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 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$a,\n m : 'wa’ tup',\n mm : translate$a,\n h : 'wa’ rep',\n hh : translate$a,\n d : 'wa’ jaj',\n dd : translate$a,\n M : 'wa’ jar',\n MM : translate$a,\n y : 'wa’ DIS',\n yy : translate$a\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 var suffixes$4 = {\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 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$4[a] || suffixes$4[b] || suffixes$4[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 //! moment.js locale configuration\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 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$7,\n ss : processRelativeTime$7,\n m : processRelativeTime$7,\n mm : processRelativeTime$7,\n h : processRelativeTime$7,\n hh : processRelativeTime$7,\n d : processRelativeTime$7,\n dd : processRelativeTime$7,\n M : processRelativeTime$7,\n MM : processRelativeTime$7,\n y : processRelativeTime$7,\n yy : processRelativeTime$7\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$7(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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js language configuration\n\n 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 //! moment.js locale configuration\n\n function plural$6(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$4(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$6(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 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$4,\n m : relativeTimeWithPlural$4,\n mm : relativeTimeWithPlural$4,\n h : 'годину',\n hh : relativeTimeWithPlural$4,\n d : 'день',\n dd : relativeTimeWithPlural$4,\n M : 'місяць',\n MM : relativeTimeWithPlural$4,\n y : 'рік',\n yy : relativeTimeWithPlural$4\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 //! moment.js locale configuration\n\n var months$9 = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days$1 = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n moment.defineLocale('ur', {\n months : months$9,\n monthsShort : months$9,\n weekdays : days$1,\n weekdaysShort : days$1,\n weekdaysMin : days$1,\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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 //! moment.js locale configuration\n\n 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 moment.locale('en');\n return moment;\n\n})(moment);","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {Part} from './part.js';\n\nconst directives = new WeakMap();\n\n// tslint:disable-next-line:no-any\nexport type DirectiveFactory = (...args: any[]) => object;\n\nexport type DirectiveFn = (part: Part) => void;\n\n/**\n * Brands a function as a directive factory function so that lit-html will call\n * the function during template rendering, rather than passing as a value.\n *\n * A _directive_ is a function that takes a Part as an argument. It has the\n * signature: `(part: Part) => void`.\n *\n * A directive _factory_ is a function that takes arguments for data and\n * configuration and returns a directive. Users of directive usually refer to\n * the directive factory as the directive. For example, \"The repeat directive\".\n *\n * Usually a template author will invoke a directive factory in their template\n * with relevant arguments, which will then return a directive function.\n *\n * Here's an example of using the `repeat()` directive factory that takes an\n * array and a function to render an item:\n *\n * ```js\n * html`
    <${repeat(items, (item) => html`
  • ${item}
  • `)}
`\n * ```\n *\n * When `repeat` is invoked, it returns a directive function that closes over\n * `items` and the template function. When the outer template is rendered, the\n * return directive function is called with the Part for the expression.\n * `repeat` then performs it's custom logic to render multiple items.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object.\n *\n * @example\n *\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n * if (part.value !== v) {\n * part.setValue(v)\n * }\n * });\n */\nexport const directive = (f: F): F =>\n ((...args: unknown[]) => {\n const d = f(...args);\n directives.set(d, true);\n return d;\n }) as F;\n\nexport const isDirective = (o: unknown): o is DirectiveFn => {\n return typeof o === 'function' && directives.has(o);\n};\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\ninterface MaybePolyfilledCe extends CustomElementRegistry {\n readonly polyfillWrapFlushCallback?: object;\n}\n\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n (window.customElements as MaybePolyfilledCe).polyfillWrapFlushCallback !==\n undefined;\n\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes =\n (container: Node,\n start: Node|null,\n end: Node|null = null,\n before: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.insertBefore(start!, before);\n start = n;\n }\n };\n\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes =\n (container: Node, start: Node|null, end: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.removeChild(start!);\n start = n;\n }\n };\n","/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\n/**\n * The Part interface represents a dynamic part of a template instance rendered\n * by lit-html.\n */\nexport interface Part {\n readonly value: unknown;\n\n /**\n * Sets the current part value, but does not write it to the DOM.\n * @param value The value that will be committed.\n */\n setValue(value: unknown): void;\n\n /**\n * Commits the current part value, causing it to actually be written to the\n * DOM.\n *\n * Directives are run at the start of `commit`, so that if they call\n * `part.setValue(...)` synchronously that value will be used in the current\n * commit, and there's no need to call `part.commit()` within the directive.\n * If directives set a part value asynchronously, then they must call\n * `part.commit()` manually.\n */\n commit(): void;\n}\n\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {TemplateResult} from './template-result.js';\n\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = ``;\n\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n readonly parts: TemplatePart[] = [];\n readonly element: HTMLTemplateElement;\n\n constructor(result: TemplateResult, element: HTMLTemplateElement) {\n this.element = element;\n\n const nodesToRemove: Node[] = [];\n const stack: Node[] = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(\n element.content,\n 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */,\n null,\n false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const {strings, values: {length}} = result;\n while (partIndex < length) {\n const node = walker.nextNode() as Element | Comment | Text | null;\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop()!;\n continue;\n }\n index++;\n\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if ((node as Element).hasAttributes()) {\n const attributes = (node as Element).attributes;\n const {length} = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)![2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName =\n name.toLowerCase() + boundAttributeSuffix;\n const attributeValue =\n (node as Element).getAttribute(attributeLookupName)!;\n (node as Element).removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({type: 'attribute', index, name, strings: statics});\n partIndex += statics.length - 1;\n }\n }\n if ((node as Element).tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = (node as HTMLTemplateElement).content;\n }\n } else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = (node as Text).data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode!;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert: Node;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n } else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({type: 'node', index: ++index});\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n } else {\n (node as Text).data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n } else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if ((node as Comment).data === marker) {\n const parent = node.parentNode!;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({type: 'node', index});\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n (node as Comment).data = '';\n } else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n } else {\n let i = -1;\n while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({type: 'node', index: -1});\n partIndex++;\n }\n }\n }\n }\n\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode!.removeChild(n);\n }\n }\n}\n\nconst endsWith = (str: string, suffix: string): boolean => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\n\n/**\n * A placeholder for a dynamic expression in an HTML template.\n *\n * There are two built-in part types: AttributePart and NodePart. NodeParts\n * always represent a single dynamic expression, while AttributeParts may\n * represent as many expressions are contained in the attribute.\n *\n * A Template's parts are mutable, so parts can be replaced or modified\n * (possibly to implement different template semantics). The contract is that\n * parts can only be replaced, not removed, added or reordered, and parts must\n * always consume the correct number of values in their `update()` method.\n *\n * TODO(justinfagnani): That requirement is a little fragile. A\n * TemplateInstance could instead be more careful about which values it gives\n * to Part.update().\n */\nexport type TemplatePart = {\n readonly type: 'node',\n index: number\n}|{readonly type: 'attribute', index: number, readonly name: string, readonly strings: ReadonlyArray};\n\nexport const isTemplatePartActive = (part: TemplatePart) => part.index !== -1;\n\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex =\n /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {isCEPolyfill} from './dom.js';\nimport {Part} from './part.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateProcessor} from './template-processor.js';\nimport {isTemplatePartActive, Template, TemplatePart} from './template.js';\n\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n private readonly __parts: Array = [];\n readonly processor: TemplateProcessor;\n readonly options: RenderOptions;\n readonly template: Template;\n\n constructor(\n template: Template, processor: TemplateProcessor,\n options: RenderOptions) {\n this.template = template;\n this.processor = processor;\n this.options = options;\n }\n\n update(values: ReadonlyArray) {\n let i = 0;\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.setValue(values[i]);\n }\n i++;\n }\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.commit();\n }\n }\n }\n\n _clone(): DocumentFragment {\n // There are a number of steps in the lifecycle of a template instance's\n // DOM fragment:\n // 1. Clone - create the instance fragment\n // 2. Adopt - adopt into the main document\n // 3. Process - find part markers and create parts\n // 4. Upgrade - upgrade custom elements\n // 5. Update - set node, attribute, property, etc., values\n // 6. Connect - connect to the document. Optional and outside of this\n // method.\n //\n // We have a few constraints on the ordering of these steps:\n // * We need to upgrade before updating, so that property values will pass\n // through any property setters.\n // * We would like to process before upgrading so that we're sure that the\n // cloned fragment is inert and not disturbed by self-modifying DOM.\n // * We want custom elements to upgrade even in disconnected fragments.\n //\n // Given these constraints, with full custom elements support we would\n // prefer the order: Clone, Process, Adopt, Upgrade, Update, Connect\n //\n // But Safari dooes not implement CustomElementRegistry#upgrade, so we\n // can not implement that order and still have upgrade-before-update and\n // upgrade disconnected fragments. So we instead sacrifice the\n // process-before-upgrade constraint, since in Custom Elements v1 elements\n // must not modify their light DOM in the constructor. We still have issues\n // when co-existing with CEv0 elements like Polymer 1, and with polyfills\n // that don't strictly adhere to the no-modification rule because shadow\n // DOM, which may be created in the constructor, is emulated by being placed\n // in the light DOM.\n //\n // The resulting order is on native is: Clone, Adopt, Upgrade, Process,\n // Update, Connect. document.importNode() performs Clone, Adopt, and Upgrade\n // in one step.\n //\n // The Custom Elements v1 polyfill supports upgrade(), so the order when\n // polyfilled is the more ideal: Clone, Process, Adopt, Upgrade, Update,\n // Connect.\n\n const fragment = isCEPolyfill ?\n this.template.element.content.cloneNode(true) as DocumentFragment :\n document.importNode(this.template.element.content, true);\n\n const stack: Node[] = [];\n const parts = this.template.parts;\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(\n fragment,\n 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */,\n null,\n false);\n let partIndex = 0;\n let nodeIndex = 0;\n let part: TemplatePart;\n let node = walker.nextNode();\n // Loop through all the nodes and parts of a template\n while (partIndex < parts.length) {\n part = parts[partIndex];\n if (!isTemplatePartActive(part)) {\n this.__parts.push(undefined);\n partIndex++;\n continue;\n }\n\n // Progress the tree walker until we find our next part's node.\n // Note that multiple parts may share the same node (attribute parts\n // on a single element), so this loop may not run at all.\n while (nodeIndex < part.index) {\n nodeIndex++;\n if (node!.nodeName === 'TEMPLATE') {\n stack.push(node!);\n walker.currentNode = (node as HTMLTemplateElement).content;\n }\n if ((node = walker.nextNode()) === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop()!;\n node = walker.nextNode();\n }\n }\n\n // We've arrived at our part's node.\n if (part.type === 'node') {\n const part = this.processor.handleTextExpression(this.options);\n part.insertAfterNode(node!.previousSibling!);\n this.__parts.push(part);\n } else {\n this.__parts.push(...this.processor.handleAttributeExpressions(\n node as Element, part.name, part.strings, this.options));\n }\n partIndex++;\n }\n\n if (isCEPolyfill) {\n document.adoptNode(fragment);\n customElements.upgrade(fragment);\n }\n return fragment;\n }\n}\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {reparentNodes} from './dom.js';\nimport {TemplateProcessor} from './template-processor.js';\nimport {boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker} from './template.js';\n\nconst commentMarker = ` ${marker} `;\n\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n readonly strings: TemplateStringsArray;\n readonly values: ReadonlyArray;\n readonly type: string;\n readonly processor: TemplateProcessor;\n\n constructor(\n strings: TemplateStringsArray, values: ReadonlyArray,\n type: string, processor: TemplateProcessor) {\n this.strings = strings;\n this.values = values;\n this.type = type;\n this.processor = processor;\n }\n\n /**\n * Returns a string of HTML used to create a `