PageSourceSearch

https://www.renfrewshiregolfunion.co.uk/js/moment.js

js renfrewshiregolfunion.co.uk collected 2026-09-27 15:21:29 UTC 622,223 bytes, 18,246 lines download raw bytes

vendor: 5,635 bytes, lines 1-208
1//! moment.js
2//! version : 2.29.4
3//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
4//! license : MIT
5//! momentjs.com
6//! This is the moment-with-locales.js file
7
8;(function (global, factory) {
9    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
10    typeof define === 'function' && define.amd ? define(factory) :
11    global.moment = factory()
12}(this, (function () { 'use strict';
13
14    var hookCallback;
15
16    function hooks() {
17        return hookCallback.apply(null, arguments);
18    }
19
20    // This is done to register the method called with moment()
21    // without creating circular dependencies.
22    function setHookCallback(callback) {
23        hookCallback = callback;
24    }
25
26    function isArray(input) {
27        return (
28            input instanceof Array ||
29            Object.prototype.toString.call(input) === '[object Array]'
30        );
31    }
32
33    function isObject(input) {
34        // IE8 will treat undefined and null as object if it wasn't for
35        // input != null
36        return (
37            input != null &&
38            Object.prototype.toString.call(input) === '[object Object]'
39        );
40    }
41
42    function hasOwnProp(a, b) {
43        return Object.prototype.hasOwnProperty.call(a, b);
44    }
45
46    function isObjectEmpty(obj) {
47        if (Object.getOwnPropertyNames) {
48            return Object.getOwnPropertyNames(obj).length === 0;
49        } else {
50            var k;
51            for (k in obj) {
52                if (hasOwnProp(obj, k)) {
53                    return false;
54                }
55            }
56            return true;
57        }
58    }
59
60    function isUndefined(input) {
61        return input === void 0;
62    }
63
64    function isNumber(input) {
65        return (
66            typeof input === 'number' ||
67            Object.prototype.toString.call(input) === '[object Number]'
68        );
69    }
70
71    function isDate(input) {
72        return (
73            input instanceof Date ||
74            Object.prototype.toString.call(input) === '[object Date]'
75        );
76    }
77
78    function map(arr, fn) {
79        var res = [],
80            i,
81            arrLen = arr.length;
82        for (i = 0; i < arrLen; ++i) {
83            res.push(fn(arr[i], i));
84        }
85        return res;
86    }
87
88    function extend(a, b) {
89        for (var i in b) {
90            if (hasOwnProp(b, i)) {
91                a[i] = b[i];
92            }
93        }
94
95        if (hasOwnProp(b, 'toString')) {
96            a.toString = b.toString;
97        }
98
99        if (hasOwnProp(b, 'valueOf')) {
100            a.valueOf = b.valueOf;
101        }
102
103        return a;
104    }
105
106    function createUTC(input, format, locale, strict) {
107        return createLocalOrUTC(input, format, locale, strict, true).utc();
108    }
109
110    function defaultParsingFlags() {
111        // We need to deep clone this object.
112        return {
113            empty: false,
114            unusedTokens: [],
115            unusedInput: [],
116            overflow: -2,
117            charsLeftOver: 0,
118            nullInput: false,
119            invalidEra: null,
120            invalidMonth: null,
121            invalidFormat: false,
122            userInvalidated: false,
123            iso: false,
124            parsedDateParts: [],
125            era: null,
126            meridiem: null,
127            rfc2822: false,
128            weekdayMismatch: false,
129        };
130    }
131
132    function getParsingFlags(m) {
133        if (m._pf == null) {
134            m._pf = defaultParsingFlags();
135        }
136        return m._pf;
137    }
138
139    var some;
140    if (Array.prototype.some) {
141        some = Array.prototype.some;
142    } else {
143        some = function (fun) {
144            var t = Object(this),
145                len = t.length >>> 0,
146                i;
147
148            for (i = 0; i < len; i++) {
149                if (i in t && fun.call(this, t[i], i, t)) {
150                    return true;
151                }
152            }
153
154            return false;
155        };
156    }
157
158    function isValid(m) {
159        if (m._isValid == null) {
160            var flags = getParsingFlags(m),
161                parsedParts = some.call(flags.parsedDateParts, function (i) {
162                    return i != null;
163                }),
164                isNowValid =
165                    !isNaN(m._d.getTime()) &&
166                    flags.overflow < 0 &&
167                    !flags.empty &&
168                    !flags.invalidEra &&
169                    !flags.invalidMonth &&
170                    !flags.invalidWeekday &&
171                    !flags.weekdayMismatch &&
172                    !flags.nullInput &&
173                    !flags.invalidFormat &&
174                    !flags.userInvalidated &&
175                    (!flags.meridiem || (flags.meridiem && parsedParts));
176
177            if (m._strict) {
178                isNowValid =
179                    isNowValid &&
180                    flags.charsLeftOver === 0 &&
181                    flags.unusedTokens.length === 0 &&
182                    flags.bigHour === undefined;
183            }
184
185            if (Object.isFrozen == null || !Object.isFrozen(m)) {
186                m._isValid = isNowValid;
187            } else {
188                return isNowValid;
189            }
190        }
191        return m._isValid;
192    }
193
194    function createInvalid(flags) {
195        var m = createUTC(NaN);
196        if (flags != null) {
197            extend(getParsingFlags(m), flags);
198        } else {
199            getParsingFlags(m).userInvalidated = true;
200        }
201
202        return m;
203    }
204
205    // Plugins that add properties should also add the key here (null value),
206    // so we can properly clone ourselves.
207    var momentProperties = (hooks.momentProperties = []),
208        updateInProgress = false;
vendor: 7,422 bytes, lines 209-456
209
210    function copyConfig(to, from) {
211        var i,
212            prop,
213            val,
214            momentPropertiesLen = momentProperties.length;
215
216        if (!isUndefined(from._isAMomentObject)) {
217            to._isAMomentObject = from._isAMomentObject;
218        }
219        if (!isUndefined(from._i)) {
220            to._i = from._i;
221        }
222        if (!isUndefined(from._f)) {
223            to._f = from._f;
224        }
225        if (!isUndefined(from._l)) {
226            to._l = from._l;
227        }
228        if (!isUndefined(from._strict)) {
229            to._strict = from._strict;
230        }
231        if (!isUndefined(from._tzm)) {
232            to._tzm = from._tzm;
233        }
234        if (!isUndefined(from._isUTC)) {
235            to._isUTC = from._isUTC;
236        }
237        if (!isUndefined(from._offset)) {
238            to._offset = from._offset;
239        }
240        if (!isUndefined(from._pf)) {
241            to._pf = getParsingFlags(from);
242        }
243        if (!isUndefined(from._locale)) {
244            to._locale = from._locale;
245        }
246
247        if (momentPropertiesLen > 0) {
248            for (i = 0; i < momentPropertiesLen; i++) {
249                prop = momentProperties[i];
250                val = from[prop];
251                if (!isUndefined(val)) {
252                    to[prop] = val;
253                }
254            }
255        }
256
257        return to;
258    }
259
260    // Moment prototype object
261    function Moment(config) {
262        copyConfig(this, config);
263        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
264        if (!this.isValid()) {
265            this._d = new Date(NaN);
266        }
267        // Prevent infinite loop in case updateOffset creates new moment
268        // objects.
269        if (updateInProgress === false) {
270            updateInProgress = true;
271            hooks.updateOffset(this);
272            updateInProgress = false;
273        }
274    }
275
276    function isMoment(obj) {
277        return (
278            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
279        );
280    }
281
282    function warn(msg) {
283        if (
284            hooks.suppressDeprecationWarnings === false &&
285            typeof console !== 'undefined' &&
286            console.warn
287        ) {
288            console.warn('Deprecation warning: ' + msg);
289        }
290    }
291
292    function deprecate(msg, fn) {
293        var firstTime = true;
294
295        return extend(function () {
296            if (hooks.deprecationHandler != null) {
297                hooks.deprecationHandler(null, msg);
298            }
299            if (firstTime) {
300                var args = [],
301                    arg,
302                    i,
303                    key,
304                    argLen = arguments.length;
305                for (i = 0; i < argLen; i++) {
306                    arg = '';
307                    if (typeof arguments[i] === 'object') {
308                        arg += '\n[' + i + '] ';
309                        for (key in arguments[0]) {
310                            if (hasOwnProp(arguments[0], key)) {
311                                arg += key + ': ' + arguments[0][key] + ', ';
312                            }
313                        }
314                        arg = arg.slice(0, -2); // Remove trailing comma and space
315                    } else {
316                        arg = arguments[i];
317                    }
318                    args.push(arg);
319                }
320                warn(
321                    msg +
322                        '\nArguments: ' +
323                        Array.prototype.slice.call(args).join('') +
324                        '\n' +
325                        new Error().stack
326                );
327                firstTime = false;
328            }
329            return fn.apply(this, arguments);
330        }, fn);
331    }
332
333    var deprecations = {};
334
335    function deprecateSimple(name, msg) {
336        if (hooks.deprecationHandler != null) {
337            hooks.deprecationHandler(name, msg);
338        }
339        if (!deprecations[name]) {
340            warn(msg);
341            deprecations[name] = true;
342        }
343    }
344
345    hooks.suppressDeprecationWarnings = false;
346    hooks.deprecationHandler = null;
347
348    function isFunction(input) {
349        return (
350            (typeof Function !== 'undefined' && input instanceof Function) ||
351            Object.prototype.toString.call(input) === '[object Function]'
352        );
353    }
354
355    function set(config) {
356        var prop, i;
357        for (i in config) {
358            if (hasOwnProp(config, i)) {
359                prop = config[i];
360                if (isFunction(prop)) {
361                    this[i] = prop;
362                } else {
363                    this['_' + i] = prop;
364                }
365            }
366        }
367        this._config = config;
368        // Lenient ordinal parsing accepts just a number in addition to
369        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
370        // TODO: Remove "ordinalParse" fallback in next major release.
371        this._dayOfMonthOrdinalParseLenient = new RegExp(
372            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
373                '|' +
374                /\d{1,2}/.source
375        );
376    }
377
378    function mergeConfigs(parentConfig, childConfig) {
379        var res = extend({}, parentConfig),
380            prop;
381        for (prop in childConfig) {
382            if (hasOwnProp(childConfig, prop)) {
383                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
384                    res[prop] = {};
385                    extend(res[prop], parentConfig[prop]);
386                    extend(res[prop], childConfig[prop]);
387                } else if (childConfig[prop] != null) {
388                    res[prop] = childConfig[prop];
389                } else {
390                    delete res[prop];
391                }
392            }
393        }
394        for (prop in parentConfig) {
395            if (
396                hasOwnProp(parentConfig, prop) &&
397                !hasOwnProp(childConfig, prop) &&
398                isObject(parentConfig[prop])
399            ) {
400                // make sure changes to properties don't modify parent config
401                res[prop] = extend({}, res[prop]);
402            }
403        }
404        return res;
405    }
406
407    function Locale(config) {
408        if (config != null) {
409            this.set(config);
410        }
411    }
412
413    var keys;
414
415    if (Object.keys) {
416        keys = Object.keys;
417    } else {
418        keys = function (obj) {
419            var i,
420                res = [];
421            for (i in obj) {
422                if (hasOwnProp(obj, i)) {
423                    res.push(i);
424                }
425            }
426            return res;
427        };
428    }
429
430    var defaultCalendar = {
431        sameDay: '[Today at] LT',
432        nextDay: '[Tomorrow at] LT',
433        nextWeek: 'dddd [at] LT',
434        lastDay: '[Yesterday at] LT',
435        lastWeek: '[Last] dddd [at] LT',
436        sameElse: 'L',
437    };
438
439    function calendar(key, mom, now) {
440        var output = this._calendar[key] || this._calendar['sameElse'];
441        return isFunction(output) ? output.call(mom, now) : output;
442    }
443
444    function zeroFill(number, targetLength, forceSign) {
445        var absNumber = '' + Math.abs(number),
446            zerosToFill = targetLength - absNumber.length,
447            sign = number >= 0;
448        return (
449            (sign ? (forceSign ? '+' : '') : '-') +
450            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
451            absNumber
452        );
453    }
454
455    var formattingTokens =
456           
vendor: 8,563 bytes, lines 456-760
456 /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
457        localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
458        formatFunctions = {},
459        formatTokenFunctions = {};
460
461    // token:    'M'
462    // padded:   ['MM', 2]
463    // ordinal:  'Mo'
464    // callback: function () { this.month() + 1 }
465    function addFormatToken(token, padded, ordinal, callback) {
466        var func = callback;
467        if (typeof callback === 'string') {
468            func = function () {
469                return this[callback]();
470            };
471        }
472        if (token) {
473            formatTokenFunctions[token] = func;
474        }
475        if (padded) {
476            formatTokenFunctions[padded[0]] = function () {
477                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
478            };
479        }
480        if (ordinal) {
481            formatTokenFunctions[ordinal] = function () {
482                return this.localeData().ordinal(
483                    func.apply(this, arguments),
484                    token
485                );
486            };
487        }
488    }
489
490    function removeFormattingTokens(input) {
491        if (input.match(/\[[\s\S]/)) {
492            return input.replace(/^\[|\]$/g, '');
493        }
494        return input.replace(/\\/g, '');
495    }
496
497    function makeFormatFunction(format) {
498        var array = format.match(formattingTokens),
499            i,
500            length;
501
502        for (i = 0, length = array.length; i < length; i++) {
503            if (formatTokenFunctions[array[i]]) {
504                array[i] = formatTokenFunctions[array[i]];
505            } else {
506                array[i] = removeFormattingTokens(array[i]);
507            }
508        }
509
510        return function (mom) {
511            var output = '',
512                i;
513            for (i = 0; i < length; i++) {
514                output += isFunction(array[i])
515                    ? array[i].call(mom, format)
516                    : array[i];
517            }
518            return output;
519        };
520    }
521
522    // format date using native date object
523    function formatMoment(m, format) {
524        if (!m.isValid()) {
525            return m.localeData().invalidDate();
526        }
527
528        format = expandFormat(format, m.localeData());
529        formatFunctions[format] =
530            formatFunctions[format] || makeFormatFunction(format);
531
532        return formatFunctions[format](m);
533    }
534
535    function expandFormat(format, locale) {
536        var i = 5;
537
538        function replaceLongDateFormatTokens(input) {
539            return locale.longDateFormat(input) || input;
540        }
541
542        localFormattingTokens.lastIndex = 0;
543        while (i >= 0 && localFormattingTokens.test(format)) {
544            format = format.replace(
545                localFormattingTokens,
546                replaceLongDateFormatTokens
547            );
548            localFormattingTokens.lastIndex = 0;
549            i -= 1;
550        }
551
552        return format;
553    }
554
555    var defaultLongDateFormat = {
556        LTS: 'h:mm:ss A',
557        LT: 'h:mm A',
558        L: 'MM/DD/YYYY',
559        LL: 'MMMM D, YYYY',
560        LLL: 'MMMM D, YYYY h:mm A',
561        LLLL: 'dddd, MMMM D, YYYY h:mm A',
562    };
563
564    function longDateFormat(key) {
565        var format = this._longDateFormat[key],
566            formatUpper = this._longDateFormat[key.toUpperCase()];
567
568        if (format || !formatUpper) {
569            return format;
570        }
571
572        this._longDateFormat[key] = formatUpper
573            .match(formattingTokens)
574            .map(function (tok) {
575                if (
576                    tok === 'MMMM' ||
577                    tok === 'MM' ||
578                    tok === 'DD' ||
579                    tok === 'dddd'
580                ) {
581                    return tok.slice(1);
582                }
583                return tok;
584            })
585            .join('');
586
587        return this._longDateFormat[key];
588    }
589
590    var defaultInvalidDate = 'Invalid date';
591
592    function invalidDate() {
593        return this._invalidDate;
594    }
595
596    var defaultOrdinal = '%d',
597        defaultDayOfMonthOrdinalParse = /\d{1,2}/;
598
599    function ordinal(number) {
600        return this._ordinal.replace('%d', number);
601    }
602
603    var defaultRelativeTime = {
604        future: 'in %s',
605        past: '%s ago',
606        s: 'a few seconds',
607        ss: '%d seconds',
608        m: 'a minute',
609        mm: '%d minutes',
610        h: 'an hour',
611        hh: '%d hours',
612        d: 'a day',
613        dd: '%d days',
614        w: 'a week',
615        ww: '%d weeks',
616        M: 'a month',
617        MM: '%d months',
618        y: 'a year',
619        yy: '%d years',
620    };
621
622    function relativeTime(number, withoutSuffix, string, isFuture) {
623        var output = this._relativeTime[string];
624        return isFunction(output)
625            ? output(number, withoutSuffix, string, isFuture)
626            : output.replace(/%d/i, number);
627    }
628
629    function pastFuture(diff, output) {
630        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
631        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
632    }
633
634    var aliases = {};
635
636    function addUnitAlias(unit, shorthand) {
637        var lowerCase = unit.toLowerCase();
638        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
639    }
640
641    function normalizeUnits(units) {
642        return typeof units === 'string'
643            ? aliases[units] || aliases[units.toLowerCase()]
644            : undefined;
645    }
646
647    function normalizeObjectUnits(inputObject) {
648        var normalizedInput = {},
649            normalizedProp,
650            prop;
651
652        for (prop in inputObject) {
653            if (hasOwnProp(inputObject, prop)) {
654                normalizedProp = normalizeUnits(prop);
655                if (normalizedProp) {
656                    normalizedInput[normalizedProp] = inputObject[prop];
657                }
658            }
659        }
660
661        return normalizedInput;
662    }
663
664    var priorities = {};
665
666    function addUnitPriority(unit, priority) {
667        priorities[unit] = priority;
668    }
669
670    function getPrioritizedUnits(unitsObj) {
671        var units = [],
672            u;
673        for (u in unitsObj) {
674            if (hasOwnProp(unitsObj, u)) {
675                units.push({ unit: u, priority: priorities[u] });
676            }
677        }
678        units.sort(function (a, b) {
679            return a.priority - b.priority;
680        });
681        return units;
682    }
683
684    function isLeapYear(year) {
685        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
686    }
687
688    function absFloor(number) {
689        if (number < 0) {
690            // -0 -> 0
691            return Math.ceil(number) || 0;
692        } else {
693            return Math.floor(number);
694        }
695    }
696
697    function toInt(argumentForCoercion) {
698        var coercedNumber = +argumentForCoercion,
699            value = 0;
700
701        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
702            value = absFloor(coercedNumber);
703        }
704
705        return value;
706    }
707
708    function makeGetSet(unit, keepTime) {
709        return function (value) {
710            if (value != null) {
711                set$1(this, unit, value);
712                hooks.updateOffset(this, keepTime);
713                return this;
714            } else {
715                return get(this, unit);
716            }
717        };
718    }
719
720    function get(mom, unit) {
721        return mom.isValid()
722            ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()
723            : NaN;
724    }
725
726    function set$1(mom, unit, value) {
727        if (mom.isValid() && !isNaN(value)) {
728            if (
729                unit === 'FullYear' &&
730                isLeapYear(mom.year()) &&
731                mom.month() === 1 &&
732                mom.date() === 29
733            ) {
734                value = toInt(value);
735                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](
736                    value,
737                    mom.month(),
738                    daysInMonth(value, mom.month())
739                );
740            } else {
741                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
742            }
743        }
744    }
745
746    // MOMENTS
747
748    function stringGet(units) {
749        units = normalizeUnits(units);
750        if (isFunction(this[units])) {
751            return this[units]();
752        }
753        return this;
754    }
755
756    function stringSet(units, value) {
757        if (typeof units === 'object') {
758            units = normalizeObjectUnits(units);
759            var prioritized = getPrioritizedUnits(units),
760                i
vendor: 5,547 bytes, lines 760-946
760,
761                prioritizedLen = prioritized.length;
762            for (i = 0; i < prioritizedLen; i++) {
763                this[prioritized[i].unit](units[prioritized[i].unit]);
764            }
765        } else {
766            units = normalizeUnits(units);
767            if (isFunction(this[units])) {
768                return this[units](value);
769            }
770        }
771        return this;
772    }
773
774    var match1 = /\d/, //       0 - 9
775        match2 = /\d\d/, //      00 - 99
776        match3 = /\d{3}/, //     000 - 999
777        match4 = /\d{4}/, //    0000 - 9999
778        match6 = /[+-]?\d{6}/, // -999999 - 999999
779        match1to2 = /\d\d?/, //       0 - 99
780        match3to4 = /\d\d\d\d?/, //     999 - 9999
781        match5to6 = /\d\d\d\d\d\d?/, //   99999 - 999999
782        match1to3 = /\d{1,3}/, //       0 - 999
783        match1to4 = /\d{1,4}/, //       0 - 9999
784        match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
785        matchUnsigned = /\d+/, //       0 - inf
786        matchSigned = /[+-]?\d+/, //    -inf - inf
787        matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
788        matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
789        matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
790        // any word (or two) characters or numbers including two/three word month in arabic.
791        // includes scottish gaelic two word and hyphenated months
792        matchWord =
793            /[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,
794        regexes;
795
796    regexes = {};
797
798    function addRegexToken(token, regex, strictRegex) {
799        regexes[token] = isFunction(regex)
800            ? regex
801            : function (isStrict, localeData) {
802                  return isStrict && strictRegex ? strictRegex : regex;
803              };
804    }
805
806    function getParseRegexForToken(token, config) {
807        if (!hasOwnProp(regexes, token)) {
808            return new RegExp(unescapeFormat(token));
809        }
810
811        return regexes[token](config._strict, config._locale);
812    }
813
814    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
815    function unescapeFormat(s) {
816        return regexEscape(
817            s
818                .replace('\\', '')
819                .replace(
820                    /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
821                    function (matched, p1, p2, p3, p4) {
822                        return p1 || p2 || p3 || p4;
823                    }
824                )
825        );
826    }
827
828    function regexEscape(s) {
829        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
830    }
831
832    var tokens = {};
833
834    function addParseToken(token, callback) {
835        var i,
836            func = callback,
837            tokenLen;
838        if (typeof token === 'string') {
839            token = [token];
840        }
841        if (isNumber(callback)) {
842            func = function (input, array) {
843                array[callback] = toInt(input);
844            };
845        }
846        tokenLen = token.length;
847        for (i = 0; i < tokenLen; i++) {
848            tokens[token[i]] = func;
849        }
850    }
851
852    function addWeekParseToken(token, callback) {
853        addParseToken(token, function (input, array, config, token) {
854            config._w = config._w || {};
855            callback(input, config._w, config, token);
856        });
857    }
858
859    function addTimeToArrayFromToken(token, input, config) {
860        if (input != null && hasOwnProp(tokens, token)) {
861            tokens[token](input, config._a, config, token);
862        }
863    }
864
865    var YEAR = 0,
866        MONTH = 1,
867        DATE = 2,
868        HOUR = 3,
869        MINUTE = 4,
870        SECOND = 5,
871        MILLISECOND = 6,
872        WEEK = 7,
873        WEEKDAY = 8;
874
875    function mod(n, x) {
876        return ((n % x) + x) % x;
877    }
878
879    var indexOf;
880
881    if (Array.prototype.indexOf) {
882        indexOf = Array.prototype.indexOf;
883    } else {
884        indexOf = function (o) {
885            // I know
886            var i;
887            for (i = 0; i < this.length; ++i) {
888                if (this[i] === o) {
889                    return i;
890                }
891            }
892            return -1;
893        };
894    }
895
896    function daysInMonth(year, month) {
897        if (isNaN(year) || isNaN(month)) {
898            return NaN;
899        }
900        var modMonth = mod(month, 12);
901        year += (month - modMonth) / 12;
902        return modMonth === 1
903            ? isLeapYear(year)
904                ? 29
905                : 28
906            : 31 - ((modMonth % 7) % 2);
907    }
908
909    // FORMATTING
910
911    addFormatToken('M', ['MM', 2], 'Mo', function () {
912        return this.month() + 1;
913    });
914
915    addFormatToken('MMM', 0, 0, function (format) {
916        return this.localeData().monthsShort(this, format);
917    });
918
919    addFormatToken('MMMM', 0, 0, function (format) {
920        return this.localeData().months(this, format);
921    });
922
923    // ALIASES
924
925    addUnitAlias('month', 'M');
926
927    // PRIORITY
928
929    addUnitPriority('month', 8);
930
931    // PARSING
932
933    addRegexToken('M', match1to2);
934    addRegexToken('MM', match1to2, match2);
935    addRegexToken('MMM', function (isStrict, locale) {
936        return locale.monthsShortRegex(isStrict);
937    });
938    addRegexToken('MMMM', function (isStrict, locale) {
939        return locale.monthsRegex(isStrict);
940    });
941
942    addParseToken(['M', 'MM'], function (input, array) {
943        array[MONTH] = toInt(input) - 1;
944    });
945
946    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
947        var month = config._locale.monthsParse(input, token, config._strict);
948        // if we didn't find a month name, mark the date as invalid.
949        if (month != null) {
950            array[MONTH] = month;
951        } else {
952            getParsingFlags(config).invalidMonth = input;
953        }
954    });
955
956    // LOCALES
957
958    var defaultLocaleMonths =
959            'January_February_March_April_May_June_July_August_September_October_November_December'.split(
960                '_'
961            ),
962        defaultLocaleMonthsShort =
963            'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'
vendor: 13,773 bytes, lines 963-1405
963),
964        MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
965        defaultMonthsShortRegex = matchWord,
966        defaultMonthsRegex = matchWord;
967
968    function localeMonths(m, format) {
969        if (!m) {
970            return isArray(this._months)
971                ? this._months
972                : this._months['standalone'];
973        }
974        return isArray(this._months)
975            ? this._months[m.month()]
976            : this._months[
977                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
978                      ? 'format'
979                      : 'standalone'
980              ][m.month()];
981    }
982
983    function localeMonthsShort(m, format) {
984        if (!m) {
985            return isArray(this._monthsShort)
986                ? this._monthsShort
987                : this._monthsShort['standalone'];
988        }
989        return isArray(this._monthsShort)
990            ? this._monthsShort[m.month()]
991            : this._monthsShort[
992                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
993              ][m.month()];
994    }
995
996    function handleStrictParse(monthName, format, strict) {
997        var i,
998            ii,
999            mom,
1000            llc = monthName.toLocaleLowerCase();
1001        if (!this._monthsParse) {
1002            // this is not used
1003            this._monthsParse = [];
1004            this._longMonthsParse = [];
1005            this._shortMonthsParse = [];
1006            for (i = 0; i < 12; ++i) {
1007                mom = createUTC([2000, i]);
1008                this._shortMonthsParse[i] = this.monthsShort(
1009                    mom,
1010                    ''
1011                ).toLocaleLowerCase();
1012                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
1013            }
1014        }
1015
1016        if (strict) {
1017            if (format === 'MMM') {
1018                ii = indexOf.call(this._shortMonthsParse, llc);
1019                return ii !== -1 ? ii : null;
1020            } else {
1021                ii = indexOf.call(this._longMonthsParse, llc);
1022                return ii !== -1 ? ii : null;
1023            }
1024        } else {
1025            if (format === 'MMM') {
1026                ii = indexOf.call(this._shortMonthsParse, llc);
1027                if (ii !== -1) {
1028                    return ii;
1029                }
1030                ii = indexOf.call(this._longMonthsParse, llc);
1031                return ii !== -1 ? ii : null;
1032            } else {
1033                ii = indexOf.call(this._longMonthsParse, llc);
1034                if (ii !== -1) {
1035                    return ii;
1036                }
1037                ii = indexOf.call(this._shortMonthsParse, llc);
1038                return ii !== -1 ? ii : null;
1039            }
1040        }
1041    }
1042
1043    function localeMonthsParse(monthName, format, strict) {
1044        var i, mom, regex;
1045
1046        if (this._monthsParseExact) {
1047            return handleStrictParse.call(this, monthName, format, strict);
1048        }
1049
1050        if (!this._monthsParse) {
1051            this._monthsParse = [];
1052            this._longMonthsParse = [];
1053            this._shortMonthsParse = [];
1054        }
1055
1056        // TODO: add sorting
1057        // Sorting makes sure if one month (or abbr) is a prefix of another
1058        // see sorting in computeMonthsParse
1059        for (i = 0; i < 12; i++) {
1060            // make the regex if we don't have it already
1061            mom = createUTC([2000, i]);
1062            if (strict && !this._longMonthsParse[i]) {
1063                this._longMonthsParse[i] = new RegExp(
1064                    '^' + this.months(mom, '').replace('.', '') + '$',
1065                    'i'
1066                );
1067                this._shortMonthsParse[i] = new RegExp(
1068                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',
1069                    'i'
1070                );
1071            }
1072            if (!strict && !this._monthsParse[i]) {
1073                regex =
1074                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1075                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1076            }
1077            // test the regex
1078            if (
1079                strict &&
1080                format === 'MMMM' &&
1081                this._longMonthsParse[i].test(monthName)
1082            ) {
1083                return i;
1084            } else if (
1085                strict &&
1086                format === 'MMM' &&
1087                this._shortMonthsParse[i].test(monthName)
1088            ) {
1089                return i;
1090            } else if (!strict && this._monthsParse[i].test(monthName)) {
1091                return i;
1092            }
1093        }
1094    }
1095
1096    // MOMENTS
1097
1098    function setMonth(mom, value) {
1099        var dayOfMonth;
1100
1101        if (!mom.isValid()) {
1102            // No op
1103            return mom;
1104        }
1105
1106        if (typeof value === 'string') {
1107            if (/^\d+$/.test(value)) {
1108                value = toInt(value);
1109            } else {
1110                value = mom.localeData().monthsParse(value);
1111                // TODO: Another silent failure?
1112                if (!isNumber(value)) {
1113                    return mom;
1114                }
1115            }
1116        }
1117
1118        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1119        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1120        return mom;
1121    }
1122
1123    function getSetMonth(value) {
1124        if (value != null) {
1125            setMonth(this, value);
1126            hooks.updateOffset(this, true);
1127            return this;
1128        } else {
1129            return get(this, 'Month');
1130        }
1131    }
1132
1133    function getDaysInMonth() {
1134        return daysInMonth(this.year(), this.month());
1135    }
1136
1137    function monthsShortRegex(isStrict) {
1138        if (this._monthsParseExact) {
1139            if (!hasOwnProp(this, '_monthsRegex')) {
1140                computeMonthsParse.call(this);
1141            }
1142            if (isStrict) {
1143                return this._monthsShortStrictRegex;
1144            } else {
1145                return this._monthsShortRegex;
1146            }
1147        } else {
1148            if (!hasOwnProp(this, '_monthsShortRegex')) {
1149                this._monthsShortRegex = defaultMonthsShortRegex;
1150            }
1151            return this._monthsShortStrictRegex && isStrict
1152                ? this._monthsShortStrictRegex
1153                : this._monthsShortRegex;
1154        }
1155    }
1156
1157    function monthsRegex(isStrict) {
1158        if (this._monthsParseExact) {
1159            if (!hasOwnProp(this, '_monthsRegex')) {
1160                computeMonthsParse.call(this);
1161            }
1162            if (isStrict) {
1163                return this._monthsStrictRegex;
1164            } else {
1165                return this._monthsRegex;
1166            }
1167        } else {
1168            if (!hasOwnProp(this, '_monthsRegex')) {
1169                this._monthsRegex = defaultMonthsRegex;
1170            }
1171            return this._monthsStrictRegex && isStrict
1172                ? this._monthsStrictRegex
1173                : this._monthsRegex;
1174        }
1175    }
1176
1177    function computeMonthsParse() {
1178        function cmpLenRev(a, b) {
1179            return b.length - a.length;
1180        }
1181
1182        var shortPieces = [],
1183            longPieces = [],
1184            mixedPieces = [],
1185            i,
1186            mom;
1187        for (i = 0; i < 12; i++) {
1188            // make the regex if we don't have it already
1189            mom = createUTC([2000, i]);
1190            shortPieces.push(this.monthsShort(mom, ''));
1191            longPieces.push(this.months(mom, ''));
1192            mixedPieces.push(this.months(mom, ''));
1193            mixedPieces.push(this.monthsShort(mom, ''));
1194        }
1195        // Sorting makes sure if one month (or abbr) is a prefix of another it
1196        // will match the longer piece.
1197        shortPieces.sort(cmpLenRev);
1198        longPieces.sort(cmpLenRev);
1199        mixedPieces.sort(cmpLenRev);
1200        for (i = 0; i < 12; i++) {
1201            shortPieces[i] = regexEscape(shortPieces[i]);
1202            longPieces[i] = regexEscape(longPieces[i]);
1203        }
1204        for (i = 0; i < 24; i++) {
1205            mixedPieces[i] = regexEscape(mixedPieces[i]);
1206        }
1207
1208        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1209        this._monthsShortRegex = this._monthsRegex;
1210        this._monthsStrictRegex = new RegExp(
1211            '^(' + longPieces.join('|') + ')',
1212            'i'
1213        );
1214        this._monthsShortStrictRegex = new RegExp(
1215            '^(' + shortPieces.join('|') + ')',
1216            'i'
1217        );
1218    }
1219
1220    // FORMATTING
1221
1222    addFormatToken('Y', 0, 0, function () {
1223        var y = this.year();
1224        return y <= 9999 ? zeroFill(y, 4) : '+' + y;
1225    });
1226
1227    addFormatToken(0, ['YY', 2], 0, function () {
1228        return this.year() % 100;
1229    });
1230
1231    addFormatToken(0, ['YYYY', 4], 0, 'year');
1232    addFormatToken(0, ['YYYYY', 5], 0, 'year');
1233    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
1234
1235    // ALIASES
1236
1237    addUnitAlias('year', 'y');
1238
1239    // PRIORITIES
1240
1241    addUnitPriority('year', 1);
1242
1243    // PARSING
1244
1245    addRegexToken('Y', matchSigned);
1246    addRegexToken('YY', match1to2, match2);
1247    addRegexToken('YYYY', match1to4, match4);
1248    addRegexToken('YYYYY', match1to6, match6);
1249    addRegexToken('YYYYYY', match1to6, match6);
1250
1251    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
1252    addParseToken('YYYY', function (input, array) {
1253        array[YEAR] =
1254            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
1255    });
1256    addParseToken('YY', function (input, array) {
1257        array[YEAR] = hooks.parseTwoDigitYear(input);
1258    });
1259    addParseToken('Y', function (input, array) {
1260        array[YEAR] = parseInt(input, 10);
1261    });
1262
1263    // HELPERS
1264
1265    function daysInYear(year) {
1266        return isLeapYear(year) ? 366 : 365;
1267    }
1268
1269    // HOOKS
1270
1271    hooks.parseTwoDigitYear = function (input) {
1272        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
1273    };
1274
1275    // MOMENTS
1276
1277    var getSetYear = makeGetSet('FullYear', true);
1278
1279    function getIsLeapYear() {
1280        return isLeapYear(this.year());
1281    }
1282
1283    function createDate(y, m, d, h, M, s, ms) {
1284        // can't just apply() to create a date:
1285        // https://stackoverflow.com/q/181348
1286        var date;
1287        // the date constructor remaps years 0-99 to 1900-1999
1288        if (y < 100 && y >= 0) {
1289            // preserve leap years using a full 400 year cycle, then reset
1290            date = new Date(y + 400, m, d, h, M, s, ms);
1291            if (isFinite(date.getFullYear())) {
1292                date.setFullYear(y);
1293            }
1294        } else {
1295            date = new Date(y, m, d, h, M, s, ms);
1296        }
1297
1298        return date;
1299    }
1300
1301    function createUTCDate(y) {
1302        var date, args;
1303        // the Date.UTC function remaps years 0-99 to 1900-1999
1304        if (y < 100 && y >= 0) {
1305            args = Array.prototype.slice.call(arguments);
1306            // preserve leap years using a full 400 year cycle, then reset
1307            args[0] = y + 400;
1308            date = new Date(Date.UTC.apply(null, args));
1309            if (isFinite(date.getUTCFullYear())) {
1310                date.setUTCFullYear(y);
1311            }
1312        } else {
1313            date = new Date(Date.UTC.apply(null, arguments));
1314        }
1315
1316        return date;
1317    }
1318
1319    // start-of-first-week - start-of-year
1320    function firstWeekOffset(year, dow, doy) {
1321        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1322            fwd = 7 + dow - doy,
1323            // first-week day local weekday -- which local weekday is fwd
1324            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1325
1326        return -fwdlw + fwd - 1;
1327    }
1328
1329    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1330    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1331        var localWeekday = (7 + weekday - dow) % 7,
1332            weekOffset = firstWeekOffset(year, dow, doy),
1333            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1334            resYear,
1335            resDayOfYear;
1336
1337        if (dayOfYear <= 0) {
1338            resYear = year - 1;
1339            resDayOfYear = daysInYear(resYear) + dayOfYear;
1340        } else if (dayOfYear > daysInYear(year)) {
1341            resYear = year + 1;
1342            resDayOfYear = dayOfYear - daysInYear(year);
1343        } else {
1344            resYear = year;
1345            resDayOfYear = dayOfYear;
1346        }
1347
1348        return {
1349            year: resYear,
1350            dayOfYear: resDayOfYear,
1351        };
1352    }
1353
1354    function weekOfYear(mom, dow, doy) {
1355        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1356            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1357            resWeek,
1358            resYear;
1359
1360        if (week < 1) {
1361            resYear = mom.year() - 1;
1362            resWeek = week + weeksInYear(resYear, dow, doy);
1363        } else if (week > weeksInYear(mom.year(), dow, doy)) {
1364            resWeek = week - weeksInYear(mom.year(), dow, doy);
1365            resYear = mom.year() + 1;
1366        } else {
1367            resYear = mom.year();
1368            resWeek = week;
1369        }
1370
1371        return {
1372            week: resWeek,
1373            year: resYear,
1374        };
1375    }
1376
1377    function weeksInYear(year, dow, doy) {
1378        var weekOffset = firstWeekOffset(year, dow, doy),
1379            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1380        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1381    }
1382
1383    // FORMATTING
1384
1385    addFormatToken('w', ['ww', 2], 'wo', 'week');
1386    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1387
1388    // ALIASES
1389
1390    addUnitAlias('week', 'w');
1391    addUnitAlias('isoWeek', 'W');
1392
1393    // PRIORITIES
1394
1395    addUnitPriority('week', 5);
1396    addUnitPriority('isoWeek', 5);
1397
1398    // PARSING
1399
1400    addRegexToken('w', match1to2);
1401    addRegexToken('ww', match1to2, match2);
1402    addRegexToken('W', match1to2);
1403    addRegexToken('WW', match1to2, match2);
1404
1405    addWeekParseToken(
vendor: 3,487 bytes, lines 1405-1536
1405
1406        ['w', 'ww', 'W', 'WW'],
1407        function (input, week, config, token) {
1408            week[token.substr(0, 1)] = toInt(input);
1409        }
1410    );
1411
1412    // HELPERS
1413
1414    // LOCALES
1415
1416    function localeWeek(mom) {
1417        return weekOfYear(mom, this._week.dow, this._week.doy).week;
1418    }
1419
1420    var defaultLocaleWeek = {
1421        dow: 0, // Sunday is the first day of the week.
1422        doy: 6, // The week that contains Jan 6th is the first week of the year.
1423    };
1424
1425    function localeFirstDayOfWeek() {
1426        return this._week.dow;
1427    }
1428
1429    function localeFirstDayOfYear() {
1430        return this._week.doy;
1431    }
1432
1433    // MOMENTS
1434
1435    function getSetWeek(input) {
1436        var week = this.localeData().week(this);
1437        return input == null ? week : this.add((input - week) * 7, 'd');
1438    }
1439
1440    function getSetISOWeek(input) {
1441        var week = weekOfYear(this, 1, 4).week;
1442        return input == null ? week : this.add((input - week) * 7, 'd');
1443    }
1444
1445    // FORMATTING
1446
1447    addFormatToken('d', 0, 'do', 'day');
1448
1449    addFormatToken('dd', 0, 0, function (format) {
1450        return this.localeData().weekdaysMin(this, format);
1451    });
1452
1453    addFormatToken('ddd', 0, 0, function (format) {
1454        return this.localeData().weekdaysShort(this, format);
1455    });
1456
1457    addFormatToken('dddd', 0, 0, function (format) {
1458        return this.localeData().weekdays(this, format);
1459    });
1460
1461    addFormatToken('e', 0, 0, 'weekday');
1462    addFormatToken('E', 0, 0, 'isoWeekday');
1463
1464    // ALIASES
1465
1466    addUnitAlias('day', 'd');
1467    addUnitAlias('weekday', 'e');
1468    addUnitAlias('isoWeekday', 'E');
1469
1470    // PRIORITY
1471    addUnitPriority('day', 11);
1472    addUnitPriority('weekday', 11);
1473    addUnitPriority('isoWeekday', 11);
1474
1475    // PARSING
1476
1477    addRegexToken('d', match1to2);
1478    addRegexToken('e', match1to2);
1479    addRegexToken('E', match1to2);
1480    addRegexToken('dd', function (isStrict, locale) {
1481        return locale.weekdaysMinRegex(isStrict);
1482    });
1483    addRegexToken('ddd', function (isStrict, locale) {
1484        return locale.weekdaysShortRegex(isStrict);
1485    });
1486    addRegexToken('dddd', function (isStrict, locale) {
1487        return locale.weekdaysRegex(isStrict);
1488    });
1489
1490    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1491        var weekday = config._locale.weekdaysParse(input, token, config._strict);
1492        // if we didn't get a weekday name, mark the date as invalid
1493        if (weekday != null) {
1494            week.d = weekday;
1495        } else {
1496            getParsingFlags(config).invalidWeekday = input;
1497        }
1498    });
1499
1500    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1501        week[token] = toInt(input);
1502    });
1503
1504    // HELPERS
1505
1506    function parseWeekday(input, locale) {
1507        if (typeof input !== 'string') {
1508            return input;
1509        }
1510
1511        if (!isNaN(input)) {
1512            return parseInt(input, 10);
1513        }
1514
1515        input = locale.weekdaysParse(input);
1516        if (typeof input === 'number') {
1517            return input;
1518        }
1519
1520        return null;
1521    }
1522
1523    function parseIsoWeekday(input, locale) {
1524        if (typeof input === 'string') {
1525            return locale.weekdaysParse(input) % 7 || 7;
1526        }
1527        return isNaN(input) ? null : input;
1528    }
1529
1530    // LOCALES
1531    function shiftWeekdays(ws, n) {
1532        return ws.slice(n, 7).concat(ws.slice(0, n));
1533    }
1534
1535    var defaultLocaleWeekdays =
1536            'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'
vendor: 17,864 bytes, lines 1536-2084
1536),
1537        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
1538        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
1539        defaultWeekdaysRegex = matchWord,
1540        defaultWeekdaysShortRegex = matchWord,
1541        defaultWeekdaysMinRegex = matchWord;
1542
1543    function localeWeekdays(m, format) {
1544        var weekdays = isArray(this._weekdays)
1545            ? this._weekdays
1546            : this._weekdays[
1547                  m && m !== true && this._weekdays.isFormat.test(format)
1548                      ? 'format'
1549                      : 'standalone'
1550              ];
1551        return m === true
1552            ? shiftWeekdays(weekdays, this._week.dow)
1553            : m
1554            ? weekdays[m.day()]
1555            : weekdays;
1556    }
1557
1558    function localeWeekdaysShort(m) {
1559        return m === true
1560            ? shiftWeekdays(this._weekdaysShort, this._week.dow)
1561            : m
1562            ? this._weekdaysShort[m.day()]
1563            : this._weekdaysShort;
1564    }
1565
1566    function localeWeekdaysMin(m) {
1567        return m === true
1568            ? shiftWeekdays(this._weekdaysMin, this._week.dow)
1569            : m
1570            ? this._weekdaysMin[m.day()]
1571            : this._weekdaysMin;
1572    }
1573
1574    function handleStrictParse$1(weekdayName, format, strict) {
1575        var i,
1576            ii,
1577            mom,
1578            llc = weekdayName.toLocaleLowerCase();
1579        if (!this._weekdaysParse) {
1580            this._weekdaysParse = [];
1581            this._shortWeekdaysParse = [];
1582            this._minWeekdaysParse = [];
1583
1584            for (i = 0; i < 7; ++i) {
1585                mom = createUTC([2000, 1]).day(i);
1586                this._minWeekdaysParse[i] = this.weekdaysMin(
1587                    mom,
1588                    ''
1589                ).toLocaleLowerCase();
1590                this._shortWeekdaysParse[i] = this.weekdaysShort(
1591                    mom,
1592                    ''
1593                ).toLocaleLowerCase();
1594                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1595            }
1596        }
1597
1598        if (strict) {
1599            if (format === 'dddd') {
1600                ii = indexOf.call(this._weekdaysParse, llc);
1601                return ii !== -1 ? ii : null;
1602            } else if (format === 'ddd') {
1603                ii = indexOf.call(this._shortWeekdaysParse, llc);
1604                return ii !== -1 ? ii : null;
1605            } else {
1606                ii = indexOf.call(this._minWeekdaysParse, llc);
1607                return ii !== -1 ? ii : null;
1608            }
1609        } else {
1610            if (format === 'dddd') {
1611                ii = indexOf.call(this._weekdaysParse, llc);
1612                if (ii !== -1) {
1613                    return ii;
1614                }
1615                ii = indexOf.call(this._shortWeekdaysParse, llc);
1616                if (ii !== -1) {
1617                    return ii;
1618                }
1619                ii = indexOf.call(this._minWeekdaysParse, llc);
1620                return ii !== -1 ? ii : null;
1621            } else if (format === 'ddd') {
1622                ii = indexOf.call(this._shortWeekdaysParse, llc);
1623                if (ii !== -1) {
1624                    return ii;
1625                }
1626                ii = indexOf.call(this._weekdaysParse, llc);
1627                if (ii !== -1) {
1628                    return ii;
1629                }
1630                ii = indexOf.call(this._minWeekdaysParse, llc);
1631                return ii !== -1 ? ii : null;
1632            } else {
1633                ii = indexOf.call(this._minWeekdaysParse, llc);
1634                if (ii !== -1) {
1635                    return ii;
1636                }
1637                ii = indexOf.call(this._weekdaysParse, llc);
1638                if (ii !== -1) {
1639                    return ii;
1640                }
1641                ii = indexOf.call(this._shortWeekdaysParse, llc);
1642                return ii !== -1 ? ii : null;
1643            }
1644        }
1645    }
1646
1647    function localeWeekdaysParse(weekdayName, format, strict) {
1648        var i, mom, regex;
1649
1650        if (this._weekdaysParseExact) {
1651            return handleStrictParse$1.call(this, weekdayName, format, strict);
1652        }
1653
1654        if (!this._weekdaysParse) {
1655            this._weekdaysParse = [];
1656            this._minWeekdaysParse = [];
1657            this._shortWeekdaysParse = [];
1658            this._fullWeekdaysParse = [];
1659        }
1660
1661        for (i = 0; i < 7; i++) {
1662            // make the regex if we don't have it already
1663
1664            mom = createUTC([2000, 1]).day(i);
1665            if (strict && !this._fullWeekdaysParse[i]) {
1666                this._fullWeekdaysParse[i] = new RegExp(
1667                    '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
1668                    'i'
1669                );
1670                this._shortWeekdaysParse[i] = new RegExp(
1671                    '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
1672                    'i'
1673                );
1674                this._minWeekdaysParse[i] = new RegExp(
1675                    '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
1676                    'i'
1677                );
1678            }
1679            if (!this._weekdaysParse[i]) {
1680                regex =
1681                    '^' +
1682                    this.weekdays(mom, '') +
1683                    '|^' +
1684                    this.weekdaysShort(mom, '') +
1685                    '|^' +
1686                    this.weekdaysMin(mom, '');
1687                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1688            }
1689            // test the regex
1690            if (
1691                strict &&
1692                format === 'dddd' &&
1693                this._fullWeekdaysParse[i].test(weekdayName)
1694            ) {
1695                return i;
1696            } else if (
1697                strict &&
1698                format === 'ddd' &&
1699                this._shortWeekdaysParse[i].test(weekdayName)
1700            ) {
1701                return i;
1702            } else if (
1703                strict &&
1704                format === 'dd' &&
1705                this._minWeekdaysParse[i].test(weekdayName)
1706            ) {
1707                return i;
1708            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1709                return i;
1710            }
1711        }
1712    }
1713
1714    // MOMENTS
1715
1716    function getSetDayOfWeek(input) {
1717        if (!this.isValid()) {
1718            return input != null ? this : NaN;
1719        }
1720        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1721        if (input != null) {
1722            input = parseWeekday(input, this.localeData());
1723            return this.add(input - day, 'd');
1724        } else {
1725            return day;
1726        }
1727    }
1728
1729    function getSetLocaleDayOfWeek(input) {
1730        if (!this.isValid()) {
1731            return input != null ? this : NaN;
1732        }
1733        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1734        return input == null ? weekday : this.add(input - weekday, 'd');
1735    }
1736
1737    function getSetISODayOfWeek(input) {
1738        if (!this.isValid()) {
1739            return input != null ? this : NaN;
1740        }
1741
1742        // behaves the same as moment#day except
1743        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1744        // as a setter, sunday should belong to the previous week.
1745
1746        if (input != null) {
1747            var weekday = parseIsoWeekday(input, this.localeData());
1748            return this.day(this.day() % 7 ? weekday : weekday - 7);
1749        } else {
1750            return this.day() || 7;
1751        }
1752    }
1753
1754    function weekdaysRegex(isStrict) {
1755        if (this._weekdaysParseExact) {
1756            if (!hasOwnProp(this, '_weekdaysRegex')) {
1757                computeWeekdaysParse.call(this);
1758            }
1759            if (isStrict) {
1760                return this._weekdaysStrictRegex;
1761            } else {
1762                return this._weekdaysRegex;
1763            }
1764        } else {
1765            if (!hasOwnProp(this, '_weekdaysRegex')) {
1766                this._weekdaysRegex = defaultWeekdaysRegex;
1767            }
1768            return this._weekdaysStrictRegex && isStrict
1769                ? this._weekdaysStrictRegex
1770                : this._weekdaysRegex;
1771        }
1772    }
1773
1774    function weekdaysShortRegex(isStrict) {
1775        if (this._weekdaysParseExact) {
1776            if (!hasOwnProp(this, '_weekdaysRegex')) {
1777                computeWeekdaysParse.call(this);
1778            }
1779            if (isStrict) {
1780                return this._weekdaysShortStrictRegex;
1781            } else {
1782                return this._weekdaysShortRegex;
1783            }
1784        } else {
1785            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1786                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1787            }
1788            return this._weekdaysShortStrictRegex && isStrict
1789                ? this._weekdaysShortStrictRegex
1790                : this._weekdaysShortRegex;
1791        }
1792    }
1793
1794    function weekdaysMinRegex(isStrict) {
1795        if (this._weekdaysParseExact) {
1796            if (!hasOwnProp(this, '_weekdaysRegex')) {
1797                computeWeekdaysParse.call(this);
1798            }
1799            if (isStrict) {
1800                return this._weekdaysMinStrictRegex;
1801            } else {
1802                return this._weekdaysMinRegex;
1803            }
1804        } else {
1805            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1806                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1807            }
1808            return this._weekdaysMinStrictRegex && isStrict
1809                ? this._weekdaysMinStrictRegex
1810                : this._weekdaysMinRegex;
1811        }
1812    }
1813
1814    function computeWeekdaysParse() {
1815        function cmpLenRev(a, b) {
1816            return b.length - a.length;
1817        }
1818
1819        var minPieces = [],
1820            shortPieces = [],
1821            longPieces = [],
1822            mixedPieces = [],
1823            i,
1824            mom,
1825            minp,
1826            shortp,
1827            longp;
1828        for (i = 0; i < 7; i++) {
1829            // make the regex if we don't have it already
1830            mom = createUTC([2000, 1]).day(i);
1831            minp = regexEscape(this.weekdaysMin(mom, ''));
1832            shortp = regexEscape(this.weekdaysShort(mom, ''));
1833            longp = regexEscape(this.weekdays(mom, ''));
1834            minPieces.push(minp);
1835            shortPieces.push(shortp);
1836            longPieces.push(longp);
1837            mixedPieces.push(minp);
1838            mixedPieces.push(shortp);
1839            mixedPieces.push(longp);
1840        }
1841        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1842        // will match the longer piece.
1843        minPieces.sort(cmpLenRev);
1844        shortPieces.sort(cmpLenRev);
1845        longPieces.sort(cmpLenRev);
1846        mixedPieces.sort(cmpLenRev);
1847
1848        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1849        this._weekdaysShortRegex = this._weekdaysRegex;
1850        this._weekdaysMinRegex = this._weekdaysRegex;
1851
1852        this._weekdaysStrictRegex = new RegExp(
1853            '^(' + longPieces.join('|') + ')',
1854            'i'
1855        );
1856        this._weekdaysShortStrictRegex = new RegExp(
1857            '^(' + shortPieces.join('|') + ')',
1858            'i'
1859        );
1860        this._weekdaysMinStrictRegex = new RegExp(
1861            '^(' + minPieces.join('|') + ')',
1862            'i'
1863        );
1864    }
1865
1866    // FORMATTING
1867
1868    function hFormat() {
1869        return this.hours() % 12 || 12;
1870    }
1871
1872    function kFormat() {
1873        return this.hours() || 24;
1874    }
1875
1876    addFormatToken('H', ['HH', 2], 0, 'hour');
1877    addFormatToken('h', ['hh', 2], 0, hFormat);
1878    addFormatToken('k', ['kk', 2], 0, kFormat);
1879
1880    addFormatToken('hmm', 0, 0, function () {
1881        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1882    });
1883
1884    addFormatToken('hmmss', 0, 0, function () {
1885        return (
1886            '' +
1887            hFormat.apply(this) +
1888            zeroFill(this.minutes(), 2) +
1889            zeroFill(this.seconds(), 2)
1890        );
1891    });
1892
1893    addFormatToken('Hmm', 0, 0, function () {
1894        return '' + this.hours() + zeroFill(this.minutes(), 2);
1895    });
1896
1897    addFormatToken('Hmmss', 0, 0, function () {
1898        return (
1899            '' +
1900            this.hours() +
1901            zeroFill(this.minutes(), 2) +
1902            zeroFill(this.seconds(), 2)
1903        );
1904    });
1905
1906    function meridiem(token, lowercase) {
1907        addFormatToken(token, 0, 0, function () {
1908            return this.localeData().meridiem(
1909                this.hours(),
1910                this.minutes(),
1911                lowercase
1912            );
1913        });
1914    }
1915
1916    meridiem('a', true);
1917    meridiem('A', false);
1918
1919    // ALIASES
1920
1921    addUnitAlias('hour', 'h');
1922
1923    // PRIORITY
1924    addUnitPriority('hour', 13);
1925
1926    // PARSING
1927
1928    function matchMeridiem(isStrict, locale) {
1929        return locale._meridiemParse;
1930    }
1931
1932    addRegexToken('a', matchMeridiem);
1933    addRegexToken('A', matchMeridiem);
1934    addRegexToken('H', match1to2);
1935    addRegexToken('h', match1to2);
1936    addRegexToken('k', match1to2);
1937    addRegexToken('HH', match1to2, match2);
1938    addRegexToken('hh', match1to2, match2);
1939    addRegexToken('kk', match1to2, match2);
1940
1941    addRegexToken('hmm', match3to4);
1942    addRegexToken('hmmss', match5to6);
1943    addRegexToken('Hmm', match3to4);
1944    addRegexToken('Hmmss', match5to6);
1945
1946    addParseToken(['H', 'HH'], HOUR);
1947    addParseToken(['k', 'kk'], function (input, array, config) {
1948        var kInput = toInt(input);
1949        array[HOUR] = kInput === 24 ? 0 : kInput;
1950    });
1951    addParseToken(['a', 'A'], function (input, array, config) {
1952        config._isPm = config._locale.isPM(input);
1953        config._meridiem = input;
1954    });
1955    addParseToken(['h', 'hh'], function (input, array, config) {
1956        array[HOUR] = toInt(input);
1957        getParsingFlags(config).bigHour = true;
1958    });
1959    addParseToken('hmm', function (input, array, config) {
1960        var pos = input.length - 2;
1961        array[HOUR] = toInt(input.substr(0, pos));
1962        array[MINUTE] = toInt(input.substr(pos));
1963        getParsingFlags(config).bigHour = true;
1964    });
1965    addParseToken('hmmss', function (input, array, config) {
1966        var pos1 = input.length - 4,
1967            pos2 = input.length - 2;
1968        array[HOUR] = toInt(input.substr(0, pos1));
1969        array[MINUTE] = toInt(input.substr(pos1, 2));
1970        array[SECOND] = toInt(input.substr(pos2));
1971        getParsingFlags(config).bigHour = true;
1972    });
1973    addParseToken('Hmm', function (input, array, config) {
1974        var pos = input.length - 2;
1975        array[HOUR] = toInt(input.substr(0, pos));
1976        array[MINUTE] = toInt(input.substr(pos));
1977    });
1978    addParseToken('Hmmss', function (input, array, config) {
1979        var pos1 = input.length - 4,
1980            pos2 = input.length - 2;
1981        array[HOUR] = toInt(input.substr(0, pos1));
1982        array[MINUTE] = toInt(input.substr(pos1, 2));
1983        array[SECOND] = toInt(input.substr(pos2));
1984    });
1985
1986    // LOCALES
1987
1988    function localeIsPM(input) {
1989        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1990        // Using charAt should be more compatible.
1991        return (input + '').toLowerCase().charAt(0) === 'p';
1992    }
1993
1994    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
1995        // Setting the hour should keep the time, because the user explicitly
1996        // specified which hour they want. So trying to maintain the same hour (in
1997        // a new timezone) makes sense. Adding/subtracting hours does not follow
1998        // this rule.
1999        getSetHour = makeGetSet('Hours', true);
2000
2001    function localeMeridiem(hours, minutes, isLower) {
2002        if (hours > 11) {
2003            return isLower ? 'pm' : 'PM';
2004        } else {
2005            return isLower ? 'am' : 'AM';
2006        }
2007    }
2008
2009    var baseConfig = {
2010        calendar: defaultCalendar,
2011        longDateFormat: defaultLongDateFormat,
2012        invalidDate: defaultInvalidDate,
2013        ordinal: defaultOrdinal,
2014        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
2015        relativeTime: defaultRelativeTime,
2016
2017        months: defaultLocaleMonths,
2018        monthsShort: defaultLocaleMonthsShort,
2019
2020        week: defaultLocaleWeek,
2021
2022        weekdays: defaultLocaleWeekdays,
2023        weekdaysMin: defaultLocaleWeekdaysMin,
2024        weekdaysShort: defaultLocaleWeekdaysShort,
2025
2026        meridiemParse: defaultLocaleMeridiemParse,
2027    };
2028
2029    // internal storage for locale config files
2030    var locales = {},
2031        localeFamilies = {},
2032        globalLocale;
2033
2034    function commonPrefix(arr1, arr2) {
2035        var i,
2036            minl = Math.min(arr1.length, arr2.length);
2037        for (i = 0; i < minl; i += 1) {
2038            if (arr1[i] !== arr2[i]) {
2039                return i;
2040            }
2041        }
2042        return minl;
2043    }
2044
2045    function normalizeLocale(key) {
2046        return key ? key.toLowerCase().replace('_', '-') : key;
2047    }
2048
2049    // pick the locale from the array
2050    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
2051    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
2052    function chooseLocale(names) {
2053        var i = 0,
2054            j,
2055            next,
2056            locale,
2057            split;
2058
2059        while (i < names.length) {
2060            split = normalizeLocale(names[i]).split('-');
2061            j = split.length;
2062            next = normalizeLocale(names[i + 1]);
2063            next = next ? next.split('-') : null;
2064            while (j > 0) {
2065                locale = loadLocale(split.slice(0, j).join('-'));
2066                if (locale) {
2067                    return locale;
2068                }
2069                if (
2070                    next &&
2071                    next.length >= j &&
2072                    commonPrefix(split, next) >= j - 1
2073                ) {
2074                    //the next array item is better than a shallower substring of this one
2075                    break;
2076                }
2077                j--;
2078            }
2079            i++;
2080        }
2081        return globalLocale;
2082    }
2083
2084    function 
vendor: 7,449 bytes, lines 2084-2291
2084isLocaleNameSane(name) {
2085        // Prevent names that look like filesystem paths, i.e contain '/' or '\'
2086        return name.match('^[^/\\\\]*$') != null;
2087    }
2088
2089    function loadLocale(name) {
2090        var oldLocale = null,
2091            aliasedRequire;
2092        // TODO: Find a better way to register and load all the locales in Node
2093        if (
2094            locales[name] === undefined &&
2095            typeof module !== 'undefined' &&
2096            module &&
2097            module.exports &&
2098            isLocaleNameSane(name)
2099        ) {
2100            try {
2101                oldLocale = globalLocale._abbr;
2102                aliasedRequire = require;
2103                aliasedRequire('./locale/' + name);
2104                getSetGlobalLocale(oldLocale);
2105            } catch (e) {
2106                // mark as not found to avoid repeating expensive file require call causing high CPU
2107                // when trying to find en-US, en_US, en-us for every format call
2108                locales[name] = null; // null means not found
2109            }
2110        }
2111        return locales[name];
2112    }
2113
2114    // This function will load locale and then set the global locale.  If
2115    // no arguments are passed in, it will simply return the current global
2116    // locale key.
2117    function getSetGlobalLocale(key, values) {
2118        var data;
2119        if (key) {
2120            if (isUndefined(values)) {
2121                data = getLocale(key);
2122            } else {
2123                data = defineLocale(key, values);
2124            }
2125
2126            if (data) {
2127                // moment.duration._locale = moment._locale = data;
2128                globalLocale = data;
2129            } else {
2130                if (typeof console !== 'undefined' && console.warn) {
2131                    //warn user if arguments are passed but the locale could not be set
2132                    console.warn(
2133                        'Locale ' + key + ' not found. Did you forget to load it?'
2134                    );
2135                }
2136            }
2137        }
2138
2139        return globalLocale._abbr;
2140    }
2141
2142    function defineLocale(name, config) {
2143        if (config !== null) {
2144            var locale,
2145                parentConfig = baseConfig;
2146            config.abbr = name;
2147            if (locales[name] != null) {
2148                deprecateSimple(
2149                    'defineLocaleOverride',
2150                    'use moment.updateLocale(localeName, config) to change ' +
2151                        'an existing locale. moment.defineLocale(localeName, ' +
2152                        'config) should only be used for creating a new locale ' +
2153                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
2154                );
2155                parentConfig = locales[name]._config;
2156            } else if (config.parentLocale != null) {
2157                if (locales[config.parentLocale] != null) {
2158                    parentConfig = locales[config.parentLocale]._config;
2159                } else {
2160                    locale = loadLocale(config.parentLocale);
2161                    if (locale != null) {
2162                        parentConfig = locale._config;
2163                    } else {
2164                        if (!localeFamilies[config.parentLocale]) {
2165                            localeFamilies[config.parentLocale] = [];
2166                        }
2167                        localeFamilies[config.parentLocale].push({
2168                            name: name,
2169                            config: config,
2170                        });
2171                        return null;
2172                    }
2173                }
2174            }
2175            locales[name] = new Locale(mergeConfigs(parentConfig, config));
2176
2177            if (localeFamilies[name]) {
2178                localeFamilies[name].forEach(function (x) {
2179                    defineLocale(x.name, x.config);
2180                });
2181            }
2182
2183            // backwards compat for now: also set the locale
2184            // make sure we set the locale AFTER all child locales have been
2185            // created, so we won't end up with the child locale set.
2186            getSetGlobalLocale(name);
2187
2188            return locales[name];
2189        } else {
2190            // useful for testing
2191            delete locales[name];
2192            return null;
2193        }
2194    }
2195
2196    function updateLocale(name, config) {
2197        if (config != null) {
2198            var locale,
2199                tmpLocale,
2200                parentConfig = baseConfig;
2201
2202            if (locales[name] != null && locales[name].parentLocale != null) {
2203                // Update existing child locale in-place to avoid memory-leaks
2204                locales[name].set(mergeConfigs(locales[name]._config, config));
2205            } else {
2206                // MERGE
2207                tmpLocale = loadLocale(name);
2208                if (tmpLocale != null) {
2209                    parentConfig = tmpLocale._config;
2210                }
2211                config = mergeConfigs(parentConfig, config);
2212                if (tmpLocale == null) {
2213                    // updateLocale is called for creating a new locale
2214                    // Set abbr so it will have a name (getters return
2215                    // undefined otherwise).
2216                    config.abbr = name;
2217                }
2218                locale = new Locale(config);
2219                locale.parentLocale = locales[name];
2220                locales[name] = locale;
2221            }
2222
2223            // backwards compat for now: also set the locale
2224            getSetGlobalLocale(name);
2225        } else {
2226            // pass null for config to unupdate, useful for tests
2227            if (locales[name] != null) {
2228                if (locales[name].parentLocale != null) {
2229                    locales[name] = locales[name].parentLocale;
2230                    if (name === getSetGlobalLocale()) {
2231                        getSetGlobalLocale(name);
2232                    }
2233                } else if (locales[name] != null) {
2234                    delete locales[name];
2235                }
2236            }
2237        }
2238        return locales[name];
2239    }
2240
2241    // returns locale data
2242    function getLocale(key) {
2243        var locale;
2244
2245        if (key && key._locale && key._locale._abbr) {
2246            key = key._locale._abbr;
2247        }
2248
2249        if (!key) {
2250            return globalLocale;
2251        }
2252
2253        if (!isArray(key)) {
2254            //short-circuit everything else
2255            locale = loadLocale(key);
2256            if (locale) {
2257                return locale;
2258            }
2259            key = [key];
2260        }
2261
2262        return chooseLocale(key);
2263    }
2264
2265    function listLocales() {
2266        return keys(locales);
2267    }
2268
2269    function checkOverflow(m) {
2270        var overflow,
2271            a = m._a;
2272
2273        if (a && getParsingFlags(m).overflow === -2) {
2274            overflow =
2275                a[MONTH] < 0 || a[MONTH] > 11
2276                    ? MONTH
2277                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
2278                    ? DATE
2279                    : a[HOUR] < 0 ||
2280                      a[HOUR] > 24 ||
2281                      (a[HOUR] === 24 &&
2282                          (a[MINUTE] !== 0 ||
2283                              a[SECOND] !== 0 ||
2284                              a[MILLISECOND] !== 0))
2285                    ? HOUR
2286                    : a[MINUTE] < 0 || a[MINUTE] > 59
2287                    ? MINUTE
2288                    : a[SECOND] < 0 || a[SECOND] > 59
2289                    ? SECOND
2290                    : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
2291                    ? MILLISECOND
vendor: 9,346 bytes, lines 2292-2575
2292                    : -1;
2293
2294            if (
2295                getParsingFlags(m)._overflowDayOfYear &&
2296                (overflow < YEAR || overflow > DATE)
2297            ) {
2298                overflow = DATE;
2299            }
2300            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2301                overflow = WEEK;
2302            }
2303            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2304                overflow = WEEKDAY;
2305            }
2306
2307            getParsingFlags(m).overflow = overflow;
2308        }
2309
2310        return m;
2311    }
2312
2313    // iso 8601 regex
2314    // 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)
2315    var extendedIsoRegex =
2316            /^\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)?)?$/,
2317        basicIsoRegex =
2318            /^\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)?)?$/,
2319        tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
2320        isoDates = [
2321            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2322            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2323            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2324            ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2325            ['YYYY-DDD', /\d{4}-\d{3}/],
2326            ['YYYY-MM', /\d{4}-\d\d/, false],
2327            ['YYYYYYMMDD', /[+-]\d{10}/],
2328            ['YYYYMMDD', /\d{8}/],
2329            ['GGGG[W]WWE', /\d{4}W\d{3}/],
2330            ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2331            ['YYYYDDD', /\d{7}/],
2332            ['YYYYMM', /\d{6}/, false],
2333            ['YYYY', /\d{4}/, false],
2334        ],
2335        // iso time formats and regexes
2336        isoTimes = [
2337            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2338            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2339            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2340            ['HH:mm', /\d\d:\d\d/],
2341            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2342            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2343            ['HHmmss', /\d\d\d\d\d\d/],
2344            ['HHmm', /\d\d\d\d/],
2345            ['HH', /\d\d/],
2346        ],
2347        aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
2348        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2349        rfc2822 =
2350            /^(?:(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}))$/,
2351        obsOffsets = {
2352            UT: 0,
2353            GMT: 0,
2354            EDT: -4 * 60,
2355            EST: -5 * 60,
2356            CDT: -5 * 60,
2357            CST: -6 * 60,
2358            MDT: -6 * 60,
2359            MST: -7 * 60,
2360            PDT: -7 * 60,
2361            PST: -8 * 60,
2362        };
2363
2364    // date from iso format
2365    function configFromISO(config) {
2366        var i,
2367            l,
2368            string = config._i,
2369            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2370            allowTime,
2371            dateFormat,
2372            timeFormat,
2373            tzFormat,
2374            isoDatesLen = isoDates.length,
2375            isoTimesLen = isoTimes.length;
2376
2377        if (match) {
2378            getParsingFlags(config).iso = true;
2379            for (i = 0, l = isoDatesLen; i < l; i++) {
2380                if (isoDates[i][1].exec(match[1])) {
2381                    dateFormat = isoDates[i][0];
2382                    allowTime = isoDates[i][2] !== false;
2383                    break;
2384                }
2385            }
2386            if (dateFormat == null) {
2387                config._isValid = false;
2388                return;
2389            }
2390            if (match[3]) {
2391                for (i = 0, l = isoTimesLen; i < l; i++) {
2392                    if (isoTimes[i][1].exec(match[3])) {
2393                        // match[2] should be 'T' or space
2394                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
2395                        break;
2396                    }
2397                }
2398                if (timeFormat == null) {
2399                    config._isValid = false;
2400                    return;
2401                }
2402            }
2403            if (!allowTime && timeFormat != null) {
2404                config._isValid = false;
2405                return;
2406            }
2407            if (match[4]) {
2408                if (tzRegex.exec(match[4])) {
2409                    tzFormat = 'Z';
2410                } else {
2411                    config._isValid = false;
2412                    return;
2413                }
2414            }
2415            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2416            configFromStringAndFormat(config);
2417        } else {
2418            config._isValid = false;
2419        }
2420    }
2421
2422    function extractFromRFC2822Strings(
2423        yearStr,
2424        monthStr,
2425        dayStr,
2426        hourStr,
2427        minuteStr,
2428        secondStr
2429    ) {
2430        var result = [
2431            untruncateYear(yearStr),
2432            defaultLocaleMonthsShort.indexOf(monthStr),
2433            parseInt(dayStr, 10),
2434            parseInt(hourStr, 10),
2435            parseInt(minuteStr, 10),
2436        ];
2437
2438        if (secondStr) {
2439            result.push(parseInt(secondStr, 10));
2440        }
2441
2442        return result;
2443    }
2444
2445    function untruncateYear(yearStr) {
2446        var year = parseInt(yearStr, 10);
2447        if (year <= 49) {
2448            return 2000 + year;
2449        } else if (year <= 999) {
2450            return 1900 + year;
2451        }
2452        return year;
2453    }
2454
2455    function preprocessRFC2822(s) {
2456        // Remove comments and folding whitespace and replace multiple-spaces with a single space
2457        return s
2458            .replace(/\([^()]*\)|[\n\t]/g, ' ')
2459            .replace(/(\s\s+)/g, ' ')
2460            .replace(/^\s\s*/, '')
2461            .replace(/\s\s*$/, '');
2462    }
2463
2464    function checkWeekday(weekdayStr, parsedInput, config) {
2465        if (weekdayStr) {
2466            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.
2467            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2468                weekdayActual = new Date(
2469                    parsedInput[0],
2470                    parsedInput[1],
2471                    parsedInput[2]
2472                ).getDay();
2473            if (weekdayProvided !== weekdayActual) {
2474                getParsingFlags(config).weekdayMismatch = true;
2475                config._isValid = false;
2476                return false;
2477            }
2478        }
2479        return true;
2480    }
2481
2482    function calculateOffset(obsOffset, militaryOffset, numOffset) {
2483        if (obsOffset) {
2484            return obsOffsets[obsOffset];
2485        } else if (militaryOffset) {
2486            // the only allowed military tz is Z
2487            return 0;
2488        } else {
2489            var hm = parseInt(numOffset, 10),
2490                m = hm % 100,
2491                h = (hm - m) / 100;
2492            return h * 60 + m;
2493        }
2494    }
2495
2496    // date and time from ref 2822 format
2497    function configFromRFC2822(config) {
2498        var match = rfc2822.exec(preprocessRFC2822(config._i)),
2499            parsedArray;
2500        if (match) {
2501            parsedArray = extractFromRFC2822Strings(
2502                match[4],
2503                match[3],
2504                match[2],
2505                match[5],
2506                match[6],
2507                match[7]
2508            );
2509            if (!checkWeekday(match[1], parsedArray, config)) {
2510                return;
2511            }
2512
2513            config._a = parsedArray;
2514            config._tzm = calculateOffset(match[8], match[9], match[10]);
2515
2516            config._d = createUTCDate.apply(null, config._a);
2517            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2518
2519            getParsingFlags(config).rfc2822 = true;
2520        } else {
2521            config._isValid = false;
2522        }
2523    }
2524
2525    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
2526    function configFromString(config) {
2527        var matched = aspNetJsonRegex.exec(config._i);
2528        if (matched !== null) {
2529            config._d = new Date(+matched[1]);
2530            return;
2531        }
2532
2533        configFromISO(config);
2534        if (config._isValid === false) {
2535            delete config._isValid;
2536        } else {
2537            return;
2538        }
2539
2540        configFromRFC2822(config);
2541        if (config._isValid === false) {
2542            delete config._isValid;
2543        } else {
2544            return;
2545        }
2546
2547        if (config._strict) {
2548            config._isValid = false;
2549        } else {
2550            // Final attempt, use Input Fallback
2551            hooks.createFromInputFallback(config);
2552        }
2553    }
2554
2555    hooks.createFromInputFallback = deprecate(
2556        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2557            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2558            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2559        function (config) {
2560            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2561        }
2562    );
2563
2564    // Pick the first defined of two or three arguments.
2565    function defaults(a, b, c) {
2566        if (a != null) {
2567            return a;
2568        }
2569        if (b != null) {
2570            return b;
2571        }
2572        return c;
2573    }
2574
2575    function currentDateArray(config
vendor: 17,694 bytes, lines 2575-3136
2575) {
2576        // hooks is actually the exported moment object
2577        var nowValue = new Date(hooks.now());
2578        if (config._useUTC) {
2579            return [
2580                nowValue.getUTCFullYear(),
2581                nowValue.getUTCMonth(),
2582                nowValue.getUTCDate(),
2583            ];
2584        }
2585        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2586    }
2587
2588    // convert an array to a date.
2589    // the array should mirror the parameters below
2590    // note: all values past the year are optional and will default to the lowest possible value.
2591    // [year, month, day , hour, minute, second, millisecond]
2592    function configFromArray(config) {
2593        var i,
2594            date,
2595            input = [],
2596            currentDate,
2597            expectedWeekday,
2598            yearToUse;
2599
2600        if (config._d) {
2601            return;
2602        }
2603
2604        currentDate = currentDateArray(config);
2605
2606        //compute day of the year from weeks and weekdays
2607        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2608            dayOfYearFromWeekInfo(config);
2609        }
2610
2611        //if the day of the year is set, figure out what it is
2612        if (config._dayOfYear != null) {
2613            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2614
2615            if (
2616                config._dayOfYear > daysInYear(yearToUse) ||
2617                config._dayOfYear === 0
2618            ) {
2619                getParsingFlags(config)._overflowDayOfYear = true;
2620            }
2621
2622            date = createUTCDate(yearToUse, 0, config._dayOfYear);
2623            config._a[MONTH] = date.getUTCMonth();
2624            config._a[DATE] = date.getUTCDate();
2625        }
2626
2627        // Default to current date.
2628        // * if no year, month, day of month are given, default to today
2629        // * if day of month is given, default month and year
2630        // * if month is given, default only year
2631        // * if year is given, don't default anything
2632        for (i = 0; i < 3 && config._a[i] == null; ++i) {
2633            config._a[i] = input[i] = currentDate[i];
2634        }
2635
2636        // Zero out whatever was not defaulted, including time
2637        for (; i < 7; i++) {
2638            config._a[i] = input[i] =
2639                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
2640        }
2641
2642        // Check for 24:00:00.000
2643        if (
2644            config._a[HOUR] === 24 &&
2645            config._a[MINUTE] === 0 &&
2646            config._a[SECOND] === 0 &&
2647            config._a[MILLISECOND] === 0
2648        ) {
2649            config._nextDay = true;
2650            config._a[HOUR] = 0;
2651        }
2652
2653        config._d = (config._useUTC ? createUTCDate : createDate).apply(
2654            null,
2655            input
2656        );
2657        expectedWeekday = config._useUTC
2658            ? config._d.getUTCDay()
2659            : config._d.getDay();
2660
2661        // Apply timezone offset from input. The actual utcOffset can be changed
2662        // with parseZone.
2663        if (config._tzm != null) {
2664            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2665        }
2666
2667        if (config._nextDay) {
2668            config._a[HOUR] = 24;
2669        }
2670
2671        // check for mismatching day of week
2672        if (
2673            config._w &&
2674            typeof config._w.d !== 'undefined' &&
2675            config._w.d !== expectedWeekday
2676        ) {
2677            getParsingFlags(config).weekdayMismatch = true;
2678        }
2679    }
2680
2681    function dayOfYearFromWeekInfo(config) {
2682        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
2683
2684        w = config._w;
2685        if (w.GG != null || w.W != null || w.E != null) {
2686            dow = 1;
2687            doy = 4;
2688
2689            // TODO: We need to take the current isoWeekYear, but that depends on
2690            // how we interpret now (local, utc, fixed offset). So create
2691            // a now version of current config (take local/utc/offset flags, and
2692            // create now).
2693            weekYear = defaults(
2694                w.GG,
2695                config._a[YEAR],
2696                weekOfYear(createLocal(), 1, 4).year
2697            );
2698            week = defaults(w.W, 1);
2699            weekday = defaults(w.E, 1);
2700            if (weekday < 1 || weekday > 7) {
2701                weekdayOverflow = true;
2702            }
2703        } else {
2704            dow = config._locale._week.dow;
2705            doy = config._locale._week.doy;
2706
2707            curWeek = weekOfYear(createLocal(), dow, doy);
2708
2709            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2710
2711            // Default to current week.
2712            week = defaults(w.w, curWeek.week);
2713
2714            if (w.d != null) {
2715                // weekday -- low day numbers are considered next week
2716                weekday = w.d;
2717                if (weekday < 0 || weekday > 6) {
2718                    weekdayOverflow = true;
2719                }
2720            } else if (w.e != null) {
2721                // local weekday -- counting starts from beginning of week
2722                weekday = w.e + dow;
2723                if (w.e < 0 || w.e > 6) {
2724                    weekdayOverflow = true;
2725                }
2726            } else {
2727                // default to beginning of week
2728                weekday = dow;
2729            }
2730        }
2731        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2732            getParsingFlags(config)._overflowWeeks = true;
2733        } else if (weekdayOverflow != null) {
2734            getParsingFlags(config)._overflowWeekday = true;
2735        } else {
2736            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2737            config._a[YEAR] = temp.year;
2738            config._dayOfYear = temp.dayOfYear;
2739        }
2740    }
2741
2742    // constant that refers to the ISO standard
2743    hooks.ISO_8601 = function () {};
2744
2745    // constant that refers to the RFC 2822 form
2746    hooks.RFC_2822 = function () {};
2747
2748    // date from string and format string
2749    function configFromStringAndFormat(config) {
2750        // TODO: Move this to another part of the creation flow to prevent circular deps
2751        if (config._f === hooks.ISO_8601) {
2752            configFromISO(config);
2753            return;
2754        }
2755        if (config._f === hooks.RFC_2822) {
2756            configFromRFC2822(config);
2757            return;
2758        }
2759        config._a = [];
2760        getParsingFlags(config).empty = true;
2761
2762        // This array is used to make a Date, either with `new Date` or `Date.UTC`
2763        var string = '' + config._i,
2764            i,
2765            parsedInput,
2766            tokens,
2767            token,
2768            skipped,
2769            stringLength = string.length,
2770            totalParsedInputLength = 0,
2771            era,
2772            tokenLen;
2773
2774        tokens =
2775            expandFormat(config._f, config._locale).match(formattingTokens) || [];
2776        tokenLen = tokens.length;
2777        for (i = 0; i < tokenLen; i++) {
2778            token = tokens[i];
2779            parsedInput = (string.match(getParseRegexForToken(token, config)) ||
2780                [])[0];
2781            if (parsedInput) {
2782                skipped = string.substr(0, string.indexOf(parsedInput));
2783                if (skipped.length > 0) {
2784                    getParsingFlags(config).unusedInput.push(skipped);
2785                }
2786                string = string.slice(
2787                    string.indexOf(parsedInput) + parsedInput.length
2788                );
2789                totalParsedInputLength += parsedInput.length;
2790            }
2791            // don't parse if it's not a known token
2792            if (formatTokenFunctions[token]) {
2793                if (parsedInput) {
2794                    getParsingFlags(config).empty = false;
2795                } else {
2796                    getParsingFlags(config).unusedTokens.push(token);
2797                }
2798                addTimeToArrayFromToken(token, parsedInput, config);
2799            } else if (config._strict && !parsedInput) {
2800                getParsingFlags(config).unusedTokens.push(token);
2801            }
2802        }
2803
2804        // add remaining unparsed input length to the string
2805        getParsingFlags(config).charsLeftOver =
2806            stringLength - totalParsedInputLength;
2807        if (string.length > 0) {
2808            getParsingFlags(config).unusedInput.push(string);
2809        }
2810
2811        // clear _12h flag if hour is <= 12
2812        if (
2813            config._a[HOUR] <= 12 &&
2814            getParsingFlags(config).bigHour === true &&
2815            config._a[HOUR] > 0
2816        ) {
2817            getParsingFlags(config).bigHour = undefined;
2818        }
2819
2820        getParsingFlags(config).parsedDateParts = config._a.slice(0);
2821        getParsingFlags(config).meridiem = config._meridiem;
2822        // handle meridiem
2823        config._a[HOUR] = meridiemFixWrap(
2824            config._locale,
2825            config._a[HOUR],
2826            config._meridiem
2827        );
2828
2829        // handle era
2830        era = getParsingFlags(config).era;
2831        if (era !== null) {
2832            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
2833        }
2834
2835        configFromArray(config);
2836        checkOverflow(config);
2837    }
2838
2839    function meridiemFixWrap(locale, hour, meridiem) {
2840        var isPm;
2841
2842        if (meridiem == null) {
2843            // nothing to do
2844            return hour;
2845        }
2846        if (locale.meridiemHour != null) {
2847            return locale.meridiemHour(hour, meridiem);
2848        } else if (locale.isPM != null) {
2849            // Fallback
2850            isPm = locale.isPM(meridiem);
2851            if (isPm && hour < 12) {
2852                hour += 12;
2853            }
2854            if (!isPm && hour === 12) {
2855                hour = 0;
2856            }
2857            return hour;
2858        } else {
2859            // this is not supposed to happen
2860            return hour;
2861        }
2862    }
2863
2864    // date from string and array of format strings
2865    function configFromStringAndArray(config) {
2866        var tempConfig,
2867            bestMoment,
2868            scoreToBeat,
2869            i,
2870            currentScore,
2871            validFormatFound,
2872            bestFormatIsValid = false,
2873            configfLen = config._f.length;
2874
2875        if (configfLen === 0) {
2876            getParsingFlags(config).invalidFormat = true;
2877            config._d = new Date(NaN);
2878            return;
2879        }
2880
2881        for (i = 0; i < configfLen; i++) {
2882            currentScore = 0;
2883            validFormatFound = false;
2884            tempConfig = copyConfig({}, config);
2885            if (config._useUTC != null) {
2886                tempConfig._useUTC = config._useUTC;
2887            }
2888            tempConfig._f = config._f[i];
2889            configFromStringAndFormat(tempConfig);
2890
2891            if (isValid(tempConfig)) {
2892                validFormatFound = true;
2893            }
2894
2895            // if there is any input that was not parsed add a penalty for that format
2896            currentScore += getParsingFlags(tempConfig).charsLeftOver;
2897
2898            //or tokens
2899            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2900
2901            getParsingFlags(tempConfig).score = currentScore;
2902
2903            if (!bestFormatIsValid) {
2904                if (
2905                    scoreToBeat == null ||
2906                    currentScore < scoreToBeat ||
2907                    validFormatFound
2908                ) {
2909                    scoreToBeat = currentScore;
2910                    bestMoment = tempConfig;
2911                    if (validFormatFound) {
2912                        bestFormatIsValid = true;
2913                    }
2914                }
2915            } else {
2916                if (currentScore < scoreToBeat) {
2917                    scoreToBeat = currentScore;
2918                    bestMoment = tempConfig;
2919                }
2920            }
2921        }
2922
2923        extend(config, bestMoment || tempConfig);
2924    }
2925
2926    function configFromObject(config) {
2927        if (config._d) {
2928            return;
2929        }
2930
2931        var i = normalizeObjectUnits(config._i),
2932            dayOrDate = i.day === undefined ? i.date : i.day;
2933        config._a = map(
2934            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
2935            function (obj) {
2936                return obj && parseInt(obj, 10);
2937            }
2938        );
2939
2940        configFromArray(config);
2941    }
2942
2943    function createFromConfig(config) {
2944        var res = new Moment(checkOverflow(prepareConfig(config)));
2945        if (res._nextDay) {
2946            // Adding is smart enough around DST
2947            res.add(1, 'd');
2948            res._nextDay = undefined;
2949        }
2950
2951        return res;
2952    }
2953
2954    function prepareConfig(config) {
2955        var input = config._i,
2956            format = config._f;
2957
2958        config._locale = config._locale || getLocale(config._l);
2959
2960        if (input === null || (format === undefined && input === '')) {
2961            return createInvalid({ nullInput: true });
2962        }
2963
2964        if (typeof input === 'string') {
2965            config._i = input = config._locale.preparse(input);
2966        }
2967
2968        if (isMoment(input)) {
2969            return new Moment(checkOverflow(input));
2970        } else if (isDate(input)) {
2971            config._d = input;
2972        } else if (isArray(format)) {
2973            configFromStringAndArray(config);
2974        } else if (format) {
2975            configFromStringAndFormat(config);
2976        } else {
2977            configFromInput(config);
2978        }
2979
2980        if (!isValid(config)) {
2981            config._d = null;
2982        }
2983
2984        return config;
2985    }
2986
2987    function configFromInput(config) {
2988        var input = config._i;
2989        if (isUndefined(input)) {
2990            config._d = new Date(hooks.now());
2991        } else if (isDate(input)) {
2992            config._d = new Date(input.valueOf());
2993        } else if (typeof input === 'string') {
2994            configFromString(config);
2995        } else if (isArray(input)) {
2996            config._a = map(input.slice(0), function (obj) {
2997                return parseInt(obj, 10);
2998            });
2999            configFromArray(config);
3000        } else if (isObject(input)) {
3001            configFromObject(config);
3002        } else if (isNumber(input)) {
3003            // from milliseconds
3004            config._d = new Date(input);
3005        } else {
3006            hooks.createFromInputFallback(config);
3007        }
3008    }
3009
3010    function createLocalOrUTC(input, format, locale, strict, isUTC) {
3011        var c = {};
3012
3013        if (format === true || format === false) {
3014            strict = format;
3015            format = undefined;
3016        }
3017
3018        if (locale === true || locale === false) {
3019            strict = locale;
3020            locale = undefined;
3021        }
3022
3023        if (
3024            (isObject(input) && isObjectEmpty(input)) ||
3025            (isArray(input) && input.length === 0)
3026        ) {
3027            input = undefined;
3028        }
3029        // object construction must be done this way.
3030        // https://github.com/moment/moment/issues/1423
3031        c._isAMomentObject = true;
3032        c._useUTC = c._isUTC = isUTC;
3033        c._l = locale;
3034        c._i = input;
3035        c._f = format;
3036        c._strict = strict;
3037
3038        return createFromConfig(c);
3039    }
3040
3041    function createLocal(input, format, locale, strict) {
3042        return createLocalOrUTC(input, format, locale, strict, false);
3043    }
3044
3045    var prototypeMin = deprecate(
3046            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
3047            function () {
3048                var other = createLocal.apply(null, arguments);
3049                if (this.isValid() && other.isValid()) {
3050                    return other < this ? this : other;
3051                } else {
3052                    return createInvalid();
3053                }
3054            }
3055        ),
3056        prototypeMax = deprecate(
3057            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
3058            function () {
3059                var other = createLocal.apply(null, arguments);
3060                if (this.isValid() && other.isValid()) {
3061                    return other > this ? this : other;
3062                } else {
3063                    return createInvalid();
3064                }
3065            }
3066        );
3067
3068    // Pick a moment m from moments so that m[fn](other) is true for all
3069    // other. This relies on the function fn to be transitive.
3070    //
3071    // moments should either be an array of moment objects or an array, whose
3072    // first element is an array of moment objects.
3073    function pickBy(fn, moments) {
3074        var res, i;
3075        if (moments.length === 1 && isArray(moments[0])) {
3076            moments = moments[0];
3077        }
3078        if (!moments.length) {
3079            return createLocal();
3080        }
3081        res = moments[0];
3082        for (i = 1; i < moments.length; ++i) {
3083            if (!moments[i].isValid() || moments[i][fn](res)) {
3084                res = moments[i];
3085            }
3086        }
3087        return res;
3088    }
3089
3090    // TODO: Use [].sort instead?
3091    function min() {
3092        var args = [].slice.call(arguments, 0);
3093
3094        return pickBy('isBefore', args);
3095    }
3096
3097    function max() {
3098        var args = [].slice.call(arguments, 0);
3099
3100        return pickBy('isAfter', args);
3101    }
3102
3103    var now = function () {
3104        return Date.now ? Date.now() : +new Date();
3105    };
3106
3107    var ordering = [
3108        'year',
3109        'quarter',
3110        'month',
3111        'week',
3112        'day',
3113        'hour',
3114        'minute',
3115        'second',
3116        'millisecond',
3117    ];
3118
3119    function isDurationValid(m) {
3120        var key,
3121            unitHasDecimal = false,
3122            i,
3123            orderLen = ordering.length;
3124        for (key in m) {
3125            if (
3126                hasOwnProp(m, key) &&
3127                !(
3128                    indexOf.call(ordering, key) !== -1 &&
3129                    (m[key] == null || !isNaN(m[key]))
3130                )
3131            ) {
3132                return false;
3133            }
3134        }
3135
3136        for (i = 0; i < orderLen
vendor: 10,251 bytes, lines 3136-3461
3136; ++i) {
3137            if (m[ordering[i]]) {
3138                if (unitHasDecimal) {
3139                    return false; // only allow non-integers for smallest unit
3140                }
3141                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
3142                    unitHasDecimal = true;
3143                }
3144            }
3145        }
3146
3147        return true;
3148    }
3149
3150    function isValid$1() {
3151        return this._isValid;
3152    }
3153
3154    function createInvalid$1() {
3155        return createDuration(NaN);
3156    }
3157
3158    function Duration(duration) {
3159        var normalizedInput = normalizeObjectUnits(duration),
3160            years = normalizedInput.year || 0,
3161            quarters = normalizedInput.quarter || 0,
3162            months = normalizedInput.month || 0,
3163            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
3164            days = normalizedInput.day || 0,
3165            hours = normalizedInput.hour || 0,
3166            minutes = normalizedInput.minute || 0,
3167            seconds = normalizedInput.second || 0,
3168            milliseconds = normalizedInput.millisecond || 0;
3169
3170        this._isValid = isDurationValid(normalizedInput);
3171
3172        // representation for dateAddRemove
3173        this._milliseconds =
3174            +milliseconds +
3175            seconds * 1e3 + // 1000
3176            minutes * 6e4 + // 1000 * 60
3177            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
3178        // Because of dateAddRemove treats 24 hours as different from a
3179        // day when working around DST, we need to store them separately
3180        this._days = +days + weeks * 7;
3181        // It is impossible to translate months into days without knowing
3182        // which months you are are talking about, so we have to store
3183        // it separately.
3184        this._months = +months + quarters * 3 + years * 12;
3185
3186        this._data = {};
3187
3188        this._locale = getLocale();
3189
3190        this._bubble();
3191    }
3192
3193    function isDuration(obj) {
3194        return obj instanceof Duration;
3195    }
3196
3197    function absRound(number) {
3198        if (number < 0) {
3199            return Math.round(-1 * number) * -1;
3200        } else {
3201            return Math.round(number);
3202        }
3203    }
3204
3205    // compare two arrays, return the number of differences
3206    function compareArrays(array1, array2, dontConvert) {
3207        var len = Math.min(array1.length, array2.length),
3208            lengthDiff = Math.abs(array1.length - array2.length),
3209            diffs = 0,
3210            i;
3211        for (i = 0; i < len; i++) {
3212            if (
3213                (dontConvert && array1[i] !== array2[i]) ||
3214                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
3215            ) {
3216                diffs++;
3217            }
3218        }
3219        return diffs + lengthDiff;
3220    }
3221
3222    // FORMATTING
3223
3224    function offset(token, separator) {
3225        addFormatToken(token, 0, 0, function () {
3226            var offset = this.utcOffset(),
3227                sign = '+';
3228            if (offset < 0) {
3229                offset = -offset;
3230                sign = '-';
3231            }
3232            return (
3233                sign +
3234                zeroFill(~~(offset / 60), 2) +
3235                separator +
3236                zeroFill(~~offset % 60, 2)
3237            );
3238        });
3239    }
3240
3241    offset('Z', ':');
3242    offset('ZZ', '');
3243
3244    // PARSING
3245
3246    addRegexToken('Z', matchShortOffset);
3247    addRegexToken('ZZ', matchShortOffset);
3248    addParseToken(['Z', 'ZZ'], function (input, array, config) {
3249        config._useUTC = true;
3250        config._tzm = offsetFromString(matchShortOffset, input);
3251    });
3252
3253    // HELPERS
3254
3255    // timezone chunker
3256    // '+10:00' > ['10',  '00']
3257    // '-1530'  > ['-15', '30']
3258    var chunkOffset = /([\+\-]|\d\d)/gi;
3259
3260    function offsetFromString(matcher, string) {
3261        var matches = (string || '').match(matcher),
3262            chunk,
3263            parts,
3264            minutes;
3265
3266        if (matches === null) {
3267            return null;
3268        }
3269
3270        chunk = matches[matches.length - 1] || [];
3271        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
3272        minutes = +(parts[1] * 60) + toInt(parts[2]);
3273
3274        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
3275    }
3276
3277    // Return a moment from input, that is local/utc/zone equivalent to model.
3278    function cloneWithOffset(input, model) {
3279        var res, diff;
3280        if (model._isUTC) {
3281            res = model.clone();
3282            diff =
3283                (isMoment(input) || isDate(input)
3284                    ? input.valueOf()
3285                    : createLocal(input).valueOf()) - res.valueOf();
3286            // Use low-level api, because this fn is low-level api.
3287            res._d.setTime(res._d.valueOf() + diff);
3288            hooks.updateOffset(res, false);
3289            return res;
3290        } else {
3291            return createLocal(input).local();
3292        }
3293    }
3294
3295    function getDateOffset(m) {
3296        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
3297        // https://github.com/moment/moment/pull/1871
3298        return -Math.round(m._d.getTimezoneOffset());
3299    }
3300
3301    // HOOKS
3302
3303    // This function will be called whenever a moment is mutated.
3304    // It is intended to keep the offset in sync with the timezone.
3305    hooks.updateOffset = function () {};
3306
3307    // MOMENTS
3308
3309    // keepLocalTime = true means only change the timezone, without
3310    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
3311    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
3312    // +0200, so we adjust the time as needed, to be valid.
3313    //
3314    // Keeping the time actually adds/subtracts (one hour)
3315    // from the actual represented time. That is why we call updateOffset
3316    // a second time. In case it wants us to change the offset again
3317    // _changeInProgress == true case, then we have to adjust, because
3318    // there is no such time in the given timezone.
3319    function getSetOffset(input, keepLocalTime, keepMinutes) {
3320        var offset = this._offset || 0,
3321            localAdjust;
3322        if (!this.isValid()) {
3323            return input != null ? this : NaN;
3324        }
3325        if (input != null) {
3326            if (typeof input === 'string') {
3327                input = offsetFromString(matchShortOffset, input);
3328                if (input === null) {
3329                    return this;
3330                }
3331            } else if (Math.abs(input) < 16 && !keepMinutes) {
3332                input = input * 60;
3333            }
3334            if (!this._isUTC && keepLocalTime) {
3335                localAdjust = getDateOffset(this);
3336            }
3337            this._offset = input;
3338            this._isUTC = true;
3339            if (localAdjust != null) {
3340                this.add(localAdjust, 'm');
3341            }
3342            if (offset !== input) {
3343                if (!keepLocalTime || this._changeInProgress) {
3344                    addSubtract(
3345                        this,
3346                        createDuration(input - offset, 'm'),
3347                        1,
3348                        false
3349                    );
3350                } else if (!this._changeInProgress) {
3351                    this._changeInProgress = true;
3352                    hooks.updateOffset(this, true);
3353                    this._changeInProgress = null;
3354                }
3355            }
3356            return this;
3357        } else {
3358            return this._isUTC ? offset : getDateOffset(this);
3359        }
3360    }
3361
3362    function getSetZone(input, keepLocalTime) {
3363        if (input != null) {
3364            if (typeof input !== 'string') {
3365                input = -input;
3366            }
3367
3368            this.utcOffset(input, keepLocalTime);
3369
3370            return this;
3371        } else {
3372            return -this.utcOffset();
3373        }
3374    }
3375
3376    function setOffsetToUTC(keepLocalTime) {
3377        return this.utcOffset(0, keepLocalTime);
3378    }
3379
3380    function setOffsetToLocal(keepLocalTime) {
3381        if (this._isUTC) {
3382            this.utcOffset(0, keepLocalTime);
3383            this._isUTC = false;
3384
3385            if (keepLocalTime) {
3386                this.subtract(getDateOffset(this), 'm');
3387            }
3388        }
3389        return this;
3390    }
3391
3392    function setOffsetToParsedOffset() {
3393        if (this._tzm != null) {
3394            this.utcOffset(this._tzm, false, true);
3395        } else if (typeof this._i === 'string') {
3396            var tZone = offsetFromString(matchOffset, this._i);
3397            if (tZone != null) {
3398                this.utcOffset(tZone);
3399            } else {
3400                this.utcOffset(0, true);
3401            }
3402        }
3403        return this;
3404    }
3405
3406    function hasAlignedHourOffset(input) {
3407        if (!this.isValid()) {
3408            return false;
3409        }
3410        input = input ? createLocal(input).utcOffset() : 0;
3411
3412        return (this.utcOffset() - input) % 60 === 0;
3413    }
3414
3415    function isDaylightSavingTime() {
3416        return (
3417            this.utcOffset() > this.clone().month(0).utcOffset() ||
3418            this.utcOffset() > this.clone().month(5).utcOffset()
3419        );
3420    }
3421
3422    function isDaylightSavingTimeShifted() {
3423        if (!isUndefined(this._isDSTShifted)) {
3424            return this._isDSTShifted;
3425        }
3426
3427        var c = {},
3428            other;
3429
3430        copyConfig(c, this);
3431        c = prepareConfig(c);
3432
3433        if (c._a) {
3434            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3435            this._isDSTShifted =
3436                this.isValid() && compareArrays(c._a, other.toArray()) > 0;
3437        } else {
3438            this._isDSTShifted = false;
3439        }
3440
3441        return this._isDSTShifted;
3442    }
3443
3444    function isLocal() {
3445        return this.isValid() ? !this._isUTC : false;
3446    }
3447
3448    function isUtcOffset() {
3449        return this.isValid() ? this._isUTC : false;
3450    }
3451
3452    function isUtc() {
3453        return this.isValid() ? this._isUTC && this._offset === 0 : false;
3454    }
3455
3456    // ASP.NET json date format regex
3457    var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
3458        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3459        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3460        // and further modified to allow for strings containing both week and day
3461        isoRegex =
vendor: 9,021 bytes, lines 3461-3751
3461
3462            /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3463
3464    function createDuration(input, key) {
3465        var duration = input,
3466            // matching against regexp is expensive, do it on demand
3467            match = null,
3468            sign,
3469            ret,
3470            diffRes;
3471
3472        if (isDuration(input)) {
3473            duration = {
3474                ms: input._milliseconds,
3475                d: input._days,
3476                M: input._months,
3477            };
3478        } else if (isNumber(input) || !isNaN(+input)) {
3479            duration = {};
3480            if (key) {
3481                duration[key] = +input;
3482            } else {
3483                duration.milliseconds = +input;
3484            }
3485        } else if ((match = aspNetRegex.exec(input))) {
3486            sign = match[1] === '-' ? -1 : 1;
3487            duration = {
3488                y: 0,
3489                d: toInt(match[DATE]) * sign,
3490                h: toInt(match[HOUR]) * sign,
3491                m: toInt(match[MINUTE]) * sign,
3492                s: toInt(match[SECOND]) * sign,
3493                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
3494            };
3495        } else if ((match = isoRegex.exec(input))) {
3496            sign = match[1] === '-' ? -1 : 1;
3497            duration = {
3498                y: parseIso(match[2], sign),
3499                M: parseIso(match[3], sign),
3500                w: parseIso(match[4], sign),
3501                d: parseIso(match[5], sign),
3502                h: parseIso(match[6], sign),
3503                m: parseIso(match[7], sign),
3504                s: parseIso(match[8], sign),
3505            };
3506        } else if (duration == null) {
3507            // checks for null or undefined
3508            duration = {};
3509        } else if (
3510            typeof duration === 'object' &&
3511            ('from' in duration || 'to' in duration)
3512        ) {
3513            diffRes = momentsDifference(
3514                createLocal(duration.from),
3515                createLocal(duration.to)
3516            );
3517
3518            duration = {};
3519            duration.ms = diffRes.milliseconds;
3520            duration.M = diffRes.months;
3521        }
3522
3523        ret = new Duration(duration);
3524
3525        if (isDuration(input) && hasOwnProp(input, '_locale')) {
3526            ret._locale = input._locale;
3527        }
3528
3529        if (isDuration(input) && hasOwnProp(input, '_isValid')) {
3530            ret._isValid = input._isValid;
3531        }
3532
3533        return ret;
3534    }
3535
3536    createDuration.fn = Duration.prototype;
3537    createDuration.invalid = createInvalid$1;
3538
3539    function parseIso(inp, sign) {
3540        // We'd normally use ~~inp for this, but unfortunately it also
3541        // converts floats to ints.
3542        // inp may be undefined, so careful calling replace on it.
3543        var res = inp && parseFloat(inp.replace(',', '.'));
3544        // apply sign while we're at it
3545        return (isNaN(res) ? 0 : res) * sign;
3546    }
3547
3548    function positiveMomentsDifference(base, other) {
3549        var res = {};
3550
3551        res.months =
3552            other.month() - base.month() + (other.year() - base.year()) * 12;
3553        if (base.clone().add(res.months, 'M').isAfter(other)) {
3554            --res.months;
3555        }
3556
3557        res.milliseconds = +other - +base.clone().add(res.months, 'M');
3558
3559        return res;
3560    }
3561
3562    function momentsDifference(base, other) {
3563        var res;
3564        if (!(base.isValid() && other.isValid())) {
3565            return { milliseconds: 0, months: 0 };
3566        }
3567
3568        other = cloneWithOffset(other, base);
3569        if (base.isBefore(other)) {
3570            res = positiveMomentsDifference(base, other);
3571        } else {
3572            res = positiveMomentsDifference(other, base);
3573            res.milliseconds = -res.milliseconds;
3574            res.months = -res.months;
3575        }
3576
3577        return res;
3578    }
3579
3580    // TODO: remove 'name' arg after deprecation is removed
3581    function createAdder(direction, name) {
3582        return function (val, period) {
3583            var dur, tmp;
3584            //invert the arguments, but complain about it
3585            if (period !== null && !isNaN(+period)) {
3586                deprecateSimple(
3587                    name,
3588                    'moment().' +
3589                        name +
3590                        '(period, number) is deprecated. Please use moment().' +
3591                        name +
3592                        '(number, period). ' +
3593                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
3594                );
3595                tmp = val;
3596                val = period;
3597                period = tmp;
3598            }
3599
3600            dur = createDuration(val, period);
3601            addSubtract(this, dur, direction);
3602            return this;
3603        };
3604    }
3605
3606    function addSubtract(mom, duration, isAdding, updateOffset) {
3607        var milliseconds = duration._milliseconds,
3608            days = absRound(duration._days),
3609            months = absRound(duration._months);
3610
3611        if (!mom.isValid()) {
3612            // No op
3613            return;
3614        }
3615
3616        updateOffset = updateOffset == null ? true : updateOffset;
3617
3618        if (months) {
3619            setMonth(mom, get(mom, 'Month') + months * isAdding);
3620        }
3621        if (days) {
3622            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3623        }
3624        if (milliseconds) {
3625            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3626        }
3627        if (updateOffset) {
3628            hooks.updateOffset(mom, days || months);
3629        }
3630    }
3631
3632    var add = createAdder(1, 'add'),
3633        subtract = createAdder(-1, 'subtract');
3634
3635    function isString(input) {
3636        return typeof input === 'string' || input instanceof String;
3637    }
3638
3639    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
3640    function isMomentInput(input) {
3641        return (
3642            isMoment(input) ||
3643            isDate(input) ||
3644            isString(input) ||
3645            isNumber(input) ||
3646            isNumberOrStringArray(input) ||
3647            isMomentInputObject(input) ||
3648            input === null ||
3649            input === undefined
3650        );
3651    }
3652
3653    function isMomentInputObject(input) {
3654        var objectTest = isObject(input) && !isObjectEmpty(input),
3655            propertyTest = false,
3656            properties = [
3657                'years',
3658                'year',
3659                'y',
3660                'months',
3661                'month',
3662                'M',
3663                'days',
3664                'day',
3665                'd',
3666                'dates',
3667                'date',
3668                'D',
3669                'hours',
3670                'hour',
3671                'h',
3672                'minutes',
3673                'minute',
3674                'm',
3675                'seconds',
3676                'second',
3677                's',
3678                'milliseconds',
3679                'millisecond',
3680                'ms',
3681            ],
3682            i,
3683            property,
3684            propertyLen = properties.length;
3685
3686        for (i = 0; i < propertyLen; i += 1) {
3687            property = properties[i];
3688            propertyTest = propertyTest || hasOwnProp(input, property);
3689        }
3690
3691        return objectTest && propertyTest;
3692    }
3693
3694    function isNumberOrStringArray(input) {
3695        var arrayTest = isArray(input),
3696            dataTypeTest = false;
3697        if (arrayTest) {
3698            dataTypeTest =
3699                input.filter(function (item) {
3700                    return !isNumber(item) && isString(input);
3701                }).length === 0;
3702        }
3703        return arrayTest && dataTypeTest;
3704    }
3705
3706    function isCalendarSpec(input) {
3707        var objectTest = isObject(input) && !isObjectEmpty(input),
3708            propertyTest = false,
3709            properties = [
3710                'sameDay',
3711                'nextDay',
3712                'lastDay',
3713                'nextWeek',
3714                'lastWeek',
3715                'sameElse',
3716            ],
3717            i,
3718            property;
3719
3720        for (i = 0; i < properties.length; i += 1) {
3721            property = properties[i];
3722            propertyTest = propertyTest || hasOwnProp(input, property);
3723        }
3724
3725        return objectTest && propertyTest;
3726    }
3727
3728    function getCalendarFormat(myMoment, now) {
3729        var diff = myMoment.diff(now, 'days', true);
3730        return diff < -6
3731            ? 'sameElse'
3732            : diff < -1
3733            ? 'lastWeek'
3734            : diff < 0
3735            ? 'lastDay'
3736            : diff < 1
3737            ? 'sameDay'
3738            : diff < 2
3739            ? 'nextDay'
3740            : diff < 7
3741            ? 'nextWeek'
3742            : 'sameElse';
3743    }
3744
3745    function calendar$1(time, formats) {
3746        // Support for single parameter, formats only overload to the calendar function
3747        if (arguments.length === 1) {
3748            if (!arguments[0]) {
3749                time = undefined;
3750                formats = undefined;
3751            } else
vendor: 17,627 bytes, lines 3751-4309
3751 if (isMomentInput(arguments[0])) {
3752                time = arguments[0];
3753                formats = undefined;
3754            } else if (isCalendarSpec(arguments[0])) {
3755                formats = arguments[0];
3756                time = undefined;
3757            }
3758        }
3759        // We want to compare the start of today, vs this.
3760        // Getting start-of-today depends on whether we're local/utc/offset or not.
3761        var now = time || createLocal(),
3762            sod = cloneWithOffset(now, this).startOf('day'),
3763            format = hooks.calendarFormat(this, sod) || 'sameElse',
3764            output =
3765                formats &&
3766                (isFunction(formats[format])
3767                    ? formats[format].call(this, now)
3768                    : formats[format]);
3769
3770        return this.format(
3771            output || this.localeData().calendar(format, this, createLocal(now))
3772        );
3773    }
3774
3775    function clone() {
3776        return new Moment(this);
3777    }
3778
3779    function isAfter(input, units) {
3780        var localInput = isMoment(input) ? input : createLocal(input);
3781        if (!(this.isValid() && localInput.isValid())) {
3782            return false;
3783        }
3784        units = normalizeUnits(units) || 'millisecond';
3785        if (units === 'millisecond') {
3786            return this.valueOf() > localInput.valueOf();
3787        } else {
3788            return localInput.valueOf() < this.clone().startOf(units).valueOf();
3789        }
3790    }
3791
3792    function isBefore(input, units) {
3793        var localInput = isMoment(input) ? input : createLocal(input);
3794        if (!(this.isValid() && localInput.isValid())) {
3795            return false;
3796        }
3797        units = normalizeUnits(units) || 'millisecond';
3798        if (units === 'millisecond') {
3799            return this.valueOf() < localInput.valueOf();
3800        } else {
3801            return this.clone().endOf(units).valueOf() < localInput.valueOf();
3802        }
3803    }
3804
3805    function isBetween(from, to, units, inclusivity) {
3806        var localFrom = isMoment(from) ? from : createLocal(from),
3807            localTo = isMoment(to) ? to : createLocal(to);
3808        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
3809            return false;
3810        }
3811        inclusivity = inclusivity || '()';
3812        return (
3813            (inclusivity[0] === '('
3814                ? this.isAfter(localFrom, units)
3815                : !this.isBefore(localFrom, units)) &&
3816            (inclusivity[1] === ')'
3817                ? this.isBefore(localTo, units)
3818                : !this.isAfter(localTo, units))
3819        );
3820    }
3821
3822    function isSame(input, units) {
3823        var localInput = isMoment(input) ? input : createLocal(input),
3824            inputMs;
3825        if (!(this.isValid() && localInput.isValid())) {
3826            return false;
3827        }
3828        units = normalizeUnits(units) || 'millisecond';
3829        if (units === 'millisecond') {
3830            return this.valueOf() === localInput.valueOf();
3831        } else {
3832            inputMs = localInput.valueOf();
3833            return (
3834                this.clone().startOf(units).valueOf() <= inputMs &&
3835                inputMs <= this.clone().endOf(units).valueOf()
3836            );
3837        }
3838    }
3839
3840    function isSameOrAfter(input, units) {
3841        return this.isSame(input, units) || this.isAfter(input, units);
3842    }
3843
3844    function isSameOrBefore(input, units) {
3845        return this.isSame(input, units) || this.isBefore(input, units);
3846    }
3847
3848    function diff(input, units, asFloat) {
3849        var that, zoneDelta, output;
3850
3851        if (!this.isValid()) {
3852            return NaN;
3853        }
3854
3855        that = cloneWithOffset(input, this);
3856
3857        if (!that.isValid()) {
3858            return NaN;
3859        }
3860
3861        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3862
3863        units = normalizeUnits(units);
3864
3865        switch (units) {
3866            case 'year':
3867                output = monthDiff(this, that) / 12;
3868                break;
3869            case 'month':
3870                output = monthDiff(this, that);
3871                break;
3872            case 'quarter':
3873                output = monthDiff(this, that) / 3;
3874                break;
3875            case 'second':
3876                output = (this - that) / 1e3;
3877                break; // 1000
3878            case 'minute':
3879                output = (this - that) / 6e4;
3880                break; // 1000 * 60
3881            case 'hour':
3882                output = (this - that) / 36e5;
3883                break; // 1000 * 60 * 60
3884            case 'day':
3885                output = (this - that - zoneDelta) / 864e5;
3886                break; // 1000 * 60 * 60 * 24, negate dst
3887            case 'week':
3888                output = (this - that - zoneDelta) / 6048e5;
3889                break; // 1000 * 60 * 60 * 24 * 7, negate dst
3890            default:
3891                output = this - that;
3892        }
3893
3894        return asFloat ? output : absFloor(output);
3895    }
3896
3897    function monthDiff(a, b) {
3898        if (a.date() < b.date()) {
3899            // end-of-month calculations work correct when the start month has more
3900            // days than the end month.
3901            return -monthDiff(b, a);
3902        }
3903        // difference in months
3904        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
3905            // b is in (anchor - 1 month, anchor + 1 month)
3906            anchor = a.clone().add(wholeMonthDiff, 'months'),
3907            anchor2,
3908            adjust;
3909
3910        if (b - anchor < 0) {
3911            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3912            // linear across the month
3913            adjust = (b - anchor) / (anchor - anchor2);
3914        } else {
3915            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3916            // linear across the month
3917            adjust = (b - anchor) / (anchor2 - anchor);
3918        }
3919
3920        //check for negative zero, return zero if negative zero
3921        return -(wholeMonthDiff + adjust) || 0;
3922    }
3923
3924    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3925    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3926
3927    function toString() {
3928        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3929    }
3930
3931    function toISOString(keepOffset) {
3932        if (!this.isValid()) {
3933            return null;
3934        }
3935        var utc = keepOffset !== true,
3936            m = utc ? this.clone().utc() : this;
3937        if (m.year() < 0 || m.year() > 9999) {
3938            return formatMoment(
3939                m,
3940                utc
3941                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
3942                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
3943            );
3944        }
3945        if (isFunction(Date.prototype.toISOString)) {
3946            // native implementation is ~50x faster, use it when we can
3947            if (utc) {
3948                return this.toDate().toISOString();
3949            } else {
3950                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
3951                    .toISOString()
3952                    .replace('Z', formatMoment(m, 'Z'));
3953            }
3954        }
3955        return formatMoment(
3956            m,
3957            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
3958        );
3959    }
3960
3961    /**
3962     * Return a human readable representation of a moment that can
3963     * also be evaluated to get a new moment which is the same
3964     *
3965     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3966     */
3967    function inspect() {
3968        if (!this.isValid()) {
3969            return 'moment.invalid(/* ' + this._i + ' */)';
3970        }
3971        var func = 'moment',
3972            zone = '',
3973            prefix,
3974            year,
3975            datetime,
3976            suffix;
3977        if (!this.isLocal()) {
3978            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3979            zone = 'Z';
3980        }
3981        prefix = '[' + func + '("]';
3982        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
3983        datetime = '-MM-DD[T]HH:mm:ss.SSS';
3984        suffix = zone + '[")]';
3985
3986        return this.format(prefix + year + datetime + suffix);
3987    }
3988
3989    function format(inputString) {
3990        if (!inputString) {
3991            inputString = this.isUtc()
3992                ? hooks.defaultFormatUtc
3993                : hooks.defaultFormat;
3994        }
3995        var output = formatMoment(this, inputString);
3996        return this.localeData().postformat(output);
3997    }
3998
3999    function from(time, withoutSuffix) {
4000        if (
4001            this.isValid() &&
4002            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
4003        ) {
4004            return createDuration({ to: this, from: time })
4005                .locale(this.locale())
4006                .humanize(!withoutSuffix);
4007        } else {
4008            return this.localeData().invalidDate();
4009        }
4010    }
4011
4012    function fromNow(withoutSuffix) {
4013        return this.from(createLocal(), withoutSuffix);
4014    }
4015
4016    function to(time, withoutSuffix) {
4017        if (
4018            this.isValid() &&
4019            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
4020        ) {
4021            return createDuration({ from: this, to: time })
4022                .locale(this.locale())
4023                .humanize(!withoutSuffix);
4024        } else {
4025            return this.localeData().invalidDate();
4026        }
4027    }
4028
4029    function toNow(withoutSuffix) {
4030        return this.to(createLocal(), withoutSuffix);
4031    }
4032
4033    // If passed a locale key, it will set the locale for this
4034    // instance.  Otherwise, it will return the locale configuration
4035    // variables for this instance.
4036    function locale(key) {
4037        var newLocaleData;
4038
4039        if (key === undefined) {
4040            return this._locale._abbr;
4041        } else {
4042            newLocaleData = getLocale(key);
4043            if (newLocaleData != null) {
4044                this._locale = newLocaleData;
4045            }
4046            return this;
4047        }
4048    }
4049
4050    var lang = deprecate(
4051        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
4052        function (key) {
4053            if (key === undefined) {
4054                return this.localeData();
4055            } else {
4056                return this.locale(key);
4057            }
4058        }
4059    );
4060
4061    function localeData() {
4062        return this._locale;
4063    }
4064
4065    var MS_PER_SECOND = 1000,
4066        MS_PER_MINUTE = 60 * MS_PER_SECOND,
4067        MS_PER_HOUR = 60 * MS_PER_MINUTE,
4068        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
4069
4070    // actual modulo - handles negative numbers (for dates before 1970):
4071    function mod$1(dividend, divisor) {
4072        return ((dividend % divisor) + divisor) % divisor;
4073    }
4074
4075    function localStartOfDate(y, m, d) {
4076        // the date constructor remaps years 0-99 to 1900-1999
4077        if (y < 100 && y >= 0) {
4078            // preserve leap years using a full 400 year cycle, then reset
4079            return new Date(y + 400, m, d) - MS_PER_400_YEARS;
4080        } else {
4081            return new Date(y, m, d).valueOf();
4082        }
4083    }
4084
4085    function utcStartOfDate(y, m, d) {
4086        // Date.UTC remaps years 0-99 to 1900-1999
4087        if (y < 100 && y >= 0) {
4088            // preserve leap years using a full 400 year cycle, then reset
4089            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
4090        } else {
4091            return Date.UTC(y, m, d);
4092        }
4093    }
4094
4095    function startOf(units) {
4096        var time, startOfDate;
4097        units = normalizeUnits(units);
4098        if (units === undefined || units === 'millisecond' || !this.isValid()) {
4099            return this;
4100        }
4101
4102        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4103
4104        switch (units) {
4105            case 'year':
4106                time = startOfDate(this.year(), 0, 1);
4107                break;
4108            case 'quarter':
4109                time = startOfDate(
4110                    this.year(),
4111                    this.month() - (this.month() % 3),
4112                    1
4113                );
4114                break;
4115            case 'month':
4116                time = startOfDate(this.year(), this.month(), 1);
4117                break;
4118            case 'week':
4119                time = startOfDate(
4120                    this.year(),
4121                    this.month(),
4122                    this.date() - this.weekday()
4123                );
4124                break;
4125            case 'isoWeek':
4126                time = startOfDate(
4127                    this.year(),
4128                    this.month(),
4129                    this.date() - (this.isoWeekday() - 1)
4130                );
4131                break;
4132            case 'day':
4133            case 'date':
4134                time = startOfDate(this.year(), this.month(), this.date());
4135                break;
4136            case 'hour':
4137                time = this._d.valueOf();
4138                time -= mod$1(
4139                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4140                    MS_PER_HOUR
4141                );
4142                break;
4143            case 'minute':
4144                time = this._d.valueOf();
4145                time -= mod$1(time, MS_PER_MINUTE);
4146                break;
4147            case 'second':
4148                time = this._d.valueOf();
4149                time -= mod$1(time, MS_PER_SECOND);
4150                break;
4151        }
4152
4153        this._d.setTime(time);
4154        hooks.updateOffset(this, true);
4155        return this;
4156    }
4157
4158    function endOf(units) {
4159        var time, startOfDate;
4160        units = normalizeUnits(units);
4161        if (units === undefined || units === 'millisecond' || !this.isValid()) {
4162            return this;
4163        }
4164
4165        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4166
4167        switch (units) {
4168            case 'year':
4169                time = startOfDate(this.year() + 1, 0, 1) - 1;
4170                break;
4171            case 'quarter':
4172                time =
4173                    startOfDate(
4174                        this.year(),
4175                        this.month() - (this.month() % 3) + 3,
4176                        1
4177                    ) - 1;
4178                break;
4179            case 'month':
4180                time = startOfDate(this.year(), this.month() + 1, 1) - 1;
4181                break;
4182            case 'week':
4183                time =
4184                    startOfDate(
4185                        this.year(),
4186                        this.month(),
4187                        this.date() - this.weekday() + 7
4188                    ) - 1;
4189                break;
4190            case 'isoWeek':
4191                time =
4192                    startOfDate(
4193                        this.year(),
4194                        this.month(),
4195                        this.date() - (this.isoWeekday() - 1) + 7
4196                    ) - 1;
4197                break;
4198            case 'day':
4199            case 'date':
4200                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
4201                break;
4202            case 'hour':
4203                time = this._d.valueOf();
4204                time +=
4205                    MS_PER_HOUR -
4206                    mod$1(
4207                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4208                        MS_PER_HOUR
4209                    ) -
4210                    1;
4211                break;
4212            case 'minute':
4213                time = this._d.valueOf();
4214                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
4215                break;
4216            case 'second':
4217                time = this._d.valueOf();
4218                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
4219                break;
4220        }
4221
4222        this._d.setTime(time);
4223        hooks.updateOffset(this, true);
4224        return this;
4225    }
4226
4227    function valueOf() {
4228        return this._d.valueOf() - (this._offset || 0) * 60000;
4229    }
4230
4231    function unix() {
4232        return Math.floor(this.valueOf() / 1000);
4233    }
4234
4235    function toDate() {
4236        return new Date(this.valueOf());
4237    }
4238
4239    function toArray() {
4240        var m = this;
4241        return [
4242            m.year(),
4243            m.month(),
4244            m.date(),
4245            m.hour(),
4246            m.minute(),
4247            m.second(),
4248            m.millisecond(),
4249        ];
4250    }
4251
4252    function toObject() {
4253        var m = this;
4254        return {
4255            years: m.year(),
4256            months: m.month(),
4257            date: m.date(),
4258            hours: m.hours(),
4259            minutes: m.minutes(),
4260            seconds: m.seconds(),
4261            milliseconds: m.milliseconds(),
4262        };
4263    }
4264
4265    function toJSON() {
4266        // new Date(NaN).toJSON() === null
4267        return this.isValid() ? this.toISOString() : null;
4268    }
4269
4270    function isValid$2() {
4271        return isValid(this);
4272    }
4273
4274    function parsingFlags() {
4275        return extend({}, getParsingFlags(this));
4276    }
4277
4278    function invalidAt() {
4279        return getParsingFlags(this).overflow;
4280    }
4281
4282    function creationData() {
4283        return {
4284            input: this._i,
4285            format: this._f,
4286            locale: this._locale,
4287            isUTC: this._isUTC,
4288            strict: this._strict,
4289        };
4290    }
4291
4292    addFormatToken('N', 0, 0, 'eraAbbr');
4293    addFormatToken('NN', 0, 0, 'eraAbbr');
4294    addFormatToken('NNN', 0, 0, 'eraAbbr');
4295    addFormatToken('NNNN', 0, 0, 'eraName');
4296    addFormatToken('NNNNN', 0, 0, 'eraNarrow');
4297
4298    addFormatToken('y', ['y', 1], 'yo', 'eraYear');
4299    addFormatToken('y', ['yy', 2], 0, 'eraYear');
4300    addFormatToken('y', ['yyy', 3], 0, 'eraYear');
4301    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
4302
4303    addRegexToken('N', matchEraAbbr);
4304    addRegexToken('NN', matchEraAbbr);
4305    addRegexToken('NNN', matchEraAbbr);
4306    addRegexToken('NNNN', matchEraName);
4307    addRegexToken('NNNNN', matchEraNarrow);
4308
4309    addParseToken(
vendor: 8,145 bytes, lines 4309-4584
4309
4310        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],
4311        function (input, array, config, token) {
4312            var era = config._locale.erasParse(input, token, config._strict);
4313            if (era) {
4314                getParsingFlags(config).era = era;
4315            } else {
4316                getParsingFlags(config).invalidEra = input;
4317            }
4318        }
4319    );
4320
4321    addRegexToken('y', matchUnsigned);
4322    addRegexToken('yy', matchUnsigned);
4323    addRegexToken('yyy', matchUnsigned);
4324    addRegexToken('yyyy', matchUnsigned);
4325    addRegexToken('yo', matchEraYearOrdinal);
4326
4327    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
4328    addParseToken(['yo'], function (input, array, config, token) {
4329        var match;
4330        if (config._locale._eraYearOrdinalRegex) {
4331            match = input.match(config._locale._eraYearOrdinalRegex);
4332        }
4333
4334        if (config._locale.eraYearOrdinalParse) {
4335            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
4336        } else {
4337            array[YEAR] = parseInt(input, 10);
4338        }
4339    });
4340
4341    function localeEras(m, format) {
4342        var i,
4343            l,
4344            date,
4345            eras = this._eras || getLocale('en')._eras;
4346        for (i = 0, l = eras.length; i < l; ++i) {
4347            switch (typeof eras[i].since) {
4348                case 'string':
4349                    // truncate time
4350                    date = hooks(eras[i].since).startOf('day');
4351                    eras[i].since = date.valueOf();
4352                    break;
4353            }
4354
4355            switch (typeof eras[i].until) {
4356                case 'undefined':
4357                    eras[i].until = +Infinity;
4358                    break;
4359                case 'string':
4360                    // truncate time
4361                    date = hooks(eras[i].until).startOf('day').valueOf();
4362                    eras[i].until = date.valueOf();
4363                    break;
4364            }
4365        }
4366        return eras;
4367    }
4368
4369    function localeErasParse(eraName, format, strict) {
4370        var i,
4371            l,
4372            eras = this.eras(),
4373            name,
4374            abbr,
4375            narrow;
4376        eraName = eraName.toUpperCase();
4377
4378        for (i = 0, l = eras.length; i < l; ++i) {
4379            name = eras[i].name.toUpperCase();
4380            abbr = eras[i].abbr.toUpperCase();
4381            narrow = eras[i].narrow.toUpperCase();
4382
4383            if (strict) {
4384                switch (format) {
4385                    case 'N':
4386                    case 'NN':
4387                    case 'NNN':
4388                        if (abbr === eraName) {
4389                            return eras[i];
4390                        }
4391                        break;
4392
4393                    case 'NNNN':
4394                        if (name === eraName) {
4395                            return eras[i];
4396                        }
4397                        break;
4398
4399                    case 'NNNNN':
4400                        if (narrow === eraName) {
4401                            return eras[i];
4402                        }
4403                        break;
4404                }
4405            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
4406                return eras[i];
4407            }
4408        }
4409    }
4410
4411    function localeErasConvertYear(era, year) {
4412        var dir = era.since <= era.until ? +1 : -1;
4413        if (year === undefined) {
4414            return hooks(era.since).year();
4415        } else {
4416            return hooks(era.since).year() + (year - era.offset) * dir;
4417        }
4418    }
4419
4420    function getEraName() {
4421        var i,
4422            l,
4423            val,
4424            eras = this.localeData().eras();
4425        for (i = 0, l = eras.length; i < l; ++i) {
4426            // truncate time
4427            val = this.clone().startOf('day').valueOf();
4428
4429            if (eras[i].since <= val && val <= eras[i].until) {
4430                return eras[i].name;
4431            }
4432            if (eras[i].until <= val && val <= eras[i].since) {
4433                return eras[i].name;
4434            }
4435        }
4436
4437        return '';
4438    }
4439
4440    function getEraNarrow() {
4441        var i,
4442            l,
4443            val,
4444            eras = this.localeData().eras();
4445        for (i = 0, l = eras.length; i < l; ++i) {
4446            // truncate time
4447            val = this.clone().startOf('day').valueOf();
4448
4449            if (eras[i].since <= val && val <= eras[i].until) {
4450                return eras[i].narrow;
4451            }
4452            if (eras[i].until <= val && val <= eras[i].since) {
4453                return eras[i].narrow;
4454            }
4455        }
4456
4457        return '';
4458    }
4459
4460    function getEraAbbr() {
4461        var i,
4462            l,
4463            val,
4464            eras = this.localeData().eras();
4465        for (i = 0, l = eras.length; i < l; ++i) {
4466            // truncate time
4467            val = this.clone().startOf('day').valueOf();
4468
4469            if (eras[i].since <= val && val <= eras[i].until) {
4470                return eras[i].abbr;
4471            }
4472            if (eras[i].until <= val && val <= eras[i].since) {
4473                return eras[i].abbr;
4474            }
4475        }
4476
4477        return '';
4478    }
4479
4480    function getEraYear() {
4481        var i,
4482            l,
4483            dir,
4484            val,
4485            eras = this.localeData().eras();
4486        for (i = 0, l = eras.length; i < l; ++i) {
4487            dir = eras[i].since <= eras[i].until ? +1 : -1;
4488
4489            // truncate time
4490            val = this.clone().startOf('day').valueOf();
4491
4492            if (
4493                (eras[i].since <= val && val <= eras[i].until) ||
4494                (eras[i].until <= val && val <= eras[i].since)
4495            ) {
4496                return (
4497                    (this.year() - hooks(eras[i].since).year()) * dir +
4498                    eras[i].offset
4499                );
4500            }
4501        }
4502
4503        return this.year();
4504    }
4505
4506    function erasNameRegex(isStrict) {
4507        if (!hasOwnProp(this, '_erasNameRegex')) {
4508            computeErasParse.call(this);
4509        }
4510        return isStrict ? this._erasNameRegex : this._erasRegex;
4511    }
4512
4513    function erasAbbrRegex(isStrict) {
4514        if (!hasOwnProp(this, '_erasAbbrRegex')) {
4515            computeErasParse.call(this);
4516        }
4517        return isStrict ? this._erasAbbrRegex : this._erasRegex;
4518    }
4519
4520    function erasNarrowRegex(isStrict) {
4521        if (!hasOwnProp(this, '_erasNarrowRegex')) {
4522            computeErasParse.call(this);
4523        }
4524        return isStrict ? this._erasNarrowRegex : this._erasRegex;
4525    }
4526
4527    function matchEraAbbr(isStrict, locale) {
4528        return locale.erasAbbrRegex(isStrict);
4529    }
4530
4531    function matchEraName(isStrict, locale) {
4532        return locale.erasNameRegex(isStrict);
4533    }
4534
4535    function matchEraNarrow(isStrict, locale) {
4536        return locale.erasNarrowRegex(isStrict);
4537    }
4538
4539    function matchEraYearOrdinal(isStrict, locale) {
4540        return locale._eraYearOrdinalRegex || matchUnsigned;
4541    }
4542
4543    function computeErasParse() {
4544        var abbrPieces = [],
4545            namePieces = [],
4546            narrowPieces = [],
4547            mixedPieces = [],
4548            i,
4549            l,
4550            eras = this.eras();
4551
4552        for (i = 0, l = eras.length; i < l; ++i) {
4553            namePieces.push(regexEscape(eras[i].name));
4554            abbrPieces.push(regexEscape(eras[i].abbr));
4555            narrowPieces.push(regexEscape(eras[i].narrow));
4556
4557            mixedPieces.push(regexEscape(eras[i].name));
4558            mixedPieces.push(regexEscape(eras[i].abbr));
4559            mixedPieces.push(regexEscape(eras[i].narrow));
4560        }
4561
4562        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
4563        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
4564        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
4565        this._erasNarrowRegex = new RegExp(
4566            '^(' + narrowPieces.join('|') + ')',
4567            'i'
4568        );
4569    }
4570
4571    // FORMATTING
4572
4573    addFormatToken(0, ['gg', 2], 0, function () {
4574        return this.weekYear() % 100;
4575    });
4576
4577    addFormatToken(0, ['GG', 2], 0, function () {
4578        return this.isoWeekYear() % 100;
4579    });
4580
4581    function addWeekYearFormatToken(token, getter) {
4582        addFormatToken(0, [token, token.length], 0, getter);
4583    }
4584
4585    addWeekYearFormatToken('gggg', 'weekYear');
4586    addWeekYearFormatToken('ggggg', 'weekYear');
4587    addWeekYearFormatToken('GGGG', 'isoWeekYear');
4588    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
4589
4590    // ALIASES
4591
4592    addUnitAlias('weekYear', 'gg');
4593    addUnitAlias('isoWeekYear', 'GG');
4594
4595    // PRIORITY
4596
4597    addUnitPriority('weekYear', 1);
4598    addUnitPriority('isoWeekYear', 1);
4599
4600    // PARSING
4601
4602    addRegexToken('G', matchSigned);
4603    addRegexToken('g', matchSigned);
4604    addRegexToken('GG', match1to2, match2);
4605    addRegexToken('gg', match1to2, match2);
4606    addRegexToken('GGGG', match1to4, match4);
4607    addRegexToken('gggg', match1to4, match4);
4608    addRegexToken('GGGGG', match1to6, match6);
4609    addRegexToken('ggggg', match1to6, match6);
4610
4611    addWeekParseToken(
4612        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],
4613        function (input, week, config, token) {
4614            week[token.substr(0, 2)] = toInt(input);
4615        }
4616    
vendor: 29,543 bytes, lines 4616-5639
4616);
4617
4618    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
4619        week[token] = hooks.parseTwoDigitYear(input);
4620    });
4621
4622    // MOMENTS
4623
4624    function getSetWeekYear(input) {
4625        return getSetWeekYearHelper.call(
4626            this,
4627            input,
4628            this.week(),
4629            this.weekday(),
4630            this.localeData()._week.dow,
4631            this.localeData()._week.doy
4632        );
4633    }
4634
4635    function getSetISOWeekYear(input) {
4636        return getSetWeekYearHelper.call(
4637            this,
4638            input,
4639            this.isoWeek(),
4640            this.isoWeekday(),
4641            1,
4642            4
4643        );
4644    }
4645
4646    function getISOWeeksInYear() {
4647        return weeksInYear(this.year(), 1, 4);
4648    }
4649
4650    function getISOWeeksInISOWeekYear() {
4651        return weeksInYear(this.isoWeekYear(), 1, 4);
4652    }
4653
4654    function getWeeksInYear() {
4655        var weekInfo = this.localeData()._week;
4656        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
4657    }
4658
4659    function getWeeksInWeekYear() {
4660        var weekInfo = this.localeData()._week;
4661        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
4662    }
4663
4664    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
4665        var weeksTarget;
4666        if (input == null) {
4667            return weekOfYear(this, dow, doy).year;
4668        } else {
4669            weeksTarget = weeksInYear(input, dow, doy);
4670            if (week > weeksTarget) {
4671                week = weeksTarget;
4672            }
4673            return setWeekAll.call(this, input, week, weekday, dow, doy);
4674        }
4675    }
4676
4677    function setWeekAll(weekYear, week, weekday, dow, doy) {
4678        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
4679            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
4680
4681        this.year(date.getUTCFullYear());
4682        this.month(date.getUTCMonth());
4683        this.date(date.getUTCDate());
4684        return this;
4685    }
4686
4687    // FORMATTING
4688
4689    addFormatToken('Q', 0, 'Qo', 'quarter');
4690
4691    // ALIASES
4692
4693    addUnitAlias('quarter', 'Q');
4694
4695    // PRIORITY
4696
4697    addUnitPriority('quarter', 7);
4698
4699    // PARSING
4700
4701    addRegexToken('Q', match1);
4702    addParseToken('Q', function (input, array) {
4703        array[MONTH] = (toInt(input) - 1) * 3;
4704    });
4705
4706    // MOMENTS
4707
4708    function getSetQuarter(input) {
4709        return input == null
4710            ? Math.ceil((this.month() + 1) / 3)
4711            : this.month((input - 1) * 3 + (this.month() % 3));
4712    }
4713
4714    // FORMATTING
4715
4716    addFormatToken('D', ['DD', 2], 'Do', 'date');
4717
4718    // ALIASES
4719
4720    addUnitAlias('date', 'D');
4721
4722    // PRIORITY
4723    addUnitPriority('date', 9);
4724
4725    // PARSING
4726
4727    addRegexToken('D', match1to2);
4728    addRegexToken('DD', match1to2, match2);
4729    addRegexToken('Do', function (isStrict, locale) {
4730        // TODO: Remove "ordinalParse" fallback in next major release.
4731        return isStrict
4732            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse
4733            : locale._dayOfMonthOrdinalParseLenient;
4734    });
4735
4736    addParseToken(['D', 'DD'], DATE);
4737    addParseToken('Do', function (input, array) {
4738        array[DATE] = toInt(input.match(match1to2)[0]);
4739    });
4740
4741    // MOMENTS
4742
4743    var getSetDayOfMonth = makeGetSet('Date', true);
4744
4745    // FORMATTING
4746
4747    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
4748
4749    // ALIASES
4750
4751    addUnitAlias('dayOfYear', 'DDD');
4752
4753    // PRIORITY
4754    addUnitPriority('dayOfYear', 4);
4755
4756    // PARSING
4757
4758    addRegexToken('DDD', match1to3);
4759    addRegexToken('DDDD', match3);
4760    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
4761        config._dayOfYear = toInt(input);
4762    });
4763
4764    // HELPERS
4765
4766    // MOMENTS
4767
4768    function getSetDayOfYear(input) {
4769        var dayOfYear =
4770            Math.round(
4771                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
4772            ) + 1;
4773        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
4774    }
4775
4776    // FORMATTING
4777
4778    addFormatToken('m', ['mm', 2], 0, 'minute');
4779
4780    // ALIASES
4781
4782    addUnitAlias('minute', 'm');
4783
4784    // PRIORITY
4785
4786    addUnitPriority('minute', 14);
4787
4788    // PARSING
4789
4790    addRegexToken('m', match1to2);
4791    addRegexToken('mm', match1to2, match2);
4792    addParseToken(['m', 'mm'], MINUTE);
4793
4794    // MOMENTS
4795
4796    var getSetMinute = makeGetSet('Minutes', false);
4797
4798    // FORMATTING
4799
4800    addFormatToken('s', ['ss', 2], 0, 'second');
4801
4802    // ALIASES
4803
4804    addUnitAlias('second', 's');
4805
4806    // PRIORITY
4807
4808    addUnitPriority('second', 15);
4809
4810    // PARSING
4811
4812    addRegexToken('s', match1to2);
4813    addRegexToken('ss', match1to2, match2);
4814    addParseToken(['s', 'ss'], SECOND);
4815
4816    // MOMENTS
4817
4818    var getSetSecond = makeGetSet('Seconds', false);
4819
4820    // FORMATTING
4821
4822    addFormatToken('S', 0, 0, function () {
4823        return ~~(this.millisecond() / 100);
4824    });
4825
4826    addFormatToken(0, ['SS', 2], 0, function () {
4827        return ~~(this.millisecond() / 10);
4828    });
4829
4830    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
4831    addFormatToken(0, ['SSSS', 4], 0, function () {
4832        return this.millisecond() * 10;
4833    });
4834    addFormatToken(0, ['SSSSS', 5], 0, function () {
4835        return this.millisecond() * 100;
4836    });
4837    addFormatToken(0, ['SSSSSS', 6], 0, function () {
4838        return this.millisecond() * 1000;
4839    });
4840    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
4841        return this.millisecond() * 10000;
4842    });
4843    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
4844        return this.millisecond() * 100000;
4845    });
4846    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
4847        return this.millisecond() * 1000000;
4848    });
4849
4850    // ALIASES
4851
4852    addUnitAlias('millisecond', 'ms');
4853
4854    // PRIORITY
4855
4856    addUnitPriority('millisecond', 16);
4857
4858    // PARSING
4859
4860    addRegexToken('S', match1to3, match1);
4861    addRegexToken('SS', match1to3, match2);
4862    addRegexToken('SSS', match1to3, match3);
4863
4864    var token, getSetMillisecond;
4865    for (token = 'SSSS'; token.length <= 9; token += 'S') {
4866        addRegexToken(token, matchUnsigned);
4867    }
4868
4869    function parseMs(input, array) {
4870        array[MILLISECOND] = toInt(('0.' + input) * 1000);
4871    }
4872
4873    for (token = 'S'; token.length <= 9; token += 'S') {
4874        addParseToken(token, parseMs);
4875    }
4876
4877    getSetMillisecond = makeGetSet('Milliseconds', false);
4878
4879    // FORMATTING
4880
4881    addFormatToken('z', 0, 0, 'zoneAbbr');
4882    addFormatToken('zz', 0, 0, 'zoneName');
4883
4884    // MOMENTS
4885
4886    function getZoneAbbr() {
4887        return this._isUTC ? 'UTC' : '';
4888    }
4889
4890    function getZoneName() {
4891        return this._isUTC ? 'Coordinated Universal Time' : '';
4892    }
4893
4894    var proto = Moment.prototype;
4895
4896    proto.add = add;
4897    proto.calendar = calendar$1;
4898    proto.clone = clone;
4899    proto.diff = diff;
4900    proto.endOf = endOf;
4901    proto.format = format;
4902    proto.from = from;
4903    proto.fromNow = fromNow;
4904    proto.to = to;
4905    proto.toNow = toNow;
4906    proto.get = stringGet;
4907    proto.invalidAt = invalidAt;
4908    proto.isAfter = isAfter;
4909    proto.isBefore = isBefore;
4910    proto.isBetween = isBetween;
4911    proto.isSame = isSame;
4912    proto.isSameOrAfter = isSameOrAfter;
4913    proto.isSameOrBefore = isSameOrBefore;
4914    proto.isValid = isValid$2;
4915    proto.lang = lang;
4916    proto.locale = locale;
4917    proto.localeData = localeData;
4918    proto.max = prototypeMax;
4919    proto.min = prototypeMin;
4920    proto.parsingFlags = parsingFlags;
4921    proto.set = stringSet;
4922    proto.startOf = startOf;
4923    proto.subtract = subtract;
4924    proto.toArray = toArray;
4925    proto.toObject = toObject;
4926    proto.toDate = toDate;
4927    proto.toISOString = toISOString;
4928    proto.inspect = inspect;
4929    if (typeof Symbol !== 'undefined' && Symbol.for != null) {
4930        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
4931            return 'Moment<' + this.format() + '>';
4932        };
4933    }
4934    proto.toJSON = toJSON;
4935    proto.toString = toString;
4936    proto.unix = unix;
4937    proto.valueOf = valueOf;
4938    proto.creationData = creationData;
4939    proto.eraName = getEraName;
4940    proto.eraNarrow = getEraNarrow;
4941    proto.eraAbbr = getEraAbbr;
4942    proto.eraYear = getEraYear;
4943    proto.year = getSetYear;
4944    proto.isLeapYear = getIsLeapYear;
4945    proto.weekYear = getSetWeekYear;
4946    proto.isoWeekYear = getSetISOWeekYear;
4947    proto.quarter = proto.quarters = getSetQuarter;
4948    proto.month = getSetMonth;
4949    proto.daysInMonth = getDaysInMonth;
4950    proto.week = proto.weeks = getSetWeek;
4951    proto.isoWeek = proto.isoWeeks = getSetISOWeek;
4952    proto.weeksInYear = getWeeksInYear;
4953    proto.weeksInWeekYear = getWeeksInWeekYear;
4954    proto.isoWeeksInYear = getISOWeeksInYear;
4955    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
4956    proto.date = getSetDayOfMonth;
4957    proto.day = proto.days = getSetDayOfWeek;
4958    proto.weekday = getSetLocaleDayOfWeek;
4959    proto.isoWeekday = getSetISODayOfWeek;
4960    proto.dayOfYear = getSetDayOfYear;
4961    proto.hour = proto.hours = getSetHour;
4962    proto.minute = proto.minutes = getSetMinute;
4963    proto.second = proto.seconds = getSetSecond;
4964    proto.millisecond = proto.milliseconds = getSetMillisecond;
4965    proto.utcOffset = getSetOffset;
4966    proto.utc = setOffsetToUTC;
4967    proto.local = setOffsetToLocal;
4968    proto.parseZone = setOffsetToParsedOffset;
4969    proto.hasAlignedHourOffset = hasAlignedHourOffset;
4970    proto.isDST = isDaylightSavingTime;
4971    proto.isLocal = isLocal;
4972    proto.isUtcOffset = isUtcOffset;
4973    proto.isUtc = isUtc;
4974    proto.isUTC = isUtc;
4975    proto.zoneAbbr = getZoneAbbr;
4976    proto.zoneName = getZoneName;
4977    proto.dates = deprecate(
4978        'dates accessor is deprecated. Use date instead.',
4979        getSetDayOfMonth
4980    );
4981    proto.months = deprecate(
4982        'months accessor is deprecated. Use month instead',
4983        getSetMonth
4984    );
4985    proto.years = deprecate(
4986        'years accessor is deprecated. Use year instead',
4987        getSetYear
4988    );
4989    proto.zone = deprecate(
4990        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
4991        getSetZone
4992    );
4993    proto.isDSTShifted = deprecate(
4994        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
4995        isDaylightSavingTimeShifted
4996    );
4997
4998    function createUnix(input) {
4999        return createLocal(input * 1000);
5000    }
5001
5002    function createInZone() {
5003        return createLocal.apply(null, arguments).parseZone();
5004    }
5005
5006    function preParsePostFormat(string) {
5007        return string;
5008    }
5009
5010    var proto$1 = Locale.prototype;
5011
5012    proto$1.calendar = calendar;
5013    proto$1.longDateFormat = longDateFormat;
5014    proto$1.invalidDate = invalidDate;
5015    proto$1.ordinal = ordinal;
5016    proto$1.preparse = preParsePostFormat;
5017    proto$1.postformat = preParsePostFormat;
5018    proto$1.relativeTime = relativeTime;
5019    proto$1.pastFuture = pastFuture;
5020    proto$1.set = set;
5021    proto$1.eras = localeEras;
5022    proto$1.erasParse = localeErasParse;
5023    proto$1.erasConvertYear = localeErasConvertYear;
5024    proto$1.erasAbbrRegex = erasAbbrRegex;
5025    proto$1.erasNameRegex = erasNameRegex;
5026    proto$1.erasNarrowRegex = erasNarrowRegex;
5027
5028    proto$1.months = localeMonths;
5029    proto$1.monthsShort = localeMonthsShort;
5030    proto$1.monthsParse = localeMonthsParse;
5031    proto$1.monthsRegex = monthsRegex;
5032    proto$1.monthsShortRegex = monthsShortRegex;
5033    proto$1.week = localeWeek;
5034    proto$1.firstDayOfYear = localeFirstDayOfYear;
5035    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
5036
5037    proto$1.weekdays = localeWeekdays;
5038    proto$1.weekdaysMin = localeWeekdaysMin;
5039    proto$1.weekdaysShort = localeWeekdaysShort;
5040    proto$1.weekdaysParse = localeWeekdaysParse;
5041
5042    proto$1.weekdaysRegex = weekdaysRegex;
5043    proto$1.weekdaysShortRegex = weekdaysShortRegex;
5044    proto$1.weekdaysMinRegex = weekdaysMinRegex;
5045
5046    proto$1.isPM = localeIsPM;
5047    proto$1.meridiem = localeMeridiem;
5048
5049    function get$1(format, index, field, setter) {
5050        var locale = getLocale(),
5051            utc = createUTC().set(setter, index);
5052        return locale[field](utc, format);
5053    }
5054
5055    function listMonthsImpl(format, index, field) {
5056        if (isNumber(format)) {
5057            index = format;
5058            format = undefined;
5059        }
5060
5061        format = format || '';
5062
5063        if (index != null) {
5064            return get$1(format, index, field, 'month');
5065        }
5066
5067        var i,
5068            out = [];
5069        for (i = 0; i < 12; i++) {
5070            out[i] = get$1(format, i, field, 'month');
5071        }
5072        return out;
5073    }
5074
5075    // ()
5076    // (5)
5077    // (fmt, 5)
5078    // (fmt)
5079    // (true)
5080    // (true, 5)
5081    // (true, fmt, 5)
5082    // (true, fmt)
5083    function listWeekdaysImpl(localeSorted, format, index, field) {
5084        if (typeof localeSorted === 'boolean') {
5085            if (isNumber(format)) {
5086                index = format;
5087                format = undefined;
5088            }
5089
5090            format = format || '';
5091        } else {
5092            format = localeSorted;
5093            index = format;
5094            localeSorted = false;
5095
5096            if (isNumber(format)) {
5097                index = format;
5098                format = undefined;
5099            }
5100
5101            format = format || '';
5102        }
5103
5104        var locale = getLocale(),
5105            shift = localeSorted ? locale._week.dow : 0,
5106            i,
5107            out = [];
5108
5109        if (index != null) {
5110            return get$1(format, (index + shift) % 7, field, 'day');
5111        }
5112
5113        for (i = 0; i < 7; i++) {
5114            out[i] = get$1(format, (i + shift) % 7, field, 'day');
5115        }
5116        return out;
5117    }
5118
5119    function listMonths(format, index) {
5120        return listMonthsImpl(format, index, 'months');
5121    }
5122
5123    function listMonthsShort(format, index) {
5124        return listMonthsImpl(format, index, 'monthsShort');
5125    }
5126
5127    function listWeekdays(localeSorted, format, index) {
5128        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
5129    }
5130
5131    function listWeekdaysShort(localeSorted, format, index) {
5132        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
5133    }
5134
5135    function listWeekdaysMin(localeSorted, format, index) {
5136        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
5137    }
5138
5139    getSetGlobalLocale('en', {
5140        eras: [
5141            {
5142                since: '0001-01-01',
5143                until: +Infinity,
5144                offset: 1,
5145                name: 'Anno Domini',
5146                narrow: 'AD',
5147                abbr: 'AD',
5148            },
5149            {
5150                since: '0000-12-31',
5151                until: -Infinity,
5152                offset: 1,
5153                name: 'Before Christ',
5154                narrow: 'BC',
5155                abbr: 'BC',
5156            },
5157        ],
5158        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
5159        ordinal: function (number) {
5160            var b = number % 10,
5161                output =
5162                    toInt((number % 100) / 10) === 1
5163                        ? 'th'
5164                        : b === 1
5165                        ? 'st'
5166                        : b === 2
5167                        ? 'nd'
5168                        : b === 3
5169                        ? 'rd'
5170                        : 'th';
5171            return number + output;
5172        },
5173    });
5174
5175    // Side effect imports
5176
5177    hooks.lang = deprecate(
5178        'moment.lang is deprecated. Use moment.locale instead.',
5179        getSetGlobalLocale
5180    );
5181    hooks.langData = deprecate(
5182        'moment.langData is deprecated. Use moment.localeData instead.',
5183        getLocale
5184    );
5185
5186    var mathAbs = Math.abs;
5187
5188    function abs() {
5189        var data = this._data;
5190
5191        this._milliseconds = mathAbs(this._milliseconds);
5192        this._days = mathAbs(this._days);
5193        this._months = mathAbs(this._months);
5194
5195        data.milliseconds = mathAbs(data.milliseconds);
5196        data.seconds = mathAbs(data.seconds);
5197        data.minutes = mathAbs(data.minutes);
5198        data.hours = mathAbs(data.hours);
5199        data.months = mathAbs(data.months);
5200        data.years = mathAbs(data.years);
5201
5202        return this;
5203    }
5204
5205    function addSubtract$1(duration, input, value, direction) {
5206        var other = createDuration(input, value);
5207
5208        duration._milliseconds += direction * other._milliseconds;
5209        duration._days += direction * other._days;
5210        duration._months += direction * other._months;
5211
5212        return duration._bubble();
5213    }
5214
5215    // supports only 2.0-style add(1, 's') or add(duration)
5216    function add$1(input, value) {
5217        return addSubtract$1(this, input, value, 1);
5218    }
5219
5220    // supports only 2.0-style subtract(1, 's') or subtract(duration)
5221    function subtract$1(input, value) {
5222        return addSubtract$1(this, input, value, -1);
5223    }
5224
5225    function absCeil(number) {
5226        if (number < 0) {
5227            return Math.floor(number);
5228        } else {
5229            return Math.ceil(number);
5230        }
5231    }
5232
5233    function bubble() {
5234        var milliseconds = this._milliseconds,
5235            days = this._days,
5236            months = this._months,
5237            data = this._data,
5238            seconds,
5239            minutes,
5240            hours,
5241            years,
5242            monthsFromDays;
5243
5244        // if we have a mix of positive and negative values, bubble down first
5245        // check: https://github.com/moment/moment/issues/2166
5246        if (
5247            !(
5248                (milliseconds >= 0 && days >= 0 && months >= 0) ||
5249                (milliseconds <= 0 && days <= 0 && months <= 0)
5250            )
5251        ) {
5252            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
5253            days = 0;
5254            months = 0;
5255        }
5256
5257        // The following code bubbles up values, see the tests for
5258        // examples of what that means.
5259        data.milliseconds = milliseconds % 1000;
5260
5261        seconds = absFloor(milliseconds / 1000);
5262        data.seconds = seconds % 60;
5263
5264        minutes = absFloor(seconds / 60);
5265        data.minutes = minutes % 60;
5266
5267        hours = absFloor(minutes / 60);
5268        data.hours = hours % 24;
5269
5270        days += absFloor(hours / 24);
5271
5272        // convert days to months
5273        monthsFromDays = absFloor(daysToMonths(days));
5274        months += monthsFromDays;
5275        days -= absCeil(monthsToDays(monthsFromDays));
5276
5277        // 12 months -> 1 year
5278        years = absFloor(months / 12);
5279        months %= 12;
5280
5281        data.days = days;
5282        data.months = months;
5283        data.years = years;
5284
5285        return this;
5286    }
5287
5288    function daysToMonths(days) {
5289        // 400 years have 146097 days (taking into account leap year rules)
5290        // 400 years have 12 months === 4800
5291        return (days * 4800) / 146097;
5292    }
5293
5294    function monthsToDays(months) {
5295        // the reverse of daysToMonths
5296        return (months * 146097) / 4800;
5297    }
5298
5299    function as(units) {
5300        if (!this.isValid()) {
5301            return NaN;
5302        }
5303        var days,
5304            months,
5305            milliseconds = this._milliseconds;
5306
5307        units = normalizeUnits(units);
5308
5309        if (units === 'month' || units === 'quarter' || units === 'year') {
5310            days = this._days + milliseconds / 864e5;
5311            months = this._months + daysToMonths(days);
5312            switch (units) {
5313                case 'month':
5314                    return months;
5315                case 'quarter':
5316                    return months / 3;
5317                case 'year':
5318                    return months / 12;
5319            }
5320        } else {
5321            // handle milliseconds separately because of floating point math errors (issue #1867)
5322            days = this._days + Math.round(monthsToDays(this._months));
5323            switch (units) {
5324                case 'week':
5325                    return days / 7 + milliseconds / 6048e5;
5326                case 'day':
5327                    return days + milliseconds / 864e5;
5328                case 'hour':
5329                    return days * 24 + milliseconds / 36e5;
5330                case 'minute':
5331                    return days * 1440 + milliseconds / 6e4;
5332                case 'second':
5333                    return days * 86400 + milliseconds / 1000;
5334                // Math.floor prevents floating point math errors here
5335                case 'millisecond':
5336                    return Math.floor(days * 864e5) + milliseconds;
5337                default:
5338                    throw new Error('Unknown unit ' + units);
5339            }
5340        }
5341    }
5342
5343    // TODO: Use this.as('ms')?
5344    function valueOf$1() {
5345        if (!this.isValid()) {
5346            return NaN;
5347        }
5348        return (
5349            this._milliseconds +
5350            this._days * 864e5 +
5351            (this._months % 12) * 2592e6 +
5352            toInt(this._months / 12) * 31536e6
5353        );
5354    }
5355
5356    function makeAs(alias) {
5357        return function () {
5358            return this.as(alias);
5359        };
5360    }
5361
5362    var asMilliseconds = makeAs('ms'),
5363        asSeconds = makeAs('s'),
5364        asMinutes = makeAs('m'),
5365        asHours = makeAs('h'),
5366        asDays = makeAs('d'),
5367        asWeeks = makeAs('w'),
5368        asMonths = makeAs('M'),
5369        asQuarters = makeAs('Q'),
5370        asYears = makeAs('y');
5371
5372    function clone$1() {
5373        return createDuration(this);
5374    }
5375
5376    function get$2(units) {
5377        units = normalizeUnits(units);
5378        return this.isValid() ? this[units + 's']() : NaN;
5379    }
5380
5381    function makeGetter(name) {
5382        return function () {
5383            return this.isValid() ? this._data[name] : NaN;
5384        };
5385    }
5386
5387    var milliseconds = makeGetter('milliseconds'),
5388        seconds = makeGetter('seconds'),
5389        minutes = makeGetter('minutes'),
5390        hours = makeGetter('hours'),
5391        days = makeGetter('days'),
5392        months = makeGetter('months'),
5393        years = makeGetter('years');
5394
5395    function weeks() {
5396        return absFloor(this.days() / 7);
5397    }
5398
5399    var round = Math.round,
5400        thresholds = {
5401            ss: 44, // a few seconds to seconds
5402            s: 45, // seconds to minute
5403            m: 45, // minutes to hour
5404            h: 22, // hours to day
5405            d: 26, // days to month/week
5406            w: null, // weeks to month
5407            M: 11, // months to year
5408        };
5409
5410    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
5411    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
5412        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
5413    }
5414
5415    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
5416        var duration = createDuration(posNegDuration).abs(),
5417            seconds = round(duration.as('s')),
5418            minutes = round(duration.as('m')),
5419            hours = round(duration.as('h')),
5420            days = round(duration.as('d')),
5421            months = round(duration.as('M')),
5422            weeks = round(duration.as('w')),
5423            years = round(duration.as('y')),
5424            a =
5425                (seconds <= thresholds.ss && ['s', seconds]) ||
5426                (seconds < thresholds.s && ['ss', seconds]) ||
5427                (minutes <= 1 && ['m']) ||
5428                (minutes < thresholds.m && ['mm', minutes]) ||
5429                (hours <= 1 && ['h']) ||
5430                (hours < thresholds.h && ['hh', hours]) ||
5431                (days <= 1 && ['d']) ||
5432                (days < thresholds.d && ['dd', days]);
5433
5434        if (thresholds.w != null) {
5435            a =
5436                a ||
5437                (weeks <= 1 && ['w']) ||
5438                (weeks < thresholds.w && ['ww', weeks]);
5439        }
5440        a = a ||
5441            (months <= 1 && ['M']) ||
5442            (months < thresholds.M && ['MM', months]) ||
5443            (years <= 1 && ['y']) || ['yy', years];
5444
5445        a[2] = withoutSuffix;
5446        a[3] = +posNegDuration > 0;
5447        a[4] = locale;
5448        return substituteTimeAgo.apply(null, a);
5449    }
5450
5451    // This function allows you to set the rounding function for relative time strings
5452    function getSetRelativeTimeRounding(roundingFunction) {
5453        if (roundingFunction === undefined) {
5454            return round;
5455        }
5456        if (typeof roundingFunction === 'function') {
5457            round = roundingFunction;
5458            return true;
5459        }
5460        return false;
5461    }
5462
5463    // This function allows you to set a threshold for relative time strings
5464    function getSetRelativeTimeThreshold(threshold, limit) {
5465        if (thresholds[threshold] === undefined) {
5466            return false;
5467        }
5468        if (limit === undefined) {
5469            return thresholds[threshold];
5470        }
5471        thresholds[threshold] = limit;
5472        if (threshold === 's') {
5473            thresholds.ss = limit - 1;
5474        }
5475        return true;
5476    }
5477
5478    function humanize(argWithSuffix, argThresholds) {
5479        if (!this.isValid()) {
5480            return this.localeData().invalidDate();
5481        }
5482
5483        var withSuffix = false,
5484            th = thresholds,
5485            locale,
5486            output;
5487
5488        if (typeof argWithSuffix === 'object') {
5489            argThresholds = argWithSuffix;
5490            argWithSuffix = false;
5491        }
5492        if (typeof argWithSuffix === 'boolean') {
5493            withSuffix = argWithSuffix;
5494        }
5495        if (typeof argThresholds === 'object') {
5496            th = Object.assign({}, thresholds, argThresholds);
5497            if (argThresholds.s != null && argThresholds.ss == null) {
5498                th.ss = argThresholds.s - 1;
5499            }
5500        }
5501
5502        locale = this.localeData();
5503        output = relativeTime$1(this, !withSuffix, th, locale);
5504
5505        if (withSuffix) {
5506            output = locale.pastFuture(+this, output);
5507        }
5508
5509        return locale.postformat(output);
5510    }
5511
5512    var abs$1 = Math.abs;
5513
5514    function sign(x) {
5515        return (x > 0) - (x < 0) || +x;
5516    }
5517
5518    function toISOString$1() {
5519        // for ISO strings we do not use the normal bubbling rules:
5520        //  * milliseconds bubble up until they become hours
5521        //  * days do not bubble at all
5522        //  * months bubble up until they become years
5523        // This is because there is no context-free conversion between hours and days
5524        // (think of clock changes)
5525        // and also not between days and months (28-31 days per month)
5526        if (!this.isValid()) {
5527            return this.localeData().invalidDate();
5528        }
5529
5530        var seconds = abs$1(this._milliseconds) / 1000,
5531            days = abs$1(this._days),
5532            months = abs$1(this._months),
5533            minutes,
5534            hours,
5535            years,
5536            s,
5537            total = this.asSeconds(),
5538            totalSign,
5539            ymSign,
5540            daysSign,
5541            hmsSign;
5542
5543        if (!total) {
5544            // this is the same as C#'s (Noda) and python (isodate)...
5545            // but not other JS (goog.date)
5546            return 'P0D';
5547        }
5548
5549        // 3600 seconds -> 60 minutes -> 1 hour
5550        minutes = absFloor(seconds / 60);
5551        hours = absFloor(minutes / 60);
5552        seconds %= 60;
5553        minutes %= 60;
5554
5555        // 12 months -> 1 year
5556        years = absFloor(months / 12);
5557        months %= 12;
5558
5559        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
5560        s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
5561
5562        totalSign = total < 0 ? '-' : '';
5563        ymSign = sign(this._months) !== sign(total) ? '-' : '';
5564        daysSign = sign(this._days) !== sign(total) ? '-' : '';
5565        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
5566
5567        return (
5568            totalSign +
5569            'P' +
5570            (years ? ymSign + years + 'Y' : '') +
5571            (months ? ymSign + months + 'M' : '') +
5572            (days ? daysSign + days + 'D' : '') +
5573            (hours || minutes || seconds ? 'T' : '') +
5574            (hours ? hmsSign + hours + 'H' : '') +
5575            (minutes ? hmsSign + minutes + 'M' : '') +
5576            (seconds ? hmsSign + s + 'S' : '')
5577        );
5578    }
5579
5580    var proto$2 = Duration.prototype;
5581
5582    proto$2.isValid = isValid$1;
5583    proto$2.abs = abs;
5584    proto$2.add = add$1;
5585    proto$2.subtract = subtract$1;
5586    proto$2.as = as;
5587    proto$2.asMilliseconds = asMilliseconds;
5588    proto$2.asSeconds = asSeconds;
5589    proto$2.asMinutes = asMinutes;
5590    proto$2.asHours = asHours;
5591    proto$2.asDays = asDays;
5592    proto$2.asWeeks = asWeeks;
5593    proto$2.asMonths = asMonths;
5594    proto$2.asQuarters = asQuarters;
5595    proto$2.asYears = asYears;
5596    proto$2.valueOf = valueOf$1;
5597    proto$2._bubble = bubble;
5598    proto$2.clone = clone$1;
5599    proto$2.get = get$2;
5600    proto$2.milliseconds = milliseconds;
5601    proto$2.seconds = seconds;
5602    proto$2.minutes = minutes;
5603    proto$2.hours = hours;
5604    proto$2.days = days;
5605    proto$2.weeks = weeks;
5606    proto$2.months = months;
5607    proto$2.years = years;
5608    proto$2.humanize = humanize;
5609    proto$2.toISOString = toISOString$1;
5610    proto$2.toString = toISOString$1;
5611    proto$2.toJSON = toISOString$1;
5612    proto$2.locale = locale;
5613    proto$2.localeData = localeData;
5614
5615    proto$2.toIsoString = deprecate(
5616        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
5617        toISOString$1
5618    );
5619    proto$2.lang = lang;
5620
5621    // FORMATTING
5622
5623    addFormatToken('X', 0, 0, 'unix');
5624    addFormatToken('x', 0, 0, 'valueOf');
5625
5626    // PARSING
5627
5628    addRegexToken('x', matchSigned);
5629    addRegexToken('X', matchTimestamp);
5630    addParseToken('X', function (input, array, config) {
5631        config._d = new Date(parseFloat(input) * 1000);
5632    });
5633    addParseToken('x', function (input, array, config) {
5634        config._d = new Date(toInt(input));
5635    });
5636
5637    //! moment.js
5638
5639    hooks.version = '2.2
56399.4';
5640
5641    setHookCallback(createLocal);
5642
5643    hooks.fn = proto;
5644    hooks.min = min;
5645    hooks.max = max;
5646    hooks.now = now;
5647    hooks.utc = createUTC;
5648    hooks.unix = createUnix;
5649    hooks.months = listMonths;
5650    hooks.isDate = isDate;
5651    hooks.locale = getSetGlobalLocale;
5652    hooks.invalid = createInvalid;
5653    hooks.duration = createDuration;
5654    hooks.isMoment = isMoment;
5655    hooks.weekdays = listWeekdays;
5656    hooks.parseZone = createInZone;
5657    hooks.localeData = getLocale;
5658    hooks.isDuration = isDuration;
5659    hooks.monthsShort = listMonthsShort;
5660    hooks.weekdaysMin = listWeekdaysMin;
5661    hooks.defineLocale = defineLocale;
5662    hooks.updateLocale = updateLocale;
5663    hooks.locales = listLocales;
5664    hooks.weekdaysShort = listWeekdaysShort;
5665    hooks.normalizeUnits = normalizeUnits;
5666    hooks.relativeTimeRounding = getSetRelativeTimeRounding;
5667    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
5668    hooks.calendarFormat = getCalendarFormat;
5669    hooks.prototype = proto;
5670
5671    // currently HTML5 input type only supports 24-hour formats
5672    hooks.HTML5_FMT = {
5673        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
5674        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
5675        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
5676        DATE: 'YYYY-MM-DD', // <input type="date" />
5677        TIME: 'HH:mm', // <input type="time" />
5678        TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
5679        TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
5680        WEEK: 'GGGG-[W]WW', // <input type="week" />
5681        MONTH: 'YYYY-MM', // <input type="month" />
5682    };
5683
5684    //! moment.js locale configuration
5685
5686    hooks.defineLocale('af', {
5687        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
5688            '_'
5689        ),
5690        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
5691        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
5692            '_'
5693        ),
5694        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
5695        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
5696        meridiemParse: /vm|nm/i,
5697        isPM: function (input) {
5698            return /^nm$/i.test(input);
5699        },
5700        meridiem: function (hours, minutes, isLower) {
5701            if (hours < 12) {
5702                return isLower ? 'vm' : 'VM';
5703            } else {
5704                return isLower ? 'nm' : 'NM';
5705            }
5706        },
5707        longDateFormat: {
5708            LT: 'HH:mm',
5709            LTS: 'HH:mm:ss',
5710            L: 'DD/MM/YYYY',
5711            LL: 'D MMMM YYYY',
5712            LLL: 'D MMMM YYYY HH:mm',
5713            LLLL: 'dddd, D MMMM YYYY HH:mm',
5714        },
5715        calendar: {
5716            sameDay: '[Vandag om] LT',
5717            nextDay: '[Môre om] LT',
5718            nextWeek: 'dddd [om] LT',
5719            lastDay: '[Gister om] LT',
5720            lastWeek: '[Laas] dddd [om] LT',
5721            sameElse: 'L',
5722        },
5723        relativeTime: {
vendor: 16,384 bytes, lines 5724-6221
5724            future: 'oor %s',
5725            past: '%s gelede',
5726            s: "'n paar sekondes",
5727            ss: '%d sekondes',
5728            m: "'n minuut",
5729            mm: '%d minute',
5730            h: "'n uur",
5731            hh: '%d ure',
5732            d: "'n dag",
5733            dd: '%d dae',
5734            M: "'n maand",
5735            MM: '%d maande',
5736            y: "'n jaar",
5737            yy: '%d jaar',
5738        },
5739        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
5740        ordinal: function (number) {
5741            return (
5742                number +
5743                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
5744            ); // Thanks to Joris Röling : https://github.com/jjupiter
5745        },
5746        week: {
5747            dow: 1, // Maandag is die eerste dag van die week.
5748            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
5749        },
5750    });
5751
5752    //! moment.js locale configuration
5753
5754    var pluralForm = function (n) {
5755            return n === 0
5756                ? 0
5757                : n === 1
5758                ? 1
5759                : n === 2
5760                ? 2
5761                : n % 100 >= 3 && n % 100 <= 10
5762                ? 3
5763                : n % 100 >= 11
5764                ? 4
5765                : 5;
5766        },
5767        plurals = {
5768            s: [
5769                'أقل من ثانية',
5770                'ثانية واحدة',
5771                ['ثانيتان', 'ثانيتين'],
5772                '%d ثوان',
5773                '%d ثانية',
5774                '%d ثانية',
5775            ],
5776            m: [
5777                'أقل من دقيقة',
5778                'دقيقة واحدة',
5779                ['دقيقتان', 'دقيقتين'],
5780                '%d دقائق',
5781                '%d دقيقة',
5782                '%d دقيقة',
5783            ],
5784            h: [
5785                'أقل من ساعة',
5786                'ساعة واحدة',
5787                ['ساعتان', 'ساعتين'],
5788                '%d ساعات',
5789                '%d ساعة',
5790                '%d ساعة',
5791            ],
5792            d: [
5793                'أقل من يوم',
5794                'يوم واحد',
5795                ['يومان', 'يومين'],
5796                '%d أيام',
5797                '%d يومًا',
5798                '%d يوم',
5799            ],
5800            M: [
5801                'أقل من شهر',
5802                'شهر واحد',
5803                ['شهران', 'شهرين'],
5804                '%d أشهر',
5805                '%d شهرا',
5806                '%d شهر',
5807            ],
5808            y: [
5809                'أقل من عام',
5810                'عام واحد',
5811                ['عامان', 'عامين'],
5812                '%d أعوام',
5813                '%d عامًا',
5814                '%d عام',
5815            ],
5816        },
5817        pluralize = function (u) {
5818            return function (number, withoutSuffix, string, isFuture) {
5819                var f = pluralForm(number),
5820                    str = plurals[u][pluralForm(number)];
5821                if (f === 2) {
5822                    str = str[withoutSuffix ? 0 : 1];
5823                }
5824                return str.replace(/%d/i, number);
5825            };
5826        },
5827        months$1 = [
5828            'جانفي',
5829            'فيفري',
5830            'مارس',
5831            'أفريل',
5832            'ماي',
5833            'جوان',
5834            'جويلية',
5835            'أوت',
5836            'سبتمبر',
5837            'أكتوبر',
5838            'نوفمبر',
5839            'ديسمبر',
5840        ];
5841
5842    hooks.defineLocale('ar-dz', {
5843        months: months$1,
5844        monthsShort: months$1,
5845        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5846        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5847        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5848        weekdaysParseExact: true,
5849        longDateFormat: {
5850            LT: 'HH:mm',
5851            LTS: 'HH:mm:ss',
5852            L: 'D/\u200FM/\u200FYYYY',
5853            LL: 'D MMMM YYYY',
5854            LLL: 'D MMMM YYYY HH:mm',
5855            LLLL: 'dddd D MMMM YYYY HH:mm',
5856        },
5857        meridiemParse: /ص|م/,
5858        isPM: function (input) {
5859            return 'م' === input;
5860        },
5861        meridiem: function (hour, minute, isLower) {
5862            if (hour < 12) {
5863                return 'ص';
5864            } else {
5865                return 'م';
5866            }
5867        },
5868        calendar: {
5869            sameDay: '[اليوم عند الساعة] LT',
5870            nextDay: '[غدًا عند الساعة] LT',
5871            nextWeek: 'dddd [عند الساعة] LT',
5872            lastDay: '[أمس عند الساعة] LT',
5873            lastWeek: 'dddd [عند الساعة] LT',
5874            sameElse: 'L',
5875        },
5876        relativeTime: {
5877            future: 'بعد %s',
5878            past: 'منذ %s',
5879            s: pluralize('s'),
5880            ss: pluralize('s'),
5881            m: pluralize('m'),
5882            mm: pluralize('m'),
5883            h: pluralize('h'),
5884            hh: pluralize('h'),
5885            d: pluralize('d'),
5886            dd: pluralize('d'),
5887            M: pluralize('M'),
5888            MM: pluralize('M'),
5889            y: pluralize('y'),
5890            yy: pluralize('y'),
5891        },
5892        postformat: function (string) {
5893            return string.replace(/,/g, '،');
5894        },
5895        week: {
5896            dow: 0, // Sunday is the first day of the week.
5897            doy: 4, // The week that contains Jan 4th is the first week of the year.
5898        },
5899    });
5900
5901    //! moment.js locale configuration
5902
5903    hooks.defineLocale('ar-kw', {
5904        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5905            '_'
5906        ),
5907        monthsShort:
5908            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5909                '_'
5910            ),
5911        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5912        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
5913        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5914        weekdaysParseExact: true,
5915        longDateFormat: {
5916            LT: 'HH:mm',
5917            LTS: 'HH:mm:ss',
5918            L: 'DD/MM/YYYY',
5919            LL: 'D MMMM YYYY',
5920            LLL: 'D MMMM YYYY HH:mm',
5921            LLLL: 'dddd D MMMM YYYY HH:mm',
5922        },
5923        calendar: {
5924            sameDay: '[اليوم على الساعة] LT',
5925            nextDay: '[غدا على الساعة] LT',
5926            nextWeek: 'dddd [على الساعة] LT',
5927            lastDay: '[أمس على الساعة] LT',
5928            lastWeek: 'dddd [على الساعة] LT',
5929            sameElse: 'L',
5930        },
5931        relativeTime: {
5932            future: 'في %s',
5933            past: 'منذ %s',
5934            s: 'ثوان',
5935            ss: '%d ثانية',
5936            m: 'دقيقة',
5937            mm: '%d دقائق',
5938            h: 'ساعة',
5939            hh: '%d ساعات',
5940            d: 'يوم',
5941            dd: '%d أيام',
5942            M: 'شهر',
5943            MM: '%d أشهر',
5944            y: 'سنة',
5945            yy: '%d سنوات',
5946        },
5947        week: {
5948            dow: 0, // Sunday is the first day of the week.
5949            doy: 12, // The week that contains Jan 12th is the first week of the year.
5950        },
5951    });
5952
5953    //! moment.js locale configuration
5954
5955    var symbolMap = {
5956            1: '1',
5957            2: '2',
5958            3: '3',
5959            4: '4',
5960            5: '5',
5961            6: '6',
5962            7: '7',
5963            8: '8',
5964            9: '9',
5965            0: '0',
5966        },
5967        pluralForm$1 = function (n) {
5968            return n === 0
5969                ? 0
5970                : n === 1
5971                ? 1
5972                : n === 2
5973                ? 2
5974                : n % 100 >= 3 && n % 100 <= 10
5975                ? 3
5976                : n % 100 >= 11
5977                ? 4
5978                : 5;
5979        },
5980        plurals$1 = {
5981            s: [
5982                'أقل من ثانية',
5983                'ثانية واحدة',
5984                ['ثانيتان', 'ثانيتين'],
5985                '%d ثوان',
5986                '%d ثانية',
5987                '%d ثانية',
5988            ],
5989            m: [
5990                'أقل من دقيقة',
5991                'دقيقة واحدة',
5992                ['دقيقتان', 'دقيقتين'],
5993                '%d دقائق',
5994                '%d دقيقة',
5995                '%d دقيقة',
5996            ],
5997            h: [
5998                'أقل من ساعة',
5999                'ساعة واحدة',
6000                ['ساعتان', 'ساعتين'],
6001                '%d ساعات',
6002                '%d ساعة',
6003                '%d ساعة',
6004            ],
6005            d: [
6006                'أقل من يوم',
6007                'يوم واحد',
6008                ['يومان', 'يومين'],
6009                '%d أيام',
6010                '%d يومًا',
6011                '%d يوم',
6012            ],
6013            M: [
6014                'أقل من شهر',
6015                'شهر واحد',
6016                ['شهران', 'شهرين'],
6017                '%d أشهر',
6018                '%d شهرا',
6019                '%d شهر',
6020            ],
6021            y: [
6022                'أقل من عام',
6023                'عام واحد',
6024                ['عامان', 'عامين'],
6025                '%d أعوام',
6026                '%d عامًا',
6027                '%d عام',
6028            ],
6029        },
6030        pluralize$1 = function (u) {
6031            return function (number, withoutSuffix, string, isFuture) {
6032                var f = pluralForm$1(number),
6033                    str = plurals$1[u][pluralForm$1(number)];
6034                if (f === 2) {
6035                    str = str[withoutSuffix ? 0 : 1];
6036                }
6037                return str.replace(/%d/i, number);
6038            };
6039        },
6040        months$2 = [
6041            'يناير',
6042            'فبراير',
6043            'مارس',
6044            'أبريل',
6045            'مايو',
6046            'يونيو',
6047            'يوليو',
6048            'أغسطس',
6049            'سبتمبر',
6050            'أكتوبر',
6051            'نوفمبر',
6052            'ديسمبر',
6053        ];
6054
6055    hooks.defineLocale('ar-ly', {
6056        months: months$2,
6057        monthsShort: months$2,
6058        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6059        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6060        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6061        weekdaysParseExact: true,
6062        longDateFormat: {
6063            LT: 'HH:mm',
6064            LTS: 'HH:mm:ss',
6065            L: 'D/\u200FM/\u200FYYYY',
6066            LL: 'D MMMM YYYY',
6067            LLL: 'D MMMM YYYY HH:mm',
6068            LLLL: 'dddd D MMMM YYYY HH:mm',
6069        },
6070        meridiemParse: /ص|م/,
6071        isPM: function (input) {
6072            return 'م' === input;
6073        },
6074        meridiem: function (hour, minute, isLower) {
6075            if (hour < 12) {
6076                return 'ص';
6077            } else {
6078                return 'م';
6079            }
6080        },
6081        calendar: {
6082            sameDay: '[اليوم عند الساعة] LT',
6083            nextDay: '[غدًا عند الساعة] LT',
6084            nextWeek: 'dddd [عند الساعة] LT',
6085            lastDay: '[أمس عند الساعة] LT',
6086            lastWeek: 'dddd [عند الساعة] LT',
6087            sameElse: 'L',
6088        },
6089        relativeTime: {
6090            future: 'بعد %s',
6091            past: 'منذ %s',
6092            s: pluralize$1('s'),
6093            ss: pluralize$1('s'),
6094            m: pluralize$1('m'),
6095            mm: pluralize$1('m'),
6096            h: pluralize$1('h'),
6097            hh: pluralize$1('h'),
6098            d: pluralize$1('d'),
6099            dd: pluralize$1('d'),
6100            M: pluralize$1('M'),
6101            MM: pluralize$1('M'),
6102            y: pluralize$1('y'),
6103            yy: pluralize$1('y'),
6104        },
6105        preparse: function (string) {
6106            return string.replace(/،/g, ',');
6107        },
6108        postformat: function (string) {
6109            return string
6110                .replace(/\d/g, function (match) {
6111                    return symbolMap[match];
6112                })
6113                .replace(/,/g, '،');
6114        },
6115        week: {
6116            dow: 6, // Saturday is the first day of the week.
6117            doy: 12, // The week that contains Jan 12th is the first week of the year.
6118        },
6119    });
6120
6121    //! moment.js locale configuration
6122
6123    hooks.defineLocale('ar-ma', {
6124        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6125            '_'
6126        ),
6127        monthsShort:
6128            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6129                '_'
6130            ),
6131        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6132        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
6133        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6134        weekdaysParseExact: true,
6135        longDateFormat: {
6136            LT: 'HH:mm',
6137            LTS: 'HH:mm:ss',
6138            L: 'DD/MM/YYYY',
6139            LL: 'D MMMM YYYY',
6140            LLL: 'D MMMM YYYY HH:mm',
6141            LLLL: 'dddd D MMMM YYYY HH:mm',
6142        },
6143        calendar: {
6144            sameDay: '[اليوم على الساعة] LT',
6145            nextDay: '[غدا على الساعة] LT',
6146            nextWeek: 'dddd [على الساعة] LT',
6147            lastDay: '[أمس على الساعة] LT',
6148            lastWeek: 'dddd [على الساعة] LT',
6149            sameElse: 'L',
6150        },
6151        relativeTime: {
6152            future: 'في %s',
6153            past: 'منذ %s',
6154            s: 'ثوان',
6155            ss: '%d ثانية',
6156            m: 'دقيقة',
6157            mm: '%d دقائق',
6158            h: 'ساعة',
6159            hh: '%d ساعات',
6160            d: 'يوم',
6161            dd: '%d أيام',
6162            M: 'شهر',
6163            MM: '%d أشهر',
6164            y: 'سنة',
6165            yy: '%d سنوات',
6166        },
6167        week: {
6168            dow: 1, // Monday is the first day of the week.
6169            doy: 4, // The week that contains Jan 4th is the first week of the year.
6170        },
6171    });
6172
6173    //! moment.js locale configuration
6174
6175    var symbolMap$1 = {
6176            1: 'Ù¡',
6177            2: 'Ù¢',
6178            3: 'Ù£',
6179            4: 'Ù¤',
6180            5: 'Ù¥',
6181            6: 'Ù¦',
6182            7: 'Ù§',
6183            8: 'Ù¨',
6184            9: 'Ù©',
6185            0: 'Ù ',
6186        },
6187        numberMap = {
6188            'Ù¡': '1',
6189            'Ù¢': '2',
6190            'Ù£': '3',
6191            'Ù¤': '4',
6192            'Ù¥': '5',
6193            'Ù¦': '6',
6194            'Ù§': '7',
6195            'Ù¨': '8',
6196            'Ù©': '9',
6197            'Ù ': '0',
6198        };
6199
6200    hooks.defineLocale('ar-sa', {
6201        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6202            '_'
6203        ),
6204        monthsShort:
6205            'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6206                '_'
6207            ),
6208        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6209        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6210        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6211        weekdaysParseExact: true,
6212        longDateFormat: {
6213            LT: 'HH:mm',
6214            LTS: 'HH:mm:ss',
6215            L: 'DD/MM/YYYY',
6216            LL: 'D MMMM YYYY',
6217            LLL: 'D MMMM YYYY HH:mm',
6218            LLLL: 'dddd D MMMM YYYY HH:mm',
6219        },
6220        meridiemParse: /ص|م/,
6221        isPM: fun
vendor: 29,983 bytes, lines 6221-7070
6221ction (input) {
6222            return 'م' === input;
6223        },
6224        meridiem: function (hour, minute, isLower) {
6225            if (hour < 12) {
6226                return 'ص';
6227            } else {
6228                return 'م';
6229            }
6230        },
6231        calendar: {
6232            sameDay: '[اليوم على الساعة] LT',
6233            nextDay: '[غدا على الساعة] LT',
6234            nextWeek: 'dddd [على الساعة] LT',
6235            lastDay: '[أمس على الساعة] LT',
6236            lastWeek: 'dddd [على الساعة] LT',
6237            sameElse: 'L',
6238        },
6239        relativeTime: {
6240            future: 'في %s',
6241            past: 'منذ %s',
6242            s: 'ثوان',
6243            ss: '%d ثانية',
6244            m: 'دقيقة',
6245            mm: '%d دقائق',
6246            h: 'ساعة',
6247            hh: '%d ساعات',
6248            d: 'يوم',
6249            dd: '%d أيام',
6250            M: 'شهر',
6251            MM: '%d أشهر',
6252            y: 'سنة',
6253            yy: '%d سنوات',
6254        },
6255        preparse: function (string) {
6256            return string
6257                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6258                    return numberMap[match];
6259                })
6260                .replace(/،/g, ',');
6261        },
6262        postformat: function (string) {
6263            return string
6264                .replace(/\d/g, function (match) {
6265                    return symbolMap$1[match];
6266                })
6267                .replace(/,/g, '،');
6268        },
6269        week: {
6270            dow: 0, // Sunday is the first day of the week.
6271            doy: 6, // The week that contains Jan 6th is the first week of the year.
6272        },
6273    });
6274
6275    //! moment.js locale configuration
6276
6277    hooks.defineLocale('ar-tn', {
6278        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6279            '_'
6280        ),
6281        monthsShort:
6282            'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6283                '_'
6284            ),
6285        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6286        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6287        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6288        weekdaysParseExact: true,
6289        longDateFormat: {
6290            LT: 'HH:mm',
6291            LTS: 'HH:mm:ss',
6292            L: 'DD/MM/YYYY',
6293            LL: 'D MMMM YYYY',
6294            LLL: 'D MMMM YYYY HH:mm',
6295            LLLL: 'dddd D MMMM YYYY HH:mm',
6296        },
6297        calendar: {
6298            sameDay: '[اليوم على الساعة] LT',
6299            nextDay: '[غدا على الساعة] LT',
6300            nextWeek: 'dddd [على الساعة] LT',
6301            lastDay: '[أمس على الساعة] LT',
6302            lastWeek: 'dddd [على الساعة] LT',
6303            sameElse: 'L',
6304        },
6305        relativeTime: {
6306            future: 'في %s',
6307            past: 'منذ %s',
6308            s: 'ثوان',
6309            ss: '%d ثانية',
6310            m: 'دقيقة',
6311            mm: '%d دقائق',
6312            h: 'ساعة',
6313            hh: '%d ساعات',
6314            d: 'يوم',
6315            dd: '%d أيام',
6316            M: 'شهر',
6317            MM: '%d أشهر',
6318            y: 'سنة',
6319            yy: '%d سنوات',
6320        },
6321        week: {
6322            dow: 1, // Monday is the first day of the week.
6323            doy: 4, // The week that contains Jan 4th is the first week of the year.
6324        },
6325    });
6326
6327    //! moment.js locale configuration
6328
6329    var symbolMap$2 = {
6330            1: 'Ù¡',
6331            2: 'Ù¢',
6332            3: 'Ù£',
6333            4: 'Ù¤',
6334            5: 'Ù¥',
6335            6: 'Ù¦',
6336            7: 'Ù§',
6337            8: 'Ù¨',
6338            9: 'Ù©',
6339            0: 'Ù ',
6340        },
6341        numberMap$1 = {
6342            'Ù¡': '1',
6343            'Ù¢': '2',
6344            'Ù£': '3',
6345            'Ù¤': '4',
6346            'Ù¥': '5',
6347            'Ù¦': '6',
6348            'Ù§': '7',
6349            'Ù¨': '8',
6350            'Ù©': '9',
6351            'Ù ': '0',
6352        },
6353        pluralForm$2 = function (n) {
6354            return n === 0
6355                ? 0
6356                : n === 1
6357                ? 1
6358                : n === 2
6359                ? 2
6360                : n % 100 >= 3 && n % 100 <= 10
6361                ? 3
6362                : n % 100 >= 11
6363                ? 4
6364                : 5;
6365        },
6366        plurals$2 = {
6367            s: [
6368                'أقل من ثانية',
6369                'ثانية واحدة',
6370                ['ثانيتان', 'ثانيتين'],
6371                '%d ثوان',
6372                '%d ثانية',
6373                '%d ثانية',
6374            ],
6375            m: [
6376                'أقل من دقيقة',
6377                'دقيقة واحدة',
6378                ['دقيقتان', 'دقيقتين'],
6379                '%d دقائق',
6380                '%d دقيقة',
6381                '%d دقيقة',
6382            ],
6383            h: [
6384                'أقل من ساعة',
6385                'ساعة واحدة',
6386                ['ساعتان', 'ساعتين'],
6387                '%d ساعات',
6388                '%d ساعة',
6389                '%d ساعة',
6390            ],
6391            d: [
6392                'أقل من يوم',
6393                'يوم واحد',
6394                ['يومان', 'يومين'],
6395                '%d أيام',
6396                '%d يومًا',
6397                '%d يوم',
6398            ],
6399            M: [
6400                'أقل من شهر',
6401                'شهر واحد',
6402                ['شهران', 'شهرين'],
6403                '%d أشهر',
6404                '%d شهرا',
6405                '%d شهر',
6406            ],
6407            y: [
6408                'أقل من عام',
6409                'عام واحد',
6410                ['عامان', 'عامين'],
6411                '%d أعوام',
6412                '%d عامًا',
6413                '%d عام',
6414            ],
6415        },
6416        pluralize$2 = function (u) {
6417            return function (number, withoutSuffix, string, isFuture) {
6418                var f = pluralForm$2(number),
6419                    str = plurals$2[u][pluralForm$2(number)];
6420                if (f === 2) {
6421                    str = str[withoutSuffix ? 0 : 1];
6422                }
6423                return str.replace(/%d/i, number);
6424            };
6425        },
6426        months$3 = [
6427            'يناير',
6428            'فبراير',
6429            'مارس',
6430            'أبريل',
6431            'مايو',
6432            'يونيو',
6433            'يوليو',
6434            'أغسطس',
6435            'سبتمبر',
6436            'أكتوبر',
6437            'نوفمبر',
6438            'ديسمبر',
6439        ];
6440
6441    hooks.defineLocale('ar', {
6442        months: months$3,
6443        monthsShort: months$3,
6444        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6445        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6446        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6447        weekdaysParseExact: true,
6448        longDateFormat: {
6449            LT: 'HH:mm',
6450            LTS: 'HH:mm:ss',
6451            L: 'D/\u200FM/\u200FYYYY',
6452            LL: 'D MMMM YYYY',
6453            LLL: 'D MMMM YYYY HH:mm',
6454            LLLL: 'dddd D MMMM YYYY HH:mm',
6455        },
6456        meridiemParse: /ص|م/,
6457        isPM: function (input) {
6458            return 'م' === input;
6459        },
6460        meridiem: function (hour, minute, isLower) {
6461            if (hour < 12) {
6462                return 'ص';
6463            } else {
6464                return 'م';
6465            }
6466        },
6467        calendar: {
6468            sameDay: '[اليوم عند الساعة] LT',
6469            nextDay: '[غدًا عند الساعة] LT',
6470            nextWeek: 'dddd [عند الساعة] LT',
6471            lastDay: '[أمس عند الساعة] LT',
6472            lastWeek: 'dddd [عند الساعة] LT',
6473            sameElse: 'L',
6474        },
6475        relativeTime: {
6476            future: 'بعد %s',
6477            past: 'منذ %s',
6478            s: pluralize$2('s'),
6479            ss: pluralize$2('s'),
6480            m: pluralize$2('m'),
6481            mm: pluralize$2('m'),
6482            h: pluralize$2('h'),
6483            hh: pluralize$2('h'),
6484            d: pluralize$2('d'),
6485            dd: pluralize$2('d'),
6486            M: pluralize$2('M'),
6487            MM: pluralize$2('M'),
6488            y: pluralize$2('y'),
6489            yy: pluralize$2('y'),
6490        },
6491        preparse: function (string) {
6492            return string
6493                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6494                    return numberMap$1[match];
6495                })
6496                .replace(/،/g, ',');
6497        },
6498        postformat: function (string) {
6499            return string
6500                .replace(/\d/g, function (match) {
6501                    return symbolMap$2[match];
6502                })
6503                .replace(/,/g, '،');
6504        },
6505        week: {
6506            dow: 6, // Saturday is the first day of the week.
6507            doy: 12, // The week that contains Jan 12th is the first week of the year.
6508        },
6509    });
6510
6511    //! moment.js locale configuration
6512
6513    var suffixes = {
6514        1: '-inci',
6515        5: '-inci',
6516        8: '-inci',
6517        70: '-inci',
6518        80: '-inci',
6519        2: '-nci',
6520        7: '-nci',
6521        20: '-nci',
6522        50: '-nci',
6523        3: '-üncü',
6524        4: '-üncü',
6525        100: '-üncü',
6526        6: '-ncı',
6527        9: '-uncu',
6528        10: '-uncu',
6529        30: '-uncu',
6530        60: '-ıncı',
6531        90: '-ıncı',
6532    };
6533
6534    hooks.defineLocale('az', {
6535        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
6536            '_'
6537        ),
6538        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
6539        weekdays:
6540            'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
6541                '_'
6542            ),
6543        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
6544        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
6545        weekdaysParseExact: true,
6546        longDateFormat: {
6547            LT: 'HH:mm',
6548            LTS: 'HH:mm:ss',
6549            L: 'DD.MM.YYYY',
6550            LL: 'D MMMM YYYY',
6551            LLL: 'D MMMM YYYY HH:mm',
6552            LLLL: 'dddd, D MMMM YYYY HH:mm',
6553        },
6554        calendar: {
6555            sameDay: '[bugün saat] LT',
6556            nextDay: '[sabah saat] LT',
6557            nextWeek: '[gələn həftə] dddd [saat] LT',
6558            lastDay: '[dünən] LT',
6559            lastWeek: '[keçən həftə] dddd [saat] LT',
6560            sameElse: 'L',
6561        },
6562        relativeTime: {
6563            future: '%s sonra',
6564            past: '%s əvvəl',
6565            s: 'bir neçə saniyə',
6566            ss: '%d saniyə',
6567            m: 'bir dəqiqə',
6568            mm: '%d dəqiqə',
6569            h: 'bir saat',
6570            hh: '%d saat',
6571            d: 'bir gün',
6572            dd: '%d gün',
6573            M: 'bir ay',
6574            MM: '%d ay',
6575            y: 'bir il',
6576            yy: '%d il',
6577        },
6578        meridiemParse: /gecə|səhər|gündüz|axşam/,
6579        isPM: function (input) {
6580            return /^(gündüz|axşam)$/.test(input);
6581        },
6582        meridiem: function (hour, minute, isLower) {
6583            if (hour < 4) {
6584                return 'gecə';
6585            } else if (hour < 12) {
6586                return 'səhər';
6587            } else if (hour < 17) {
6588                return 'gündüz';
6589            } else {
6590                return 'axşam';
6591            }
6592        },
6593        dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
6594        ordinal: function (number) {
6595            if (number === 0) {
6596                // special case for zero
6597                return number + '-ıncı';
6598            }
6599            var a = number % 10,
6600                b = (number % 100) - a,
6601                c = number >= 100 ? 100 : null;
6602            return number + (suffixes[a] || suffixes[b] || suffixes[c]);
6603        },
6604        week: {
6605            dow: 1, // Monday is the first day of the week.
6606            doy: 7, // The week that contains Jan 7th is the first week of the year.
6607        },
6608    });
6609
6610    //! moment.js locale configuration
6611
6612    function plural(word, num) {
6613        var forms = word.split('_');
6614        return num % 10 === 1 && num % 100 !== 11
6615            ? forms[0]
6616            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
6617            ? forms[1]
6618            : forms[2];
6619    }
6620    function relativeTimeWithPlural(number, withoutSuffix, key) {
6621        var format = {
6622            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
6623            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
6624            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
6625            dd: 'дзень_дні_дзён',
6626            MM: 'месяц_месяцы_месяцаў',
6627            yy: 'год_гады_гадоў',
6628        };
6629        if (key === 'm') {
6630            return withoutSuffix ? 'хвіліна' : 'хвіліну';
6631        } else if (key === 'h') {
6632            return withoutSuffix ? 'гадзіна' : 'гадзіну';
6633        } else {
6634            return number + ' ' + plural(format[key], +number);
6635        }
6636    }
6637
6638    hooks.defineLocale('be', {
6639        months: {
6640            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
6641                '_'
6642            ),
6643            standalone:
6644                'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
6645                    '_'
6646                ),
6647        },
6648        monthsShort:
6649            'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
6650        weekdays: {
6651            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
6652                '_'
6653            ),
6654            standalone:
6655                'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
6656                    '_'
6657                ),
6658            isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
6659        },
6660        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6661        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6662        longDateFormat: {
6663            LT: 'HH:mm',
6664            LTS: 'HH:mm:ss',
6665            L: 'DD.MM.YYYY',
6666            LL: 'D MMMM YYYY г.',
6667            LLL: 'D MMMM YYYY г., HH:mm',
6668            LLLL: 'dddd, D MMMM YYYY г., HH:mm',
6669        },
6670        calendar: {
6671            sameDay: '[Сёння ў] LT',
6672            nextDay: '[Заўтра ў] LT',
6673            lastDay: '[Учора ў] LT',
6674            nextWeek: function () {
6675                return '[У] dddd [ў] LT';
6676            },
6677            lastWeek: function () {
6678                switch (this.day()) {
6679                    case 0:
6680                    case 3:
6681                    case 5:
6682                    case 6:
6683                        return '[У мінулую] dddd [ў] LT';
6684                    case 1:
6685                    case 2:
6686                    case 4:
6687                        return '[У мінулы] dddd [ў] LT';
6688                }
6689            },
6690            sameElse: 'L',
6691        },
6692        relativeTime: {
6693            future: 'праз %s',
6694            past: '%s таму',
6695            s: 'некалькі секунд',
6696            m: relativeTimeWithPlural,
6697            mm: relativeTimeWithPlural,
6698            h: relativeTimeWithPlural,
6699            hh: relativeTimeWithPlural,
6700            d: 'дзень',
6701            dd: relativeTimeWithPlural,
6702            M: 'месяц',
6703            MM: relativeTimeWithPlural,
6704            y: 'год',
6705            yy: relativeTimeWithPlural,
6706        },
6707        meridiemParse: /ночы|раніцы|дня|вечара/,
6708        isPM: function (input) {
6709            return /^(дня|вечара)$/.test(input);
6710        },
6711        meridiem: function (hour, minute, isLower) {
6712            if (hour < 4) {
6713                return 'ночы';
6714            } else if (hour < 12) {
6715                return 'раніцы';
6716            } else if (hour < 17) {
6717                return 'дня';
6718            } else {
6719                return 'вечара';
6720            }
6721        },
6722        dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
6723        ordinal: function (number, period) {
6724            switch (period) {
6725                case 'M':
6726                case 'd':
6727                case 'DDD':
6728                case 'w':
6729                case 'W':
6730                    return (number % 10 === 2 || number % 10 === 3) &&
6731                        number % 100 !== 12 &&
6732                        number % 100 !== 13
6733                        ? number + '-і'
6734                        : number + '-ы';
6735                case 'D':
6736                    return number + '-га';
6737                default:
6738                    return number;
6739            }
6740        },
6741        week: {
6742            dow: 1, // Monday is the first day of the week.
6743            doy: 7, // The week that contains Jan 7th is the first week of the year.
6744        },
6745    });
6746
6747    //! moment.js locale configuration
6748
6749    hooks.defineLocale('bg', {
6750        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
6751            '_'
6752        ),
6753        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
6754        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
6755            '_'
6756        ),
6757        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
6758        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
6759        longDateFormat: {
6760            LT: 'H:mm',
6761            LTS: 'H:mm:ss',
6762            L: 'D.MM.YYYY',
6763            LL: 'D MMMM YYYY',
6764            LLL: 'D MMMM YYYY H:mm',
6765            LLLL: 'dddd, D MMMM YYYY H:mm',
6766        },
6767        calendar: {
6768            sameDay: '[Днес в] LT',
6769            nextDay: '[Утре в] LT',
6770            nextWeek: 'dddd [в] LT',
6771            lastDay: '[Вчера в] LT',
6772            lastWeek: function () {
6773                switch (this.day()) {
6774                    case 0:
6775                    case 3:
6776                    case 6:
6777                        return '[Миналата] dddd [в] LT';
6778                    case 1:
6779                    case 2:
6780                    case 4:
6781                    case 5:
6782                        return '[Миналия] dddd [в] LT';
6783                }
6784            },
6785            sameElse: 'L',
6786        },
6787        relativeTime: {
6788            future: 'след %s',
6789            past: 'преди %s',
6790            s: 'няколко секунди',
6791            ss: '%d секунди',
6792            m: 'минута',
6793            mm: '%d минути',
6794            h: 'час',
6795            hh: '%d часа',
6796            d: 'ден',
6797            dd: '%d дена',
6798            w: 'седмица',
6799            ww: '%d седмици',
6800            M: 'месец',
6801            MM: '%d месеца',
6802            y: 'година',
6803            yy: '%d години',
6804        },
6805        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
6806        ordinal: function (number) {
6807            var lastDigit = number % 10,
6808                last2Digits = number % 100;
6809            if (number === 0) {
6810                return number + '-ев';
6811            } else if (last2Digits === 0) {
6812                return number + '-ен';
6813            } else if (last2Digits > 10 && last2Digits < 20) {
6814                return number + '-ти';
6815            } else if (lastDigit === 1) {
6816                return number + '-ви';
6817            } else if (lastDigit === 2) {
6818                return number + '-ри';
6819            } else if (lastDigit === 7 || lastDigit === 8) {
6820                return number + '-ми';
6821            } else {
6822                return number + '-ти';
6823            }
6824        },
6825        week: {
6826            dow: 1, // Monday is the first day of the week.
6827            doy: 7, // The week that contains Jan 7th is the first week of the year.
6828        },
6829    });
6830
6831    //! moment.js locale configuration
6832
6833    hooks.defineLocale('bm', {
6834        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
6835            '_'
6836        ),
6837        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
6838        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
6839        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
6840        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
6841        longDateFormat: {
6842            LT: 'HH:mm',
6843            LTS: 'HH:mm:ss',
6844            L: 'DD/MM/YYYY',
6845            LL: 'MMMM [tile] D [san] YYYY',
6846            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6847            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6848        },
6849        calendar: {
6850            sameDay: '[Bi lɛrɛ] LT',
6851            nextDay: '[Sini lɛrɛ] LT',
6852            nextWeek: 'dddd [don lɛrɛ] LT',
6853            lastDay: '[Kunu lɛrɛ] LT',
6854            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
6855            sameElse: 'L',
6856        },
6857        relativeTime: {
6858            future: '%s kɔnɔ',
6859            past: 'a bɛ %s bɔ',
6860            s: 'sanga dama dama',
6861            ss: 'sekondi %d',
6862            m: 'miniti kelen',
6863            mm: 'miniti %d',
6864            h: 'lɛrɛ kelen',
6865            hh: 'lɛrɛ %d',
6866            d: 'tile kelen',
6867            dd: 'tile %d',
6868            M: 'kalo kelen',
6869            MM: 'kalo %d',
6870            y: 'san kelen',
6871            yy: 'san %d',
6872        },
6873        week: {
6874            dow: 1, // Monday is the first day of the week.
6875            doy: 4, // The week that contains Jan 4th is the first week of the year.
6876        },
6877    });
6878
6879    //! moment.js locale configuration
6880
6881    var symbolMap$3 = {
6882            1: 'à§§',
6883            2: '২',
6884            3: 'à§©',
6885            4: '৪',
6886            5: 'à§«',
6887            6: '৬',
6888            7: 'à§­',
6889            8: 'à§®',
6890            9: '৯',
6891            0: '০',
6892        },
6893        numberMap$2 = {
6894            'à§§': '1',
6895            '২': '2',
6896            'à§©': '3',
6897            '৪': '4',
6898            'à§«': '5',
6899            '৬': '6',
6900            'à§­': '7',
6901            'à§®': '8',
6902            '৯': '9',
6903            '০': '0',
6904        };
6905
6906    hooks.defineLocale('bn-bd', {
6907        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
6908            '_'
6909        ),
6910        monthsShort:
6911            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
6912                '_'
6913            ),
6914        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
6915            '_'
6916        ),
6917        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
6918        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
6919        longDateFormat: {
6920            LT: 'A h:mm সময়',
6921            LTS: 'A h:mm:ss সময়',
6922            L: 'DD/MM/YYYY',
6923            LL: 'D MMMM YYYY',
6924            LLL: 'D MMMM YYYY, A h:mm সময়',
6925            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
6926        },
6927        calendar: {
6928            sameDay: '[আজ] LT',
6929            nextDay: '[আগামীকাল] LT',
6930            nextWeek: 'dddd, LT',
6931            lastDay: '[গতকাল] LT',
6932            lastWeek: '[গত] dddd, LT',
6933            sameElse: 'L',
6934        },
6935        relativeTime: {
6936            future: '%s পরে',
6937            past: '%s আগে',
6938            s: 'কয়েক সেকেন্ড',
6939            ss: '%d সেকেন্ড',
6940            m: 'এক মিনিট',
6941            mm: '%d মিনিট',
6942            h: 'এক ঘন্টা',
6943            hh: '%d ঘন্টা',
6944            d: 'এক দিন',
6945            dd: '%d দিন',
6946            M: 'এক মাস',
6947            MM: '%d মাস',
6948            y: 'এক বছর',
6949            yy: '%d বছর',
6950        },
6951        preparse: function (string) {
6952            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
6953                return numberMap$2[match];
6954            });
6955        },
6956        postformat: function (string) {
6957            return string.replace(/\d/g, function (match) {
6958                return symbolMap$3[match];
6959            });
6960        },
6961
6962        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
6963        meridiemHour: function (hour, meridiem) {
6964            if (hour === 12) {
6965                hour = 0;
6966            }
6967            if (meridiem === 'রাত') {
6968                return hour < 4 ? hour : hour + 12;
6969            } else if (meridiem === 'ভোর') {
6970                return hour;
6971            } else if (meridiem === 'সকাল') {
6972                return hour;
6973            } else if (meridiem === 'দুপুর') {
6974                return hour >= 3 ? hour : hour + 12;
6975            } else if (meridiem === 'বিকাল') {
6976                return hour + 12;
6977            } else if (meridiem === 'সন্ধ্যা') {
6978                return hour + 12;
6979            }
6980        },
6981
6982        meridiem: function (hour, minute, isLower) {
6983            if (hour < 4) {
6984                return 'রাত';
6985            } else if (hour < 6) {
6986                return 'ভোর';
6987            } else if (hour < 12) {
6988                return 'সকাল';
6989            } else if (hour < 15) {
6990                return 'দুপুর';
6991            } else if (hour < 18) {
6992                return 'বিকাল';
6993            } else if (hour < 20) {
6994                return 'সন্ধ্যা';
6995            } else {
6996                return 'রাত';
6997            }
6998        },
6999        week: {
7000            dow: 0, // Sunday is the first day of the week.
7001            doy: 6, // The week that contains Jan 6th is the first week of the year.
7002        },
7003    });
7004
7005    //! moment.js locale configuration
7006
7007    var symbolMap$4 = {
7008            1: 'à§§',
7009            2: '২',
7010            3: 'à§©',
7011            4: '৪',
7012            5: 'à§«',
7013            6: '৬',
7014            7: 'à§­',
7015            8: 'à§®',
7016            9: '৯',
7017            0: '০',
7018        },
7019        numberMap$3 = {
7020            'à§§': '1',
7021            '২': '2',
7022            'à§©': '3',
7023            '৪': '4',
7024            'à§«': '5',
7025            '৬': '6',
7026            'à§­': '7',
7027            'à§®': '8',
7028            '৯': '9',
7029            '০': '0',
7030        };
7031
7032    hooks.defineLocale('bn', {
7033        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
7034            '_'
7035        ),
7036        monthsShort:
7037            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
7038                '_'
7039            ),
7040        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
7041            '_'
7042        ),
7043        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
7044        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
7045        longDateFormat: {
7046            LT: 'A h:mm সময়',
7047            LTS: 'A h:mm:ss সময়',
7048            L: 'DD/MM/YYYY',
7049            LL: 'D MMMM YYYY',
7050            LLL: 'D MMMM YYYY, A h:mm সময়',
7051            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
7052        },
7053        calendar: {
7054            sameDay: '[আজ] LT',
7055            nextDay: '[আগামীকাল] LT',
7056            nextWeek: 'dddd, LT',
7057            lastDay: '[গতকাল] LT',
7058            lastWeek: '[গত] dddd, LT',
7059            sameElse: 'L',
7060        },
7061        relativeTime: {
7062            future: '%s পরে',
7063            past: '%s আগে',
7064            s: 'কয়েক সেকেন্ড',
7065            ss: '%d সেকেন্ড',
7066            m: 'এক মিনিট',
7067            mm: '%d মিনিট',
7068            h: 'এক ঘন্টা',
7069            hh: '%d ঘন্টা',
7070  
7070          d: 'এক দিন',
7071            dd: '%d দিন',
7072            M: 'এক মাস',
7073            MM: '%d মাস',
7074            y: 'এক বছর',
7075            yy: '%d বছর',
7076        },
7077        preparse: function (string) {
7078            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
7079                return numberMap$3[match];
7080            });
7081        },
7082        postformat: function (string) {
7083            return string.replace(/\d/g, function (match) {
7084                return symbolMap$4[match];
7085            });
7086        },
7087        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
7088        meridiemHour: function (hour, meridiem) {
7089            if (hour === 12) {
7090                hour = 0;
7091            }
7092            if (
7093                (meridiem === 'রাত' && hour >= 4) ||
7094                (meridiem === 'দুপুর' && hour < 5) ||
7095                meridiem === 'বিকাল'
7096            ) {
7097                return hour + 12;
7098            } else {
7099                return hour;
7100            }
7101        },
7102        meridiem: function (hour, minute, isLower) {
7103            if (hour < 4) {
7104                return 'রাত';
7105            } else if (hour < 10) {
7106                return 'সকাল';
7107            } else if (hour < 17) {
7108                return 'দুপুর';
7109            } else if (hour < 20) {
7110                return 'বিকাল';
7111            } else {
7112                return 'রাত';
7113            }
7114        },
7115        week: {
7116            dow: 0, // Sunday is the first day of the week.
7117            doy: 6, // The week that contains Jan 6th is the first week of the year.
7118        },
7119    });
7120
7121    //! moment.js locale configuration
7122
7123    var symbolMap$5 = {
7124            1: '༡',
7125            2: '༢',
7126            3: '༣',
7127            4: '༤',
7128            5: '༥',
7129            6: '༦',
7130            7: '༧',
7131            8: '༨',
7132            9: '༩',
7133            0: '༠',
7134        },
7135        numberMap$4 = {
7136            '༡': '1',
7137            '༢': '2',
7138            '༣': '3',
7139            '༤': '4',
7140            '༥': '5',
7141            '༦': '6',
7142            '༧': '7',
7143            '༨': '8',
7144            '༩': '9',
7145            '༠': '0',
7146        };
7147
7148    hooks.defineLocale('bo', {
7149        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
7150            '_'
7151        ),
7152        monthsShort:
7153            'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
7154                '_'
7155            ),
7156        monthsShortRegex: /^(ཟླ་\d{1,2})/,
7157        monthsParseExact: true,
7158        weekdays:
7159            'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
7160                '_'
7161            ),
7162        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
7163            '_'
7164        ),
7165        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
7166        longDateFormat: {
7167            LT: 'A h:mm',
7168            LTS: 'A h:mm:ss',
7169            L: 'DD/MM/YYYY',
7170            LL: 'D MMMM YYYY',
7171            LLL: 'D MMMM YYYY, A h:mm',
7172            LLLL: 'dddd, D MMMM YYYY, A h:mm',
7173        },
7174        calendar: {
7175            sameDay: '[དི་རིང] LT',
7176            nextDay: '[སང་ཉིན] LT',
7177            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
7178            lastDay: '[ཁ་སང] LT',
7179            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
7180            sameElse: 'L',
7181        },
7182        relativeTime: {
7183            future: '%s ལ་',
7184            past: '%s སྔན་ལ',
7185            s: 'ལམ་སང',
7186            ss: '%d སྐར་ཆ།',
7187            m: 'སྐར་མ་གཅིག',
7188            mm: '%d སྐར་མ',
7189            h: 'ཆུ་ཚོད་གཅིག',
7190            hh: '%d ཆུ་ཚོད',
7191            d: 'ཉིན་གཅིག',
7192            dd: '%d ཉིན་',
7193            M: 'ཟླ་བ་གཅིག',
7194            MM: '%d ཟླ་བ',
7195            y: 'ལོ་གཅིག',
7196            yy: '%d ལོ',
7197        },
7198        preparse: function (string) {
7199            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
7200                return numberMap$4[match];
7201            });
7202        },
7203        postformat: function (string) {
7204            return string.replace(/\d/g, function (match) {
7205                return symbolMap$5[match];
7206            });
7207        },
7208        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
7209        meridiemHour: function (hour, meridiem) {
7210            if (hour === 12) {
7211                hour = 0;
7212            }
7213            if (
7214                (meridiem === 'མཚན་མོ' && hour >= 4) ||
7215                (meridiem === 'ཉིན་གུང' && hour < 5) ||
7216                meridiem === 'དགོང་དག'
7217            ) {
7218                return hour + 12;
7219            } else {
7220                return hour;
7221            }
7222        },
7223        meridiem: function (hour, minute, isLower) {
7224            if (hour < 4) {
7225                return 'མཚན་མོ';
7226            } else if (hour < 10) {
7227                return 'ཞོགས་ཀས';
7228            } else if (hour < 17) {
7229                return 'ཉིན་གུང';
7230            } else if (hour < 20) {
7231                return 'དགོང་དག';
7232            } else {
7233                return 'མཚན་མོ';
7234            }
7235        },
7236        week: {
7237            dow: 0, // Sunday is the first day of the week.
7238            doy: 6, // The week that contains Jan 6th is the first week of the year.
7239        },
7240    });
7241
7242    //! moment.js locale configuration
7243
7244    function relativeTimeWithMutation(number, withoutSuffix, key) {
7245        var format = {
7246            mm: 'munutenn',
7247            MM: 'miz',
7248            dd: 'devezh',
7249        };
7250        return number + ' ' + mutation(format[key], number);
7251    }
7252    function specialMutationForYears(number) {
7253        switch (lastNumber(number)) {
7254            case 1:
7255            case 3:
7256            case 4:
7257            case 5:
7258            case 9:
7259                return number + ' bloaz';
7260            default:
7261                return number + ' vloaz';
7262        }
7263    }
7264    function lastNumber(number) {
7265        if (number > 9) {
7266            return lastNumber(number % 10);
7267        }
7268        return number;
7269    }
7270    function mutation(text, number) {
7271        if (number === 2) {
7272            return softMutation(text);
7273        }
7274        return text;
7275    }
7276    function softMutation(text) {
7277        var mutationTable = {
7278            m: 'v',
7279            b: 'v',
7280            d: 'z',
7281        };
7282        if (mutationTable[text.charAt(0)] === undefined) {
7283            return text;
7284        }
7285        return mutationTable[text.charAt(0)] + text.substring(1);
7286    }
7287
7288    var monthsParse = [
7289            /^gen/i,
7290            /^c[ʼ\']hwe/i,
7291            /^meu/i,
7292            /^ebr/i,
7293            /^mae/i,
7294            /^(mez|eve)/i,
7295            /^gou/i,
7296            /^eos/i,
7297            /^gwe/i,
7298            /^her/i,
7299            /^du/i,
7300            /^ker/i,
7301        ],
7302        monthsRegex$1 =
7303            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7304        monthsStrictRegex =
7305            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
7306        monthsShortStrictRegex =
7307            /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7308        fullWeekdaysParse = [
7309            /^sul/i,
7310            /^lun/i,
7311            /^meurzh/i,
7312            /^merc[ʼ\']her/i,
7313            /^yaou/i,
7314            /^gwener/i,
7315            /^sadorn/i,
7316        ],
7317        shortWeekdaysParse = [
7318            /^Sul/i,
7319            /^Lun/i,
7320            /^Meu/i,
7321            /^Mer/i,
7322            /^Yao/i,
7323            /^Gwe/i,
7324            /^Sad/i,
7325        ],
7326        minWeekdaysParse = [
7327            /^Su/i,
7328            /^Lu/i,
7329            /^Me([^r]|$)/i,
7330            /^Mer/i,
7331            /^Ya/i,
7332            /^Gw/i,
7333            /^Sa/i,
7334        ];
7335
7336    hooks.defineLocale('br', {
7337        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
7338            '_'
7339        ),
7340        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
7341        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
7342        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
7343        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
7344        weekdaysParse: minWeekdaysParse,
7345        fullWeekdaysParse: fullWeekdaysParse,
7346        shortWeekdaysParse: shortWeekdaysParse,
7347        minWeekdaysParse: minWeekdaysParse,
7348
7349        monthsRegex: monthsRegex$1,
7350        monthsShortRegex: monthsRegex$1,
7351        monthsStrictRegex: monthsStrictRegex,
7352        monthsShortStrictRegex: monthsShortStrictRegex,
7353        monthsParse: monthsParse,
7354        longMonthsParse: monthsParse,
7355        shortMonthsParse: monthsParse,
7356
7357        longDateFormat: {
7358            LT: 'HH:mm',
7359            LTS: 'HH:mm:ss',
7360            L: 'DD/MM/YYYY',
7361            LL: 'D [a viz] MMMM YYYY',
7362            LLL: 'D [a viz] MMMM YYYY HH:mm',
7363            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
7364        },
7365        calendar: {
7366            sameDay: '[Hiziv da] LT',
7367            nextDay: '[Warcʼhoazh da] LT',
7368            nextWeek: 'dddd [da] LT',
7369            lastDay: '[Decʼh da] LT',
7370            lastWeek: 'dddd [paset da] LT',
7371            sameElse: 'L',
7372        },
7373        relativeTime: {
7374            future: 'a-benn %s',
7375            past: '%s ʼzo',
7376            s: 'un nebeud segondennoù',
7377            ss: '%d eilenn',
7378            m: 'ur vunutenn',
7379            mm: relativeTimeWithMutation,
7380            h: 'un eur',
7381            hh: '%d eur',
7382            d: 'un devezh',
7383            dd: relativeTimeWithMutation,
7384            M: 'ur miz',
7385            MM: relativeTimeWithMutation,
7386            y: 'ur bloaz',
7387            yy: specialMutationForYears,
7388        },
7389        dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
7390        ordinal: function (number) {
7391            var output = number === 1 ? 'añ' : 'vet';
7392            return number + output;
7393        },
7394        week: {
7395            dow: 1, // Monday is the first day of the week.
7396            doy: 4, // The week that contains Jan 4th is the first week of the year.
7397        },
7398        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
7399        isPM: function (token) {
7400            return token === 'g.m.';
7401        },
7402        meridiem: function (hour, minute, isLower) {
7403            return hour < 12 ? 'a.m.' : 'g.m.';
7404        },
7405    });
7406
7407    //! moment.js locale configuration
7408
7409    function translate(number, withoutSuffix, key) {
7410        var result = number + ' ';
7411        switch (key) {
7412            case 'ss':
7413                if (number === 1) {
7414                    result += 'sekunda';
7415                } else if (number === 2 || number === 3 || number === 4) {
7416                    result += 'sekunde';
7417                } else {
7418                    result += 'sekundi';
7419                }
7420                return result;
7421            case 'm':
7422                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
7423            case 'mm':
7424                if (number === 1) {
7425                    result += 'minuta';
7426                } else if (number === 2 || number === 3 || number === 4) {
7427                    result += 'minute';
7428                } else {
7429                    result += 'minuta';
7430                }
7431                return result;
7432            case 'h':
7433                return withoutSuffix ? 'jedan sat' : 'jednog sata';
7434            case 'hh':
7435                if (number === 1) {
7436                    result += 'sat';
7437                } else if (number === 2 || number === 3 || number === 4) {
7438                    result += 'sata';
7439                } else {
7440                    result += 'sati';
7441                }
7442                return result;
7443            case 'dd':
7444                if (number === 1) {
7445                    result += 'dan';
7446                } else {
7447                    result += 'dana';
7448                }
7449                return result;
7450            case 'MM':
7451                if (number === 1) {
7452                    result += 'mjesec';
7453                } else if (number === 2 || number === 3 || number === 4) {
7454                    result += 'mjeseca';
7455                } else {
7456                    result += 'mjeseci';
7457                }
7458                return result;
7459            case 'yy':
7460                if (number === 1) {
7461                    result += 'godina';
7462                } else if (number === 2 || number === 3 || number === 4) {
7463                    result += 'godine';
7464                } else {
7465                    result += 'godina';
7466                }
7467                return result;
7468        }
7469    }
7470
7471    hooks.defineLocale('bs', {
7472        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
7473            '_'
7474        ),
7475        monthsShort:
7476            'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
7477                '_'
7478            ),
7479        monthsParseExact: true,
7480        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
7481            '_'
7482        ),
7483        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
7484        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
7485        weekdaysParseExact: true,
7486        longDateFormat: {
7487            LT: 'H:mm',
7488            LTS: 'H:mm:ss',
7489            L: 'DD.MM.YYYY',
7490            LL: 'D. MMMM YYYY',
7491            LLL: 'D. MMMM YYYY H:mm',
7492            LLLL: 'dddd, D. MMMM YYYY H:mm',
7493        },
7494        calendar: {
7495            sameDay: '[danas u] LT',
7496            nextDay: '[sutra u] LT',
7497            nextWeek: function () {
7498                switch (this.day()) {
7499                    case 0:
7500                        return '[u] [nedjelju] [u] LT';
7501                    case 3:
7502                        return '[u] [srijedu] [u] LT';
7503                    case 6:
7504                        return '[u] [subotu] [u] LT';
7505                    case 1:
7506                    case 2:
7507                    case 4:
7508                    case 5:
7509                        return '[u] dddd [u] LT';
7510                }
7511            },
7512            lastDay: '[jučer u] LT',
7513            lastWeek: function () {
7514                switch (this.day()) {
7515                    case 0:
7516                    case 3:
7517                        return '[prošlu] dddd [u] LT';
7518                    case 6:
7519                        return '[prošle] [subote] [u] LT';
7520                    case 1:
7521                    case 2:
7522                    case 4:
7523                    case 5:
7524                        return '[prošli] dddd [u] LT';
7525                }
7526            },
7527            sameElse: 'L',
7528        },
7529        relativeTime: {
7530            future: 'za %s',
7531            past: 'prije %s',
7532            s: 'par sekundi',
7533            ss: translate,
7534            m: translate,
7535            mm: translate,
7536            h: translate,
7537            hh: translate,
7538            d: 'dan',
7539            dd: translate,
7540            M: 'mjesec',
7541            MM: translate,
7542            y: 'godinu',
7543            yy: translate,
7544        },
7545        dayOfMonthOrdinalParse: /\d{1,2}\./,
7546        ordinal: '%d.',
7547        week: {
7548            dow: 1, // Monday is the first day of the week.
7549            doy: 7, // The week that contains Jan 7th is the first week of the year.
7550        },
7551    });
7552
7553    //! moment.js locale configuration
7554
7555    hooks.defineLocale('ca', {
7556        months: {
7557            standalone:
7558                'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
7559                    '_'
7560                ),
7561            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(
7562                '_'
7563            ),
7564            isFormat: /D[oD]?(\s)+MMMM/,
7565        },
7566        monthsShort:
7567            'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
7568                '_'
7569            ),
7570        monthsParseExact: true,
7571        weekdays:
7572            'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
7573                '_'
7574            ),
7575        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
7576        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
7577        weekdaysParseExact: true,
7578        longDateFormat: {
7579            LT: 'H:mm',
7580            LTS: 'H:mm:ss',
7581            L: 'DD/MM/YYYY',
7582            LL: 'D MMMM [de] YYYY',
7583            ll: 'D MMM YYYY',
7584            LLL: 'D MMMM [de] YYYY [a les] H:mm',
7585            lll: 'D MMM YYYY, H:mm',
7586            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
7587            llll: 'ddd D MMM YYYY, H:mm',
7588        },
7589        calendar: {
7590            sameDay: function () {
7591                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7592            },
7593            nextDay: function () {
7594                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7595            },
7596            nextWeek: function () {
7597                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7598            },
7599            lastDay: function () {
7600                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7601            },
7602            lastWeek: function () {
7603                return (
7604                    '[el] dddd [passat a ' +
7605                    (this.hours() !== 1 ? 'les' : 'la') +
7606                    '] LT'
7607                );
7608            },
7609            sameElse: 'L',
7610        },
7611        relativeTime: {
7612            future: "d'aquí %s",
7613            past: 'fa %s',
7614            s: 'uns segons',
7615            ss: '%d segons',
7616            m: 'un minut',
7617            mm: '%d minuts',
7618            h: 'una hora',
7619            hh: '%d hores',
7620            d: 'un dia',
7621            dd: '%d dies',
7622            M: 'un mes',
7623            MM: '%d mesos',
7624            y: 'un any',
7625            yy: '%d anys',
7626        },
7627        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
7628        ordinal: function (number, period) {
7629            var output =
7630                number === 1
7631                    ? 'r'
7632                    : number === 2
7633                    ? 'n'
7634                    : number === 3
7635                    ? 'r'
7636                    : number === 4
7637                    ? 't'
7638                    : 'è';
7639            if (period === 'w' || period === 'W') {
7640                output = 'a';
7641            }
7642            return number + output;
7643        },
7644        week: {
7645            dow: 1, // Monday is the first day of the week.
7646            doy: 4, // The week that contains Jan 4th is the first week of the year.
7647        },
7648    });
7649
7650    //! moment.js locale configuration
7651
7652    var months$4 = {
7653            format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.
vendor: 8,642 bytes, lines 7653-7857
7653split(
7654                '_'
7655            ),
7656            standalone:
7657                'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
7658                    '_'
7659                ),
7660        },
7661        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
7662        monthsParse$1 = [
7663            /^led/i,
7664            /^úno/i,
7665            /^bře/i,
7666            /^dub/i,
7667            /^kvě/i,
7668            /^(čvn|červen$|června)/i,
7669            /^(čvc|červenec|července)/i,
7670            /^srp/i,
7671            /^zář/i,
7672            /^říj/i,
7673            /^lis/i,
7674            /^pro/i,
7675        ],
7676        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7677        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7678        monthsRegex$2 =
7679            /^(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;
7680
7681    function plural$1(n) {
7682        return n > 1 && n < 5 && ~~(n / 10) !== 1;
7683    }
7684    function translate$1(number, withoutSuffix, key, isFuture) {
7685        var result = number + ' ';
7686        switch (key) {
7687            case 's': // a few seconds / in a few seconds / a few seconds ago
7688                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
7689            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
7690                if (withoutSuffix || isFuture) {
7691                    return result + (plural$1(number) ? 'sekundy' : 'sekund');
7692                } else {
7693                    return result + 'sekundami';
7694                }
7695            case 'm': // a minute / in a minute / a minute ago
7696                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
7697            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
7698                if (withoutSuffix || isFuture) {
7699                    return result + (plural$1(number) ? 'minuty' : 'minut');
7700                } else {
7701                    return result + 'minutami';
7702                }
7703            case 'h': // an hour / in an hour / an hour ago
7704                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
7705            case 'hh': // 9 hours / in 9 hours / 9 hours ago
7706                if (withoutSuffix || isFuture) {
7707                    return result + (plural$1(number) ? 'hodiny' : 'hodin');
7708                } else {
7709                    return result + 'hodinami';
7710                }
7711            case 'd': // a day / in a day / a day ago
7712                return withoutSuffix || isFuture ? 'den' : 'dnem';
7713            case 'dd': // 9 days / in 9 days / 9 days ago
7714                if (withoutSuffix || isFuture) {
7715                    return result + (plural$1(number) ? 'dny' : 'dní');
7716                } else {
7717                    return result + 'dny';
7718                }
7719            case 'M': // a month / in a month / a month ago
7720                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
7721            case 'MM': // 9 months / in 9 months / 9 months ago
7722                if (withoutSuffix || isFuture) {
7723                    return result + (plural$1(number) ? 'měsíce' : 'měsíců');
7724                } else {
7725                    return result + 'měsíci';
7726                }
7727            case 'y': // a year / in a year / a year ago
7728                return withoutSuffix || isFuture ? 'rok' : 'rokem';
7729            case 'yy': // 9 years / in 9 years / 9 years ago
7730                if (withoutSuffix || isFuture) {
7731                    return result + (plural$1(number) ? 'roky' : 'let');
7732                } else {
7733                    return result + 'lety';
7734                }
7735        }
7736    }
7737
7738    hooks.defineLocale('cs', {
7739        months: months$4,
7740        monthsShort: monthsShort,
7741        monthsRegex: monthsRegex$2,
7742        monthsShortRegex: monthsRegex$2,
7743        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7744        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7745        monthsStrictRegex:
7746            /^(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,
7747        monthsShortStrictRegex:
7748            /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
7749        monthsParse: monthsParse$1,
7750        longMonthsParse: monthsParse$1,
7751        shortMonthsParse: monthsParse$1,
7752        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
7753        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
7754        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
7755        longDateFormat: {
7756            LT: 'H:mm',
7757            LTS: 'H:mm:ss',
7758            L: 'DD.MM.YYYY',
7759            LL: 'D. MMMM YYYY',
7760            LLL: 'D. MMMM YYYY H:mm',
7761            LLLL: 'dddd D. MMMM YYYY H:mm',
7762            l: 'D. M. YYYY',
7763        },
7764        calendar: {
7765            sameDay: '[dnes v] LT',
7766            nextDay: '[zítra v] LT',
7767            nextWeek: function () {
7768                switch (this.day()) {
7769                    case 0:
7770                        return '[v neděli v] LT';
7771                    case 1:
7772                    case 2:
7773                        return '[v] dddd [v] LT';
7774                    case 3:
7775                        return '[ve středu v] LT';
7776                    case 4:
7777                        return '[ve čtvrtek v] LT';
7778                    case 5:
7779                        return '[v pátek v] LT';
7780                    case 6:
7781                        return '[v sobotu v] LT';
7782                }
7783            },
7784            lastDay: '[včera v] LT',
7785            lastWeek: function () {
7786                switch (this.day()) {
7787                    case 0:
7788                        return '[minulou neděli v] LT';
7789                    case 1:
7790                    case 2:
7791                        return '[minulé] dddd [v] LT';
7792                    case 3:
7793                        return '[minulou středu v] LT';
7794                    case 4:
7795                    case 5:
7796                        return '[minulý] dddd [v] LT';
7797                    case 6:
7798                        return '[minulou sobotu v] LT';
7799                }
7800            },
7801            sameElse: 'L',
7802        },
7803        relativeTime: {
7804            future: 'za %s',
7805            past: 'před %s',
7806            s: translate$1,
7807            ss: translate$1,
7808            m: translate$1,
7809            mm: translate$1,
7810            h: translate$1,
7811            hh: translate$1,
7812            d: translate$1,
7813            dd: translate$1,
7814            M: translate$1,
7815            MM: translate$1,
7816            y: translate$1,
7817            yy: translate$1,
7818        },
7819        dayOfMonthOrdinalParse: /\d{1,2}\./,
7820        ordinal: '%d.',
7821        week: {
7822            dow: 1, // Monday is the first day of the week.
7823            doy: 4, // The week that contains Jan 4th is the first week of the year.
7824        },
7825    });
7826
7827    //! moment.js locale configuration
7828
7829    hooks.defineLocale('cv', {
7830        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
7831            '_'
7832        ),
7833        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
7834        weekdays:
7835            'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
7836                '_'
7837            ),
7838        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
7839        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
7840        longDateFormat: {
7841            LT: 'HH:mm',
7842            LTS: 'HH:mm:ss',
7843            L: 'DD-MM-YYYY',
7844            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
7845            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7846            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7847        },
7848        calendar: {
7849            sameDay: '[Паян] LT [сехетре]',
7850            nextDay: '[Ыран] LT [сехетре]',
7851            lastDay: '[Ӗнер] LT [сехетре]',
7852            nextWeek: '[Ҫитес] dddd LT [сехетре]',
7853            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
7854            sameElse: 'L',
7855        },
7856        relativeTime: {
7857            future: function (output) {
7858                var affix = /сехет$/i.exec(output)
7859                    ? 'рен'
7860                    : /ҫул$/i.exec(output)
7861                    ? 'тан'
7862                    : 'ран';
7863                return output + affix;
7864            },
7865            past: '%s каялла',
7866            s: 'пӗр-ик ҫеккунт',
7867            ss: '%d ҫеккунт',
7868            m: 'пӗр минут',
7869            mm: '%d минут',
7870            h: 'пӗр сехет',
7871            hh: '%d сехет',
7872            d: 'пӗр кун',
7873            dd: '%d кун',
7874            M: 'пӗр уйӑх',
7875            MM: '%d уйӑх',
7876            y: 'пӗр ҫул',
7877            yy: '%d ҫул',
7878        },
7879        dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
7880        ordinal: '%d-мӗш',
7881        week: {
7882            dow: 1, // Monday is the first day of the week.
7883            doy: 7, // The week that contains Jan 7th is the first week of the year.
7884        },
7885    });
7886
7887    //! moment.js locale configuration
7888
7889    hooks.defineLocale('cy', {
7890        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
7891            '_'
7892        ),
7893        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
7894            '_'
7895        ),
7896        weekdays:
7897            'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
7898                '_'
7899            ),
7900        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
7901        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
7902        weekdaysParseExact: true,
7903        // time formats are the same as en-gb
7904        longDateFormat: {
7905            LT: 'HH:mm',
7906            LTS: 'HH:mm:ss',
7907            L: 'DD/MM/YYYY',
7908            LL: 'D MMMM YYYY',
7909            LLL: 'D MMMM YYYY HH:mm',
7910            LLLL: 'dddd, D MMMM YYYY HH:mm',
7911        },
7912        calendar: {
7913            sameDay: '[Heddiw am] LT',
7914            nextDay: '[Yfory am] LT',
7915            nextWeek: 'dddd [am] LT',
7916            lastDay: '[Ddoe am] LT',
7917            lastWeek: 'dddd [diwethaf am] LT',
7918            sameElse: 'L',
7919        },
7920        relativeTime: {
7921            future: 'mewn %s',
7922            past: '%s yn ôl',
7923            s: 'ychydig eiliadau',
7924            ss: '%d eiliad',
7925            m: 'munud',
7926            mm: '%d munud',
7927            h: 'awr',
7928            hh: '%d awr',
7929            d: 'diwrnod',
7930            dd: '%d diwrnod',
7931            M: 'mis',
7932            MM: '%d mis',
7933            y: 'blwyddyn',
7934            yy: '%d flynedd',
7935        },
7936        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
7937        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
7938        ordinal: function (number) {
7939            var b = number,
7940                output = '',
7941                lookup = [
7942                    '',
7943                    'af',
7944                    'il',
7945                    'ydd',
7946                    'ydd',
7947                    'ed',
7948                    'ed',
7949                    'ed',
7950                    'fed',
7951                    'fed',
7952                    'fed', // 1af to 10fed
7953                    'eg',
7954                    'fed',
7955                    'eg',
7956                    'eg',
7957                    'fed',
7958                    'eg',
7959                    'eg',
7960                    'fed',
7961                    'eg',
7962                    'fed', // 11eg to 20fed
7963                ];
7964            if (b > 20) {
7965                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
7966                    output = 'fed'; // not 30ain, 70ain or 90ain
7967                } else {
7968                    output = 'ain';
7969                }
7970            } else if (b > 0) {
7971                output = lookup[b];
7972            }
7973            return number + output;
7974        },
7975        week: {
7976            dow: 1, // Monday is the first day of the week.
7977            doy: 4, // The week that contains Jan 4th is the first week of the year.
7978        },
7979    });
7980
7981    //! moment.js locale configuration
7982
7983    hooks.defineLocale('da', {
7984        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
7985            '_'
7986        ),
7987        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
7988        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
7989        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
7990        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
7991        longDateFormat: {
7992            LT: 'HH:mm',
7993            LTS: 'HH:mm:ss',
7994            L: 'DD.MM.YYYY',
7995            LL: 'D. MMMM YYYY',
7996            LLL: 'D. MMMM YYYY HH:mm',
7997            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
7998        },
7999        calendar: {
8000            sameDay: '[i dag kl.] LT',
8001            nextDay: '[i morgen kl.] LT',
8002            nextWeek: 'på dddd [kl.] LT',
8003            lastDay: '[i går kl.] LT',
8004            lastWeek: '[i] dddd[s kl.] LT',
8005            sameElse: 'L',
8006        },
8007        relativeTime: {
8008            future: 'om %s',
8009            past: '%s siden',
8010            s: 'få sekunder',
8011            ss: '%d sekunder',
8012            m: 'et minut',
8013            mm: '%d minutter',
8014            h: 'en time',
8015            hh: '%d timer',
8016            d: 'en dag',
8017            dd: '%d dage',
8018            M: 'en måned',
8019            MM: '%d måneder',
8020            y: 'et år',
8021            yy: '%d år',
8022        },
8023        dayOfMonthOrdinalParse: /\d{1,2}\./,
8024        ordinal: '%d.',
8025        week: {
8026            dow: 1, // Monday is the first day of the week.
8027            doy: 4, // The week that contains Jan 4th is the first week of the year.
8028        },
8029    });
8030
8031    //! moment.js locale configuration
8032
8033    function processRelativeTime(number, withoutSuffix, key, isFuture) {
8034        var format = {
8035            m: ['eine Minute', 'einer Minute'],
8036            h: ['eine Stunde', 'einer Stunde'],
8037            d: ['ein Tag', 'einem Tag'],
8038            dd: [number + ' Tage', number + ' Tagen'],
8039            w: ['eine Woche', 'einer Woche'],
8040            M: ['ein Monat', 'einem Monat'],
8041            MM: [number + ' Monate', number + ' Monaten'],
8042            y: ['ein Jahr', 'einem Jahr'],
vendor: 5,239 bytes, lines 8043-8188
8043            yy: [number + ' Jahre', number + ' Jahren'],
8044        };
8045        return withoutSuffix ? format[key][0] : format[key][1];
8046    }
8047
8048    hooks.defineLocale('de-at', {
8049        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8050            '_'
8051        ),
8052        monthsShort:
8053            'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8054        monthsParseExact: true,
8055        weekdays:
8056            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8057                '_'
8058            ),
8059        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8060        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8061        weekdaysParseExact: true,
8062        longDateFormat: {
8063            LT: 'HH:mm',
8064            LTS: 'HH:mm:ss',
8065            L: 'DD.MM.YYYY',
8066            LL: 'D. MMMM YYYY',
8067            LLL: 'D. MMMM YYYY HH:mm',
8068            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8069        },
8070        calendar: {
8071            sameDay: '[heute um] LT [Uhr]',
8072            sameElse: 'L',
8073            nextDay: '[morgen um] LT [Uhr]',
8074            nextWeek: 'dddd [um] LT [Uhr]',
8075            lastDay: '[gestern um] LT [Uhr]',
8076            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8077        },
8078        relativeTime: {
8079            future: 'in %s',
8080            past: 'vor %s',
8081            s: 'ein paar Sekunden',
8082            ss: '%d Sekunden',
8083            m: processRelativeTime,
8084            mm: '%d Minuten',
8085            h: processRelativeTime,
8086            hh: '%d Stunden',
8087            d: processRelativeTime,
8088            dd: processRelativeTime,
8089            w: processRelativeTime,
8090            ww: '%d Wochen',
8091            M: processRelativeTime,
8092            MM: processRelativeTime,
8093            y: processRelativeTime,
8094            yy: processRelativeTime,
8095        },
8096        dayOfMonthOrdinalParse: /\d{1,2}\./,
8097        ordinal: '%d.',
8098        week: {
8099            dow: 1, // Monday is the first day of the week.
8100            doy: 4, // The week that contains Jan 4th is the first week of the year.
8101        },
8102    });
8103
8104    //! moment.js locale configuration
8105
8106    function processRelativeTime$1(number, withoutSuffix, key, isFuture) {
8107        var format = {
8108            m: ['eine Minute', 'einer Minute'],
8109            h: ['eine Stunde', 'einer Stunde'],
8110            d: ['ein Tag', 'einem Tag'],
8111            dd: [number + ' Tage', number + ' Tagen'],
8112            w: ['eine Woche', 'einer Woche'],
8113            M: ['ein Monat', 'einem Monat'],
8114            MM: [number + ' Monate', number + ' Monaten'],
8115            y: ['ein Jahr', 'einem Jahr'],
8116            yy: [number + ' Jahre', number + ' Jahren'],
8117        };
8118        return withoutSuffix ? format[key][0] : format[key][1];
8119    }
8120
8121    hooks.defineLocale('de-ch', {
8122        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8123            '_'
8124        ),
8125        monthsShort:
8126            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8127        monthsParseExact: true,
8128        weekdays:
8129            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8130                '_'
8131            ),
8132        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8133        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8134        weekdaysParseExact: true,
8135        longDateFormat: {
8136            LT: 'HH:mm',
8137            LTS: 'HH:mm:ss',
8138            L: 'DD.MM.YYYY',
8139            LL: 'D. MMMM YYYY',
8140            LLL: 'D. MMMM YYYY HH:mm',
8141            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8142        },
8143        calendar: {
8144            sameDay: '[heute um] LT [Uhr]',
8145            sameElse: 'L',
8146            nextDay: '[morgen um] LT [Uhr]',
8147            nextWeek: 'dddd [um] LT [Uhr]',
8148            lastDay: '[gestern um] LT [Uhr]',
8149            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8150        },
8151        relativeTime: {
8152            future: 'in %s',
8153            past: 'vor %s',
8154            s: 'ein paar Sekunden',
8155            ss: '%d Sekunden',
8156            m: processRelativeTime$1,
8157            mm: '%d Minuten',
8158            h: processRelativeTime$1,
8159            hh: '%d Stunden',
8160            d: processRelativeTime$1,
8161            dd: processRelativeTime$1,
8162            w: processRelativeTime$1,
8163            ww: '%d Wochen',
8164            M: processRelativeTime$1,
8165            MM: processRelativeTime$1,
8166            y: processRelativeTime$1,
8167            yy: processRelativeTime$1,
8168        },
8169        dayOfMonthOrdinalParse: /\d{1,2}\./,
8170        ordinal: '%d.',
8171        week: {
8172            dow: 1, // Monday is the first day of the week.
8173            doy: 4, // The week that contains Jan 4th is the first week of the year.
8174        },
8175    });
8176
8177    //! moment.js locale configuration
8178
8179    function processRelativeTime$2(number, withoutSuffix, key, isFuture) {
8180        var format = {
8181            m: ['eine Minute', 'einer Minute'],
8182            h: ['eine Stunde', 'einer Stunde'],
8183            d: ['ein Tag', 'einem Tag'],
8184            dd: [number + ' Tage', number + ' Tagen'],
8185            w: ['eine Woche', 'einer Woche'],
8186            M: ['ein Monat', 'einem Monat'],
8187            MM: [number + ' Monate', number + ' Monaten'],
8188            y: ['ein Jahr', 'einem Jahr'],
8189            yy: [number + ' Jahre', number + ' Jahren'],
8190        };
8191        return withoutSuffix ? format[key][0] : format[key][1];
8192    }
8193
8194    hooks.defineLocale('de', {
8195        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8196            '_'
8197        ),
8198        monthsShort:
8199            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8200        monthsParseExact: true,
8201        weekdays:
8202            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8203                '_'
8204            ),
8205        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8206        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8207        weekdaysParseExact: true,
8208        longDateFormat: {
8209            LT: 'HH:mm',
8210            LTS: 'HH:mm:ss',
8211            L: 'DD.MM.YYYY',
8212            LL: 'D. MMMM YYYY',
8213            LLL: 'D. MMMM YYYY HH:mm',
8214            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8215        },
8216        calendar: {
8217            sameDay: '[heute um] LT [Uhr]',
8218            sameElse: 'L',
8219            nextDay: '[morgen um] LT [Uhr]',
8220            nextWeek: 'dddd [um] LT [Uhr]',
8221            lastDay: '[gestern um] LT [Uhr]',
8222            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8223        },
8224        relativeTime: {
8225            future: 'in %s',
8226            past: 'vor %s',
8227            s: 'ein paar Sekunden',
8228            ss: '%d Sekunden',
8229            m: processRelativeTime$2,
8230            mm: '%d Minuten',
8231            h: processRelativeTime$2,
8232            hh: '%d Stunden',
8233            d: processRelativeTime$2,
8234            dd: processRelativeTime$2,
8235            w: processRelativeTime$2,
8236            ww: '%d Wochen',
8237            M: processRelativeTime$2,
8238            MM: processRelativeTime$2,
8239            y: processRelativeTime$2,
8240            yy: processRelativeTime$2,
8241        },
8242        dayOfMonthOrdinalParse: /\d{1,2}\./,
8243        ordinal: '%d.',
8244        week: {
8245            dow: 1, // Monday is the first day of the week.
8246            doy: 4, // The week that contains Jan 4th is the first week of the year.
8247        },
8248    });
8249
8250    //! moment.js locale configuration
8251
8252    var months$5 = [
8253            'ޖެނުއަރީ',
8254            'ފެބްރުއަރީ',
8255            'މާރިޗު',
8256            'އޭޕްރީލު',
8257            'މޭ',
8258            'ޖޫން',
8259            'ޖުލައި',
8260            'އޯގަސްޓު',
8261            'ސެޕްޓެމްބަރު',
8262            'އޮކްޓޯބަރު',
8263            'ނޮވެމްބަރު',
8264            'ޑިސެމްބަރު',
8265        ],
8266        weekdays = [
8267            'އާދިއްތަ',
8268            'ހޯމަ',
8269            'އަންގާރަ',
8270            'ބުދަ',
8271            'ބުރާސްފަތި',
8272            'ހުކުރު',
8273            'ހޮނިހިރު',
8274        ];
8275
8276    hooks.defineLocale('dv', {
8277        months: months$5,
8278        monthsShort: months$5,
8279        weekdays: weekdays,
8280        weekdaysShort: weekdays,
8281        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
8282        longDateFormat: {
8283            LT: 'HH:mm',
8284            LTS: 'HH:mm:ss',
8285            L: 'D/M/YYYY',
8286            LL: 'D MMMM YYYY',
8287            LLL: 'D MMMM YYYY HH:mm',
8288            LLLL: 'dddd D MMMM YYYY HH:mm',
8289        },
8290        meridiemParse: /މކ|މފ/,
8291        isPM: function (input) {
8292            return 'މފ' === input;
8293        },
8294        meridiem: function (hour, minute, isLower) {
8295            if (hour < 12) {
8296                return 'މކ';
8297            } else {
8298                return 'މފ';
8299            }
8300        },
8301        calendar: {
8302            sameDay: '[މިއަދު] LT',
8303            nextDay: '[މާދަމާ] LT',
8304            nextWeek: 'dddd LT',
8305            lastDay: '[އިއްޔެ] LT',
8306            lastWeek: '[ފާއިތުވި] dddd LT',
8307            sameElse: 'L',
8308        },
8309        relativeTime: {
8310            future: 'ތެރޭގައި %s',
8311            past: 'ކުރިން %s',
8312            s: 'ސިކުންތުކޮޅެއް',
8313            ss: 'd% ސިކުންތު',
8314            m: 'މިނިޓެއް',
8315            mm: 'މިނިޓު %d',
8316            h: 'ގަޑިއިރެއް',
8317            hh: 'ގަޑިއިރު %d',
8318            d: 'ދުވަހެއް',
8319            dd: 'ދުވަސް %d',
8320            M: 'މަހެއް',
8321            MM: 'މަސް %d',
8322            y: 'އަހަރެއް',
8323            yy: 'އަހަރު %d',
8324        },
8325        preparse: function (string) {
8326            return string.replace(/،/g, ',');
8327        },
8328        postformat: function (string) {
8329            return string.replace(/,/g, '،');
8330        },
8331        week: {
8332            dow: 7, // Sunday is the first day of the week.
8333            doy: 12, // The week that contains Jan 12th is the first week of the year.
8334        },
8335    });
8336
8337    //! moment.js locale configuration
8338
8339    function isFunction$1(input) {
8340        return (
8341            (typeof Function !== 'undefined' && input instanceof Function) ||
8342            Object.prototype.toString.call(input) === '[object Function]'
8343        );
8344    }
8345
8346    hooks.defineLocale('el', {
8347        monthsNominativeEl:
8348            'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
8349                '_'
8350            ),
8351        monthsGenitiveEl:
8352            'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
8353                '_'
8354            ),
8355        months: function (momentToFormat, format) {
8356            if (!momentToFormat) {
8357                return this._monthsNominativeEl;
8358            } else if (
8359                typeof format === 'string' &&
8360                /D/.test(format.substring(0, format.indexOf('MMMM')))
8361            ) {
8362                // if there is a day number before 'MMMM'
8363                return this._monthsGenitiveEl[momentToFormat.month()];
8364            } else {
8365                return this._monthsNominativeEl[momentToFormat.month()];
8366            }
8367        },
8368        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
8369        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
8370            '_'
8371        ),
8372        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
8373        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
8374        meridiem: function (hours, minutes, isLower) {
8375            if (hours > 11) {
8376                return isLower ? 'μμ' : 'ΜΜ';
8377            } else {
8378                return isLower ? 'πμ' : 'ΠΜ';
8379            }
8380        },
8381        isPM: function (input) {
8382            return (input + '').toLowerCase()[0] === 'μ';
8383        },
8384        meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
8385        longDateFormat: {
8386            LT: 'h:mm A',
8387            LTS: 'h:mm:ss A',
8388            L: 'DD/MM/YYYY',
8389            LL: 'D MMMM YYYY',
8390            LLL: 'D MMMM YYYY h:mm A',
8391            LLLL: 'dddd, D MMMM YYYY h:mm A',
8392        },
8393        calendarEl: {
8394            sameDay: '[Σήμερα {}] LT',
8395            nextDay: '[Αύριο {}] LT',
8396            nextWeek: 'dddd [{}] LT',
8397            lastDay: '[Χθες {}] LT',
8398            lastWeek: function () {
8399                switch (this.day()) {
8400                    case 6:
8401                        return '[το προηγούμενο] dddd [{}] LT';
8402                    default:
8403                        return '[την προηγούμενη] dddd [{}] LT';
8404                }
8405            },
8406            sameElse: 'L',
8407        },
8408        calendar: function (key, mom) {
8409            var output = this._calendarEl[key],
8410                hours = mom && mom.hours();
8411            if (isFunction$1(output)) {
8412                output = output.apply(mom);
8413            }
8414            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
8415        },
8416        relativeTime: {
8417            future: 'σε %s',
8418            past: '%s πριν',
8419            s: 'λίγα δευτερόλεπτα',
8420            ss: '%d δευτερόλεπτα',
8421            m: 'ένα λεπτό',
8422            mm: '%d λεπτά',
8423            h: 'μία ώρα',
8424            hh: '%d ώρες',
8425            d: 'μία μέρα',
8426            dd: '%d μέρες',
vendor: 16,384 bytes, lines 8427-8927
8427            M: 'ένας μήνας',
8428            MM: '%d μήνες',
8429            y: 'ένας χρόνος',
8430            yy: '%d χρόνια',
8431        },
8432        dayOfMonthOrdinalParse: /\d{1,2}η/,
8433        ordinal: '%dη',
8434        week: {
8435            dow: 1, // Monday is the first day of the week.
8436            doy: 4, // The week that contains Jan 4st is the first week of the year.
8437        },
8438    });
8439
8440    //! moment.js locale configuration
8441
8442    hooks.defineLocale('en-au', {
8443        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8444            '_'
8445        ),
8446        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8447        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8448            '_'
8449        ),
8450        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8451        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8452        longDateFormat: {
8453            LT: 'h:mm A',
8454            LTS: 'h:mm:ss A',
8455            L: 'DD/MM/YYYY',
8456            LL: 'D MMMM YYYY',
8457            LLL: 'D MMMM YYYY h:mm A',
8458            LLLL: 'dddd, D MMMM YYYY h:mm A',
8459        },
8460        calendar: {
8461            sameDay: '[Today at] LT',
8462            nextDay: '[Tomorrow at] LT',
8463            nextWeek: 'dddd [at] LT',
8464            lastDay: '[Yesterday at] LT',
8465            lastWeek: '[Last] dddd [at] LT',
8466            sameElse: 'L',
8467        },
8468        relativeTime: {
8469            future: 'in %s',
8470            past: '%s ago',
8471            s: 'a few seconds',
8472            ss: '%d seconds',
8473            m: 'a minute',
8474            mm: '%d minutes',
8475            h: 'an hour',
8476            hh: '%d hours',
8477            d: 'a day',
8478            dd: '%d days',
8479            M: 'a month',
8480            MM: '%d months',
8481            y: 'a year',
8482            yy: '%d years',
8483        },
8484        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8485        ordinal: function (number) {
8486            var b = number % 10,
8487                output =
8488                    ~~((number % 100) / 10) === 1
8489                        ? 'th'
8490                        : b === 1
8491                        ? 'st'
8492                        : b === 2
8493                        ? 'nd'
8494                        : b === 3
8495                        ? 'rd'
8496                        : 'th';
8497            return number + output;
8498        },
8499        week: {
8500            dow: 0, // Sunday is the first day of the week.
8501            doy: 4, // The week that contains Jan 4th is the first week of the year.
8502        },
8503    });
8504
8505    //! moment.js locale configuration
8506
8507    hooks.defineLocale('en-ca', {
8508        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8509            '_'
8510        ),
8511        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8512        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8513            '_'
8514        ),
8515        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8516        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8517        longDateFormat: {
8518            LT: 'h:mm A',
8519            LTS: 'h:mm:ss A',
8520            L: 'YYYY-MM-DD',
8521            LL: 'MMMM D, YYYY',
8522            LLL: 'MMMM D, YYYY h:mm A',
8523            LLLL: 'dddd, MMMM D, YYYY h:mm A',
8524        },
8525        calendar: {
8526            sameDay: '[Today at] LT',
8527            nextDay: '[Tomorrow at] LT',
8528            nextWeek: 'dddd [at] LT',
8529            lastDay: '[Yesterday at] LT',
8530            lastWeek: '[Last] dddd [at] LT',
8531            sameElse: 'L',
8532        },
8533        relativeTime: {
8534            future: 'in %s',
8535            past: '%s ago',
8536            s: 'a few seconds',
8537            ss: '%d seconds',
8538            m: 'a minute',
8539            mm: '%d minutes',
8540            h: 'an hour',
8541            hh: '%d hours',
8542            d: 'a day',
8543            dd: '%d days',
8544            M: 'a month',
8545            MM: '%d months',
8546            y: 'a year',
8547            yy: '%d years',
8548        },
8549        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8550        ordinal: function (number) {
8551            var b = number % 10,
8552                output =
8553                    ~~((number % 100) / 10) === 1
8554                        ? 'th'
8555                        : b === 1
8556                        ? 'st'
8557                        : b === 2
8558                        ? 'nd'
8559                        : b === 3
8560                        ? 'rd'
8561                        : 'th';
8562            return number + output;
8563        },
8564    });
8565
8566    //! moment.js locale configuration
8567
8568    hooks.defineLocale('en-gb', {
8569        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8570            '_'
8571        ),
8572        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8573        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8574            '_'
8575        ),
8576        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8577        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8578        longDateFormat: {
8579            LT: 'HH:mm',
8580            LTS: 'HH:mm:ss',
8581            L: 'DD/MM/YYYY',
8582            LL: 'D MMMM YYYY',
8583            LLL: 'D MMMM YYYY HH:mm',
8584            LLLL: 'dddd, D MMMM YYYY HH:mm',
8585        },
8586        calendar: {
8587            sameDay: '[Today at] LT',
8588            nextDay: '[Tomorrow at] LT',
8589            nextWeek: 'dddd [at] LT',
8590            lastDay: '[Yesterday at] LT',
8591            lastWeek: '[Last] dddd [at] LT',
8592            sameElse: 'L',
8593        },
8594        relativeTime: {
8595            future: 'in %s',
8596            past: '%s ago',
8597            s: 'a few seconds',
8598            ss: '%d seconds',
8599            m: 'a minute',
8600            mm: '%d minutes',
8601            h: 'an hour',
8602            hh: '%d hours',
8603            d: 'a day',
8604            dd: '%d days',
8605            M: 'a month',
8606            MM: '%d months',
8607            y: 'a year',
8608            yy: '%d years',
8609        },
8610        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8611        ordinal: function (number) {
8612            var b = number % 10,
8613                output =
8614                    ~~((number % 100) / 10) === 1
8615                        ? 'th'
8616                        : b === 1
8617                        ? 'st'
8618                        : b === 2
8619                        ? 'nd'
8620                        : b === 3
8621                        ? 'rd'
8622                        : 'th';
8623            return number + output;
8624        },
8625        week: {
8626            dow: 1, // Monday is the first day of the week.
8627            doy: 4, // The week that contains Jan 4th is the first week of the year.
8628        },
8629    });
8630
8631    //! moment.js locale configuration
8632
8633    hooks.defineLocale('en-ie', {
8634        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8635            '_'
8636        ),
8637        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8638        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8639            '_'
8640        ),
8641        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8642        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8643        longDateFormat: {
8644            LT: 'HH:mm',
8645            LTS: 'HH:mm:ss',
8646            L: 'DD/MM/YYYY',
8647            LL: 'D MMMM YYYY',
8648            LLL: 'D MMMM YYYY HH:mm',
8649            LLLL: 'dddd D MMMM YYYY HH:mm',
8650        },
8651        calendar: {
8652            sameDay: '[Today at] LT',
8653            nextDay: '[Tomorrow at] LT',
8654            nextWeek: 'dddd [at] LT',
8655            lastDay: '[Yesterday at] LT',
8656            lastWeek: '[Last] dddd [at] LT',
8657            sameElse: 'L',
8658        },
8659        relativeTime: {
8660            future: 'in %s',
8661            past: '%s ago',
8662            s: 'a few seconds',
8663            ss: '%d seconds',
8664            m: 'a minute',
8665            mm: '%d minutes',
8666            h: 'an hour',
8667            hh: '%d hours',
8668            d: 'a day',
8669            dd: '%d days',
8670            M: 'a month',
8671            MM: '%d months',
8672            y: 'a year',
8673            yy: '%d years',
8674        },
8675        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8676        ordinal: function (number) {
8677            var b = number % 10,
8678                output =
8679                    ~~((number % 100) / 10) === 1
8680                        ? 'th'
8681                        : b === 1
8682                        ? 'st'
8683                        : b === 2
8684                        ? 'nd'
8685                        : b === 3
8686                        ? 'rd'
8687                        : 'th';
8688            return number + output;
8689        },
8690        week: {
8691            dow: 1, // Monday is the first day of the week.
8692            doy: 4, // The week that contains Jan 4th is the first week of the year.
8693        },
8694    });
8695
8696    //! moment.js locale configuration
8697
8698    hooks.defineLocale('en-il', {
8699        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8700            '_'
8701        ),
8702        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8703        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8704            '_'
8705        ),
8706        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8707        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8708        longDateFormat: {
8709            LT: 'HH:mm',
8710            LTS: 'HH:mm:ss',
8711            L: 'DD/MM/YYYY',
8712            LL: 'D MMMM YYYY',
8713            LLL: 'D MMMM YYYY HH:mm',
8714            LLLL: 'dddd, D MMMM YYYY HH:mm',
8715        },
8716        calendar: {
8717            sameDay: '[Today at] LT',
8718            nextDay: '[Tomorrow at] LT',
8719            nextWeek: 'dddd [at] LT',
8720            lastDay: '[Yesterday at] LT',
8721            lastWeek: '[Last] dddd [at] LT',
8722            sameElse: 'L',
8723        },
8724        relativeTime: {
8725            future: 'in %s',
8726            past: '%s ago',
8727            s: 'a few seconds',
8728            ss: '%d seconds',
8729            m: 'a minute',
8730            mm: '%d minutes',
8731            h: 'an hour',
8732            hh: '%d hours',
8733            d: 'a day',
8734            dd: '%d days',
8735            M: 'a month',
8736            MM: '%d months',
8737            y: 'a year',
8738            yy: '%d years',
8739        },
8740        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8741        ordinal: function (number) {
8742            var b = number % 10,
8743                output =
8744                    ~~((number % 100) / 10) === 1
8745                        ? 'th'
8746                        : b === 1
8747                        ? 'st'
8748                        : b === 2
8749                        ? 'nd'
8750                        : b === 3
8751                        ? 'rd'
8752                        : 'th';
8753            return number + output;
8754        },
8755    });
8756
8757    //! moment.js locale configuration
8758
8759    hooks.defineLocale('en-in', {
8760        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8761            '_'
8762        ),
8763        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8764        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8765            '_'
8766        ),
8767        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8768        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8769        longDateFormat: {
8770            LT: 'h:mm A',
8771            LTS: 'h:mm:ss A',
8772            L: 'DD/MM/YYYY',
8773            LL: 'D MMMM YYYY',
8774            LLL: 'D MMMM YYYY h:mm A',
8775            LLLL: 'dddd, D MMMM YYYY h:mm A',
8776        },
8777        calendar: {
8778            sameDay: '[Today at] LT',
8779            nextDay: '[Tomorrow at] LT',
8780            nextWeek: 'dddd [at] LT',
8781            lastDay: '[Yesterday at] LT',
8782            lastWeek: '[Last] dddd [at] LT',
8783            sameElse: 'L',
8784        },
8785        relativeTime: {
8786            future: 'in %s',
8787            past: '%s ago',
8788            s: 'a few seconds',
8789            ss: '%d seconds',
8790            m: 'a minute',
8791            mm: '%d minutes',
8792            h: 'an hour',
8793            hh: '%d hours',
8794            d: 'a day',
8795            dd: '%d days',
8796            M: 'a month',
8797            MM: '%d months',
8798            y: 'a year',
8799            yy: '%d years',
8800        },
8801        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8802        ordinal: function (number) {
8803            var b = number % 10,
8804                output =
8805                    ~~((number % 100) / 10) === 1
8806                        ? 'th'
8807                        : b === 1
8808                        ? 'st'
8809                        : b === 2
8810                        ? 'nd'
8811                        : b === 3
8812                        ? 'rd'
8813                        : 'th';
8814            return number + output;
8815        },
8816        week: {
8817            dow: 0, // Sunday is the first day of the week.
8818            doy: 6, // The week that contains Jan 1st is the first week of the year.
8819        },
8820    });
8821
8822    //! moment.js locale configuration
8823
8824    hooks.defineLocale('en-nz', {
8825        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8826            '_'
8827        ),
8828        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8829        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8830            '_'
8831        ),
8832        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8833        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8834        longDateFormat: {
8835            LT: 'h:mm A',
8836            LTS: 'h:mm:ss A',
8837            L: 'DD/MM/YYYY',
8838            LL: 'D MMMM YYYY',
8839            LLL: 'D MMMM YYYY h:mm A',
8840            LLLL: 'dddd, D MMMM YYYY h:mm A',
8841        },
8842        calendar: {
8843            sameDay: '[Today at] LT',
8844            nextDay: '[Tomorrow at] LT',
8845            nextWeek: 'dddd [at] LT',
8846            lastDay: '[Yesterday at] LT',
8847            lastWeek: '[Last] dddd [at] LT',
8848            sameElse: 'L',
8849        },
8850        relativeTime: {
8851            future: 'in %s',
8852            past: '%s ago',
8853            s: 'a few seconds',
8854            ss: '%d seconds',
8855            m: 'a minute',
8856            mm: '%d minutes',
8857            h: 'an hour',
8858            hh: '%d hours',
8859            d: 'a day',
8860            dd: '%d days',
8861            M: 'a month',
8862            MM: '%d months',
8863            y: 'a year',
8864            yy: '%d years',
8865        },
8866        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8867        ordinal: function (number) {
8868            var b = number % 10,
8869                output =
8870                    ~~((number % 100) / 10) === 1
8871                        ? 'th'
8872                        : b === 1
8873                        ? 'st'
8874                        : b === 2
8875                        ? 'nd'
8876                        : b === 3
8877                        ? 'rd'
8878                        : 'th';
8879            return number + output;
8880        },
8881        week: {
8882            dow: 1, // Monday is the first day of the week.
8883            doy: 4, // The week that contains Jan 4th is the first week of the year.
8884        },
8885    });
8886
8887    //! moment.js locale configuration
8888
8889    hooks.defineLocale('en-sg', {
8890        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8891            '_'
8892        ),
8893        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8894        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8895            '_'
8896        ),
8897        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8898        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8899        longDateFormat: {
8900            LT: 'HH:mm',
8901            LTS: 'HH:mm:ss',
8902            L: 'DD/MM/YYYY',
8903            LL: 'D MMMM YYYY',
8904            LLL: 'D MMMM YYYY HH:mm',
8905            LLLL: 'dddd, D MMMM YYYY HH:mm',
8906        },
8907        calendar: {
8908            sameDay: '[Today at] LT',
8909            nextDay: '[Tomorrow at] LT',
8910            nextWeek: 'dddd [at] LT',
8911            lastDay: '[Yesterday at] LT',
8912            lastWeek: '[Last] dddd [at] LT',
8913            sameElse: 'L',
8914        },
8915        relativeTime: {
8916            future: 'in %s',
8917            past: '%s ago',
8918            s: 'a few seconds',
8919            ss: '%d seconds',
8920            m: 'a minute',
8921            mm: '%d minutes',
8922            h: 'an hour',
8923            hh: '%d hours',
8924            d: 'a day',
8925            dd: '%d days',
8926            M: 'a month',
8927          
vendor: 16,384 bytes, lines 8927-9385
8927  MM: '%d months',
8928            y: 'a year',
8929            yy: '%d years',
8930        },
8931        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8932        ordinal: function (number) {
8933            var b = number % 10,
8934                output =
8935                    ~~((number % 100) / 10) === 1
8936                        ? 'th'
8937                        : b === 1
8938                        ? 'st'
8939                        : b === 2
8940                        ? 'nd'
8941                        : b === 3
8942                        ? 'rd'
8943                        : 'th';
8944            return number + output;
8945        },
8946        week: {
8947            dow: 1, // Monday is the first day of the week.
8948            doy: 4, // The week that contains Jan 4th is the first week of the year.
8949        },
8950    });
8951
8952    //! moment.js locale configuration
8953
8954    hooks.defineLocale('eo', {
8955        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split(
8956            '_'
8957        ),
8958        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅ­g_sept_okt_nov_dec'.split('_'),
8959        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
8960        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
8961        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
8962        longDateFormat: {
8963            LT: 'HH:mm',
8964            LTS: 'HH:mm:ss',
8965            L: 'YYYY-MM-DD',
8966            LL: '[la] D[-an de] MMMM, YYYY',
8967            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
8968            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
8969            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
8970        },
8971        meridiemParse: /[ap]\.t\.m/i,
8972        isPM: function (input) {
8973            return input.charAt(0).toLowerCase() === 'p';
8974        },
8975        meridiem: function (hours, minutes, isLower) {
8976            if (hours > 11) {
8977                return isLower ? 'p.t.m.' : 'P.T.M.';
8978            } else {
8979                return isLower ? 'a.t.m.' : 'A.T.M.';
8980            }
8981        },
8982        calendar: {
8983            sameDay: '[HodiaÅ­ je] LT',
8984            nextDay: '[MorgaÅ­ je] LT',
8985            nextWeek: 'dddd[n je] LT',
8986            lastDay: '[HieraÅ­ je] LT',
8987            lastWeek: '[pasintan] dddd[n je] LT',
8988            sameElse: 'L',
8989        },
8990        relativeTime: {
8991            future: 'post %s',
8992            past: 'antaÅ­ %s',
8993            s: 'kelkaj sekundoj',
8994            ss: '%d sekundoj',
8995            m: 'unu minuto',
8996            mm: '%d minutoj',
8997            h: 'unu horo',
8998            hh: '%d horoj',
8999            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
9000            dd: '%d tagoj',
9001            M: 'unu monato',
9002            MM: '%d monatoj',
9003            y: 'unu jaro',
9004            yy: '%d jaroj',
9005        },
9006        dayOfMonthOrdinalParse: /\d{1,2}a/,
9007        ordinal: '%da',
9008        week: {
9009            dow: 1, // Monday is the first day of the week.
9010            doy: 7, // The week that contains Jan 7th is the first week of the year.
9011        },
9012    });
9013
9014    //! moment.js locale configuration
9015
9016    var monthsShortDot =
9017            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9018                '_'
9019            ),
9020        monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9021        monthsParse$2 = [
9022            /^ene/i,
9023            /^feb/i,
9024            /^mar/i,
9025            /^abr/i,
9026            /^may/i,
9027            /^jun/i,
9028            /^jul/i,
9029            /^ago/i,
9030            /^sep/i,
9031            /^oct/i,
9032            /^nov/i,
9033            /^dic/i,
9034        ],
9035        monthsRegex$3 =
9036            /^(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;
9037
9038    hooks.defineLocale('es-do', {
9039        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9040            '_'
9041        ),
9042        monthsShort: function (m, format) {
9043            if (!m) {
9044                return monthsShortDot;
9045            } else if (/-MMM-/.test(format)) {
9046                return monthsShort$1[m.month()];
9047            } else {
9048                return monthsShortDot[m.month()];
9049            }
9050        },
9051        monthsRegex: monthsRegex$3,
9052        monthsShortRegex: monthsRegex$3,
9053        monthsStrictRegex:
9054            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9055        monthsShortStrictRegex:
9056            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9057        monthsParse: monthsParse$2,
9058        longMonthsParse: monthsParse$2,
9059        shortMonthsParse: monthsParse$2,
9060        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9061        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9062        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9063        weekdaysParseExact: true,
9064        longDateFormat: {
9065            LT: 'h:mm A',
9066            LTS: 'h:mm:ss A',
9067            L: 'DD/MM/YYYY',
9068            LL: 'D [de] MMMM [de] YYYY',
9069            LLL: 'D [de] MMMM [de] YYYY h:mm A',
9070            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9071        },
9072        calendar: {
9073            sameDay: function () {
9074                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9075            },
9076            nextDay: function () {
9077                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9078            },
9079            nextWeek: function () {
9080                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9081            },
9082            lastDay: function () {
9083                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9084            },
9085            lastWeek: function () {
9086                return (
9087                    '[el] dddd [pasado a la' +
9088                    (this.hours() !== 1 ? 's' : '') +
9089                    '] LT'
9090                );
9091            },
9092            sameElse: 'L',
9093        },
9094        relativeTime: {
9095            future: 'en %s',
9096            past: 'hace %s',
9097            s: 'unos segundos',
9098            ss: '%d segundos',
9099            m: 'un minuto',
9100            mm: '%d minutos',
9101            h: 'una hora',
9102            hh: '%d horas',
9103            d: 'un día',
9104            dd: '%d días',
9105            w: 'una semana',
9106            ww: '%d semanas',
9107            M: 'un mes',
9108            MM: '%d meses',
9109            y: 'un año',
9110            yy: '%d años',
9111        },
9112        dayOfMonthOrdinalParse: /\d{1,2}º/,
9113        ordinal: '%dº',
9114        week: {
9115            dow: 1, // Monday is the first day of the week.
9116            doy: 4, // The week that contains Jan 4th is the first week of the year.
9117        },
9118    });
9119
9120    //! moment.js locale configuration
9121
9122    var monthsShortDot$1 =
9123            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9124                '_'
9125            ),
9126        monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9127        monthsParse$3 = [
9128            /^ene/i,
9129            /^feb/i,
9130            /^mar/i,
9131            /^abr/i,
9132            /^may/i,
9133            /^jun/i,
9134            /^jul/i,
9135            /^ago/i,
9136            /^sep/i,
9137            /^oct/i,
9138            /^nov/i,
9139            /^dic/i,
9140        ],
9141        monthsRegex$4 =
9142            /^(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;
9143
9144    hooks.defineLocale('es-mx', {
9145        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9146            '_'
9147        ),
9148        monthsShort: function (m, format) {
9149            if (!m) {
9150                return monthsShortDot$1;
9151            } else if (/-MMM-/.test(format)) {
9152                return monthsShort$2[m.month()];
9153            } else {
9154                return monthsShortDot$1[m.month()];
9155            }
9156        },
9157        monthsRegex: monthsRegex$4,
9158        monthsShortRegex: monthsRegex$4,
9159        monthsStrictRegex:
9160            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9161        monthsShortStrictRegex:
9162            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9163        monthsParse: monthsParse$3,
9164        longMonthsParse: monthsParse$3,
9165        shortMonthsParse: monthsParse$3,
9166        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9167        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9168        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9169        weekdaysParseExact: true,
9170        longDateFormat: {
9171            LT: 'H:mm',
9172            LTS: 'H:mm:ss',
9173            L: 'DD/MM/YYYY',
9174            LL: 'D [de] MMMM [de] YYYY',
9175            LLL: 'D [de] MMMM [de] YYYY H:mm',
9176            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9177        },
9178        calendar: {
9179            sameDay: function () {
9180                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9181            },
9182            nextDay: function () {
9183                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9184            },
9185            nextWeek: function () {
9186                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9187            },
9188            lastDay: function () {
9189                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9190            },
9191            lastWeek: function () {
9192                return (
9193                    '[el] dddd [pasado a la' +
9194                    (this.hours() !== 1 ? 's' : '') +
9195                    '] LT'
9196                );
9197            },
9198            sameElse: 'L',
9199        },
9200        relativeTime: {
9201            future: 'en %s',
9202            past: 'hace %s',
9203            s: 'unos segundos',
9204            ss: '%d segundos',
9205            m: 'un minuto',
9206            mm: '%d minutos',
9207            h: 'una hora',
9208            hh: '%d horas',
9209            d: 'un día',
9210            dd: '%d días',
9211            w: 'una semana',
9212            ww: '%d semanas',
9213            M: 'un mes',
9214            MM: '%d meses',
9215            y: 'un año',
9216            yy: '%d años',
9217        },
9218        dayOfMonthOrdinalParse: /\d{1,2}º/,
9219        ordinal: '%dº',
9220        week: {
9221            dow: 0, // Sunday is the first day of the week.
9222            doy: 4, // The week that contains Jan 4th is the first week of the year.
9223        },
9224        invalidDate: 'Fecha inválida',
9225    });
9226
9227    //! moment.js locale configuration
9228
9229    var monthsShortDot$2 =
9230            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9231                '_'
9232            ),
9233        monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9234        monthsParse$4 = [
9235            /^ene/i,
9236            /^feb/i,
9237            /^mar/i,
9238            /^abr/i,
9239            /^may/i,
9240            /^jun/i,
9241            /^jul/i,
9242            /^ago/i,
9243            /^sep/i,
9244            /^oct/i,
9245            /^nov/i,
9246            /^dic/i,
9247        ],
9248        monthsRegex$5 =
9249            /^(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;
9250
9251    hooks.defineLocale('es-us', {
9252        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9253            '_'
9254        ),
9255        monthsShort: function (m, format) {
9256            if (!m) {
9257                return monthsShortDot$2;
9258            } else if (/-MMM-/.test(format)) {
9259                return monthsShort$3[m.month()];
9260            } else {
9261                return monthsShortDot$2[m.month()];
9262            }
9263        },
9264        monthsRegex: monthsRegex$5,
9265        monthsShortRegex: monthsRegex$5,
9266        monthsStrictRegex:
9267            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9268        monthsShortStrictRegex:
9269            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9270        monthsParse: monthsParse$4,
9271        longMonthsParse: monthsParse$4,
9272        shortMonthsParse: monthsParse$4,
9273        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9274        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9275        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9276        weekdaysParseExact: true,
9277        longDateFormat: {
9278            LT: 'h:mm A',
9279            LTS: 'h:mm:ss A',
9280            L: 'MM/DD/YYYY',
9281            LL: 'D [de] MMMM [de] YYYY',
9282            LLL: 'D [de] MMMM [de] YYYY h:mm A',
9283            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9284        },
9285        calendar: {
9286            sameDay: function () {
9287                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9288            },
9289            nextDay: function () {
9290                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9291            },
9292            nextWeek: function () {
9293                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9294            },
9295            lastDay: function () {
9296                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9297            },
9298            lastWeek: function () {
9299                return (
9300                    '[el] dddd [pasado a la' +
9301                    (this.hours() !== 1 ? 's' : '') +
9302                    '] LT'
9303                );
9304            },
9305            sameElse: 'L',
9306        },
9307        relativeTime: {
9308            future: 'en %s',
9309            past: 'hace %s',
9310            s: 'unos segundos',
9311            ss: '%d segundos',
9312            m: 'un minuto',
9313            mm: '%d minutos',
9314            h: 'una hora',
9315            hh: '%d horas',
9316            d: 'un día',
9317            dd: '%d días',
9318            w: 'una semana',
9319            ww: '%d semanas',
9320            M: 'un mes',
9321            MM: '%d meses',
9322            y: 'un año',
9323            yy: '%d años',
9324        },
9325        dayOfMonthOrdinalParse: /\d{1,2}º/,
9326        ordinal: '%dº',
9327        week: {
9328            dow: 0, // Sunday is the first day of the week.
9329            doy: 6, // The week that contains Jan 6th is the first week of the year.
9330        },
9331    });
9332
9333    //! moment.js locale configuration
9334
9335    var monthsShortDot$3 =
9336            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9337                '_'
9338            ),
9339        monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9340        monthsParse$5 = [
9341            /^ene/i,
9342            /^feb/i,
9343            /^mar/i,
9344            /^abr/i,
9345            /^may/i,
9346            /^jun/i,
9347            /^jul/i,
9348            /^ago/i,
9349            /^sep/i,
9350            /^oct/i,
9351            /^nov/i,
9352            /^dic/i,
9353        ],
9354        monthsRegex$6 =
9355            /^(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;
9356
9357    hooks.defineLocale('es', {
9358        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9359            '_'
9360        ),
9361        monthsShort: function (m, format) {
9362            if (!m) {
9363                return monthsShortDot$3;
9364            } else if (/-MMM-/.test(format)) {
9365                return monthsShort$4[m.month()];
9366            } else {
9367                return monthsShortDot$3[m.month()];
9368            }
9369        },
9370        monthsRegex: monthsRegex$6,
9371        monthsShortRegex: monthsRegex$6,
9372        monthsStrictRegex:
9373            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9374        monthsShortStrictRegex:
9375            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9376        monthsParse: monthsParse$5,
9377        longMonthsParse: monthsParse$5,
9378        shortMonthsParse: monthsParse$5,
9379        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9380        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9381        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9382        weekdaysParseExact: true,
9383        longDateFormat: {
9384            LT: 'H:mm',
9385 
9385           LTS: 'H:mm:ss',
9386            L: 'DD/MM/YYYY',
9387            LL: 'D [de] MMMM [de] YYYY',
9388            LLL: 'D [de] MMMM [de] YYYY H:mm',
9389            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9390        },
9391        calendar: {
9392            sameDay: function () {
9393                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9394            },
9395            nextDay: function () {
9396                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9397            },
9398            nextWeek: function () {
9399                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9400            },
9401            lastDay: function () {
9402                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9403            },
9404            lastWeek: function () {
9405                return (
9406                    '[el] dddd [pasado a la' +
9407                    (this.hours() !== 1 ? 's' : '') +
9408                    '] LT'
9409                );
9410            },
9411            sameElse: 'L',
9412        },
9413        relativeTime: {
9414            future: 'en %s',
9415            past: 'hace %s',
9416            s: 'unos segundos',
9417            ss: '%d segundos',
9418            m: 'un minuto',
9419            mm: '%d minutos',
9420            h: 'una hora',
9421            hh: '%d horas',
9422            d: 'un día',
9423            dd: '%d días',
9424            w: 'una semana',
9425            ww: '%d semanas',
9426            M: 'un mes',
9427            MM: '%d meses',
9428            y: 'un año',
9429            yy: '%d años',
9430        },
9431        dayOfMonthOrdinalParse: /\d{1,2}º/,
9432        ordinal: '%dº',
9433        week: {
9434            dow: 1, // Monday is the first day of the week.
9435            doy: 4, // The week that contains Jan 4th is the first week of the year.
9436        },
9437        invalidDate: 'Fecha inválida',
9438    });
9439
9440    //! moment.js locale configuration
9441
9442    function processRelativeTime$3(number, withoutSuffix, key, isFuture) {
9443        var format = {
9444            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
9445            ss: [number + 'sekundi', number + 'sekundit'],
9446            m: ['ühe minuti', 'üks minut'],
9447            mm: [number + ' minuti', number + ' minutit'],
9448            h: ['ühe tunni', 'tund aega', 'üks tund'],
9449            hh: [number + ' tunni', number + ' tundi'],
9450            d: ['ühe päeva', 'üks päev'],
9451            M: ['kuu aja', 'kuu aega', 'üks kuu'],
9452            MM: [number + ' kuu', number + ' kuud'],
9453            y: ['ühe aasta', 'aasta', 'üks aasta'],
9454            yy: [number + ' aasta', number + ' aastat'],
9455        };
9456        if (withoutSuffix) {
9457            return format[key][2] ? format[key][2] : format[key][1];
9458        }
9459        return isFuture ? format[key][0] : format[key][1];
9460    }
9461
9462    hooks.defineLocale('et', {
9463        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
9464            '_'
9465        ),
9466        monthsShort:
9467            'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
9468        weekdays:
9469            'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
9470                '_'
9471            ),
9472        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
9473        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
9474        longDateFormat: {
9475            LT: 'H:mm',
9476            LTS: 'H:mm:ss',
9477            L: 'DD.MM.YYYY',
9478            LL: 'D. MMMM YYYY',
9479            LLL: 'D. MMMM YYYY H:mm',
9480            LLLL: 'dddd, D. MMMM YYYY H:mm',
9481        },
9482        calendar: {
9483            sameDay: '[Täna,] LT',
9484            nextDay: '[Homme,] LT',
9485            nextWeek: '[Järgmine] dddd LT',
9486            lastDay: '[Eile,] LT',
9487            lastWeek: '[Eelmine] dddd LT',
9488            sameElse: 'L',
9489        },
9490        relativeTime: {
9491            future: '%s pärast',
9492            past: '%s tagasi',
9493            s: processRelativeTime$3,
9494            ss: processRelativeTime$3,
9495            m: processRelativeTime$3,
9496            mm: processRelativeTime$3,
9497            h: processRelativeTime$3,
9498            hh: processRelativeTime$3,
9499            d: processRelativeTime$3,
9500            dd: '%d päeva',
9501            M: processRelativeTime$3,
9502            MM: processRelativeTime$3,
9503            y: processRelativeTime$3,
9504            yy: processRelativeTime$3,
9505        },
9506        dayOfMonthOrdinalParse: /\d{1,2}\./,
9507        ordinal: '%d.',
9508        week: {
9509            dow: 1, // Monday is the first day of the week.
9510            doy: 4, // The week that contains Jan 4th is the first week of the year.
9511        },
9512    });
9513
9514    //! moment.js locale configuration
9515
9516    hooks.defineLocale('eu', {
9517        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
9518            '_'
9519        ),
9520        monthsShort:
9521            'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
9522                '_'
9523            ),
9524        monthsParseExact: true,
9525        weekdays:
9526            'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
9527                '_'
9528            ),
9529        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
9530        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
9531        weekdaysParseExact: true,
9532        longDateFormat: {
9533            LT: 'HH:mm',
9534            LTS: 'HH:mm:ss',
9535            L: 'YYYY-MM-DD',
9536            LL: 'YYYY[ko] MMMM[ren] D[a]',
9537            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
9538            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
9539            l: 'YYYY-M-D',
9540            ll: 'YYYY[ko] MMM D[a]',
9541            lll: 'YYYY[ko] MMM D[a] HH:mm',
9542            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
9543        },
9544        calendar: {
9545            sameDay: '[gaur] LT[etan]',
9546            nextDay: '[bihar] LT[etan]',
9547            nextWeek: 'dddd LT[etan]',
9548            lastDay: '[atzo] LT[etan]',
9549            lastWeek: '[aurreko] dddd LT[etan]',
9550            sameElse: 'L',
9551        },
9552        relativeTime: {
9553            future: '%s barru',
9554            past: 'duela %s',
9555            s: 'segundo batzuk',
9556            ss: '%d segundo',
9557            m: 'minutu bat',
9558            mm: '%d minutu',
9559            h: 'ordu bat',
9560            hh: '%d ordu',
9561            d: 'egun bat',
9562            dd: '%d egun',
9563            M: 'hilabete bat',
9564            MM: '%d hilabete',
9565            y: 'urte bat',
9566            yy: '%d urte',
9567        },
9568        dayOfMonthOrdinalParse: /\d{1,2}\./,
9569        ordinal: '%d.',
9570        week: {
9571            dow: 1, // Monday is the first day of the week.
9572            doy: 7, // The week that contains Jan 7th is the first week of the year.
9573        },
9574    });
9575
9576    //! moment.js locale configuration
9577
9578    var symbolMap$6 = {
9579            1: 'Û±',
9580            2: 'Û²',
9581            3: 'Û³',
9582            4: 'Û´',
9583            5: 'Ûµ',
9584            6: 'Û¶',
9585            7: 'Û·',
9586            8: 'Û¸',
9587            9: 'Û¹',
9588            0: 'Û°',
9589        },
9590        numberMap$5 = {
9591            'Û±': '1',
9592            'Û²': '2',
9593            'Û³': '3',
9594            'Û´': '4',
9595            'Ûµ': '5',
9596            'Û¶': '6',
9597            'Û·': '7',
9598            'Û¸': '8',
9599            'Û¹': '9',
9600            'Û°': '0',
9601        };
9602
9603    hooks.defineLocale('fa', {
9604        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9605            '_'
9606        ),
9607        monthsShort:
9608            'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9609                '_'
9610            ),
9611        weekdays:
9612            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9613                '_'
9614            ),
9615        weekdaysShort:
9616            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9617                '_'
9618            ),
9619        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
9620        weekdaysParseExact: true,
9621        longDateFormat: {
9622            LT: 'HH:mm',
9623            LTS: 'HH:mm:ss',
9624            L: 'DD/MM/YYYY',
9625            LL: 'D MMMM YYYY',
9626            LLL: 'D MMMM YYYY HH:mm',
9627            LLLL: 'dddd, D MMMM YYYY HH:mm',
9628        },
9629        meridiemParse: /قبل از ظهر|بعد از ظهر/,
9630        isPM: function (input) {
9631            return /بعد از ظهر/.test(input);
9632        },
9633        meridiem: function (hour, minute, isLower) {
9634            if (hour < 12) {
9635                return 'قبل از ظهر';
9636            } else {
9637                return 'بعد از ظهر';
9638            }
9639        },
9640        calendar: {
9641            sameDay: '[امروز ساعت] LT',
9642            nextDay: '[فردا ساعت] LT',
9643            nextWeek: 'dddd [ساعت] LT',
9644            lastDay: '[دیروز ساعت] LT',
9645            lastWeek: 'dddd [پیش] [ساعت] LT',
9646            sameElse: 'L',
9647        },
9648        relativeTime: {
9649            future: 'در %s',
9650            past: '%s پیش',
9651            s: 'چند ثانیه',
9652            ss: '%d ثانیه',
9653            m: 'یک دقیقه',
9654            mm: '%d دقیقه',
9655            h: 'یک ساعت',
9656            hh: '%d ساعت',
9657            d: 'یک روز',
9658            dd: '%d روز',
9659            M: 'یک ماه',
9660            MM: '%d ماه',
9661            y: 'یک سال',
9662            yy: '%d سال',
9663        },
9664        preparse: function (string) {
9665            return string
9666                .replace(/[Û°-Û¹]/g, function (match) {
9667                    return numberMap$5[match];
9668                })
9669                .replace(/،/g, ',');
9670        },
9671        postformat: function (string) {
9672            return string
9673                .replace(/\d/g, function (match) {
9674                    return symbolMap$6[match];
9675                })
9676                .replace(/,/g, '،');
9677        },
9678        dayOfMonthOrdinalParse: /\d{1,2}م/,
9679        ordinal: '%dم',
9680        week: {
9681            dow: 6, // Saturday is the first day of the week.
9682            doy: 12, // The week that contains Jan 12th is the first week of the year.
9683        },
9684    });
9685
9686    //! moment.js locale configuration
9687
9688    var numbersPast =
9689            'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
9690                ' '
9691            ),
9692        numbersFuture = [
9693            'nolla',
9694            'yhden',
9695            'kahden',
9696            'kolmen',
9697            'neljän',
9698            'viiden',
9699            'kuuden',
9700            numbersPast[7],
9701            numbersPast[8],
9702            numbersPast[9],
9703        ];
9704    function translate$2(number, withoutSuffix, key, isFuture) {
9705        var result = '';
9706        switch (key) {
9707            case 's':
9708                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
9709            case 'ss':
9710                result = isFuture ? 'sekunnin' : 'sekuntia';
9711                break;
9712            case 'm':
9713                return isFuture ? 'minuutin' : 'minuutti';
9714            case 'mm':
9715                result = isFuture ? 'minuutin' : 'minuuttia';
9716                break;
9717            case 'h':
9718                return isFuture ? 'tunnin' : 'tunti';
9719            case 'hh':
9720                result = isFuture ? 'tunnin' : 'tuntia';
9721                break;
9722            case 'd':
9723                return isFuture ? 'päivän' : 'päivä';
9724            case 'dd':
9725                result = isFuture ? 'päivän' : 'päivää';
9726                break;
9727            case 'M':
9728                return isFuture ? 'kuukauden' : 'kuukausi';
9729            case 'MM':
9730                result = isFuture ? 'kuukauden' : 'kuukautta';
9731                break;
9732            case 'y':
9733                return isFuture ? 'vuoden' : 'vuosi';
9734            case 'yy':
9735                result = isFuture ? 'vuoden' : 'vuotta';
9736                break;
9737        }
9738        result = verbalNumber(number, isFuture) + ' ' + result;
9739        return result;
9740    }
9741    function verbalNumber(number, isFuture) {
9742        return number < 10
9743            ? isFuture
9744                ? numbersFuture[number]
9745                : numbersPast[number]
9746            : number;
9747    }
9748
9749    hooks.defineLocale('fi', {
9750        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
9751            '_'
9752        ),
9753        monthsShort:
9754            'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
9755                '_'
9756            ),
9757        weekdays:
9758            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
9759                '_'
9760            ),
9761        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
9762        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
9763        longDateFormat: {
9764            LT: 'HH.mm',
9765            LTS: 'HH.mm.ss',
9766            L: 'DD.MM.YYYY',
9767            LL: 'Do MMMM[ta] YYYY',
9768            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
9769            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
9770            l: 'D.M.YYYY',
9771            ll: 'Do MMM YYYY',
9772            lll: 'Do MMM YYYY, [klo] HH.mm',
9773            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
9774        },
9775        calendar: {
9776            sameDay: '[tänään] [klo] LT',
9777            nextDay: '[huomenna] [klo] LT',
9778            nextWeek: 'dddd [klo] LT',
9779            lastDay: '[eilen] [klo] LT',
9780            lastWeek: '[viime] dddd[na] [klo] LT',
9781            sameElse: 'L',
9782        },
9783        relativeTime: {
9784            future: '%s päästä',
9785            past: '%s sitten',
9786            s: translate$2,
9787            ss: translate$2,
9788            m: translate$2,
9789            mm: translate$2,
9790            h: translate$2,
9791            hh: translate$2,
9792            d: translate$2,
9793            dd: translate$2,
9794            M: translate$2,
9795            MM: translate$2,
9796            y: translate$2,
9797            yy: translate$2,
9798        },
9799        dayOfMonthOrdinalParse: /\d{1,2}\./,
9800        ordinal: '%d.',
9801        week: {
9802            dow: 1, // Monday is the first day of the week.
9803            doy: 4, // The week that contains Jan 4th is the first week of the year.
9804        },
9805    });
9806
9807    //! moment.js locale configuration
9808
9809    hooks.defineLocale('fil', {
9810        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
9811            '_'
9812        ),
9813        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
9814        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
9815            '_'
9816        ),
9817        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
9818        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
9819        longDateFormat: {
9820            LT: 'HH:mm',
9821            LTS: 'HH:mm:ss',
9822            L: 'MM/D/YYYY',
9823            LL: 'MMMM D, YYYY',
9824            LLL: 'MMMM D, YYYY HH:mm',
9825            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
9826        },
9827        calendar: {
9828            sameDay: 'LT [ngayong araw]',
9829            nextDay: '[Bukas ng] LT',
9830            nextWeek: 'LT [sa susunod na] dddd',
9831            lastDay: 'LT [kahapon]',
9832            lastWeek: 'LT [noong nakaraang] dddd',
9833            sameElse: 'L',
9834        },
9835        relativeTime: {
9836            future: 'sa loob ng %s',
9837            past: '%s ang nakalipas',
9838            s: 'ilang segundo',
9839            ss: '%d segundo',
9840            m: 'isang minuto',
9841            mm: '%d minuto',
9842            h: 'isang oras',
9843            hh: '%d oras',
9844            d: 'isang araw',
9845            dd: '%d araw',
vendor: 12,427 bytes, lines 9846-10210
9846            M: 'isang buwan',
9847            MM: '%d buwan',
9848            y: 'isang taon',
9849            yy: '%d taon',
9850        },
9851        dayOfMonthOrdinalParse: /\d{1,2}/,
9852        ordinal: function (number) {
9853            return number;
9854        },
9855        week: {
9856            dow: 1, // Monday is the first day of the week.
9857            doy: 4, // The week that contains Jan 4th is the first week of the year.
9858        },
9859    });
9860
9861    //! moment.js locale configuration
9862
9863    hooks.defineLocale('fo', {
9864        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
9865            '_'
9866        ),
9867        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
9868        weekdays:
9869            'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
9870                '_'
9871            ),
9872        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
9873        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
9874        longDateFormat: {
9875            LT: 'HH:mm',
9876            LTS: 'HH:mm:ss',
9877            L: 'DD/MM/YYYY',
9878            LL: 'D MMMM YYYY',
9879            LLL: 'D MMMM YYYY HH:mm',
9880            LLLL: 'dddd D. MMMM, YYYY HH:mm',
9881        },
9882        calendar: {
9883            sameDay: '[Í dag kl.] LT',
9884            nextDay: '[Í morgin kl.] LT',
9885            nextWeek: 'dddd [kl.] LT',
9886            lastDay: '[Í gjár kl.] LT',
9887            lastWeek: '[síðstu] dddd [kl] LT',
9888            sameElse: 'L',
9889        },
9890        relativeTime: {
9891            future: 'um %s',
9892            past: '%s síðani',
9893            s: 'fá sekund',
9894            ss: '%d sekundir',
9895            m: 'ein minuttur',
9896            mm: '%d minuttir',
9897            h: 'ein tími',
9898            hh: '%d tímar',
9899            d: 'ein dagur',
9900            dd: '%d dagar',
9901            M: 'ein mánaður',
9902            MM: '%d mánaðir',
9903            y: 'eitt ár',
9904            yy: '%d ár',
9905        },
9906        dayOfMonthOrdinalParse: /\d{1,2}\./,
9907        ordinal: '%d.',
9908        week: {
9909            dow: 1, // Monday is the first day of the week.
9910            doy: 4, // The week that contains Jan 4th is the first week of the year.
9911        },
9912    });
9913
9914    //! moment.js locale configuration
9915
9916    hooks.defineLocale('fr-ca', {
9917        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9918            '_'
9919        ),
9920        monthsShort:
9921            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9922                '_'
9923            ),
9924        monthsParseExact: true,
9925        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9926        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9927        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9928        weekdaysParseExact: true,
9929        longDateFormat: {
9930            LT: 'HH:mm',
9931            LTS: 'HH:mm:ss',
9932            L: 'YYYY-MM-DD',
9933            LL: 'D MMMM YYYY',
9934            LLL: 'D MMMM YYYY HH:mm',
9935            LLLL: 'dddd D MMMM YYYY HH:mm',
9936        },
9937        calendar: {
9938            sameDay: '[Aujourd’hui à] LT',
9939            nextDay: '[Demain à] LT',
9940            nextWeek: 'dddd [à] LT',
9941            lastDay: '[Hier à] LT',
9942            lastWeek: 'dddd [dernier à] LT',
9943            sameElse: 'L',
9944        },
9945        relativeTime: {
9946            future: 'dans %s',
9947            past: 'il y a %s',
9948            s: 'quelques secondes',
9949            ss: '%d secondes',
9950            m: 'une minute',
9951            mm: '%d minutes',
9952            h: 'une heure',
9953            hh: '%d heures',
9954            d: 'un jour',
9955            dd: '%d jours',
9956            M: 'un mois',
9957            MM: '%d mois',
9958            y: 'un an',
9959            yy: '%d ans',
9960        },
9961        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
9962        ordinal: function (number, period) {
9963            switch (period) {
9964                // Words with masculine grammatical gender: mois, trimestre, jour
9965                default:
9966                case 'M':
9967                case 'Q':
9968                case 'D':
9969                case 'DDD':
9970                case 'd':
9971                    return number + (number === 1 ? 'er' : 'e');
9972
9973                // Words with feminine grammatical gender: semaine
9974                case 'w':
9975                case 'W':
9976                    return number + (number === 1 ? 're' : 'e');
9977            }
9978        },
9979    });
9980
9981    //! moment.js locale configuration
9982
9983    hooks.defineLocale('fr-ch', {
9984        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9985            '_'
9986        ),
9987        monthsShort:
9988            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9989                '_'
9990            ),
9991        monthsParseExact: true,
9992        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9993        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9994        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9995        weekdaysParseExact: true,
9996        longDateFormat: {
9997            LT: 'HH:mm',
9998            LTS: 'HH:mm:ss',
9999            L: 'DD.MM.YYYY',
10000            LL: 'D MMMM YYYY',
10001            LLL: 'D MMMM YYYY HH:mm',
10002            LLLL: 'dddd D MMMM YYYY HH:mm',
10003        },
10004        calendar: {
10005            sameDay: '[Aujourd’hui à] LT',
10006            nextDay: '[Demain à] LT',
10007            nextWeek: 'dddd [à] LT',
10008            lastDay: '[Hier à] LT',
10009            lastWeek: 'dddd [dernier à] LT',
10010            sameElse: 'L',
10011        },
10012        relativeTime: {
10013            future: 'dans %s',
10014            past: 'il y a %s',
10015            s: 'quelques secondes',
10016            ss: '%d secondes',
10017            m: 'une minute',
10018            mm: '%d minutes',
10019            h: 'une heure',
10020            hh: '%d heures',
10021            d: 'un jour',
10022            dd: '%d jours',
10023            M: 'un mois',
10024            MM: '%d mois',
10025            y: 'un an',
10026            yy: '%d ans',
10027        },
10028        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
10029        ordinal: function (number, period) {
10030            switch (period) {
10031                // Words with masculine grammatical gender: mois, trimestre, jour
10032                default:
10033                case 'M':
10034                case 'Q':
10035                case 'D':
10036                case 'DDD':
10037                case 'd':
10038                    return number + (number === 1 ? 'er' : 'e');
10039
10040                // Words with feminine grammatical gender: semaine
10041                case 'w':
10042                case 'W':
10043                    return number + (number === 1 ? 're' : 'e');
10044            }
10045        },
10046        week: {
10047            dow: 1, // Monday is the first day of the week.
10048            doy: 4, // The week that contains Jan 4th is the first week of the year.
10049        },
10050    });
10051
10052    //! moment.js locale configuration
10053
10054    var monthsStrictRegex$1 =
10055            /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
10056        monthsShortStrictRegex$1 =
10057            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
10058        monthsRegex$7 =
10059            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
10060        monthsParse$6 = [
10061            /^janv/i,
10062            /^févr/i,
10063            /^mars/i,
10064            /^avr/i,
10065            /^mai/i,
10066            /^juin/i,
10067            /^juil/i,
10068            /^août/i,
10069            /^sept/i,
10070            /^oct/i,
10071            /^nov/i,
10072            /^déc/i,
10073        ];
10074
10075    hooks.defineLocale('fr', {
10076        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
10077            '_'
10078        ),
10079        monthsShort:
10080            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
10081                '_'
10082            ),
10083        monthsRegex: monthsRegex$7,
10084        monthsShortRegex: monthsRegex$7,
10085        monthsStrictRegex: monthsStrictRegex$1,
10086        monthsShortStrictRegex: monthsShortStrictRegex$1,
10087        monthsParse: monthsParse$6,
10088        longMonthsParse: monthsParse$6,
10089        shortMonthsParse: monthsParse$6,
10090        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
10091        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
10092        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
10093        weekdaysParseExact: true,
10094        longDateFormat: {
10095            LT: 'HH:mm',
10096            LTS: 'HH:mm:ss',
10097            L: 'DD/MM/YYYY',
10098            LL: 'D MMMM YYYY',
10099            LLL: 'D MMMM YYYY HH:mm',
10100            LLLL: 'dddd D MMMM YYYY HH:mm',
10101        },
10102        calendar: {
10103            sameDay: '[Aujourd’hui à] LT',
10104            nextDay: '[Demain à] LT',
10105            nextWeek: 'dddd [à] LT',
10106            lastDay: '[Hier à] LT',
10107            lastWeek: 'dddd [dernier à] LT',
10108            sameElse: 'L',
10109        },
10110        relativeTime: {
10111            future: 'dans %s',
10112            past: 'il y a %s',
10113            s: 'quelques secondes',
10114            ss: '%d secondes',
10115            m: 'une minute',
10116            mm: '%d minutes',
10117            h: 'une heure',
10118            hh: '%d heures',
10119            d: 'un jour',
10120            dd: '%d jours',
10121            w: 'une semaine',
10122            ww: '%d semaines',
10123            M: 'un mois',
10124            MM: '%d mois',
10125            y: 'un an',
10126            yy: '%d ans',
10127        },
10128        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
10129        ordinal: function (number, period) {
10130            switch (period) {
10131                // TODO: Return 'e' when day of month > 1. Move this case inside
10132                // block for masculine words below.
10133                // See https://github.com/moment/moment/issues/3375
10134                case 'D':
10135                    return number + (number === 1 ? 'er' : '');
10136
10137                // Words with masculine grammatical gender: mois, trimestre, jour
10138                default:
10139                case 'M':
10140                case 'Q':
10141                case 'DDD':
10142                case 'd':
10143                    return number + (number === 1 ? 'er' : 'e');
10144
10145                // Words with feminine grammatical gender: semaine
10146                case 'w':
10147                case 'W':
10148                    return number + (number === 1 ? 're' : 'e');
10149            }
10150        },
10151        week: {
10152            dow: 1, // Monday is the first day of the week.
10153            doy: 4, // The week that contains Jan 4th is the first week of the year.
10154        },
10155    });
10156
10157    //! moment.js locale configuration
10158
10159    var monthsShortWithDots =
10160            'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
10161        monthsShortWithoutDots =
10162            'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
10163
10164    hooks.defineLocale('fy', {
10165        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
10166            '_'
10167        ),
10168        monthsShort: function (m, format) {
10169            if (!m) {
10170                return monthsShortWithDots;
10171            } else if (/-MMM-/.test(format)) {
10172                return monthsShortWithoutDots[m.month()];
10173            } else {
10174                return monthsShortWithDots[m.month()];
10175            }
10176        },
10177        monthsParseExact: true,
10178        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
10179            '_'
10180        ),
10181        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
10182        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
10183        weekdaysParseExact: true,
10184        longDateFormat: {
10185            LT: 'HH:mm',
10186            LTS: 'HH:mm:ss',
10187            L: 'DD-MM-YYYY',
10188            LL: 'D MMMM YYYY',
10189            LLL: 'D MMMM YYYY HH:mm',
10190            LLLL: 'dddd D MMMM YYYY HH:mm',
10191        },
10192        calendar: {
10193            sameDay: '[hjoed om] LT',
10194            nextDay: '[moarn om] LT',
10195            nextWeek: 'dddd [om] LT',
10196            lastDay: '[juster om] LT',
10197            lastWeek: '[ôfrûne] dddd [om] LT',
10198            sameElse: 'L',
10199        },
10200        relativeTime: {
10201            future: 'oer %s',
10202            past: '%s lyn',
10203            s: 'in pear sekonden',
10204            ss: '%d sekonden',
10205            m: 'ien minút',
10206            mm: '%d minuten',
10207            h: 'ien oere',
10208            hh: '%d oeren',
10209            d: 'ien dei',
10210            dd: '%d dagen',
10211            M: 'ien moanne',
10212            MM: '%d moannen',
10213            y: 'ien jier',
10214            yy: '%d jierren',
10215        },
10216        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
10217        ordinal: function (number) {
10218            return (
10219                number +
10220                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
10221            );
10222        },
10223        week: {
10224            dow: 1, // Monday is the first day of the week.
10225            doy: 4, // The week that contains Jan 4th is the first week of the year.
10226        },
10227    });
10228
10229    //! moment.js locale configuration
10230
10231    var months$6 = [
10232            'Eanáir',
10233            'Feabhra',
10234            'Márta',
10235            'Aibreán',
10236            'Bealtaine',
10237            'Meitheamh',
10238            'Iúil',
10239            'Lúnasa',
10240            'Meán Fómhair',
10241            'Deireadh Fómhair',
10242            'Samhain',
10243            'Nollaig',
10244        ],
10245        monthsShort$5 = [
10246            'Ean',
10247            'Feabh',
10248            'Márt',
10249            'Aib',
10250            'Beal',
10251            'Meith',
10252            'Iúil',
10253            'Lún',
10254            'M.F.',
10255            'D.F.',
10256            'Samh',
10257            'Noll',
10258        ],
10259        weekdays$1 = [
10260            'Dé Domhnaigh',
10261            'Dé Luain',
10262            'Dé Máirt',
10263            'Dé Céadaoin',
10264            'Déardaoin',
10265            'Dé hAoine',
10266            'Dé Sathairn',
10267        ],
10268        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
10269        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
10270
10271    hooks.defineLocale('ga', {
10272        months: months$6,
10273        monthsShort: monthsShort$5,
10274        monthsParseExact: true,
10275        weekdays: weekdays$1,
10276        weekdaysShort: weekdaysShort,
10277        weekdaysMin: weekdaysMin,
10278        longDateFormat: {
10279            LT: 'HH:mm',
10280            LTS: 'HH:mm:ss',
10281            L: 'DD/MM/YYYY',
10282            LL: 'D MMMM YYYY',
10283            LLL: 'D MMMM YYYY HH:mm',
10284            LLLL: 'dddd, D MMMM YYYY HH:mm',
10285        },
10286        calendar: {
10287            sameDay: '[Inniu ag] LT',
10288            nextDay: '[Amárach ag] LT',
10289            nextWeek: 'dddd [ag] LT',
10290            lastDay: '[Inné ag] LT',
10291            lastWeek: 'dddd [seo caite] [ag] LT',
10292            sameElse: 'L',
10293        },
10294        relativeTime: {
10295            future: 'i %s',
10296            past: '%s ó shin',
10297            s: 'cúpla soicind',
10298            ss: '%d soicind',
10299            m: 'nóiméad',
10300            mm: '%d nóiméad',
10301            h: 'uair an chloig',
10302            hh: '%d uair an chloig',
10303            d: 'lá',
10304            dd: '%d lá',
10305            M: 'mí',
10306            MM: '%d míonna',
10307            y: 'bliain',
10308            yy: '%d bliain',
10309        },
10310        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10311        ordinal: function (number) {
10312            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10313            return number + output;
10314        },
10315        week: {
10316            dow: 1, // Monday is the first day of the week.
10317            doy: 4, // The week that contains Jan 4th is the first week of the year.
10318        },
10319    });
10320
10321    //! moment.js locale configuration
10322
10323    var months$7 = [
10324            'Am Faoilleach',
10325            'An Gearran',
10326            'Am Màrt',
10327            'An Giblean',
10328            'An Cèitean',
10329            'An t-Ògmhios',
10330            'An t-Iuchar',
10331            'An Lùnastal',
10332            'An t-Sultain',
10333            'An Dàmhair',
10334            'An t-Samhain',
10335            'An Dùbhlachd',
10336        ],
10337        monthsShort$6 = [
10338            'Faoi',
10339            'Gear',
10340            'Màrt',
10341            'Gibl',
10342            'Cèit',
10343            'Ògmh',
10344            'Iuch',
10345            'Lùn',
10346            'Sult',
10347            'Dàmh',
10348            'Samh',
10349            'Dùbh',
10350        ],
10351        weekdays$2 = [
10352            'Didòmhnaich',
10353            'Diluain',
10354            'Dimàirt',
10355            'Diciadain',
10356            'Diardaoin',
10357            'Dihaoine',
10358            'Disathairne',
10359        ],
10360        weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
10361        weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
10362
10363    hooks.defineLocale('gd', {
10364        months: months$7,
10365        monthsShort: monthsShort$6,
10366        monthsParseExact: true,
10367        weekdays: weekdays$2,
10368        weekdaysShort: weekdaysShort$1,
10369        weekdaysMin: weekdaysMin$1,
10370        longDateFormat: {
10371            LT: 'HH:mm',
10372            LTS: 'HH:mm:ss',
10373            L: 'DD/MM/YYYY',
10374            LL: 'D MMMM YYYY',
10375            LLL: 'D MMMM YYYY HH:mm',
10376            LLLL: 'dddd, D MMMM YYYY HH:mm',
10377        },
10378        calendar: {
10379            sameDay: '[An-diugh aig] LT',
10380            nextDay: '[A-màireach aig] LT',
10381            nextWeek: 'dddd [aig] LT',
10382            lastDay: '[An-dè aig] LT',
10383            lastWeek: 'dddd [seo chaidh] [aig] LT',
10384            sameElse: 'L',
10385        },
10386        relativeTime: {
10387            future: 'ann an %s',
10388            past: 'bho chionn %s',
10389            s: 'beagan diogan',
10390            ss: '%d diogan',
10391            m: 'mionaid',
10392            mm: '%d mionaidean',
10393            h: 'uair',
10394            hh: '%d uairean',
10395            d: 'latha',
10396            dd: '%d latha',
10397            M: 'mìos',
10398            MM: '%d mìosan',
10399            y: 'bliadhna',
10400            yy: '%d bliadhna',
10401        },
10402        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10403        ordinal: function (number) {
10404            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10405            return number + output;
10406        },
10407        week: {
10408            dow: 1, // Monday is the first day of the week.
10409            doy: 4, // The week that contains Jan 4th is the first week of the year.
10410        },
10411    });
10412
10413    //! moment.js locale configuration
10414
10415    hooks.defineLocale('gl', {
10416        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
10417            '_'
10418        ),
10419        monthsShort:
10420            'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
10421                '_'
10422            ),
10423        monthsParseExact: true,
10424        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
10425        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
10426        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
10427        weekdaysParseExact: true,
10428        longDateFormat: {
10429            LT: 'H:mm',
10430            LTS: 'H:mm:ss',
10431            L: 'DD/MM/YYYY',
10432            LL: 'D [de] MMMM [de] YYYY',
10433            LLL: 'D [de] MMMM [de] YYYY H:mm',
10434            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
10435        },
10436        calendar: {
10437            sameDay: function () {
10438                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10439            },
10440            nextDay: function () {
10441                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10442            },
10443            nextWeek: function () {
10444                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
10445            },
10446            lastDay: function () {
10447                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
10448            },
10449            lastWeek: function () {
10450                return (
10451                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
10452                );
10453            },
10454            sameElse: 'L',
10455        },
10456        relativeTime: {
10457            future: function (str) {
10458                if (str.indexOf('un') === 0) {
10459                    return 'n' + str;
10460                }
10461                return 'en ' + str;
10462            },
10463            past: 'hai %s',
10464            s: 'uns segundos',
10465            ss: '%d segundos',
10466            m: 'un minuto',
10467            mm: '%d minutos',
10468            h: 'unha hora',
10469            hh: '%d horas',
10470            d: 'un día',
10471            dd: '%d días',
10472            M: 'un mes',
10473            MM: '%d meses',
10474            y: 'un ano',
10475            yy: '%d anos',
10476        },
10477        dayOfMonthOrdinalParse: /\d{1,2}º/,
10478        ordinal: '%dº',
10479        week: {
10480            dow: 1, // Monday is the first day of the week.
10481            doy: 4, // The week that contains Jan 4th is the first week of the year.
10482        },
10483    });
10484
10485    //! moment.js locale configuration
10486
10487    function processRelativeTime$4(number, withoutSuffix, key, isFuture) {
10488        var format = {
10489            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
10490            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
10491            m: ['एका मिणटान', 'एक मिनूट'],
10492            mm: [number + ' मिणटांनी', number + ' मिणटां'],
10493            h: ['एका वरान', 'एक वर'],
10494            hh: [number + ' वरांनी', number + ' वरां'],
10495            d: ['एका दिसान', 'एक दीस'],
10496            dd: [number + ' दिसांनी', number + ' दीस'],
10497            M: ['एका म्हयन्यान', 'एक म्हयनो'],
10498            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
10499            y: ['एका वर्सान', 'एक वर्स'],
10500            yy: [number + ' वर्सांनी', number + ' वर्सां'],
10501        };
10502        return isFuture ? format[key][0] : format[key][1];
10503    }
10504
10505    hooks.defineLocale('gom-deva', {
10506        months: {
10507            standalone:
10508                'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
10509                    '_'
10510                ),
10511            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
10512                '_'
10513            ),
10514            isFormat: /MMMM(\s)+D[oD]?/,
10515        },
10516        monthsShort:
10517            'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
10518                '_'
10519            ),
10520        monthsParseExact: true,
10521        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्राà
vendor: 8,719 bytes, lines 10521-10760
10521¤°_शेनवार'.split('_'),
10522        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
10523        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
10524        weekdaysParseExact: true,
10525        longDateFormat: {
10526            LT: 'A h:mm [वाजतां]',
10527            LTS: 'A h:mm:ss [वाजतां]',
10528            L: 'DD-MM-YYYY',
10529            LL: 'D MMMM YYYY',
10530            LLL: 'D MMMM YYYY A h:mm [वाजतां]',
10531            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
10532            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
10533        },
10534        calendar: {
10535            sameDay: '[आयज] LT',
10536            nextDay: '[फाल्यां] LT',
10537            nextWeek: '[फुडलो] dddd[,] LT',
10538            lastDay: '[काल] LT',
10539            lastWeek: '[फाटलो] dddd[,] LT',
10540            sameElse: 'L',
10541        },
10542        relativeTime: {
10543            future: '%s',
10544            past: '%s आदीं',
10545            s: processRelativeTime$4,
10546            ss: processRelativeTime$4,
10547            m: processRelativeTime$4,
10548            mm: processRelativeTime$4,
10549            h: processRelativeTime$4,
10550            hh: processRelativeTime$4,
10551            d: processRelativeTime$4,
10552            dd: processRelativeTime$4,
10553            M: processRelativeTime$4,
10554            MM: processRelativeTime$4,
10555            y: processRelativeTime$4,
10556            yy: processRelativeTime$4,
10557        },
10558        dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
10559        ordinal: function (number, period) {
10560            switch (period) {
10561                // the ordinal 'वेर' only applies to day of the month
10562                case 'D':
10563                    return number + 'वेर';
10564                default:
10565                case 'M':
10566                case 'Q':
10567                case 'DDD':
10568                case 'd':
10569                case 'w':
10570                case 'W':
10571                    return number;
10572            }
10573        },
10574        week: {
10575            dow: 0, // Sunday is the first day of the week
10576            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10577        },
10578        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
10579        meridiemHour: function (hour, meridiem) {
10580            if (hour === 12) {
10581                hour = 0;
10582            }
10583            if (meridiem === 'राती') {
10584                return hour < 4 ? hour : hour + 12;
10585            } else if (meridiem === 'सकाळीं') {
10586                return hour;
10587            } else if (meridiem === 'दनपारां') {
10588                return hour > 12 ? hour : hour + 12;
10589            } else if (meridiem === 'सांजे') {
10590                return hour + 12;
10591            }
10592        },
10593        meridiem: function (hour, minute, isLower) {
10594            if (hour < 4) {
10595                return 'राती';
10596            } else if (hour < 12) {
10597                return 'सकाळीं';
10598            } else if (hour < 16) {
10599                return 'दनपारां';
10600            } else if (hour < 20) {
10601                return 'सांजे';
10602            } else {
10603                return 'राती';
10604            }
10605        },
10606    });
10607
10608    //! moment.js locale configuration
10609
10610    function processRelativeTime$5(number, withoutSuffix, key, isFuture) {
10611        var format = {
10612            s: ['thoddea sekondamni', 'thodde sekond'],
10613            ss: [number + ' sekondamni', number + ' sekond'],
10614            m: ['eka mintan', 'ek minut'],
10615            mm: [number + ' mintamni', number + ' mintam'],
10616            h: ['eka voran', 'ek vor'],
10617            hh: [number + ' voramni', number + ' voram'],
10618            d: ['eka disan', 'ek dis'],
10619            dd: [number + ' disamni', number + ' dis'],
10620            M: ['eka mhoinean', 'ek mhoino'],
10621            MM: [number + ' mhoineamni', number + ' mhoine'],
10622            y: ['eka vorsan', 'ek voros'],
10623            yy: [number + ' vorsamni', number + ' vorsam'],
10624        };
10625        return isFuture ? format[key][0] : format[key][1];
10626    }
10627
10628    hooks.defineLocale('gom-latn', {
10629        months: {
10630            standalone:
10631                'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
10632                    '_'
10633                ),
10634            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
10635                '_'
10636            ),
10637            isFormat: /MMMM(\s)+D[oD]?/,
10638        },
10639        monthsShort:
10640            'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
10641        monthsParseExact: true,
10642        weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
10643        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
10644        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
10645        weekdaysParseExact: true,
10646        longDateFormat: {
10647            LT: 'A h:mm [vazta]',
10648            LTS: 'A h:mm:ss [vazta]',
10649            L: 'DD-MM-YYYY',
10650            LL: 'D MMMM YYYY',
10651            LLL: 'D MMMM YYYY A h:mm [vazta]',
10652            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
10653            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
10654        },
10655        calendar: {
10656            sameDay: '[Aiz] LT',
10657            nextDay: '[Faleam] LT',
10658            nextWeek: '[Fuddlo] dddd[,] LT',
10659            lastDay: '[Kal] LT',
10660            lastWeek: '[Fattlo] dddd[,] LT',
10661            sameElse: 'L',
10662        },
10663        relativeTime: {
10664            future: '%s',
10665            past: '%s adim',
10666            s: processRelativeTime$5,
10667            ss: processRelativeTime$5,
10668            m: processRelativeTime$5,
10669            mm: processRelativeTime$5,
10670            h: processRelativeTime$5,
10671            hh: processRelativeTime$5,
10672            d: processRelativeTime$5,
10673            dd: processRelativeTime$5,
10674            M: processRelativeTime$5,
10675            MM: processRelativeTime$5,
10676            y: processRelativeTime$5,
10677            yy: processRelativeTime$5,
10678        },
10679        dayOfMonthOrdinalParse: /\d{1,2}(er)/,
10680        ordinal: function (number, period) {
10681            switch (period) {
10682                // the ordinal 'er' only applies to day of the month
10683                case 'D':
10684                    return number + 'er';
10685                default:
10686                case 'M':
10687                case 'Q':
10688                case 'DDD':
10689                case 'd':
10690                case 'w':
10691                case 'W':
10692                    return number;
10693            }
10694        },
10695        week: {
10696            dow: 0, // Sunday is the first day of the week
10697            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10698        },
10699        meridiemParse: /rati|sokallim|donparam|sanje/,
10700        meridiemHour: function (hour, meridiem) {
10701            if (hour === 12) {
10702                hour = 0;
10703            }
10704            if (meridiem === 'rati') {
10705                return hour < 4 ? hour : hour + 12;
10706            } else if (meridiem === 'sokallim') {
10707                return hour;
10708            } else if (meridiem === 'donparam') {
10709                return hour > 12 ? hour : hour + 12;
10710            } else if (meridiem === 'sanje') {
10711                return hour + 12;
10712            }
10713        },
10714        meridiem: function (hour, minute, isLower) {
10715            if (hour < 4) {
10716                return 'rati';
10717            } else if (hour < 12) {
10718                return 'sokallim';
10719            } else if (hour < 16) {
10720                return 'donparam';
10721            } else if (hour < 20) {
10722                return 'sanje';
10723            } else {
10724                return 'rati';
10725            }
10726        },
10727    });
10728
10729    //! moment.js locale configuration
10730
10731    var symbolMap$7 = {
10732            1: 'à«§',
10733            2: '૨',
10734            3: 'à«©',
10735            4: '૪',
10736            5: 'à««',
10737            6: '૬',
10738            7: 'à«­',
10739            8: 'à«®',
10740            9: '૯',
10741            0: '૦',
10742        },
10743        numberMap$6 = {
10744            'à«§': '1',
10745            '૨': '2',
10746            'à«©': '3',
10747            '૪': '4',
10748            'à««': '5',
10749            '૬': '6',
10750            'à«­': '7',
10751            'à«®': '8',
10752            '૯': '9',
10753            '૦': '0',
10754        };
10755
10756    hooks.defineLocale('gu', {
10757        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
10758            '_'
10759        ),
10760        monthsShort:
vendor: 7,472 bytes, lines 10761-10963
10761            'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
10762                '_'
10763            ),
10764        monthsParseExact: true,
10765        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
10766            '_'
10767        ),
10768        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
10769        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
10770        longDateFormat: {
10771            LT: 'A h:mm વાગ્યે',
10772            LTS: 'A h:mm:ss વાગ્યે',
10773            L: 'DD/MM/YYYY',
10774            LL: 'D MMMM YYYY',
10775            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
10776            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
10777        },
10778        calendar: {
10779            sameDay: '[આજ] LT',
10780            nextDay: '[કાલે] LT',
10781            nextWeek: 'dddd, LT',
10782            lastDay: '[ગઇકાલે] LT',
10783            lastWeek: '[પાછલા] dddd, LT',
10784            sameElse: 'L',
10785        },
10786        relativeTime: {
10787            future: '%s મા',
10788            past: '%s પહેલા',
10789            s: 'અમુક પળો',
10790            ss: '%d સેકંડ',
10791            m: 'એક મિનિટ',
10792            mm: '%d મિનિટ',
10793            h: 'એક કલાક',
10794            hh: '%d કલાક',
10795            d: 'એક દિવસ',
10796            dd: '%d દિવસ',
10797            M: 'એક મહિનો',
10798            MM: '%d મહિનો',
10799            y: 'એક વર્ષ',
10800            yy: '%d વર્ષ',
10801        },
10802        preparse: function (string) {
10803            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
10804                return numberMap$6[match];
10805            });
10806        },
10807        postformat: function (string) {
10808            return string.replace(/\d/g, function (match) {
10809                return symbolMap$7[match];
10810            });
10811        },
10812        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
10813        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
10814        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
10815        meridiemHour: function (hour, meridiem) {
10816            if (hour === 12) {
10817                hour = 0;
10818            }
10819            if (meridiem === 'રાત') {
10820                return hour < 4 ? hour : hour + 12;
10821            } else if (meridiem === 'સવાર') {
10822                return hour;
10823            } else if (meridiem === 'બપોર') {
10824                return hour >= 10 ? hour : hour + 12;
10825            } else if (meridiem === 'સાંજ') {
10826                return hour + 12;
10827            }
10828        },
10829        meridiem: function (hour, minute, isLower) {
10830            if (hour < 4) {
10831                return 'રાત';
10832            } else if (hour < 10) {
10833                return 'સવાર';
10834            } else if (hour < 17) {
10835                return 'બપોર';
10836            } else if (hour < 20) {
10837                return 'સાંજ';
10838            } else {
10839                return 'રાત';
10840            }
10841        },
10842        week: {
10843            dow: 0, // Sunday is the first day of the week.
10844            doy: 6, // The week that contains Jan 6th is the first week of the year.
10845        },
10846    });
10847
10848    //! moment.js locale configuration
10849
10850    hooks.defineLocale('he', {
10851        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
10852            '_'
10853        ),
10854        monthsShort:
10855            'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
10856        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
10857        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
10858        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
10859        longDateFormat: {
10860            LT: 'HH:mm',
10861            LTS: 'HH:mm:ss',
10862            L: 'DD/MM/YYYY',
10863            LL: 'D [ב]MMMM YYYY',
10864            LLL: 'D [ב]MMMM YYYY HH:mm',
10865            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
10866            l: 'D/M/YYYY',
10867            ll: 'D MMM YYYY',
10868            lll: 'D MMM YYYY HH:mm',
10869            llll: 'ddd, D MMM YYYY HH:mm',
10870        },
10871        calendar: {
10872            sameDay: '[היום ב־]LT',
10873            nextDay: '[מחר ב־]LT',
10874            nextWeek: 'dddd [בשעה] LT',
10875            lastDay: '[אתמול ב־]LT',
10876            lastWeek: '[ביום] dddd [האחרון בשעה] LT',
10877            sameElse: 'L',
10878        },
10879        relativeTime: {
10880            future: 'בעוד %s',
10881            past: 'לפני %s',
10882            s: 'מספר שניות',
10883            ss: '%d שניות',
10884            m: 'דקה',
10885            mm: '%d דקות',
10886            h: 'שעה',
10887            hh: function (number) {
10888                if (number === 2) {
10889                    return 'שעתיים';
10890                }
10891                return number + ' שעות';
10892            },
10893            d: 'יום',
10894            dd: function (number) {
10895                if (number === 2) {
10896                    return 'יומיים';
10897                }
10898                return number + ' ימים';
10899            },
10900            M: 'חודש',
10901            MM: function (number) {
10902                if (number === 2) {
10903                    return 'חודשיים';
10904                }
10905                return number + ' חודשים';
10906            },
10907            y: 'שנה',
10908            yy: function (number) {
10909                if (number === 2) {
10910                    return 'שנתיים';
10911                } else if (number % 10 === 0 && number !== 10) {
10912                    return number + ' שנה';
10913                }
10914                return number + ' שנים';
10915            },
10916        },
10917        meridiemParse:
10918            /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
10919        isPM: function (input) {
10920            return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
10921        },
10922        meridiem: function (hour, minute, isLower) {
10923            if (hour < 5) {
10924                return 'לפנות בוקר';
10925            } else if (hour < 10) {
10926                return 'בבוקר';
10927            } else if (hour < 12) {
10928                return isLower ? 'לפנה"צ' : 'לפני הצהריים';
10929            } else if (hour < 18) {
10930                return isLower ? 'אחה"צ' : 'אחרי הצהריים';
10931            } else {
10932                return 'בערב';
10933            }
10934        },
10935    });
10936
10937    //! moment.js locale configuration
10938
10939    var symbolMap$8 = {
10940            1: '१',
10941            2: '२',
10942            3: '३',
10943            4: '४',
10944            5: '५',
10945            6: '६',
10946            7: '७',
10947            8: '८',
10948            9: '९',
10949            0: '०',
10950        },
10951        numberMap$7 = {
10952            '१': '1',
10953            '२': '2',
10954            '३': '3',
10955            '४': '4',
10956            '५': '5',
10957            '६': '6',
10958            '७': '7',
10959            '८': '8',
10960            '९': '9',
10961            '०': '0',
10962        },
10963        monthsParse$7 = [
vendor: 5,323 bytes, lines 10964-11072
10964            /^जन/i,
10965            /^फ़र|फर/i,
10966            /^मार्च/i,
10967            /^अप्रै/i,
10968            /^मई/i,
10969            /^जून/i,
10970            /^जुल/i,
10971            /^अग/i,
10972            /^सितं|सित/i,
10973            /^अक्टू/i,
10974            /^नव|नवं/i,
10975            /^दिसं|दिस/i,
10976        ],
10977        shortMonthsParse = [
10978            /^जन/i,
10979            /^फ़र/i,
10980            /^मार्च/i,
10981            /^अप्रै/i,
10982            /^मई/i,
10983            /^जून/i,
10984            /^जुल/i,
10985            /^अग/i,
10986            /^सित/i,
10987            /^अक्टू/i,
10988            /^नव/i,
10989            /^दिस/i,
10990        ];
10991
10992    hooks.defineLocale('hi', {
10993        months: {
10994            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
10995                '_'
10996            ),
10997            standalone:
10998                'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
10999                    '_'
11000                ),
11001        },
11002        monthsShort:
11003            'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
11004        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
11005        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
11006        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
11007        longDateFormat: {
11008            LT: 'A h:mm बजे',
11009            LTS: 'A h:mm:ss बजे',
11010            L: 'DD/MM/YYYY',
11011            LL: 'D MMMM YYYY',
11012            LLL: 'D MMMM YYYY, A h:mm बजे',
11013            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
11014        },
11015
11016        monthsParse: monthsParse$7,
11017        longMonthsParse: monthsParse$7,
11018        shortMonthsParse: shortMonthsParse,
11019
11020        monthsRegex:
11021            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
11022
11023        monthsShortRegex:
11024            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
11025
11026        monthsStrictRegex:
11027            /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
11028
11029        monthsShortStrictRegex:
11030            /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
11031
11032        calendar: {
11033            sameDay: '[आज] LT',
11034            nextDay: '[कल] LT',
11035            nextWeek: 'dddd, LT',
11036            lastDay: '[कल] LT',
11037            lastWeek: '[पिछले] dddd, LT',
11038            sameElse: 'L',
11039        },
11040        relativeTime: {
11041            future: '%s में',
11042            past: '%s पहले',
11043            s: 'कुछ ही क्षण',
11044            ss: '%d सेकंड',
11045            m: 'एक मिनट',
11046            mm: '%d मिनट',
11047            h: 'एक घंटा',
11048            hh: '%d घंटे',
11049            d: 'एक दिन',
11050            dd: '%d दिन',
11051            M: 'एक महीने',
11052            MM: '%d महीने',
11053            y: 'एक वर्ष',
11054            yy: '%d वर्ष',
11055        },
11056        preparse: function (string) {
11057            return string.replace(/[१२३४५६७८९०]/g, function (match) {
11058                return numberMap$7[match];
11059            });
11060        },
11061        postformat: function (string) {
11062            return string.replace(/\d/g, function (match) {
11063                return symbolMap$8[match];
11064            });
11065        },
11066        // Hindi notation for meridiems are quite fuzzy in practice. While there exists
11067        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
11068        meridiemParse: /रात|सुबह|दोपहर|शाम/,
11069        meridiemHour: function (hour, meridiem) {
11070            if (hour === 12) {
11071                hour = 0;
11072            }
vendor: 12,402 bytes, lines 11073-11418
11073            if (meridiem === 'रात') {
11074                return hour < 4 ? hour : hour + 12;
11075            } else if (meridiem === 'सुबह') {
11076                return hour;
11077            } else if (meridiem === 'दोपहर') {
11078                return hour >= 10 ? hour : hour + 12;
11079            } else if (meridiem === 'शाम') {
11080                return hour + 12;
11081            }
11082        },
11083        meridiem: function (hour, minute, isLower) {
11084            if (hour < 4) {
11085                return 'रात';
11086            } else if (hour < 10) {
11087                return 'सुबह';
11088            } else if (hour < 17) {
11089                return 'दोपहर';
11090            } else if (hour < 20) {
11091                return 'शाम';
11092            } else {
11093                return 'रात';
11094            }
11095        },
11096        week: {
11097            dow: 0, // Sunday is the first day of the week.
11098            doy: 6, // The week that contains Jan 6th is the first week of the year.
11099        },
11100    });
11101
11102    //! moment.js locale configuration
11103
11104    function translate$3(number, withoutSuffix, key) {
11105        var result = number + ' ';
11106        switch (key) {
11107            case 'ss':
11108                if (number === 1) {
11109                    result += 'sekunda';
11110                } else if (number === 2 || number === 3 || number === 4) {
11111                    result += 'sekunde';
11112                } else {
11113                    result += 'sekundi';
11114                }
11115                return result;
11116            case 'm':
11117                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
11118            case 'mm':
11119                if (number === 1) {
11120                    result += 'minuta';
11121                } else if (number === 2 || number === 3 || number === 4) {
11122                    result += 'minute';
11123                } else {
11124                    result += 'minuta';
11125                }
11126                return result;
11127            case 'h':
11128                return withoutSuffix ? 'jedan sat' : 'jednog sata';
11129            case 'hh':
11130                if (number === 1) {
11131                    result += 'sat';
11132                } else if (number === 2 || number === 3 || number === 4) {
11133                    result += 'sata';
11134                } else {
11135                    result += 'sati';
11136                }
11137                return result;
11138            case 'dd':
11139                if (number === 1) {
11140                    result += 'dan';
11141                } else {
11142                    result += 'dana';
11143                }
11144                return result;
11145            case 'MM':
11146                if (number === 1) {
11147                    result += 'mjesec';
11148                } else if (number === 2 || number === 3 || number === 4) {
11149                    result += 'mjeseca';
11150                } else {
11151                    result += 'mjeseci';
11152                }
11153                return result;
11154            case 'yy':
11155                if (number === 1) {
11156                    result += 'godina';
11157                } else if (number === 2 || number === 3 || number === 4) {
11158                    result += 'godine';
11159                } else {
11160                    result += 'godina';
11161                }
11162                return result;
11163        }
11164    }
11165
11166    hooks.defineLocale('hr', {
11167        months: {
11168            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
11169                '_'
11170            ),
11171            standalone:
11172                'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
11173                    '_'
11174                ),
11175        },
11176        monthsShort:
11177            'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
11178                '_'
11179            ),
11180        monthsParseExact: true,
11181        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
11182            '_'
11183        ),
11184        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
11185        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
11186        weekdaysParseExact: true,
11187        longDateFormat: {
11188            LT: 'H:mm',
11189            LTS: 'H:mm:ss',
11190            L: 'DD.MM.YYYY',
11191            LL: 'Do MMMM YYYY',
11192            LLL: 'Do MMMM YYYY H:mm',
11193            LLLL: 'dddd, Do MMMM YYYY H:mm',
11194        },
11195        calendar: {
11196            sameDay: '[danas u] LT',
11197            nextDay: '[sutra u] LT',
11198            nextWeek: function () {
11199                switch (this.day()) {
11200                    case 0:
11201                        return '[u] [nedjelju] [u] LT';
11202                    case 3:
11203                        return '[u] [srijedu] [u] LT';
11204                    case 6:
11205                        return '[u] [subotu] [u] LT';
11206                    case 1:
11207                    case 2:
11208                    case 4:
11209                    case 5:
11210                        return '[u] dddd [u] LT';
11211                }
11212            },
11213            lastDay: '[jučer u] LT',
11214            lastWeek: function () {
11215                switch (this.day()) {
11216                    case 0:
11217                        return '[prošlu] [nedjelju] [u] LT';
11218                    case 3:
11219                        return '[prošlu] [srijedu] [u] LT';
11220                    case 6:
11221                        return '[prošle] [subote] [u] LT';
11222                    case 1:
11223                    case 2:
11224                    case 4:
11225                    case 5:
11226                        return '[prošli] dddd [u] LT';
11227                }
11228            },
11229            sameElse: 'L',
11230        },
11231        relativeTime: {
11232            future: 'za %s',
11233            past: 'prije %s',
11234            s: 'par sekundi',
11235            ss: translate$3,
11236            m: translate$3,
11237            mm: translate$3,
11238            h: translate$3,
11239            hh: translate$3,
11240            d: 'dan',
11241            dd: translate$3,
11242            M: 'mjesec',
11243            MM: translate$3,
11244            y: 'godinu',
11245            yy: translate$3,
11246        },
11247        dayOfMonthOrdinalParse: /\d{1,2}\./,
11248        ordinal: '%d.',
11249        week: {
11250            dow: 1, // Monday is the first day of the week.
11251            doy: 7, // The week that contains Jan 7th is the first week of the year.
11252        },
11253    });
11254
11255    //! moment.js locale configuration
11256
11257    var weekEndings =
11258        'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
11259    function translate$4(number, withoutSuffix, key, isFuture) {
11260        var num = number;
11261        switch (key) {
11262            case 's':
11263                return isFuture || withoutSuffix
11264                    ? 'néhány másodperc'
11265                    : 'néhány másodperce';
11266            case 'ss':
11267                return num + (isFuture || withoutSuffix)
11268                    ? ' másodperc'
11269                    : ' másodperce';
11270            case 'm':
11271                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
11272            case 'mm':
11273                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
11274            case 'h':
11275                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
11276            case 'hh':
11277                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
11278            case 'd':
11279                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
11280            case 'dd':
11281                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
11282            case 'M':
11283                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11284            case 'MM':
11285                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11286            case 'y':
11287                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
11288            case 'yy':
11289                return num + (isFuture || withoutSuffix ? ' év' : ' éve');
11290        }
11291        return '';
11292    }
11293    function week(isFuture) {
11294        return (
11295            (isFuture ? '' : '[múlt] ') +
11296            '[' +
11297            weekEndings[this.day()] +
11298            '] LT[-kor]'
11299        );
11300    }
11301
11302    hooks.defineLocale('hu', {
11303        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
11304            '_'
11305        ),
11306        monthsShort:
11307            'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
11308                '_'
11309            ),
11310        monthsParseExact: true,
11311        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
11312        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
11313        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
11314        longDateFormat: {
11315            LT: 'H:mm',
11316            LTS: 'H:mm:ss',
11317            L: 'YYYY.MM.DD.',
11318            LL: 'YYYY. MMMM D.',
11319            LLL: 'YYYY. MMMM D. H:mm',
11320            LLLL: 'YYYY. MMMM D., dddd H:mm',
11321        },
11322        meridiemParse: /de|du/i,
11323        isPM: function (input) {
11324            return input.charAt(1).toLowerCase() === 'u';
11325        },
11326        meridiem: function (hours, minutes, isLower) {
11327            if (hours < 12) {
11328                return isLower === true ? 'de' : 'DE';
11329            } else {
11330                return isLower === true ? 'du' : 'DU';
11331            }
11332        },
11333        calendar: {
11334            sameDay: '[ma] LT[-kor]',
11335            nextDay: '[holnap] LT[-kor]',
11336            nextWeek: function () {
11337                return week.call(this, true);
11338            },
11339            lastDay: '[tegnap] LT[-kor]',
11340            lastWeek: function () {
11341                return week.call(this, false);
11342            },
11343            sameElse: 'L',
11344        },
11345        relativeTime: {
11346            future: '%s múlva',
11347            past: '%s',
11348            s: translate$4,
11349            ss: translate$4,
11350            m: translate$4,
11351            mm: translate$4,
11352            h: translate$4,
11353            hh: translate$4,
11354            d: translate$4,
11355            dd: translate$4,
11356            M: translate$4,
11357            MM: translate$4,
11358            y: translate$4,
11359            yy: translate$4,
11360        },
11361        dayOfMonthOrdinalParse: /\d{1,2}\./,
11362        ordinal: '%d.',
11363        week: {
11364            dow: 1, // Monday is the first day of the week.
11365            doy: 4, // The week that contains Jan 4th is the first week of the year.
11366        },
11367    });
11368
11369    //! moment.js locale configuration
11370
11371    hooks.defineLocale('hy-am', {
11372        months: {
11373            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
11374                '_'
11375            ),
11376            standalone:
11377                'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
11378                    '_'
11379                ),
11380        },
11381        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
11382        weekdays:
11383            'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
11384                '_'
11385            ),
11386        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11387        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11388        longDateFormat: {
11389            LT: 'HH:mm',
11390            LTS: 'HH:mm:ss',
11391            L: 'DD.MM.YYYY',
11392            LL: 'D MMMM YYYY Õ©.',
11393            LLL: 'D MMMM YYYY Õ©., HH:mm',
11394            LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',
11395        },
11396        calendar: {
11397            sameDay: '[այսօր] LT',
11398            nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',
11399            lastDay: '[երեկ] LT',
11400            nextWeek: function () {
11401                return 'dddd [օրը ժամը] LT';
11402            },
11403            lastWeek: function () {
11404                return '[անցած] dddd [օրը ժամը] LT';
11405            },
11406            sameElse: 'L',
11407        },
11408        relativeTime: {
11409            future: '%s Õ°Õ¥Õ¿Õ¸',
11410            past: '%s Õ¡Õ¼Õ¡Õ»',
11411            s: 'մի քանի վայրկյան',
11412            ss: '%d վայրկյան',
11413            m: 'րոպե',
11414            mm: '%d րոպե',
11415            h: 'ÕªÕ¡Õ´',
11416            hh: '%d ÕªÕ¡Õ´',
11417            d: 'օր',
11418            dd: '%d օր',
11419            M: 'Õ¡Õ´Õ«Õ½',
11420            MM: '%d Õ¡Õ´Õ«Õ½',
11421            y: 'տարի',
11422            yy: '%d տարի',
11423        },
11424        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
11425        isPM: function (input) {
11426            return /^(ցերեկվա|երեկոյան)$/.test(input);
11427        },
11428        meridiem: function (hour) {
11429            if (hour < 4) {
11430                return 'գիշերվա';
11431            } else if (hour < 12) {
11432                return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';
11433            } else if (hour < 17) {
11434                return 'ցերեկվա';
11435            } else {
11436                return 'երեկոյան';
11437            }
11438        },
11439        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
11440        ordinal: function (number, period) {
11441            switch (period) {
11442                case 'DDD':
11443                case 'w':
11444                case 'W':
11445                case 'DDDo':
11446                    if (number === 1) {
11447                        return number + '-Õ«Õ¶';
11448                    }
11449                    return number + '-րդ';
11450                default:
11451                    return number;
11452            }
11453        },
11454        week: {
11455            dow: 1, // Monday is the first day of the week.
11456            doy: 7, // The week that contains Jan 7th is the first week of the year.
11457        },
11458    });
11459
11460    //! moment.js locale configuration
11461
11462    hooks.defineLocale('id', {
11463        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
11464            '_'
11465        ),
11466        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
11467        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
11468        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
11469        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
11470        longDateFormat: {
11471            LT: 'HH.mm',
11472            LTS: 'HH.mm.ss',
11473            L: 'DD/MM/YYYY',
11474            LL: 'D MMMM YYYY',
11475            LLL: 'D MMMM YYYY [pukul] HH.mm',
11476            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11477        },
11478        meridiemParse: /pagi|siang|sore|malam/,
11479        meridiemHour: function (hour, meridiem) {
11480            if (hour === 12) {
11481                hour = 0;
11482            }
11483            if (meridiem === 'pagi') {
11484                return hour;
11485            } else if (meridiem === 'siang') {
11486                return hour >= 11 ? hour : hour + 12;
11487            } else if (meridiem === 'sore' || meridiem === 'malam') {
11488                return hour + 12;
11489            }
11490        },
11491        meridiem: function (hours, minutes, isLower) {
11492            if (hours < 11) {
11493                return 'pagi';
11494            } else if (hours < 15) {
11495                return 'siang';
11496            } else if (hours < 19) {
11497                return 'sore';
11498            } else {
11499                return 'malam';
11500            }
11501        },
11502        calendar: {
11503            sameDay: '[Hari ini pukul] LT',
11504            nextDay: '[Besok pukul] LT',
11505            nextWeek: 'dddd [pukul] LT',
11506            lastDay: '[Kemarin pukul] LT',
11507            lastWeek: 'dddd [lalu pukul] LT',
11508            sameElse: 'L',
11509        },
11510        relativeTime: {
11511            future: 'dalam %s',
11512            past: '%s yang lalu',
11513            s: 'beberapa detik',
11514            ss: '%d detik',
11515            m: 'semenit',
11516            mm: '%d menit',
11517            h: 'sejam',
11518            hh: '%d jam',
11519            d: 'sehari',
11520            dd: '%d hari',
11521            M: 'sebulan',
11522            MM: '%d bulan',
11523            y: 'setahun',
11524            yy: '%d tahun',
11525        },
11526        week: {
11527            dow: 0, // Sunday is the first day of the week.
11528            doy: 6, // The week that contains Jan 6th is the first week of the year.
11529        },
11530    });
11531
11532    //! moment.js locale configuration
11533
11534    function plural$2(n) {
11535        if (n % 100 === 11) {
11536            return true;
11537        } else if (n % 10 === 1) {
11538            return false;
11539        }
11540        return true;
11541    }
11542    function translate$5(number, withoutSuffix, key, isFuture) {
11543        var result = number + ' ';
11544        switch (key) {
11545            case 's':
11546                return withoutSuffix || isFuture
11547                    ? 'nokkrar sekúndur'
11548                    : 'nokkrum sekúndum';
11549            case 'ss':
11550                if (plural$2(number)) {
11551                    return (
11552                        result +
11553                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
11554                    );
11555                }
11556                return result + 'sekúnda';
11557            case 'm':
11558                return withoutSuffix ? 'mínúta' : 'mínútu';
11559            case 'mm':
11560                if (plural$2(number)) {
11561                    return (
11562                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
11563                    );
11564                } else if (withoutSuffix) {
11565                    return result + 'mínúta';
11566                }
11567                return result + 'mínútu';
11568            case 'hh':
11569                if (plural$2(number)) {
11570                    return (
11571                        result +
11572                        (withoutSuffix || isFuture
11573                            ? 'klukkustundir'
11574                            : 'klukkustundum')
11575                    );
11576                }
11577                return result + 'klukkustund';
11578            case 'd':
11579                if (withoutSuffix) {
11580                    return 'dagur';
11581                }
11582                return isFuture ? 'dag' : 'degi';
11583            case 'dd':
11584                if (plural$2(number)) {
11585                    if (withoutSuffix) {
11586                        return result + 'dagar';
11587                    }
11588                    return result + (isFuture ? 'daga' : 'dögum');
11589                } else if (withoutSuffix) {
11590                    return result + 'dagur';
11591                }
11592                return result + (isFuture ? 'dag' : 'degi');
11593            case 'M':
11594                if (withoutSuffix) {
11595                    return 'mánuður';
11596                }
11597                return isFuture ? 'mánuð' : 'mánuði';
11598            case 'MM':
11599                if (plural$2(number)) {
11600                    if (withoutSuffix) {
11601                        return result + 'mánuðir';
11602                    }
11603                    return result + (isFuture ? 'mánuði' : 'mánuðum');
11604                } else if (withoutSuffix) {
11605                    return result + 'mánuður';
11606                }
11607                return result + (isFuture ? 'mánuð' : 'mánuði');
11608            case 'y':
11609                return withoutSuffix || isFuture ? 'ár' : 'ári';
11610            case 'yy':
11611                if (plural$2(number)) {
11612                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
11613                }
11614                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
11615        }
11616    }
11617
11618    hooks.defineLocale('is', {
11619        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
11620            '_'
11621        ),
11622        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
11623        weekdays:
11624            'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
11625                '_'
11626            ),
11627        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
11628        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
11629        longDateFormat: {
11630            LT: 'H:mm',
11631            LTS: 'H:mm:ss',
11632            L: 'DD.MM.YYYY',
11633            LL: 'D. MMMM YYYY',
11634            LLL: 'D. MMMM YYYY [kl.] H:mm',
11635            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
11636        },
11637        calendar: {
11638            sameDay: '[í dag kl.] LT',
11639            nextDay: '[á morgun kl.] LT',
11640            nextWeek: 'dddd [kl.] LT',
11641            lastDay: '[í gær kl.] LT',
11642            lastWeek: '[síðasta] dddd [kl.] LT',
11643            sameElse: 'L',
11644        },
11645        relativeTime: {
11646            future: 'eftir %s',
11647            past: 'fyrir %s síðan',
11648            s: translate$5,
11649            ss: translate$5,
11650            m: translate$5,
11651            mm: translate$5,
11652            h: 'klukkustund',
11653            hh: translate$5,
11654            d: translate$5,
11655            dd: translate$5,
11656            M: translate$5,
11657            MM: translate$5,
11658            y: translate$5,
11659            yy: translate$5,
11660        },
11661        dayOfMonthOrdinalParse: /\d{1,2}\./,
11662        ordinal: '%d.',
11663        week: {
11664            dow: 1, // Monday is the first day of the week.
11665            doy: 4, // The week that contains Jan 4th is the first week of the year.
11666        },
11667    });
11668
11669    //! moment.js locale configuration
11670
11671    hooks.defineLocale('it-ch', {
11672        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11673            '_'
11674        ),
11675        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11676        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11677            '_'
11678        ),
11679        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11680        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11681        longDateFormat: {
11682            LT: 'HH:mm',
11683            LTS: 'HH:mm:ss',
11684            L: 'DD.MM.YYYY',
11685            LL: 'D MMMM YYYY',
11686            LLL: 'D MMMM YYYY HH:mm',
11687            LLLL: 'dddd D MMMM YYYY HH:mm',
11688        },
11689        calendar: {
11690            sameDay: '[Oggi alle] LT',
11691            nextDay: '[Domani alle] LT',
11692            nextWeek: 'dddd [alle] LT',
11693            lastDay: '[Ieri alle] LT',
11694            lastWeek: function () {
11695                switch (this.day()) {
11696                    case 0:
11697                        return '[la scorsa] dddd [alle] LT';
11698                    default:
11699                        return '[lo scorso] dddd [alle] LT';
11700                }
11701            },
11702            sameElse: 'L',
11703        },
11704        relativeTime: {
11705            future: function (s) {
11706                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
11707            },
11708            past: '%s fa',
11709            s: 'alcuni secondi',
11710            ss: '%d secondi',
11711            m: 'un minuto',
11712            mm: '%d minuti',
11713            h: "un'ora",
11714            hh: '%d ore',
11715            d: 'un giorno',
11716            dd: '%d giorni',
11717            M: 'un mese',
11718            MM: '%d mesi',
11719            y: 'un anno',
11720            yy: '%d anni',
11721        },
11722        dayOfMonthOrdinalParse: /\d{1,2}º/,
11723        ordinal: '%dº',
11724        week: {
11725            dow: 1, // Monday is the first day of the week.
11726            doy: 4, // The week that contains Jan 4th is the first week of the year.
11727        },
11728    });
11729
11730    //! moment.js locale configuration
11731
11732    hooks.defineLocale('it', {
11733        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11734            '_'
11735        ),
11736        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11737        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11738            '_'
11739        ),
11740        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11741        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11742        longDateFormat: {
11743            LT: 'HH:mm',
11744            LTS: 'HH:mm:ss',
11745            L: 'DD/MM/YYYY',
11746            LL: 'D MMMM YYYY',
11747            LLL: 'D MMMM YYYY HH:mm',
11748            LLLL: 'dddd D MMMM YYYY HH:mm',
11749        },
11750        calendar: {
11751            sameDay: function () {
11752                return (
11753                    '[Oggi a' +
11754                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11755                    ']LT'
11756                );
11757            },
11758            nextDay: function () {
11759                return (
11760                    '[Domani a' +
11761                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11762                    ']LT'
11763                );
11764            },
11765            nextWeek: function () {
11766                return (
11767                    'dddd [a' +
11768                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11769                    ']LT'
11770                );
11771            },
11772            lastDay: function () {
11773                return (
11774                    '[Ieri a' +
11775                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11776                    ']LT'
11777                );
11778            },
11779            lastWeek: function () {
11780                switch (this.day()) {
11781                    case 0:
11782                        return (
11783                            '[La scorsa] dddd [a' +
11784                            (this.hours() > 1
11785                                ? 'lle '
11786                                : this.hours() === 0
11787                                ? ' '
11788                                : "ll'") +
11789                            ']LT'
11790                        );
11791                    default:
11792                        return (
11793                            '[Lo scorso] dddd [a' +
11794                            (this.hours() > 1
11795                                ? 'lle '
11796                                : this.hours() === 0
11797                                ? ' '
11798                                : "ll'") +
11799                            ']LT'
11800                        );
11801                }
11802            },
11803            sameElse: 'L',
11804        },
11805        relativeTime: {
11806            future: 'tra %s',
11807            past: '%s fa',
11808            s: 'alcuni secondi',
11809            ss: '%d secondi',
11810            m: 'un minuto',
11811            mm: '%d minuti',
11812            h: "un'ora",
11813            hh: '%d ore',
11814            d: 'un giorno',
11815            dd: '%d giorni',
11816            w: 'una settimana',
11817            ww: '%d settimane',
11818            M: 'un mese',
11819            MM: '%d mesi',
11820            y: 'un anno',
11821            yy: '%d anni',
11822        },
11823        dayOfMonthOrdinalParse: /\d{1,2}º/,
11824        ordinal: '%dº',
11825        week: {
11826            dow: 1, // Monday is the first day of the week.
11827            doy: 4, // The week that contains Jan 4th is the first week of the year.
11828        },
11829    });
11830
11831    //! moment.js locale configuration
11832
11833    hooks.defineLocale('ja', {
11834        eras: [
11835            {
11836                since: '2019-05-01',
11837                offset: 1,
11838                name: '令和',
11839                narrow: '㋿',
11840                abbr: 'R',
11841            },
11842            {
11843                since: '1989-01-08',
11844                until: '2019-04-30',
11845                offset: 1,
11846                name: '平成',
11847                narrow: '㍻',
11848                abbr: 'H',
11849            },
11850            {
11851                since: '1926-12-25',
11852                until: '1989-01-07',
11853                offset: 1,
11854                name: '昭和',
11855                narrow: '㍼',
11856                abbr: 'S',
11857            },
11858            {
11859                since: '1912-07-30',
11860                until: '1926-12-24',
11861                offset: 1,
11862                name: '大正',
11863                narrow: '㍽',
11864                abbr: 'T',
11865            },
11866            {
11867                since: '1873-01-01',
11868                until: '1912-07-29',
11869                offset: 6,
11870                name: '明治',
11871                narrow: '㍾',
11872                abbr: 'M',
11873            },
11874            {
11875                since: '0001-01-01',
11876                until: '1873-12-31',
11877                offset: 1,
11878                name: '西暦',
11879                narrow: 'AD',
11880                abbr: 'AD',
11881            },
11882            {
11883                since: '0000-12-31',
11884                until: -Infinity,
11885                offset: 1,
11886                name: '紀元前',
11887                narrow: 'BC',
11888                abbr: 'BC',
11889            },
11890        ],
11891        eraYearOrdinalRegex: /(元|\d+)年/,
11892        eraYearOrdinalParse: function (input, match) {
11893            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
11894        },
11895        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
11896        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
11897            '_'
11898        ),
11899        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
11900        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
11901        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
11902        longDateFormat: {
11903      
11903      LT: 'HH:mm',
11904            LTS: 'HH:mm:ss',
11905            L: 'YYYY/MM/DD',
11906            LL: 'YYYY年M月D日',
11907            LLL: 'YYYY年M月D日 HH:mm',
11908            LLLL: 'YYYY年M月D日 dddd HH:mm',
11909            l: 'YYYY/MM/DD',
11910            ll: 'YYYY年M月D日',
11911            lll: 'YYYY年M月D日 HH:mm',
11912            llll: 'YYYY年M月D日(ddd) HH:mm',
11913        },
11914        meridiemParse: /午前|午後/i,
11915        isPM: function (input) {
11916            return input === '午後';
11917        },
11918        meridiem: function (hour, minute, isLower) {
11919            if (hour < 12) {
11920                return '午前';
11921            } else {
11922                return '午後';
11923            }
11924        },
11925        calendar: {
11926            sameDay: '[今日] LT',
11927            nextDay: '[明日] LT',
11928            nextWeek: function (now) {
11929                if (now.week() !== this.week()) {
11930                    return '[来週]dddd LT';
11931                } else {
11932                    return 'dddd LT';
11933                }
11934            },
11935            lastDay: '[昨日] LT',
11936            lastWeek: function (now) {
11937                if (this.week() !== now.week()) {
11938                    return '[先週]dddd LT';
11939                } else {
11940                    return 'dddd LT';
11941                }
11942            },
11943            sameElse: 'L',
11944        },
11945        dayOfMonthOrdinalParse: /\d{1,2}日/,
11946        ordinal: function (number, period) {
11947            switch (period) {
11948                case 'y':
11949                    return number === 1 ? '元年' : number + '年';
11950                case 'd':
11951                case 'D':
11952                case 'DDD':
11953                    return number + '日';
11954                default:
11955                    return number;
11956            }
11957        },
11958        relativeTime: {
11959            future: '%s後',
11960            past: '%s前',
11961            s: '数秒',
11962            ss: '%d秒',
11963            m: '1分',
11964            mm: '%d分',
11965            h: '1時間',
11966            hh: '%d時間',
11967            d: '1日',
11968            dd: '%d日',
11969            M: '1ヶ月',
11970            MM: '%dヶ月',
11971            y: '1å¹´',
11972            yy: '%då¹´',
11973        },
11974    });
11975
11976    //! moment.js locale configuration
11977
11978    hooks.defineLocale('jv', {
11979        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
11980            '_'
11981        ),
11982        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
11983        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
11984        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
11985        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
11986        longDateFormat: {
11987            LT: 'HH.mm',
11988            LTS: 'HH.mm.ss',
11989            L: 'DD/MM/YYYY',
11990            LL: 'D MMMM YYYY',
11991            LLL: 'D MMMM YYYY [pukul] HH.mm',
11992            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11993        },
11994        meridiemParse: /enjing|siyang|sonten|ndalu/,
11995        meridiemHour: function (hour, meridiem) {
11996            if (hour === 12) {
11997                hour = 0;
11998            }
11999            if (meridiem === 'enjing') {
12000                return hour;
12001            } else if (meridiem === 'siyang') {
12002                return hour >= 11 ? hour : hour + 12;
12003            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
12004                return hour + 12;
12005            }
12006        },
12007        meridiem: function (hours, minutes, isLower) {
12008            if (hours < 11) {
12009                return 'enjing';
12010            } else if (hours < 15) {
12011                return 'siyang';
12012            } else if (hours < 19) {
12013                return 'sonten';
12014            } else {
12015                return 'ndalu';
12016            }
12017        },
12018        calendar: {
12019            sameDay: '[Dinten puniko pukul] LT',
12020            nextDay: '[Mbenjang pukul] LT',
12021            nextWeek: 'dddd [pukul] LT',
12022            lastDay: '[Kala wingi pukul] LT',
12023            lastWeek: 'dddd [kepengker pukul] LT',
12024            sameElse: 'L',
12025        },
12026        relativeTime: {
12027            future: 'wonten ing %s',
12028            past: '%s ingkang kepengker',
12029            s: 'sawetawis detik',
12030            ss: '%d detik',
12031            m: 'setunggal menit',
12032            mm: '%d menit',
12033            h: 'setunggal jam',
12034            hh: '%d jam',
12035            d: 'sedinten',
12036            dd: '%d dinten',
12037            M: 'sewulan',
12038            MM: '%d wulan',
12039            y: 'setaun',
12040            yy: '%d taun',
12041        },
12042        week: {
12043            dow: 1, // Monday is the first day of the week.
12044            doy: 7, // The week that contains Jan 7th is the first week of the year.
12045        },
12046    });
12047
12048    //! moment.js locale configuration
12049
12050    hooks.defineLocale('ka', {
12051        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
12052            '_'
12053        ),
12054        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
12055        weekdays: {
12056            standalone:
12057                'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.
12057split(
12058                    '_'
12059                ),
12060            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
12061                '_'
12062            ),
12063            isFormat: /(წინა|შემდეგ)/,
12064        },
12065        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
12066        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
12067        longDateFormat: {
12068            LT: 'HH:mm',
12069            LTS: 'HH:mm:ss',
12070            L: 'DD/MM/YYYY',
12071            LL: 'D MMMM YYYY',
12072            LLL: 'D MMMM YYYY HH:mm',
12073            LLLL: 'dddd, D MMMM YYYY HH:mm',
12074        },
12075        calendar: {
12076            sameDay: '[დღეს] LT[-ზე]',
12077            nextDay: '[ხვალ] LT[-ზე]',
12078            lastDay: '[გუშინ] LT[-ზე]',
12079            nextWeek: '[შემდეგ] dddd LT[-ზე]',
12080            lastWeek: '[წინა] dddd LT-ზე',
12081            sameElse: 'L',
12082        },
12083        relativeTime: {
12084            future: function (s) {
12085                return s.replace(
12086                    /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
12087                    function ($0, $1, $2) {
12088                        return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
12089                    }
12090                );
12091            },
12092            past: function (s) {
12093                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
12094                    return s.replace(/(ი|ე)$/, 'ის წინ');
12095                }
12096                if (/წელი/.test(s)) {
12097                    return s.replace(/წელი$/, 'წლის წინ');
12098                }
12099                return s;
12100            },
12101            s: 'რამდენიმე წამი',
12102            ss: '%d წამი',
12103            m: 'წუთი',
12104            mm: '%d წუთი',
12105            h: 'საათი',
12106            hh: '%d საათი',
12107            d: 'დღე',
12108            dd: '%d დღე',
12109            M: 'თვე',
12110            MM: '%d თვე',
12111            y: 'წელი',
12112            yy: '%d წელი',
12113        },
12114        dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
12115        ordinal: function (number) {
12116            if (number === 0) {
12117                return number;
12118            }
12119            if (number === 1) {
12120                return number + '-ლი';
12121            }
12122            if (
12123                number < 20 ||
12124                (number <= 100 && number % 20 === 0) ||
12125                number % 100 === 0
12126            ) {
12127                return 'მე-' + number;
12128            }
12129            return number + '-ე';
12130        },
12131        week: {
12132            dow: 1,
12133            doy: 7,
12134        },
12135    });
12136
12137    //! moment.js locale configuration
12138
12139    var suffixes$1 = {
12140        0: '-ші',
12141        1: '-ші',
12142        2: '-ші',
12143        3: '-ші',
12144        4: '-ші',
12145        5: '-ші',
12146        6: '-шы',
12147        7: '-ші',
12148        8: '-ші',
12149        9: '-шы',
12150        10: '-шы',
12151        20: '-шы',
12152        30: '-шы',
12153        40: '-шы',
12154        50: '-ші',
12155        60: '-шы',
12156        70: '-ші',
12157        80: '-ші',
12158        90: '-шы',
12159        100: '-ші',
12160    };
12161
12162    hooks.defineLocale('kk', {
12163        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
12164            '_'
12165        ),
12166        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
12167        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
12168            '_'
12169        ),
12170        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
12171        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
12172        longDateFormat: {
12173            LT: 'HH:mm',
12174            LTS: 'HH:mm:ss',
12175            L: 'DD.MM.YYYY',
12176            LL: 'D MMMM YYYY',
12177            LLL: 'D MMMM YYYY HH:mm',
12178            LLLL: 'dddd, D MMMM YYYY HH:mm',
12179        },
12180        calendar: {
12181            sameDay: '[Бүгін сағат] LT',
12182            nextDay: '[Ертең сағат] LT',
12183            nextWeek: 'dddd [сағат] LT',
12184            lastDay: '[Кеше сағат] LT',
12185            lastWeek: '[Өткен аптаның] dddd [сағат] LT',
12186            sameElse: 'L',
12187        },
12188        relativeTime: {
12189            future: '%s ішінде',
12190            past: '%s бұрын',
12191            s: 'бірнеше секунд',
12192            ss: '%d секунд',
12193            m: 'бір минут',
12194            mm: '%d минут',
12195            h: 'бір сағат',
12196            hh: '%d сағат',
12197            d: 'бір күн',
12198            dd: '%d күн',
12199            M: 'бір ай',
12200            MM: '%d ай',
12201            y: 'бір жыл',
12202            yy: '%d жыл',
12203        },
12204        dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
12205        ordinal: function (number) {
12206            var a = number % 10,
12207                b = number >= 100 ? 100 : null;
12208            return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);
12209        },
12210        week: {
12211            dow: 1, // Monday is the first day of the week.
12212            doy: 7, // The week that contains Jan 7th is the first week of the year.
12213        },
12214    });
12215
12216    //! moment.js locale configuration
12217
12218    var symbolMap$9 = {
12219            1: '១',
12220            2: '២',
12221            3: '៣',
12222            4: '៤',
12223            5: '៥',
12224            6: '៦',
12225            7: '៧',
12226            8: '៨',
12227            9: '៩',
12228            0: '០',
12229        },
12230        numberMap$8 = {
12231            '១': '1',
12232            '២': '2',
12233            '៣': '3',
12234            '៤': '4',
12235            '៥': '5',
12236            '៦': '6',
12237            '៧': '7',
12238            '៨': '8',
12239            '៩': '9',
12240            '០': '0',
12241        };
12242
12243    hooks.defineLocale('km', {
12244        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12245            '_'
12246        ),
12247        monthsShort:
12248            'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12249                '_'
12250            ),
12251        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
12252        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12253        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12254        weekdaysParseExact: true,
12255        longDateFormat: {
12256            LT: 'HH:mm',
12257            LTS: 'HH:mm:ss',
12258            L: 'DD/MM/YYYY',
12259            LL: 'D MMMM YYYY',
12260            LLL: 'D MMMM YYYY HH:mm',
12261            LLLL: 'dddd, D MMMM YYYY HH:mm',
12262        },
12263        meridiemParse: /ព្រឹក|ល្ងាច/,
12264        isPM: function (input) {
12265            return input === 'ល្ងាច';
12266        },
12267        meridiem: function (hour, minute, isLower) {
12268            if (hour < 12) {
vendor: 22,558 bytes, lines 12269-12907
12269                return 'ព្រឹក';
12270            } else {
12271                return 'ល្ងាច';
12272            }
12273        },
12274        calendar: {
12275            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
12276            nextDay: '[ស្អែក ម៉ោង] LT',
12277            nextWeek: 'dddd [ម៉ោង] LT',
12278            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
12279            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
12280            sameElse: 'L',
12281        },
12282        relativeTime: {
12283            future: '%sទៀត',
12284            past: '%sមុន',
12285            s: 'ប៉ុន្មានវិនាទី',
12286            ss: '%d វិនាទី',
12287            m: 'មួយនាទី',
12288            mm: '%d នាទី',
12289            h: 'មួយម៉ោង',
12290            hh: '%d ម៉ោង',
12291            d: 'មួយថ្ងៃ',
12292            dd: '%d ថ្ងៃ',
12293            M: 'មួយខែ',
12294            MM: '%d ខែ',
12295            y: 'មួយឆ្នាំ',
12296            yy: '%d ឆ្នាំ',
12297        },
12298        dayOfMonthOrdinalParse: /ទី\d{1,2}/,
12299        ordinal: 'ទី%d',
12300        preparse: function (string) {
12301            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
12302                return numberMap$8[match];
12303            });
12304        },
12305        postformat: function (string) {
12306            return string.replace(/\d/g, function (match) {
12307                return symbolMap$9[match];
12308            });
12309        },
12310        week: {
12311            dow: 1, // Monday is the first day of the week.
12312            doy: 4, // The week that contains Jan 4th is the first week of the year.
12313        },
12314    });
12315
12316    //! moment.js locale configuration
12317
12318    var symbolMap$a = {
12319            1: 'à³§',
12320            2: '೨',
12321            3: '೩',
12322            4: '೪',
12323            5: '೫',
12324            6: '೬',
12325            7: 'à³­',
12326            8: 'à³®',
12327            9: '೯',
12328            0: '೦',
12329        },
12330        numberMap$9 = {
12331            'à³§': '1',
12332            '೨': '2',
12333            '೩': '3',
12334            '೪': '4',
12335            '೫': '5',
12336            '೬': '6',
12337            'à³­': '7',
12338            'à³®': '8',
12339            '೯': '9',
12340            '೦': '0',
12341        };
12342
12343    hooks.defineLocale('kn', {
12344        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
12345            '_'
12346        ),
12347        monthsShort:
12348            'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
12349                '_'
12350            ),
12351        monthsParseExact: true,
12352        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
12353            '_'
12354        ),
12355        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
12356        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
12357        longDateFormat: {
12358            LT: 'A h:mm',
12359            LTS: 'A h:mm:ss',
12360            L: 'DD/MM/YYYY',
12361            LL: 'D MMMM YYYY',
12362            LLL: 'D MMMM YYYY, A h:mm',
12363            LLLL: 'dddd, D MMMM YYYY, A h:mm',
12364        },
12365        calendar: {
12366            sameDay: '[ಇಂದು] LT',
12367            nextDay: '[ನಾಳೆ] LT',
12368            nextWeek: 'dddd, LT',
12369            lastDay: '[ನಿನ್ನೆ] LT',
12370            lastWeek: '[ಕೊನೆಯ] dddd, LT',
12371            sameElse: 'L',
12372        },
12373        relativeTime: {
12374            future: '%s ನಂತರ',
12375            past: '%s ಹಿಂದೆ',
12376            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
12377            ss: '%d ಸೆಕೆಂಡುಗಳು',
12378            m: 'ಒಂದು ನಿಮಿಷ',
12379            mm: '%d ನಿಮಿಷ',
12380            h: 'ಒಂದು ಗಂಟೆ',
12381            hh: '%d ಗಂಟೆ',
12382            d: 'ಒಂದು ದಿನ',
12383            dd: '%d ದಿನ',
12384            M: 'ಒಂದು ತಿಂಗಳು',
12385            MM: '%d ತಿಂಗಳು',
12386            y: 'ಒಂದು ವರ್ಷ',
12387            yy: '%d ವರ್ಷ',
12388        },
12389        preparse: function (string) {
12390            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
12391                return numberMap$9[match];
12392            });
12393        },
12394        postformat: function (string) {
12395            return string.replace(/\d/g, function (match) {
12396                return symbolMap$a[match];
12397            });
12398        },
12399        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
12400        meridiemHour: function (hour, meridiem) {
12401            if (hour === 12) {
12402                hour = 0;
12403            }
12404            if (meridiem === 'ರಾತ್ರಿ') {
12405                return hour < 4 ? hour : hour + 12;
12406            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
12407                return hour;
12408            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
12409                return hour >= 10 ? hour : hour + 12;
12410            } else if (meridiem === 'ಸಂಜೆ') {
12411                return hour + 12;
12412            }
12413        },
12414        meridiem: function (hour, minute, isLower) {
12415            if (hour < 4) {
12416                return 'ರಾತ್ರಿ';
12417            } else if (hour < 10) {
12418                return 'ಬೆಳಿಗ್ಗೆ';
12419            } else if (hour < 17) {
12420                return 'ಮಧ್ಯಾಹ್ನ';
12421            } else if (hour < 20) {
12422                return 'ಸಂಜೆ';
12423            } else {
12424                return 'ರಾತ್ರಿ';
12425            }
12426        },
12427        dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
12428        ordinal: function (number) {
12429            return number + 'ನೇ';
12430        },
12431        week: {
12432            dow: 0, // Sunday is the first day of the week.
12433            doy: 6, // The week that contains Jan 6th is the first week of the year.
12434        },
12435    });
12436
12437    //! moment.js locale configuration
12438
12439    hooks.defineLocale('ko', {
12440        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
12441        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
12442            '_'
12443        ),
12444        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
12445        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
12446        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
12447        longDateFormat: {
12448            LT: 'A h:mm',
12449            LTS: 'A h:mm:ss',
12450            L: 'YYYY.MM.DD.',
12451            LL: 'YYYY년 MMMM D일',
12452            LLL: 'YYYY년 MMMM D일 A h:mm',
12453            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
12454            l: 'YYYY.MM.DD.',
12455            ll: 'YYYY년 MMMM D일',
12456            lll: 'YYYY년 MMMM D일 A h:mm',
12457            llll: 'YYYY년 MMMM D일 dddd A h:mm',
12458        },
12459        calendar: {
12460            sameDay: '오늘 LT',
12461            nextDay: '내일 LT',
12462            nextWeek: 'dddd LT',
12463            lastDay: '어제 LT',
12464            lastWeek: '지난주 dddd LT',
12465            sameElse: 'L',
12466        },
12467        relativeTime: {
12468            future: '%s 후',
12469            past: '%s 전',
12470            s: '몇 초',
12471            ss: '%d초',
12472            m: '1분',
12473            mm: '%d분',
12474            h: '한 시간',
12475            hh: '%d시간',
12476            d: '하루',
12477            dd: '%d일',
12478            M: '한 달',
12479            MM: '%d달',
12480            y: '일 년',
12481            yy: '%d년',
12482        },
12483        dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
12484        ordinal: function (number, period) {
12485            switch (period) {
12486                case 'd':
12487                case 'D':
12488                case 'DDD':
12489                    return number + '일';
12490                case 'M':
12491                    return number + '월';
12492                case 'w':
12493                case 'W':
12494                    return number + '주';
12495                default:
12496                    return number;
12497            }
12498        },
12499        meridiemParse: /오전|오후/,
12500        isPM: function (token) {
12501            return token === '오후';
12502        },
12503        meridiem: function (hour, minute, isUpper) {
12504            return hour < 12 ? '오전' : '오후';
12505        },
12506    });
12507
12508    //! moment.js locale configuration
12509
12510    var symbolMap$b = {
12511            1: 'Ù¡',
12512            2: 'Ù¢',
12513            3: 'Ù£',
12514            4: 'Ù¤',
12515            5: 'Ù¥',
12516            6: 'Ù¦',
12517            7: 'Ù§',
12518            8: 'Ù¨',
12519            9: 'Ù©',
12520            0: 'Ù ',
12521        },
12522        numberMap$a = {
12523            'Ù¡': '1',
12524            'Ù¢': '2',
12525            'Ù£': '3',
12526            'Ù¤': '4',
12527            'Ù¥': '5',
12528            'Ù¦': '6',
12529            'Ù§': '7',
12530            'Ù¨': '8',
12531            'Ù©': '9',
12532            'Ù ': '0',
12533        },
12534        months$8 = [
12535            'کانونی دووەم',
12536            'شوبات',
12537            'ئازار',
12538            'نیسان',
12539            'ئایار',
12540            'حوزەیران',
12541            'تەمموز',
12542            'ئاب',
12543            'ئەیلوول',
12544            'تشرینی یەكەم',
12545            'تشرینی دووەم',
12546            'كانونی یەکەم',
12547        ];
12548
12549    hooks.defineLocale('ku', {
12550        months: months$8,
12551        monthsShort: months$8,
12552        weekdays:
12553            'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
12554                '_'
12555            ),
12556        weekdaysShort:
12557            'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),
12558        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
12559        weekdaysParseExact: true,
12560        longDateFormat: {
12561            LT: 'HH:mm',
12562            LTS: 'HH:mm:ss',
12563            L: 'DD/MM/YYYY',
12564            LL: 'D MMMM YYYY',
12565            LLL: 'D MMMM YYYY HH:mm',
12566            LLLL: 'dddd, D MMMM YYYY HH:mm',
12567        },
12568        meridiemParse: /ئێواره‌|به‌یانی/,
12569        isPM: function (input) {
12570            return /ئێواره‌/.test(input);
12571        },
12572        meridiem: function (hour, minute, isLower) {
12573            if (hour < 12) {
12574                return 'به‌یانی';
12575            } else {
12576                return 'ئێواره‌';
12577            }
12578        },
12579        calendar: {
12580            sameDay: '[ئه‌مرۆ كاتژمێر] LT',
12581            nextDay: '[به‌یانی كاتژمێر] LT',
12582            nextWeek: 'dddd [كاتژمێر] LT',
12583            lastDay: '[دوێنێ كاتژمێر] LT',
12584            lastWeek: 'dddd [كاتژمێر] LT',
12585            sameElse: 'L',
12586        },
12587        relativeTime: {
12588            future: 'له‌ %s',
12589            past: '%s',
12590            s: 'چه‌ند چركه‌یه‌ك',
12591            ss: 'چركه‌ %d',
12592            m: 'یه‌ك خوله‌ك',
12593            mm: '%d خوله‌ك',
12594            h: 'یه‌ك كاتژمێر',
12595            hh: '%d كاتژمێر',
12596            d: 'یه‌ك ڕۆژ',
12597            dd: '%d ڕۆژ',
12598            M: 'یه‌ك مانگ',
12599            MM: '%d مانگ',
12600            y: 'یه‌ك ساڵ',
12601            yy: '%d ساڵ',
12602        },
12603        preparse: function (string) {
12604            return string
12605                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
12606                    return numberMap$a[match];
12607                })
12608                .replace(/،/g, ',');
12609        },
12610        postformat: function (string) {
12611            return string
12612                .replace(/\d/g, function (match) {
12613                    return symbolMap$b[match];
12614                })
12615                .replace(/,/g, '،');
12616        },
12617        week: {
12618            dow: 6, // Saturday is the first day of the week.
12619            doy: 12, // The week that contains Jan 12th is the first week of the year.
12620        },
12621    });
12622
12623    //! moment.js locale configuration
12624
12625    var suffixes$2 = {
12626        0: '-чү',
12627        1: '-чи',
12628        2: '-чи',
12629        3: '-чү',
12630        4: '-чү',
12631        5: '-чи',
12632        6: '-чы',
12633        7: '-чи',
12634        8: '-чи',
12635        9: '-чу',
12636        10: '-чу',
12637        20: '-чы',
12638        30: '-чу',
12639        40: '-чы',
12640        50: '-чү',
12641        60: '-чы',
12642        70: '-чи',
12643        80: '-чи',
12644        90: '-чу',
12645        100: '-чү',
12646    };
12647
12648    hooks.defineLocale('ky', {
12649        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
12650            '_'
12651        ),
12652        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
12653            '_'
12654        ),
12655        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
12656            '_'
12657        ),
12658        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
12659        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
12660        longDateFormat: {
12661            LT: 'HH:mm',
12662            LTS: 'HH:mm:ss',
12663            L: 'DD.MM.YYYY',
12664            LL: 'D MMMM YYYY',
12665            LLL: 'D MMMM YYYY HH:mm',
12666            LLLL: 'dddd, D MMMM YYYY HH:mm',
12667        },
12668        calendar: {
12669            sameDay: '[Бүгүн саат] LT',
12670            nextDay: '[Эртең саат] LT',
12671            nextWeek: 'dddd [саат] LT',
12672            lastDay: '[Кечээ саат] LT',
12673            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
12674            sameElse: 'L',
12675        },
12676        relativeTime: {
12677            future: '%s ичинде',
12678            past: '%s мурун',
12679            s: 'бирнече секунд',
12680            ss: '%d секунд',
12681            m: 'бир мүнөт',
12682            mm: '%d мүнөт',
12683            h: 'бир саат',
12684            hh: '%d саат',
12685            d: 'бир күн',
12686            dd: '%d күн',
12687            M: 'бир ай',
12688            MM: '%d ай',
12689            y: 'бир жыл',
12690            yy: '%d жыл',
12691        },
12692        dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
12693        ordinal: function (number) {
12694            var a = number % 10,
12695                b = number >= 100 ? 100 : null;
12696            return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);
12697        },
12698        week: {
12699            dow: 1, // Monday is the first day of the week.
12700            doy: 7, // The week that contains Jan 7th is the first week of the year.
12701        },
12702    });
12703
12704    //! moment.js locale configuration
12705
12706    function processRelativeTime$6(number, withoutSuffix, key, isFuture) {
12707        var format = {
12708            m: ['eng Minutt', 'enger Minutt'],
12709            h: ['eng Stonn', 'enger Stonn'],
12710            d: ['een Dag', 'engem Dag'],
12711            M: ['ee Mount', 'engem Mount'],
12712            y: ['ee Joer', 'engem Joer'],
12713        };
12714        return withoutSuffix ? format[key][0] : format[key][1];
12715    }
12716    function processFutureTime(string) {
12717        var number = string.substr(0, string.indexOf(' '));
12718        if (eifelerRegelAppliesToNumber(number)) {
12719            return 'a ' + string;
12720        }
12721        return 'an ' + string;
12722    }
12723    function processPastTime(string) {
12724        var number = string.substr(0, string.indexOf(' '));
12725        if (eifelerRegelAppliesToNumber(number)) {
12726            return 'viru ' + string;
12727        }
12728        return 'virun ' + string;
12729    }
12730    /**
12731     * Returns true if the word before the given number loses the '-n' ending.
12732     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
12733     *
12734     * @param number {integer}
12735     * @returns {boolean}
12736     */
12737    function eifelerRegelAppliesToNumber(number) {
12738        number = parseInt(number, 10);
12739        if (isNaN(number)) {
12740            return false;
12741        }
12742        if (number < 0) {
12743            // Negative Number --> always true
12744            return true;
12745        } else if (number < 10) {
12746            // Only 1 digit
12747            if (4 <= number && number <= 7) {
12748                return true;
12749            }
12750            return false;
12751        } else if (number < 100) {
12752            // 2 digits
12753            var lastDigit = number % 10,
12754                firstDigit = number / 10;
12755            if (lastDigit === 0) {
12756                return eifelerRegelAppliesToNumber(firstDigit);
12757            }
12758            return eifelerRegelAppliesToNumber(lastDigit);
12759        } else if (number < 10000) {
12760            // 3 or 4 digits --> recursively check first digit
12761            while (number >= 10) {
12762                number = number / 10;
12763            }
12764            return eifelerRegelAppliesToNumber(number);
12765        } else {
12766            // Anything larger than 4 digits: recursively check first n-3 digits
12767            number = number / 1000;
12768            return eifelerRegelAppliesToNumber(number);
12769        }
12770    }
12771
12772    hooks.defineLocale('lb', {
12773        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
12774            '_'
12775        ),
12776        monthsShort:
12777            'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
12778                '_'
12779            ),
12780        monthsParseExact: true,
12781        weekdays:
12782            'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
12783                '_'
12784            ),
12785        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
12786        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
12787        weekdaysParseExact: true,
12788        longDateFormat: {
12789            LT: 'H:mm [Auer]',
12790            LTS: 'H:mm:ss [Auer]',
12791            L: 'DD.MM.YYYY',
12792            LL: 'D. MMMM YYYY',
12793            LLL: 'D. MMMM YYYY H:mm [Auer]',
12794            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
12795        },
12796        calendar: {
12797            sameDay: '[Haut um] LT',
12798            sameElse: 'L',
12799            nextDay: '[Muer um] LT',
12800            nextWeek: 'dddd [um] LT',
12801            lastDay: '[Gëschter um] LT',
12802            lastWeek: function () {
12803                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
12804                switch (this.day()) {
12805                    case 2:
12806                    case 4:
12807                        return '[Leschten] dddd [um] LT';
12808                    default:
12809                        return '[Leschte] dddd [um] LT';
12810                }
12811            },
12812        },
12813        relativeTime: {
12814            future: processFutureTime,
12815            past: processPastTime,
12816            s: 'e puer Sekonnen',
12817            ss: '%d Sekonnen',
12818            m: processRelativeTime$6,
12819            mm: '%d Minutten',
12820            h: processRelativeTime$6,
12821            hh: '%d Stonnen',
12822            d: processRelativeTime$6,
12823            dd: '%d Deeg',
12824            M: processRelativeTime$6,
12825            MM: '%d Méint',
12826            y: processRelativeTime$6,
12827            yy: '%d Joer',
12828        },
12829        dayOfMonthOrdinalParse: /\d{1,2}\./,
12830        ordinal: '%d.',
12831        week: {
12832            dow: 1, // Monday is the first day of the week.
12833            doy: 4, // The week that contains Jan 4th is the first week of the year.
12834        },
12835    });
12836
12837    //! moment.js locale configuration
12838
12839    hooks.defineLocale('lo', {
12840        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12841            '_'
12842        ),
12843        monthsShort:
12844            'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12845                '_'
12846            ),
12847        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12848        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12849        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
12850        weekdaysParseExact: true,
12851        longDateFormat: {
12852            LT: 'HH:mm',
12853            LTS: 'HH:mm:ss',
12854            L: 'DD/MM/YYYY',
12855            LL: 'D MMMM YYYY',
12856            LLL: 'D MMMM YYYY HH:mm',
12857            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
12858        },
12859        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
12860        isPM: function (input) {
12861            return input === 'ຕອນແລງ';
12862        },
12863        meridiem: function (hour, minute, isLower) {
12864            if (hour < 12) {
12865                return 'ຕອນເຊົ້າ';
12866            } else {
12867                return 'ຕອນແລງ';
12868            }
12869        },
12870        calendar: {
12871            sameDay: '[ມື້ນີ້ເວລາ] LT',
12872            nextDay: '[ມື້ອື່ນເວລາ] LT',
12873            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
12874            lastDay: '[ມື້ວານນີ້ເວລາ] LT',
12875            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
12876            sameElse: 'L',
12877        },
12878        relativeTime: {
12879            future: 'ອີກ %s',
12880            past: '%sຜ່ານມາ',
12881            s: 'ບໍ່ເທົ່າໃດວິນາທີ',
12882            ss: '%d ວິນາທີ',
12883            m: '1 ນາທີ',
12884            mm: '%d ນາທີ',
12885            h: '1 ຊົ່ວໂມງ',
12886            hh: '%d ຊົ່ວໂມງ',
12887            d: '1 ມື້',
12888            dd: '%d ມື້',
12889            M: '1 ເດືອນ',
12890            MM: '%d ເດືອນ',
12891            y: '1 ປີ',
12892            yy: '%d ປີ',
12893        },
12894        dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
12895        ordinal: function (number) {
12896            return 'ທີ່' + number;
12897        },
12898    });
12899
12900    //! moment.js locale configuration
12901
12902    var units = {
12903        ss: 'sekundė_sekundžių_sekundes',
12904        m: 'minutė_minutės_minutę',
12905        mm: 'minutės_minučių_minutes',
12906        h: 'valanda_valandos_valandą',
12907        hh: 'valandos_valandų_valandas',
vendor: 4,454 bytes, lines 12908-13029
12908        d: 'diena_dienos_dieną',
12909        dd: 'dienos_dienų_dienas',
12910        M: 'mėnuo_mėnesio_mėnesį',
12911        MM: 'mėnesiai_mėnesių_mėnesius',
12912        y: 'metai_metų_metus',
12913        yy: 'metai_metų_metus',
12914    };
12915    function translateSeconds(number, withoutSuffix, key, isFuture) {
12916        if (withoutSuffix) {
12917            return 'kelios sekundės';
12918        } else {
12919            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
12920        }
12921    }
12922    function translateSingular(number, withoutSuffix, key, isFuture) {
12923        return withoutSuffix
12924            ? forms(key)[0]
12925            : isFuture
12926            ? forms(key)[1]
12927            : forms(key)[2];
12928    }
12929    function special(number) {
12930        return number % 10 === 0 || (number > 10 && number < 20);
12931    }
12932    function forms(key) {
12933        return units[key].split('_');
12934    }
12935    function translate$6(number, withoutSuffix, key, isFuture) {
12936        var result = number + ' ';
12937        if (number === 1) {
12938            return (
12939                result + translateSingular(number, withoutSuffix, key[0], isFuture)
12940            );
12941        } else if (withoutSuffix) {
12942            return result + (special(number) ? forms(key)[1] : forms(key)[0]);
12943        } else {
12944            if (isFuture) {
12945                return result + forms(key)[1];
12946            } else {
12947                return result + (special(number) ? forms(key)[1] : forms(key)[2]);
12948            }
12949        }
12950    }
12951    hooks.defineLocale('lt', {
12952        months: {
12953            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
12954                '_'
12955            ),
12956            standalone:
12957                'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
12958                    '_'
12959                ),
12960            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
12961        },
12962        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
12963        weekdays: {
12964            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
12965                '_'
12966            ),
12967            standalone:
12968                'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
12969                    '_'
12970                ),
12971            isFormat: /dddd HH:mm/,
12972        },
12973        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
12974        weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),
12975        weekdaysParseExact: true,
12976        longDateFormat: {
12977            LT: 'HH:mm',
12978            LTS: 'HH:mm:ss',
12979            L: 'YYYY-MM-DD',
12980            LL: 'YYYY [m.] MMMM D [d.]',
12981            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12982            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
12983            l: 'YYYY-MM-DD',
12984            ll: 'YYYY [m.] MMMM D [d.]',
12985            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12986            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
12987        },
12988        calendar: {
12989            sameDay: '[Å iandien] LT',
12990            nextDay: '[Rytoj] LT',
12991            nextWeek: 'dddd LT',
12992            lastDay: '[Vakar] LT',
12993            lastWeek: '[Praėjusį] dddd LT',
12994            sameElse: 'L',
12995        },
12996        relativeTime: {
12997            future: 'po %s',
12998            past: 'prieš %s',
12999            s: translateSeconds,
13000            ss: translate$6,
13001            m: translateSingular,
13002            mm: translate$6,
13003            h: translateSingular,
13004            hh: translate$6,
13005            d: translateSingular,
13006            dd: translate$6,
13007            M: translateSingular,
13008            MM: translate$6,
13009            y: translateSingular,
13010            yy: translate$6,
13011        },
13012        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
13013        ordinal: function (number) {
13014            return number + '-oji';
13015        },
13016        week: {
13017            dow: 1, // Monday is the first day of the week.
13018            doy: 4, // The week that contains Jan 4th is the first week of the year.
13019        },
13020    });
13021
13022    //! moment.js locale configuration
13023
13024    var units$1 = {
13025        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
13026        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
13027        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
13028        h: 'stundas_stundām_stunda_stundas'.split('_'),
13029        hh: 'stundas_stundām_stunda_stundas'.split('_'),
13030        d: 'dienas_dienām_diena_dienas'.split('_'),
13031        dd: 'dienas_dienām_diena_dienas'.split('_'),
13032        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
13033        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
13034        y: 'gada_gadiem_gads_gadi'.split('_'),
13035        yy: 'gada_gadiem_gads_gadi'.split('_'),
13036    };
13037    /**
13038     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
13039     */
13040    function format$1(forms, number, withoutSuffix) {
13041        if (withoutSuffix) {
13042            // E.g. "21 minūte", "3 minūtes".
13043            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
13044        } else {
13045            // E.g. "21 minūtes" as in "pēc 21 minūtes".
13046            // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
13047            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
13048        }
13049    }
13050    function relativeTimeWithPlural$1(number, withoutSuffix, key) {
13051        return number + ' ' + format$1(units$1[key], number, withoutSuffix);
13052    }
13053    function relativeTimeWithSingular(number, withoutSuffix, key) {
13054        return format$1(units$1[key], number, withoutSuffix);
13055    }
13056    function relativeSeconds(number, withoutSuffix) {
13057        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
13058    }
13059
13060    hooks.defineLocale('lv', {
13061        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
13062            '_'
13063        ),
13064        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
13065        weekdays:
13066            'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
13067                '_'
13068            ),
13069        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
13070        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
13071        weekdaysParseExact: true,
13072        longDateFormat: {
13073            LT: 'HH:mm',
13074            LTS: 'HH:mm:ss',
13075            L: 'DD.MM.YYYY.',
13076            LL: 'YYYY. [gada] D. MMMM',
13077            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
13078            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
13079        },
13080        calendar: {
13081            sameDay: '[Å odien pulksten] LT',
13082            nextDay: '[Rīt pulksten] LT',
13083            nextWeek: 'dddd [pulksten] LT',
13084            lastDay: '[Vakar pulksten] LT',
13085            lastWeek: '[Pagājušā] dddd [pulksten] LT',
13086            sameElse: 'L',
13087        },
13088        relativeTime: {
13089            future: 'pēc %s',
13090            past: 'pirms %s',
13091            s: relativeSeconds,
13092            ss: relativeTimeWithPlural$1,
13093            m: relativeTimeWithSingular,
13094            mm: relativeTimeWithPlural$1,
13095            h: relativeTimeWithSingular,
13096            hh: relativeTimeWithPlural$1,
13097            d: relativeTimeWithSingular,
13098            dd: relativeTimeWithPlural$1,
13099            M: relativeTimeWithSingular,
13100            MM: relativeTimeWithPlural$1,
13101            y: relativeTimeWithSingular,
13102            yy: relativeTimeWithPlural$1,
13103        },
13104        dayOfMonthOrdinalParse: /\d{1,2}\./,
13105        ordinal: '%d.',
13106        week: {
13107            dow: 1, // Monday is the first day of the week.
13108            doy: 4, // The week that contains Jan 4th is the first week of the year.
13109        },
13110    });
13111
13112    //! moment.js locale configuration
13113
13114    var translator = {
13115        words: {
13116            //Different grammatical cases
13117            ss: ['sekund', 'sekunda', 'sekundi'],
13118            m: ['jedan minut', 'jednog minuta'],
13119            mm: ['minut', 'minuta', 'minuta'],
13120            h: ['jedan sat', 'jednog sata'],
13121            hh: ['sat', 'sata', 'sati'],
13122            dd: ['dan', 'dana', 'dana'],
13123            MM: ['mjesec', 'mjeseca', 'mjeseci'],
13124            yy: ['godina', 'godine', 'godina'],
13125        },
13126        correctGrammaticalCase: function (number, wordKey) {
13127            return number === 1
13128                ? wordKey[0]
13129                : number >= 2 && number <= 4
13130                ? wordKey[1]
13131                : wordKey[2];
13132        },
13133        translate: function (number, withoutSuffix, key) {
13134            var wordKey = translator.words[key];
13135            if (key.length === 1) {
13136                return withoutSuffix ? wordKey[0] : wordKey[1];
13137            } else {
13138                return (
13139                    number +
13140                    ' ' +
13141                    translator.correctGrammaticalCase(number, wordKey)
13142                );
13143            }
13144        },
13145    };
13146
13147    hooks.defineLocale('me', {
13148        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
13149            '_'
13150        ),
13151        monthsShort:
13152            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
13153        monthsParseExact: true,
13154        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
13155            '_'
13156        ),
13157        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
13158        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
13159        weekdaysParseExact: true,
13160        longDateFormat: {
13161            LT: 'H:mm',
13162            LTS: 'H:mm:ss',
13163            L: 'DD.MM.YYYY',
13164            LL: 'D. MMMM YYYY',
13165            LLL: 'D. MMMM YYYY H:mm',
13166            LLLL: 'dddd, D. MMMM YYYY H:mm',
13167        },
13168        calendar: {
13169            sameDay: '[danas u] LT',
13170            nextDay: '[sjutra u] LT',
13171
13172            nextWeek: function () {
13173                switch (this.day()) {
13174                    case 0:
13175                        return '[u] [nedjelju] [u] LT';
13176                    case 3:
13177                        return '[u] [srijedu] [u] LT';
13178                    case 6:
13179                        return '[u] [subotu] [u] LT';
13180                    case 1:
13181                    case 2:
13182                    case 4:
13183                    case 5:
13184                        return '[u] dddd [u] LT';
13185                }
13186            },
13187            lastDay: '[juče u] LT',
13188            lastWeek: function () {
13189                var lastWeekDays = [
13190                    '[prošle] [nedjelje] [u] LT',
13191                    '[prošlog] [ponedjeljka] [u] LT',
13192                    '[prošlog] [utorka] [u] LT',
13193                    '[prošle] [srijede] [u] LT',
13194                    '[prošlog] [četvrtka] [u] LT',
13195                    '[prošlog] [petka] [u] LT',
13196                    '[prošle] [subote] [u] LT',
13197                ];
13198                return lastWeekDays[this.day()];
13199            },
13200            sameElse: 'L',
13201        },
13202        relativeTime: {
13203            future: 'za %s',
13204            past: 'prije %s',
13205            s: 'nekoliko sekundi',
13206            ss: translator.translate,
13207            m: translator.translate,
13208            mm: translator.translate,
13209            h: translator.translate,
13210            hh: translator.translate,
13211            d: 'dan',
13212            dd: translator.translate,
13213            M: 'mjesec',
13214            MM: translator.translate,
13215            y: 'godinu',
13216            yy: translator.translate,
13217        },
13218        dayOfMonthOrdinalParse: /\d{1,2}\./,
13219        ordinal: '%d.',
13220        week: {
13221            dow: 1, // Monday is the first day of the week.
13222            doy: 7, // The week that contains Jan 7th is the first week of the year.
13223        },
13224    });
13225
13226    //! moment.js locale configuration
13227
13228    hooks.defineLocale('mi', {
13229        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(
13230            '_'
13231        ),
13232        monthsShort:
13233            'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
13234                '_'
13235            ),
13236        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13237        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13238        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13239        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
13240        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
13241        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13242        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13243        longDateFormat: {
13244            LT: 'HH:mm',
13245            LTS: 'HH:mm:ss',
13246            L: 'DD/MM/YYYY',
13247            LL: 'D MMMM YYYY',
13248            LLL: 'D MMMM YYYY [i] HH:mm',
13249            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
13250        },
13251        calendar: {
13252            sameDay: '[i teie mahana, i] LT',
13253            nextDay: '[apopo i] LT',
13254            nextWeek: 'dddd [i] LT',
13255            lastDay: '[inanahi i] LT',
13256            lastWeek: 'dddd [whakamutunga i] LT',
13257            sameElse: 'L',
13258        },
13259        relativeTime: {
13260            future: 'i roto i %s',
13261            past: '%s i mua',
13262            s: 'te hēkona ruarua',
13263            ss: '%d hēkona',
13264            m: 'he meneti',
13265            mm: '%d meneti',
13266            h: 'te haora',
13267            hh: '%d haora',
13268            d: 'he ra',
13269            dd: '%d ra',
13270            M: 'he marama',
13271            MM: '%d marama',
13272            y: 'he tau',
13273            yy: '%d tau',
13274        },
13275        dayOfMonthOrdinalParse: /\d{1,2}º/,
13276        ordinal: '%dº',
13277        week: {
13278            dow: 1, // Monday is the first day of the week.
13279            doy: 4, // The week that contains Jan 4th is the first week of the year.
13280        },
13281    });
13282
13283    //! moment.js locale configuration
13284
13285    hooks.defineLocale('mk', {
13286        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
13287            '_'
13288        ),
13289        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
13290        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
13291            '_'
13292        ),
13293        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
13294        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
13295        longDateFormat: {
13296            LT: 'H:mm',
13297            LTS: 'H:mm:ss',
13298            L: 'D.MM.YYYY',
13299            LL: 'D MMMM YYYY',
13300            LLL: 'D MMMM YYYY H:mm',
13301            LLLL: 'dddd, D MMMM YYYY H:mm',
13302        },
13303        calendar: {
13304            sameDay: '[Денес во] LT',
13305            nextDay: '[Утре во] LT',
13306            nextWeek: '[Во] dddd [во] LT',
13307            lastDay: '[Вчера во] LT',
13308            lastWeek: function () {
13309                switch (this.day()) {
13310                    case 0:
13311                    case 3:
13312                    case 6:
13313                        return '[Изминатата] dddd [во] LT';
13314                    case 1:
13315                    case 2:
13316                    case 4:
13317                    case 5:
13318                        return '[Изминатиот] dddd [во] LT';
13319                }
13320            },
13321            sameElse: 'L',
13322        },
13323        relativeTime: {
13324            future: 'за %s',
13325            past: 'пред %s',
13326            s: 'неколку секунди',
13327            ss: '%d секунди',
13328            m: 'една минута',
13329            mm: '%d минути',
13330            h: 'еден час',
13331            hh: '%d часа',
13332            d: 'еден ден',
13333            dd: '%d дена',
13334            M: 'еден месец',
13335            MM: '%d месеци',
13336            y: 'една година',
13337            yy: '%d години',
13338        },
13339        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
13340        ordinal: function (number) {
13341            var lastDigit = number % 10,
13342                last2Digits = number % 100;
13343            if (number === 0) {
13344                return number + '-ев';
13345            } else if (last2Digits === 0) {
13346                return number + '-ен';
13347            } else if (last2Digits > 10 && last2Digits < 20) {
13348                return number + '-ти';
13349            } else if (lastDigit === 1) {
13350                return number + '-ви';
13351            } else if (lastDigit === 2) {
13352                return number + '-ри';
13353            } else if (lastDigit === 7 || lastDigit === 8) {
13354                return number + '-ми';
13355            } else {
13356                return number + '-ти';
13357            }
13358        },
13359        week: {
13360            dow: 1, // Monday is the first day of the week.
13361            doy: 7, // The week that contains Jan 7th is the first week of the year.
13362        },
13363    });
13364
13365    //! moment.js locale configuration
13366
13367    hooks.defineLocale('ml', {
13368        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ചà
vendor: 5,964 bytes, lines 13368-13505
13368µ_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
13369            '_'
13370        ),
13371        monthsShort:
13372            'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
13373                '_'
13374            ),
13375        monthsParseExact: true,
13376        weekdays:
13377            'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
13378                '_'
13379            ),
13380        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
13381        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
13382        longDateFormat: {
13383            LT: 'A h:mm -നു',
13384            LTS: 'A h:mm:ss -നു',
13385            L: 'DD/MM/YYYY',
13386            LL: 'D MMMM YYYY',
13387            LLL: 'D MMMM YYYY, A h:mm -നു',
13388            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
13389        },
13390        calendar: {
13391            sameDay: '[ഇന്ന്] LT',
13392            nextDay: '[നാളെ] LT',
13393            nextWeek: 'dddd, LT',
13394            lastDay: '[ഇന്നലെ] LT',
13395            lastWeek: '[കഴിഞ്ഞ] dddd, LT',
13396            sameElse: 'L',
13397        },
13398        relativeTime: {
13399            future: '%s കഴിഞ്ഞ്',
13400            past: '%s മുൻപ്',
13401            s: 'അൽപ നിമിഷങ്ങൾ',
13402            ss: '%d സെക്കൻഡ്',
13403            m: 'ഒരു മിനിറ്റ്',
13404            mm: '%d മിനിറ്റ്',
13405            h: 'ഒരു മണിക്കൂർ',
13406            hh: '%d മണിക്കൂർ',
13407            d: 'ഒരു ദിവസം',
13408            dd: '%d ദിവസം',
13409            M: 'ഒരു മാസം',
13410            MM: '%d മാസം',
13411            y: 'ഒരു വർഷം',
13412            yy: '%d വർഷം',
13413        },
13414        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
13415        meridiemHour: function (hour, meridiem) {
13416            if (hour === 12) {
13417                hour = 0;
13418            }
13419            if (
13420                (meridiem === 'രാത്രി' && hour >= 4) ||
13421                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
13422                meridiem === 'വൈകുന്നേരം'
13423            ) {
13424                return hour + 12;
13425            } else {
13426                return hour;
13427            }
13428        },
13429        meridiem: function (hour, minute, isLower) {
13430            if (hour < 4) {
13431                return 'രാത്രി';
13432            } else if (hour < 12) {
13433                return 'രാവിലെ';
13434            } else if (hour < 17) {
13435                return 'ഉച്ച കഴിഞ്ഞ്';
13436            } else if (hour < 20) {
13437                return 'വൈകുന്നേരം';
13438            } else {
13439                return 'രാത്രി';
13440            }
13441        },
13442    });
13443
13444    //! moment.js locale configuration
13445
13446    function translate$7(number, withoutSuffix, key, isFuture) {
13447        switch (key) {
13448            case 's':
13449                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
13450            case 'ss':
13451                return number + (withoutSuffix ? ' секунд' : ' секундын');
13452            case 'm':
13453            case 'mm':
13454                return number + (withoutSuffix ? ' минут' : ' минутын');
13455            case 'h':
13456            case 'hh':
13457                return number + (withoutSuffix ? ' цаг' : ' цагийн');
13458            case 'd':
13459            case 'dd':
13460                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
13461            case 'M':
13462            case 'MM':
13463                return number + (withoutSuffix ? ' сар' : ' сарын');
13464            case 'y':
13465            case 'yy':
13466                return number + (withoutSuffix ? ' жил' : ' жилийн');
13467            default:
13468                return number;
13469        }
13470    }
13471
13472    hooks.defineLocale('mn', {
13473        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
13474            '_'
13475        ),
13476        monthsShort:
13477            '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
13478                '_'
13479            ),
13480        monthsParseExact: true,
13481        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
13482        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
13483        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
13484        weekdaysParseExact: true,
13485        longDateFormat: {
13486            LT: 'HH:mm',
13487            LTS: 'HH:mm:ss',
13488            L: 'YYYY-MM-DD',
13489            LL: 'YYYY оны MMMMын D',
13490            LLL: 'YYYY оны MMMMын D HH:mm',
13491            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
13492        },
13493        meridiemParse: /ҮӨ|ҮХ/i,
13494        isPM: function (input) {
13495            return input === 'ҮХ';
13496        },
13497        meridiem: function (hour, minute, isLower) {
13498            if (hour < 12) {
13499                return 'Ò®Ó¨';
13500            } else {
13501                return 'ҮХ';
13502            }
13503        },
13504        calendar: {
13505            sameDay: '[Өнөөдөр] LT',
vendor: 7,396 bytes, lines 13506-13715
13506            nextDay: '[Маргааш] LT',
13507            nextWeek: '[Ирэх] dddd LT',
13508            lastDay: '[Өчигдөр] LT',
13509            lastWeek: '[Өнгөрсөн] dddd LT',
13510            sameElse: 'L',
13511        },
13512        relativeTime: {
13513            future: '%s дараа',
13514            past: '%s өмнө',
13515            s: translate$7,
13516            ss: translate$7,
13517            m: translate$7,
13518            mm: translate$7,
13519            h: translate$7,
13520            hh: translate$7,
13521            d: translate$7,
13522            dd: translate$7,
13523            M: translate$7,
13524            MM: translate$7,
13525            y: translate$7,
13526            yy: translate$7,
13527        },
13528        dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
13529        ordinal: function (number, period) {
13530            switch (period) {
13531                case 'd':
13532                case 'D':
13533                case 'DDD':
13534                    return number + ' өдөр';
13535                default:
13536                    return number;
13537            }
13538        },
13539    });
13540
13541    //! moment.js locale configuration
13542
13543    var symbolMap$c = {
13544            1: '१',
13545            2: '२',
13546            3: '३',
13547            4: '४',
13548            5: '५',
13549            6: '६',
13550            7: '७',
13551            8: '८',
13552            9: '९',
13553            0: '०',
13554        },
13555        numberMap$b = {
13556            '१': '1',
13557            '२': '2',
13558            '३': '3',
13559            '४': '4',
13560            '५': '5',
13561            '६': '6',
13562            '७': '7',
13563            '८': '8',
13564            '९': '9',
13565            '०': '0',
13566        };
13567
13568    function relativeTimeMr(number, withoutSuffix, string, isFuture) {
13569        var output = '';
13570        if (withoutSuffix) {
13571            switch (string) {
13572                case 's':
13573                    output = 'काही सेकंद';
13574                    break;
13575                case 'ss':
13576                    output = '%d सेकंद';
13577                    break;
13578                case 'm':
13579                    output = 'एक मिनिट';
13580                    break;
13581                case 'mm':
13582                    output = '%d मिनिटे';
13583                    break;
13584                case 'h':
13585                    output = 'एक तास';
13586                    break;
13587                case 'hh':
13588                    output = '%d तास';
13589                    break;
13590                case 'd':
13591                    output = 'एक दिवस';
13592                    break;
13593                case 'dd':
13594                    output = '%d दिवस';
13595                    break;
13596                case 'M':
13597                    output = 'एक महिना';
13598                    break;
13599                case 'MM':
13600                    output = '%d महिने';
13601                    break;
13602                case 'y':
13603                    output = 'एक वर्ष';
13604                    break;
13605                case 'yy':
13606                    output = '%d वर्षे';
13607                    break;
13608            }
13609        } else {
13610            switch (string) {
13611                case 's':
13612                    output = 'काही सेकंदां';
13613                    break;
13614                case 'ss':
13615                    output = '%d सेकंदां';
13616                    break;
13617                case 'm':
13618                    output = 'एका मिनिटा';
13619                    break;
13620                case 'mm':
13621                    output = '%d मिनिटां';
13622                    break;
13623                case 'h':
13624                    output = 'एका तासा';
13625                    break;
13626                case 'hh':
13627                    output = '%d तासां';
13628                    break;
13629                case 'd':
13630                    output = 'एका दिवसा';
13631                    break;
13632                case 'dd':
13633                    output = '%d दिवसां';
13634                    break;
13635                case 'M':
13636                    output = 'एका महिन्या';
13637                    break;
13638                case 'MM':
13639                    output = '%d महिन्यां';
13640                    break;
13641                case 'y':
13642                    output = 'एका वर्षा';
13643                    break;
13644                case 'yy':
13645                    output = '%d वर्षां';
13646                    break;
13647            }
13648        }
13649        return output.replace(/%d/i, number);
13650    }
13651
13652    hooks.defineLocale('mr', {
13653        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
13654            '_'
13655        ),
13656        monthsShort:
13657            'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
13658                '_'
13659            ),
13660        monthsParseExact: true,
13661        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
13662        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
13663        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
13664        longDateFormat: {
13665            LT: 'A h:mm वाजता',
13666            LTS: 'A h:mm:ss वाजता',
13667            L: 'DD/MM/YYYY',
13668            LL: 'D MMMM YYYY',
13669            LLL: 'D MMMM YYYY, A h:mm वाजता',
13670            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
13671        },
13672        calendar: {
13673            sameDay: '[आज] LT',
13674            nextDay: '[उद्या] LT',
13675            nextWeek: 'dddd, LT',
13676            lastDay: '[काल] LT',
13677            lastWeek: '[मागील] dddd, LT',
13678            sameElse: 'L',
13679        },
13680        relativeTime: {
13681            future: '%sमध्ये',
13682            past: '%sपूर्वी',
13683            s: relativeTimeMr,
13684            ss: relativeTimeMr,
13685            m: relativeTimeMr,
13686            mm: relativeTimeMr,
13687            h: relativeTimeMr,
13688            hh: relativeTimeMr,
13689            d: relativeTimeMr,
13690            dd: relativeTimeMr,
13691            M: relativeTimeMr,
13692            MM: relativeTimeMr,
13693            y: relativeTimeMr,
13694            yy: relativeTimeMr,
13695        },
13696        preparse: function (string) {
13697            return string.replace(/[१२३४५६७८९०]/g, function (match) {
13698                return numberMap$b[match];
13699            });
13700        },
13701        postformat: function (string) {
13702            return string.replace(/\d/g, function (match) {
13703                return symbolMap$c[match];
13704            });
13705        },
13706        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
13707        meridiemHour: function (hour, meridiem) {
13708            if (hour === 12) {
13709                hour = 0;
13710            }
13711            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
13712                return hour;
13713            } else if (
13714                meridiem === 'दुपारी' ||
13715                meridiem === 'सायंकाळी' ||
vendor: 6,988 bytes, lines 13716-13921
13716                meridiem === 'रात्री'
13717            ) {
13718                return hour >= 12 ? hour : hour + 12;
13719            }
13720        },
13721        meridiem: function (hour, minute, isLower) {
13722            if (hour >= 0 && hour < 6) {
13723                return 'पहाटे';
13724            } else if (hour < 12) {
13725                return 'सकाळी';
13726            } else if (hour < 17) {
13727                return 'दुपारी';
13728            } else if (hour < 20) {
13729                return 'सायंकाळी';
13730            } else {
13731                return 'रात्री';
13732            }
13733        },
13734        week: {
13735            dow: 0, // Sunday is the first day of the week.
13736            doy: 6, // The week that contains Jan 6th is the first week of the year.
13737        },
13738    });
13739
13740    //! moment.js locale configuration
13741
13742    hooks.defineLocale('ms-my', {
13743        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13744            '_'
13745        ),
13746        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13747        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13748        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13749        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13750        longDateFormat: {
13751            LT: 'HH.mm',
13752            LTS: 'HH.mm.ss',
13753            L: 'DD/MM/YYYY',
13754            LL: 'D MMMM YYYY',
13755            LLL: 'D MMMM YYYY [pukul] HH.mm',
13756            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13757        },
13758        meridiemParse: /pagi|tengahari|petang|malam/,
13759        meridiemHour: function (hour, meridiem) {
13760            if (hour === 12) {
13761                hour = 0;
13762            }
13763            if (meridiem === 'pagi') {
13764                return hour;
13765            } else if (meridiem === 'tengahari') {
13766                return hour >= 11 ? hour : hour + 12;
13767            } else if (meridiem === 'petang' || meridiem === 'malam') {
13768                return hour + 12;
13769            }
13770        },
13771        meridiem: function (hours, minutes, isLower) {
13772            if (hours < 11) {
13773                return 'pagi';
13774            } else if (hours < 15) {
13775                return 'tengahari';
13776            } else if (hours < 19) {
13777                return 'petang';
13778            } else {
13779                return 'malam';
13780            }
13781        },
13782        calendar: {
13783            sameDay: '[Hari ini pukul] LT',
13784            nextDay: '[Esok pukul] LT',
13785            nextWeek: 'dddd [pukul] LT',
13786            lastDay: '[Kelmarin pukul] LT',
13787            lastWeek: 'dddd [lepas pukul] LT',
13788            sameElse: 'L',
13789        },
13790        relativeTime: {
13791            future: 'dalam %s',
13792            past: '%s yang lepas',
13793            s: 'beberapa saat',
13794            ss: '%d saat',
13795            m: 'seminit',
13796            mm: '%d minit',
13797            h: 'sejam',
13798            hh: '%d jam',
13799            d: 'sehari',
13800            dd: '%d hari',
13801            M: 'sebulan',
13802            MM: '%d bulan',
13803            y: 'setahun',
13804            yy: '%d tahun',
13805        },
13806        week: {
13807            dow: 1, // Monday is the first day of the week.
13808            doy: 7, // The week that contains Jan 7th is the first week of the year.
13809        },
13810    });
13811
13812    //! moment.js locale configuration
13813
13814    hooks.defineLocale('ms', {
13815        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13816            '_'
13817        ),
13818        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13819        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13820        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13821        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13822        longDateFormat: {
13823            LT: 'HH.mm',
13824            LTS: 'HH.mm.ss',
13825            L: 'DD/MM/YYYY',
13826            LL: 'D MMMM YYYY',
13827            LLL: 'D MMMM YYYY [pukul] HH.mm',
13828            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13829        },
13830        meridiemParse: /pagi|tengahari|petang|malam/,
13831        meridiemHour: function (hour, meridiem) {
13832            if (hour === 12) {
13833                hour = 0;
13834            }
13835            if (meridiem === 'pagi') {
13836                return hour;
13837            } else if (meridiem === 'tengahari') {
13838                return hour >= 11 ? hour : hour + 12;
13839            } else if (meridiem === 'petang' || meridiem === 'malam') {
13840                return hour + 12;
13841            }
13842        },
13843        meridiem: function (hours, minutes, isLower) {
13844            if (hours < 11) {
13845                return 'pagi';
13846            } else if (hours < 15) {
13847                return 'tengahari';
13848            } else if (hours < 19) {
13849                return 'petang';
13850            } else {
13851                return 'malam';
13852            }
13853        },
13854        calendar: {
13855            sameDay: '[Hari ini pukul] LT',
13856            nextDay: '[Esok pukul] LT',
13857            nextWeek: 'dddd [pukul] LT',
13858            lastDay: '[Kelmarin pukul] LT',
13859            lastWeek: 'dddd [lepas pukul] LT',
13860            sameElse: 'L',
13861        },
13862        relativeTime: {
13863            future: 'dalam %s',
13864            past: '%s yang lepas',
13865            s: 'beberapa saat',
13866            ss: '%d saat',
13867            m: 'seminit',
13868            mm: '%d minit',
13869            h: 'sejam',
13870            hh: '%d jam',
13871            d: 'sehari',
13872            dd: '%d hari',
13873            M: 'sebulan',
13874            MM: '%d bulan',
13875            y: 'setahun',
13876            yy: '%d tahun',
13877        },
13878        week: {
13879            dow: 1, // Monday is the first day of the week.
13880            doy: 7, // The week that contains Jan 7th is the first week of the year.
13881        },
13882    });
13883
13884    //! moment.js locale configuration
13885
13886    hooks.defineLocale('mt', {
13887        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
13888            '_'
13889        ),
13890        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
13891        weekdays:
13892            'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
13893                '_'
13894            ),
13895        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
13896        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
13897        longDateFormat: {
13898            LT: 'HH:mm',
13899            LTS: 'HH:mm:ss',
13900            L: 'DD/MM/YYYY',
13901            LL: 'D MMMM YYYY',
13902            LLL: 'D MMMM YYYY HH:mm',
13903            LLLL: 'dddd, D MMMM YYYY HH:mm',
13904        },
13905        calendar: {
13906            sameDay: '[Illum fil-]LT',
13907            nextDay: '[Għada fil-]LT',
13908            nextWeek: 'dddd [fil-]LT',
13909            lastDay: '[Il-bieraħ fil-]LT',
13910            lastWeek: 'dddd [li għadda] [fil-]LT',
13911            sameElse: 'L',
13912        },
13913        relativeTime: {
13914            future: 'f’ %s',
13915            past: '%s ilu',
13916            s: 'ftit sekondi',
13917            ss: '%d sekondi',
13918            m: 'minuta',
13919            mm: '%d minuti',
13920            h: 'siegħa',
13921            hh: '%d siegħat',
13922            d: 'ġurnata',
13923            dd: '%d ġranet',
13924            M: 'xahar',
13925            MM: '%d xhur',
13926            y: 'sena',
13927            yy: '%d sni',
13928        },
13929        dayOfMonthOrdinalParse: /\d{1,2}º/,
13930        ordinal: '%dº',
13931        week: {
13932            dow: 1, // Monday is the first day of the week.
13933            doy: 4, // The week that contains Jan 4th is the first week of the year.
13934        },
13935    });
13936
13937    //! moment.js locale configuration
13938
13939    var symbolMap$d = {
13940            1: '၁',
13941            2: '၂',
13942            3: '၃',
13943            4: '၄',
13944            5: '၅',
13945            6: '၆',
13946            7: '၇',
13947            8: '၈',
13948            9: '၉',
13949            0: '၀',
13950        },
13951        numberMap$c = {
13952            '၁': '1',
13953            '၂': '2',
13954            '၃': '3',
13955            '၄': '4',
13956            '၅': '5',
13957            '၆': '6',
13958            '၇': '7',
13959            '၈': '8',
13960            '၉': '9',
13961            '၀': '0',
13962        };
13963
13964    hooks.defineLocale('my', {
13965        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
13966            '_'
13967        ),
13968        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
13969        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
13970            '_'
13971        ),
13972        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13973        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13974
13975        longDateFormat: {
13976            LT: 'HH:mm',
13977            LTS: 'HH:mm:ss',
13978            L: 'DD/MM/YYYY',
13979            LL: 'D MMMM YYYY',
13980            LLL: 'D MMMM YYYY HH:mm',
13981            LLLL: 'dddd D MMMM YYYY HH:mm',
13982        },
13983        calendar: {
13984            sameDay: '[ယနေ.] LT [မှာ]',
13985            nextDay: '[မနက်ဖြန်] LT [မှာ]',
13986            nextWeek: 'dddd LT [မှာ]',
13987            lastDay: '[မနေ.က] LT [မှာ]',
13988            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
13989            sameElse: 'L',
13990        },
13991        relativeTime: {
13992            future: 'လာမည့် %s မှာ',
13993            past: 'လွန်ခဲ့သော %s က',
13994            s: 'စက္ကန်.အနည်းငယ်',
13995            ss: '%d စက္ကန့်',
13996            m: 'တစ်မိနစ်',
13997            mm: '%d မိနစ်',
13998            h: 'တစ်နာရီ',
13999            hh: '%d နာရီ',
14000            d: 'တစ်ရက်',
14001            dd: '%d ရက်',
14002            M: 'တစ်လ',
14003            MM: '%d လ',
14004            y: 'တစ်နှစ်',
14005            yy: '%d နှစ်',
14006        },
14007        preparse: function (string) {
14008            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
14009                return numberMap$c[match];
14010            });
14011        },
14012        postformat: function (string) {
14013            return string.replace(/\d/g, function (match) {
14014                return symbolMap$d[match];
14015            });
14016        },
14017        week: {
14018            dow: 1, // Monday is the first day of the week.
14019            doy: 4, // The week that contains Jan 4th is the first week of the year.
14020        },
14021    });
14022
14023    //! moment.js locale configuration
14024
14025    hooks.defineLocale('nb', {
14026        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
14027            '_'
14028        ),
14029        monthsShort:
14030            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
14031        monthsParseExact: true,
14032        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
14033        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
14034        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
14035        weekdaysParseExact: true,
14036        longDateFormat: {
14037            LT: 'HH:mm',
14038            LTS: 'HH:mm:ss',
14039            L: 'DD.MM.YYYY',
14040            LL: 'D. MMMM YYYY',
14041            LLL: 'D. MMMM YYYY [kl.] HH:mm',
14042            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
14043        },
14044        calendar: {
14045            sameDay: '[i dag kl.] LT',
14046            nextDay: '[i morgen kl.] LT',
14047            nextWeek: 'dddd [kl.] LT',
14048            lastDay: '[i går kl.] LT',
14049            lastWeek: '[forrige] dddd [kl.] LT',
14050            sameElse: 'L',
14051        },
14052        relativeTime: {
14053            future: 'om %s',
14054            past: '%s siden',
14055            s: 'noen sekunder',
14056            ss: '%d sekunder',
14057            m: 'ett minutt',
14058            mm: '%d minutter',
14059            h: 'en time',
14060            hh: '%d timer',
14061            d: 'en dag',
14062            dd: '%d dager',
14063            w: 'en uke',
14064            ww: '%d uker',
14065            M: 'en måned',
14066            MM: '%d måneder',
14067            y: 'ett år',
14068            yy: '%d år',
14069        },
14070        dayOfMonthOrdinalParse: /\d{1,2}\./,
14071        ordinal: '%d.',
14072        week: {
14073            dow: 1, // Monday is the first day of the week.
14074            doy: 4, // The week that contains Jan 4th is the first week of the year.
14075        },
14076    });
14077
14078    //! moment.js locale configuration
14079
14080    var symbolMap$e = {
14081            1: '१',
14082            2: '२',
14083            3: '३',
14084            4: '४',
14085            5: '५',
14086            6: '६',
14087            7: '७',
14088            8: '८',
14089            9: '९',
14090            0: '०',
14091        },
14092        numberMap$d = {
14093            '१': '1',
14094            '२': '2',
14095            '३': '3',
14096            '४': '4',
14097            '५': '5',
14098            '६': '6',
14099            '७': '7',
14100            '८': '8',
14101            '९': '9',
14102            '०': '0',
14103        };
14104
14105    hooks.defineLocale('ne', {
14106        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
14107            '_'
14108        ),
14109        monthsShort:
14110            'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
14111                '_'
14112            ),
14113        monthsParseExact: true,
14114        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
14115            '_'
14116        ),
14117        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
14118        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
14119        weekdaysParseExact: true,
14120        longDateFormat: {
14121            LT: 'Aको h:mm बजे',
14122            LTS: 'Aको h:mm:ss बजे',
14123            L: 'DD/MM/YYYY',
14124            LL: 'D MMMM YYYY',
14125            LLL: 'D MMMM YYYY, Aको h:mm बजे',
14126            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
14127        },
14128        preparse: function (string) {
14129            return string.replace(/[१२३४५६७८९०]/g, function (match) {
14130                return numberMap$d[match];
14131            });
14132        },
14133        postformat: function (string) {
14134            return string.replace(/\d/g, function (match) {
14135                return symbolMap$e[match];
14136            });
14137        },
vendor: 4,970 bytes, lines 14138-14277
14138        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
14139        meridiemHour: function (hour, meridiem) {
14140            if (hour === 12) {
14141                hour = 0;
14142            }
14143            if (meridiem === 'राति') {
14144                return hour < 4 ? hour : hour + 12;
14145            } else if (meridiem === 'बिहान') {
14146                return hour;
14147            } else if (meridiem === 'दिउँसो') {
14148                return hour >= 10 ? hour : hour + 12;
14149            } else if (meridiem === 'साँझ') {
14150                return hour + 12;
14151            }
14152        },
14153        meridiem: function (hour, minute, isLower) {
14154            if (hour < 3) {
14155                return 'राति';
14156            } else if (hour < 12) {
14157                return 'बिहान';
14158            } else if (hour < 16) {
14159                return 'दिउँसो';
14160            } else if (hour < 20) {
14161                return 'साँझ';
14162            } else {
14163                return 'राति';
14164            }
14165        },
14166        calendar: {
14167            sameDay: '[आज] LT',
14168            nextDay: '[भोलि] LT',
14169            nextWeek: '[आउँदो] dddd[,] LT',
14170            lastDay: '[हिजो] LT',
14171            lastWeek: '[गएको] dddd[,] LT',
14172            sameElse: 'L',
14173        },
14174        relativeTime: {
14175            future: '%sमा',
14176            past: '%s अगाडि',
14177            s: 'केही क्षण',
14178            ss: '%d सेकेण्ड',
14179            m: 'एक मिनेट',
14180            mm: '%d मिनेट',
14181            h: 'एक घण्टा',
14182            hh: '%d घण्टा',
14183            d: 'एक दिन',
14184            dd: '%d दिन',
14185            M: 'एक महिना',
14186            MM: '%d महिना',
14187            y: 'एक बर्ष',
14188            yy: '%d बर्ष',
14189        },
14190        week: {
14191            dow: 0, // Sunday is the first day of the week.
14192            doy: 6, // The week that contains Jan 6th is the first week of the year.
14193        },
14194    });
14195
14196    //! moment.js locale configuration
14197
14198    var monthsShortWithDots$1 =
14199            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
14200        monthsShortWithoutDots$1 =
14201            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
14202        monthsParse$8 = [
14203            /^jan/i,
14204            /^feb/i,
14205            /^maart|mrt.?$/i,
14206            /^apr/i,
14207            /^mei$/i,
14208            /^jun[i.]?$/i,
14209            /^jul[i.]?$/i,
14210            /^aug/i,
14211            /^sep/i,
14212            /^okt/i,
14213            /^nov/i,
14214            /^dec/i,
14215        ],
14216        monthsRegex$8 =
14217            /^(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;
14218
14219    hooks.defineLocale('nl-be', {
14220        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14221            '_'
14222        ),
14223        monthsShort: function (m, format) {
14224            if (!m) {
14225                return monthsShortWithDots$1;
14226            } else if (/-MMM-/.test(format)) {
14227                return monthsShortWithoutDots$1[m.month()];
14228            } else {
14229                return monthsShortWithDots$1[m.month()];
14230            }
14231        },
14232
14233        monthsRegex: monthsRegex$8,
14234        monthsShortRegex: monthsRegex$8,
14235        monthsStrictRegex:
14236            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14237        monthsShortStrictRegex:
14238            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14239
14240        monthsParse: monthsParse$8,
14241        longMonthsParse: monthsParse$8,
14242        shortMonthsParse: monthsParse$8,
14243
14244        weekdays:
14245            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
14246        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14247        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14248        weekdaysParseExact: true,
14249        longDateFormat: {
14250            LT: 'HH:mm',
14251            LTS: 'HH:mm:ss',
14252            L: 'DD/MM/YYYY',
14253            LL: 'D MMMM YYYY',
14254            LLL: 'D MMMM YYYY HH:mm',
14255            LLLL: 'dddd D MMMM YYYY HH:mm',
14256        },
14257        calendar: {
14258            sameDay: '[vandaag om] LT',
14259            nextDay: '[morgen om] LT',
14260            nextWeek: 'dddd [om] LT',
14261            lastDay: '[gisteren om] LT',
14262            lastWeek: '[afgelopen] dddd [om] LT',
14263            sameElse: 'L',
14264        },
14265        relativeTime: {
14266            future: 'over %s',
14267            past: '%s geleden',
14268            s: 'een paar seconden',
14269            ss: '%d seconden',
14270            m: 'één minuut',
14271            mm: '%d minuten',
14272            h: 'één uur',
14273            hh: '%d uur',
14274            d: 'één dag',
14275            dd: '%d dagen',
14276            M: 'één maand',
14277            MM: '%d maanden',
vendor: 4,329 bytes, lines 14278-14403
14278            y: 'één jaar',
14279            yy: '%d jaar',
14280        },
14281        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14282        ordinal: function (number) {
14283            return (
14284                number +
14285                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14286            );
14287        },
14288        week: {
14289            dow: 1, // Monday is the first day of the week.
14290            doy: 4, // The week that contains Jan 4th is the first week of the year.
14291        },
14292    });
14293
14294    //! moment.js locale configuration
14295
14296    var monthsShortWithDots$2 =
14297            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
14298        monthsShortWithoutDots$2 =
14299            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
14300        monthsParse$9 = [
14301            /^jan/i,
14302            /^feb/i,
14303            /^maart|mrt.?$/i,
14304            /^apr/i,
14305            /^mei$/i,
14306            /^jun[i.]?$/i,
14307            /^jul[i.]?$/i,
14308            /^aug/i,
14309            /^sep/i,
14310            /^okt/i,
14311            /^nov/i,
14312            /^dec/i,
14313        ],
14314        monthsRegex$9 =
14315            /^(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;
14316
14317    hooks.defineLocale('nl', {
14318        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14319            '_'
14320        ),
14321        monthsShort: function (m, format) {
14322            if (!m) {
14323                return monthsShortWithDots$2;
14324            } else if (/-MMM-/.test(format)) {
14325                return monthsShortWithoutDots$2[m.month()];
14326            } else {
14327                return monthsShortWithDots$2[m.month()];
14328            }
14329        },
14330
14331        monthsRegex: monthsRegex$9,
14332        monthsShortRegex: monthsRegex$9,
14333        monthsStrictRegex:
14334            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14335        monthsShortStrictRegex:
14336            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14337
14338        monthsParse: monthsParse$9,
14339        longMonthsParse: monthsParse$9,
14340        shortMonthsParse: monthsParse$9,
14341
14342        weekdays:
14343            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
14344        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14345        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14346        weekdaysParseExact: true,
14347        longDateFormat: {
14348            LT: 'HH:mm',
14349            LTS: 'HH:mm:ss',
14350            L: 'DD-MM-YYYY',
14351            LL: 'D MMMM YYYY',
14352            LLL: 'D MMMM YYYY HH:mm',
14353            LLLL: 'dddd D MMMM YYYY HH:mm',
14354        },
14355        calendar: {
14356            sameDay: '[vandaag om] LT',
14357            nextDay: '[morgen om] LT',
14358            nextWeek: 'dddd [om] LT',
14359            lastDay: '[gisteren om] LT',
14360            lastWeek: '[afgelopen] dddd [om] LT',
14361            sameElse: 'L',
14362        },
14363        relativeTime: {
14364            future: 'over %s',
14365            past: '%s geleden',
14366            s: 'een paar seconden',
14367            ss: '%d seconden',
14368            m: 'één minuut',
14369            mm: '%d minuten',
14370            h: 'één uur',
14371            hh: '%d uur',
14372            d: 'één dag',
14373            dd: '%d dagen',
14374            w: 'één week',
14375            ww: '%d weken',
14376            M: 'één maand',
14377            MM: '%d maanden',
14378            y: 'één jaar',
14379            yy: '%d jaar',
14380        },
14381        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14382        ordinal: function (number) {
14383            return (
14384                number +
14385                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14386            );
14387        },
14388        week: {
14389            dow: 1, // Monday is the first day of the week.
14390            doy: 4, // The week that contains Jan 4th is the first week of the year.
14391        },
14392    });
14393
14394    //! moment.js locale configuration
14395
14396    hooks.defineLocale('nn', {
14397        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
14398            '_'
14399        ),
14400        monthsShort:
14401            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
14402        monthsParseExact: true,
14403        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
14404        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
14405        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
14406        weekdaysParseExact: true,
14407        longDateFormat: {
14408            LT: 'HH:mm',
14409            LTS: 'HH:mm:ss',
14410            L: 'DD.MM.YYYY',
14411            LL: 'D. MMMM YYYY',
14412            LLL: 'D. MMMM YYYY [kl.] H:mm',
14413            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
14414        },
14415        calendar: {
14416            sameDay: '[I dag klokka] LT',
14417            nextDay: '[I morgon klokka] LT',
14418            nextWeek: 'dddd [klokka] LT',
14419            lastDay: '[I går klokka] LT',
14420            lastWeek: '[Føregåande] dddd [klokka] LT',
14421            sameElse: 'L',
14422        },
14423        relativeTime: {
14424            future: 'om %s',
14425            past: '%s sidan',
14426            s: 'nokre sekund',
14427            ss: '%d sekund',
14428            m: 'eit minutt',
14429            mm: '%d minutt',
14430            h: 'ein time',
14431            hh: '%d timar',
14432            d: 'ein dag',
14433            dd: '%d dagar',
14434            w: 'ei veke',
14435            ww: '%d veker',
14436            M: 'ein månad',
14437            MM: '%d månader',
14438            y: 'eit år',
14439            yy: '%d år',
14440        },
14441        dayOfMonthOrdinalParse: /\d{1,2}\./,
14442        ordinal: '%d.',
14443        week: {
14444            dow: 1, // Monday is the first day of the week.
14445            doy: 4, // The week that contains Jan 4th is the first week of the year.
14446        },
14447    });
14448
14449    //! moment.js locale configuration
14450
14451    hooks.defineLocale('oc-lnc', {
14452        months: {
14453            standalone:
14454                'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
14455                    '_'
14456                ),
14457            format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
14458                '_'
14459            ),
14460            isFormat: /D[oD]?(\s)+MMMM/,
14461        },
14462        monthsShort:
14463            'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
14464                '_'
14465            ),
14466        monthsParseExact: true,
14467        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
14468            '_'
14469        ),
14470        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
14471        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
14472        weekdaysParseExact: true,
14473        longDateFormat: {
14474            LT: 'H:mm',
14475            LTS: 'H:mm:ss',
14476            L: 'DD/MM/YYYY',
14477            LL: 'D MMMM [de] YYYY',
14478            ll: 'D MMM YYYY',
14479            LLL: 'D MMMM [de] YYYY [a] H:mm',
14480            lll: 'D MMM YYYY, H:mm',
14481            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
14482            llll: 'ddd D MMM YYYY, H:mm',
14483        },
14484        calendar: {
14485            sameDay: '[uèi a] LT',
14486            nextDay: '[deman a] LT',
14487            nextWeek: 'dddd [a] LT',
14488            lastDay: '[ièr a] LT',
14489            lastWeek: 'dddd [passat a] LT',
14490            sameElse: 'L',
14491        },
14492        relativeTime: {
14493            future: "d'aquí %s",
14494            past: 'fa %s',
14495            s: 'unas segondas',
14496            ss: '%d segondas',
14497            m: 'una minuta',
14498            mm: '%d minutas',
14499            h: 'una ora',
14500            hh: '%d oras',
14501            d: 'un jorn',
14502            dd: '%d jorns',
14503            M: 'un mes',
14504            MM: '%d meses',
14505            y: 'un an',
14506            yy: '%d ans',
14507        },
14508        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
14509        ordinal: function (number, period) {
14510            var output =
14511                number === 1
14512                    ? 'r'
14513                    : number === 2
14514                    ? 'n'
14515                    : number === 3
14516                    ? 'r'
14517                    : number === 4
14518                    ? 't'
14519                    : 'è';
14520            if (period === 'w' || period === 'W') {
14521                output = 'a';
14522            }
14523            return number + output;
14524        },
14525        week: {
14526            dow: 1, // Monday is the first day of the week.
14527            doy: 4,
14528        },
14529    });
14530
14531    //! moment.js locale configuration
14532
14533    var symbolMap$f = {
14534            1: 'à©§',
14535            2: '੨',
14536            3: 'à©©',
14537            4: '੪',
14538            5: 'à©«',
14539            6: '੬',
14540            7: 'à©­',
14541            8: 'à©®',
14542            9: '੯',
14543            0: '੦',
14544        },
14545        numberMap$e = {
14546            'à©§': '1',
14547            '੨': '2',
14548            'à©©': '3',
14549            '੪': '4',
14550            'à©«': '5',
14551            '੬': '6',
14552            'à©­': '7',
14553            'à©®': '8',
14554            '੯': '9',
14555            '੦': '0',
14556        };
14557
14558    hooks.defineLocale('pa-in', {
14559        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
14560        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14561            '_'
14562        ),
14563        monthsShort:
14564            'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14565                '_'
14566            ),
14567        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
14568            '_'
14569        ),
14570        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14571        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14572        longDateFormat: {
14573            LT: 'A h:mm ਵਜੇ',
14574            LTS: 'A h:mm:ss ਵਜੇ',
14575            L: 'DD/MM/YYYY',
14576            LL: 'D MMMM YYYY',
14577            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
14578            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
14579        },
14580        calendar: {
14581            sameDay: '[ਅਜ] LT',
14582            nextDay: '[ਕਲ] LT',
14583            nextWeek: '[ਅਗਲਾ] dddd, LT',
14584            lastDay: '[ਕਲ] LT',
14585            lastWeek: '[ਪਿਛਲੇ] dddd, LT',
14586            sameElse: 'L',
14587        },
14588        relativeTime: {
14589            future: '%s ਵਿੱਚ',
14590            past: '%s ਪਿਛਲੇ',
14591            s: 'ਕੁਝ ਸਕਿੰਟ',
14592            ss: '%d ਸਕਿੰਟ',
14593            m: 'ਇਕ ਮਿੰਟ',
14594            mm: '%d ਮਿੰਟ',
14595            h: 'ਇੱਕ ਘੰਟਾ',
14596            hh: '%d ਘੰਟੇ',
14597            d: 'ਇੱਕ ਦਿਨ',
14598            dd: '%d ਦਿਨ',
14599            M: 'ਇੱਕ ਮਹੀਨਾ',
14600            MM: '%d ਮਹੀਨੇ',
14601            y: 'ਇੱਕ ਸਾਲ',
14602            yy: '%d ਸਾਲ',
14603        },
14604        preparse: function (string) {
14605            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
14606                return numberMap$e[match];
14607            });
14608        },
14609        postformat: function (string) {
14610            return string.replace(/\d/g, function (match) {
14611                return symbolMap$f[match];
14612            });
14613        },
14614        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
14615        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
14616        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
14617        meridiemHour: function (hour, meridiem) {
14618            if (hour === 12) {
14619                hour = 0;
14620            }
14621            if (meridiem === 'ਰਾਤ') {
14622                return hour < 4 ? hour : hour + 12;
14623            } else if (meridiem === 'ਸਵੇਰ') {
14624                return hour;
14625            } else if (meridiem === 'ਦੁਪਹਿਰ') {
14626                return hour >= 10 ? hour : hour + 12;
14627            } else if (meridiem === 'ਸ਼ਾਮ') {
14628                return hour + 12;
14629            }
14630        },
14631        meridiem: function (hour, minute, isLower) {
14632            if (hour < 4) {
14633                return 'ਰਾਤ';
14634            } else if (hour < 10) {
14635                return 'ਸਵੇਰ';
14636            } else if (hour < 17) {
14637                return 'ਦੁਪਹਿਰ';
14638            } else if (hour < 20) {
14639                return 'ਸ਼ਾਮ';
14640            } else {
14641                return 'ਰਾਤ';
14642            }
14643        },
14644        week: {
14645            dow: 0, // Sunday is the first day of the week.
14646            doy: 6, // The week that contains Jan 6th is the first week of the year.
14647        },
14648    });
14649
14650    //! moment.js locale configuration
14651
14652    var monthsNominative =
vendor: 24,143 bytes, lines 14653-15314
14653            'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
14654                '_'
14655            ),
14656        monthsSubjective =
14657            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
14658                '_'
14659            ),
14660        monthsParse$a = [
14661            /^sty/i,
14662            /^lut/i,
14663            /^mar/i,
14664            /^kwi/i,
14665            /^maj/i,
14666            /^cze/i,
14667            /^lip/i,
14668            /^sie/i,
14669            /^wrz/i,
14670            /^paź/i,
14671            /^lis/i,
14672            /^gru/i,
14673        ];
14674    function plural$3(n) {
14675        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
14676    }
14677    function translate$8(number, withoutSuffix, key) {
14678        var result = number + ' ';
14679        switch (key) {
14680            case 'ss':
14681                return result + (plural$3(number) ? 'sekundy' : 'sekund');
14682            case 'm':
14683                return withoutSuffix ? 'minuta' : 'minutę';
14684            case 'mm':
14685                return result + (plural$3(number) ? 'minuty' : 'minut');
14686            case 'h':
14687                return withoutSuffix ? 'godzina' : 'godzinę';
14688            case 'hh':
14689                return result + (plural$3(number) ? 'godziny' : 'godzin');
14690            case 'ww':
14691                return result + (plural$3(number) ? 'tygodnie' : 'tygodni');
14692            case 'MM':
14693                return result + (plural$3(number) ? 'miesiące' : 'miesięcy');
14694            case 'yy':
14695                return result + (plural$3(number) ? 'lata' : 'lat');
14696        }
14697    }
14698
14699    hooks.defineLocale('pl', {
14700        months: function (momentToFormat, format) {
14701            if (!momentToFormat) {
14702                return monthsNominative;
14703            } else if (/D MMMM/.test(format)) {
14704                return monthsSubjective[momentToFormat.month()];
14705            } else {
14706                return monthsNominative[momentToFormat.month()];
14707            }
14708        },
14709        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
14710        monthsParse: monthsParse$a,
14711        longMonthsParse: monthsParse$a,
14712        shortMonthsParse: monthsParse$a,
14713        weekdays:
14714            'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
14715        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
14716        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
14717        longDateFormat: {
14718            LT: 'HH:mm',
14719            LTS: 'HH:mm:ss',
14720            L: 'DD.MM.YYYY',
14721            LL: 'D MMMM YYYY',
14722            LLL: 'D MMMM YYYY HH:mm',
14723            LLLL: 'dddd, D MMMM YYYY HH:mm',
14724        },
14725        calendar: {
14726            sameDay: '[Dziś o] LT',
14727            nextDay: '[Jutro o] LT',
14728            nextWeek: function () {
14729                switch (this.day()) {
14730                    case 0:
14731                        return '[W niedzielę o] LT';
14732
14733                    case 2:
14734                        return '[We wtorek o] LT';
14735
14736                    case 3:
14737                        return '[W środę o] LT';
14738
14739                    case 6:
14740                        return '[W sobotę o] LT';
14741
14742                    default:
14743                        return '[W] dddd [o] LT';
14744                }
14745            },
14746            lastDay: '[Wczoraj o] LT',
14747            lastWeek: function () {
14748                switch (this.day()) {
14749                    case 0:
14750                        return '[W zeszłą niedzielę o] LT';
14751                    case 3:
14752                        return '[W zeszłą środę o] LT';
14753                    case 6:
14754                        return '[W zeszłą sobotę o] LT';
14755                    default:
14756                        return '[W zeszły] dddd [o] LT';
14757                }
14758            },
14759            sameElse: 'L',
14760        },
14761        relativeTime: {
14762            future: 'za %s',
14763            past: '%s temu',
14764            s: 'kilka sekund',
14765            ss: translate$8,
14766            m: translate$8,
14767            mm: translate$8,
14768            h: translate$8,
14769            hh: translate$8,
14770            d: '1 dzień',
14771            dd: '%d dni',
14772            w: 'tydzień',
14773            ww: translate$8,
14774            M: 'miesiąc',
14775            MM: translate$8,
14776            y: 'rok',
14777            yy: translate$8,
14778        },
14779        dayOfMonthOrdinalParse: /\d{1,2}\./,
14780        ordinal: '%d.',
14781        week: {
14782            dow: 1, // Monday is the first day of the week.
14783            doy: 4, // The week that contains Jan 4th is the first week of the year.
14784        },
14785    });
14786
14787    //! moment.js locale configuration
14788
14789    hooks.defineLocale('pt-br', {
14790        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14791            '_'
14792        ),
14793        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14794        weekdays:
14795            'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
14796                '_'
14797            ),
14798        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
14799        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
14800        weekdaysParseExact: true,
14801        longDateFormat: {
14802            LT: 'HH:mm',
14803            LTS: 'HH:mm:ss',
14804            L: 'DD/MM/YYYY',
14805            LL: 'D [de] MMMM [de] YYYY',
14806            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
14807            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
14808        },
14809        calendar: {
14810            sameDay: '[Hoje às] LT',
14811            nextDay: '[Amanhã às] LT',
14812            nextWeek: 'dddd [às] LT',
14813            lastDay: '[Ontem às] LT',
14814            lastWeek: function () {
14815                return this.day() === 0 || this.day() === 6
14816                    ? '[Último] dddd [às] LT' // Saturday + Sunday
14817                    : '[Última] dddd [às] LT'; // Monday - Friday
14818            },
14819            sameElse: 'L',
14820        },
14821        relativeTime: {
14822            future: 'em %s',
14823            past: 'há %s',
14824            s: 'poucos segundos',
14825            ss: '%d segundos',
14826            m: 'um minuto',
14827            mm: '%d minutos',
14828            h: 'uma hora',
14829            hh: '%d horas',
14830            d: 'um dia',
14831            dd: '%d dias',
14832            M: 'um mês',
14833            MM: '%d meses',
14834            y: 'um ano',
14835            yy: '%d anos',
14836        },
14837        dayOfMonthOrdinalParse: /\d{1,2}º/,
14838        ordinal: '%dº',
14839        invalidDate: 'Data inválida',
14840    });
14841
14842    //! moment.js locale configuration
14843
14844    hooks.defineLocale('pt', {
14845        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14846            '_'
14847        ),
14848        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14849        weekdays:
14850            'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
14851                '_'
14852            ),
14853        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
14854        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
14855        weekdaysParseExact: true,
14856        longDateFormat: {
14857            LT: 'HH:mm',
14858            LTS: 'HH:mm:ss',
14859            L: 'DD/MM/YYYY',
14860            LL: 'D [de] MMMM [de] YYYY',
14861            LLL: 'D [de] MMMM [de] YYYY HH:mm',
14862            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
14863        },
14864        calendar: {
14865            sameDay: '[Hoje às] LT',
14866            nextDay: '[Amanhã às] LT',
14867            nextWeek: 'dddd [às] LT',
14868            lastDay: '[Ontem às] LT',
14869            lastWeek: function () {
14870                return this.day() === 0 || this.day() === 6
14871                    ? '[Último] dddd [às] LT' // Saturday + Sunday
14872                    : '[Última] dddd [às] LT'; // Monday - Friday
14873            },
14874            sameElse: 'L',
14875        },
14876        relativeTime: {
14877            future: 'em %s',
14878            past: 'há %s',
14879            s: 'segundos',
14880            ss: '%d segundos',
14881            m: 'um minuto',
14882            mm: '%d minutos',
14883            h: 'uma hora',
14884            hh: '%d horas',
14885            d: 'um dia',
14886            dd: '%d dias',
14887            w: 'uma semana',
14888            ww: '%d semanas',
14889            M: 'um mês',
14890            MM: '%d meses',
14891            y: 'um ano',
14892            yy: '%d anos',
14893        },
14894        dayOfMonthOrdinalParse: /\d{1,2}º/,
14895        ordinal: '%dº',
14896        week: {
14897            dow: 1, // Monday is the first day of the week.
14898            doy: 4, // The week that contains Jan 4th is the first week of the year.
14899        },
14900    });
14901
14902    //! moment.js locale configuration
14903
14904    function relativeTimeWithPlural$2(number, withoutSuffix, key) {
14905        var format = {
14906                ss: 'secunde',
14907                mm: 'minute',
14908                hh: 'ore',
14909                dd: 'zile',
14910                ww: 'săptămâni',
14911                MM: 'luni',
14912                yy: 'ani',
14913            },
14914            separator = ' ';
14915        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
14916            separator = ' de ';
14917        }
14918        return number + separator + format[key];
14919    }
14920
14921    hooks.defineLocale('ro', {
14922        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
14923            '_'
14924        ),
14925        monthsShort:
14926            'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
14927                '_'
14928            ),
14929        monthsParseExact: true,
14930        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
14931        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
14932        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
14933        longDateFormat: {
14934            LT: 'H:mm',
14935            LTS: 'H:mm:ss',
14936            L: 'DD.MM.YYYY',
14937            LL: 'D MMMM YYYY',
14938            LLL: 'D MMMM YYYY H:mm',
14939            LLLL: 'dddd, D MMMM YYYY H:mm',
14940        },
14941        calendar: {
14942            sameDay: '[azi la] LT',
14943            nextDay: '[mâine la] LT',
14944            nextWeek: 'dddd [la] LT',
14945            lastDay: '[ieri la] LT',
14946            lastWeek: '[fosta] dddd [la] LT',
14947            sameElse: 'L',
14948        },
14949        relativeTime: {
14950            future: 'peste %s',
14951            past: '%s în urmă',
14952            s: 'câteva secunde',
14953            ss: relativeTimeWithPlural$2,
14954            m: 'un minut',
14955            mm: relativeTimeWithPlural$2,
14956            h: 'o oră',
14957            hh: relativeTimeWithPlural$2,
14958            d: 'o zi',
14959            dd: relativeTimeWithPlural$2,
14960            w: 'o săptămână',
14961            ww: relativeTimeWithPlural$2,
14962            M: 'o lună',
14963            MM: relativeTimeWithPlural$2,
14964            y: 'un an',
14965            yy: relativeTimeWithPlural$2,
14966        },
14967        week: {
14968            dow: 1, // Monday is the first day of the week.
14969            doy: 7, // The week that contains Jan 7th is the first week of the year.
14970        },
14971    });
14972
14973    //! moment.js locale configuration
14974
14975    function plural$4(word, num) {
14976        var forms = word.split('_');
14977        return num % 10 === 1 && num % 100 !== 11
14978            ? forms[0]
14979            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
14980            ? forms[1]
14981            : forms[2];
14982    }
14983    function relativeTimeWithPlural$3(number, withoutSuffix, key) {
14984        var format = {
14985            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
14986            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
14987            hh: 'час_часа_часов',
14988            dd: 'день_дня_дней',
14989            ww: 'неделя_недели_недель',
14990            MM: 'месяц_месяца_месяцев',
14991            yy: 'год_года_лет',
14992        };
14993        if (key === 'm') {
14994            return withoutSuffix ? 'минута' : 'минуту';
14995        } else {
14996            return number + ' ' + plural$4(format[key], +number);
14997        }
14998    }
14999    var monthsParse$b = [
15000        /^янв/i,
15001        /^фев/i,
15002        /^мар/i,
15003        /^апр/i,
15004        /^ма[йя]/i,
15005        /^июн/i,
15006        /^июл/i,
15007        /^авг/i,
15008        /^сен/i,
15009        /^окт/i,
15010        /^ноя/i,
15011        /^дек/i,
15012    ];
15013
15014    // http://new.gramota.ru/spravka/rules/139-prop : § 103
15015    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
15016    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
15017    hooks.defineLocale('ru', {
15018        months: {
15019            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
15020                '_'
15021            ),
15022            standalone:
15023                'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
15024                    '_'
15025                ),
15026        },
15027        monthsShort: {
15028            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
15029            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
15030                '_'
15031            ),
15032            standalone:
15033                'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
15034                    '_'
15035                ),
15036        },
15037        weekdays: {
15038            standalone:
15039                'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
15040                    '_'
15041                ),
15042            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
15043                '_'
15044            ),
15045            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
15046        },
15047        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
15048        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
15049        monthsParse: monthsParse$b,
15050        longMonthsParse: monthsParse$b,
15051        shortMonthsParse: monthsParse$b,
15052
15053        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
15054        monthsRegex:
15055            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
15056
15057        // копия предыдущего
15058        monthsShortRegex:
15059            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
15060
15061        // полные названия с падежами
15062        monthsStrictRegex:
15063            /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
15064
15065        // Выражение, которое соответствует только сокращённым формам
15066        monthsShortStrictRegex:
15067            /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
15068        longDateFormat: {
15069            LT: 'H:mm',
15070            LTS: 'H:mm:ss',
15071            L: 'DD.MM.YYYY',
15072            LL: 'D MMMM YYYY г.',
15073            LLL: 'D MMMM YYYY г., H:mm',
15074            LLLL: 'dddd, D MMMM YYYY г., H:mm',
15075        },
15076        calendar: {
15077            sameDay: '[Сегодня, в] LT',
15078            nextDay: '[Завтра, в] LT',
15079            lastDay: '[Вчера, в] LT',
15080            nextWeek: function (now) {
15081                if (now.week() !== this.week()) {
15082                    switch (this.day()) {
15083                        case 0:
15084                            return '[В следующее] dddd, [в] LT';
15085                        case 1:
15086                        case 2:
15087                        case 4:
15088                            return '[В следующий] dddd, [в] LT';
15089                        case 3:
15090                        case 5:
15091                        case 6:
15092                            return '[В следующую] dddd, [в] LT';
15093                    }
15094                } else {
15095                    if (this.day() === 2) {
15096                        return '[Во] dddd, [в] LT';
15097                    } else {
15098                        return '[В] dddd, [в] LT';
15099                    }
15100                }
15101            },
15102            lastWeek: function (now) {
15103                if (now.week() !== this.week()) {
15104                    switch (this.day()) {
15105                        case 0:
15106                            return '[В прошлое] dddd, [в] LT';
15107                        case 1:
15108                        case 2:
15109                        case 4:
15110                            return '[В прошлый] dddd, [в] LT';
15111                        case 3:
15112                        case 5:
15113                        case 6:
15114                            return '[В прошлую] dddd, [в] LT';
15115                    }
15116                } else {
15117                    if (this.day() === 2) {
15118                        return '[Во] dddd, [в] LT';
15119                    } else {
15120                        return '[В] dddd, [в] LT';
15121                    }
15122                }
15123            },
15124            sameElse: 'L',
15125        },
15126        relativeTime: {
15127            future: 'через %s',
15128            past: '%s назад',
15129            s: 'несколько секунд',
15130            ss: relativeTimeWithPlural$3,
15131            m: relativeTimeWithPlural$3,
15132            mm: relativeTimeWithPlural$3,
15133            h: 'час',
15134            hh: relativeTimeWithPlural$3,
15135            d: 'день',
15136            dd: relativeTimeWithPlural$3,
15137            w: 'неделя',
15138            ww: relativeTimeWithPlural$3,
15139            M: 'месяц',
15140            MM: relativeTimeWithPlural$3,
15141            y: 'год',
15142            yy: relativeTimeWithPlural$3,
15143        },
15144        meridiemParse: /ночи|утра|дня|вечера/i,
15145        isPM: function (input) {
15146            return /^(дня|вечера)$/.test(input);
15147        },
15148        meridiem: function (hour, minute, isLower) {
15149            if (hour < 4) {
15150                return 'ночи';
15151            } else if (hour < 12) {
15152                return 'утра';
15153            } else if (hour < 17) {
15154                return 'дня';
15155            } else {
15156                return 'вечера';
15157            }
15158        },
15159        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
15160        ordinal: function (number, period) {
15161            switch (period) {
15162                case 'M':
15163                case 'd':
15164                case 'DDD':
15165                    return number + '-й';
15166                case 'D':
15167                    return number + '-го';
15168                case 'w':
15169                case 'W':
15170                    return number + '-я';
15171                default:
15172                    return number;
15173            }
15174        },
15175        week: {
15176            dow: 1, // Monday is the first day of the week.
15177            doy: 4, // The week that contains Jan 4th is the first week of the year.
15178        },
15179    });
15180
15181    //! moment.js locale configuration
15182
15183    var months$9 = [
15184            'جنوري',
15185            'فيبروري',
15186            'مارچ',
15187            'اپريل',
15188            'مئي',
15189            'جون',
15190            'جولاءِ',
15191            'آگسٽ',
15192            'سيپٽمبر',
15193            'آڪٽوبر',
15194            'نومبر',
15195            'ڊسمبر',
15196        ],
15197        days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
15198
15199    hooks.defineLocale('sd', {
15200        months: months$9,
15201        monthsShort: months$9,
15202        weekdays: days$1,
15203        weekdaysShort: days$1,
15204        weekdaysMin: days$1,
15205        longDateFormat: {
15206            LT: 'HH:mm',
15207            LTS: 'HH:mm:ss',
15208            L: 'DD/MM/YYYY',
15209            LL: 'D MMMM YYYY',
15210            LLL: 'D MMMM YYYY HH:mm',
15211            LLLL: 'dddd، D MMMM YYYY HH:mm',
15212        },
15213        meridiemParse: /صبح|شام/,
15214        isPM: function (input) {
15215            return 'شام' === input;
15216        },
15217        meridiem: function (hour, minute, isLower) {
15218            if (hour < 12) {
15219                return 'صبح';
15220            }
15221            return 'شام';
15222        },
15223        calendar: {
15224            sameDay: '[اڄ] LT',
15225            nextDay: '[سڀاڻي] LT',
15226            nextWeek: 'dddd [اڳين هفتي تي] LT',
15227            lastDay: '[ڪالهه] LT',
15228            lastWeek: '[گزريل هفتي] dddd [تي] LT',
15229            sameElse: 'L',
15230        },
15231        relativeTime: {
15232            future: '%s پوء',
15233            past: '%s اڳ',
15234            s: 'چند سيڪنڊ',
15235            ss: '%d سيڪنڊ',
15236            m: 'هڪ منٽ',
15237            mm: '%d منٽ',
15238            h: 'هڪ ڪلاڪ',
15239            hh: '%d ڪلاڪ',
15240            d: 'هڪ ڏينهن',
15241            dd: '%d ڏينهن',
15242            M: 'هڪ مهينو',
15243            MM: '%d مهينا',
15244            y: 'هڪ سال',
15245            yy: '%d سال',
15246        },
15247        preparse: function (string) {
15248            return string.replace(/،/g, ',');
15249        },
15250        postformat: function (string) {
15251            return string.replace(/,/g, '،');
15252        },
15253        week: {
15254            dow: 1, // Monday is the first day of the week.
15255            doy: 4, // The week that contains Jan 4th is the first week of the year.
15256        },
15257    });
15258
15259    //! moment.js locale configuration
15260
15261    hooks.defineLocale('se', {
15262        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(
15263            '_'
15264        ),
15265        monthsShort:
15266            'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
15267        weekdays:
15268            'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
15269                '_'
15270            ),
15271        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
15272        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
15273        longDateFormat: {
15274            LT: 'HH:mm',
15275            LTS: 'HH:mm:ss',
15276            L: 'DD.MM.YYYY',
15277            LL: 'MMMM D. [b.] YYYY',
15278            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
15279            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
15280        },
15281        calendar: {
15282            sameDay: '[otne ti] LT',
15283            nextDay: '[ihttin ti] LT',
15284            nextWeek: 'dddd [ti] LT',
15285            lastDay: '[ikte ti] LT',
15286            lastWeek: '[ovddit] dddd [ti] LT',
15287            sameElse: 'L',
15288        },
15289        relativeTime: {
15290            future: '%s geažes',
15291            past: 'maŋit %s',
15292            s: 'moadde sekunddat',
15293            ss: '%d sekunddat',
15294            m: 'okta minuhta',
15295            mm: '%d minuhtat',
15296            h: 'okta diimmu',
15297            hh: '%d diimmut',
15298            d: 'okta beaivi',
15299            dd: '%d beaivvit',
15300            M: 'okta mánnu',
15301            MM: '%d mánut',
15302            y: 'okta jahki',
15303            yy: '%d jagit',
15304        },
15305        dayOfMonthOrdinalParse: /\d{1,2}\./,
15306        ordinal: '%d.',
15307        week: {
15308            dow: 1, // Monday is the first day of the week.
15309            doy: 4, // The week that contains Jan 4th is the first week of the year.
15310        },
15311    });
15312
15313    //! moment.js locale configuration
15314
vendor: 16,384 bytes, lines 15315-15727
15315    /*jshint -W100*/
15316    hooks.defineLocale('si', {
15317        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
15318            '_'
15319        ),
15320        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
15321            '_'
15322        ),
15323        weekdays:
15324            'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
15325                '_'
15326            ),
15327        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
15328        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
15329        weekdaysParseExact: true,
15330        longDateFormat: {
15331            LT: 'a h:mm',
15332            LTS: 'a h:mm:ss',
15333            L: 'YYYY/MM/DD',
15334            LL: 'YYYY MMMM D',
15335            LLL: 'YYYY MMMM D, a h:mm',
15336            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
15337        },
15338        calendar: {
15339            sameDay: '[අද] LT[ට]',
15340            nextDay: '[හෙට] LT[ට]',
15341            nextWeek: 'dddd LT[à¶§]',
15342            lastDay: '[ඊයේ] LT[ට]',
15343            lastWeek: '[පසුගිය] dddd LT[ට]',
15344            sameElse: 'L',
15345        },
15346        relativeTime: {
15347            future: '%sකින්',
15348            past: '%sකට පෙර',
15349            s: 'තත්පර කිහිපය',
15350            ss: 'තත්පර %d',
15351            m: 'මිනිත්තුව',
15352            mm: 'මිනිත්තු %d',
15353            h: 'පැය',
15354            hh: 'පැය %d',
15355            d: 'දිනය',
15356            dd: 'දින %d',
15357            M: 'මාසය',
15358            MM: 'මාස %d',
15359            y: 'වසර',
15360            yy: 'වසර %d',
15361        },
15362        dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
15363        ordinal: function (number) {
15364            return number + ' වැනි';
15365        },
15366        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
15367        isPM: function (input) {
15368            return input === 'ප.ව.' || input === 'පස් වරු';
15369        },
15370        meridiem: function (hours, minutes, isLower) {
15371            if (hours > 11) {
15372                return isLower ? 'ප.ව.' : 'පස් වරු';
15373            } else {
15374                return isLower ? 'පෙ.ව.' : 'පෙර වරු';
15375            }
15376        },
15377    });
15378
15379    //! moment.js locale configuration
15380
15381    var months$a =
15382            'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
15383                '_'
15384            ),
15385        monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
15386    function plural$5(n) {
15387        return n > 1 && n < 5;
15388    }
15389    function translate$9(number, withoutSuffix, key, isFuture) {
15390        var result = number + ' ';
15391        switch (key) {
15392            case 's': // a few seconds / in a few seconds / a few seconds ago
15393                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
15394            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
15395                if (withoutSuffix || isFuture) {
15396                    return result + (plural$5(number) ? 'sekundy' : 'sekúnd');
15397                } else {
15398                    return result + 'sekundami';
15399                }
15400            case 'm': // a minute / in a minute / a minute ago
15401                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
15402            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
15403                if (withoutSuffix || isFuture) {
15404                    return result + (plural$5(number) ? 'minúty' : 'minút');
15405                } else {
15406                    return result + 'minútami';
15407                }
15408            case 'h': // an hour / in an hour / an hour ago
15409                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
15410            case 'hh': // 9 hours / in 9 hours / 9 hours ago
15411                if (withoutSuffix || isFuture) {
15412                    return result + (plural$5(number) ? 'hodiny' : 'hodín');
15413                } else {
15414                    return result + 'hodinami';
15415                }
15416            case 'd': // a day / in a day / a day ago
15417                return withoutSuffix || isFuture ? 'deň' : 'dňom';
15418            case 'dd': // 9 days / in 9 days / 9 days ago
15419                if (withoutSuffix || isFuture) {
15420                    return result + (plural$5(number) ? 'dni' : 'dní');
15421                } else {
15422                    return result + 'dňami';
15423                }
15424            case 'M': // a month / in a month / a month ago
15425                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
15426            case 'MM': // 9 months / in 9 months / 9 months ago
15427                if (withoutSuffix || isFuture) {
15428                    return result + (plural$5(number) ? 'mesiace' : 'mesiacov');
15429                } else {
15430                    return result + 'mesiacmi';
15431                }
15432            case 'y': // a year / in a year / a year ago
15433                return withoutSuffix || isFuture ? 'rok' : 'rokom';
15434            case 'yy': // 9 years / in 9 years / 9 years ago
15435                if (withoutSuffix || isFuture) {
15436                    return result + (plural$5(number) ? 'roky' : 'rokov');
15437                } else {
15438                    return result + 'rokmi';
15439                }
15440        }
15441    }
15442
15443    hooks.defineLocale('sk', {
15444        months: months$a,
15445        monthsShort: monthsShort$7,
15446        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
15447        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
15448        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
15449        longDateFormat: {
15450            LT: 'H:mm',
15451            LTS: 'H:mm:ss',
15452            L: 'DD.MM.YYYY',
15453            LL: 'D. MMMM YYYY',
15454            LLL: 'D. MMMM YYYY H:mm',
15455            LLLL: 'dddd D. MMMM YYYY H:mm',
15456        },
15457        calendar: {
15458            sameDay: '[dnes o] LT',
15459            nextDay: '[zajtra o] LT',
15460            nextWeek: function () {
15461                switch (this.day()) {
15462                    case 0:
15463                        return '[v nedeľu o] LT';
15464                    case 1:
15465                    case 2:
15466                        return '[v] dddd [o] LT';
15467                    case 3:
15468                        return '[v stredu o] LT';
15469                    case 4:
15470                        return '[vo štvrtok o] LT';
15471                    case 5:
15472                        return '[v piatok o] LT';
15473                    case 6:
15474                        return '[v sobotu o] LT';
15475                }
15476            },
15477            lastDay: '[včera o] LT',
15478            lastWeek: function () {
15479                switch (this.day()) {
15480                    case 0:
15481                        return '[minulú nedeľu o] LT';
15482                    case 1:
15483                    case 2:
15484                        return '[minulý] dddd [o] LT';
15485                    case 3:
15486                        return '[minulú stredu o] LT';
15487                    case 4:
15488                    case 5:
15489                        return '[minulý] dddd [o] LT';
15490                    case 6:
15491                        return '[minulú sobotu o] LT';
15492                }
15493            },
15494            sameElse: 'L',
15495        },
15496        relativeTime: {
15497            future: 'za %s',
15498            past: 'pred %s',
15499            s: translate$9,
15500            ss: translate$9,
15501            m: translate$9,
15502            mm: translate$9,
15503            h: translate$9,
15504            hh: translate$9,
15505            d: translate$9,
15506            dd: translate$9,
15507            M: translate$9,
15508            MM: translate$9,
15509            y: translate$9,
15510            yy: translate$9,
15511        },
15512        dayOfMonthOrdinalParse: /\d{1,2}\./,
15513        ordinal: '%d.',
15514        week: {
15515            dow: 1, // Monday is the first day of the week.
15516            doy: 4, // The week that contains Jan 4th is the first week of the year.
15517        },
15518    });
15519
15520    //! moment.js locale configuration
15521
15522    function processRelativeTime$7(number, withoutSuffix, key, isFuture) {
15523        var result = number + ' ';
15524        switch (key) {
15525            case 's':
15526                return withoutSuffix || isFuture
15527                    ? 'nekaj sekund'
15528                    : 'nekaj sekundami';
15529            case 'ss':
15530                if (number === 1) {
15531                    result += withoutSuffix ? 'sekundo' : 'sekundi';
15532                } else if (number === 2) {
15533                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
15534                } else if (number < 5) {
15535                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
15536                } else {
15537                    result += 'sekund';
15538                }
15539                return result;
15540            case 'm':
15541                return withoutSuffix ? 'ena minuta' : 'eno minuto';
15542            case 'mm':
15543                if (number === 1) {
15544                    result += withoutSuffix ? 'minuta' : 'minuto';
15545                } else if (number === 2) {
15546                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
15547                } else if (number < 5) {
15548                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';
15549                } else {
15550                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';
15551                }
15552                return result;
15553            case 'h':
15554                return withoutSuffix ? 'ena ura' : 'eno uro';
15555            case 'hh':
15556                if (number === 1) {
15557                    result += withoutSuffix ? 'ura' : 'uro';
15558                } else if (number === 2) {
15559                    result += withoutSuffix || isFuture ? 'uri' : 'urama';
15560                } else if (number < 5) {
15561                    result += withoutSuffix || isFuture ? 'ure' : 'urami';
15562                } else {
15563                    result += withoutSuffix || isFuture ? 'ur' : 'urami';
15564                }
15565                return result;
15566            case 'd':
15567                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
15568            case 'dd':
15569                if (number === 1) {
15570                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';
15571                } else if (number === 2) {
15572                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
15573                } else {
15574                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
15575                }
15576                return result;
15577            case 'M':
15578                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
15579            case 'MM':
15580                if (number === 1) {
15581                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
15582                } else if (number === 2) {
15583                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
15584                } else if (number < 5) {
15585                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
15586                } else {
15587                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
15588                }
15589                return result;
15590            case 'y':
15591                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
15592            case 'yy':
15593                if (number === 1) {
15594                    result += withoutSuffix || isFuture ? 'leto' : 'letom';
15595                } else if (number === 2) {
15596                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';
15597                } else if (number < 5) {
15598                    result += withoutSuffix || isFuture ? 'leta' : 'leti';
15599                } else {
15600                    result += withoutSuffix || isFuture ? 'let' : 'leti';
15601                }
15602                return result;
15603        }
15604    }
15605
15606    hooks.defineLocale('sl', {
15607        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
15608            '_'
15609        ),
15610        monthsShort:
15611            'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
15612                '_'
15613            ),
15614        monthsParseExact: true,
15615        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
15616        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
15617        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
15618        weekdaysParseExact: true,
15619        longDateFormat: {
15620            LT: 'H:mm',
15621            LTS: 'H:mm:ss',
15622            L: 'DD. MM. YYYY',
15623            LL: 'D. MMMM YYYY',
15624            LLL: 'D. MMMM YYYY H:mm',
15625            LLLL: 'dddd, D. MMMM YYYY H:mm',
15626        },
15627        calendar: {
15628            sameDay: '[danes ob] LT',
15629            nextDay: '[jutri ob] LT',
15630
15631            nextWeek: function () {
15632                switch (this.day()) {
15633                    case 0:
15634                        return '[v] [nedeljo] [ob] LT';
15635                    case 3:
15636                        return '[v] [sredo] [ob] LT';
15637                    case 6:
15638                        return '[v] [soboto] [ob] LT';
15639                    case 1:
15640                    case 2:
15641                    case 4:
15642                    case 5:
15643                        return '[v] dddd [ob] LT';
15644                }
15645            },
15646            lastDay: '[včeraj ob] LT',
15647            lastWeek: function () {
15648                switch (this.day()) {
15649                    case 0:
15650                        return '[prejšnjo] [nedeljo] [ob] LT';
15651                    case 3:
15652                        return '[prejšnjo] [sredo] [ob] LT';
15653                    case 6:
15654                        return '[prejšnjo] [soboto] [ob] LT';
15655                    case 1:
15656                    case 2:
15657                    case 4:
15658                    case 5:
15659                        return '[prejšnji] dddd [ob] LT';
15660                }
15661            },
15662            sameElse: 'L',
15663        },
15664        relativeTime: {
15665            future: 'čez %s',
15666            past: 'pred %s',
15667            s: processRelativeTime$7,
15668            ss: processRelativeTime$7,
15669            m: processRelativeTime$7,
15670            mm: processRelativeTime$7,
15671            h: processRelativeTime$7,
15672            hh: processRelativeTime$7,
15673            d: processRelativeTime$7,
15674            dd: processRelativeTime$7,
15675            M: processRelativeTime$7,
15676            MM: processRelativeTime$7,
15677            y: processRelativeTime$7,
15678            yy: processRelativeTime$7,
15679        },
15680        dayOfMonthOrdinalParse: /\d{1,2}\./,
15681        ordinal: '%d.',
15682        week: {
15683            dow: 1, // Monday is the first day of the week.
15684            doy: 7, // The week that contains Jan 7th is the first week of the year.
15685        },
15686    });
15687
15688    //! moment.js locale configuration
15689
15690    hooks.defineLocale('sq', {
15691        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
15692            '_'
15693        ),
15694        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
15695        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
15696            '_'
15697        ),
15698        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
15699        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
15700        weekdaysParseExact: true,
15701        meridiemParse: /PD|MD/,
15702        isPM: function (input) {
15703            return input.charAt(0) === 'M';
15704        },
15705        meridiem: function (hours, minutes, isLower) {
15706            return hours < 12 ? 'PD' : 'MD';
15707        },
15708        longDateFormat: {
15709            LT: 'HH:mm',
15710            LTS: 'HH:mm:ss',
15711            L: 'DD/MM/YYYY',
15712            LL: 'D MMMM YYYY',
15713            LLL: 'D MMMM YYYY HH:mm',
15714            LLLL: 'dddd, D MMMM YYYY HH:mm',
15715        },
15716        calendar: {
15717            sameDay: '[Sot në] LT',
15718            nextDay: '[Nesër në] LT',
15719            nextWeek: 'dddd [në] LT',
15720            lastDay: '[Dje në] LT',
15721            lastWeek: 'dddd [e kaluar në] LT',
15722            sameElse: 'L',
15723        },
15724        relativeTime: {
15725            future: 'në %s',
15726            past: '%s më parë',
15727          
vendor: 10,129 bytes, lines 15727-15998
15727  s: 'disa sekonda',
15728            ss: '%d sekonda',
15729            m: 'një minutë',
15730            mm: '%d minuta',
15731            h: 'një orë',
15732            hh: '%d orë',
15733            d: 'një ditë',
15734            dd: '%d ditë',
15735            M: 'një muaj',
15736            MM: '%d muaj',
15737            y: 'një vit',
15738            yy: '%d vite',
15739        },
15740        dayOfMonthOrdinalParse: /\d{1,2}\./,
15741        ordinal: '%d.',
15742        week: {
15743            dow: 1, // Monday is the first day of the week.
15744            doy: 4, // The week that contains Jan 4th is the first week of the year.
15745        },
15746    });
15747
15748    //! moment.js locale configuration
15749
15750    var translator$1 = {
15751        words: {
15752            //Different grammatical cases
15753            ss: ['секунда', 'секунде', 'секунди'],
15754            m: ['један минут', 'једног минута'],
15755            mm: ['минут', 'минута', 'минута'],
15756            h: ['један сат', 'једног сата'],
15757            hh: ['сат', 'сата', 'сати'],
15758            d: ['један дан', 'једног дана'],
15759            dd: ['дан', 'дана', 'дана'],
15760            M: ['један месец', 'једног месеца'],
15761            MM: ['месец', 'месеца', 'месеци'],
15762            y: ['једну годину', 'једне године'],
15763            yy: ['годину', 'године', 'година'],
15764        },
15765        correctGrammaticalCase: function (number, wordKey) {
15766            if (
15767                number % 10 >= 1 &&
15768                number % 10 <= 4 &&
15769                (number % 100 < 10 || number % 100 >= 20)
15770            ) {
15771                return number % 10 === 1 ? wordKey[0] : wordKey[1];
15772            }
15773            return wordKey[2];
15774        },
15775        translate: function (number, withoutSuffix, key, isFuture) {
15776            var wordKey = translator$1.words[key],
15777                word;
15778
15779            if (key.length === 1) {
15780                // Nominativ
15781                if (key === 'y' && withoutSuffix) return 'једна година';
15782                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
15783            }
15784
15785            word = translator$1.correctGrammaticalCase(number, wordKey);
15786            // Nominativ
15787            if (key === 'yy' && withoutSuffix && word === 'годину') {
15788                return number + ' година';
15789            }
15790
15791            return number + ' ' + word;
15792        },
15793    };
15794
15795    hooks.defineLocale('sr-cyrl', {
15796        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
15797            '_'
15798        ),
15799        monthsShort:
15800            'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
15801        monthsParseExact: true,
15802        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
15803        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
15804        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
15805        weekdaysParseExact: true,
15806        longDateFormat: {
15807            LT: 'H:mm',
15808            LTS: 'H:mm:ss',
15809            L: 'D. M. YYYY.',
15810            LL: 'D. MMMM YYYY.',
15811            LLL: 'D. MMMM YYYY. H:mm',
15812            LLLL: 'dddd, D. MMMM YYYY. H:mm',
15813        },
15814        calendar: {
15815            sameDay: '[данас у] LT',
15816            nextDay: '[сутра у] LT',
15817            nextWeek: function () {
15818                switch (this.day()) {
15819                    case 0:
15820                        return '[у] [недељу] [у] LT';
15821                    case 3:
15822                        return '[у] [среду] [у] LT';
15823                    case 6:
15824                        return '[у] [суботу] [у] LT';
15825                    case 1:
15826                    case 2:
15827                    case 4:
15828                    case 5:
15829                        return '[у] dddd [у] LT';
15830                }
15831            },
15832            lastDay: '[јуче у] LT',
15833            lastWeek: function () {
15834                var lastWeekDays = [
15835                    '[прошле] [недеље] [у] LT',
15836                    '[прошлог] [понедељка] [у] LT',
15837                    '[прошлог] [уторка] [у] LT',
15838                    '[прошле] [среде] [у] LT',
15839                    '[прошлог] [четвртка] [у] LT',
15840                    '[прошлог] [петка] [у] LT',
15841                    '[прошле] [суботе] [у] LT',
15842                ];
15843                return lastWeekDays[this.day()];
15844            },
15845            sameElse: 'L',
15846        },
15847        relativeTime: {
15848            future: 'за %s',
15849            past: 'пре %s',
15850            s: 'неколико секунди',
15851            ss: translator$1.translate,
15852            m: translator$1.translate,
15853            mm: translator$1.translate,
15854            h: translator$1.translate,
15855            hh: translator$1.translate,
15856            d: translator$1.translate,
15857            dd: translator$1.translate,
15858            M: translator$1.translate,
15859            MM: translator$1.translate,
15860            y: translator$1.translate,
15861            yy: translator$1.translate,
15862        },
15863        dayOfMonthOrdinalParse: /\d{1,2}\./,
15864        ordinal: '%d.',
15865        week: {
15866            dow: 1, // Monday is the first day of the week.
15867            doy: 7, // The week that contains Jan 1st is the first week of the year.
15868        },
15869    });
15870
15871    //! moment.js locale configuration
15872
15873    var translator$2 = {
15874        words: {
15875            //Different grammatical cases
15876            ss: ['sekunda', 'sekunde', 'sekundi'],
15877            m: ['jedan minut', 'jednog minuta'],
15878            mm: ['minut', 'minuta', 'minuta'],
15879            h: ['jedan sat', 'jednog sata'],
15880            hh: ['sat', 'sata', 'sati'],
15881            d: ['jedan dan', 'jednog dana'],
15882            dd: ['dan', 'dana', 'dana'],
15883            M: ['jedan mesec', 'jednog meseca'],
15884            MM: ['mesec', 'meseca', 'meseci'],
15885            y: ['jednu godinu', 'jedne godine'],
15886            yy: ['godinu', 'godine', 'godina'],
15887        },
15888        correctGrammaticalCase: function (number, wordKey) {
15889            if (
15890                number % 10 >= 1 &&
15891                number % 10 <= 4 &&
15892                (number % 100 < 10 || number % 100 >= 20)
15893            ) {
15894                return number % 10 === 1 ? wordKey[0] : wordKey[1];
15895            }
15896            return wordKey[2];
15897        },
15898        translate: function (number, withoutSuffix, key, isFuture) {
15899            var wordKey = translator$2.words[key],
15900                word;
15901
15902            if (key.length === 1) {
15903                // Nominativ
15904                if (key === 'y' && withoutSuffix) return 'jedna godina';
15905                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
15906            }
15907
15908            word = translator$2.correctGrammaticalCase(number, wordKey);
15909            // Nominativ
15910            if (key === 'yy' && withoutSuffix && word === 'godinu') {
15911                return number + ' godina';
15912            }
15913
15914            return number + ' ' + word;
15915        },
15916    };
15917
15918    hooks.defineLocale('sr', {
15919        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
15920            '_'
15921        ),
15922        monthsShort:
15923            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
15924        monthsParseExact: true,
15925        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
15926            '_'
15927        ),
15928        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
15929        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
15930        weekdaysParseExact: true,
15931        longDateFormat: {
15932            LT: 'H:mm',
15933            LTS: 'H:mm:ss',
15934            L: 'D. M. YYYY.',
15935            LL: 'D. MMMM YYYY.',
15936            LLL: 'D. MMMM YYYY. H:mm',
15937            LLLL: 'dddd, D. MMMM YYYY. H:mm',
15938        },
15939        calendar: {
15940            sameDay: '[danas u] LT',
15941            nextDay: '[sutra u] LT',
15942            nextWeek: function () {
15943                switch (this.day()) {
15944                    case 0:
15945                        return '[u] [nedelju] [u] LT';
15946                    case 3:
15947                        return '[u] [sredu] [u] LT';
15948                    case 6:
15949                        return '[u] [subotu] [u] LT';
15950                    case 1:
15951                    case 2:
15952                    case 4:
15953                    case 5:
15954                        return '[u] dddd [u] LT';
15955                }
15956            },
15957            lastDay: '[juče u] LT',
15958            lastWeek: function () {
15959                var lastWeekDays = [
15960                    '[prošle] [nedelje] [u] LT',
15961                    '[prošlog] [ponedeljka] [u] LT',
15962                    '[prošlog] [utorka] [u] LT',
15963                    '[prošle] [srede] [u] LT',
15964                    '[prošlog] [četvrtka] [u] LT',
15965                    '[prošlog] [petka] [u] LT',
15966                    '[prošle] [subote] [u] LT',
15967                ];
15968                return lastWeekDays[this.day()];
15969            },
15970            sameElse: 'L',
15971        },
15972        relativeTime: {
15973            future: 'za %s',
15974            past: 'pre %s',
15975            s: 'nekoliko sekundi',
15976            ss: translator$2.translate,
15977            m: translator$2.translate,
15978            mm: translator$2.translate,
15979            h: translator$2.translate,
15980            hh: translator$2.translate,
15981            d: translator$2.translate,
15982            dd: translator$2.translate,
15983            M: translator$2.translate,
15984            MM: translator$2.translate,
15985            y: translator$2.translate,
15986            yy: translator$2.translate,
15987        },
15988        dayOfMonthOrdinalParse: /\d{1,2}\./,
15989        ordinal: '%d.',
15990        week: {
15991            dow: 1, // Monday is the first day of the week.
15992            doy: 7, // The week that contains Jan 7th is the first week of the year.
15993        },
15994    });
15995
15996    //! moment.js locale configuration
15997
15998    hooks.defineLocale('ss', {
15999        months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
16000            '_'
16001        ),
16002        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
16003        weekdays:
16004            'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
16005                '_'
16006            ),
16007        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
16008        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
16009        weekdaysParseExact: true,
16010        longDateFormat: {
16011            LT: 'h:mm A',
16012            LTS: 'h:mm:ss A',
16013            L: 'DD/MM/YYYY',
16014            LL: 'D MMMM YYYY',
16015            LLL: 'D MMMM YYYY h:mm A',
16016            LLLL: 'dddd, D MMMM YYYY h:mm A',
16017        },
16018        calendar: {
16019            sameDay: '[Namuhla nga] LT',
16020            nextDay: '[Kusasa nga] LT',
16021            nextWeek: 'dddd [nga] LT',
16022            lastDay: '[Itolo nga] LT',
16023            lastWeek: 'dddd [leliphelile] [nga] LT',
16024            sameElse: 'L',
16025        },
16026        relativeTime: {
16027            future: 'nga %s',
16028            past: 'wenteka nga %s',
16029            s: 'emizuzwana lomcane',
16030            ss: '%d mzuzwana',
16031            m: 'umzuzu',
16032            mm: '%d emizuzu',
16033            h: 'lihora',
16034            hh: '%d emahora',
16035            d: 'lilanga',
16036            dd: '%d emalanga',
16037            M: 'inyanga',
16038            MM: '%d tinyanga',
16039            y: 'umnyaka',
16040            yy: '%d iminyaka',
16041        },
16042        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
16043        meridiem: function (hours, minutes, isLower) {
16044            if (hours < 11) {
16045                return 'ekuseni';
16046            } else if (hours < 15) {
16047                return 'emini';
16048            } else if (hours < 19) {
16049                return 'entsambama';
16050            } else {
16051                return 'ebusuku';
16052            }
16053        },
16054        meridiemHour: function (hour, meridiem) {
16055            if (hour === 12) {
16056                hour = 0;
16057            }
16058            if (meridiem === 'ekuseni') {
16059                return hour;
16060            } else if (meridiem === 'emini') {
16061                return hour >= 11 ? hour : hour + 12;
16062            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
16063                if (hour === 0) {
16064                    return 0;
16065                }
16066                return hour + 12;
16067            }
16068        },
16069        dayOfMonthOrdinalParse: /\d{1,2}/,
16070        ordinal: '%d',
16071        week: {
16072            dow: 1, // Monday is the first day of the week.
16073            doy: 4, // The week that contains Jan 4th is the first week of the year.
16074        },
16075    });
16076
16077    //! moment.js locale configuration
16078
16079    hooks.defineLocale('sv', {
16080        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
16081            '_'
16082        ),
16083        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
16084        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
16085        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
16086        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
16087        longDateFormat: {
16088            LT: 'HH:mm',
16089            LTS: 'HH:mm:ss',
16090            L: 'YYYY-MM-DD',
16091            LL: 'D MMMM YYYY',
16092            LLL: 'D MMMM YYYY [kl.] HH:mm',
16093            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
16094            lll: 'D MMM YYYY HH:mm',
16095            llll: 'ddd D MMM YYYY HH:mm',
16096        },
16097        calendar: {
16098            sameDay: '[Idag] LT',
16099            nextDay: '[Imorgon] LT',
16100            lastDay: '[Igår] LT',
16101            nextWeek: '[PÃ¥] dddd LT',
16102            lastWeek: '[I] dddd[s] LT',
16103            sameElse: 'L',
16104        },
16105        relativeTime: {
16106            future: 'om %s',
16107            past: 'för %s sedan',
16108            s: 'några sekunder',
16109            ss: '%d sekunder',
16110            m: 'en minut',
16111            mm: '%d minuter',
16112            h: 'en timme',
16113            hh: '%d timmar',
16114            d: 'en dag',
16115            dd: '%d dagar',
16116            M: 'en månad',
16117            MM: '%d månader',
16118            y: 'ett år',
16119            yy: '%d år',
16120        },
16121        dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
16122        ordinal: function (number) {
16123            var b = number % 10,
16124                output =
16125                    ~~((number % 100) / 10) === 1
16126                        ? ':e'
16127                        : b === 1
16128                        ? ':a'
16129                        : b === 2
16130                        ? ':a'
16131                        : b === 3
16132                        ? ':e'
16133                        : ':e';
16134            return number + output;
16135        },
16136        week: {
16137            dow: 1, // Monday is the first day of the week.
16138            doy: 4, // The week that contains Jan 4th is the first week of the year.
16139        },
16140    });
16141
16142    //! moment.js locale configuration
16143
16144    hooks.defineLocale('sw', {
16145        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
16146            '_'
16147        ),
16148        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
16149        weekdays:
16150            'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
16151                '_'
16152            ),
16153        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
16154        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
16155        weekdaysParseExact: true,
16156        longDateFormat: {
16157            LT: 'hh:mm A',
16158            LTS: 'HH:mm:ss',
16159            L: 'DD.MM.YYYY',
16160            LL: 'D MMMM YYYY',
16161            LLL: 'D MMMM YYYY HH:mm',
16162            LLLL: 'dddd, D MMMM YYYY HH:mm',
16163        },
16164        calendar: {
16165            sameDay: '[leo saa] LT',
16166            nextDay: '[kesho saa] LT',
16167            nextWeek: '[wiki ijayo] dddd [saat] LT',
16168            lastDay: '[jana] LT',
16169            lastWeek: '[wiki iliyopita] dddd [saat] LT',
16170            sameElse: 'L',
16171        },
16172        relativeTime: {
16173            future: '%s baadaye',
16174            past: 'tokea %s',
16175            s: 'hivi punde',
16176            ss: 'sekunde %d',
16177            m: 'dakika moja',
16178            mm: 'dakika %d',
16179            h: 'saa limoja',
16180            hh: 'masaa %d',
16181            d: 'siku moja',
16182            dd: 'siku %d',
16183            M: 'mwezi mmoja',
16184            MM: 'miezi %d',
16185            y: 'mwaka mmoja',
16186            yy: 'miaka %d',
16187        },
16188        week: {
16189            dow: 1, // Monday is the first day of the week.
16190            doy: 7, // The week that contains Jan 7th is the first week of the year.
16191        },
16192    });
16193
16194    //! moment.js locale configuration
16195
16196    var symbolMap$g = {
16197            1: '௧',
16198            2: '௨',
16199            3: '௩',
16200            4: '௪',
16201            5: '௫',
16202            6: '௬',
16203            7: '௭',
16204            8: '௮',
16205            9: '௯',
16206            0: '௦',
16207        },
16208        numberMap$f = {
16209            '௧': '1',
16210            '௨': '2',
16211            '௩': '3',
16212            '௪': '4',
16213            '௫': '5',
16214            '௬': '6',
16215            '௭': '7',
16216            '௮': '8',
16217            '௯': '9',
16218            '௦': '0',
16219        };
16220
16221    hooks.defineLocale('ta', {
16222        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்ப
vendor: 14,800 bytes, lines 16222-16595
16222ர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16223            '_'
16224        ),
16225        monthsShort:
16226            'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16227                '_'
16228            ),
16229        weekdays:
16230            'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
16231                '_'
16232            ),
16233        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
16234            '_'
16235        ),
16236        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
16237        longDateFormat: {
16238            LT: 'HH:mm',
16239            LTS: 'HH:mm:ss',
16240            L: 'DD/MM/YYYY',
16241            LL: 'D MMMM YYYY',
16242            LLL: 'D MMMM YYYY, HH:mm',
16243            LLLL: 'dddd, D MMMM YYYY, HH:mm',
16244        },
16245        calendar: {
16246            sameDay: '[இன்று] LT',
16247            nextDay: '[நாளை] LT',
16248            nextWeek: 'dddd, LT',
16249            lastDay: '[நேற்று] LT',
16250            lastWeek: '[கடந்த வாரம்] dddd, LT',
16251            sameElse: 'L',
16252        },
16253        relativeTime: {
16254            future: '%s இல்',
16255            past: '%s முன்',
16256            s: 'ஒரு சில விநாடிகள்',
16257            ss: '%d விநாடிகள்',
16258            m: 'ஒரு நிமிடம்',
16259            mm: '%d நிமிடங்கள்',
16260            h: 'ஒரு மணி நேரம்',
16261            hh: '%d மணி நேரம்',
16262            d: 'ஒரு நாள்',
16263            dd: '%d நாட்கள்',
16264            M: 'ஒரு மாதம்',
16265            MM: '%d மாதங்கள்',
16266            y: 'ஒரு வருடம்',
16267            yy: '%d ஆண்டுகள்',
16268        },
16269        dayOfMonthOrdinalParse: /\d{1,2}வது/,
16270        ordinal: function (number) {
16271            return number + 'வது';
16272        },
16273        preparse: function (string) {
16274            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
16275                return numberMap$f[match];
16276            });
16277        },
16278        postformat: function (string) {
16279            return string.replace(/\d/g, function (match) {
16280                return symbolMap$g[match];
16281            });
16282        },
16283        // refer http://ta.wikipedia.org/s/1er1
16284        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
16285        meridiem: function (hour, minute, isLower) {
16286            if (hour < 2) {
16287                return ' யாமம்';
16288            } else if (hour < 6) {
16289                return ' வைகறை'; // வைகறை
16290            } else if (hour < 10) {
16291                return ' காலை'; // காலை
16292            } else if (hour < 14) {
16293                return ' நண்பகல்'; // நண்பகல்
16294            } else if (hour < 18) {
16295                return ' எற்பாடு'; // எற்பாடு
16296            } else if (hour < 22) {
16297                return ' மாலை'; // மாலை
16298            } else {
16299                return ' யாமம்';
16300            }
16301        },
16302        meridiemHour: function (hour, meridiem) {
16303            if (hour === 12) {
16304                hour = 0;
16305            }
16306            if (meridiem === 'யாமம்') {
16307                return hour < 2 ? hour : hour + 12;
16308            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
16309                return hour;
16310            } else if (meridiem === 'நண்பகல்') {
16311                return hour >= 10 ? hour : hour + 12;
16312            } else {
16313                return hour + 12;
16314            }
16315        },
16316        week: {
16317            dow: 0, // Sunday is the first day of the week.
16318            doy: 6, // The week that contains Jan 6th is the first week of the year.
16319        },
16320    });
16321
16322    //! moment.js locale configuration
16323
16324    hooks.defineLocale('te', {
16325        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
16326            '_'
16327        ),
16328        monthsShort:
16329            'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
16330                '_'
16331            ),
16332        monthsParseExact: true,
16333        weekdays:
16334            'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
16335                '_'
16336            ),
16337        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
16338        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
16339        longDateFormat: {
16340            LT: 'A h:mm',
16341            LTS: 'A h:mm:ss',
16342            L: 'DD/MM/YYYY',
16343            LL: 'D MMMM YYYY',
16344            LLL: 'D MMMM YYYY, A h:mm',
16345            LLLL: 'dddd, D MMMM YYYY, A h:mm',
16346        },
16347        calendar: {
16348            sameDay: '[నేడు] LT',
16349            nextDay: '[రేపు] LT',
16350            nextWeek: 'dddd, LT',
16351            lastDay: '[నిన్న] LT',
16352            lastWeek: '[గత] dddd, LT',
16353            sameElse: 'L',
16354        },
16355        relativeTime: {
16356            future: '%s లో',
16357            past: '%s క్రితం',
16358            s: 'కొన్ని క్షణాలు',
16359            ss: '%d సెకన్లు',
16360            m: 'ఒక నిమిషం',
16361            mm: '%d నిమిషాలు',
16362            h: 'ఒక గంట',
16363            hh: '%d గంటలు',
16364            d: 'ఒక రోజు',
16365            dd: '%d రోజులు',
16366            M: 'ఒక నెల',
16367            MM: '%d నెలలు',
16368            y: 'ఒక సంవత్సరం',
16369            yy: '%d సంవత్సరాలు',
16370        },
16371        dayOfMonthOrdinalParse: /\d{1,2}à°µ/,
16372        ordinal: '%dà°µ',
16373        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
16374        meridiemHour: function (hour, meridiem) {
16375            if (hour === 12) {
16376                hour = 0;
16377            }
16378            if (meridiem === 'రాత్రి') {
16379                return hour < 4 ? hour : hour + 12;
16380            } else if (meridiem === 'ఉదయం') {
16381                return hour;
16382            } else if (meridiem === 'మధ్యాహ్నం') {
16383                return hour >= 10 ? hour : hour + 12;
16384            } else if (meridiem === 'సాయంత్రం') {
16385                return hour + 12;
16386            }
16387        },
16388        meridiem: function (hour, minute, isLower) {
16389            if (hour < 4) {
16390                return 'రాత్రి';
16391            } else if (hour < 10) {
16392                return 'ఉదయం';
16393            } else if (hour < 17) {
16394                return 'మధ్యాహ్నం';
16395            } else if (hour < 20) {
16396                return 'సాయంత్రం';
16397            } else {
16398                return 'రాత్రి';
16399            }
16400        },
16401        week: {
16402            dow: 0, // Sunday is the first day of the week.
16403            doy: 6, // The week that contains Jan 6th is the first week of the year.
16404        },
16405    });
16406
16407    //! moment.js locale configuration
16408
16409    hooks.defineLocale('tet', {
16410        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
16411            '_'
16412        ),
16413        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
16414        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
16415        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
16416        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
16417        longDateFormat: {
16418            LT: 'HH:mm',
16419            LTS: 'HH:mm:ss',
16420            L: 'DD/MM/YYYY',
16421            LL: 'D MMMM YYYY',
16422            LLL: 'D MMMM YYYY HH:mm',
16423            LLLL: 'dddd, D MMMM YYYY HH:mm',
16424        },
16425        calendar: {
16426            sameDay: '[Ohin iha] LT',
16427            nextDay: '[Aban iha] LT',
16428            nextWeek: 'dddd [iha] LT',
16429            lastDay: '[Horiseik iha] LT',
16430            lastWeek: 'dddd [semana kotuk] [iha] LT',
16431            sameElse: 'L',
16432        },
16433        relativeTime: {
16434            future: 'iha %s',
16435            past: '%s liuba',
16436            s: 'segundu balun',
16437            ss: 'segundu %d',
16438            m: 'minutu ida',
16439            mm: 'minutu %d',
16440            h: 'oras ida',
16441            hh: 'oras %d',
16442            d: 'loron ida',
16443            dd: 'loron %d',
16444            M: 'fulan ida',
16445            MM: 'fulan %d',
16446            y: 'tinan ida',
16447            yy: 'tinan %d',
16448        },
16449        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
16450        ordinal: function (number) {
16451            var b = number % 10,
16452                output =
16453                    ~~((number % 100) / 10) === 1
16454                        ? 'th'
16455                        : b === 1
16456                        ? 'st'
16457                        : b === 2
16458                        ? 'nd'
16459                        : b === 3
16460                        ? 'rd'
16461                        : 'th';
16462            return number + output;
16463        },
16464        week: {
16465            dow: 1, // Monday is the first day of the week.
16466            doy: 4, // The week that contains Jan 4th is the first week of the year.
16467        },
16468    });
16469
16470    //! moment.js locale configuration
16471
16472    var suffixes$3 = {
16473        0: '-ум',
16474        1: '-ум',
16475        2: '-юм',
16476        3: '-юм',
16477        4: '-ум',
16478        5: '-ум',
16479        6: '-ум',
16480        7: '-ум',
16481        8: '-ум',
16482        9: '-ум',
16483        10: '-ум',
16484        12: '-ум',
16485        13: '-ум',
16486        20: '-ум',
16487        30: '-юм',
16488        40: '-ум',
16489        50: '-ум',
16490        60: '-ум',
16491        70: '-ум',
16492        80: '-ум',
16493        90: '-ум',
16494        100: '-ум',
16495    };
16496
16497    hooks.defineLocale('tg', {
16498        months: {
16499            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
16500                '_'
16501            ),
16502            standalone:
16503                'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
16504                    '_'
16505                ),
16506        },
16507        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
16508        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
16509            '_'
16510        ),
16511        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
16512        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
16513        longDateFormat: {
16514            LT: 'HH:mm',
16515            LTS: 'HH:mm:ss',
16516            L: 'DD.MM.YYYY',
16517            LL: 'D MMMM YYYY',
16518            LLL: 'D MMMM YYYY HH:mm',
16519            LLLL: 'dddd, D MMMM YYYY HH:mm',
16520        },
16521        calendar: {
16522            sameDay: '[Имрӯз соати] LT',
16523            nextDay: '[Фардо соати] LT',
16524            lastDay: '[Дирӯз соати] LT',
16525            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
16526            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
16527            sameElse: 'L',
16528        },
16529        relativeTime: {
16530            future: 'баъди %s',
16531            past: '%s пеш',
16532            s: 'якчанд сония',
16533            m: 'як дақиқа',
16534            mm: '%d дақиқа',
16535            h: 'як соат',
16536            hh: '%d соат',
16537            d: 'як рӯз',
16538            dd: '%d рӯз',
16539            M: 'як моҳ',
16540            MM: '%d моҳ',
16541            y: 'як сол',
16542            yy: '%d сол',
16543        },
16544        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
16545        meridiemHour: function (hour, meridiem) {
16546            if (hour === 12) {
16547                hour = 0;
16548            }
16549            if (meridiem === 'шаб') {
16550                return hour < 4 ? hour : hour + 12;
16551            } else if (meridiem === 'субҳ') {
16552                return hour;
16553            } else if (meridiem === 'рӯз') {
16554                return hour >= 11 ? hour : hour + 12;
16555            } else if (meridiem === 'бегоҳ') {
16556                return hour + 12;
16557            }
16558        },
16559        meridiem: function (hour, minute, isLower) {
16560            if (hour < 4) {
16561                return 'шаб';
16562            } else if (hour < 11) {
16563                return 'субҳ';
16564            } else if (hour < 16) {
16565                return 'рӯз';
16566            } else if (hour < 19) {
16567                return 'бегоҳ';
16568            } else {
16569                return 'шаб';
16570            }
16571        },
16572        dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
16573        ordinal: function (number) {
16574            var a = number % 10,
16575                b = number >= 100 ? 100 : null;
16576            return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);
16577        },
16578        week: {
16579            dow: 1, // Monday is the first day of the week.
16580            doy: 7, // The week that contains Jan 1th is the first week of the year.
16581        },
16582    });
16583
16584    //! moment.js locale configuration
16585
16586    hooks.defineLocale('th', {
16587        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
16588            '_'
16589        ),
16590        monthsShort:
16591            'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
16592                '_'
16593            ),
16594        monthsParseExact: true,
16595        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.
vendor: 6,144 bytes, lines 16595-16772
16595split('_'),
16596        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
16597        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
16598        weekdaysParseExact: true,
16599        longDateFormat: {
16600            LT: 'H:mm',
16601            LTS: 'H:mm:ss',
16602            L: 'DD/MM/YYYY',
16603            LL: 'D MMMM YYYY',
16604            LLL: 'D MMMM YYYY เวลา H:mm',
16605            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
16606        },
16607        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
16608        isPM: function (input) {
16609            return input === 'หลังเที่ยง';
16610        },
16611        meridiem: function (hour, minute, isLower) {
16612            if (hour < 12) {
16613                return 'ก่อนเที่ยง';
16614            } else {
16615                return 'หลังเที่ยง';
16616            }
16617        },
16618        calendar: {
16619            sameDay: '[วันนี้ เวลา] LT',
16620            nextDay: '[พรุ่งนี้ เวลา] LT',
16621            nextWeek: 'dddd[หน้า เวลา] LT',
16622            lastDay: '[เมื่อวานนี้ เวลา] LT',
16623            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
16624            sameElse: 'L',
16625        },
16626        relativeTime: {
16627            future: 'อีก %s',
16628            past: '%sที่แล้ว',
16629            s: 'ไม่กี่วินาที',
16630            ss: '%d วินาที',
16631            m: '1 นาที',
16632            mm: '%d นาที',
16633            h: '1 ชั่วโมง',
16634            hh: '%d ชั่วโมง',
16635            d: '1 วัน',
16636            dd: '%d วัน',
16637            w: '1 สัปดาห์',
16638            ww: '%d สัปดาห์',
16639            M: '1 เดือน',
16640            MM: '%d เดือน',
16641            y: '1 ปี',
16642            yy: '%d ปี',
16643        },
16644    });
16645
16646    //! moment.js locale configuration
16647
16648    var suffixes$4 = {
16649        1: "'inji",
16650        5: "'inji",
16651        8: "'inji",
16652        70: "'inji",
16653        80: "'inji",
16654        2: "'nji",
16655        7: "'nji",
16656        20: "'nji",
16657        50: "'nji",
16658        3: "'ünji",
16659        4: "'ünji",
16660        100: "'ünji",
16661        6: "'njy",
16662        9: "'unjy",
16663        10: "'unjy",
16664        30: "'unjy",
16665        60: "'ynjy",
16666        90: "'ynjy",
16667    };
16668
16669    hooks.defineLocale('tk', {
16670        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
16671            '_'
16672        ),
16673        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
16674        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
16675            '_'
16676        ),
16677        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
16678        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
16679        longDateFormat: {
16680            LT: 'HH:mm',
16681            LTS: 'HH:mm:ss',
16682            L: 'DD.MM.YYYY',
16683            LL: 'D MMMM YYYY',
16684            LLL: 'D MMMM YYYY HH:mm',
16685            LLLL: 'dddd, D MMMM YYYY HH:mm',
16686        },
16687        calendar: {
16688            sameDay: '[bugün sagat] LT',
16689            nextDay: '[ertir sagat] LT',
16690            nextWeek: '[indiki] dddd [sagat] LT',
16691            lastDay: '[düýn] LT',
16692            lastWeek: '[geçen] dddd [sagat] LT',
16693            sameElse: 'L',
16694        },
16695        relativeTime: {
16696            future: '%s soň',
16697            past: '%s öň',
16698            s: 'birnäçe sekunt',
16699            m: 'bir minut',
16700            mm: '%d minut',
16701            h: 'bir sagat',
16702            hh: '%d sagat',
16703            d: 'bir gün',
16704            dd: '%d gün',
16705            M: 'bir aý',
16706            MM: '%d aý',
16707            y: 'bir ýyl',
16708            yy: '%d ýyl',
16709        },
16710        ordinal: function (number, period) {
16711            switch (period) {
16712                case 'd':
16713                case 'D':
16714                case 'Do':
16715                case 'DD':
16716                    return number;
16717                default:
16718                    if (number === 0) {
16719                        // special case for zero
16720                        return number + "'unjy";
16721                    }
16722                    var a = number % 10,
16723                        b = (number % 100) - a,
16724                        c = number >= 100 ? 100 : null;
16725                    return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);
16726            }
16727        },
16728        week: {
16729            dow: 1, // Monday is the first day of the week.
16730            doy: 7, // The week that contains Jan 7th is the first week of the year.
16731        },
16732    });
16733
16734    //! moment.js locale configuration
16735
16736    hooks.defineLocale('tl-ph', {
16737        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
16738            '_'
16739        ),
16740        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
16741        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
16742            '_'
16743        ),
16744        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
16745        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
16746        longDateFormat: {
16747            LT: 'HH:mm',
16748            LTS: 'HH:mm:ss',
16749            L: 'MM/D/YYYY',
16750            LL: 'MMMM D, YYYY',
16751            LLL: 'MMMM D, YYYY HH:mm',
16752            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
16753        },
16754        calendar: {
16755            sameDay: 'LT [ngayong araw]',
16756            nextDay: '[Bukas ng] LT',
16757            nextWeek: 'LT [sa susunod na] dddd',
16758            lastDay: 'LT [kahapon]',
16759            lastWeek: 'LT [noong nakaraang] dddd',
16760            sameElse: 'L',
16761        },
16762        relativeTime: {
16763            future: 'sa loob ng %s',
16764            past: '%s ang nakalipas',
16765            s: 'ilang segundo',
16766            ss: '%d segundo',
16767            m: 'isang minuto',
16768            mm: '%d minuto',
16769            h: 'isang oras',
16770            hh: '%d oras',
16771            d: 'isang araw',
16772            dd: '%d araw',
16773            M: 'isang buwan',
16774            MM: '%d buwan',
16775            y: 'isang taon',
16776            yy: '%d taon',
16777        },
16778        dayOfMonthOrdinalParse: /\d{1,2}/,
16779        ordinal: function (number) {
16780            return number;
16781        },
16782        week: {
16783            dow: 1, // Monday is the first day of the week.
16784            doy: 4, // The week that contains Jan 4th is the first week of the year.
16785        },
16786    });
16787
16788    //! moment.js locale configuration
16789
16790    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
16791
16792    function translateFuture(output) {
16793        var time = output;
16794        time =
16795            output.indexOf('jaj') !== -1
16796                ? time.slice(0, -3) + 'leS'
16797                : output.indexOf('jar') !== -1
16798                ? time.slice(0, -3) + 'waQ'
16799                : output.indexOf('DIS') !== -1
16800                ? time.slice(0, -3) + 'nem'
16801                : time + ' pIq';
16802        return time;
16803    }
16804
16805    function translatePast(output) {
16806        var time = output;
16807        time =
16808            output.indexOf('jaj') !== -1
16809                ? time.slice(0, -3) + 'Hu’'
16810                : output.indexOf('jar') !== -1
16811                ? time.slice(0, -3) + 'wen'
16812                : output.indexOf('DIS') !== -1
16813                ? time.slice(0, -3) + 'ben'
16814                : time + ' ret';
16815        return time;
16816    }
16817
16818    function translate$a(number, withoutSuffix, string, isFuture) {
16819        var numberNoun = numberAsNoun(number);
16820        switch (string) {
16821            case 'ss':
16822                return numberNoun + ' lup';
16823            case 'mm':
16824                return numberNoun + ' tup';
16825            case 'hh':
16826                return numberNoun + ' rep';
16827            case 'dd':
16828                return numberNoun + ' jaj';
16829            case 'MM':
16830                return numberNoun + ' jar';
16831            case 'yy':
16832                return numberNoun + ' DIS';
16833        }
16834    }
16835
16836    function numberAsNoun(number) {
16837        var hundred = Math.floor((number % 1000) / 100),
16838            ten = Math.floor((number % 100) / 10),
16839            one = number % 10,
16840            word = '';
16841        if (hundred > 0) {
16842            word += numbersNouns[hundred] + 'vatlh';
16843        }
16844        if (ten > 0) {
16845            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
16846        }
16847        if (one > 0) {
16848            word += (word !== '' ? ' ' : '') + numbersNouns[one];
16849        }
16850        return word === '' ? 'pagh' : word;
16851    }
16852
16853    hooks.defineLocale('tlh', {
16854        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(
16855            '_'
16856        ),
16857        monthsShort:
16858            '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(
16859                '_'
16860            ),
16861        monthsParseExact: true,
16862        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
16863            '_'
16864        ),
16865        weekdaysShort:
16866            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
16867        weekdaysMin:
16868            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
16869        longDateFormat: {
16870            LT: 'HH:mm',
16871            LTS: 'HH:mm:ss',
16872            L: 'DD.MM.YYYY',
16873            LL: 'D MMMM YYYY',
16874            LLL: 'D MMMM YYYY HH:mm',
16875            LLLL: 'dddd, D MMMM YYYY HH:mm',
16876        },
16877        calendar: {
16878            sameDay: '[DaHjaj] LT',
16879            nextDay: '[wa’leS] LT',
16880            nextWeek: 'LLL',
16881            lastDay: '[wa’Hu’] LT',
16882            lastWeek: 'LLL',
16883            sameElse: 'L',
16884        },
16885        relativeTime: {
16886            future: translateFuture,
16887            past: translatePast,
16888            s: 'puS lup',
16889            ss: translate$a,
16890            m: 'wa’ tup',
16891            mm: translate$a,
16892            h: 'wa’ rep',
16893            hh: translate$a,
16894            d: 'wa’ jaj',
16895            dd: translate$a,
16896            M: 'wa’ jar',
16897            MM: translate$a,
16898            y: 'wa’ DIS',
16899            yy: translate$a,
16900        },
16901        dayOfMonthOrdinalParse: /\d{1,2}\./,
16902        ordinal: '%d.',
16903        week: {
16904            dow: 1, // Monday is the first day of the week.
16905            doy: 4, // The week that contains Jan 4th is the first week of the year.
16906        },
16907    });
16908
16909    //! moment.js locale configuration
16910
16911    var suffixes$5 = {
16912        1: "'inci",
16913        5: "'inci",
16914        8: "'inci",
16915        70: "'inci",
16916        80: "'inci",
16917        2: "'nci",
16918        7: "'nci",
16919        20: "'nci",
16920        50: "'nci",
16921        3: "'üncü",
16922        4: "'üncü",
16923        100: "'üncü",
16924        6: "'ncı",
16925        9: "'uncu",
16926        10: "'uncu",
16927        30: "'uncu",
16928        60: "'ıncı",
16929        90: "'ıncı",
16930    };
16931
16932    hooks.defineLocale('tr', {
16933        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
16934            '_'
16935        ),
16936        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
16937        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
16938            '_'
16939        ),
16940        weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),
16941        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
16942        meridiem: function (hours, minutes, isLower) {
16943            if (hours < 12) {
16944                return isLower ? 'öö' : 'ÖÖ';
16945            } else {
16946                return isLower ? 'ös' : 'ÖS';
16947            }
16948        },
16949        meridiemParse: /öö|ÖÖ|ös|ÖS/,
16950        isPM: function (input) {
16951            return input === 'ös' || input === 'ÖS';
16952        },
16953        longDateFormat: {
16954            LT: 'HH:mm',
16955            LTS: 'HH:mm:ss',
16956            L: 'DD.MM.YYYY',
16957            LL: 'D MMMM YYYY',
16958            LLL: 'D MMMM YYYY HH:mm',
16959            LLLL: 'dddd, D MMMM YYYY HH:mm',
16960        },
16961        calendar: {
16962            sameDay: '[bugün saat] LT',
16963            nextDay: '[yarın saat] LT',
16964            nextWeek: '[gelecek] dddd [saat] LT',
16965            lastDay: '[dün] LT',
16966            lastWeek: '[geçen] dddd [saat] LT',
16967            sameElse: 'L',
16968        },
16969        relativeTime: {
16970            future: '%s sonra',
16971            past: '%s önce',
16972            s: 'birkaç saniye',
16973            ss: '%d saniye',
16974            m: 'bir dakika',
16975            mm: '%d dakika',
16976            h: 'bir saat',
16977            hh: '%d saat',
16978            d: 'bir gün',
16979            dd: '%d gün',
16980            w: 'bir hafta',
16981            ww: '%d hafta',
16982            M: 'bir ay',
16983            MM: '%d ay',
16984            y: 'bir yıl',
16985            yy: '%d yıl',
16986        },
16987        ordinal: function (number, period) {
16988            switch (period) {
16989                case 'd':
16990                case 'D':
16991                case 'Do':
16992                case 'DD':
16993                    return number;
16994                default:
16995                    if (number === 0) {
16996                        // special case for zero
16997                        return number + "'ıncı";
16998                    }
16999                    var a = number % 10,
17000                        b = (number % 100) - a,
17001                        c = number >= 100 ? 100 : null;
17002                    return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);
17003            }
17004        },
17005        week: {
17006            dow: 1, // Monday is the first day of the week.
17007            doy: 7, // The week that contains Jan 7th is the first week of the year.
17008        },
17009    });
17010
17011    //! moment.js locale configuration
17012
17013    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
17014    // This is currently too difficult (maybe even impossible) to add.
17015    hooks.defineLocale('tzl', {
17016        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
17017            '_'
17018        ),
17019        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
17020        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
17021        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
17022        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
17023        longDateFormat: {
17024            LT: 'HH.mm',
17025            LTS: 'HH.mm.ss',
17026            L: 'DD.MM.YYYY',
17027            LL: 'D. MMMM [dallas] YYYY',
17028            LLL: 'D. MMMM [dallas] YYYY HH.mm',
17029            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
17030        },
17031        meridiemParse: /d\'o|d\'a/i,
17032        isPM: function (input) {
17033            return "d'o" === input.toLowerCase();
17034        },
17035        meridiem: function (hours, minutes, isLower) {
17036            if (hours > 11) {
17037                return isLower ? "d'o" : "D'O";
17038            } else {
17039                return isLower ? "d'a" : "D'A";
17040            }
17041        },
17042        calendar: {
vendor: 2,018 bytes, lines 17043-17098
17043            sameDay: '[oxhi à] LT',
17044            nextDay: '[demà à] LT',
17045            nextWeek: 'dddd [à] LT',
17046            lastDay: '[ieiri à] LT',
17047            lastWeek: '[sür el] dddd [lasteu à] LT',
17048            sameElse: 'L',
17049        },
17050        relativeTime: {
17051            future: 'osprei %s',
17052            past: 'ja%s',
17053            s: processRelativeTime$8,
17054            ss: processRelativeTime$8,
17055            m: processRelativeTime$8,
17056            mm: processRelativeTime$8,
17057            h: processRelativeTime$8,
17058            hh: processRelativeTime$8,
17059            d: processRelativeTime$8,
17060            dd: processRelativeTime$8,
17061            M: processRelativeTime$8,
17062            MM: processRelativeTime$8,
17063            y: processRelativeTime$8,
17064            yy: processRelativeTime$8,
17065        },
17066        dayOfMonthOrdinalParse: /\d{1,2}\./,
17067        ordinal: '%d.',
17068        week: {
17069            dow: 1, // Monday is the first day of the week.
17070            doy: 4, // The week that contains Jan 4th is the first week of the year.
17071        },
17072    });
17073
17074    function processRelativeTime$8(number, withoutSuffix, key, isFuture) {
17075        var format = {
17076            s: ['viensas secunds', "'iensas secunds"],
17077            ss: [number + ' secunds', '' + number + ' secunds'],
17078            m: ["'n míut", "'iens míut"],
17079            mm: [number + ' míuts', '' + number + ' míuts'],
17080            h: ["'n þora", "'iensa þora"],
17081            hh: [number + ' þoras', '' + number + ' þoras'],
17082            d: ["'n ziua", "'iensa ziua"],
17083            dd: [number + ' ziuas', '' + number + ' ziuas'],
17084            M: ["'n mes", "'iens mes"],
17085            MM: [number + ' mesen', '' + number + ' mesen'],
17086            y: ["'n ar", "'iens ar"],
17087            yy: [number + ' ars', '' + number + ' ars'],
17088        };
17089        return isFuture
17090            ? format[key][0]
17091            : withoutSuffix
17092            ? format[key][0]
17093            : format[key][1];
17094    }
17095
17096    //! moment.js locale configuration
17097
17098    hooks.defineLocale('tzm-latn', {
17099        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
17100            '_'
17101        ),
17102        monthsShort:
17103            'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
17104                '_'
17105            ),
17106        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17107        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17108        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17109        longDateFormat: {
17110            LT: 'HH:mm',
17111            LTS: 'HH:mm:ss',
17112            L: 'DD/MM/YYYY',
17113            LL: 'D MMMM YYYY',
17114            LLL: 'D MMMM YYYY HH:mm',
17115            LLLL: 'dddd D MMMM YYYY HH:mm',
17116        },
17117        calendar: {
17118            sameDay: '[asdkh g] LT',
17119            nextDay: '[aska g] LT',
17120            nextWeek: 'dddd [g] LT',
17121            lastDay: '[assant g] LT',
17122            lastWeek: 'dddd [g] LT',
17123            sameElse: 'L',
17124        },
17125        relativeTime: {
17126            future: 'dadkh s yan %s',
17127            past: 'yan %s',
17128            s: 'imik',
17129            ss: '%d imik',
17130            m: 'minuḍ',
17131            mm: '%d minuḍ',
17132            h: 'saɛa',
17133            hh: '%d tassaɛin',
17134            d: 'ass',
17135            dd: '%d ossan',
17136            M: 'ayowr',
17137            MM: '%d iyyirn',
17138            y: 'asgas',
17139            yy: '%d isgasn',
17140        },
17141        week: {
17142            dow: 6, // Saturday is the first day of the week.
17143            doy: 12, // The week that contains Jan 12th is the first week of the year.
17144        },
17145    });
17146
17147    //! moment.js locale configuration
17148
17149    hooks.defineLocale('tzm', {
17150        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
17151            '_'
17152        ),
17153        monthsShort:
17154            'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
17155                '_'
17156            ),
17157        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17158        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17159        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17160        longDateFormat: {
17161            LT: 'HH:mm',
17162            LTS: 'HH:mm:ss',
17163            L: 'DD/MM/YYYY',
17164            LL: 'D MMMM YYYY',
17165            LLL: 'D MMMM YYYY HH:mm',
17166            LLLL: 'dddd D MMMM YYYY HH:mm',
17167        },
17168        calendar: {
17169            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
17170            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
17171            nextWeek: 'dddd [â´´] LT',
17172            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
17173            lastWeek: 'dddd [â´´] LT',
17174            sameElse: 'L',
17175        },
17176        relativeTime: {
17177            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
17178            past: 'ⵢⴰⵏ %s',
17179            s: 'ⵉⵎⵉⴽ',
17180            ss: '%d ⵉⵎⵉⴽ',
17181            m: 'ⵎⵉⵏⵓⴺ',
17182            mm: '%d ⵎⵉⵏⵓⴺ',
17183            h: 'ⵙⴰⵄⴰ',
vendor: 5,781 bytes, lines 17184-17329
17184            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
17185            d: 'ⴰⵙⵙ',
17186            dd: '%d oⵙⵙⴰⵏ',
17187            M: 'ⴰⵢoⵓⵔ',
17188            MM: '%d ⵉⵢⵢⵉⵔⵏ',
17189            y: 'ⴰⵙⴳⴰⵙ',
17190            yy: '%d ⵉⵙⴳⴰⵙⵏ',
17191        },
17192        week: {
17193            dow: 6, // Saturday is the first day of the week.
17194            doy: 12, // The week that contains Jan 12th is the first week of the year.
17195        },
17196    });
17197
17198    //! moment.js locale configuration
17199
17200    hooks.defineLocale('ug-cn', {
17201        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17202            '_'
17203        ),
17204        monthsShort:
17205            'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17206                '_'
17207            ),
17208        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
17209            '_'
17210        ),
17211        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17212        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17213        longDateFormat: {
17214            LT: 'HH:mm',
17215            LTS: 'HH:mm:ss',
17216            L: 'YYYY-MM-DD',
17217            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
17218            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17219            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17220        },
17221        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
17222        meridiemHour: function (hour, meridiem) {
17223            if (hour === 12) {
17224                hour = 0;
17225            }
17226            if (
17227                meridiem === 'يېرىم كېچە' ||
17228                meridiem === 'سەھەر' ||
17229                meridiem === 'چۈشتىن بۇرۇن'
17230            ) {
17231                return hour;
17232            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
17233                return hour + 12;
17234            } else {
17235                return hour >= 11 ? hour : hour + 12;
17236            }
17237        },
17238        meridiem: function (hour, minute, isLower) {
17239            var hm = hour * 100 + minute;
17240            if (hm < 600) {
17241                return 'يېرىم كېچە';
17242            } else if (hm < 900) {
17243                return 'سەھەر';
17244            } else if (hm < 1130) {
17245                return 'چۈشتىن بۇرۇن';
17246            } else if (hm < 1230) {
17247                return 'چۈش';
17248            } else if (hm < 1800) {
17249                return 'چۈشتىن كېيىن';
17250            } else {
17251                return 'كەچ';
17252            }
17253        },
17254        calendar: {
17255            sameDay: '[بۈگۈن سائەت] LT',
17256            nextDay: '[ئەتە سائەت] LT',
17257            nextWeek: '[كېلەركى] dddd [سائەت] LT',
17258            lastDay: '[تۆنۈگۈن] LT',
17259            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
17260            sameElse: 'L',
17261        },
17262        relativeTime: {
17263            future: '%s كېيىن',
17264            past: '%s بۇرۇن',
17265            s: 'نەچچە سېكونت',
17266            ss: '%d سېكونت',
17267            m: 'بىر مىنۇت',
17268            mm: '%d مىنۇت',
17269            h: 'بىر سائەت',
17270            hh: '%d سائەت',
17271            d: 'بىر كۈن',
17272            dd: '%d كۈن',
17273            M: 'بىر ئاي',
17274            MM: '%d ئاي',
17275            y: 'بىر يىل',
17276            yy: '%d يىل',
17277        },
17278
17279        dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
17280        ordinal: function (number, period) {
17281            switch (period) {
17282                case 'd':
17283                case 'D':
17284                case 'DDD':
17285                    return number + '-كۈنى';
17286                case 'w':
17287                case 'W':
17288                    return number + '-ھەپتە';
17289                default:
17290                    return number;
17291            }
17292        },
17293        preparse: function (string) {
17294            return string.replace(/،/g, ',');
17295        },
17296        postformat: function (string) {
17297            return string.replace(/,/g, '،');
17298        },
17299        week: {
17300            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17301            dow: 1, // Monday is the first day of the week.
17302            doy: 7, // The week that contains Jan 1st is the first week of the year.
17303        },
17304    });
17305
17306    //! moment.js locale configuration
17307
17308    function plural$6(word, num) {
17309        var forms = word.split('_');
17310        return num % 10 === 1 && num % 100 !== 11
17311            ? forms[0]
17312            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
17313            ? forms[1]
17314            : forms[2];
17315    }
17316    function relativeTimeWithPlural$4(number, withoutSuffix, key) {
17317        var format = {
17318            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
17319            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
17320            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
17321            dd: 'день_дні_днів',
17322            MM: 'місяць_місяці_місяців',
17323            yy: 'рік_роки_років',
17324        };
17325        if (key === 'm') {
17326            return withoutSuffix ? 'хвилина' : 'хвилину';
17327        } else if (key === 'h') {
17328            return withoutSuffix ? 'година' : 'годину';
17329        } else {
vendor: 8,953 bytes, lines 17330-17584
17330            return number + ' ' + plural$6(format[key], +number);
17331        }
17332    }
17333    function weekdaysCaseReplace(m, format) {
17334        var weekdays = {
17335                nominative:
17336                    'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
17337                        '_'
17338                    ),
17339                accusative:
17340                    'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
17341                        '_'
17342                    ),
17343                genitive:
17344                    'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
17345                        '_'
17346                    ),
17347            },
17348            nounCase;
17349
17350        if (m === true) {
17351            return weekdays['nominative']
17352                .slice(1, 7)
17353                .concat(weekdays['nominative'].slice(0, 1));
17354        }
17355        if (!m) {
17356            return weekdays['nominative'];
17357        }
17358
17359        nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
17360            ? 'accusative'
17361            : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
17362            ? 'genitive'
17363            : 'nominative';
17364        return weekdays[nounCase][m.day()];
17365    }
17366    function processHoursFunction(str) {
17367        return function () {
17368            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
17369        };
17370    }
17371
17372    hooks.defineLocale('uk', {
17373        months: {
17374            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
17375                '_'
17376            ),
17377            standalone:
17378                'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
17379                    '_'
17380                ),
17381        },
17382        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
17383            '_'
17384        ),
17385        weekdays: weekdaysCaseReplace,
17386        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17387        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17388        longDateFormat: {
17389            LT: 'HH:mm',
17390            LTS: 'HH:mm:ss',
17391            L: 'DD.MM.YYYY',
17392            LL: 'D MMMM YYYY р.',
17393            LLL: 'D MMMM YYYY р., HH:mm',
17394            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
17395        },
17396        calendar: {
17397            sameDay: processHoursFunction('[Сьогодні '),
17398            nextDay: processHoursFunction('[Завтра '),
17399            lastDay: processHoursFunction('[Вчора '),
17400            nextWeek: processHoursFunction('[У] dddd ['),
17401            lastWeek: function () {
17402                switch (this.day()) {
17403                    case 0:
17404                    case 3:
17405                    case 5:
17406                    case 6:
17407                        return processHoursFunction('[Минулої] dddd [').call(this);
17408                    case 1:
17409                    case 2:
17410                    case 4:
17411                        return processHoursFunction('[Минулого] dddd [').call(this);
17412                }
17413            },
17414            sameElse: 'L',
17415        },
17416        relativeTime: {
17417            future: 'за %s',
17418            past: '%s тому',
17419            s: 'декілька секунд',
17420            ss: relativeTimeWithPlural$4,
17421            m: relativeTimeWithPlural$4,
17422            mm: relativeTimeWithPlural$4,
17423            h: 'годину',
17424            hh: relativeTimeWithPlural$4,
17425            d: 'день',
17426            dd: relativeTimeWithPlural$4,
17427            M: 'місяць',
17428            MM: relativeTimeWithPlural$4,
17429            y: 'рік',
17430            yy: relativeTimeWithPlural$4,
17431        },
17432        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
17433        meridiemParse: /ночі|ранку|дня|вечора/,
17434        isPM: function (input) {
17435            return /^(дня|вечора)$/.test(input);
17436        },
17437        meridiem: function (hour, minute, isLower) {
17438            if (hour < 4) {
17439                return 'ночі';
17440            } else if (hour < 12) {
17441                return 'ранку';
17442            } else if (hour < 17) {
17443                return 'дня';
17444            } else {
17445                return 'вечора';
17446            }
17447        },
17448        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
17449        ordinal: function (number, period) {
17450            switch (period) {
17451                case 'M':
17452                case 'd':
17453                case 'DDD':
17454                case 'w':
17455                case 'W':
17456                    return number + '-й';
17457                case 'D':
17458                    return number + '-го';
17459                default:
17460                    return number;
17461            }
17462        },
17463        week: {
17464            dow: 1, // Monday is the first day of the week.
17465            doy: 7, // The week that contains Jan 7th is the first week of the year.
17466        },
17467    });
17468
17469    //! moment.js locale configuration
17470
17471    var months$b = [
17472            'جنوری',
17473            'فروری',
17474            'مارچ',
17475            'اپریل',
17476            'مئی',
17477            'جون',
17478            'جولائی',
17479            'اگست',
17480            'ستمبر',
17481            'اکتوبر',
17482            'نومبر',
17483            'دسمبر',
17484        ],
17485        days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
17486
17487    hooks.defineLocale('ur', {
17488        months: months$b,
17489        monthsShort: months$b,
17490        weekdays: days$2,
17491        weekdaysShort: days$2,
17492        weekdaysMin: days$2,
17493        longDateFormat: {
17494            LT: 'HH:mm',
17495            LTS: 'HH:mm:ss',
17496            L: 'DD/MM/YYYY',
17497            LL: 'D MMMM YYYY',
17498            LLL: 'D MMMM YYYY HH:mm',
17499            LLLL: 'dddd، D MMMM YYYY HH:mm',
17500        },
17501        meridiemParse: /صبح|شام/,
17502        isPM: function (input) {
17503            return 'شام' === input;
17504        },
17505        meridiem: function (hour, minute, isLower) {
17506            if (hour < 12) {
17507                return 'صبح';
17508            }
17509            return 'شام';
17510        },
17511        calendar: {
17512            sameDay: '[آج بوقت] LT',
17513            nextDay: '[کل بوقت] LT',
17514            nextWeek: 'dddd [بوقت] LT',
17515            lastDay: '[گذشتہ روز بوقت] LT',
17516            lastWeek: '[گذشتہ] dddd [بوقت] LT',
17517            sameElse: 'L',
17518        },
17519        relativeTime: {
17520            future: '%s بعد',
17521            past: '%s قبل',
17522            s: 'چند سیکنڈ',
17523            ss: '%d سیکنڈ',
17524            m: 'ایک منٹ',
17525            mm: '%d منٹ',
17526            h: 'ایک گھنٹہ',
17527            hh: '%d گھنٹے',
17528            d: 'ایک دن',
17529            dd: '%d دن',
17530            M: 'ایک ماہ',
17531            MM: '%d ماہ',
17532            y: 'ایک سال',
17533            yy: '%d سال',
17534        },
17535        preparse: function (string) {
17536            return string.replace(/،/g, ',');
17537        },
17538        postformat: function (string) {
17539            return string.replace(/,/g, '،');
17540        },
17541        week: {
17542            dow: 1, // Monday is the first day of the week.
17543            doy: 4, // The week that contains Jan 4th is the first week of the year.
17544        },
17545    });
17546
17547    //! moment.js locale configuration
17548
17549    hooks.defineLocale('uz-latn', {
17550        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
17551            '_'
17552        ),
17553        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
17554        weekdays:
17555            'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
17556                '_'
17557            ),
17558        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
17559        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
17560        longDateFormat: {
17561            LT: 'HH:mm',
17562            LTS: 'HH:mm:ss',
17563            L: 'DD/MM/YYYY',
17564            LL: 'D MMMM YYYY',
17565            LLL: 'D MMMM YYYY HH:mm',
17566            LLLL: 'D MMMM YYYY, dddd HH:mm',
17567        },
17568        calendar: {
17569            sameDay: '[Bugun soat] LT [da]',
17570            nextDay: '[Ertaga] LT [da]',
17571            nextWeek: 'dddd [kuni soat] LT [da]',
17572            lastDay: '[Kecha soat] LT [da]',
17573            lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
17574            sameElse: 'L',
17575        },
17576        relativeTime: {
17577            future: 'Yaqin %s ichida',
17578            past: 'Bir necha %s oldin',
17579            s: 'soniya',
17580            ss: '%d soniya',
17581            m: 'bir daqiqa',
17582            mm: '%d daqiqa',
17583            h: 'bir soat',
17584            hh: '%d soat',
vendor: 5,209 bytes, lines 17585-17729
17585            d: 'bir kun',
17586            dd: '%d kun',
17587            M: 'bir oy',
17588            MM: '%d oy',
17589            y: 'bir yil',
17590            yy: '%d yil',
17591        },
17592        week: {
17593            dow: 1, // Monday is the first day of the week.
17594            doy: 7, // The week that contains Jan 7th is the first week of the year.
17595        },
17596    });
17597
17598    //! moment.js locale configuration
17599
17600    hooks.defineLocale('uz', {
17601        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
17602            '_'
17603        ),
17604        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
17605        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
17606        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
17607        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
17608        longDateFormat: {
17609            LT: 'HH:mm',
17610            LTS: 'HH:mm:ss',
17611            L: 'DD/MM/YYYY',
17612            LL: 'D MMMM YYYY',
17613            LLL: 'D MMMM YYYY HH:mm',
17614            LLLL: 'D MMMM YYYY, dddd HH:mm',
17615        },
17616        calendar: {
17617            sameDay: '[Бугун соат] LT [да]',
17618            nextDay: '[Эртага] LT [да]',
17619            nextWeek: 'dddd [куни соат] LT [да]',
17620            lastDay: '[Кеча соат] LT [да]',
17621            lastWeek: '[Утган] dddd [куни соат] LT [да]',
17622            sameElse: 'L',
17623        },
17624        relativeTime: {
17625            future: 'Якин %s ичида',
17626            past: 'Бир неча %s олдин',
17627            s: 'фурсат',
17628            ss: '%d фурсат',
17629            m: 'бир дакика',
17630            mm: '%d дакика',
17631            h: 'бир соат',
17632            hh: '%d соат',
17633            d: 'бир кун',
17634            dd: '%d кун',
17635            M: 'бир ой',
17636            MM: '%d ой',
17637            y: 'бир йил',
17638            yy: '%d йил',
17639        },
17640        week: {
17641            dow: 1, // Monday is the first day of the week.
17642            doy: 7, // The week that contains Jan 4th is the first week of the year.
17643        },
17644    });
17645
17646    //! moment.js locale configuration
17647
17648    hooks.defineLocale('vi', {
17649        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(
17650            '_'
17651        ),
17652        monthsShort:
17653            'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
17654                '_'
17655            ),
17656        monthsParseExact: true,
17657        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
17658            '_'
17659        ),
17660        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17661        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17662        weekdaysParseExact: true,
17663        meridiemParse: /sa|ch/i,
17664        isPM: function (input) {
17665            return /^ch$/i.test(input);
17666        },
17667        meridiem: function (hours, minutes, isLower) {
17668            if (hours < 12) {
17669                return isLower ? 'sa' : 'SA';
17670            } else {
17671                return isLower ? 'ch' : 'CH';
17672            }
17673        },
17674        longDateFormat: {
17675            LT: 'HH:mm',
17676            LTS: 'HH:mm:ss',
17677            L: 'DD/MM/YYYY',
17678            LL: 'D MMMM [năm] YYYY',
17679            LLL: 'D MMMM [năm] YYYY HH:mm',
17680            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
17681            l: 'DD/M/YYYY',
17682            ll: 'D MMM YYYY',
17683            lll: 'D MMM YYYY HH:mm',
17684            llll: 'ddd, D MMM YYYY HH:mm',
17685        },
17686        calendar: {
17687            sameDay: '[Hôm nay lúc] LT',
17688            nextDay: '[Ngày mai lúc] LT',
17689            nextWeek: 'dddd [tuần tới lúc] LT',
17690            lastDay: '[Hôm qua lúc] LT',
17691            lastWeek: 'dddd [tuần trước lúc] LT',
17692            sameElse: 'L',
17693        },
17694        relativeTime: {
17695            future: '%s tới',
17696            past: '%s trước',
17697            s: 'vài giây',
17698            ss: '%d giây',
17699            m: 'một phút',
17700            mm: '%d phút',
17701            h: 'một giờ',
17702            hh: '%d giờ',
17703            d: 'một ngày',
17704            dd: '%d ngày',
17705            w: 'một tuần',
17706            ww: '%d tuần',
17707            M: 'một tháng',
17708            MM: '%d tháng',
17709            y: 'một năm',
17710            yy: '%d năm',
17711        },
17712        dayOfMonthOrdinalParse: /\d{1,2}/,
17713        ordinal: function (number) {
17714            return number;
17715        },
17716        week: {
17717            dow: 1, // Monday is the first day of the week.
17718            doy: 4, // The week that contains Jan 4th is the first week of the year.
17719        },
17720    });
17721
17722    //! moment.js locale configuration
17723
17724    hooks.defineLocale('x-pseudo', {
17725        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(
17726            '_'
17727        ),
17728        monthsShort:
17729            'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.
17729split(
17730                '_'
17731            ),
17732        monthsParseExact: true,
17733        weekdays:
17734            'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
17735                '_'
17736            ),
17737        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
17738        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
17739        weekdaysParseExact: true,
17740        longDateFormat: {
17741            LT: 'HH:mm',
17742            L: 'DD/MM/YYYY',
17743            LL: 'D MMMM YYYY',
17744            LLL: 'D MMMM YYYY HH:mm',
17745            LLLL: 'dddd, D MMMM YYYY HH:mm',
17746        },
17747        calendar: {
17748            sameDay: '[T~ódá~ý át] LT',
17749            nextDay: '[T~ómó~rró~w át] LT',
17750            nextWeek: 'dddd [át] LT',
17751            lastDay: '[Ý~ést~érdá~ý át] LT',
17752            lastWeek: '[L~ást] dddd [át] LT',
17753            sameElse: 'L',
17754        },
17755        relativeTime: {
17756            future: 'í~ñ %s',
17757            past: '%s á~gó',
17758            s: 'á ~féw ~sécó~ñds',
17759            ss: '%d s~écóñ~ds',
vendor: 16,384 bytes, lines 17760-18236
17760            m: 'á ~míñ~úté',
17761            mm: '%d m~íñú~tés',
17762            h: 'á~ñ hó~úr',
17763            hh: '%d h~óúrs',
17764            d: 'á ~dáý',
17765            dd: '%d d~áýs',
17766            M: 'á ~móñ~th',
17767            MM: '%d m~óñt~hs',
17768            y: 'á ~ýéár',
17769            yy: '%d ý~éárs',
17770        },
17771        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
17772        ordinal: function (number) {
17773            var b = number % 10,
17774                output =
17775                    ~~((number % 100) / 10) === 1
17776                        ? 'th'
17777                        : b === 1
17778                        ? 'st'
17779                        : b === 2
17780                        ? 'nd'
17781                        : b === 3
17782                        ? 'rd'
17783                        : 'th';
17784            return number + output;
17785        },
17786        week: {
17787            dow: 1, // Monday is the first day of the week.
17788            doy: 4, // The week that contains Jan 4th is the first week of the year.
17789        },
17790    });
17791
17792    //! moment.js locale configuration
17793
17794    hooks.defineLocale('yo', {
17795        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
17796            '_'
17797        ),
17798        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
17799        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
17800        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
17801        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
17802        longDateFormat: {
17803            LT: 'h:mm A',
17804            LTS: 'h:mm:ss A',
17805            L: 'DD/MM/YYYY',
17806            LL: 'D MMMM YYYY',
17807            LLL: 'D MMMM YYYY h:mm A',
17808            LLLL: 'dddd, D MMMM YYYY h:mm A',
17809        },
17810        calendar: {
17811            sameDay: '[Ònì ni] LT',
17812            nextDay: '[Ọ̀la ni] LT',
17813            nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
17814            lastDay: '[Àna ni] LT',
17815            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
17816            sameElse: 'L',
17817        },
17818        relativeTime: {
17819            future: 'ní %s',
17820            past: '%s kọjá',
17821            s: 'ìsẹjú aayá die',
17822            ss: 'aayá %d',
17823            m: 'ìsẹjú kan',
17824            mm: 'ìsẹjú %d',
17825            h: 'wákati kan',
17826            hh: 'wákati %d',
17827            d: 'ọjọ́ kan',
17828            dd: 'ọjọ́ %d',
17829            M: 'osù kan',
17830            MM: 'osù %d',
17831            y: 'ọdún kan',
17832            yy: 'ọdún %d',
17833        },
17834        dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
17835        ordinal: 'ọjọ́ %d',
17836        week: {
17837            dow: 1, // Monday is the first day of the week.
17838            doy: 4, // The week that contains Jan 4th is the first week of the year.
17839        },
17840    });
17841
17842    //! moment.js locale configuration
17843
17844    hooks.defineLocale('zh-cn', {
17845        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17846            '_'
17847        ),
17848        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17849            '_'
17850        ),
17851        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17852        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
17853        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17854        longDateFormat: {
17855            LT: 'HH:mm',
17856            LTS: 'HH:mm:ss',
17857            L: 'YYYY/MM/DD',
17858            LL: 'YYYY年M月D日',
17859            LLL: 'YYYY年M月D日Ah点mm分',
17860            LLLL: 'YYYY年M月D日ddddAh点mm分',
17861            l: 'YYYY/M/D',
17862            ll: 'YYYY年M月D日',
17863            lll: 'YYYY年M月D日 HH:mm',
17864            llll: 'YYYY年M月D日dddd HH:mm',
17865        },
17866        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17867        meridiemHour: function (hour, meridiem) {
17868            if (hour === 12) {
17869                hour = 0;
17870            }
17871            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17872                return hour;
17873            } else if (meridiem === '下午' || meridiem === '晚上') {
17874                return hour + 12;
17875            } else {
17876                // '中午'
17877                return hour >= 11 ? hour : hour + 12;
17878            }
17879        },
17880        meridiem: function (hour, minute, isLower) {
17881            var hm = hour * 100 + minute;
17882            if (hm < 600) {
17883                return '凌晨';
17884            } else if (hm < 900) {
17885                return '早上';
17886            } else if (hm < 1130) {
17887                return '上午';
17888            } else if (hm < 1230) {
17889                return '中午';
17890            } else if (hm < 1800) {
17891                return '下午';
17892            } else {
17893                return '晚上';
17894            }
17895        },
17896        calendar: {
17897            sameDay: '[今天]LT',
17898            nextDay: '[明天]LT',
17899            nextWeek: function (now) {
17900                if (now.week() !== this.week()) {
17901                    return '[下]dddLT';
17902                } else {
17903                    return '[本]dddLT';
17904                }
17905            },
17906            lastDay: '[昨天]LT',
17907            lastWeek: function (now) {
17908                if (this.week() !== now.week()) {
17909                    return '[上]dddLT';
17910                } else {
17911                    return '[本]dddLT';
17912                }
17913            },
17914            sameElse: 'L',
17915        },
17916        dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
17917        ordinal: function (number, period) {
17918            switch (period) {
17919                case 'd':
17920                case 'D':
17921                case 'DDD':
17922                    return number + '日';
17923                case 'M':
17924                    return number + '月';
17925                case 'w':
17926                case 'W':
17927                    return number + '周';
17928                default:
17929                    return number;
17930            }
17931        },
17932        relativeTime: {
17933            future: '%s后',
17934            past: '%s前',
17935            s: '几秒',
17936            ss: '%d 秒',
17937            m: '1 分钟',
17938            mm: '%d 分钟',
17939            h: '1 小时',
17940            hh: '%d 小时',
17941            d: '1 天',
17942            dd: '%d 天',
17943            w: '1 周',
17944            ww: '%d 周',
17945            M: '1 个月',
17946            MM: '%d 个月',
17947            y: '1 å¹´',
17948            yy: '%d å¹´',
17949        },
17950        week: {
17951            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17952            dow: 1, // Monday is the first day of the week.
17953            doy: 4, // The week that contains Jan 4th is the first week of the year.
17954        },
17955    });
17956
17957    //! moment.js locale configuration
17958
17959    hooks.defineLocale('zh-hk', {
17960        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17961            '_'
17962        ),
17963        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17964            '_'
17965        ),
17966        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17967        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
17968        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17969        longDateFormat: {
17970            LT: 'HH:mm',
17971            LTS: 'HH:mm:ss',
17972            L: 'YYYY/MM/DD',
17973            LL: 'YYYY年M月D日',
17974            LLL: 'YYYY年M月D日 HH:mm',
17975            LLLL: 'YYYY年M月D日dddd HH:mm',
17976            l: 'YYYY/M/D',
17977            ll: 'YYYY年M月D日',
17978            lll: 'YYYY年M月D日 HH:mm',
17979            llll: 'YYYY年M月D日dddd HH:mm',
17980        },
17981        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17982        meridiemHour: function (hour, meridiem) {
17983            if (hour === 12) {
17984                hour = 0;
17985            }
17986            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17987                return hour;
17988            } else if (meridiem === '中午') {
17989                return hour >= 11 ? hour : hour + 12;
17990            } else if (meridiem === '下午' || meridiem === '晚上') {
17991                return hour + 12;
17992            }
17993        },
17994        meridiem: function (hour, minute, isLower) {
17995            var hm = hour * 100 + minute;
17996            if (hm < 600) {
17997                return '凌晨';
17998            } else if (hm < 900) {
17999                return '早上';
18000            } else if (hm < 1200) {
18001                return '上午';
18002            } else if (hm === 1200) {
18003                return '中午';
18004            } else if (hm < 1800) {
18005                return '下午';
18006            } else {
18007                return '晚上';
18008            }
18009        },
18010        calendar: {
18011            sameDay: '[今天]LT',
18012            nextDay: '[明天]LT',
18013            nextWeek: '[下]ddddLT',
18014            lastDay: '[昨天]LT',
18015            lastWeek: '[上]ddddLT',
18016            sameElse: 'L',
18017        },
18018        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18019        ordinal: function (number, period) {
18020            switch (period) {
18021                case 'd':
18022                case 'D':
18023                case 'DDD':
18024                    return number + '日';
18025                case 'M':
18026                    return number + '月';
18027                case 'w':
18028                case 'W':
18029                    return number + '週';
18030                default:
18031                    return number;
18032            }
18033        },
18034        relativeTime: {
18035            future: '%s後',
18036            past: '%s前',
18037            s: '幾秒',
18038            ss: '%d 秒',
18039            m: '1 分鐘',
18040            mm: '%d 分鐘',
18041            h: '1 小時',
18042            hh: '%d 小時',
18043            d: '1 天',
18044            dd: '%d 天',
18045            M: '1 個月',
18046            MM: '%d 個月',
18047            y: '1 å¹´',
18048            yy: '%d å¹´',
18049        },
18050    });
18051
18052    //! moment.js locale configuration
18053
18054    hooks.defineLocale('zh-mo', {
18055        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
18056            '_'
18057        ),
18058        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
18059            '_'
18060        ),
18061        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
18062        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
18063        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
18064        longDateFormat: {
18065            LT: 'HH:mm',
18066            LTS: 'HH:mm:ss',
18067            L: 'DD/MM/YYYY',
18068            LL: 'YYYY年M月D日',
18069            LLL: 'YYYY年M月D日 HH:mm',
18070            LLLL: 'YYYY年M月D日dddd HH:mm',
18071            l: 'D/M/YYYY',
18072            ll: 'YYYY年M月D日',
18073            lll: 'YYYY年M月D日 HH:mm',
18074            llll: 'YYYY年M月D日dddd HH:mm',
18075        },
18076        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
18077        meridiemHour: function (hour, meridiem) {
18078            if (hour === 12) {
18079                hour = 0;
18080            }
18081            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
18082                return hour;
18083            } else if (meridiem === '中午') {
18084                return hour >= 11 ? hour : hour + 12;
18085            } else if (meridiem === '下午' || meridiem === '晚上') {
18086                return hour + 12;
18087            }
18088        },
18089        meridiem: function (hour, minute, isLower) {
18090            var hm = hour * 100 + minute;
18091            if (hm < 600) {
18092                return '凌晨';
18093            } else if (hm < 900) {
18094                return '早上';
18095            } else if (hm < 1130) {
18096                return '上午';
18097            } else if (hm < 1230) {
18098                return '中午';
18099            } else if (hm < 1800) {
18100                return '下午';
18101            } else {
18102                return '晚上';
18103            }
18104        },
18105        calendar: {
18106            sameDay: '[今天] LT',
18107            nextDay: '[明天] LT',
18108            nextWeek: '[下]dddd LT',
18109            lastDay: '[昨天] LT',
18110            lastWeek: '[上]dddd LT',
18111            sameElse: 'L',
18112        },
18113        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18114        ordinal: function (number, period) {
18115            switch (period) {
18116                case 'd':
18117                case 'D':
18118                case 'DDD':
18119                    return number + '日';
18120                case 'M':
18121                    return number + '月';
18122                case 'w':
18123                case 'W':
18124                    return number + '週';
18125                default:
18126                    return number;
18127            }
18128        },
18129        relativeTime: {
18130            future: '%s內',
18131            past: '%s前',
18132            s: '幾秒',
18133            ss: '%d 秒',
18134            m: '1 分鐘',
18135            mm: '%d 分鐘',
18136            h: '1 小時',
18137            hh: '%d 小時',
18138            d: '1 天',
18139            dd: '%d 天',
18140            M: '1 個月',
18141            MM: '%d 個月',
18142            y: '1 å¹´',
18143            yy: '%d å¹´',
18144        },
18145    });
18146
18147    //! moment.js locale configuration
18148
18149    hooks.defineLocale('zh-tw', {
18150        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
18151            '_'
18152        ),
18153        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
18154            '_'
18155        ),
18156        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
18157        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
18158        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
18159        longDateFormat: {
18160            LT: 'HH:mm',
18161            LTS: 'HH:mm:ss',
18162            L: 'YYYY/MM/DD',
18163            LL: 'YYYY年M月D日',
18164            LLL: 'YYYY年M月D日 HH:mm',
18165            LLLL: 'YYYY年M月D日dddd HH:mm',
18166            l: 'YYYY/M/D',
18167            ll: 'YYYY年M月D日',
18168            lll: 'YYYY年M月D日 HH:mm',
18169            llll: 'YYYY年M月D日dddd HH:mm',
18170        },
18171        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
18172        meridiemHour: function (hour, meridiem) {
18173            if (hour === 12) {
18174                hour = 0;
18175            }
18176            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
18177                return hour;
18178            } else if (meridiem === '中午') {
18179                return hour >= 11 ? hour : hour + 12;
18180            } else if (meridiem === '下午' || meridiem === '晚上') {
18181                return hour + 12;
18182            }
18183        },
18184        meridiem: function (hour, minute, isLower) {
18185            var hm = hour * 100 + minute;
18186            if (hm < 600) {
18187                return '凌晨';
18188            } else if (hm < 900) {
18189                return '早上';
18190            } else if (hm < 1130) {
18191                return '上午';
18192            } else if (hm < 1230) {
18193                return '中午';
18194            } else if (hm < 1800) {
18195                return '下午';
18196            } else {
18197                return '晚上';
18198            }
18199        },
18200        calendar: {
18201            sameDay: '[今天] LT',
18202            nextDay: '[明天] LT',
18203            nextWeek: '[下]dddd LT',
18204            lastDay: '[昨天] LT',
18205            lastWeek: '[上]dddd LT',
18206            sameElse: 'L',
18207        },
18208        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18209        ordinal: function (number, period) {
18210            switch (period) {
18211                case 'd':
18212                case 'D':
18213                case 'DDD':
18214                    return number + '日';
18215                case 'M':
18216                    return number + '月';
18217                case 'w':
18218                case 'W':
18219                    return number + '週';
18220                default:
18221                    return number;
18222            }
18223        },
18224        relativeTime: {
18225            future: '%s後',
18226            past: '%s前',
18227            s: '幾秒',
18228            ss: '%d 秒',
18229            m: '1 分鐘',
18230            mm: '%d 分鐘',
18231            h: '1 小時',
18232            hh: '%d 小時',
18233            d: '1 天',
18234            dd: '%d 天',
18235            M: '1 個月',
18236            M
18236M: '%d 個月',
18237            y: '1 å¹´',
18238            yy: '%d å¹´',
18239        },
18240    });
18241
18242    hooks.locale('en');
18243
18244    return hooks;
18245
18246})));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.