PageSourceSearch

https://mops-bialapodlaska.pl/wp-content/plugins/itlu/dist/itlu-calendar.bundle.js?ver=1.0.13

js mops-bialapodlaska.pl collected 2026-10-08 17:43:20 UTC 1,011,643 bytes, 32,969 lines download raw bytes

1/******/ (function() { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ 119:
5/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6
7//! moment.js locale configuration
8//! locale : Persian [fa]
9//! author : Ebrahim Byagowi : https://github.com/ebraminio
10
11;(function (global, factory) {
12    true ? factory(__webpack_require__(5093)) :
13   0
14}(this, (function (moment) { 'use strict';
15
16    //! moment.js locale configuration
17
18    var symbolMap = {
19            1: 'Û±',
20            2: 'Û²',
21            3: 'Û³',
22            4: 'Û´',
23            5: 'Ûµ',
24            6: 'Û¶',
25            7: 'Û·',
26            8: 'Û¸',
27            9: 'Û¹',
28            0: 'Û°',
29        },
30        numberMap = {
31            'Û±': '1',
32            'Û²': '2',
33            'Û³': '3',
34            'Û´': '4',
35            'Ûµ': '5',
36            'Û¶': '6',
37            'Û·': '7',
38            'Û¸': '8',
39            'Û¹': '9',
40            'Û°': '0',
41        };
42
43    var fa = moment.defineLocale('fa', {
44        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
45            '_'
46        ),
47        monthsShort:
48            'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
49                '_'
50            ),
51        weekdays:
52            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
53                '_'
54            ),
55        weekdaysShort:
56            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
57                '_'
58            ),
59        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
60        weekdaysParseExact: true,
61        longDateFormat: {
62            LT: 'HH:mm',
63            LTS: 'HH:mm:ss',
64            L: 'DD/MM/YYYY',
65            LL: 'D MMMM YYYY',
66            LLL: 'D MMMM YYYY HH:mm',
67            LLLL: 'dddd, D MMMM YYYY HH:mm',
68        },
69        meridiemParse: /قبل از ظهر|بعد از ظهر/,
70        isPM: function (input) {
71            return /بعد از ظهر/.test(input);
72        },
73        meridiem: function (hour, minute, isLower) {
74            if (hour < 12) {
75                return 'قبل از ظهر';
76            } else {
77                return 'بعد از ظهر';
78            }
79        },
80        calendar: {
81            sameDay: '[امروز ساعت] LT',
82            nextDay: '[فردا ساعت] LT',
83            nextWeek: 'dddd [ساعت] LT',
84            lastDay: '[دیروز ساعت] LT',
85            lastWeek: 'dddd [پیش] [ساعت] LT',
86            sameElse: 'L',
87        },
88        relativeTime: {
89            future: 'در %s',
90            past: '%s پیش',
91            s: 'چند ثانیه',
92            ss: '%d ثانیه',
93            m: 'یک دقیقه',
94            mm: '%d دقیقه',
95            h: 'یک ساعت',
96            hh: '%d ساعت',
97            d: 'یک روز',
98            dd: '%d روز',
99            M: 'یک ماه',
100            MM: '%d ماه',
101            y: 'یک سال',
102            yy: '%d سال',
103        },
104        preparse: function (string) {
105            return string
106                .replace(/[Û°-Û¹]/g, function (match) {
107                    return numberMap[match];
108                })
109                .replace(/،/g, ',');
110        },
111        postformat: function (string) {
112            return string
113                .replace(/\d/g, function (match) {
114                    return symbolMap[match];
115                })
116                .replace(/,/g, '،');
117        },
118        dayOfMonthOrdinalParse: /\d{1,2}م/,
119        ordinal: '%dم',
120        week: {
121            dow: 6, // Saturday is the first day of the week.
122            doy: 12, // The week that contains Jan 12th is the first week of the year.
123        },
124    });
125
126    return fa;
127
128})));
129
130
131/***/ }),
132
133/***/ 158:
134/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
135
136//! moment.js locale configuration
137//! locale : Urdu [ur]
138//! author : Sawood Alam : https://github.com/ibnesayeed
139//! author : Zack : https://github.com/ZackVision
140
141;(function (global, factory) {
142    true ? factory(__webpack_require__(5093)) :
143   0
144}(this, (function (moment) { 'use strict';
145
146    //! moment.js locale configuration
147
148    var months = [
149            'جنوری',
150            'فروری',
151            'مارچ',
152            'اپریل',
153            'مئی',
154            'جون',
155            'جولائی',
156            'اگست',
157            'ستمبر',
158            'اکتوبر',
159            'نومبر',
160            'دسمبر',
161        ],
162        days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
163
164    var ur = moment.defineLocale('ur', {
165        months: months,
166        monthsShort: months,
167        weekdays: days,
168        weekdaysShort: days,
169        weekdaysMin: days,
170        longDateFormat: {
171            LT: 'HH:mm',
172            LTS: 'HH:mm:ss',
173            L: 'DD/MM/YYYY',
174            LL: 'D MMMM YYYY',
175            LLL: 'D MMMM YYYY HH:mm',
176            LLLL: 'dddd، D MMMM YYYY HH:mm',
177        },
178        meridiemParse: /صبح|شام/,
179        isPM: function (input) {
180            return 'شام' === input;
181        },
182        meridiem: function (hour, minute, isLower) {
183            if (hour < 12) {
184                return 'صبح';
185            }
186            return 'شام';
187        },
188        calendar: {
189            sameDay: '[آج بوقت] LT',
190            nextDay: '[کل بوقت] LT',
191            nextWeek: 'dddd [بوقت] LT',
192            lastDay: '[گذشتہ روز بوقت] LT',
193            lastWeek: '[گذشتہ] dddd [بوقت] LT',
194            sameElse: 'L',
195        },
196        relativeTime: {
197            future: '%s بعد',
198            past: '%s قبل',
199            s: 'چند سیکنڈ',
200            ss: '%d سیکنڈ',
201            m: 'ایک منٹ',
202            mm: '%d منٹ',
203            h: 'ایک گھنٹہ',
204            hh: '%d گھنٹے',
205            d: 'ایک دن',
206            dd: '%d دن',
207            M: 'ایک ماہ',
208            MM: '%d ماہ',
209            y: 'ایک سال',
210            yy: '%d سال',
211        },
212        preparse: function (string) {
213            return string.replace(/،/g, ',');
214        },
215        postformat: function (string) {
216            return string.replace(/,/g, '،');
217        },
218        week: {
219            dow: 1, // Monday is the first day of the week.
220            doy: 4, // The week that contains Jan 4th is the first week of the year.
221        },
222    });
223
224    return ur;
225
226})));
227
228
229/***/ }),
230
231/***/ 217:
232/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
233
234//! moment.js locale configuration
235//! locale : Scottish Gaelic [gd]
vendor: 14,434 bytes, lines 236-694
236//! author : Jon Ashdown : https://github.com/jonashdown
237
238;(function (global, factory) {
239    true ? factory(__webpack_require__(5093)) :
240   0
241}(this, (function (moment) { 'use strict';
242
243    //! moment.js locale configuration
244
245    var months = [
246            'Am Faoilleach',
247            'An Gearran',
248            'Am Màrt',
249            'An Giblean',
250            'An Cèitean',
251            'An t-Ògmhios',
252            'An t-Iuchar',
253            'An Lùnastal',
254            'An t-Sultain',
255            'An Dàmhair',
256            'An t-Samhain',
257            'An Dùbhlachd',
258        ],
259        monthsShort = [
260            'Faoi',
261            'Gear',
262            'Màrt',
263            'Gibl',
264            'Cèit',
265            'Ògmh',
266            'Iuch',
267            'Lùn',
268            'Sult',
269            'Dàmh',
270            'Samh',
271            'Dùbh',
272        ],
273        weekdays = [
274            'Didòmhnaich',
275            'Diluain',
276            'Dimàirt',
277            'Diciadain',
278            'Diardaoin',
279            'Dihaoine',
280            'Disathairne',
281        ],
282        weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
283        weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
284
285    var gd = moment.defineLocale('gd', {
286        months: months,
287        monthsShort: monthsShort,
288        monthsParseExact: true,
289        weekdays: weekdays,
290        weekdaysShort: weekdaysShort,
291        weekdaysMin: weekdaysMin,
292        longDateFormat: {
293            LT: 'HH:mm',
294            LTS: 'HH:mm:ss',
295            L: 'DD/MM/YYYY',
296            LL: 'D MMMM YYYY',
297            LLL: 'D MMMM YYYY HH:mm',
298            LLLL: 'dddd, D MMMM YYYY HH:mm',
299        },
300        calendar: {
301            sameDay: '[An-diugh aig] LT',
302            nextDay: '[A-màireach aig] LT',
303            nextWeek: 'dddd [aig] LT',
304            lastDay: '[An-dè aig] LT',
305            lastWeek: 'dddd [seo chaidh] [aig] LT',
306            sameElse: 'L',
307        },
308        relativeTime: {
309            future: 'ann an %s',
310            past: 'bho chionn %s',
311            s: 'beagan diogan',
312            ss: '%d diogan',
313            m: 'mionaid',
314            mm: '%d mionaidean',
315            h: 'uair',
316            hh: '%d uairean',
317            d: 'latha',
318            dd: '%d latha',
319            M: 'mìos',
320            MM: '%d mìosan',
321            y: 'bliadhna',
322            yy: '%d bliadhna',
323        },
324        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
325        ordinal: function (number) {
326            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
327            return number + output;
328        },
329        week: {
330            dow: 1, // Monday is the first day of the week.
331            doy: 4, // The week that contains Jan 4th is the first week of the year.
332        },
333    });
334
335    return gd;
336
337})));
338
339
340/***/ }),
341
342/***/ 304:
343/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
344
345//! moment.js locale configuration
346//! locale : Chinese (Taiwan) [zh-tw]
347//! author : Ben : https://github.com/ben-lin
348//! author : Chris Lam : https://github.com/hehachris
349
350;(function (global, factory) {
351    true ? factory(__webpack_require__(5093)) :
352   0
353}(this, (function (moment) { 'use strict';
354
355    //! moment.js locale configuration
356
357    var zhTw = moment.defineLocale('zh-tw', {
358        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
359            '_'
360        ),
361        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
362            '_'
363        ),
364        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
365        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
366        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
367        longDateFormat: {
368            LT: 'HH:mm',
369            LTS: 'HH:mm:ss',
370            L: 'YYYY/MM/DD',
371            LL: 'YYYY年M月D日',
372            LLL: 'YYYY年M月D日 HH:mm',
373            LLLL: 'YYYY年M月D日dddd HH:mm',
374            l: 'YYYY/M/D',
375            ll: 'YYYY年M月D日',
376            lll: 'YYYY年M月D日 HH:mm',
377            llll: 'YYYY年M月D日dddd HH:mm',
378        },
379        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
380        meridiemHour: function (hour, meridiem) {
381            if (hour === 12) {
382                hour = 0;
383            }
384            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
385                return hour;
386            } else if (meridiem === '中午') {
387                return hour >= 11 ? hour : hour + 12;
388            } else if (meridiem === '下午' || meridiem === '晚上') {
389                return hour + 12;
390            }
391        },
392        meridiem: function (hour, minute, isLower) {
393            var hm = hour * 100 + minute;
394            if (hm < 600) {
395                return '凌晨';
396            } else if (hm < 900) {
397                return '早上';
398            } else if (hm < 1130) {
399                return '上午';
400            } else if (hm < 1230) {
401                return '中午';
402            } else if (hm < 1800) {
403                return '下午';
404            } else {
405                return '晚上';
406            }
407        },
408        calendar: {
409            sameDay: '[今天] LT',
410            nextDay: '[明天] LT',
411            nextWeek: '[下]dddd LT',
412            lastDay: '[昨天] LT',
413            lastWeek: '[上]dddd LT',
414            sameElse: 'L',
415        },
416        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
417        ordinal: function (number, period) {
418            switch (period) {
419                case 'd':
420                case 'D':
421                case 'DDD':
422                    return number + '日';
423                case 'M':
424                    return number + '月';
425                case 'w':
426                case 'W':
427                    return number + '週';
428                default:
429                    return number;
430            }
431        },
432        relativeTime: {
433            future: '%s後',
434            past: '%s前',
435            s: '幾秒',
436            ss: '%d 秒',
437            m: '1 分鐘',
438            mm: '%d 分鐘',
439            h: '1 小時',
440            hh: '%d 小時',
441            d: '1 天',
442            dd: '%d 天',
443            M: '1 個月',
444            MM: '%d 個月',
445            y: '1 å¹´',
446            yy: '%d å¹´',
447        },
448    });
449
450    return zhTw;
451
452})));
453
454
455/***/ }),
456
457/***/ 306:
458/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
459
460//! moment.js locale configuration
461//! locale : Macedonian [mk]
462//! author : Borislav Mickov : https://github.com/B0k0
463//! author : Sashko Todorov : https://github.com/bkyceh
464
465;(function (global, factory) {
466    true ? factory(__webpack_require__(5093)) :
467   0
468}(this, (function (moment) { 'use strict';
469
470    //! moment.js locale configuration
471
472    var mk = moment.defineLocale('mk', {
473        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
474            '_'
475        ),
476        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
477        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
478            '_'
479        ),
480        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
481        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
482        longDateFormat: {
483            LT: 'H:mm',
484            LTS: 'H:mm:ss',
485            L: 'D.MM.YYYY',
486            LL: 'D MMMM YYYY',
487            LLL: 'D MMMM YYYY H:mm',
488            LLLL: 'dddd, D MMMM YYYY H:mm',
489        },
490        calendar: {
491            sameDay: '[Денес во] LT',
492            nextDay: '[Утре во] LT',
493            nextWeek: '[Во] dddd [во] LT',
494            lastDay: '[Вчера во] LT',
495            lastWeek: function () {
496                switch (this.day()) {
497                    case 0:
498                    case 3:
499                    case 6:
500                        return '[Изминатата] dddd [во] LT';
501                    case 1:
502                    case 2:
503                    case 4:
504                    case 5:
505                        return '[Изминатиот] dddd [во] LT';
506                }
507            },
508            sameElse: 'L',
509        },
510        relativeTime: {
511            future: 'за %s',
512            past: 'пред %s',
513            s: 'неколку секунди',
514            ss: '%d секунди',
515            m: 'една минута',
516            mm: '%d минути',
517            h: 'еден час',
518            hh: '%d часа',
519            d: 'еден ден',
520            dd: '%d дена',
521            M: 'еден месец',
522            MM: '%d месеци',
523            y: 'една година',
524            yy: '%d години',
525        },
526        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
527        ordinal: function (number) {
528            var lastDigit = number % 10,
529                last2Digits = number % 100;
530            if (number === 0) {
531                return number + '-ев';
532            } else if (last2Digits === 0) {
533                return number + '-ен';
534            } else if (last2Digits > 10 && last2Digits < 20) {
535                return number + '-ти';
536            } else if (lastDigit === 1) {
537                return number + '-ви';
538            } else if (lastDigit === 2) {
539                return number + '-ри';
540            } else if (lastDigit === 7 || lastDigit === 8) {
541                return number + '-ми';
542            } else {
543                return number + '-ти';
544            }
545        },
546        week: {
547            dow: 1, // Monday is the first day of the week.
548            doy: 7, // The week that contains Jan 7th is the first week of the year.
549        },
550    });
551
552    return mk;
553
554})));
555
556
557/***/ }),
558
559/***/ 527:
560/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
561
562//! moment.js locale configuration
563//! locale : Finnish [fi]
564//! author : Tarmo Aidantausta : https://github.com/bleadof
565
566;(function (global, factory) {
567    true ? factory(__webpack_require__(5093)) :
568   0
569}(this, (function (moment) { 'use strict';
570
571    //! moment.js locale configuration
572
573    var numbersPast =
574            'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
575                ' '
576            ),
577        numbersFuture = [
578            'nolla',
579            'yhden',
580            'kahden',
581            'kolmen',
582            'neljän',
583            'viiden',
584            'kuuden',
585            numbersPast[7],
586            numbersPast[8],
587            numbersPast[9],
588        ];
589    function translate(number, withoutSuffix, key, isFuture) {
590        var result = '';
591        switch (key) {
592            case 's':
593                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
594            case 'ss':
595                result = isFuture ? 'sekunnin' : 'sekuntia';
596                break;
597            case 'm':
598                return isFuture ? 'minuutin' : 'minuutti';
599            case 'mm':
600                result = isFuture ? 'minuutin' : 'minuuttia';
601                break;
602            case 'h':
603                return isFuture ? 'tunnin' : 'tunti';
604            case 'hh':
605                result = isFuture ? 'tunnin' : 'tuntia';
606                break;
607            case 'd':
608                return isFuture ? 'päivän' : 'päivä';
609            case 'dd':
610                result = isFuture ? 'päivän' : 'päivää';
611                break;
612            case 'M':
613                return isFuture ? 'kuukauden' : 'kuukausi';
614            case 'MM':
615                result = isFuture ? 'kuukauden' : 'kuukautta';
616                break;
617            case 'y':
618                return isFuture ? 'vuoden' : 'vuosi';
619            case 'yy':
620                result = isFuture ? 'vuoden' : 'vuotta';
621                break;
622        }
623        result = verbalNumber(number, isFuture) + ' ' + result;
624        return result;
625    }
626    function verbalNumber(number, isFuture) {
627        return number < 10
628            ? isFuture
629                ? numbersFuture[number]
630                : numbersPast[number]
631            : number;
632    }
633
634    var fi = moment.defineLocale('fi', {
635        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
636            '_'
637        ),
638        monthsShort:
639            'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
640                '_'
641            ),
642        weekdays:
643            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
644                '_'
645            ),
646        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
647        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
648        longDateFormat: {
649            LT: 'HH.mm',
650            LTS: 'HH.mm.ss',
651            L: 'DD.MM.YYYY',
652            LL: 'Do MMMM[ta] YYYY',
653            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
654            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
655            l: 'D.M.YYYY',
656            ll: 'Do MMM YYYY',
657            lll: 'Do MMM YYYY, [klo] HH.mm',
658            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
659        },
660        calendar: {
661            sameDay: '[tänään] [klo] LT',
662            nextDay: '[huomenna] [klo] LT',
663            nextWeek: 'dddd [klo] LT',
664            lastDay: '[eilen] [klo] LT',
665            lastWeek: '[viime] dddd[na] [klo] LT',
666            sameElse: 'L',
667        },
668        relativeTime: {
669            future: '%s päästä',
670            past: '%s sitten',
671            s: translate,
672            ss: translate,
673            m: translate,
674            mm: translate,
675            h: translate,
676            hh: translate,
677            d: translate,
678            dd: translate,
679            M: translate,
680            MM: translate,
681            y: translate,
682            yy: translate,
683        },
684        dayOfMonthOrdinalParse: /\d{1,2}\./,
685        ordinal: '%d.',
686        week: {
687            dow: 1, // Monday is the first day of the week.
688            doy: 4, // The week that contains Jan 4th is the first week of the year.
689        },
690    });
691
692    return fi;
693
694}
vendor: 5,148 bytes, lines 694-854
694)));
695
696
697/***/ }),
698
699/***/ 609:
700/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
701
702//! moment.js locale configuration
703//! locale : Hungarian [hu]
704//! author : Adam Brunner : https://github.com/adambrunner
705//! author : Peter Viszt  : https://github.com/passatgt
706
707;(function (global, factory) {
708    true ? factory(__webpack_require__(5093)) :
709   0
710}(this, (function (moment) { 'use strict';
711
712    //! moment.js locale configuration
713
714    var weekEndings =
715        'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
716    function translate(number, withoutSuffix, key, isFuture) {
717        var num = number;
718        switch (key) {
719            case 's':
720                return isFuture || withoutSuffix
721                    ? 'néhány másodperc'
722                    : 'néhány másodperce';
723            case 'ss':
724                return num + (isFuture || withoutSuffix)
725                    ? ' másodperc'
726                    : ' másodperce';
727            case 'm':
728                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
729            case 'mm':
730                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
731            case 'h':
732                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
733            case 'hh':
734                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
735            case 'd':
736                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
737            case 'dd':
738                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
739            case 'M':
740                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
741            case 'MM':
742                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
743            case 'y':
744                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
745            case 'yy':
746                return num + (isFuture || withoutSuffix ? ' év' : ' éve');
747        }
748        return '';
749    }
750    function week(isFuture) {
751        return (
752            (isFuture ? '' : '[múlt] ') +
753            '[' +
754            weekEndings[this.day()] +
755            '] LT[-kor]'
756        );
757    }
758
759    var hu = moment.defineLocale('hu', {
760        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
761            '_'
762        ),
763        monthsShort:
764            'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
765                '_'
766            ),
767        monthsParseExact: true,
768        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
769        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
770        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
771        longDateFormat: {
772            LT: 'H:mm',
773            LTS: 'H:mm:ss',
774            L: 'YYYY.MM.DD.',
775            LL: 'YYYY. MMMM D.',
776            LLL: 'YYYY. MMMM D. H:mm',
777            LLLL: 'YYYY. MMMM D., dddd H:mm',
778        },
779        meridiemParse: /de|du/i,
780        isPM: function (input) {
781            return input.charAt(1).toLowerCase() === 'u';
782        },
783        meridiem: function (hours, minutes, isLower) {
784            if (hours < 12) {
785                return isLower === true ? 'de' : 'DE';
786            } else {
787                return isLower === true ? 'du' : 'DU';
788            }
789        },
790        calendar: {
791            sameDay: '[ma] LT[-kor]',
792            nextDay: '[holnap] LT[-kor]',
793            nextWeek: function () {
794                return week.call(this, true);
795            },
796            lastDay: '[tegnap] LT[-kor]',
797            lastWeek: function () {
798                return week.call(this, false);
799            },
800            sameElse: 'L',
801        },
802        relativeTime: {
803            future: '%s múlva',
804            past: '%s',
805            s: translate,
806            ss: translate,
807            m: translate,
808            mm: translate,
809            h: translate,
810            hh: translate,
811            d: translate,
812            dd: translate,
813            M: translate,
814            MM: translate,
815            y: translate,
816            yy: translate,
817        },
818        dayOfMonthOrdinalParse: /\d{1,2}\./,
819        ordinal: '%d.',
820        week: {
821            dow: 1, // Monday is the first day of the week.
822            doy: 4, // The week that contains Jan 4th is the first week of the year.
823        },
824    });
825
826    return hu;
827
828})));
829
830
831/***/ }),
832
833/***/ 708:
834/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
835
836//! moment.js locale configuration
837//! locale : Maldivian [dv]
838//! author : Jawish Hameed : https://github.com/jawish
839
840;(function (global, factory) {
841    true ? factory(__webpack_require__(5093)) :
842   0
843}(this, (function (moment) { 'use strict';
844
845    //! moment.js locale configuration
846
847    var months = [
848            'ޖެނުއަރީ',
849            'ފެބްރުއަރީ',
850            'މާރިޗު',
851            'އޭޕްރީލު',
852            'މޭ',
853            'ޖޫން',
854            'ޖުލައި',
vendor: 8,827 bytes, lines 855-1137
855            'އޯގަސްޓު',
856            'ސެޕްޓެމްބަރު',
857            'އޮކްޓޯބަރު',
858            'ނޮވެމްބަރު',
859            'ޑިސެމްބަރު',
860        ],
861        weekdays = [
862            'އާދިއްތަ',
863            'ހޯމަ',
864            'އަންގާރަ',
865            'ބުދަ',
866            'ބުރާސްފަތި',
867            'ހުކުރު',
868            'ހޮނިހިރު',
869        ];
870
871    var dv = moment.defineLocale('dv', {
872        months: months,
873        monthsShort: months,
874        weekdays: weekdays,
875        weekdaysShort: weekdays,
876        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
877        longDateFormat: {
878            LT: 'HH:mm',
879            LTS: 'HH:mm:ss',
880            L: 'D/M/YYYY',
881            LL: 'D MMMM YYYY',
882            LLL: 'D MMMM YYYY HH:mm',
883            LLLL: 'dddd D MMMM YYYY HH:mm',
884        },
885        meridiemParse: /މކ|މފ/,
886        isPM: function (input) {
887            return 'މފ' === input;
888        },
889        meridiem: function (hour, minute, isLower) {
890            if (hour < 12) {
891                return 'މކ';
892            } else {
893                return 'މފ';
894            }
895        },
896        calendar: {
897            sameDay: '[މިއަދު] LT',
898            nextDay: '[މާދަމާ] LT',
899            nextWeek: 'dddd LT',
900            lastDay: '[އިއްޔެ] LT',
901            lastWeek: '[ފާއިތުވި] dddd LT',
902            sameElse: 'L',
903        },
904        relativeTime: {
905            future: 'ތެރޭގައި %s',
906            past: 'ކުރިން %s',
907            s: 'ސިކުންތުކޮޅެއް',
908            ss: 'd% ސިކުންތު',
909            m: 'މިނިޓެއް',
910            mm: 'މިނިޓު %d',
911            h: 'ގަޑިއިރެއް',
912            hh: 'ގަޑިއިރު %d',
913            d: 'ދުވަހެއް',
914            dd: 'ދުވަސް %d',
915            M: 'މަހެއް',
916            MM: 'މަސް %d',
917            y: 'އަހަރެއް',
918            yy: 'އަހަރު %d',
919        },
920        preparse: function (string) {
921            return string.replace(/،/g, ',');
922        },
923        postformat: function (string) {
924            return string.replace(/,/g, '،');
925        },
926        week: {
927            dow: 7, // Sunday is the first day of the week.
928            doy: 12, // The week that contains Jan 12th is the first week of the year.
929        },
930    });
931
932    return dv;
933
934})));
935
936
937/***/ }),
938
939/***/ 748:
940/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
941
942//! moment.js locale configuration
943//! locale : Swahili [sw]
944//! author : Fahad Kassim : https://github.com/fadsel
945
946;(function (global, factory) {
947    true ? factory(__webpack_require__(5093)) :
948   0
949}(this, (function (moment) { 'use strict';
950
951    //! moment.js locale configuration
952
953    var sw = moment.defineLocale('sw', {
954        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
955            '_'
956        ),
957        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
958        weekdays:
959            'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
960                '_'
961            ),
962        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
963        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
964        weekdaysParseExact: true,
965        longDateFormat: {
966            LT: 'hh:mm A',
967            LTS: 'HH:mm:ss',
968            L: 'DD.MM.YYYY',
969            LL: 'D MMMM YYYY',
970            LLL: 'D MMMM YYYY HH:mm',
971            LLLL: 'dddd, D MMMM YYYY HH:mm',
972        },
973        calendar: {
974            sameDay: '[leo saa] LT',
975            nextDay: '[kesho saa] LT',
976            nextWeek: '[wiki ijayo] dddd [saat] LT',
977            lastDay: '[jana] LT',
978            lastWeek: '[wiki iliyopita] dddd [saat] LT',
979            sameElse: 'L',
980        },
981        relativeTime: {
982            future: '%s baadaye',
983            past: 'tokea %s',
984            s: 'hivi punde',
985            ss: 'sekunde %d',
986            m: 'dakika moja',
987            mm: 'dakika %d',
988            h: 'saa limoja',
989            hh: 'masaa %d',
990            d: 'siku moja',
991            dd: 'siku %d',
992            M: 'mwezi mmoja',
993            MM: 'miezi %d',
994            y: 'mwaka mmoja',
995            yy: 'miaka %d',
996        },
997        week: {
998            dow: 1, // Monday is the first day of the week.
999            doy: 7, // The week that contains Jan 7th is the first week of the year.
1000        },
1001    });
1002
1003    return sw;
1004
1005})));
1006
1007
1008/***/ }),
1009
1010/***/ 838:
1011/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1012
1013//! moment.js locale configuration
1014//! locale : Spanish (Dominican Republic) [es-do]
1015
1016;(function (global, factory) {
1017    true ? factory(__webpack_require__(5093)) :
1018   0
1019}(this, (function (moment) { 'use strict';
1020
1021    //! moment.js locale configuration
1022
1023    var monthsShortDot =
1024            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
1025                '_'
1026            ),
1027        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
1028        monthsParse = [
1029            /^ene/i,
1030            /^feb/i,
1031            /^mar/i,
1032            /^abr/i,
1033            /^may/i,
1034            /^jun/i,
1035            /^jul/i,
1036            /^ago/i,
1037            /^sep/i,
1038            /^oct/i,
1039            /^nov/i,
1040            /^dic/i,
1041        ],
1042        monthsRegex =
1043            /^(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;
1044
1045    var esDo = moment.defineLocale('es-do', {
1046        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
1047            '_'
1048        ),
1049        monthsShort: function (m, format) {
1050            if (!m) {
1051                return monthsShortDot;
1052            } else if (/-MMM-/.test(format)) {
1053                return monthsShort[m.month()];
1054            } else {
1055                return monthsShortDot[m.month()];
1056            }
1057        },
1058        monthsRegex: monthsRegex,
1059        monthsShortRegex: monthsRegex,
1060        monthsStrictRegex:
1061            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
1062        monthsShortStrictRegex:
1063            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
1064        monthsParse: monthsParse,
1065        longMonthsParse: monthsParse,
1066        shortMonthsParse: monthsParse,
1067        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
1068        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
1069        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
1070        weekdaysParseExact: true,
1071        longDateFormat: {
1072            LT: 'h:mm A',
1073            LTS: 'h:mm:ss A',
1074            L: 'DD/MM/YYYY',
1075            LL: 'D [de] MMMM [de] YYYY',
1076            LLL: 'D [de] MMMM [de] YYYY h:mm A',
1077            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
1078        },
1079        calendar: {
1080            sameDay: function () {
1081                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
1082            },
1083            nextDay: function () {
1084                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
1085            },
1086            nextWeek: function () {
1087                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
1088            },
1089            lastDay: function () {
1090                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
1091            },
1092            lastWeek: function () {
1093                return (
1094                    '[el] dddd [pasado a la' +
1095                    (this.hours() !== 1 ? 's' : '') +
1096                    '] LT'
1097                );
1098            },
1099            sameElse: 'L',
1100        },
1101        relativeTime: {
1102            future: 'en %s',
1103            past: 'hace %s',
1104            s: 'unos segundos',
1105            ss: '%d segundos',
1106            m: 'un minuto',
1107            mm: '%d minutos',
1108            h: 'una hora',
1109            hh: '%d horas',
1110            d: 'un día',
1111            dd: '%d días',
1112            w: 'una semana',
1113            ww: '%d semanas',
1114            M: 'un mes',
1115            MM: '%d meses',
1116            y: 'un año',
1117            yy: '%d años',
1118        },
1119        dayOfMonthOrdinalParse: /\d{1,2}º/,
1120        ordinal: '%dº',
1121        week: {
1122            dow: 1, // Monday is the first day of the week.
1123            doy: 4, // The week that contains Jan 4th is the first week of the year.
1124        },
1125    });
1126
1127    return esDo;
1128
1129})));
1130
1131
1132/***/ }),
1133
1134/***/ 1011:
1135/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1136
1137//! moment.js locale configuration
1138//! locale : Swedish [sv]
1139//! author : Jens Alm : https://github.com/ulmus
1140
1141;(function (global, factory) {
1142    true ? factory(__webpack_require__(5093)) :
1143   0
1144}(this, (function (moment) { 'use strict';
1145
1146    //! moment.js locale configuration
1147
1148    var sv = moment.defineLocale('sv', {
1149        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
1150            '_'
1151        ),
1152        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
1153        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
1154        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
1155        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
1156        longDateFormat: {
1157            LT: 'HH:mm',
1158            LTS: 'HH:mm:ss',
1159            L: 'YYYY-MM-DD',
1160            LL: 'D MMMM YYYY',
1161            LLL: 'D MMMM YYYY [kl.] HH:mm',
1162            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
1163            lll: 'D MMM YYYY HH:mm',
1164            llll: 'ddd D MMM YYYY HH:mm',
1165        },
1166        calendar: {
1167            sameDay: '[Idag] LT',
1168            nextDay: '[Imorgon] LT',
1169            lastDay: '[Igår] LT',
1170            nextWeek: '[PÃ¥] dddd LT',
1171            lastWeek: '[I] dddd[s] LT',
1172            sameElse: 'L',
1173        },
1174        relativeTime: {
1175            future: 'om %s',
1176            past: 'för %s sedan',
1177            s: 'några sekunder',
1178            ss: '%d sekunder',
1179            m: 'en minut',
1180            mm: '%d minuter',
1181            h: 'en timme',
1182            hh: '%d timmar',
1183            d: 'en dag',
1184            dd: '%d dagar',
1185            M: 'en månad',
1186            MM: '%d månader',
1187            y: 'ett år',
1188            yy: '%d år',
1189        },
1190        dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
1191        ordinal: function (number) {
1192            var b = number % 10,
1193                output =
1194                    ~~((number % 100) / 10) === 1
1195                        ? ':e'
1196                        : b === 1
1197                          ? ':a'
1198                          : b === 2
1199                            ? ':a'
1200                            : b === 3
1201                              ? ':e'
1202                              : ':e';
1203            return number + output;
1204        },
1205        week: {
1206            dow: 1, // Monday is the first day of the week.
1207            doy: 4, // The week that contains Jan 4th is the first week of the year.
1208        },
1209    });
1210
1211    return sv;
1212
1213})));
1214
1215
1216/***/ }),
1217
1218/***/ 1025:
1219/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1220
1221//! moment.js locale configuration
1222//! locale : Tamil [ta]
1223//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
1224
1225;(function (global, factory) {
1226    true ? factory(__webpack_require__(5093)) :
1227   0
1228}(this, (function (moment) { 'use strict';
1229
1230    //! moment.js locale configuration
1231
1232    var symbolMap = {
1233            1: '௧',
1234            2: '௨',
1235            3: '௩',
1236            4: '௪',
1237            5: '௫',
1238            6: '௬',
1239            7: '௭',
1240            8: '௮',
1241            9: '௯',
1242            0: '௦',
1243        },
1244        numberMap = {
1245            '௧': '1',
1246            '௨': '2',
1247            '௩': '3',
1248            '௪': '4',
1249            '௫': '5',
1250            '௬': '6',
1251            '௭': '7',
1252            '௮': '8',
1253            '௯': '9',
1254            '௦': '0',
1255        };
1256
1257    var ta = moment.defineLocale('ta', {
1258        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
1259            '_'
1260        ),
1261        monthsShort:
1262            'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
1263                '_'
1264            ),
1265        weekdays:
1266            'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
1267                '_'
1268            ),
1269        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
1270            '_'
1271        ),
1272        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
1273        longDateFormat: {
1274            LT: 'HH:mm',
1275            LTS: 'HH:mm:ss',
1276            L: 'DD/MM/YYYY',
1277            LL: 'D MMMM YYYY',
1278            LLL: 'D MMMM YYYY, HH:mm',
1279            LLLL: 'dddd, D MMMM YYYY, HH:mm',
1280        },
1281        calendar: {
1282            sameDay: '[இன்று] LT',
1283            nextDay: '[நாளை] LT',
1284            nextWeek: 'dddd, LT',
1285            lastDay: '[நேற்று] LT',
1286            lastWeek: '[கடந்த வாரம்] dddd, LT',
1287            sameElse: 'L',
1288        },
1289        relativeTime: {
1290            future: '%s இல்',
1291            past: '%s முன்',
1292            s: 'ஒரு சில விநாடிகள்',
1293            ss: '%d விநாடிகள்',
1294            m: 'ஒரு நிமிடம்',
1295            mm: '%d நிமிடங்கள்',
1296            h: 'ஒரு மணி நேரம்',
1297            hh: '%d மணி நேரம்',
1298            d: 'ஒரு நாள்',
1299            dd: '%d நாட்கள்',
1300            M: 'ஒரு மாதம்',
1301            MM: '%d மாதங்கள்',
1302            y: 'ஒரு வருடம்',
1303            yy: '%d ஆண்டுகள்',
1304        },
1305        dayOfMonthOrdinalParse: /\d{1,2}வது/,
1306        ordinal: function (number) {
1307            return number + 'வது';
1308        },
1309        preparse: function (string) {
1310            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
1311                return numberMap[match];
1312            });
1313        },
1314        postformat: function (string) {
1315            return string.replace(/\d/g, function (match) {
1316                return symbolMap[match];
1317            });
1318        },
1319        // refer http://ta.wikipedia.org/s/1er1
vendor: 49,152 bytes, lines 1320-2853
1320        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
1321        meridiem: function (hour, minute, isLower) {
1322            if (hour < 2) {
1323                return ' யாமம்';
1324            } else if (hour < 6) {
1325                return ' வைகறை'; // வைகறை
1326            } else if (hour < 10) {
1327                return ' காலை'; // காலை
1328            } else if (hour < 14) {
1329                return ' நண்பகல்'; // நண்பகல்
1330            } else if (hour < 18) {
1331                return ' எற்பாடு'; // எற்பாடு
1332            } else if (hour < 22) {
1333                return ' மாலை'; // மாலை
1334            } else {
1335                return ' யாமம்';
1336            }
1337        },
1338        meridiemHour: function (hour, meridiem) {
1339            if (hour === 12) {
1340                hour = 0;
1341            }
1342            if (meridiem === 'யாமம்') {
1343                return hour < 2 ? hour : hour + 12;
1344            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
1345                return hour;
1346            } else if (meridiem === 'நண்பகல்') {
1347                return hour >= 10 ? hour : hour + 12;
1348            } else {
1349                return hour + 12;
1350            }
1351        },
1352        week: {
1353            dow: 0, // Sunday is the first day of the week.
1354            doy: 6, // The week that contains Jan 6th is the first week of the year.
1355        },
1356    });
1357
1358    return ta;
1359
1360})));
1361
1362
1363/***/ }),
1364
1365/***/ 1052:
1366/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1367
1368//! moment.js locale configuration
1369//! locale : Klingon [tlh]
1370//! author : Dominika Kruk : https://github.com/amaranthrose
1371
1372;(function (global, factory) {
1373    true ? factory(__webpack_require__(5093)) :
1374   0
1375}(this, (function (moment) { 'use strict';
1376
1377    //! moment.js locale configuration
1378
1379    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
1380
1381    function translateFuture(output) {
1382        var time = output;
1383        time =
1384            output.indexOf('jaj') !== -1
1385                ? time.slice(0, -3) + 'leS'
1386                : output.indexOf('jar') !== -1
1387                  ? time.slice(0, -3) + 'waQ'
1388                  : output.indexOf('DIS') !== -1
1389                    ? time.slice(0, -3) + 'nem'
1390                    : time + ' pIq';
1391        return time;
1392    }
1393
1394    function translatePast(output) {
1395        var time = output;
1396        time =
1397            output.indexOf('jaj') !== -1
1398                ? time.slice(0, -3) + 'Hu’'
1399                : output.indexOf('jar') !== -1
1400                  ? time.slice(0, -3) + 'wen'
1401                  : output.indexOf('DIS') !== -1
1402                    ? time.slice(0, -3) + 'ben'
1403                    : time + ' ret';
1404        return time;
1405    }
1406
1407    function translate(number, withoutSuffix, string, isFuture) {
1408        var numberNoun = numberAsNoun(number);
1409        switch (string) {
1410            case 'ss':
1411                return numberNoun + ' lup';
1412            case 'mm':
1413                return numberNoun + ' tup';
1414            case 'hh':
1415                return numberNoun + ' rep';
1416            case 'dd':
1417                return numberNoun + ' jaj';
1418            case 'MM':
1419                return numberNoun + ' jar';
1420            case 'yy':
1421                return numberNoun + ' DIS';
1422        }
1423    }
1424
1425    function numberAsNoun(number) {
1426        var hundred = Math.floor((number % 1000) / 100),
1427            ten = Math.floor((number % 100) / 10),
1428            one = number % 10,
1429            word = '';
1430        if (hundred > 0) {
1431            word += numbersNouns[hundred] + 'vatlh';
1432        }
1433        if (ten > 0) {
1434            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
1435        }
1436        if (one > 0) {
1437            word += (word !== '' ? ' ' : '') + numbersNouns[one];
1438        }
1439        return word === '' ? 'pagh' : word;
1440    }
1441
1442    var tlh = moment.defineLocale('tlh', {
1443        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(
1444            '_'
1445        ),
1446        monthsShort:
1447            '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(
1448                '_'
1449            ),
1450        monthsParseExact: true,
1451        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
1452            '_'
1453        ),
1454        weekdaysShort:
1455            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
1456        weekdaysMin:
1457            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
1458        longDateFormat: {
1459            LT: 'HH:mm',
1460            LTS: 'HH:mm:ss',
1461            L: 'DD.MM.YYYY',
1462            LL: 'D MMMM YYYY',
1463            LLL: 'D MMMM YYYY HH:mm',
1464            LLLL: 'dddd, D MMMM YYYY HH:mm',
1465        },
1466        calendar: {
1467            sameDay: '[DaHjaj] LT',
1468            nextDay: '[wa’leS] LT',
1469            nextWeek: 'LLL',
1470            lastDay: '[wa’Hu’] LT',
1471            lastWeek: 'LLL',
1472            sameElse: 'L',
1473        },
1474        relativeTime: {
1475            future: translateFuture,
1476            past: translatePast,
1477            s: 'puS lup',
1478            ss: translate,
1479            m: 'wa’ tup',
1480            mm: translate,
1481            h: 'wa’ rep',
1482            hh: translate,
1483            d: 'wa’ jaj',
1484            dd: translate,
1485            M: 'wa’ jar',
1486            MM: translate,
1487            y: 'wa’ DIS',
1488            yy: translate,
1489        },
1490        dayOfMonthOrdinalParse: /\d{1,2}\./,
1491        ordinal: '%d.',
1492        week: {
1493            dow: 1, // Monday is the first day of the week.
1494            doy: 4, // The week that contains Jan 4th is the first week of the year.
1495        },
1496    });
1497
1498    return tlh;
1499
1500})));
1501
1502
1503/***/ }),
1504
1505/***/ 1135:
1506/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1507
1508//! moment.js locale configuration
1509//! locale : Vietnamese [vi]
1510//! author : Bang Nguyen : https://github.com/bangnk
1511//! author : Chien Kira : https://github.com/chienkira
1512
1513;(function (global, factory) {
1514    true ? factory(__webpack_require__(5093)) :
1515   0
1516}(this, (function (moment) { 'use strict';
1517
1518    //! moment.js locale configuration
1519
1520    var vi = moment.defineLocale('vi', {
1521        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(
1522            '_'
1523        ),
1524        monthsShort:
1525            '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(
1526                '_'
1527            ),
1528        monthsParseExact: true,
1529        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
1530            '_'
1531        ),
1532        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
1533        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
1534        weekdaysParseExact: true,
1535        meridiemParse: /sa|ch/i,
1536        isPM: function (input) {
1537            return /^ch$/i.test(input);
1538        },
1539        meridiem: function (hours, minutes, isLower) {
1540            if (hours < 12) {
1541                return isLower ? 'sa' : 'SA';
1542            } else {
1543                return isLower ? 'ch' : 'CH';
1544            }
1545        },
1546        longDateFormat: {
1547            LT: 'HH:mm',
1548            LTS: 'HH:mm:ss',
1549            L: 'DD/MM/YYYY',
1550            LL: 'D MMMM [năm] YYYY',
1551            LLL: 'D MMMM [năm] YYYY HH:mm',
1552            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
1553            l: 'DD/M/YYYY',
1554            ll: 'D MMM YYYY',
1555            lll: 'D MMM YYYY HH:mm',
1556            llll: 'ddd, D MMM YYYY HH:mm',
1557        },
1558        calendar: {
1559            sameDay: '[Hôm nay lúc] LT',
1560            nextDay: '[Ngày mai lúc] LT',
1561            nextWeek: 'dddd [tuần tới lúc] LT',
1562            lastDay: '[Hôm qua lúc] LT',
1563            lastWeek: 'dddd [tuần trước lúc] LT',
1564            sameElse: 'L',
1565        },
1566        relativeTime: {
1567            future: '%s tới',
1568            past: '%s trước',
1569            s: 'vài giây',
1570            ss: '%d giây',
1571            m: 'một phút',
1572            mm: '%d phút',
1573            h: 'một giờ',
1574            hh: '%d giờ',
1575            d: 'một ngày',
1576            dd: '%d ngày',
1577            w: 'một tuần',
1578            ww: '%d tuần',
1579            M: 'một tháng',
1580            MM: '%d tháng',
1581            y: 'một năm',
1582            yy: '%d năm',
1583        },
1584        dayOfMonthOrdinalParse: /\d{1,2}/,
1585        ordinal: function (number) {
1586            return number;
1587        },
1588        week: {
1589            dow: 1, // Monday is the first day of the week.
1590            doy: 4, // The week that contains Jan 4th is the first week of the year.
1591        },
1592    });
1593
1594    return vi;
1595
1596})));
1597
1598
1599/***/ }),
1600
1601/***/ 1221:
1602/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1603
1604//! moment.js locale configuration
1605//! locale : Sindhi [sd]
1606//! author : Narain Sagar : https://github.com/narainsagar
1607
1608;(function (global, factory) {
1609    true ? factory(__webpack_require__(5093)) :
1610   0
1611}(this, (function (moment) { 'use strict';
1612
1613    //! moment.js locale configuration
1614
1615    var months = [
1616            'جنوري',
1617            'فيبروري',
1618            'مارچ',
1619            'اپريل',
1620            'مئي',
1621            'جون',
1622            'جولاءِ',
1623            'آگسٽ',
1624            'سيپٽمبر',
1625            'آڪٽوبر',
1626            'نومبر',
1627            'ڊسمبر',
1628        ],
1629        days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
1630
1631    var sd = moment.defineLocale('sd', {
1632        months: months,
1633        monthsShort: months,
1634        weekdays: days,
1635        weekdaysShort: days,
1636        weekdaysMin: days,
1637        longDateFormat: {
1638            LT: 'HH:mm',
1639            LTS: 'HH:mm:ss',
1640            L: 'DD/MM/YYYY',
1641            LL: 'D MMMM YYYY',
1642            LLL: 'D MMMM YYYY HH:mm',
1643            LLLL: 'dddd، D MMMM YYYY HH:mm',
1644        },
1645        meridiemParse: /صبح|شام/,
1646        isPM: function (input) {
1647            return 'شام' === input;
1648        },
1649        meridiem: function (hour, minute, isLower) {
1650            if (hour < 12) {
1651                return 'صبح';
1652            }
1653            return 'شام';
1654        },
1655        calendar: {
1656            sameDay: '[اڄ] LT',
1657            nextDay: '[سڀاڻي] LT',
1658            nextWeek: 'dddd [اڳين هفتي تي] LT',
1659            lastDay: '[ڪالهه] LT',
1660            lastWeek: '[گزريل هفتي] dddd [تي] LT',
1661            sameElse: 'L',
1662        },
1663        relativeTime: {
1664            future: '%s پوء',
1665            past: '%s اڳ',
1666            s: 'چند سيڪنڊ',
1667            ss: '%d سيڪنڊ',
1668            m: 'هڪ منٽ',
1669            mm: '%d منٽ',
1670            h: 'هڪ ڪلاڪ',
1671            hh: '%d ڪلاڪ',
1672            d: 'هڪ ڏينهن',
1673            dd: '%d ڏينهن',
1674            M: 'هڪ مهينو',
1675            MM: '%d مهينا',
1676            y: 'هڪ سال',
1677            yy: '%d سال',
1678        },
1679        preparse: function (string) {
1680            return string.replace(/،/g, ',');
1681        },
1682        postformat: function (string) {
1683            return string.replace(/,/g, '،');
1684        },
1685        week: {
1686            dow: 1, // Monday is the first day of the week.
1687            doy: 4, // The week that contains Jan 4th is the first week of the year.
1688        },
1689    });
1690
1691    return sd;
1692
1693})));
1694
1695
1696/***/ }),
1697
1698/***/ 1290:
1699/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1700
1701//! moment.js locale configuration
1702//! locale : Bengali [bn]
1703//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
1704
1705;(function (global, factory) {
1706    true ? factory(__webpack_require__(5093)) :
1707   0
1708}(this, (function (moment) { 'use strict';
1709
1710    //! moment.js locale configuration
1711
1712    var symbolMap = {
1713            1: 'à§§',
1714            2: '২',
1715            3: 'à§©',
1716            4: '৪',
1717            5: 'à§«',
1718            6: '৬',
1719            7: 'à§­',
1720            8: 'à§®',
1721            9: '৯',
1722            0: '০',
1723        },
1724        numberMap = {
1725            'à§§': '1',
1726            '২': '2',
1727            'à§©': '3',
1728            '৪': '4',
1729            'à§«': '5',
1730            '৬': '6',
1731            'à§­': '7',
1732            'à§®': '8',
1733            '৯': '9',
1734            '০': '0',
1735        };
1736
1737    var bn = moment.defineLocale('bn', {
1738        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
1739            '_'
1740        ),
1741        monthsShort:
1742            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
1743                '_'
1744            ),
1745        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
1746            '_'
1747        ),
1748        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
1749        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
1750        longDateFormat: {
1751            LT: 'A h:mm সময়',
1752            LTS: 'A h:mm:ss সময়',
1753            L: 'DD/MM/YYYY',
1754            LL: 'D MMMM YYYY',
1755            LLL: 'D MMMM YYYY, A h:mm সময়',
1756            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
1757        },
1758        calendar: {
1759            sameDay: '[আজ] LT',
1760            nextDay: '[আগামীকাল] LT',
1761            nextWeek: 'dddd, LT',
1762            lastDay: '[গতকাল] LT',
1763            lastWeek: '[গত] dddd, LT',
1764            sameElse: 'L',
1765        },
1766        relativeTime: {
1767            future: '%s পরে',
1768            past: '%s আগে',
1769            s: 'কয়েক সেকেন্ড',
1770            ss: '%d সেকেন্ড',
1771            m: 'এক মিনিট',
1772            mm: '%d মিনিট',
1773            h: 'এক ঘন্টা',
1774            hh: '%d ঘন্টা',
1775            d: 'এক দিন',
1776            dd: '%d দিন',
1777            M: 'এক মাস',
1778            MM: '%d মাস',
1779            y: 'এক বছর',
1780            yy: '%d বছর',
1781        },
1782        preparse: function (string) {
1783            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
1784                return numberMap[match];
1785            });
1786        },
1787        postformat: function (string) {
1788            return string.replace(/\d/g, function (match) {
1789                return symbolMap[match];
1790            });
1791        },
1792        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
1793        meridiemHour: function (hour, meridiem) {
1794            if (hour === 12) {
1795                hour = 0;
1796            }
1797            if (
1798                (meridiem === 'রাত' && hour >= 4) ||
1799                (meridiem === 'দুপুর' && hour < 5) ||
1800                meridiem === 'বিকাল'
1801            ) {
1802                return hour + 12;
1803            } else {
1804                return hour;
1805            }
1806        },
1807        meridiem: function (hour, minute, isLower) {
1808            if (hour < 4) {
1809                return 'রাত';
1810            } else if (hour < 10) {
1811                return 'সকাল';
1812            } else if (hour < 17) {
1813                return 'দুপুর';
1814            } else if (hour < 20) {
1815                return 'বিকাল';
1816            } else {
1817                return 'রাত';
1818            }
1819        },
1820        week: {
1821            dow: 0, // Sunday is the first day of the week.
1822            doy: 6, // The week that contains Jan 6th is the first week of the year.
1823        },
1824    });
1825
1826    return bn;
1827
1828})));
1829
1830
1831/***/ }),
1832
1833/***/ 1470:
1834/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1835
1836//! moment.js locale configuration
1837//! locale : Breton [br]
1838//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
1839
1840;(function (global, factory) {
1841    true ? factory(__webpack_require__(5093)) :
1842   0
1843}(this, (function (moment) { 'use strict';
1844
1845    //! moment.js locale configuration
1846
1847    function relativeTimeWithMutation(number, withoutSuffix, key) {
1848        var format = {
1849            mm: 'munutenn',
1850            MM: 'miz',
1851            dd: 'devezh',
1852        };
1853        return number + ' ' + mutation(format[key], number);
1854    }
1855    function specialMutationForYears(number) {
1856        switch (lastNumber(number)) {
1857            case 1:
1858            case 3:
1859            case 4:
1860            case 5:
1861            case 9:
1862                return number + ' bloaz';
1863            default:
1864                return number + ' vloaz';
1865        }
1866    }
1867    function lastNumber(number) {
1868        if (number > 9) {
1869            return lastNumber(number % 10);
1870        }
1871        return number;
1872    }
1873    function mutation(text, number) {
1874        if (number === 2) {
1875            return softMutation(text);
1876        }
1877        return text;
1878    }
1879    function softMutation(text) {
1880        var mutationTable = {
1881            m: 'v',
1882            b: 'v',
1883            d: 'z',
1884        };
1885        if (mutationTable[text.charAt(0)] === undefined) {
1886            return text;
1887        }
1888        return mutationTable[text.charAt(0)] + text.substring(1);
1889    }
1890
1891    var monthsParse = [
1892            /^gen/i,
1893            /^c[ʼ\']hwe/i,
1894            /^meu/i,
1895            /^ebr/i,
1896            /^mae/i,
1897            /^(mez|eve)/i,
1898            /^gou/i,
1899            /^eos/i,
1900            /^gwe/i,
1901            /^her/i,
1902            /^du/i,
1903            /^ker/i,
1904        ],
1905        monthsRegex =
1906            /^(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,
1907        monthsStrictRegex =
1908            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
1909        monthsShortStrictRegex =
1910            /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
1911        fullWeekdaysParse = [
1912            /^sul/i,
1913            /^lun/i,
1914            /^meurzh/i,
1915            /^merc[ʼ\']her/i,
1916            /^yaou/i,
1917            /^gwener/i,
1918            /^sadorn/i,
1919        ],
1920        shortWeekdaysParse = [
1921            /^Sul/i,
1922            /^Lun/i,
1923            /^Meu/i,
1924            /^Mer/i,
1925            /^Yao/i,
1926            /^Gwe/i,
1927            /^Sad/i,
1928        ],
1929        minWeekdaysParse = [
1930            /^Su/i,
1931            /^Lu/i,
1932            /^Me([^r]|$)/i,
1933            /^Mer/i,
1934            /^Ya/i,
1935            /^Gw/i,
1936            /^Sa/i,
1937        ];
1938
1939    var br = moment.defineLocale('br', {
1940        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
1941            '_'
1942        ),
1943        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
1944        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
1945        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
1946        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
1947        weekdaysParse: minWeekdaysParse,
1948        fullWeekdaysParse: fullWeekdaysParse,
1949        shortWeekdaysParse: shortWeekdaysParse,
1950        minWeekdaysParse: minWeekdaysParse,
1951
1952        monthsRegex: monthsRegex,
1953        monthsShortRegex: monthsRegex,
1954        monthsStrictRegex: monthsStrictRegex,
1955        monthsShortStrictRegex: monthsShortStrictRegex,
1956        monthsParse: monthsParse,
1957        longMonthsParse: monthsParse,
1958        shortMonthsParse: monthsParse,
1959
1960        longDateFormat: {
1961            LT: 'HH:mm',
1962            LTS: 'HH:mm:ss',
1963            L: 'DD/MM/YYYY',
1964            LL: 'D [a viz] MMMM YYYY',
1965            LLL: 'D [a viz] MMMM YYYY HH:mm',
1966            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
1967        },
1968        calendar: {
1969            sameDay: '[Hiziv da] LT',
1970            nextDay: '[Warcʼhoazh da] LT',
1971            nextWeek: 'dddd [da] LT',
1972            lastDay: '[Decʼh da] LT',
1973            lastWeek: 'dddd [paset da] LT',
1974            sameElse: 'L',
1975        },
1976        relativeTime: {
1977            future: 'a-benn %s',
1978            past: '%s ʼzo',
1979            s: 'un nebeud segondennoù',
1980            ss: '%d eilenn',
1981            m: 'ur vunutenn',
1982            mm: relativeTimeWithMutation,
1983            h: 'un eur',
1984            hh: '%d eur',
1985            d: 'un devezh',
1986            dd: relativeTimeWithMutation,
1987            M: 'ur miz',
1988            MM: relativeTimeWithMutation,
1989            y: 'ur bloaz',
1990            yy: specialMutationForYears,
1991        },
1992        dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
1993        ordinal: function (number) {
1994            var output = number === 1 ? 'añ' : 'vet';
1995            return number + output;
1996        },
1997        week: {
1998            dow: 1, // Monday is the first day of the week.
1999            doy: 4, // The week that contains Jan 4th is the first week of the year.
2000        },
2001        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
2002        isPM: function (token) {
2003            return token === 'g.m.';
2004        },
2005        meridiem: function (hour, minute, isLower) {
2006            return hour < 12 ? 'a.m.' : 'g.m.';
2007        },
2008    });
2009
2010    return br;
2011
2012})));
2013
2014
2015/***/ }),
2016
2017/***/ 1488:
2018/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2019
2020//! moment.js locale configuration
2021//! locale : Arabic (Algeria) [ar-dz]
2022//! author : Amine Roukh: https://github.com/Amine27
2023//! author : Abdel Said: https://github.com/abdelsaid
2024//! author : Ahmed Elkhatib
2025//! author : forabi https://github.com/forabi
2026//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem
2027
2028;(function (global, factory) {
2029    true ? factory(__webpack_require__(5093)) :
2030   0
2031}(this, (function (moment) { 'use strict';
2032
2033    //! moment.js locale configuration
2034
2035    var pluralForm = function (n) {
2036            return n === 0
2037                ? 0
2038                : n === 1
2039                  ? 1
2040                  : n === 2
2041                    ? 2
2042                    : n % 100 >= 3 && n % 100 <= 10
2043                      ? 3
2044                      : n % 100 >= 11
2045                        ? 4
2046                        : 5;
2047        },
2048        plurals = {
2049            s: [
2050                'أقل من ثانية',
2051                'ثانية واحدة',
2052                ['ثانيتان', 'ثانيتين'],
2053                '%d ثوان',
2054                '%d ثانية',
2055                '%d ثانية',
2056            ],
2057            m: [
2058                'أقل من دقيقة',
2059                'دقيقة واحدة',
2060                ['دقيقتان', 'دقيقتين'],
2061                '%d دقائق',
2062                '%d دقيقة',
2063                '%d دقيقة',
2064            ],
2065            h: [
2066                'أقل من ساعة',
2067                'ساعة واحدة',
2068                ['ساعتان', 'ساعتين'],
2069                '%d ساعات',
2070                '%d ساعة',
2071                '%d ساعة',
2072            ],
2073            d: [
2074                'أقل من يوم',
2075                'يوم واحد',
2076                ['يومان', 'يومين'],
2077                '%d أيام',
2078                '%d يومًا',
2079                '%d يوم',
2080            ],
2081            M: [
2082                'أقل من شهر',
2083                'شهر واحد',
2084                ['شهران', 'شهرين'],
2085                '%d أشهر',
2086                '%d شهرا',
2087                '%d شهر',
2088            ],
2089            y: [
2090                'أقل من عام',
2091                'عام واحد',
2092                ['عامان', 'عامين'],
2093                '%d أعوام',
2094                '%d عامًا',
2095                '%d عام',
2096            ],
2097        },
2098        pluralize = function (u) {
2099            return function (number, withoutSuffix, string, isFuture) {
2100                var f = pluralForm(number),
2101                    str = plurals[u][pluralForm(number)];
2102                if (f === 2) {
2103                    str = str[withoutSuffix ? 0 : 1];
2104                }
2105                return str.replace(/%d/i, number);
2106            };
2107        },
2108        months = [
2109            'جانفي',
2110            'فيفري',
2111            'مارس',
2112            'أفريل',
2113            'ماي',
2114            'جوان',
2115            'جويلية',
2116            'أوت',
2117            'سبتمبر',
2118            'أكتوبر',
2119            'نوفمبر',
2120            'ديسمبر',
2121        ];
2122
2123    var arDz = moment.defineLocale('ar-dz', {
2124        months: months,
2125        monthsShort: months,
2126        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
2127        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
2128        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
2129        weekdaysParseExact: true,
2130        longDateFormat: {
2131            LT: 'HH:mm',
2132            LTS: 'HH:mm:ss',
2133            L: 'D/\u200FM/\u200FYYYY',
2134            LL: 'D MMMM YYYY',
2135            LLL: 'D MMMM YYYY HH:mm',
2136            LLLL: 'dddd D MMMM YYYY HH:mm',
2137        },
2138        meridiemParse: /ص|م/,
2139        isPM: function (input) {
2140            return 'م' === input;
2141        },
2142        meridiem: function (hour, minute, isLower) {
2143            if (hour < 12) {
2144                return 'ص';
2145            } else {
2146                return 'م';
2147            }
2148        },
2149        calendar: {
2150            sameDay: '[اليوم عند الساعة] LT',
2151            nextDay: '[غدًا عند الساعة] LT',
2152            nextWeek: 'dddd [عند الساعة] LT',
2153            lastDay: '[أمس عند الساعة] LT',
2154            lastWeek: 'dddd [عند الساعة] LT',
2155            sameElse: 'L',
2156        },
2157        relativeTime: {
2158            future: 'بعد %s',
2159            past: 'منذ %s',
2160            s: pluralize('s'),
2161            ss: pluralize('s'),
2162            m: pluralize('m'),
2163            mm: pluralize('m'),
2164            h: pluralize('h'),
2165            hh: pluralize('h'),
2166            d: pluralize('d'),
2167            dd: pluralize('d'),
2168            M: pluralize('M'),
2169            MM: pluralize('M'),
2170            y: pluralize('y'),
2171            yy: pluralize('y'),
2172        },
2173        postformat: function (string) {
2174            return string.replace(/,/g, '،');
2175        },
2176        week: {
2177            dow: 0, // Sunday is the first day of the week.
2178            doy: 4, // The week that contains Jan 4th is the first week of the year.
2179        },
2180    });
2181
2182    return arDz;
2183
2184})));
2185
2186
2187/***/ }),
2188
2189/***/ 1509:
2190/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2191
2192//! moment.js locale configuration
2193//! locale : Arabic [ar]
2194//! author : Abdel Said: https://github.com/abdelsaid
2195//! author : Ahmed Elkhatib
2196//! author : forabi https://github.com/forabi
2197
2198;(function (global, factory) {
2199    true ? factory(__webpack_require__(5093)) :
2200   0
2201}(this, (function (moment) { 'use strict';
2202
2203    //! moment.js locale configuration
2204
2205    var symbolMap = {
2206            1: 'Ù¡',
2207            2: 'Ù¢',
2208            3: 'Ù£',
2209            4: 'Ù¤',
2210            5: 'Ù¥',
2211            6: 'Ù¦',
2212            7: 'Ù§',
2213            8: 'Ù¨',
2214            9: 'Ù©',
2215            0: 'Ù ',
2216        },
2217        numberMap = {
2218            'Ù¡': '1',
2219            'Ù¢': '2',
2220            'Ù£': '3',
2221            'Ù¤': '4',
2222            'Ù¥': '5',
2223            'Ù¦': '6',
2224            'Ù§': '7',
2225            'Ù¨': '8',
2226            'Ù©': '9',
2227            'Ù ': '0',
2228        },
2229        pluralForm = function (n) {
2230            return n === 0
2231                ? 0
2232                : n === 1
2233                  ? 1
2234                  : n === 2
2235                    ? 2
2236                    : n % 100 >= 3 && n % 100 <= 10
2237                      ? 3
2238                      : n % 100 >= 11
2239                        ? 4
2240                        : 5;
2241        },
2242        plurals = {
2243            s: [
2244                'أقل من ثانية',
2245                'ثانية واحدة',
2246                ['ثانيتان', 'ثانيتين'],
2247                '%d ثوان',
2248                '%d ثانية',
2249                '%d ثانية',
2250            ],
2251            m: [
2252                'أقل من دقيقة',
2253                'دقيقة واحدة',
2254                ['دقيقتان', 'دقيقتين'],
2255                '%d دقائق',
2256                '%d دقيقة',
2257                '%d دقيقة',
2258            ],
2259            h: [
2260                'أقل من ساعة',
2261                'ساعة واحدة',
2262                ['ساعتان', 'ساعتين'],
2263                '%d ساعات',
2264                '%d ساعة',
2265                '%d ساعة',
2266            ],
2267            d: [
2268                'أقل من يوم',
2269                'يوم واحد',
2270                ['يومان', 'يومين'],
2271                '%d أيام',
2272                '%d يومًا',
2273                '%d يوم',
2274            ],
2275            M: [
2276                'أقل من شهر',
2277                'شهر واحد',
2278                ['شهران', 'شهرين'],
2279                '%d أشهر',
2280                '%d شهرا',
2281                '%d شهر',
2282            ],
2283            y: [
2284                'أقل من عام',
2285                'عام واحد',
2286                ['عامان', 'عامين'],
2287                '%d أعوام',
2288                '%d عامًا',
2289                '%d عام',
2290            ],
2291        },
2292        pluralize = function (u) {
2293            return function (number, withoutSuffix, string, isFuture) {
2294                var f = pluralForm(number),
2295                    str = plurals[u][pluralForm(number)];
2296                if (f === 2) {
2297                    str = str[withoutSuffix ? 0 : 1];
2298                }
2299                return str.replace(/%d/i, number);
2300            };
2301        },
2302        months = [
2303            'يناير',
2304            'فبراير',
2305            'مارس',
2306            'أبريل',
2307            'مايو',
2308            'يونيو',
2309            'يوليو',
2310            'أغسطس',
2311            'سبتمبر',
2312            'أكتوبر',
2313            'نوفمبر',
2314            'ديسمبر',
2315        ];
2316
2317    var ar = moment.defineLocale('ar', {
2318        months: months,
2319        monthsShort: months,
2320        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
2321        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
2322        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
2323        weekdaysParseExact: true,
2324        longDateFormat: {
2325            LT: 'HH:mm',
2326            LTS: 'HH:mm:ss',
2327            L: 'D/\u200FM/\u200FYYYY',
2328            LL: 'D MMMM YYYY',
2329            LLL: 'D MMMM YYYY HH:mm',
2330            LLLL: 'dddd D MMMM YYYY HH:mm',
2331        },
2332        meridiemParse: /ص|م/,
2333        isPM: function (input) {
2334            return 'م' === input;
2335        },
2336        meridiem: function (hour, minute, isLower) {
2337            if (hour < 12) {
2338                return 'ص';
2339            } else {
2340                return 'م';
2341            }
2342        },
2343        calendar: {
2344            sameDay: '[اليوم عند الساعة] LT',
2345            nextDay: '[غدًا عند الساعة] LT',
2346            nextWeek: 'dddd [عند الساعة] LT',
2347            lastDay: '[أمس عند الساعة] LT',
2348            lastWeek: 'dddd [عند الساعة] LT',
2349            sameElse: 'L',
2350        },
2351        relativeTime: {
2352            future: 'بعد %s',
2353            past: 'منذ %s',
2354            s: pluralize('s'),
2355            ss: pluralize('s'),
2356            m: pluralize('m'),
2357            mm: pluralize('m'),
2358            h: pluralize('h'),
2359            hh: pluralize('h'),
2360            d: pluralize('d'),
2361            dd: pluralize('d'),
2362            M: pluralize('M'),
2363            MM: pluralize('M'),
2364            y: pluralize('y'),
2365            yy: pluralize('y'),
2366        },
2367        preparse: function (string) {
2368            return string
2369                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
2370                    return numberMap[match];
2371                })
2372                .replace(/،/g, ',');
2373        },
2374        postformat: function (string) {
2375            return string
2376                .replace(/\d/g, function (match) {
2377                    return symbolMap[match];
2378                })
2379                .replace(/,/g, '،');
2380        },
2381        week: {
2382            dow: 6, // Saturday is the first day of the week.
2383            doy: 12, // The week that contains Jan 12th is the first week of the year.
2384        },
2385    });
2386
2387    return ar;
2388
2389})));
2390
2391
2392/***/ }),
2393
2394/***/ 1541:
2395/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2396
2397//! moment.js locale configuration
2398//! locale : Chinese (Macau) [zh-mo]
2399//! author : Ben : https://github.com/ben-lin
2400//! author : Chris Lam : https://github.com/hehachris
2401//! author : Tan Yuanhong : https://github.com/le0tan
2402
2403;(function (global, factory) {
2404    true ? factory(__webpack_require__(5093)) :
2405   0
2406}(this, (function (moment) { 'use strict';
2407
2408    //! moment.js locale configuration
2409
2410    var zhMo = moment.defineLocale('zh-mo', {
2411        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
2412            '_'
2413        ),
2414        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
2415            '_'
2416        ),
2417        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
2418        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
2419        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
2420        longDateFormat: {
2421            LT: 'HH:mm',
2422            LTS: 'HH:mm:ss',
2423            L: 'DD/MM/YYYY',
2424            LL: 'YYYY年M月D日',
2425            LLL: 'YYYY年M月D日 HH:mm',
2426            LLLL: 'YYYY年M月D日dddd HH:mm',
2427            l: 'D/M/YYYY',
2428            ll: 'YYYY年M月D日',
2429            lll: 'YYYY年M月D日 HH:mm',
2430            llll: 'YYYY年M月D日dddd HH:mm',
2431        },
2432        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
2433        meridiemHour: function (hour, meridiem) {
2434            if (hour === 12) {
2435                hour = 0;
2436            }
2437            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
2438                return hour;
2439            } else if (meridiem === '中午') {
2440                return hour >= 11 ? hour : hour + 12;
2441            } else if (meridiem === '下午' || meridiem === '晚上') {
2442                return hour + 12;
2443            }
2444        },
2445        meridiem: function (hour, minute, isLower) {
2446            var hm = hour * 100 + minute;
2447            if (hm < 600) {
2448                return '凌晨';
2449            } else if (hm < 900) {
2450                return '早上';
2451            } else if (hm < 1130) {
2452                return '上午';
2453            } else if (hm < 1230) {
2454                return '中午';
2455            } else if (hm < 1800) {
2456                return '下午';
2457            } else {
2458                return '晚上';
2459            }
2460        },
2461        calendar: {
2462            sameDay: '[今天] LT',
2463            nextDay: '[明天] LT',
2464            nextWeek: '[下]dddd LT',
2465            lastDay: '[昨天] LT',
2466            lastWeek: '[上]dddd LT',
2467            sameElse: 'L',
2468        },
2469        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
2470        ordinal: function (number, period) {
2471            switch (period) {
2472                case 'd':
2473                case 'D':
2474                case 'DDD':
2475                    return number + '日';
2476                case 'M':
2477                    return number + '月';
2478                case 'w':
2479                case 'W':
2480                    return number + '週';
2481                default:
2482                    return number;
2483            }
2484        },
2485        relativeTime: {
2486            future: '%s內',
2487            past: '%s前',
2488            s: '幾秒',
2489            ss: '%d 秒',
2490            m: '1 分鐘',
2491            mm: '%d 分鐘',
2492            h: '1 小時',
2493            hh: '%d 小時',
2494            d: '1 天',
2495            dd: '%d 天',
2496            M: '1 個月',
2497            MM: '%d 個月',
2498            y: '1 å¹´',
2499            yy: '%d å¹´',
2500        },
2501    });
2502
2503    return zhMo;
2504
2505})));
2506
2507
2508/***/ }),
2509
2510/***/ 1545:
2511/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2512
2513//! moment.js locale configuration
2514//! locale : Tibetan [bo]
2515//! author : Thupten N. Chakrishar : https://github.com/vajradog
2516
2517;(function (global, factory) {
2518    true ? factory(__webpack_require__(5093)) :
2519   0
2520}(this, (function (moment) { 'use strict';
2521
2522    //! moment.js locale configuration
2523
2524    var symbolMap = {
2525            1: '༡',
2526            2: '༢',
2527            3: '༣',
2528            4: '༤',
2529            5: '༥',
2530            6: '༦',
2531            7: '༧',
2532            8: '༨',
2533            9: '༩',
2534            0: '༠',
2535        },
2536        numberMap = {
2537            '༡': '1',
2538            '༢': '2',
2539            '༣': '3',
2540            '༤': '4',
2541            '༥': '5',
2542            '༦': '6',
2543            '༧': '7',
2544            '༨': '8',
2545            '༩': '9',
2546            '༠': '0',
2547        };
2548
2549    var bo = moment.defineLocale('bo', {
2550        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
2551            '_'
2552        ),
2553        monthsShort:
2554            'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
2555                '_'
2556            ),
2557        monthsShortRegex: /^(ཟླ་\d{1,2})/,
2558        monthsParseExact: true,
2559        weekdays:
2560            'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
2561                '_'
2562            ),
2563        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
2564            '_'
2565        ),
2566        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
2567        longDateFormat: {
2568            LT: 'A h:mm',
2569            LTS: 'A h:mm:ss',
2570            L: 'DD/MM/YYYY',
2571            LL: 'D MMMM YYYY',
2572            LLL: 'D MMMM YYYY, A h:mm',
2573            LLLL: 'dddd, D MMMM YYYY, A h:mm',
2574        },
2575        calendar: {
2576            sameDay: '[དི་རིང] LT',
2577            nextDay: '[སང་ཉིན] LT',
2578            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
2579            lastDay: '[ཁ་སང] LT',
2580            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
2581            sameElse: 'L',
2582        },
2583        relativeTime: {
2584            future: '%s ལ་',
2585            past: '%s སྔན་ལ',
2586            s: 'ལམ་སང',
2587            ss: '%d སྐར་ཆ།',
2588            m: 'སྐར་མ་གཅིག',
2589            mm: '%d སྐར་མ',
2590            h: 'ཆུ་ཚོད་གཅིག',
2591            hh: '%d ཆུ་ཚོད',
2592            d: 'ཉིན་གཅིག',
2593            dd: '%d ཉིན་',
2594            M: 'ཟླ་བ་གཅིག',
2595            MM: '%d ཟླ་བ',
2596            y: 'ལོ་གཅིག',
2597            yy: '%d ལོ',
2598        },
2599        preparse: function (string) {
2600            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
2601                return numberMap[match];
2602            });
2603        },
2604        postformat: function (string) {
2605            return string.replace(/\d/g, function (match) {
2606                return symbolMap[match];
2607            });
2608        },
2609        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
2610        meridiemHour: function (hour, meridiem) {
2611            if (hour === 12) {
2612                hour = 0;
2613            }
2614            if (
2615                (meridiem === 'མཚན་མོ' && hour >= 4) ||
2616                (meridiem === 'ཉིན་གུང' && hour < 5) ||
2617                meridiem === 'དགོང་དག'
2618            ) {
2619                return hour + 12;
2620            } else {
2621                return hour;
2622            }
2623        },
2624        meridiem: function (hour, minute, isLower) {
2625            if (hour < 4) {
2626                return 'མཚན་མོ';
2627            } else if (hour < 10) {
2628                return 'ཞོགས་ཀས';
2629            } else if (hour < 17) {
2630                return 'ཉིན་གུང';
2631            } else if (hour < 20) {
2632                return 'དགོང་དག';
2633            } else {
2634                return 'མཚན་མོ';
2635            }
2636        },
2637        week: {
2638            dow: 0, // Sunday is the first day of the week.
2639            doy: 6, // The week that contains Jan 6th is the first week of the year.
2640        },
2641    });
2642
2643    return bo;
2644
2645})));
2646
2647
2648/***/ }),
2649
2650/***/ 1632:
2651/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2652
2653//! moment.js locale configuration
2654//! locale : Chinese (Hong Kong) [zh-hk]
2655//! author : Ben : https://github.com/ben-lin
2656//! author : Chris Lam : https://github.com/hehachris
2657//! author : Konstantin : https://github.com/skfd
2658//! author : Anthony : https://github.com/anthonylau
2659
2660;(function (global, factory) {
2661    true ? factory(__webpack_require__(5093)) :
2662   0
2663}(this, (function (moment) { 'use strict';
2664
2665    //! moment.js locale configuration
2666
2667    var zhHk = moment.defineLocale('zh-hk', {
2668        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
2669            '_'
2670        ),
2671        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
2672            '_'
2673        ),
2674        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
2675        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
2676        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
2677        longDateFormat: {
2678            LT: 'HH:mm',
2679            LTS: 'HH:mm:ss',
2680            L: 'YYYY/MM/DD',
2681            LL: 'YYYY年M月D日',
2682            LLL: 'YYYY年M月D日 HH:mm',
2683            LLLL: 'YYYY年M月D日dddd HH:mm',
2684            l: 'YYYY/M/D',
2685            ll: 'YYYY年M月D日',
2686            lll: 'YYYY年M月D日 HH:mm',
2687            llll: 'YYYY年M月D日dddd HH:mm',
2688        },
2689        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
2690        meridiemHour: function (hour, meridiem) {
2691            if (hour === 12) {
2692                hour = 0;
2693            }
2694            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
2695                return hour;
2696            } else if (meridiem === '中午') {
2697                return hour >= 11 ? hour : hour + 12;
2698            } else if (meridiem === '下午' || meridiem === '晚上') {
2699                return hour + 12;
2700            }
2701        },
2702        meridiem: function (hour, minute, isLower) {
2703            var hm = hour * 100 + minute;
2704            if (hm < 600) {
2705                return '凌晨';
2706            } else if (hm < 900) {
2707                return '早上';
2708            } else if (hm < 1200) {
2709                return '上午';
2710            } else if (hm === 1200) {
2711                return '中午';
2712            } else if (hm < 1800) {
2713                return '下午';
2714            } else {
2715                return '晚上';
2716            }
2717        },
2718        calendar: {
2719            sameDay: '[今天]LT',
2720            nextDay: '[明天]LT',
2721            nextWeek: '[下]ddddLT',
2722            lastDay: '[昨天]LT',
2723            lastWeek: '[上]ddddLT',
2724            sameElse: 'L',
2725        },
2726        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
2727        ordinal: function (number, period) {
2728            switch (period) {
2729                case 'd':
2730                case 'D':
2731                case 'DDD':
2732                    return number + '日';
2733                case 'M':
2734                    return number + '月';
2735                case 'w':
2736                case 'W':
2737                    return number + '週';
2738                default:
2739                    return number;
2740            }
2741        },
2742        relativeTime: {
2743            future: '%s後',
2744            past: '%s前',
2745            s: '幾秒',
2746            ss: '%d 秒',
2747            m: '1 分鐘',
2748            mm: '%d 分鐘',
2749            h: '1 小時',
2750            hh: '%d 小時',
2751            d: '1 天',
2752            dd: '%d 天',
2753            M: '1 個月',
2754            MM: '%d 個月',
2755            y: '1 å¹´',
2756            yy: '%d å¹´',
2757        },
2758    });
2759
2760    return zhHk;
2761
2762})));
2763
2764
2765/***/ }),
2766
2767/***/ 1713:
2768/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2769
2770//! moment.js locale configuration
2771//! locale : Hebrew [he]
2772//! author : Tomer Cohen : https://github.com/tomer
2773//! author : Moshe Simantov : https://github.com/DevelopmentIL
2774//! author : Tal Ater : https://github.com/TalAter
2775
2776;(function (global, factory) {
2777    true ? factory(__webpack_require__(5093)) :
2778   0
2779}(this, (function (moment) { 'use strict';
2780
2781    //! moment.js locale configuration
2782
2783    var he = moment.defineLocale('he', {
2784        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
2785            '_'
2786        ),
2787        monthsShort:
2788            'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
2789        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
2790        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
2791        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
2792        longDateFormat: {
2793            LT: 'HH:mm',
2794            LTS: 'HH:mm:ss',
2795            L: 'DD/MM/YYYY',
2796            LL: 'D [ב]MMMM YYYY',
2797            LLL: 'D [ב]MMMM YYYY HH:mm',
2798            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
2799            l: 'D/M/YYYY',
2800            ll: 'D MMM YYYY',
2801            lll: 'D MMM YYYY HH:mm',
2802            llll: 'ddd, D MMM YYYY HH:mm',
2803        },
2804        calendar: {
2805            sameDay: '[היום ב־]LT',
2806            nextDay: '[מחר ב־]LT',
2807            nextWeek: 'dddd [בשעה] LT',
2808            lastDay: '[אתמול ב־]LT',
2809            lastWeek: '[ביום] dddd [האחרון בשעה] LT',
2810            sameElse: 'L',
2811        },
2812        relativeTime: {
2813            future: 'בעוד %s',
2814            past: 'לפני %s',
2815            s: 'מספר שניות',
2816            ss: '%d שניות',
2817            m: 'דקה',
2818            mm: '%d דקות',
2819            h: 'שעה',
2820            hh: function (number) {
2821                if (number === 2) {
2822                    return 'שעתיים';
2823                }
2824                return number + ' שעות';
2825            },
2826            d: 'יום',
2827            dd: function (number) {
2828                if (number === 2) {
2829                    return 'יומיים';
2830                }
2831                return number + ' ימים';
2832            },
2833            M: 'חודש',
2834            MM: function (number) {
2835                if (number === 2) {
2836                    return 'חודשיים';
2837                }
2838                return number + ' חודשים';
2839            },
2840            y: 'שנה',
2841            yy: function (number) {
2842                if (number === 2) {
2843                    return 'שנתיים';
2844                } else if (number % 10 === 0 && number !== 10) {
2845                    return number + ' שנה';
2846                }
2847                return number + ' שנים';
2848            },
2849        },
2850        meridiemParse:
2851            /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
2852        isPM: function (input) {
2853            return /^(אחה"צ|אחרי הצהריים|בערב)$/.t
2853est(input);
2854        },
2855        meridiem: function (hour, minute, isLower) {
2856            if (hour < 5) {
2857                return 'לפנות בוקר';
2858            } else if (hour < 10) {
2859                return 'בבוקר';
2860            } else if (hour < 12) {
2861                return isLower ? 'לפנה"צ' : 'לפני הצהריים';
2862            } else if (hour < 18) {
2863                return isLower ? 'אחה"צ' : 'אחרי הצהריים';
2864            } else {
2865                return 'בערב';
2866            }
2867        },
2868    });
2869
2870    return he;
2871
2872})));
2873
2874
2875/***/ }),
2876
2877/***/ 1734:
2878/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2879
2880//! moment.js locale configuration
2881//! locale : Irish or Irish Gaelic [ga]
2882//! author : André Silva : https://github.com/askpt
2883
2884;(function (global, factory) {
2885    true ? factory(__webpack_require__(5093)) :
2886   0
2887}(this, (function (moment) { 'use strict';
2888
2889    //! moment.js locale configuration
2890
2891    var months = [
2892            'Eanáir',
2893            'Feabhra',
2894            'Márta',
2895            'Aibreán',
2896            'Bealtaine',
2897            'Meitheamh',
2898            'Iúil',
2899            'Lúnasa',
2900            'Meán Fómhair',
2901            'Deireadh Fómhair',
2902            'Samhain',
2903            'Nollaig',
2904        ],
2905        monthsShort = [
2906            'Ean',
2907            'Feabh',
2908            'Márt',
2909            'Aib',
2910            'Beal',
2911            'Meith',
2912            'Iúil',
2913            'Lún',
2914            'M.F.',
2915            'D.F.',
2916            'Samh',
2917            'Noll',
2918        ],
2919        weekdays = [
2920            'Dé Domhnaigh',
2921            'Dé Luain',
2922            'Dé Máirt',
2923            'Dé Céadaoin',
2924            'Déardaoin',
2925            'Dé hAoine',
2926            'Dé Sathairn',
2927        ],
2928        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
2929        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
2930
2931    var ga = moment.defineLocale('ga', {
2932        months: months,
2933        monthsShort: monthsShort,
2934        monthsParseExact: true,
2935        weekdays: weekdays,
2936        weekdaysShort: weekdaysShort,
2937        weekdaysMin: weekdaysMin,
2938        longDateFormat: {
2939            LT: 'HH:mm',
2940            LTS: 'HH:mm:ss',
2941            L: 'DD/MM/YYYY',
2942            LL: 'D MMMM YYYY',
2943            LLL: 'D MMMM YYYY HH:mm',
2944            LLLL: 'dddd, D MMMM YYYY HH:mm',
2945        },
2946        calendar: {
2947            sameDay: '[Inniu ag] LT',
2948            nextDay: '[Amárach ag] LT',
2949            nextWeek: 'dddd [ag] LT',
2950            lastDay: '[Inné ag] LT',
2951            lastWeek: 'dddd [seo caite] [ag] LT',
2952            sameElse: 'L',
2953        },
2954        relativeTime: {
2955            future: 'i %s',
2956            past: '%s ó shin',
2957            s: 'cúpla soicind',
2958            ss: '%d soicind',
2959            m: 'nóiméad',
2960            mm: '%d nóiméad',
2961            h: 'uair an chloig',
2962            hh: '%d uair an chloig',
2963            d: 'lá',
2964            dd: '%d lá',
2965            M: 'mí',
2966            MM: '%d míonna',
2967            y: 'bliain',
2968            yy: '%d bliain',
2969        },
2970        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
2971        ordinal: function (number) {
2972            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
2973            return number + output;
2974        },
2975        week: {
2976            dow: 1, // Monday is the first day of the week.
2977            doy: 4, // The week that contains Jan 4th is the first week of the year.
2978        },
2979    });
2980
2981    return ga;
2982
2983})));
2984
2985
2986/***/ }),
2987
2988/***/ 1765:
2989/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2990
2991//! moment.js locale configuration
2992//! locale : Central Atlas Tamazight [tzm]
2993//! author : Abdel Said : https://github.com/abdelsaid
2994
2995;(function (global, factory) {
2996    true ? factory(__webpack_require__(5093)) :
2997   0
2998}(this, (function (moment) { 'use strict';
2999
3000    //! moment.js locale configuration
3001
3002    var tzm = moment.defineLocale('tzm', {
3003        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
3004            '_'
3005        ),
3006        monthsShort:
3007            'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
3008                '_'
3009            ),
3010        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
3011        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
3012        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
3013        longDateFormat: {
3014            LT: 'HH:mm',
3015            LTS: 'HH:mm:ss',
3016            L: 'DD/MM/YYYY',
3017            LL: 'D MMMM YYYY',
3018            LLL: 'D MMMM YYYY HH:mm',
3019            LLLL: 'dddd D MMMM YYYY HH:mm',
3020        },
3021        calendar: {
3022            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
3023            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
3024            nextWeek: 'dddd [â´´] LT',
3025            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
3026            lastWeek: 'dddd [â´´] LT',
3027            sameElse: 'L',
3028        },
3029        relativeTime: {
3030            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
3031            past: 'ⵢⴰⵏ %s',
3032            s: 'ⵉⵎⵉⴽ',
3033            ss: '%d ⵉⵎⵉⴽ',
3034            m: 'ⵎⵉⵏⵓⴺ',
3035            mm: '%d ⵎⵉⵏⵓⴺ',
3036            h: 'ⵙⴰⵄⴰ',
vendor: 4,619 bytes, lines 3037-3166
3037            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
3038            d: 'ⴰⵙⵙ',
3039            dd: '%d oⵙⵙⴰⵏ',
3040            M: 'ⴰⵢoⵓⵔ',
3041            MM: '%d ⵉⵢⵢⵉⵔⵏ',
3042            y: 'ⴰⵙⴳⴰⵙ',
3043            yy: '%d ⵉⵙⴳⴰⵙⵏ',
3044        },
3045        week: {
3046            dow: 6, // Saturday is the first day of the week.
3047            doy: 12, // The week that contains Jan 12th is the first week of the year.
3048        },
3049    });
3050
3051    return tzm;
3052
3053})));
3054
3055
3056/***/ }),
3057
3058/***/ 1794:
3059/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3060
3061//! moment.js locale configuration
3062//! locale : Georgian [ka]
3063//! author : Irakli Janiashvili : https://github.com/IrakliJani
3064
3065;(function (global, factory) {
3066    true ? factory(__webpack_require__(5093)) :
3067   0
3068}(this, (function (moment) { 'use strict';
3069
3070    //! moment.js locale configuration
3071
3072    var ka = moment.defineLocale('ka', {
3073        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
3074            '_'
3075        ),
3076        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
3077        weekdays: {
3078            standalone:
3079                'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
3080                    '_'
3081                ),
3082            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
3083                '_'
3084            ),
3085            isFormat: /(წინა|შემდეგ)/,
3086        },
3087        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
3088        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
3089        longDateFormat: {
3090            LT: 'HH:mm',
3091            LTS: 'HH:mm:ss',
3092            L: 'DD/MM/YYYY',
3093            LL: 'D MMMM YYYY',
3094            LLL: 'D MMMM YYYY HH:mm',
3095            LLLL: 'dddd, D MMMM YYYY HH:mm',
3096        },
3097        calendar: {
3098            sameDay: '[დღეს] LT[-ზე]',
3099            nextDay: '[ხვალ] LT[-ზე]',
3100            lastDay: '[გუშინ] LT[-ზე]',
3101            nextWeek: '[შემდეგ] dddd LT[-ზე]',
3102            lastWeek: '[წინა] dddd LT-ზე',
3103            sameElse: 'L',
3104        },
3105        relativeTime: {
3106            future: function (s) {
3107                return s.replace(
3108                    /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
3109                    function ($0, $1, $2) {
3110                        return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
3111                    }
3112                );
3113            },
3114            past: function (s) {
3115                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
3116                    return s.replace(/(ი|ე)$/, 'ის წინ');
3117                }
3118                if (/წელი/.test(s)) {
3119                    return s.replace(/წელი$/, 'წლის წინ');
3120                }
3121                return s;
3122            },
3123            s: 'რამდენიმე წამი',
3124            ss: '%d წამი',
3125            m: 'წუთი',
3126            mm: '%d წუთი',
3127            h: 'საათი',
3128            hh: '%d საათი',
3129            d: 'დღე',
3130            dd: '%d დღე',
3131            M: 'თვე',
3132            MM: '%d თვე',
3133            y: 'წელი',
3134            yy: '%d წელი',
3135        },
3136        dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
3137        ordinal: function (number) {
3138            if (number === 0) {
3139                return number;
3140            }
3141            if (number === 1) {
3142                return number + '-ლი';
3143            }
3144            if (
3145                number < 20 ||
3146                (number <= 100 && number % 20 === 0) ||
3147                number % 100 === 0
3148            ) {
3149                return 'მე-' + number;
3150            }
3151            return number + '-ე';
3152        },
3153        week: {
3154            dow: 1,
3155            doy: 7,
3156        },
3157    });
3158
3159    return ka;
3160
3161})));
3162
3163
3164/***/ }),
3165
3166/***/ 1827:
3167/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3168
3169//! moment.js locale configuration
3170//! locale : Italian (Switzerland) [it-ch]
3171//! author : xfh : https://github.com/xfh
3172
3173;(function (global, factory) {
3174    true ? factory(__webpack_require__(5093)) :
3175   0
3176}(this, (function (moment) { 'use strict';
3177
3178    //! moment.js locale configuration
3179
3180    var itCh = moment.defineLocale('it-ch', {
3181        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
3182            '_'
3183        ),
3184        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
3185        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
3186            '_'
3187        ),
3188        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
3189        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
3190        longDateFormat: {
3191            LT: 'HH:mm',
3192            LTS: 'HH:mm:ss',
3193            L: 'DD.MM.YYYY',
3194            LL: 'D MMMM YYYY',
3195            LLL: 'D MMMM YYYY HH:mm',
3196            LLLL: 'dddd D MMMM YYYY HH:mm',
3197        },
3198        calendar: {
3199            sameDay: '[Oggi alle] LT',
3200            nextDay: '[Domani alle] LT',
3201            nextWeek: 'dddd [alle] LT',
3202            lastDay: '[Ieri alle] LT',
3203            lastWeek: function () {
3204                switch (this.day()) {
3205                    case 0:
3206                        return '[la scorsa] dddd [alle] LT';
3207                    default:
3208                        return '[lo scorso] dddd [alle] LT';
3209                }
3210            },
3211            sameElse: 'L',
3212        },
3213        relativeTime: {
3214            future: function (s) {
3215                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
3216            },
3217            past: '%s fa',
3218            s: 'alcuni secondi',
3219            ss: '%d secondi',
3220            m: 'un minuto',
3221            mm: '%d minuti',
3222            h: "un'ora",
3223            hh: '%d ore',
3224            d: 'un giorno',
3225            dd: '%d giorni',
3226            M: 'un mese',
3227            MM: '%d mesi',
3228            y: 'un anno',
3229            yy: '%d anni',
3230        },
3231        dayOfMonthOrdinalParse: /\d{1,2}º/,
3232        ordinal: '%dº',
3233        week: {
3234            dow: 1, // Monday is the first day of the week.
3235            doy: 4, // The week that contains Jan 4th is the first week of the year.
3236        },
3237    });
3238
3239    return itCh;
3240
3241})));
3242
3243
3244/***/ }),
3245
3246/***/ 1848:
3247/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3248
3249//! moment.js locale configuration
3250//! locale : Maori [mi]
3251//! author : John Corrigan <[email protected]> : https://github.com/johnideal
3252
3253;(function (global, factory) {
3254    true ? factory(__webpack_require__(5093)) :
3255   0
3256}(this, (function (moment) { 'use strict';
3257
3258    //! moment.js locale configuration
3259
3260    var mi = moment.defineLocale('mi', {
3261        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(
3262            '_'
3263        ),
3264        monthsShort:
3265            'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
3266                '_'
3267            ),
3268        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
3269        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
3270        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
3271        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
3272        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
3273        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
3274        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
3275        longDateFormat: {
3276            LT: 'HH:mm',
3277            LTS: 'HH:mm:ss',
3278            L: 'DD/MM/YYYY',
3279            LL: 'D MMMM YYYY',
3280            LLL: 'D MMMM YYYY [i] HH:mm',
3281            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
3282        },
3283        calendar: {
3284            sameDay: '[i teie mahana, i] LT',
3285            nextDay: '[apopo i] LT',
3286            nextWeek: 'dddd [i] LT',
3287            lastDay: '[inanahi i] LT',
3288            lastWeek: 'dddd [whakamutunga i] LT',
3289            sameElse: 'L',
3290        },
3291        relativeTime: {
3292            future: 'i roto i %s',
3293            past: '%s i mua',
3294            s: 'te hēkona ruarua',
3295            ss: '%d hēkona',
3296            m: 'he meneti',
3297            mm: '%d meneti',
3298            h: 'te haora',
3299            hh: '%d haora',
3300            d: 'he ra',
3301            dd: '%d ra',
3302            M: 'he marama',
3303            MM: '%d marama',
3304            y: 'he tau',
3305            yy: '%d tau',
3306        },
3307        dayOfMonthOrdinalParse: /\d{1,2}º/,
3308        ordinal: '%dº',
3309        week: {
3310            dow: 1, // Monday is the first day of the week.
3311            doy: 4, // The week that contains Jan 4th is the first week of the year.
3312        },
3313    });
3314
3315    return mi;
3316
3317})));
3318
3319
3320/***/ }),
3321
3322/***/ 1885:
3323/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3324
3325//! moment.js locale configuration
3326//! locale : Telugu [te]
3327//! author : Krishna Chaitanya Thota : https://github.com/kcthota
3328
3329;(function (global, factory) {
3330    true ? factory(__webpack_require__(5093)) :
3331   0
3332}(this, (function (moment) { 'use strict';
3333
3334    //! moment.js locale configuration
3335
3336    var te = moment.defineLocale('te', {
3337        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
3338            '_'
3339        ),
3340        monthsShort:
3341            'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
3342                '_'
3343            ),
3344        monthsParseExact: true,
3345        weekdays:
3346            'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
3347                '_'
3348            ),
3349        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
3350        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
3351        longDateFormat: {
3352            LT: 'A h:mm',
3353            LTS: 'A h:mm:ss',
3354            L: 'DD/MM/YYYY',
3355            LL: 'D MMMM YYYY',
3356            LLL: 'D MMMM YYYY, A h:mm',
3357            LLLL: 'dddd, D MMMM YYYY, A h:mm',
3358        },
3359        calendar: {
3360            sameDay: '[నేడు] LT',
3361            nextDay: '[రేపు] LT',
3362            nextWeek: 'dddd, LT',
3363            lastDay: '[నిన్న] LT',
3364            lastWeek: '[గత] dddd, LT',
3365            sameElse: 'L',
3366        },
3367        relativeTime: {
3368            future: '%s లో',
3369            past: '%s క్రితం',
3370            s: 'కొన్ని క్షణాలు',
3371            ss: '%d సెకన్లు',
3372            m: 'ఒక నిమిషం',
3373            mm: '%d నిమిషాలు',
3374            h: 'ఒక గంట',
3375            hh: '%d గంటలు',
3376            d: 'ఒక రోజు',
3377            dd: '%d రోజులు',
3378            M: 'ఒక నెల',
3379            MM: '%d నెలలు',
3380            y: 'ఒక సంవత్సరం',
3381            yy: '%d సంవత్సరాలు',
3382        },
3383        dayOfMonthOrdinalParse: /\d{1,2}à°µ/,
vendor: 12,614 bytes, lines 3384-3707
3384        ordinal: '%dà°µ',
3385        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
3386        meridiemHour: function (hour, meridiem) {
3387            if (hour === 12) {
3388                hour = 0;
3389            }
3390            if (meridiem === 'రాత్రి') {
3391                return hour < 4 ? hour : hour + 12;
3392            } else if (meridiem === 'ఉదయం') {
3393                return hour;
3394            } else if (meridiem === 'మధ్యాహ్నం') {
3395                return hour >= 10 ? hour : hour + 12;
3396            } else if (meridiem === 'సాయంత్రం') {
3397                return hour + 12;
3398            }
3399        },
3400        meridiem: function (hour, minute, isLower) {
3401            if (hour < 4) {
3402                return 'రాత్రి';
3403            } else if (hour < 10) {
3404                return 'ఉదయం';
3405            } else if (hour < 17) {
3406                return 'మధ్యాహ్నం';
3407            } else if (hour < 20) {
3408                return 'సాయంత్రం';
3409            } else {
3410                return 'రాత్రి';
3411            }
3412        },
3413        week: {
3414            dow: 0, // Sunday is the first day of the week.
3415            doy: 6, // The week that contains Jan 6th is the first week of the year.
3416        },
3417    });
3418
3419    return te;
3420
3421})));
3422
3423
3424/***/ }),
3425
3426/***/ 2124:
3427/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3428
3429//! moment.js locale configuration
3430//! locale : Konkani Devanagari script [gom-deva]
3431//! author : The Discoverer : https://github.com/WikiDiscoverer
3432
3433;(function (global, factory) {
3434    true ? factory(__webpack_require__(5093)) :
3435   0
3436}(this, (function (moment) { 'use strict';
3437
3438    //! moment.js locale configuration
3439
3440    function processRelativeTime(number, withoutSuffix, key, isFuture) {
3441        var format = {
3442            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
3443            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
3444            m: ['एका मिणटान', 'एक मिनूट'],
3445            mm: [number + ' मिणटांनी', number + ' मिणटां'],
3446            h: ['एका वरान', 'एक वर'],
3447            hh: [number + ' वरांनी', number + ' वरां'],
3448            d: ['एका दिसान', 'एक दीस'],
3449            dd: [number + ' दिसांनी', number + ' दीस'],
3450            M: ['एका म्हयन्यान', 'एक म्हयनो'],
3451            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
3452            y: ['एका वर्सान', 'एक वर्स'],
3453            yy: [number + ' वर्सांनी', number + ' वर्सां'],
3454        };
3455        return isFuture ? format[key][0] : format[key][1];
3456    }
3457
3458    var gomDeva = moment.defineLocale('gom-deva', {
3459        months: {
3460            standalone:
3461                'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
3462                    '_'
3463                ),
3464            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
3465                '_'
3466            ),
3467            isFormat: /MMMM(\s)+D[oD]?/,
3468        },
3469        monthsShort:
3470            'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
3471                '_'
3472            ),
3473        monthsParseExact: true,
3474        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),
3475        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
3476        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
3477        weekdaysParseExact: true,
3478        longDateFormat: {
3479            LT: 'A h:mm [वाजतां]',
3480            LTS: 'A h:mm:ss [वाजतां]',
3481            L: 'DD-MM-YYYY',
3482            LL: 'D MMMM YYYY',
3483            LLL: 'D MMMM YYYY A h:mm [वाजतां]',
3484            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
3485            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
3486        },
3487        calendar: {
3488            sameDay: '[आयज] LT',
3489            nextDay: '[फाल्यां] LT',
3490            nextWeek: '[फुडलो] dddd[,] LT',
3491            lastDay: '[काल] LT',
3492            lastWeek: '[फाटलो] dddd[,] LT',
3493            sameElse: 'L',
3494        },
3495        relativeTime: {
3496            future: '%s',
3497            past: '%s आदीं',
3498            s: processRelativeTime,
3499            ss: processRelativeTime,
3500            m: processRelativeTime,
3501            mm: processRelativeTime,
3502            h: processRelativeTime,
3503            hh: processRelativeTime,
3504            d: processRelativeTime,
3505            dd: processRelativeTime,
3506            M: processRelativeTime,
3507            MM: processRelativeTime,
3508            y: processRelativeTime,
3509            yy: processRelativeTime,
3510        },
3511        dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
3512        ordinal: function (number, period) {
3513            switch (period) {
3514                // the ordinal 'वेर' only applies to day of the month
3515                case 'D':
3516                    return number + 'वेर';
3517                default:
3518                case 'M':
3519                case 'Q':
3520                case 'DDD':
3521                case 'd':
3522                case 'w':
3523                case 'W':
3524                    return number;
3525            }
3526        },
3527        week: {
3528            dow: 0, // Sunday is the first day of the week
3529            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
3530        },
3531        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
3532        meridiemHour: function (hour, meridiem) {
3533            if (hour === 12) {
3534                hour = 0;
3535            }
3536            if (meridiem === 'राती') {
3537                return hour < 4 ? hour : hour + 12;
3538            } else if (meridiem === 'सकाळीं') {
3539                return hour;
3540            } else if (meridiem === 'दनपारां') {
3541                return hour > 12 ? hour : hour + 12;
3542            } else if (meridiem === 'सांजे') {
3543                return hour + 12;
3544            }
3545        },
3546        meridiem: function (hour, minute, isLower) {
3547            if (hour < 4) {
3548                return 'राती';
3549            } else if (hour < 12) {
3550                return 'सकाळीं';
3551            } else if (hour < 16) {
3552                return 'दनपारां';
3553            } else if (hour < 20) {
3554                return 'सांजे';
3555            } else {
3556                return 'राती';
3557            }
3558        },
3559    });
3560
3561    return gomDeva;
3562
3563})));
3564
3565
3566/***/ }),
3567
3568/***/ 2218:
3569/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3570
3571//! moment.js locale configuration
3572//! locale : Yoruba Nigeria [yo]
3573//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe
3574
3575;(function (global, factory) {
3576    true ? factory(__webpack_require__(5093)) :
3577   0
3578}(this, (function (moment) { 'use strict';
3579
3580    //! moment.js locale configuration
3581
3582    var yo = moment.defineLocale('yo', {
3583        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
3584            '_'
3585        ),
3586        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
3587        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
3588        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
3589        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
3590        longDateFormat: {
3591            LT: 'h:mm A',
3592            LTS: 'h:mm:ss A',
3593            L: 'DD/MM/YYYY',
3594            LL: 'D MMMM YYYY',
3595            LLL: 'D MMMM YYYY h:mm A',
3596            LLLL: 'dddd, D MMMM YYYY h:mm A',
3597        },
3598        calendar: {
3599            sameDay: '[Ònì ni] LT',
3600            nextDay: '[Ọ̀la ni] LT',
3601            nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
3602            lastDay: '[Àna ni] LT',
3603            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
3604            sameElse: 'L',
3605        },
3606        relativeTime: {
3607            future: 'ní %s',
3608            past: '%s kọjá',
3609            s: 'ìsẹjú aayá die',
3610            ss: 'aayá %d',
3611            m: 'ìsẹjú kan',
3612            mm: 'ìsẹjú %d',
3613            h: 'wákati kan',
3614            hh: 'wákati %d',
3615            d: 'ọjọ́ kan',
3616            dd: 'ọjọ́ %d',
3617            M: 'osù kan',
3618            MM: 'osù %d',
3619            y: 'ọdún kan',
3620            yy: 'ọdún %d',
3621        },
3622        dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
3623        ordinal: 'ọjọ́ %d',
3624        week: {
3625            dow: 1, // Monday is the first day of the week.
3626            doy: 4, // The week that contains Jan 4th is the first week of the year.
3627        },
3628    });
3629
3630    return yo;
3631
3632})));
3633
3634
3635/***/ }),
3636
3637/***/ 2264:
3638/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3639
3640//! moment.js locale configuration
3641//! locale : Burmese [my]
3642//! author : Squar team, mysquar.com
3643//! author : David Rossellat : https://github.com/gholadr
3644//! author : Tin Aung Lin : https://github.com/thanyawzinmin
3645
3646;(function (global, factory) {
3647    true ? factory(__webpack_require__(5093)) :
3648   0
3649}(this, (function (moment) { 'use strict';
3650
3651    //! moment.js locale configuration
3652
3653    var symbolMap = {
3654            1: '၁',
3655            2: '၂',
3656            3: '၃',
3657            4: '၄',
3658            5: '၅',
3659            6: '၆',
3660            7: '၇',
3661            8: '၈',
3662            9: '၉',
3663            0: '၀',
3664        },
3665        numberMap = {
3666            '၁': '1',
3667            '၂': '2',
3668            '၃': '3',
3669            '၄': '4',
3670            '၅': '5',
3671            '၆': '6',
3672            '၇': '7',
3673            '၈': '8',
3674            '၉': '9',
3675            '၀': '0',
3676        };
3677
3678    var my = moment.defineLocale('my', {
3679        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
3680            '_'
3681        ),
3682        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
3683        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
3684            '_'
3685        ),
3686        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
3687        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
3688
3689        longDateFormat: {
3690            LT: 'HH:mm',
3691            LTS: 'HH:mm:ss',
3692            L: 'DD/MM/YYYY',
3693            LL: 'D MMMM YYYY',
3694            LLL: 'D MMMM YYYY HH:mm',
3695            LLLL: 'dddd D MMMM YYYY HH:mm',
3696        },
3697        calendar: {
3698            sameDay: '[ယနေ.] LT [မှာ]',
3699            nextDay: '[မနက်ဖြန်] LT [မှာ]',
3700            nextWeek: 'dddd LT [မှာ]',
3701            lastDay: '[မနေ.က] LT [မှာ]',
3702            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
3703            sameElse: 'L',
3704        },
3705        relativeTime: {
3706            future: 'လာမည့် %s မှာ',
3707            past: 'လွန်ခဲ့သော %s က',
vendor: 5,530 bytes, lines 3708-3840
3708            s: 'စက္ကန်.အနည်းငယ်',
3709            ss: '%d စက္ကန့်',
3710            m: 'တစ်မိနစ်',
3711            mm: '%d မိနစ်',
3712            h: 'တစ်နာရီ',
3713            hh: '%d နာရီ',
3714            d: 'တစ်ရက်',
3715            dd: '%d ရက်',
3716            M: 'တစ်လ',
3717            MM: '%d လ',
3718            y: 'တစ်နှစ်',
3719            yy: '%d နှစ်',
3720        },
3721        preparse: function (string) {
3722            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
3723                return numberMap[match];
3724            });
3725        },
3726        postformat: function (string) {
3727            return string.replace(/\d/g, function (match) {
3728                return symbolMap[match];
3729            });
3730        },
3731        week: {
3732            dow: 1, // Monday is the first day of the week.
3733            doy: 4, // The week that contains Jan 4th is the first week of the year.
3734        },
3735    });
3736
3737    return my;
3738
3739})));
3740
3741
3742/***/ }),
3743
3744/***/ 2271:
3745/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3746
3747//! moment.js locale configuration
3748//! locale : Russian [ru]
3749//! author : Viktorminator : https://github.com/Viktorminator
3750//! author : Menelion Elensúle : https://github.com/Oire
3751//! author : Коренберг Марк : https://github.com/socketpair
3752
3753;(function (global, factory) {
3754    true ? factory(__webpack_require__(5093)) :
3755   0
3756}(this, (function (moment) { 'use strict';
3757
3758    //! moment.js locale configuration
3759
3760    function plural(word, num) {
3761        var forms = word.split('_');
3762        return num % 10 === 1 && num % 100 !== 11
3763            ? forms[0]
3764            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
3765              ? forms[1]
3766              : forms[2];
3767    }
3768    function relativeTimeWithPlural(number, withoutSuffix, key) {
3769        var format = {
3770            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
3771            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
3772            hh: 'час_часа_часов',
3773            dd: 'день_дня_дней',
3774            ww: 'неделя_недели_недель',
3775            MM: 'месяц_месяца_месяцев',
3776            yy: 'год_года_лет',
3777        };
3778        if (key === 'm') {
3779            return withoutSuffix ? 'минута' : 'минуту';
3780        } else {
3781            return number + ' ' + plural(format[key], +number);
3782        }
3783    }
3784    var monthsParse = [
3785        /^янв/i,
3786        /^фев/i,
3787        /^мар/i,
3788        /^апр/i,
3789        /^ма[йя]/i,
3790        /^июн/i,
3791        /^июл/i,
3792        /^авг/i,
3793        /^сен/i,
3794        /^окт/i,
3795        /^ноя/i,
3796        /^дек/i,
3797    ];
3798
3799    // http://new.gramota.ru/spravka/rules/139-prop : § 103
3800    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
3801    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
3802    var ru = moment.defineLocale('ru', {
3803        months: {
3804            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
3805                '_'
3806            ),
3807            standalone:
3808                'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
3809                    '_'
3810                ),
3811        },
3812        monthsShort: {
3813            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
3814            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
3815                '_'
3816            ),
3817            standalone:
3818                'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
3819                    '_'
3820                ),
3821        },
3822        weekdays: {
3823            standalone:
3824                'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
3825                    '_'
3826                ),
3827            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
3828                '_'
3829            ),
3830            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
3831        },
3832        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
3833        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
3834        monthsParse: monthsParse,
3835        longMonthsParse: monthsParse,
3836        shortMonthsParse: monthsParse,
3837
3838        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
3839        monthsRegex:
3840            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
vendor: 16,025 bytes, lines 3841-4331
3841
3842        // копия предыдущего
3843        monthsShortRegex:
3844            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
3845
3846        // полные названия с падежами
3847        monthsStrictRegex:
3848            /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
3849
3850        // Выражение, которое соответствует только сокращённым формам
3851        monthsShortStrictRegex:
3852            /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
3853        longDateFormat: {
3854            LT: 'H:mm',
3855            LTS: 'H:mm:ss',
3856            L: 'DD.MM.YYYY',
3857            LL: 'D MMMM YYYY г.',
3858            LLL: 'D MMMM YYYY г., H:mm',
3859            LLLL: 'dddd, D MMMM YYYY г., H:mm',
3860        },
3861        calendar: {
3862            sameDay: '[Сегодня, в] LT',
3863            nextDay: '[Завтра, в] LT',
3864            lastDay: '[Вчера, в] LT',
3865            nextWeek: function (now) {
3866                if (now.week() !== this.week()) {
3867                    switch (this.day()) {
3868                        case 0:
3869                            return '[В следующее] dddd, [в] LT';
3870                        case 1:
3871                        case 2:
3872                        case 4:
3873                            return '[В следующий] dddd, [в] LT';
3874                        case 3:
3875                        case 5:
3876                        case 6:
3877                            return '[В следующую] dddd, [в] LT';
3878                    }
3879                } else {
3880                    if (this.day() === 2) {
3881                        return '[Во] dddd, [в] LT';
3882                    } else {
3883                        return '[В] dddd, [в] LT';
3884                    }
3885                }
3886            },
3887            lastWeek: function (now) {
3888                if (now.week() !== this.week()) {
3889                    switch (this.day()) {
3890                        case 0:
3891                            return '[В прошлое] dddd, [в] LT';
3892                        case 1:
3893                        case 2:
3894                        case 4:
3895                            return '[В прошлый] dddd, [в] LT';
3896                        case 3:
3897                        case 5:
3898                        case 6:
3899                            return '[В прошлую] dddd, [в] LT';
3900                    }
3901                } else {
3902                    if (this.day() === 2) {
3903                        return '[Во] dddd, [в] LT';
3904                    } else {
3905                        return '[В] dddd, [в] LT';
3906                    }
3907                }
3908            },
3909            sameElse: 'L',
3910        },
3911        relativeTime: {
3912            future: 'через %s',
3913            past: '%s назад',
3914            s: 'несколько секунд',
3915            ss: relativeTimeWithPlural,
3916            m: relativeTimeWithPlural,
3917            mm: relativeTimeWithPlural,
3918            h: 'час',
3919            hh: relativeTimeWithPlural,
3920            d: 'день',
3921            dd: relativeTimeWithPlural,
3922            w: 'неделя',
3923            ww: relativeTimeWithPlural,
3924            M: 'месяц',
3925            MM: relativeTimeWithPlural,
3926            y: 'год',
3927            yy: relativeTimeWithPlural,
3928        },
3929        meridiemParse: /ночи|утра|дня|вечера/i,
3930        isPM: function (input) {
3931            return /^(дня|вечера)$/.test(input);
3932        },
3933        meridiem: function (hour, minute, isLower) {
3934            if (hour < 4) {
3935                return 'ночи';
3936            } else if (hour < 12) {
3937                return 'утра';
3938            } else if (hour < 17) {
3939                return 'дня';
3940            } else {
3941                return 'вечера';
3942            }
3943        },
3944        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
3945        ordinal: function (number, period) {
3946            switch (period) {
3947                case 'M':
3948                case 'd':
3949                case 'DDD':
3950                    return number + '-й';
3951                case 'D':
3952                    return number + '-го';
3953                case 'w':
3954                case 'W':
3955                    return number + '-я';
3956                default:
3957                    return number;
3958            }
3959        },
3960        week: {
3961            dow: 1, // Monday is the first day of the week.
3962            doy: 4, // The week that contains Jan 4th is the first week of the year.
3963        },
3964    });
3965
3966    return ru;
3967
3968})));
3969
3970
3971/***/ }),
3972
3973/***/ 2274:
3974/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3975
3976//! moment.js locale configuration
3977//! locale : Norwegian Bokmål [nb]
3978//! authors : Espen Hovlandsdal : https://github.com/rexxars
3979//!           Sigurd Gartmann : https://github.com/sigurdga
3980//!           Stephen Ramthun : https://github.com/stephenramthun
3981
3982;(function (global, factory) {
3983    true ? factory(__webpack_require__(5093)) :
3984   0
3985}(this, (function (moment) { 'use strict';
3986
3987    //! moment.js locale configuration
3988
3989    var nb = moment.defineLocale('nb', {
3990        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
3991            '_'
3992        ),
3993        monthsShort:
3994            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
3995        monthsParseExact: true,
3996        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
3997        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
3998        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
3999        weekdaysParseExact: true,
4000        longDateFormat: {
4001            LT: 'HH:mm',
4002            LTS: 'HH:mm:ss',
4003            L: 'DD.MM.YYYY',
4004            LL: 'D. MMMM YYYY',
4005            LLL: 'D. MMMM YYYY [kl.] HH:mm',
4006            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
4007        },
4008        calendar: {
4009            sameDay: '[i dag kl.] LT',
4010            nextDay: '[i morgen kl.] LT',
4011            nextWeek: 'dddd [kl.] LT',
4012            lastDay: '[i går kl.] LT',
4013            lastWeek: '[forrige] dddd [kl.] LT',
4014            sameElse: 'L',
4015        },
4016        relativeTime: {
4017            future: 'om %s',
4018            past: '%s siden',
4019            s: 'noen sekunder',
4020            ss: '%d sekunder',
4021            m: 'ett minutt',
4022            mm: '%d minutter',
4023            h: 'én time',
4024            hh: '%d timer',
4025            d: 'én dag',
4026            dd: '%d dager',
4027            w: 'én uke',
4028            ww: '%d uker',
4029            M: 'én måned',
4030            MM: '%d måneder',
4031            y: 'ett år',
4032            yy: '%d år',
4033        },
4034        dayOfMonthOrdinalParse: /\d{1,2}\./,
4035        ordinal: '%d.',
4036        week: {
4037            dow: 1, // Monday is the first day of the week.
4038            doy: 4, // The week that contains Jan 4th is the first week of the year.
4039        },
4040    });
4041
4042    return nb;
4043
4044})));
4045
4046
4047/***/ }),
4048
4049/***/ 2297:
4050/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4051
4052//! moment.js locale configuration
4053//! locale : Malay [ms-my]
4054//! note : DEPRECATED, the correct one is [ms]
4055//! author : Weldan Jamili : https://github.com/weldan
4056
4057;(function (global, factory) {
4058    true ? factory(__webpack_require__(5093)) :
4059   0
4060}(this, (function (moment) { 'use strict';
4061
4062    //! moment.js locale configuration
4063
4064    var msMy = moment.defineLocale('ms-my', {
4065        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
4066            '_'
4067        ),
4068        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
4069        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
4070        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
4071        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
4072        longDateFormat: {
4073            LT: 'HH.mm',
4074            LTS: 'HH.mm.ss',
4075            L: 'DD/MM/YYYY',
4076            LL: 'D MMMM YYYY',
4077            LLL: 'D MMMM YYYY [pukul] HH.mm',
4078            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
4079        },
4080        meridiemParse: /pagi|tengahari|petang|malam/,
4081        meridiemHour: function (hour, meridiem) {
4082            if (hour === 12) {
4083                hour = 0;
4084            }
4085            if (meridiem === 'pagi') {
4086                return hour;
4087            } else if (meridiem === 'tengahari') {
4088                return hour >= 11 ? hour : hour + 12;
4089            } else if (meridiem === 'petang' || meridiem === 'malam') {
4090                return hour + 12;
4091            }
4092        },
4093        meridiem: function (hours, minutes, isLower) {
4094            if (hours < 11) {
4095                return 'pagi';
4096            } else if (hours < 15) {
4097                return 'tengahari';
4098            } else if (hours < 19) {
4099                return 'petang';
4100            } else {
4101                return 'malam';
4102            }
4103        },
4104        calendar: {
4105            sameDay: '[Hari ini pukul] LT',
4106            nextDay: '[Esok pukul] LT',
4107            nextWeek: 'dddd [pukul] LT',
4108            lastDay: '[Kelmarin pukul] LT',
4109            lastWeek: 'dddd [lepas pukul] LT',
4110            sameElse: 'L',
4111        },
4112        relativeTime: {
4113            future: 'dalam %s',
4114            past: '%s yang lepas',
4115            s: 'beberapa saat',
4116            ss: '%d saat',
4117            m: 'seminit',
4118            mm: '%d minit',
4119            h: 'sejam',
4120            hh: '%d jam',
4121            d: 'sehari',
4122            dd: '%d hari',
4123            M: 'sebulan',
4124            MM: '%d bulan',
4125            y: 'setahun',
4126            yy: '%d tahun',
4127        },
4128        week: {
4129            dow: 1, // Monday is the first day of the week.
4130            doy: 7, // The week that contains Jan 7th is the first week of the year.
4131        },
4132    });
4133
4134    return msMy;
4135
4136})));
4137
4138
4139/***/ }),
4140
4141/***/ 2353:
4142/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4143
4144//! moment.js locale configuration
4145//! locale : Arabic (Libya) [ar-ly]
4146//! author : Ali Hmer: https://github.com/kikoanis
4147
4148;(function (global, factory) {
4149    true ? factory(__webpack_require__(5093)) :
4150   0
4151}(this, (function (moment) { 'use strict';
4152
4153    //! moment.js locale configuration
4154
4155    var symbolMap = {
4156            1: '1',
4157            2: '2',
4158            3: '3',
4159            4: '4',
4160            5: '5',
4161            6: '6',
4162            7: '7',
4163            8: '8',
4164            9: '9',
4165            0: '0',
4166        },
4167        pluralForm = function (n) {
4168            return n === 0
4169                ? 0
4170                : n === 1
4171                  ? 1
4172                  : n === 2
4173                    ? 2
4174                    : n % 100 >= 3 && n % 100 <= 10
4175                      ? 3
4176                      : n % 100 >= 11
4177                        ? 4
4178                        : 5;
4179        },
4180        plurals = {
4181            s: [
4182                'أقل من ثانية',
4183                'ثانية واحدة',
4184                ['ثانيتان', 'ثانيتين'],
4185                '%d ثوان',
4186                '%d ثانية',
4187                '%d ثانية',
4188            ],
4189            m: [
4190                'أقل من دقيقة',
4191                'دقيقة واحدة',
4192                ['دقيقتان', 'دقيقتين'],
4193                '%d دقائق',
4194                '%d دقيقة',
4195                '%d دقيقة',
4196            ],
4197            h: [
4198                'أقل من ساعة',
4199                'ساعة واحدة',
4200                ['ساعتان', 'ساعتين'],
4201                '%d ساعات',
4202                '%d ساعة',
4203                '%d ساعة',
4204            ],
4205            d: [
4206                'أقل من يوم',
4207                'يوم واحد',
4208                ['يومان', 'يومين'],
4209                '%d أيام',
4210                '%d يومًا',
4211                '%d يوم',
4212            ],
4213            M: [
4214                'أقل من شهر',
4215                'شهر واحد',
4216                ['شهران', 'شهرين'],
4217                '%d أشهر',
4218                '%d شهرا',
4219                '%d شهر',
4220            ],
4221            y: [
4222                'أقل من عام',
4223                'عام واحد',
4224                ['عامان', 'عامين'],
4225                '%d أعوام',
4226                '%d عامًا',
4227                '%d عام',
4228            ],
4229        },
4230        pluralize = function (u) {
4231            return function (number, withoutSuffix, string, isFuture) {
4232                var f = pluralForm(number),
4233                    str = plurals[u][pluralForm(number)];
4234                if (f === 2) {
4235                    str = str[withoutSuffix ? 0 : 1];
4236                }
4237                return str.replace(/%d/i, number);
4238            };
4239        },
4240        months = [
4241            'يناير',
4242            'فبراير',
4243            'مارس',
4244            'أبريل',
4245            'مايو',
4246            'يونيو',
4247            'يوليو',
4248            'أغسطس',
4249            'سبتمبر',
4250            'أكتوبر',
4251            'نوفمبر',
4252            'ديسمبر',
4253        ];
4254
4255    var arLy = moment.defineLocale('ar-ly', {
4256        months: months,
4257        monthsShort: months,
4258        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
4259        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
4260        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
4261        weekdaysParseExact: true,
4262        longDateFormat: {
4263            LT: 'HH:mm',
4264            LTS: 'HH:mm:ss',
4265            L: 'D/\u200FM/\u200FYYYY',
4266            LL: 'D MMMM YYYY',
4267            LLL: 'D MMMM YYYY HH:mm',
4268            LLLL: 'dddd D MMMM YYYY HH:mm',
4269        },
4270        meridiemParse: /ص|م/,
4271        isPM: function (input) {
4272            return 'م' === input;
4273        },
4274        meridiem: function (hour, minute, isLower) {
4275            if (hour < 12) {
4276                return 'ص';
4277            } else {
4278                return 'م';
4279            }
4280        },
4281        calendar: {
4282            sameDay: '[اليوم عند الساعة] LT',
4283            nextDay: '[غدًا عند الساعة] LT',
4284            nextWeek: 'dddd [عند الساعة] LT',
4285            lastDay: '[أمس عند الساعة] LT',
4286            lastWeek: 'dddd [عند الساعة] LT',
4287            sameElse: 'L',
4288        },
4289        relativeTime: {
4290            future: 'بعد %s',
4291            past: 'منذ %s',
4292            s: pluralize('s'),
4293            ss: pluralize('s'),
4294            m: pluralize('m'),
4295            mm: pluralize('m'),
4296            h: pluralize('h'),
4297            hh: pluralize('h'),
4298            d: pluralize('d'),
4299            dd: pluralize('d'),
4300            M: pluralize('M'),
4301            MM: pluralize('M'),
4302            y: pluralize('y'),
4303            yy: pluralize('y'),
4304        },
4305        preparse: function (string) {
4306            return string.replace(/،/g, ',');
4307        },
4308        postformat: function (string) {
4309            return string
4310                .replace(/\d/g, function (match) {
4311                    return symbolMap[match];
4312                })
4313                .replace(/,/g, '،');
4314        },
4315        week: {
4316            dow: 6, // Saturday is the first day of the week.
4317            doy: 12, // The week that contains Jan 12th is the first week of the year.
4318        },
4319    });
4320
4321    return arLy;
4322
4323})));
4324
4325
4326/***/ }),
4327
4328/***/ 2475:
4329/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4330
4331//! moment.js locale configuration
vendor: 6,221 bytes, lines 4332-4526
4332//! locale : Uzbek Latin [uz-latn]
4333//! author : Rasulbek Mirzayev : github.com/Rasulbeeek
4334
4335;(function (global, factory) {
4336    true ? factory(__webpack_require__(5093)) :
4337   0
4338}(this, (function (moment) { 'use strict';
4339
4340    //! moment.js locale configuration
4341
4342    var uzLatn = moment.defineLocale('uz-latn', {
4343        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
4344            '_'
4345        ),
4346        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
4347        weekdays:
4348            'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
4349                '_'
4350            ),
4351        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
4352        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
4353        longDateFormat: {
4354            LT: 'HH:mm',
4355            LTS: 'HH:mm:ss',
4356            L: 'DD/MM/YYYY',
4357            LL: 'D MMMM YYYY',
4358            LLL: 'D MMMM YYYY HH:mm',
4359            LLLL: 'D MMMM YYYY, dddd HH:mm',
4360        },
4361        calendar: {
4362            sameDay: '[Bugun soat] LT [da]',
4363            nextDay: '[Ertaga] LT [da]',
4364            nextWeek: 'dddd [kuni soat] LT [da]',
4365            lastDay: '[Kecha soat] LT [da]',
4366            lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
4367            sameElse: 'L',
4368        },
4369        relativeTime: {
4370            future: 'Yaqin %s ichida',
4371            past: 'Bir necha %s oldin',
4372            s: 'soniya',
4373            ss: '%d soniya',
4374            m: 'bir daqiqa',
4375            mm: '%d daqiqa',
4376            h: 'bir soat',
4377            hh: '%d soat',
4378            d: 'bir kun',
4379            dd: '%d kun',
4380            M: 'bir oy',
4381            MM: '%d oy',
4382            y: 'bir yil',
4383            yy: '%d yil',
4384        },
4385        week: {
4386            dow: 1, // Monday is the first day of the week.
4387            doy: 7, // The week that contains Jan 7th is the first week of the year.
4388        },
4389    });
4390
4391    return uzLatn;
4392
4393})));
4394
4395
4396/***/ }),
4397
4398/***/ 2477:
4399/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4400
4401//! moment.js locale configuration
4402//! locale : Faroese [fo]
4403//! author : Ragnar Johannesen : https://github.com/ragnar123
4404//! author : Kristian Sakarisson : https://github.com/sakarisson
4405
4406;(function (global, factory) {
4407    true ? factory(__webpack_require__(5093)) :
4408   0
4409}(this, (function (moment) { 'use strict';
4410
4411    //! moment.js locale configuration
4412
4413    var fo = moment.defineLocale('fo', {
4414        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
4415            '_'
4416        ),
4417        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
4418        weekdays:
4419            'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
4420                '_'
4421            ),
4422        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
4423        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
4424        longDateFormat: {
4425            LT: 'HH:mm',
4426            LTS: 'HH:mm:ss',
4427            L: 'DD/MM/YYYY',
4428            LL: 'D MMMM YYYY',
4429            LLL: 'D MMMM YYYY HH:mm',
4430            LLLL: 'dddd D. MMMM, YYYY HH:mm',
4431        },
4432        calendar: {
4433            sameDay: '[Í dag kl.] LT',
4434            nextDay: '[Í morgin kl.] LT',
4435            nextWeek: 'dddd [kl.] LT',
4436            lastDay: '[Í gjár kl.] LT',
4437            lastWeek: '[síðstu] dddd [kl] LT',
4438            sameElse: 'L',
4439        },
4440        relativeTime: {
4441            future: 'um %s',
4442            past: '%s síðani',
4443            s: 'fá sekund',
4444            ss: '%d sekundir',
4445            m: 'ein minuttur',
4446            mm: '%d minuttir',
4447            h: 'ein tími',
4448            hh: '%d tímar',
4449            d: 'ein dagur',
4450            dd: '%d dagar',
4451            M: 'ein mánaður',
4452            MM: '%d mánaðir',
4453            y: 'eitt ár',
4454            yy: '%d ár',
4455        },
4456        dayOfMonthOrdinalParse: /\d{1,2}\./,
4457        ordinal: '%d.',
4458        week: {
4459            dow: 1, // Monday is the first day of the week.
4460            doy: 4, // The week that contains Jan 4th is the first week of the year.
4461        },
4462    });
4463
4464    return fo;
4465
4466})));
4467
4468
4469/***/ }),
4470
4471/***/ 2572:
4472/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4473
4474//! moment.js locale configuration
4475//! locale : Dutch [nl]
4476//! author : Joris Röling : https://github.com/jorisroling
4477//! author : Jacob Middag : https://github.com/middagj
4478
4479;(function (global, factory) {
4480    true ? factory(__webpack_require__(5093)) :
4481   0
4482}(this, (function (moment) { 'use strict';
4483
4484    //! moment.js locale configuration
4485
4486    var monthsShortWithDots =
4487            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
4488        monthsShortWithoutDots =
4489            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
4490        monthsParse = [
4491            /^jan/i,
4492            /^feb/i,
4493            /^(maart|mrt\.?)$/i,
4494            /^apr/i,
4495            /^mei$/i,
4496            /^jun[i.]?$/i,
4497            /^jul[i.]?$/i,
4498            /^aug/i,
4499            /^sep/i,
4500            /^okt/i,
4501            /^nov/i,
4502            /^dec/i,
4503        ],
4504        monthsRegex =
4505            /^(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;
4506
4507    var nl = moment.defineLocale('nl', {
4508        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
4509            '_'
4510        ),
4511        monthsShort: function (m, format) {
4512            if (!m) {
4513                return monthsShortWithDots;
4514            } else if (/-MMM-/.test(format)) {
4515                return monthsShortWithoutDots[m.month()];
4516            } else {
4517                return monthsShortWithDots[m.month()];
4518            }
4519        },
4520
4521        monthsRegex: monthsRegex,
4522        monthsShortRegex: monthsRegex,
4523        monthsStrictRegex:
4524            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
4525        monthsShortStrictRegex:
4526            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
vendor: 15,568 bytes, lines 4527-5020
4527
4528        monthsParse: monthsParse,
4529        longMonthsParse: monthsParse,
4530        shortMonthsParse: monthsParse,
4531
4532        weekdays:
4533            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
4534        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
4535        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
4536        weekdaysParseExact: true,
4537        longDateFormat: {
4538            LT: 'HH:mm',
4539            LTS: 'HH:mm:ss',
4540            L: 'DD-MM-YYYY',
4541            LL: 'D MMMM YYYY',
4542            LLL: 'D MMMM YYYY HH:mm',
4543            LLLL: 'dddd D MMMM YYYY HH:mm',
4544        },
4545        calendar: {
4546            sameDay: '[vandaag om] LT',
4547            nextDay: '[morgen om] LT',
4548            nextWeek: 'dddd [om] LT',
4549            lastDay: '[gisteren om] LT',
4550            lastWeek: '[afgelopen] dddd [om] LT',
4551            sameElse: 'L',
4552        },
4553        relativeTime: {
4554            future: 'over %s',
4555            past: '%s geleden',
4556            s: 'een paar seconden',
4557            ss: '%d seconden',
4558            m: 'één minuut',
4559            mm: '%d minuten',
4560            h: 'één uur',
4561            hh: '%d uur',
4562            d: 'één dag',
4563            dd: '%d dagen',
4564            w: 'één week',
4565            ww: '%d weken',
4566            M: 'één maand',
4567            MM: '%d maanden',
4568            y: 'één jaar',
4569            yy: '%d jaar',
4570        },
4571        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
4572        ordinal: function (number) {
4573            return (
4574                number +
4575                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
4576            );
4577        },
4578        week: {
4579            dow: 1, // Monday is the first day of the week.
4580            doy: 4, // The week that contains Jan 4th is the first week of the year.
4581        },
4582    });
4583
4584    return nl;
4585
4586})));
4587
4588
4589/***/ }),
4590
4591/***/ 2648:
4592/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4593
4594//! moment.js locale configuration
4595//! locale : Chinese (China) [zh-cn]
4596//! author : suupic : https://github.com/suupic
4597//! author : Zeno Zeng : https://github.com/zenozeng
4598//! author : uu109 : https://github.com/uu109
4599
4600;(function (global, factory) {
4601    true ? factory(__webpack_require__(5093)) :
4602   0
4603}(this, (function (moment) { 'use strict';
4604
4605    //! moment.js locale configuration
4606
4607    var zhCn = moment.defineLocale('zh-cn', {
4608        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
4609            '_'
4610        ),
4611        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
4612            '_'
4613        ),
4614        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
4615        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
4616        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
4617        longDateFormat: {
4618            LT: 'HH:mm',
4619            LTS: 'HH:mm:ss',
4620            L: 'YYYY/MM/DD',
4621            LL: 'YYYY年M月D日',
4622            LLL: 'YYYY年M月D日Ah点mm分',
4623            LLLL: 'YYYY年M月D日ddddAh点mm分',
4624            l: 'YYYY/M/D',
4625            ll: 'YYYY年M月D日',
4626            lll: 'YYYY年M月D日 HH:mm',
4627            llll: 'YYYY年M月D日dddd HH:mm',
4628        },
4629        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
4630        meridiemHour: function (hour, meridiem) {
4631            if (hour === 12) {
4632                hour = 0;
4633            }
4634            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
4635                return hour;
4636            } else if (meridiem === '下午' || meridiem === '晚上') {
4637                return hour + 12;
4638            } else {
4639                // '中午'
4640                return hour >= 11 ? hour : hour + 12;
4641            }
4642        },
4643        meridiem: function (hour, minute, isLower) {
4644            var hm = hour * 100 + minute;
4645            if (hm < 600) {
4646                return '凌晨';
4647            } else if (hm < 900) {
4648                return '早上';
4649            } else if (hm < 1130) {
4650                return '上午';
4651            } else if (hm < 1230) {
4652                return '中午';
4653            } else if (hm < 1800) {
4654                return '下午';
4655            } else {
4656                return '晚上';
4657            }
4658        },
4659        calendar: {
4660            sameDay: '[今天]LT',
4661            nextDay: '[明天]LT',
4662            nextWeek: function (now) {
4663                if (now.week() !== this.week()) {
4664                    return '[下]dddLT';
4665                } else {
4666                    return '[本]dddLT';
4667                }
4668            },
4669            lastDay: '[昨天]LT',
4670            lastWeek: function (now) {
4671                if (this.week() !== now.week()) {
4672                    return '[上]dddLT';
4673                } else {
4674                    return '[本]dddLT';
4675                }
4676            },
4677            sameElse: 'L',
4678        },
4679        dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
4680        ordinal: function (number, period) {
4681            switch (period) {
4682                case 'd':
4683                case 'D':
4684                case 'DDD':
4685                    return number + '日';
4686                case 'M':
4687                    return number + '月';
4688                case 'w':
4689                case 'W':
4690                    return number + '周';
4691                default:
4692                    return number;
4693            }
4694        },
4695        relativeTime: {
4696            future: '%s后',
4697            past: '%s前',
4698            s: '几秒',
4699            ss: '%d 秒',
4700            m: '1 分钟',
4701            mm: '%d 分钟',
4702            h: '1 小时',
4703            hh: '%d 小时',
4704            d: '1 天',
4705            dd: '%d 天',
4706            w: '1 周',
4707            ww: '%d 周',
4708            M: '1 个月',
4709            MM: '%d 个月',
4710            y: '1 å¹´',
4711            yy: '%d å¹´',
4712        },
4713        week: {
4714            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
4715            dow: 1, // Monday is the first day of the week.
4716            doy: 4, // The week that contains Jan 4th is the first week of the year.
4717        },
4718    });
4719
4720    return zhCn;
4721
4722})));
4723
4724
4725/***/ }),
4726
4727/***/ 2682:
4728/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4729
4730//! moment.js locale configuration
4731//! locale : Arabic (Saudi Arabia) [ar-sa]
4732//! author : Suhail Alkowaileet : https://github.com/xsoh
4733
4734;(function (global, factory) {
4735    true ? factory(__webpack_require__(5093)) :
4736   0
4737}(this, (function (moment) { 'use strict';
4738
4739    //! moment.js locale configuration
4740
4741    var symbolMap = {
4742            1: 'Ù¡',
4743            2: 'Ù¢',
4744            3: 'Ù£',
4745            4: 'Ù¤',
4746            5: 'Ù¥',
4747            6: 'Ù¦',
4748            7: 'Ù§',
4749            8: 'Ù¨',
4750            9: 'Ù©',
4751            0: 'Ù ',
4752        },
4753        numberMap = {
4754            'Ù¡': '1',
4755            'Ù¢': '2',
4756            'Ù£': '3',
4757            'Ù¤': '4',
4758            'Ù¥': '5',
4759            'Ù¦': '6',
4760            'Ù§': '7',
4761            'Ù¨': '8',
4762            'Ù©': '9',
4763            'Ù ': '0',
4764        };
4765
4766    var arSa = moment.defineLocale('ar-sa', {
4767        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
4768            '_'
4769        ),
4770        monthsShort:
4771            'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
4772                '_'
4773            ),
4774        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
4775        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
4776        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
4777        weekdaysParseExact: true,
4778        longDateFormat: {
4779            LT: 'HH:mm',
4780            LTS: 'HH:mm:ss',
4781            L: 'DD/MM/YYYY',
4782            LL: 'D MMMM YYYY',
4783            LLL: 'D MMMM YYYY HH:mm',
4784            LLLL: 'dddd D MMMM YYYY HH:mm',
4785        },
4786        meridiemParse: /ص|م/,
4787        isPM: function (input) {
4788            return 'م' === input;
4789        },
4790        meridiem: function (hour, minute, isLower) {
4791            if (hour < 12) {
4792                return 'ص';
4793            } else {
4794                return 'م';
4795            }
4796        },
4797        calendar: {
4798            sameDay: '[اليوم على الساعة] LT',
4799            nextDay: '[غدا على الساعة] LT',
4800            nextWeek: 'dddd [على الساعة] LT',
4801            lastDay: '[أمس على الساعة] LT',
4802            lastWeek: 'dddd [على الساعة] LT',
4803            sameElse: 'L',
4804        },
4805        relativeTime: {
4806            future: 'في %s',
4807            past: 'منذ %s',
4808            s: 'ثوان',
4809            ss: '%d ثانية',
4810            m: 'دقيقة',
4811            mm: '%d دقائق',
4812            h: 'ساعة',
4813            hh: '%d ساعات',
4814            d: 'يوم',
4815            dd: '%d أيام',
4816            M: 'شهر',
4817            MM: '%d أشهر',
4818            y: 'سنة',
4819            yy: '%d سنوات',
4820        },
4821        preparse: function (string) {
4822            return string
4823                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
4824                    return numberMap[match];
4825                })
4826                .replace(/،/g, ',');
4827        },
4828        postformat: function (string) {
4829            return string
4830                .replace(/\d/g, function (match) {
4831                    return symbolMap[match];
4832                })
4833                .replace(/,/g, '،');
4834        },
4835        week: {
4836            dow: 0, // Sunday is the first day of the week.
4837            doy: 6, // The week that contains Jan 6th is the first week of the year.
4838        },
4839    });
4840
4841    return arSa;
4842
4843})));
4844
4845
4846/***/ }),
4847
4848/***/ 2934:
4849/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4850
4851//! moment.js locale configuration
4852//! locale : Esperanto [eo]
4853//! author : Colin Dean : https://github.com/colindean
4854//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia
4855//! comment : miestasmia corrected the translation by colindean
4856//! comment : Vivakvo corrected the translation by colindean and miestasmia
4857
4858;(function (global, factory) {
4859    true ? factory(__webpack_require__(5093)) :
4860   0
4861}(this, (function (moment) { 'use strict';
4862
4863    //! moment.js locale configuration
4864
4865    var eo = moment.defineLocale('eo', {
4866        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split(
4867            '_'
4868        ),
4869        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅ­g_sept_okt_nov_dec'.split('_'),
4870        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
4871        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
4872        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
4873        longDateFormat: {
4874            LT: 'HH:mm',
4875            LTS: 'HH:mm:ss',
4876            L: 'YYYY-MM-DD',
4877            LL: '[la] D[-an de] MMMM, YYYY',
4878            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
4879            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
4880            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
4881        },
4882        meridiemParse: /[ap]\.t\.m/i,
4883        isPM: function (input) {
4884            return input.charAt(0).toLowerCase() === 'p';
4885        },
4886        meridiem: function (hours, minutes, isLower) {
4887            if (hours > 11) {
4888                return isLower ? 'p.t.m.' : 'P.T.M.';
4889            } else {
4890                return isLower ? 'a.t.m.' : 'A.T.M.';
4891            }
4892        },
4893        calendar: {
4894            sameDay: '[HodiaÅ­ je] LT',
4895            nextDay: '[MorgaÅ­ je] LT',
4896            nextWeek: 'dddd[n je] LT',
4897            lastDay: '[HieraÅ­ je] LT',
4898            lastWeek: '[pasintan] dddd[n je] LT',
4899            sameElse: 'L',
4900        },
4901        relativeTime: {
4902            future: 'post %s',
4903            past: 'antaÅ­ %s',
4904            s: 'kelkaj sekundoj',
4905            ss: '%d sekundoj',
4906            m: 'unu minuto',
4907            mm: '%d minutoj',
4908            h: 'unu horo',
4909            hh: '%d horoj',
4910            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
4911            dd: '%d tagoj',
4912            M: 'unu monato',
4913            MM: '%d monatoj',
4914            y: 'unu jaro',
4915            yy: '%d jaroj',
4916        },
4917        dayOfMonthOrdinalParse: /\d{1,2}a/,
4918        ordinal: '%da',
4919        week: {
4920            dow: 1, // Monday is the first day of the week.
4921            doy: 7, // The week that contains Jan 7th is the first week of the year.
4922        },
4923    });
4924
4925    return eo;
4926
4927})));
4928
4929
4930/***/ }),
4931
4932/***/ 3004:
4933/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4934
4935//! moment.js locale configuration
4936//! locale : English (Singapore) [en-sg]
4937//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension
4938
4939;(function (global, factory) {
4940    true ? factory(__webpack_require__(5093)) :
4941   0
4942}(this, (function (moment) { 'use strict';
4943
4944    //! moment.js locale configuration
4945
4946    var enSg = moment.defineLocale('en-sg', {
4947        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
4948            '_'
4949        ),
4950        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
4951        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
4952            '_'
4953        ),
4954        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
4955        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
4956        longDateFormat: {
4957            LT: 'HH:mm',
4958            LTS: 'HH:mm:ss',
4959            L: 'DD/MM/YYYY',
4960            LL: 'D MMMM YYYY',
4961            LLL: 'D MMMM YYYY HH:mm',
4962            LLLL: 'dddd, D MMMM YYYY HH:mm',
4963        },
4964        calendar: {
4965            sameDay: '[Today at] LT',
4966            nextDay: '[Tomorrow at] LT',
4967            nextWeek: 'dddd [at] LT',
4968            lastDay: '[Yesterday at] LT',
4969            lastWeek: '[Last] dddd [at] LT',
4970            sameElse: 'L',
4971        },
4972        relativeTime: {
4973            future: 'in %s',
4974            past: '%s ago',
4975            s: 'a few seconds',
4976            ss: '%d seconds',
4977            m: 'a minute',
4978            mm: '%d minutes',
4979            h: 'an hour',
4980            hh: '%d hours',
4981            d: 'a day',
4982            dd: '%d days',
4983            M: 'a month',
4984            MM: '%d months',
4985            y: 'a year',
4986            yy: '%d years',
4987        },
4988        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
4989        ordinal: function (number) {
4990            var b = number % 10,
4991                output =
4992                    ~~((number % 100) / 10) === 1
4993                        ? 'th'
4994                        : b === 1
4995                          ? 'st'
4996                          : b === 2
4997                            ? 'nd'
4998                            : b === 3
4999                              ? 'rd'
5000                              : 'th';
5001            return number + output;
5002        },
5003        week: {
5004            dow: 1, // Monday is the first day of the week.
5005            doy: 4, // The week that contains Jan 4th is the first week of the year.
5006        },
5007    });
5008
5009    return enSg;
5010
5011})));
5012
5013
5014/***/ }),
5015
5016/***/ 3035:
5017/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5018
5019//! moment.js locale configuration
5020//! locale : Estonian [et]
5021//! author : Henry Kehlmann : https://github.com/madhenry
5022//! improvements : Illimar Tambek : https://github.com/ragulka
5023
5024;(function (global, factory) {
5025    true ? factory(__webpack_require__(5093)) :
5026   0
5027}(this, (function (moment) { 'use strict';
5028
5029    //! moment.js locale configuration
5030
5031    function processRelativeTime(number, withoutSuffix, key, isFuture) {
5032        var format = {
5033            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
5034            ss: [number + 'sekundi', number + 'sekundit'],
5035            m: ['ühe minuti', 'üks minut'],
5036            mm: [number + ' minuti', number + ' minutit'],
5037            h: ['ühe tunni', 'tund aega', 'üks tund'],
5038            hh: [number + ' tunni', number + ' tundi'],
5039            d: ['ühe päeva', 'üks päev'],
5040            M: ['kuu aja', 'kuu aega', 'üks kuu'],
5041            MM: [number + ' kuu', number + ' kuud'],
5042            y: ['ühe aasta', 'aasta', 'üks aasta'],
5043            yy: [number + ' aasta', number + ' aastat'],
5044        };
5045        if (withoutSuffix) {
5046            return format[key][2] ? format[key][2] : format[key][1];
5047        }
5048        return isFuture ? format[key][0] : format[key][1];
5049    }
5050
5051    var et = moment.defineLocale('et', {
5052        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
5053            '_'
5054        ),
5055        monthsShort:
5056            'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
5057        weekdays:
5058            'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
5059                '_'
5060            ),
5061        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
5062        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
5063        longDateFormat: {
5064            LT: 'H:mm',
5065            LTS: 'H:mm:ss',
5066            L: 'DD.MM.YYYY',
5067            LL: 'D. MMMM YYYY',
5068            LLL: 'D. MMMM YYYY H:mm',
5069            LLLL: 'dddd, D. MMMM YYYY H:mm',
5070        },
5071        calendar: {
5072            sameDay: '[Täna,] LT',
5073            nextDay: '[Homme,] LT',
5074            nextWeek: '[Järgmine] dddd LT',
5075            lastDay: '[Eile,] LT',
5076            lastWeek: '[Eelmine] dddd LT',
5077            sameElse: 'L',
5078        },
5079        relativeTime: {
5080            future: '%s pärast',
5081            past: '%s tagasi',
5082            s: processRelativeTime,
5083            ss: processRelativeTime,
5084            m: processRelativeTime,
5085            mm: processRelativeTime,
5086            h: processRelativeTime,
5087            hh: processRelativeTime,
5088            d: processRelativeTime,
5089            dd: '%d päeva',
5090            M: processRelativeTime,
5091            MM: processRelativeTime,
5092            y: processRelativeTime,
5093            yy: processRelativeTime,
5094        },
5095        dayOfMonthOrdinalParse: /\d{1,2}\./,
5096        ordinal: '%d.',
5097        week: {
5098            dow: 1, // Monday is the first day of the week.
5099            doy: 4, // The week that contains Jan 4th is the first week of the year.
5100        },
5101    });
5102
5103    return et;
5104
5105})));
5106
5107
5108/***/ }),
5109
5110/***/ 3124:
5111/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5112
5113/* provided dependency */ var jQuery = __webpack_require__(4692);
5114/* =
5115 jquery.eventCalendar.js
5116 version: 0.7
5117 date: 13-08-2015
5118 author:
5119 Jaime Fernandez (@vissit)
5120 company:
5121 Paradigma Tecnologico (@paradigmate)
5122 url:
5123 http://www.vissit.com/projects/eventCalendar/
5124 */
5125var moment = __webpack_require__(5093)
5126
5127;(function ($) {
5128    $.fn.eventCalendar = function (options) {
5129        var calendar = this;
5130
5131        if (options.locales && typeof (options.locales) == 'string') {
5132            $.getJSON(options.locales, function (data) {
5133                options.locales = $.extend({}, $.fn.eventCalendar.defaults.locales, data);
5134                moment.locale(data.locale, options.locales.moment);
5135                moment.locale(data.locale);
5136
5137                initEventCalendar(calendar, options);
5138            });
5139        } else {
5140            if (options.locales && options.locales.locale) {
5141                options.locales = $.extend({}, $.fn.eventCalendar.defaults.locales, options.locales);
5142
5143            }
5144            initEventCalendar(calendar, options);
5145        }
5146
5147
5148    };
5149
5150
5151    // define the parameters with the default values of the function
5152    $.fn.eventCalendar.defaults = {
5153        eventsjson: 'js/events.json',
5154        eventsLimit: 4,
5155        locales: {
5156            locale: "en",
5157            txt_noEvents: "There are no events in this period",
5158            txt_SpecificEvents_prev: "",
5159            txt_SpecificEvents_after: "events:",
5160            txt_next: "next",
5161            txt_prev: "prev",
5162            txt_NextEvents: "Next events:",
5163            txt_GoToEventUrl: "See the event",
5164            txt_loading: "loading..."
5165        },
5166        showDayAsWeeks: true,
5167        startWeekOnMonday: true,
5168        showDayNameInCalendar: true,
5169        showDescription: false,
5170        onlyOneDescription: true,
5171        openEventInNewWindow: false,
5172        eventsScrollable: false,
5173        dateFormat: "D.MM.YYYY",
5174        jsonDateFormat: 'human', // you can use also "human" 'YYYY-MM-DD HH:MM:SS'
5175        moveSpeed: 500, // speed of month move when you clic on a new date
5176        moveOpacity: 0.15, // month and events fadeOut to this opacity
5177        jsonData: "", // to load and inline json (not ajax calls)
5178        cacheJson: true	// if true plugin get a json only first time and after plugin filter events
5179                // if false plugin get a new json on each date change
5180    };
5181
5182    function initEventCalendar(that, options) {
5183        var eventsOpts = $.extend({}, $.fn.eventCalendar.defaults, options);
5184
5185        // define global vars for the function
5186        var flags = {
5187            wrap: "",
5188            directionLeftMove: "300",
5189            eventsJson: {}
5190        };
5191
5192        // each eventCalendar will execute this function
5193        that.each(function () {
5194            var container = that.parent().parent();
5195
5196            flags.wrap = $(this);
5197            flags.wrap.addClass('eventCalendar-wrap').append("<div class='eventCalendar-list-wrap'><a href=\"#close\" class='close_event_list'>x</a><p class='eventCalendar-subtitle'></p><span class='eventCalendar-loading'>" + eventsOpts.locales.txt_loading + "</span><div class='eventCalendar-list-content'><ul class='article-list eventCalendar-list'></ul></div></div>");
5198
5199            $(".close_event_list").click(function (event) {
5200                event.preventDefault();
5201
5202                $(this).parent().removeClass('active');
5203            });
5204
5205            if (eventsOpts.eventsScrollable) {
5206                flags.wrap.find('.eventCalendar-list-content').addClass('scrollable');
5207            }
5208
5209            setCalendarWidth(flags);
5210            $(window).resize(function () {
5211                setCalendarWidth(flags);
5212            });
5213            //flags.directionLeftMove = flags.wrap.width();
5214
5215            // show current month
5216            dateSlider(container, "current", flags, eventsOpts);
5217
5218            getEvents(container, flags, eventsOpts, eventsOpts.eventsLimit, false, false, false, false);
5219
5220            changeMonth(container, flags, eventsOpts);
5221
5222            flags.wrap.on('click', '.eventCalendar-day > a', function (e) {
5223                
5224                //flags.wrap.find('.eventCalendar-day a').live('click',function(e){
5225                e.preventDefault();
5226                var year = flags.wrap.attr('data-current-year'),
5227                        month = flags.wrap.attr('data-current-month'),
5228                        day = $(this).parent().attr('rel');
5229
5230                getEvents(container, flags, eventsOpts, false, year, month, day, "day");
5231                container.find('.eventCalendar-list-wrap').addClass('active');
5232            });
5233            flags.wrap.on('click', '.eventCalendar-monthTitle', function (e) {
5234                //flags.wrap.find('.eventCalendar-monthTitle').live('click',function(e){
5235                e.preventDefault();
5236                var year = flags.wrap.attr('data-current-year'),
5237                        month = flags.wrap.attr('data-current-month');
5238
5239                getEvents(container, flags, eventsOpts, eventsOpts.eventsLimit, year, month, false, "month");
5240            });
5241            flags.wrap.on('mouseover', '.eventCalendar-day', function(e) {
5242                if($(this).hasClass('eventCalendar-dayWithEvents')) {
5243                    $(this).children('.event-day-tooltip').remove();
5244                    var tooltip = $('<div class="event-day-tooltip"></div>');
5245
5246                    $.each(flags.eventsJson, function (key, event) {
5247                        // tooltip.append('<p><a href="' + event.url + '" class="tooltip-link">' + event.title + '</a></p>')
5248                        tooltip.append('<p>' + event.title + '</p>')
5249                    });
5250
5251                    $(this).append(tooltip);
5252                }
5253            });
5254            flags.wrap.on('mouseout', '.eventCalendar-day', function(e) {
5255                // $(this).children('.event-day-tooltip').remove();
5256            });
5257        });
5258
5259        // show event description
5260        flags.wrap.find('.eventCalendar-list').on('click', '.eventCalendar-eventTitle', function (e) {
5261            //flags.wrap.find('.eventCalendar-list .eventCalendar-eventTitle').live('click',function(e){
5262            if (false) { var eventTarget, eventUrl, desc; }
5263        });
5264    }
5265
5266    function sortJson(a, b) {
5267        if (typeof a.date === 'string') {
5268            return a.date.toLowerCase() > b.date.toLowerCase() ? 1 : -1;
5269        }
5270        return a.date > b.date ? 1 : -1;
5271    }
5272
5273    function dateSlider(container, show, flags, eventsOpts) {
5274        
5275        var $eventsCalendarSlider = $("<div class='eventCalendar-slider'></div>"),
5276                $eventsCalendarMonthWrap = $("<div class='eventCalendar-monthWrap'></div>"),
5277                $eventsCalendarTitle = $("<div class='eventCalendar-currentTitle'><a href='#' class='eventCalendar-monthTitle'></a></div>"),
5278                $eventsCalendarArrows = $("<a href='#' class='eventCalendar-arrow eventCalendar-prev'><span>" + eventsOpts.locales.txt_prev + "</span></a><a href='#' class='eventCalendar-arrow eventCalendar-next'><span>" + eventsOpts.locales.txt_next + "</span></a>"),
5279        $eventsCalendarDaysList = $("<ul class='eventCalendar-daysList'></ul>"),
5280                date = new Date();
5281
5282        if (!flags.wrap.find('.eventCalendar-slider').length) {
5283            flags.wrap.prepend($eventsCalendarSlider);
5284            $eventsCalendarSlider.append($eventsCalendarMonthWrap);
5285        } else {
5286            flags.wrap.find('.eventCalendar-slider').append($eventsCalendarMonthWrap);
5287        }
5288
5289        flags.wrap.find('.eventCalendar-monthWrap.eventCalendar-currentMonth').removeClass('eventCalendar-currentMonth').addClass('eventCalendar-oldMonth');
5290        $eventsCalendarMonthWrap.addClass('eventCalendar-currentMonth').append($eventsCalendarTitle, $eventsCalendarDaysList);
5291
5292        var day;
5293
5294        // if current show current month & day
5295        if (show === "current") {
5296            day = date.getDate();
5297            $eventsCalendarSlider.append($eventsCalendarArrows);
5298
5299        } else {
5300            date = new Date(flags.wrap.attr('data-current-year'), flags.wrap.attr('data-current-month'), 1, 0, 0, 0); // current visible month
5301            day = 0; // not show current day in days list
5302
5303            moveOfMonth = 1;
5304            if (show === "prev") {
5305                moveOfMonth = -1;
5306            }
5307            date.setMonth(date.getMonth() + moveOfMonth);
5308
5309            var tmpDate = new Date();
5310            if (date.getMonth() === tmpDate.getMonth()) {
5311                day = tmpDate.getDate();
5312            }
5313
5314        }
5315
5316        // get date portions
5317        var year = date.getFullYear(), // year of the events
5318                currentYear = new Date().getFullYear(), // current year
5319                month = date.getMonth(), // 0-11
5320                monthToShow = month + 1;
5321
5322        if (show != "current") {
5323            // month change
5324            getEvents(container, flags, eventsOpts, eventsOpts.eventsLimit, year, month, false, show);
5325        }
5326
5327        flags.wrap.attr('data-current-month', month)
5328                .attr('data-current-year', year);
5329
5330        // add current date info
5331        moment.locale(eventsOpts.locales.locale);
5332
5333        var formatedDate = moment(year + " " + monthToShow, "YYYY MM").format("MMMM YYYY");
5334        $eventsCalendarTitle.find('.eventCalendar-monthTitle').html(formatedDate);
5335
5336        // print all month days
5337        var daysOnTheMonth = 32 - new Date(year, month, 32).getDate();
5338        var daysList = [],
5339                i;
5340        if (eventsOpts.showDayAsWeeks) {
5341            $eventsCalendarDaysList.addClass('eventCalendar-showAsWeek');
5342
5343            // show day name in top of calendar
5344            if (eventsOpts.showDayNameInCalendar) {
5345                $eventsCalendarDaysList.addClass('eventCalendar-showDayNames');
5346
5347                i = 0;
5348                // if week start on monday
5349                if (eventsOpts.startWeekOnMonday) {
5350                    i = 1;
5351                }
5352
5353                for (; i < 7; i++) {
5354                    daysList.push('<li class="eventCalendar-day-header">' + moment()._locale._weekdaysShort[i] + '</li>');
5355
5356                    if (i === 6 && eventsOpts.startWeekOnMonday) {
5357                        // print sunday header
5358                        daysList.push('<li class="eventCalendar-day-header">' + moment()._locale._weekdaysShort[0] + '</li>');
5359                    }
5360
5361                }
5362            }
5363
5364            dt = new Date(year, month, 01);
5365            var weekDay = dt.getDay(); // day of the week where month starts
5366
5367            if (eventsOpts.startWeekOnMonday) {
5368                weekDay = dt.getDay() - 1;
5369            }
5370            if (weekDay < 0) {
5371                weekDay = 6;
5372            } // if -1 is because day starts on sunday(0) and week starts on monday
5373
5374            for (i = weekDay; i > 0; i--) {
5375                daysList.push('<li class="eventCalendar-day eventCalendar-empty"></li>');
5376            }
5377        }
5378        for (dayCount = 1; dayCount <= daysOnTheMonth; dayCount++) {
5379            var dayClass = "";
5380
5381            if (day > 0 && dayCount === day && year === currentYear) {
5382                dayClass = "today";
5383            }
5384            daysList.push('<li id="dayList_' + dayCount + '" rel="' + dayCount + '" class="eventCalendar-day ' + dayClass + '"><a href="#">' + dayCount + '</a></li>');
5385        }
5386        $eventsCalendarDaysList.append(daysList.join(''));
5387
5388        $eventsCalendarSlider.css('height', $eventsCalendarMonthWrap.height() + 'px');
5389    }
5390
5391    function getEvents(container, flags, eventsOpts, limit, year, month, day, direction) {
5392        limit = limit || 0;
5393        year = year || '';
5394        day = day || '';
5395
5396        // to avoid problem with january (month = 0)
5397
5398        if (typeof month != 'undefined') {
5399            month = month;
5400        } else {
5401            month = '';
5402        }
5403
5404        //var month = month || '';
5405        $('.events-list-wrapper .eventCalendar-loading').fadeIn();
5406
5407        if (!day) {
5408            // first load: load json and save it to future filters
5409
5410            $.getJSON(eventsOpts.eventsjson + "&limit=" + limit + "&year=" + year + "&month=" + month + "&day=" + day, function (data) {
5411                flags.eventsJson = data; // save data to future filters
5412                getEventsData(container, flags, eventsOpts, flags.eventsJson, limit, year, month, day, direction);
5413            });
5414        } else {
5415            // filter previus saved json
5416            getEventsData(container, flags, eventsOpts, flags.eventsJson, limit, year, month, day, direction);
5417        }
5418
5419        if (day > '') {
5420            container.find('.eventCalendar-current').removeClass('eventCalendar-current');
5421            container.find('.dayList_' + day).addClass('eventCalendar-current');
5422        }
5423    }
5424
5425    function getEventsData(container, flags, eventsOpts, data, limit, year, month, day, direction) {
5426        directionLeftMove = "-=" + flags.directionLeftMove;
5427        eventContentHeight = "auto";
5428
5429        subtitle = flags.wrap.find('.eventCalendar-list-wrap .eventCalendar-subtitle');
5430
5431        if (!direction) {
5432            // first load
5433            subtitle.html(eventsOpts.locales.txt_NextEvents);
5434            eventContentHeight = "auto";
5435            directionLeftMove = "-=0";
5436        } else {
5437            var jsMonth = parseInt(month) + 1,
5438                    formatedDate;
5439            moment.locale(eventsOpts.locales.locale);
5440
5441            if (day !== '') {
5442                formatedDate = moment(year + " " + jsMonth + " " + day, "YYYY MM DD").format("LL");
5443                subtitle.html(eventsOpts.locales.txt_SpecificEvents_prev + formatedDate + " " + eventsOpts.locales.txt_SpecificEvents_after);
5444                //eventStringDate = moment(eventDate).format(eventsOpts.dateFormat);
5445            } else {
5446                formatedDate = moment(year + " " + jsMonth, "YYYY MM").format("MMMM");
5447                subtitle.html(eventsOpts.locales.txt_SpecificEvents_prev + formatedDate + " " + eventsOpts.locales.txt_SpecificEvents_after);
5448            }
5449
5450            if (direction === 'eventCalendar-prev') {
5451                directionLeftMove = "+=" + flags.directionLeftMove;
5452            } else if (direction === 'day' || direction === 'month') {
5453                directionLeftMove = "+=0";
5454                eventContentHeight = 0;
5455            }
5456        }
5457
5458        flags.wrap.find('.eventCalendar-list').animate({
5459            opacity: eventsOpts.moveOpacity,
5460            left: directionLeftMove,
5461            height: eventContentHeight
5462        }, eventsOpts.moveSpeed, function () {
5463            flags.wrap.find('.eventCalendar-list').css({'left': 0, 'height': 'auto'});
5464
5465            var events = [];
5466
5467            data = $(data).sort(sortJson); // sort event by dates
5468            // each event
5469            if (data.length) {
5470
5471                // show or hide event description
5472                var eventDescClass = '';
5473                if (!eventsOpts.showDescription) {
5474                    eventDescClass = 'eventCalendar-hidden';
5475                }
5476                var eventLinkTarget = "_self";
5477                if (eventsOpts.openEventInNewWindow) {
5478                    eventLinkTarget = '_blank';
5479                }
5480
5481                var i = 0;
5482                $.each(data, function (key, event) {
5483                    var eventDateTime, eventDate, eventTime, eventYear, eventMonth, eventDay,
5484                            eventMonthToShow, eventHour, eventMinute, eventSeconds;
5485
5486                    if (eventsOpts.jsonDateFormat == 'human') {
5487                        eventDateTime = event.date.split(" ");
5488                        eventDate = eventDateTime[0].split("-");
5489                        eventTime = eventDateTime[1].split(":");
5490                        eventYear = eventDate[0];
5491                        eventMonth = parseInt(eventDate[1]) - 1;
5492                        eventDay = parseInt(eventDate[2]);
5493                        //eventMonthToShow = eventMonth;
5494                        eventMonthToShow = parseInt(eventMonth) + 1;
5495                        eventHour = eventTime[0];
5496                        eventMinute = eventTime[1];
5497                        eventDate = new Date(eventYear, eventMonth, eventDay, eventHour, eventMinute, eventSeconds);
5498//                        eventDate = new Date(eventYear, eventMonth, eventDay);
5499                    } else {
5500                        eventDate = new Date(parseInt(event.date));
5501                        eventYear = eventDate.getFullYear();
5502                        eventMonth = eventDate.getMonth();
5503                        eventDay = eventDate.getDate();
5504                        eventMonthToShow = eventMonth + 1;
5505                        eventHour = eventDate.getHours();
5506                        eventMinute = eventDate.getMinutes();
5507
5508                    }
5509
5510                    if (parseInt(eventMinute) <= 9) {
5511                        eventMinute = "0" + parseInt(eventMinute);
5512                    }
5513
5514
5515                    if (limit === 0 || limit > i) {
5516                        // if month or day exist then only show matched events
5517
5518                        if ((month === false || month == eventMonth) && (day === '' || day == eventDay) && (year === '' || year == eventYear)) {
5519                            // if initial load then load only future events 
5520                            if (month === false && eventDate < new Date()) {
5521                            } else {
5522                                moment.locale(eventsOpts.locales.locale);
5523                                //eventStringDate = eventDay + "/" + eventMonthToShow + "/" + eventYear;
5524                                eventStringDate = moment(eventDate).format(eventsOpts.dateFormat);
5525
5526                                var event_html = '<li id="post-' + event.id + '" class="calendar-event post-' + event.id + '"><h4 class="article-heading"><a href="' + event.url + '"><i class="fa-solid fa-calendar-days"></i> ' + event.title + '</a></h4><div class="row no-gutters align-items-center">';
5527                                
5528                                if(event.thumbnail) {
5529                                    event_html += '<div class="col-sm-3"><div class="thumbnail"><a href="' + event.url + '"><img src="' + event.thumbnail + '" class="img-fluid" alt="' + event.title + '"/></a></div></div>';
5530                                }
5531                                 
5532                                        event_html += '<div class="col"><div class="content">'
5533                                //         + '<div class="event-detail"><table>'
5534                                //         + '<tr><th>Data: </th><td>' + eventDateTime[0] + '</td></tr>'
5535                                //         + '<tr><th>Godzina: </th><td>' + eventDateTime[1] + '</td></tr>';
5536                                // if(event.location) {
5537                                //         event_html += '<tr><th>Miejsce: </th><td>' + event.location + '</td></tr>';
5538                                //     }
5539                                //         event_html += '</table></div>'
5540                                        + '</div></div></div>' + '<p class="text-right"><a href="' + event.url + '" class="article-button"><span>Czytaj więcej</span></a></p></li>';
5541                                events.push(event_html);
5542                                i++;
5543                            }
5544                        }
5545                    }
5546
5547                    // add mark in the dayList to the days with events
5548                    if (eventYear == flags.wrap.attr('data-current-year') && eventMonth == flags.wrap.attr('data-current-month')) {
5549                        container.find('.eventCalendar-currentMonth .eventCalendar-daysList #dayList_' + parseInt(eventDay)).addClass('eventCalendar-dayWithEvents');
5550                    }
5551
5552                });
5553            }
5554
5555            // there is no events on this period
5556            if (!events.length) {
5557                events.push('<li class="no-events">Brak wydarzeń w tym okresie</li>');
5558            }
5559            flags.wrap.find('.eventCalendar-loading').hide();
5560
5561            container.find('.events-calendar-wrapper .eventCalendar-list-wrap .eventCalendar-list')
5562                    .html(events.join(''));
5563
5564            container.find('.events-calendar-wrapper .eventCalendar-list').animate({
5565                opacity: 1
5566            }, eventsOpts.moveSpeed);
5567
5568
5569        });
5570        setCalendarWidth(flags);
5571    }
5572
5573    function changeMonth(container, flags, eventsOpts) {
5574        flags.wrap.find('.eventCalendar-arrow').click(function (e) {
5575            e.preventDefault();
5576            var lastMonthMove;
5577
5578
5579            if ($(this).hasClass('eventCalendar-next')) {
5580                dateSlider(container, "next", flags, eventsOpts);
5581                lastMonthMove = '-=' + flags.directionLeftMove;
5582
5583            } else {
5584                dateSlider(container, "prev", flags, eventsOpts);
5585                lastMonthMove = '+=' + flags.directionLeftMove;
5586            }
5587
5588            flags.wrap.find('.eventCalendar-monthWrap.eventCalendar-oldMonth').animate({
5589                opacity: eventsOpts.moveOpacity,
5590                left: lastMonthMove
5591            }, eventsOpts.moveSpeed, function () {
5592                flags.wrap.find('.eventCalendar-monthWrap.eventCalendar-oldMonth').remove();
5593            });
5594        });
5595    }
5596
5597    function showError(msg, wrap) {
5598        wrap.find('.eventCalendar-list-wrap').html("<span class='eventCalendar-loading eventCalendar-error'>" + msg + "</span>");
5599    }
5600
5601    function setCalendarWidth(flags) {
5602        // resize calendar width on window resize
5603        flags.directionLeftMove = flags.wrap.width();
5604        flags.wrap.find('.eventCalendar-monthWrap').width(flags.wrap.width() + 'px');
5605
5606        flags.wrap.find('.eventCalendar-list-wrap').width(flags.wrap.width() + 'px');
5607
5608    }
5609
5610
5611})(jQuery);
5612
5613
5614/***/ }),
5615
5616/***/ 3164:
5617/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5618
5619//! moment.js locale configuration
5620//! locale : Korean [ko]
5621//! author : Kyungwook, Park : https://github.com/kyungw00k
5622//! author : Jeeeyul Lee <[email protected]>
5623
5624;(function (global, factory) {
5625    true ? factory(__webpack_require__(5093)) :
5626   0
5627}(this, (function (moment) { 'use strict';
5628
5629    //! moment.js locale configuration
5630
5631    var ko = moment.defineLocale('ko', {
5632        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
5633        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
5634            '_'
5635        ),
5636        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
5637        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
5638        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
5639        longDateFormat: {
5640            LT: 'A h:mm',
5641            LTS: 'A h:mm:ss',
5642            L: 'YYYY.MM.DD.',
5643            LL: 'YYYY년 MMMM D일',
5644            LLL: 'YYYY년 MMMM D일 A h:mm',
5645            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
5646            l: 'YYYY.MM.DD.',
5647            ll: 'YYYY년 MMMM D일',
5648            lll: 'YYYY년 MMMM D일 A h:mm',
5649            llll: 'YYYY년 MMMM D일 dddd A h:mm',
5650        },
5651        calendar: {
5652            sameDay: '오늘 LT',
5653            nextDay: '내일 LT',
5654            nextWeek: 'dddd LT',
5655            lastDay: '어제 LT',
5656            lastWeek: '지난주 dddd LT',
5657            sameElse: 'L',
5658        },
5659        relativeTime: {
5660            future: '%s 후',
5661            past: '%s 전',
5662            s: '몇 초',
5663            ss: '%d초',
5664            m: '1분',
5665            mm: '%d분',
5666            h: '한 시간',
5667            hh: '%d시간',
5668            d: '하루',
5669            dd: '%d일',
5670            M: '한 달',
5671            MM: '%d달',
5672            y: '일 년',
5673            yy: '%d년',
5674        },
5675        dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
5676        ordinal: function (number, period) {
5677            switch (period) {
5678                case 'd':
5679                case 'D':
5680                case 'DDD':
5681                    return number + '일';
5682                case 'M':
5683                    return number + '월';
5684                case 'w':
5685                case 'W':
5686                    return number + '주';
5687                default:
5688                    return number;
5689            }
5690        },
5691        meridiemParse: /오전|오후/,
5692        isPM: function (token) {
5693            return token === '오후';
5694        },
5695        meridiem: function (hour, minute, isUpper) {
5696            return hour < 12 ? '오전' : '오후';
5697        },
5698    });
5699
5700    return ko;
5701
5702})));
5703
5704
5705/***/ }),
5706
5707/***/ 3322:
5708/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5709
5710//! moment.js locale configuration
5711//! locale : Serbian Cyrillic [sr-cyrl]
5712//! author : Milan Janačković<[email protected]> : https://github.com/milan-j
5713//! author : Stefan Crnjaković <[email protected]> : https://github.com/crnjakovic
5714
5715;(function (global, factory) {
5716    true ? factory(__webpack_require__(5093)) :
5717   0
5718}(this, (function (moment) { 'use strict';
5719
5720    //! moment.js locale configuration
5721
5722    var translator = {
5723        words: {
5724            //Different grammatical cases
5725            ss: ['секунда', 'секунде', 'секунди'],
5726            m: ['један минут', 'једног минута'],
5727            mm: ['минут', 'минута', 'минута'],
5728            h: ['један сат', 'једног сата'],
5729            hh: ['сат', 'сата', 'сати'],
5730            d: ['један дан', 'једног дана'],
5731            dd: ['дан', 'дана', 'дана'],
5732            M: ['један месец', 'једног месеца'],
5733            MM: ['месец', 'месеца', 'месеци'],
5734            y: ['једну годину', 'једне године'],
5735            yy: ['годину', 'године', 'година'],
5736        },
5737        correctGrammaticalCase: function (number, wordKey) {
5738            if (
5739                number % 10 >= 1 &&
5740                number % 10 <= 4 &&
5741                (number % 100 < 10 || number % 100 >= 20)
5742            ) {
5743                return number % 10 === 1 ? wordKey[0] : wordKey[1];
5744            }
5745            return wordKey[2];
5746        },
5747        translate: function (number, withoutSuffix, key, isFuture) {
5748            var wordKey = translator.words[key],
5749                word;
5750
5751            if (key.length === 1) {
5752                // Nominativ
5753                if (key === 'y' && withoutSuffix) return 'једна година';
5754                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
5755            }
5756
5757            word = translator.correctGrammaticalCase(number, wordKey);
5758            // Nominativ
5759            if (key === 'yy' && withoutSuffix && word === 'годину') {
5760                return number + ' година';
5761            }
5762
5763            return number + ' ' + word;
5764        },
5765    };
5766
5767    var srCyrl = moment.defineLocale('sr-cyrl', {
5768        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_ок
vendor: 16,384 bytes, lines 5768-6259
5768тобар_новембар_децембар'.split(
5769            '_'
5770        ),
5771        monthsShort:
5772            'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
5773        monthsParseExact: true,
5774        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
5775        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
5776        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
5777        weekdaysParseExact: true,
5778        longDateFormat: {
5779            LT: 'H:mm',
5780            LTS: 'H:mm:ss',
5781            L: 'D. M. YYYY.',
5782            LL: 'D. MMMM YYYY.',
5783            LLL: 'D. MMMM YYYY. H:mm',
5784            LLLL: 'dddd, D. MMMM YYYY. H:mm',
5785        },
5786        calendar: {
5787            sameDay: '[данас у] LT',
5788            nextDay: '[сутра у] LT',
5789            nextWeek: function () {
5790                switch (this.day()) {
5791                    case 0:
5792                        return '[у] [недељу] [у] LT';
5793                    case 3:
5794                        return '[у] [среду] [у] LT';
5795                    case 6:
5796                        return '[у] [суботу] [у] LT';
5797                    case 1:
5798                    case 2:
5799                    case 4:
5800                    case 5:
5801                        return '[у] dddd [у] LT';
5802                }
5803            },
5804            lastDay: '[јуче у] LT',
5805            lastWeek: function () {
5806                var lastWeekDays = [
5807                    '[прошле] [недеље] [у] LT',
5808                    '[прошлог] [понедељка] [у] LT',
5809                    '[прошлог] [уторка] [у] LT',
5810                    '[прошле] [среде] [у] LT',
5811                    '[прошлог] [четвртка] [у] LT',
5812                    '[прошлог] [петка] [у] LT',
5813                    '[прошле] [суботе] [у] LT',
5814                ];
5815                return lastWeekDays[this.day()];
5816            },
5817            sameElse: 'L',
5818        },
5819        relativeTime: {
5820            future: 'за %s',
5821            past: 'пре %s',
5822            s: 'неколико секунди',
5823            ss: translator.translate,
5824            m: translator.translate,
5825            mm: translator.translate,
5826            h: translator.translate,
5827            hh: translator.translate,
5828            d: translator.translate,
5829            dd: translator.translate,
5830            M: translator.translate,
5831            MM: translator.translate,
5832            y: translator.translate,
5833            yy: translator.translate,
5834        },
5835        dayOfMonthOrdinalParse: /\d{1,2}\./,
5836        ordinal: '%d.',
5837        week: {
5838            dow: 1, // Monday is the first day of the week.
5839            doy: 7, // The week that contains Jan 1st is the first week of the year.
5840        },
5841    });
5842
5843    return srCyrl;
5844
5845})));
5846
5847
5848/***/ }),
5849
5850/***/ 3383:
5851/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5852
5853//! moment.js locale configuration
5854//! locale : Konkani Latin script [gom-latn]
5855//! author : The Discoverer : https://github.com/WikiDiscoverer
5856
5857;(function (global, factory) {
5858    true ? factory(__webpack_require__(5093)) :
5859   0
5860}(this, (function (moment) { 'use strict';
5861
5862    //! moment.js locale configuration
5863
5864    function processRelativeTime(number, withoutSuffix, key, isFuture) {
5865        var format = {
5866            s: ['thoddea sekondamni', 'thodde sekond'],
5867            ss: [number + ' sekondamni', number + ' sekond'],
5868            m: ['eka mintan', 'ek minut'],
5869            mm: [number + ' mintamni', number + ' mintam'],
5870            h: ['eka voran', 'ek vor'],
5871            hh: [number + ' voramni', number + ' voram'],
5872            d: ['eka disan', 'ek dis'],
5873            dd: [number + ' disamni', number + ' dis'],
5874            M: ['eka mhoinean', 'ek mhoino'],
5875            MM: [number + ' mhoineamni', number + ' mhoine'],
5876            y: ['eka vorsan', 'ek voros'],
5877            yy: [number + ' vorsamni', number + ' vorsam'],
5878        };
5879        return isFuture ? format[key][0] : format[key][1];
5880    }
5881
5882    var gomLatn = moment.defineLocale('gom-latn', {
5883        months: {
5884            standalone:
5885                'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
5886                    '_'
5887                ),
5888            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
5889                '_'
5890            ),
5891            isFormat: /MMMM(\s)+D[oD]?/,
5892        },
5893        monthsShort:
5894            'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
5895        monthsParseExact: true,
5896        weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
5897        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
5898        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
5899        weekdaysParseExact: true,
5900        longDateFormat: {
5901            LT: 'A h:mm [vazta]',
5902            LTS: 'A h:mm:ss [vazta]',
5903            L: 'DD-MM-YYYY',
5904            LL: 'D MMMM YYYY',
5905            LLL: 'D MMMM YYYY A h:mm [vazta]',
5906            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
5907            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
5908        },
5909        calendar: {
5910            sameDay: '[Aiz] LT',
5911            nextDay: '[Faleam] LT',
5912            nextWeek: '[Fuddlo] dddd[,] LT',
5913            lastDay: '[Kal] LT',
5914            lastWeek: '[Fattlo] dddd[,] LT',
5915            sameElse: 'L',
5916        },
5917        relativeTime: {
5918            future: '%s',
5919            past: '%s adim',
5920            s: processRelativeTime,
5921            ss: processRelativeTime,
5922            m: processRelativeTime,
5923            mm: processRelativeTime,
5924            h: processRelativeTime,
5925            hh: processRelativeTime,
5926            d: processRelativeTime,
5927            dd: processRelativeTime,
5928            M: processRelativeTime,
5929            MM: processRelativeTime,
5930            y: processRelativeTime,
5931            yy: processRelativeTime,
5932        },
5933        dayOfMonthOrdinalParse: /\d{1,2}(er)/,
5934        ordinal: function (number, period) {
5935            switch (period) {
5936                // the ordinal 'er' only applies to day of the month
5937                case 'D':
5938                    return number + 'er';
5939                default:
5940                case 'M':
5941                case 'Q':
5942                case 'DDD':
5943                case 'd':
5944                case 'w':
5945                case 'W':
5946                    return number;
5947            }
5948        },
5949        week: {
5950            dow: 0, // Sunday is the first day of the week
5951            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
5952        },
5953        meridiemParse: /rati|sokallim|donparam|sanje/,
5954        meridiemHour: function (hour, meridiem) {
5955            if (hour === 12) {
5956                hour = 0;
5957            }
5958            if (meridiem === 'rati') {
5959                return hour < 4 ? hour : hour + 12;
5960            } else if (meridiem === 'sokallim') {
5961                return hour;
5962            } else if (meridiem === 'donparam') {
5963                return hour > 12 ? hour : hour + 12;
5964            } else if (meridiem === 'sanje') {
5965                return hour + 12;
5966            }
5967        },
5968        meridiem: function (hour, minute, isLower) {
5969            if (hour < 4) {
5970                return 'rati';
5971            } else if (hour < 12) {
5972                return 'sokallim';
5973            } else if (hour < 16) {
5974                return 'donparam';
5975            } else if (hour < 20) {
5976                return 'sanje';
5977            } else {
5978                return 'rati';
5979            }
5980        },
5981    });
5982
5983    return gomLatn;
5984
5985})));
5986
5987
5988/***/ }),
5989
5990/***/ 3386:
5991/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5992
5993//! moment.js locale configuration
5994//! locale : Malay [ms]
5995//! author : Weldan Jamili : https://github.com/weldan
5996
5997;(function (global, factory) {
5998    true ? factory(__webpack_require__(5093)) :
5999   0
6000}(this, (function (moment) { 'use strict';
6001
6002    //! moment.js locale configuration
6003
6004    var ms = moment.defineLocale('ms', {
6005        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
6006            '_'
6007        ),
6008        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
6009        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
6010        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
6011        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
6012        longDateFormat: {
6013            LT: 'HH.mm',
6014            LTS: 'HH.mm.ss',
6015            L: 'DD/MM/YYYY',
6016            LL: 'D MMMM YYYY',
6017            LLL: 'D MMMM YYYY [pukul] HH.mm',
6018            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
6019        },
6020        meridiemParse: /pagi|tengahari|petang|malam/,
6021        meridiemHour: function (hour, meridiem) {
6022            if (hour === 12) {
6023                hour = 0;
6024            }
6025            if (meridiem === 'pagi') {
6026                return hour;
6027            } else if (meridiem === 'tengahari') {
6028                return hour >= 11 ? hour : hour + 12;
6029            } else if (meridiem === 'petang' || meridiem === 'malam') {
6030                return hour + 12;
6031            }
6032        },
6033        meridiem: function (hours, minutes, isLower) {
6034            if (hours < 11) {
6035                return 'pagi';
6036            } else if (hours < 15) {
6037                return 'tengahari';
6038            } else if (hours < 19) {
6039                return 'petang';
6040            } else {
6041                return 'malam';
6042            }
6043        },
6044        calendar: {
6045            sameDay: '[Hari ini pukul] LT',
6046            nextDay: '[Esok pukul] LT',
6047            nextWeek: 'dddd [pukul] LT',
6048            lastDay: '[Kelmarin pukul] LT',
6049            lastWeek: 'dddd [lepas pukul] LT',
6050            sameElse: 'L',
6051        },
6052        relativeTime: {
6053            future: 'dalam %s',
6054            past: '%s yang lepas',
6055            s: 'beberapa saat',
6056            ss: '%d saat',
6057            m: 'seminit',
6058            mm: '%d minit',
6059            h: 'sejam',
6060            hh: '%d jam',
6061            d: 'sehari',
6062            dd: '%d hari',
6063            M: 'sebulan',
6064            MM: '%d bulan',
6065            y: 'setahun',
6066            yy: '%d tahun',
6067        },
6068        week: {
6069            dow: 1, // Monday is the first day of the week.
6070            doy: 7, // The week that contains Jan 7th is the first week of the year.
6071        },
6072    });
6073
6074    return ms;
6075
6076})));
6077
6078
6079/***/ }),
6080
6081/***/ 3478:
6082/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6083
6084//! moment.js locale configuration
6085//! locale : Northern Sami [se]
6086//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell
6087
6088;(function (global, factory) {
6089    true ? factory(__webpack_require__(5093)) :
6090   0
6091}(this, (function (moment) { 'use strict';
6092
6093    //! moment.js locale configuration
6094
6095    var se = moment.defineLocale('se', {
6096        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(
6097            '_'
6098        ),
6099        monthsShort:
6100            'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
6101        weekdays:
6102            'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
6103                '_'
6104            ),
6105        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
6106        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
6107        longDateFormat: {
6108            LT: 'HH:mm',
6109            LTS: 'HH:mm:ss',
6110            L: 'DD.MM.YYYY',
6111            LL: 'MMMM D. [b.] YYYY',
6112            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
6113            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
6114        },
6115        calendar: {
6116            sameDay: '[otne ti] LT',
6117            nextDay: '[ihttin ti] LT',
6118            nextWeek: 'dddd [ti] LT',
6119            lastDay: '[ikte ti] LT',
6120            lastWeek: '[ovddit] dddd [ti] LT',
6121            sameElse: 'L',
6122        },
6123        relativeTime: {
6124            future: '%s geažes',
6125            past: 'maŋit %s',
6126            s: 'moadde sekunddat',
6127            ss: '%d sekunddat',
6128            m: 'okta minuhta',
6129            mm: '%d minuhtat',
6130            h: 'okta diimmu',
6131            hh: '%d diimmut',
6132            d: 'okta beaivi',
6133            dd: '%d beaivvit',
6134            M: 'okta mánnu',
6135            MM: '%d mánut',
6136            y: 'okta jahki',
6137            yy: '%d jagit',
6138        },
6139        dayOfMonthOrdinalParse: /\d{1,2}\./,
6140        ordinal: '%d.',
6141        week: {
6142            dow: 1, // Monday is the first day of the week.
6143            doy: 4, // The week that contains Jan 4th is the first week of the year.
6144        },
6145    });
6146
6147    return se;
6148
6149})));
6150
6151
6152/***/ }),
6153
6154/***/ 3508:
6155/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6156
6157//! moment.js locale configuration
6158//! locale : Basque [eu]
6159//! author : Eneko Illarramendi : https://github.com/eillarra
6160
6161;(function (global, factory) {
6162    true ? factory(__webpack_require__(5093)) :
6163   0
6164}(this, (function (moment) { 'use strict';
6165
6166    //! moment.js locale configuration
6167
6168    var eu = moment.defineLocale('eu', {
6169        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
6170            '_'
6171        ),
6172        monthsShort:
6173            'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
6174                '_'
6175            ),
6176        monthsParseExact: true,
6177        weekdays:
6178            'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
6179                '_'
6180            ),
6181        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
6182        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
6183        weekdaysParseExact: true,
6184        longDateFormat: {
6185            LT: 'HH:mm',
6186            LTS: 'HH:mm:ss',
6187            L: 'YYYY-MM-DD',
6188            LL: 'YYYY[ko] MMMM[ren] D[a]',
6189            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
6190            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
6191            l: 'YYYY-M-D',
6192            ll: 'YYYY[ko] MMM D[a]',
6193            lll: 'YYYY[ko] MMM D[a] HH:mm',
6194            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
6195        },
6196        calendar: {
6197            sameDay: '[gaur] LT[etan]',
6198            nextDay: '[bihar] LT[etan]',
6199            nextWeek: 'dddd LT[etan]',
6200            lastDay: '[atzo] LT[etan]',
6201            lastWeek: '[aurreko] dddd LT[etan]',
6202            sameElse: 'L',
6203        },
6204        relativeTime: {
6205            future: '%s barru',
6206            past: 'duela %s',
6207            s: 'segundo batzuk',
6208            ss: '%d segundo',
6209            m: 'minutu bat',
6210            mm: '%d minutu',
6211            h: 'ordu bat',
6212            hh: '%d ordu',
6213            d: 'egun bat',
6214            dd: '%d egun',
6215            M: 'hilabete bat',
6216            MM: '%d hilabete',
6217            y: 'urte bat',
6218            yy: '%d urte',
6219        },
6220        dayOfMonthOrdinalParse: /\d{1,2}\./,
6221        ordinal: '%d.',
6222        week: {
6223            dow: 1, // Monday is the first day of the week.
6224            doy: 7, // The week that contains Jan 7th is the first week of the year.
6225        },
6226    });
6227
6228    return eu;
6229
6230})));
6231
6232
6233/***/ }),
6234
6235/***/ 3601:
6236/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6237
6238//! moment.js locale configuration
6239//! locale : Danish [da]
6240//! author : Ulrik Nielsen : https://github.com/mrbase
6241
6242;(function (global, factory) {
6243    true ? factory(__webpack_require__(5093)) :
6244   0
6245}(this, (function (moment) { 'use strict';
6246
6247    //! moment.js locale configuration
6248
6249    var da = moment.defineLocale('da', {
6250        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
6251            '_'
6252        ),
6253        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
6254        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
6255        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
6256        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
6257        longDateFormat: {
6258            LT: 'HH:mm',
6259     
6259       LTS: 'HH:mm:ss',
6260            L: 'DD.MM.YYYY',
6261            LL: 'D. MMMM YYYY',
6262            LLL: 'D. MMMM YYYY HH:mm',
6263            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
6264        },
6265        calendar: {
6266            sameDay: '[i dag kl.] LT',
6267            nextDay: '[i morgen kl.] LT',
6268            nextWeek: 'på dddd [kl.] LT',
6269            lastDay: '[i går kl.] LT',
6270            lastWeek: '[i] dddd[s kl.] LT',
6271            sameElse: 'L',
6272        },
6273        relativeTime: {
6274            future: 'om %s',
6275            past: '%s siden',
6276            s: 'få sekunder',
6277            ss: '%d sekunder',
6278            m: 'et minut',
6279            mm: '%d minutter',
6280            h: 'en time',
6281            hh: '%d timer',
6282            d: 'en dag',
6283            dd: '%d dage',
6284            M: 'en måned',
6285            MM: '%d måneder',
6286            y: 'et år',
6287            yy: '%d år',
6288        },
6289        dayOfMonthOrdinalParse: /\d{1,2}\./,
6290        ordinal: '%d.',
6291        week: {
6292            dow: 1, // Monday is the first day of the week.
6293            doy: 4, // The week that contains Jan 4th is the first week of the year.
6294        },
6295    });
6296
6297    return da;
6298
6299})));
6300
6301
6302/***/ }),
6303
6304/***/ 3635:
6305/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6306
6307//! moment.js locale configuration
6308//! locale : Chuvash [cv]
6309//! author : Anatoly Mironov : https://github.com/mirontoli
6310
6311;(function (global, factory) {
6312    true ? factory(__webpack_require__(5093)) :
6313   0
6314}(this, (function (moment) { 'use strict';
6315
6316    //! moment.js locale configuration
6317
6318    var cv = moment.defineLocale('cv', {
6319        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
6320            '_'
6321        ),
6322        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
6323        weekdays:
6324            'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
6325                '_'
6326            ),
6327        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
6328        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
6329        longDateFormat: {
6330            LT: 'HH:mm',
6331            LTS: 'HH:mm:ss',
6332            L: 'DD-MM-YYYY',
6333            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
6334            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
6335            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
6336        },
6337        calendar: {
6338            sameDay: '[Паян] LT [сехетре]',
6339            nextDay: '[Ыран] LT [сехетре]',
6340            lastDay: '[Ӗнер] LT [сехетре]',
6341            nextWeek: '[Ҫитес] dddd LT [сехетре]',
6342            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
6343            sameElse: 'L',
6344        },
6345        relativeTime: {
6346            future: function (output) {
6347                var affix = /сехет$/i.exec(output)
6348                    ? 'рен'
6349                    : /ҫул$/i.exec(output)
6350                      ? 'тан'
6351                      : 'ран';
6352                return output + affix;
6353            },
6354            past: '%s каялла',
6355            s: 'пӗр-ик ҫеккунт',
6356            ss: '%d ҫеккунт',
6357            m: 'пӗр минут',
6358            mm: '%d минут',
6359            h: 'пӗр сехет',
6360            hh: '%d сехет',
6361            d: 'пӗр кун',
6362            dd: '%d кун',
6363            M: 'пӗр уйӑх',
6364            MM: '%d уйӑх',
6365            y: 'пӗр ҫул',
6366            yy: '%d ҫул',
6367        },
6368        dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
6369        ordinal: '%d-мӗш',
6370        week: {
6371            dow: 1, // Monday is the first day of the week.
6372            doy: 7, // The week that contains Jan 7th is the first week of the year.
6373        },
6374    });
6375
6376    return cv;
6377
6378})));
6379
6380
6381/***/ }),
6382
6383/***/ 3739:
6384/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6385
6386//! moment.js locale configuration
6387//! locale : Malayalam [ml]
6388//! author : Floyd Pink : https://github.com/floydpink
6389
6390;(function (global, factory) {
6391    true ? factory(__webpack_require__(5093)) :
6392   0
6393}(this, (function (moment) { 'use strict';
6394
6395    //! moment.js locale configuration
6396
6397    var ml = moment.defineLocale('ml', {
6398        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ചà
vendor: 5,375 bytes, lines 6398-6536
6398µ_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
6399            '_'
6400        ),
6401        monthsShort:
6402            'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
6403                '_'
6404            ),
6405        monthsParseExact: true,
6406        weekdays:
6407            'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
6408                '_'
6409            ),
6410        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
6411        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
6412        longDateFormat: {
6413            LT: 'A h:mm -നു',
6414            LTS: 'A h:mm:ss -നു',
6415            L: 'DD/MM/YYYY',
6416            LL: 'D MMMM YYYY',
6417            LLL: 'D MMMM YYYY, A h:mm -നു',
6418            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
6419        },
6420        calendar: {
6421            sameDay: '[ഇന്ന്] LT',
6422            nextDay: '[നാളെ] LT',
6423            nextWeek: 'dddd, LT',
6424            lastDay: '[ഇന്നലെ] LT',
6425            lastWeek: '[കഴിഞ്ഞ] dddd, LT',
6426            sameElse: 'L',
6427        },
6428        relativeTime: {
6429            future: '%s കഴിഞ്ഞ്',
6430            past: '%s മുൻപ്',
6431            s: 'അൽപ നിമിഷങ്ങൾ',
6432            ss: '%d സെക്കൻഡ്',
6433            m: 'ഒരു മിനിറ്റ്',
6434            mm: '%d മിനിറ്റ്',
6435            h: 'ഒരു മണിക്കൂർ',
6436            hh: '%d മണിക്കൂർ',
6437            d: 'ഒരു ദിവസം',
6438            dd: '%d ദിവസം',
6439            M: 'ഒരു മാസം',
6440            MM: '%d മാസം',
6441            y: 'ഒരു വർഷം',
6442            yy: '%d വർഷം',
6443        },
6444        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
6445        meridiemHour: function (hour, meridiem) {
6446            if (hour === 12) {
6447                hour = 0;
6448            }
6449            if (
6450                (meridiem === 'രാത്രി' && hour >= 4) ||
6451                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
6452                meridiem === 'വൈകുന്നേരം'
6453            ) {
6454                return hour + 12;
6455            } else {
6456                return hour;
6457            }
6458        },
6459        meridiem: function (hour, minute, isLower) {
6460            if (hour < 4) {
6461                return 'രാത്രി';
6462            } else if (hour < 12) {
6463                return 'രാവിലെ';
6464            } else if (hour < 17) {
6465                return 'ഉച്ച കഴിഞ്ഞ്';
6466            } else if (hour < 20) {
6467                return 'വൈകുന്നേരം';
6468            } else {
6469                return 'രാത്രി';
6470            }
6471        },
6472    });
6473
6474    return ml;
6475
6476})));
6477
6478
6479/***/ }),
6480
6481/***/ 3784:
6482/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6483
6484//! moment.js locale configuration
6485//! locale : Dutch (Belgium) [nl-be]
6486//! author : Joris Röling : https://github.com/jorisroling
6487//! author : Jacob Middag : https://github.com/middagj
6488
6489;(function (global, factory) {
6490    true ? factory(__webpack_require__(5093)) :
6491   0
6492}(this, (function (moment) { 'use strict';
6493
6494    //! moment.js locale configuration
6495
6496    var monthsShortWithDots =
6497            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
6498        monthsShortWithoutDots =
6499            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
6500        monthsParse = [
6501            /^jan/i,
6502            /^feb/i,
6503            /^(maart|mrt\.?)$/i,
6504            /^apr/i,
6505            /^mei$/i,
6506            /^jun[i.]?$/i,
6507            /^jul[i.]?$/i,
6508            /^aug/i,
6509            /^sep/i,
6510            /^okt/i,
6511            /^nov/i,
6512            /^dec/i,
6513        ],
6514        monthsRegex =
6515            /^(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;
6516
6517    var nlBe = moment.defineLocale('nl-be', {
6518        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
6519            '_'
6520        ),
6521        monthsShort: function (m, format) {
6522            if (!m) {
6523                return monthsShortWithDots;
6524            } else if (/-MMM-/.test(format)) {
6525                return monthsShortWithoutDots[m.month()];
6526            } else {
6527                return monthsShortWithDots[m.month()];
6528            }
6529        },
6530
6531        monthsRegex: monthsRegex,
6532        monthsShortRegex: monthsRegex,
6533        monthsStrictRegex:
6534            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
6535        monthsShortStrictRegex:
6536            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
vendor: 6,285 bytes, lines 6537-6743
6537
6538        monthsParse: monthsParse,
6539        longMonthsParse: monthsParse,
6540        shortMonthsParse: monthsParse,
6541
6542        weekdays:
6543            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
6544        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
6545        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
6546        weekdaysParseExact: true,
6547        longDateFormat: {
6548            LT: 'HH:mm',
6549            LTS: 'HH:mm:ss',
6550            L: 'DD/MM/YYYY',
6551            LL: 'D MMMM YYYY',
6552            LLL: 'D MMMM YYYY HH:mm',
6553            LLLL: 'dddd D MMMM YYYY HH:mm',
6554        },
6555        calendar: {
6556            sameDay: '[vandaag om] LT',
6557            nextDay: '[morgen om] LT',
6558            nextWeek: 'dddd [om] LT',
6559            lastDay: '[gisteren om] LT',
6560            lastWeek: '[afgelopen] dddd [om] LT',
6561            sameElse: 'L',
6562        },
6563        relativeTime: {
6564            future: 'over %s',
6565            past: '%s geleden',
6566            s: 'een paar seconden',
6567            ss: '%d seconden',
6568            m: 'één minuut',
6569            mm: '%d minuten',
6570            h: 'één uur',
6571            hh: '%d uur',
6572            d: 'één dag',
6573            dd: '%d dagen',
6574            M: 'één maand',
6575            MM: '%d maanden',
6576            y: 'één jaar',
6577            yy: '%d jaar',
6578        },
6579        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
6580        ordinal: function (number) {
6581            return (
6582                number +
6583                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
6584            );
6585        },
6586        week: {
6587            dow: 1, // Monday is the first day of the week.
6588            doy: 4, // The week that contains Jan 4th is the first week of the year.
6589        },
6590    });
6591
6592    return nlBe;
6593
6594})));
6595
6596
6597/***/ }),
6598
6599/***/ 3827:
6600/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6601
6602//! moment.js locale configuration
6603//! locale : Japanese [ja]
6604//! author : LI Long : https://github.com/baryon
6605
6606;(function (global, factory) {
6607    true ? factory(__webpack_require__(5093)) :
6608   0
6609}(this, (function (moment) { 'use strict';
6610
6611    //! moment.js locale configuration
6612
6613    var ja = moment.defineLocale('ja', {
6614        eras: [
6615            {
6616                since: '2019-05-01',
6617                offset: 1,
6618                name: '令和',
6619                narrow: '㋿',
6620                abbr: 'R',
6621            },
6622            {
6623                since: '1989-01-08',
6624                until: '2019-04-30',
6625                offset: 1,
6626                name: '平成',
6627                narrow: '㍻',
6628                abbr: 'H',
6629            },
6630            {
6631                since: '1926-12-25',
6632                until: '1989-01-07',
6633                offset: 1,
6634                name: '昭和',
6635                narrow: '㍼',
6636                abbr: 'S',
6637            },
6638            {
6639                since: '1912-07-30',
6640                until: '1926-12-24',
6641                offset: 1,
6642                name: '大正',
6643                narrow: '㍽',
6644                abbr: 'T',
6645            },
6646            {
6647                since: '1873-01-01',
6648                until: '1912-07-29',
6649                offset: 6,
6650                name: '明治',
6651                narrow: '㍾',
6652                abbr: 'M',
6653            },
6654            {
6655                since: '0001-01-01',
6656                until: '1873-12-31',
6657                offset: 1,
6658                name: '西暦',
6659                narrow: 'AD',
6660                abbr: 'AD',
6661            },
6662            {
6663                since: '0000-12-31',
6664                until: -Infinity,
6665                offset: 1,
6666                name: '紀元前',
6667                narrow: 'BC',
6668                abbr: 'BC',
6669            },
6670        ],
6671        eraYearOrdinalRegex: /(元|\d+)年/,
6672        eraYearOrdinalParse: function (input, match) {
6673            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
6674        },
6675        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
6676        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
6677            '_'
6678        ),
6679        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
6680        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
6681        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
6682        longDateFormat: {
6683            LT: 'HH:mm',
6684            LTS: 'HH:mm:ss',
6685            L: 'YYYY/MM/DD',
6686            LL: 'YYYY年M月D日',
6687            LLL: 'YYYY年M月D日 HH:mm',
6688            LLLL: 'YYYY年M月D日 dddd HH:mm',
6689            l: 'YYYY/MM/DD',
6690            ll: 'YYYY年M月D日',
6691            lll: 'YYYY年M月D日 HH:mm',
6692            llll: 'YYYY年M月D日(ddd) HH:mm',
6693        },
6694        meridiemParse: /午前|午後/i,
6695        isPM: function (input) {
6696            return input === '午後';
6697        },
6698        meridiem: function (hour, minute, isLower) {
6699            if (hour < 12) {
6700                return '午前';
6701            } else {
6702                return '午後';
6703            }
6704        },
6705        calendar: {
6706            sameDay: '[今日] LT',
6707            nextDay: '[明日] LT',
6708            nextWeek: function (now) {
6709                if (now.week() !== this.week()) {
6710                    return '[来週]dddd LT';
6711                } else {
6712                    return 'dddd LT';
6713                }
6714            },
6715            lastDay: '[昨日] LT',
6716            lastWeek: function (now) {
6717                if (this.week() !== now.week()) {
6718                    return '[先週]dddd LT';
6719                } else {
6720                    return 'dddd LT';
6721                }
6722            },
6723            sameElse: 'L',
6724        },
6725        dayOfMonthOrdinalParse: /\d{1,2}日/,
6726        ordinal: function (number, period) {
6727            switch (period) {
6728                case 'y':
6729                    return number === 1 ? '元年' : number + '年';
6730                case 'd':
6731                case 'D':
6732                case 'DDD':
6733                    return number + '日';
6734                default:
6735                    return number;
6736            }
6737        },
6738        relativeTime: {
6739            future: '%s後',
6740            past: '%s前',
6741            s: '数秒',
6742            ss: '%d秒',
6743            m: '1分',
6744            mm: '%d分',
6745            h: '1時間',
6746            hh: '%d時間',
6747            d: '1日',
6748            dd: '%d日',
6749            M: '1ヶ月',
6750            MM: '%dヶ月',
6751            y: '1å¹´',
6752            yy: '%då¹´',
6753        },
6754    });
6755
6756    return ja;
6757
6758})));
6759
6760
6761/***/ }),
6762
6763/***/ 3861:
6764/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6765
6766//! moment.js locale configuration
6767//! locale : Hindi [hi]
6768//! author : Mayank Singhal : https://github.com/mayanksinghal
6769
6770;(function (global, factory) {
6771    true ? factory(__webpack_require__(5093)) :
6772   0
6773}(this, (function (moment) { 'use strict';
6774
6775    //! moment.js locale configuration
6776
6777    var symbolMap = {
6778            1: '१',
6779            2: '२',
6780            3: '३',
6781            4: '४',
6782            5: '५',
6783            6: '६',
6784            7: '७',
6785            8: '८',
6786            9: '९',
6787            0: '०',
6788        },
6789        numberMap = {
6790            '१': '1',
6791            '२': '2',
6792            '३': '3',
6793            '४': '4',
6794            '५': '5',
6795            '६': '6',
6796            '७': '7',
6797            '८': '8',
6798            '९': '9',
6799            '०': '0',
6800        },
6801        monthsParse = [
6802            /^जन/i,
6803            /^फ़र|फर/i,
6804            /^मार्च/i,
6805            /^अप्रै/i,
6806            /^मई/i,
6807            /^जून/i,
6808            /^जुल/i,
6809            /^अग/i,
6810            /^सितं|सित/i,
6811            /^अक्टू/i,
6812            /^नव|नवं/i,
6813            /^दिसं|दिस/i,
6814        ],
6815        shortMonthsParse = [
6816            /^जन/i,
6817            /^फ़र/i,
6818            /^मार्च/i,
6819            /^अप्रै/i,
6820            /^मई/i,
6821            /^जून/i,
6822            /^जुल/i,
6823            /^अग/i,
6824            /^सित/i,
6825            /^अक्टू/i,
6826            /^नव/i,
6827            /^दिस/i,
6828        ];
6829
6830    var hi = moment.defineLocale('hi', {
6831        months: {
6832            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
6833                '_'
6834            ),
6835            standalone:
6836                'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
6837                    '_'
6838                ),
6839        },
6840        monthsShort:
6841            'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
6842        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
6843        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
6844        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
6845        longDateFormat: {
6846            LT: 'A h:mm बजे',
6847            LTS: 'A h:mm:ss बजे',
6848            L: 'DD/MM/YYYY',
6849            LL: 'D MMMM YYYY',
6850            LLL: 'D MMMM YYYY, A h:mm बजे',
6851            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
6852        },
6853
6854        monthsParse: monthsParse,
6855        longMonthsParse: monthsParse,
6856        shortMonthsParse: shortMonthsParse,
6857
6858        monthsRegex:
6859            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
6860
6861        monthsShortRegex:
6862            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अ
6862प्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
6863
6864        monthsStrictRegex:
6865            /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
6866
6867        monthsShortStrictRegex:
6868            /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
6869
6870        calendar: {
6871            sameDay: '[आज] LT',
6872            nextDay: '[कल] LT',
6873            nextWeek: 'dddd, LT',
6874            lastDay: '[कल] LT',
6875            lastWeek: '[पिछले] dddd, LT',
6876            sameElse: 'L',
6877        },
6878        relativeTime: {
6879            future: '%s में',
6880            past: '%s पहले',
6881            s: 'कुछ ही क्षण',
6882            ss: '%d सेकंड',
6883            m: 'एक मिनट',
6884            mm: '%d मिनट',
6885            h: 'एक घंटा',
6886            hh: '%d घंटे',
6887            d: 'एक दिन',
6888            dd: '%d दिन',
6889            M: 'एक महीने',
6890            MM: '%d महीने',
6891            y: 'एक वर्ष',
6892            yy: '%d वर्ष',
6893        },
6894        preparse: function (string) {
6895            return string.replace(/[१२३४५६७८९०]/g, function (match) {
6896                return numberMap[match];
6897            });
6898        },
6899        postformat: function (string) {
6900            return string.replace(/\d/g, function (match) {
6901                return symbolMap[match];
6902            });
6903        },
6904        // Hindi notation for meridiems are quite fuzzy in practice. While there exists
6905        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
6906        meridiemParse: /रात|सुबह|दोपहर|शाम/,
6907        meridiemHour: function (hour, meridiem) {
6908            if (hour === 12) {
6909                hour = 0;
6910            }
6911            if (meridiem === 'रात') {
6912                return hour < 4 ? hour : hour + 12;
6913            } else if (meridiem === 'सुबह') {
6914                return hour;
6915            } else if (meridiem === 'दोपहर') {
6916                return hour >= 10 ? hour : hour + 12;
6917            } else if (meridiem === 'शाम') {
6918                return hour + 12;
6919            }
6920        },
6921        meridiem: function (hour, minute, isLower) {
6922            if (hour < 4) {
6923                return 'रात';
6924            } else if (hour < 10) {
6925                return 'सुबह';
6926            } else if (hour < 17) {
6927                return 'दोपहर';
6928            } else if (hour < 20) {
6929                return 'शाम';
6930            } else {
6931                return 'रात';
6932            }
6933        },
6934        week: {
6935            dow: 0, // Sunday is the first day of the week.
6936            doy: 6, // The week that contains Jan 6th is the first week of the year.
6937        },
6938    });
6939
6940    return hi;
6941
6942})));
6943
6944
6945/***/ }),
6946
6947/***/ 3872:
6948/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
6949
6950//! moment.js locale configuration
6951//! locale : English (Australia) [en-au]
6952//! author : Jared Morse : https://github.com/jarcoal
6953
6954;(function (global, factory) {
6955    true ? factory(__webpack_require__(5093)) :
6956   0
6957}(this, (function (moment) { 'use strict';
6958
6959    //! moment.js locale configuration
6960
6961    var enAu = moment.defineLocale('en-au', {
6962        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
6963            '_'
6964        ),
6965        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
6966        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
6967            '_'
6968        ),
6969        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
6970        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
6971        longDateFormat: {
6972            LT: 'h:mm A',
6973            LTS: 'h:mm:ss A',
6974            L: 'DD/MM/YYYY',
6975            LL: 'D MMMM YYYY',
6976            LLL: 'D MMMM YYYY h:mm A',
6977            LLLL: 'dddd, D MMMM YYYY h:mm A',
6978        },
6979        calendar: {
6980            sameDay: '[Today at] LT',
6981            nextDay: '[Tomorrow at] LT',
6982            nextWeek: 'dddd [at] LT',
6983            lastDay: '[Yesterday at] LT',
6984            lastWeek: '[Last] dddd [at] LT',
6985            sameElse: 'L',
6986        },
6987        relativeTime: {
6988            future: 'in %s',
6989            past: '%s ago',
6990            s: 'a few seconds',
6991            ss: '%d seconds',
6992            m: 'a minute',
6993            mm: '%d minutes',
6994            h: 'an hour',
6995            hh: '%d hours',
6996            d: 'a day',
6997            dd: '%d days',
6998            M: 'a month',
6999            MM: '%d months',
7000            y: 'a year',
7001            yy: '%d years',
7002        },
7003        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
7004        ordinal: function (number) {
7005            var b = number % 10,
7006                output =
7007                    ~~((number % 100) / 10) === 1
7008                        ? 'th'
7009                        : b === 1
7010                          ? 'st'
7011                          : b === 2
7012                            ? 'nd'
7013                            : b === 3
7014                              ? 'rd'
7015                              : 'th';
7016            return number + output;
7017        },
7018        week: {
7019            dow: 0, // Sunday is the first day of the week.
7020            doy: 4, // The week that contains Jan 4th is the first week of the year.
7021        },
7022    });
7023
7024    return enAu;
7025
7026})));
7027
7028
7029/***/ }),
7030
7031/***/ 4051:
7032/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7033
7034//! moment.js locale configuration
7035//! locale : Pseudo [x-pseudo]
7036//! author : Andrew Hood : https://github.com/andrewhood125
7037
7038;(function (global, factory) {
7039    true ? factory(__webpack_require__(5093)) :
7040   0
7041}(this, (function (moment) { 'use strict';
7042
7043    //! moment.js locale configuration
7044
7045    var xPseudo = moment.defineLocale('x-pseudo', {
7046        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(
7047            '_'
7048        ),
7049        monthsShort:
7050            'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.
7050split(
7051                '_'
7052            ),
7053        monthsParseExact: true,
7054        weekdays:
7055            'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
7056                '_'
7057            ),
7058        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
7059        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
7060        weekdaysParseExact: true,
7061        longDateFormat: {
7062            LT: 'HH:mm',
7063            L: 'DD/MM/YYYY',
7064            LL: 'D MMMM YYYY',
7065            LLL: 'D MMMM YYYY HH:mm',
7066            LLLL: 'dddd, D MMMM YYYY HH:mm',
7067        },
7068        calendar: {
7069            sameDay: '[T~ódá~ý át] LT',
7070            nextDay: '[T~ómó~rró~w át] LT',
7071            nextWeek: 'dddd [át] LT',
7072            lastDay: '[Ý~ést~érdá~ý át] LT',
7073            lastWeek: '[L~ást] dddd [át] LT',
7074            sameElse: 'L',
7075        },
7076        relativeTime: {
7077            future: 'í~ñ %s',
7078            past: '%s á~gó',
7079            s: 'á ~féw ~sécó~ñds',
7080            ss: '%d s~écóñ~ds',
vendor: 29,153 bytes, lines 7081-7984
7081            m: 'á ~míñ~úté',
7082            mm: '%d m~íñú~tés',
7083            h: 'á~ñ hó~úr',
7084            hh: '%d h~óúrs',
7085            d: 'á ~dáý',
7086            dd: '%d d~áýs',
7087            M: 'á ~móñ~th',
7088            MM: '%d m~óñt~hs',
7089            y: 'á ~ýéár',
7090            yy: '%d ý~éárs',
7091        },
7092        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
7093        ordinal: function (number) {
7094            var b = number % 10,
7095                output =
7096                    ~~((number % 100) / 10) === 1
7097                        ? 'th'
7098                        : b === 1
7099                          ? 'st'
7100                          : b === 2
7101                            ? 'nd'
7102                            : b === 3
7103                              ? 'rd'
7104                              : 'th';
7105            return number + output;
7106        },
7107        week: {
7108            dow: 1, // Monday is the first day of the week.
7109            doy: 4, // The week that contains Jan 4th is the first week of the year.
7110        },
7111    });
7112
7113    return xPseudo;
7114
7115})));
7116
7117
7118/***/ }),
7119
7120/***/ 4063:
7121/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7122
7123//! moment.js locale configuration
7124//! locale : Indonesian [id]
7125//! author : Mohammad Satrio Utomo : https://github.com/tyok
7126//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
7127
7128;(function (global, factory) {
7129    true ? factory(__webpack_require__(5093)) :
7130   0
7131}(this, (function (moment) { 'use strict';
7132
7133    //! moment.js locale configuration
7134
7135    var id = moment.defineLocale('id', {
7136        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
7137            '_'
7138        ),
7139        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
7140        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
7141        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
7142        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
7143        longDateFormat: {
7144            LT: 'HH.mm',
7145            LTS: 'HH.mm.ss',
7146            L: 'DD/MM/YYYY',
7147            LL: 'D MMMM YYYY',
7148            LLL: 'D MMMM YYYY [pukul] HH.mm',
7149            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
7150        },
7151        meridiemParse: /pagi|siang|sore|malam/,
7152        meridiemHour: function (hour, meridiem) {
7153            if (hour === 12) {
7154                hour = 0;
7155            }
7156            if (meridiem === 'pagi') {
7157                return hour;
7158            } else if (meridiem === 'siang') {
7159                return hour >= 11 ? hour : hour + 12;
7160            } else if (meridiem === 'sore' || meridiem === 'malam') {
7161                return hour + 12;
7162            }
7163        },
7164        meridiem: function (hours, minutes, isLower) {
7165            if (hours < 11) {
7166                return 'pagi';
7167            } else if (hours < 15) {
7168                return 'siang';
7169            } else if (hours < 19) {
7170                return 'sore';
7171            } else {
7172                return 'malam';
7173            }
7174        },
7175        calendar: {
7176            sameDay: '[Hari ini pukul] LT',
7177            nextDay: '[Besok pukul] LT',
7178            nextWeek: 'dddd [pukul] LT',
7179            lastDay: '[Kemarin pukul] LT',
7180            lastWeek: 'dddd [lalu pukul] LT',
7181            sameElse: 'L',
7182        },
7183        relativeTime: {
7184            future: 'dalam %s',
7185            past: '%s yang lalu',
7186            s: 'beberapa detik',
7187            ss: '%d detik',
7188            m: 'semenit',
7189            mm: '%d menit',
7190            h: 'sejam',
7191            hh: '%d jam',
7192            d: 'sehari',
7193            dd: '%d hari',
7194            M: 'sebulan',
7195            MM: '%d bulan',
7196            y: 'setahun',
7197            yy: '%d tahun',
7198        },
7199        week: {
7200            dow: 0, // Sunday is the first day of the week.
7201            doy: 6, // The week that contains Jan 6th is the first week of the year.
7202        },
7203    });
7204
7205    return id;
7206
7207})));
7208
7209
7210/***/ }),
7211
7212/***/ 4226:
7213/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7214
7215//! moment.js locale configuration
7216//! locale : Welsh [cy]
7217//! author : Robert Allen : https://github.com/robgallen
7218//! author : https://github.com/ryangreaves
7219
7220;(function (global, factory) {
7221    true ? factory(__webpack_require__(5093)) :
7222   0
7223}(this, (function (moment) { 'use strict';
7224
7225    //! moment.js locale configuration
7226
7227    var cy = moment.defineLocale('cy', {
7228        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
7229            '_'
7230        ),
7231        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
7232            '_'
7233        ),
7234        weekdays:
7235            'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
7236                '_'
7237            ),
7238        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
7239        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
7240        weekdaysParseExact: true,
7241        // time formats are the same as en-gb
7242        longDateFormat: {
7243            LT: 'HH:mm',
7244            LTS: 'HH:mm:ss',
7245            L: 'DD/MM/YYYY',
7246            LL: 'D MMMM YYYY',
7247            LLL: 'D MMMM YYYY HH:mm',
7248            LLLL: 'dddd, D MMMM YYYY HH:mm',
7249        },
7250        calendar: {
7251            sameDay: '[Heddiw am] LT',
7252            nextDay: '[Yfory am] LT',
7253            nextWeek: 'dddd [am] LT',
7254            lastDay: '[Ddoe am] LT',
7255            lastWeek: 'dddd [diwethaf am] LT',
7256            sameElse: 'L',
7257        },
7258        relativeTime: {
7259            future: 'mewn %s',
7260            past: '%s yn ôl',
7261            s: 'ychydig eiliadau',
7262            ss: '%d eiliad',
7263            m: 'munud',
7264            mm: '%d munud',
7265            h: 'awr',
7266            hh: '%d awr',
7267            d: 'diwrnod',
7268            dd: '%d diwrnod',
7269            M: 'mis',
7270            MM: '%d mis',
7271            y: 'blwyddyn',
7272            yy: '%d flynedd',
7273        },
7274        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
7275        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
7276        ordinal: function (number) {
7277            var b = number,
7278                output = '',
7279                lookup = [
7280                    '',
7281                    'af',
7282                    'il',
7283                    'ydd',
7284                    'ydd',
7285                    'ed',
7286                    'ed',
7287                    'ed',
7288                    'fed',
7289                    'fed',
7290                    'fed', // 1af to 10fed
7291                    'eg',
7292                    'fed',
7293                    'eg',
7294                    'eg',
7295                    'fed',
7296                    'eg',
7297                    'eg',
7298                    'fed',
7299                    'eg',
7300                    'fed', // 11eg to 20fed
7301                ];
7302            if (b > 20) {
7303                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
7304                    output = 'fed'; // not 30ain, 70ain or 90ain
7305                } else {
7306                    output = 'ain';
7307                }
7308            } else if (b > 0) {
7309                output = lookup[b];
7310            }
7311            return number + output;
7312        },
7313        week: {
7314            dow: 1, // Monday is the first day of the week.
7315            doy: 4, // The week that contains Jan 4th is the first week of the year.
7316        },
7317    });
7318
7319    return cy;
7320
7321})));
7322
7323
7324/***/ }),
7325
7326/***/ 4418:
7327/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7328
7329//! moment.js locale configuration
7330//! locale : Polish [pl]
7331//! author : Rafal Hirsz : https://github.com/evoL
7332
7333;(function (global, factory) {
7334    true ? factory(__webpack_require__(5093)) :
7335   0
7336}(this, (function (moment) { 'use strict';
7337
7338    //! moment.js locale configuration
7339
7340    var monthsNominative =
7341            'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
7342                '_'
7343            ),
7344        monthsSubjective =
7345            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
7346                '_'
7347            ),
7348        monthsParse = [
7349            /^sty/i,
7350            /^lut/i,
7351            /^mar/i,
7352            /^kwi/i,
7353            /^maj/i,
7354            /^cze/i,
7355            /^lip/i,
7356            /^sie/i,
7357            /^wrz/i,
7358            /^paź/i,
7359            /^lis/i,
7360            /^gru/i,
7361        ];
7362    function plural(n) {
7363        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
7364    }
7365    function translate(number, withoutSuffix, key) {
7366        var result = number + ' ';
7367        switch (key) {
7368            case 'ss':
7369                return result + (plural(number) ? 'sekundy' : 'sekund');
7370            case 'm':
7371                return withoutSuffix ? 'minuta' : 'minutę';
7372            case 'mm':
7373                return result + (plural(number) ? 'minuty' : 'minut');
7374            case 'h':
7375                return withoutSuffix ? 'godzina' : 'godzinę';
7376            case 'hh':
7377                return result + (plural(number) ? 'godziny' : 'godzin');
7378            case 'ww':
7379                return result + (plural(number) ? 'tygodnie' : 'tygodni');
7380            case 'MM':
7381                return result + (plural(number) ? 'miesiące' : 'miesięcy');
7382            case 'yy':
7383                return result + (plural(number) ? 'lata' : 'lat');
7384        }
7385    }
7386
7387    var pl = moment.defineLocale('pl', {
7388        months: function (momentToFormat, format) {
7389            if (!momentToFormat) {
7390                return monthsNominative;
7391            } else if (/D MMMM/.test(format)) {
7392                return monthsSubjective[momentToFormat.month()];
7393            } else {
7394                return monthsNominative[momentToFormat.month()];
7395            }
7396        },
7397        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
7398        monthsParse: monthsParse,
7399        longMonthsParse: monthsParse,
7400        shortMonthsParse: monthsParse,
7401        weekdays:
7402            'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
7403        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
7404        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
7405        longDateFormat: {
7406            LT: 'HH:mm',
7407            LTS: 'HH:mm:ss',
7408            L: 'DD.MM.YYYY',
7409            LL: 'D MMMM YYYY',
7410            LLL: 'D MMMM YYYY HH:mm',
7411            LLLL: 'dddd, D MMMM YYYY HH:mm',
7412        },
7413        calendar: {
7414            sameDay: '[Dziś o] LT',
7415            nextDay: '[Jutro o] LT',
7416            nextWeek: function () {
7417                switch (this.day()) {
7418                    case 0:
7419                        return '[W niedzielę o] LT';
7420
7421                    case 2:
7422                        return '[We wtorek o] LT';
7423
7424                    case 3:
7425                        return '[W środę o] LT';
7426
7427                    case 6:
7428                        return '[W sobotę o] LT';
7429
7430                    default:
7431                        return '[W] dddd [o] LT';
7432                }
7433            },
7434            lastDay: '[Wczoraj o] LT',
7435            lastWeek: function () {
7436                switch (this.day()) {
7437                    case 0:
7438                        return '[W zeszłą niedzielę o] LT';
7439                    case 3:
7440                        return '[W zeszłą środę o] LT';
7441                    case 6:
7442                        return '[W zeszłą sobotę o] LT';
7443                    default:
7444                        return '[W zeszły] dddd [o] LT';
7445                }
7446            },
7447            sameElse: 'L',
7448        },
7449        relativeTime: {
7450            future: 'za %s',
7451            past: '%s temu',
7452            s: 'kilka sekund',
7453            ss: translate,
7454            m: translate,
7455            mm: translate,
7456            h: translate,
7457            hh: translate,
7458            d: '1 dzień',
7459            dd: '%d dni',
7460            w: 'tydzień',
7461            ww: translate,
7462            M: 'miesiąc',
7463            MM: translate,
7464            y: 'rok',
7465            yy: translate,
7466        },
7467        dayOfMonthOrdinalParse: /\d{1,2}\./,
7468        ordinal: '%d.',
7469        week: {
7470            dow: 1, // Monday is the first day of the week.
7471            doy: 4, // The week that contains Jan 4th is the first week of the year.
7472        },
7473    });
7474
7475    return pl;
7476
7477})));
7478
7479
7480/***/ }),
7481
7482/***/ 4429:
7483/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7484
7485//! moment.js locale configuration
7486//! locale : Bosnian [bs]
7487//! author : Nedim Cholich : https://github.com/frontyard
7488//! author : Rasid Redzic : https://github.com/rasidre
7489//! based on (hr) translation by Bojan Marković
7490
7491;(function (global, factory) {
7492    true ? factory(__webpack_require__(5093)) :
7493   0
7494}(this, (function (moment) { 'use strict';
7495
7496    //! moment.js locale configuration
7497
7498    function processRelativeTime(number, withoutSuffix, key, isFuture) {
7499        switch (key) {
7500            case 'm':
7501                return withoutSuffix
7502                    ? 'jedna minuta'
7503                    : isFuture
7504                      ? 'jednu minutu'
7505                      : 'jedne minute';
7506        }
7507    }
7508
7509    function translate(number, withoutSuffix, key) {
7510        var result = number + ' ';
7511        switch (key) {
7512            case 'ss':
7513                if (number === 1) {
7514                    result += 'sekunda';
7515                } else if (number === 2 || number === 3 || number === 4) {
7516                    result += 'sekunde';
7517                } else {
7518                    result += 'sekundi';
7519                }
7520                return result;
7521            case 'mm':
7522                if (number === 1) {
7523                    result += 'minuta';
7524                } else if (number === 2 || number === 3 || number === 4) {
7525                    result += 'minute';
7526                } else {
7527                    result += 'minuta';
7528                }
7529                return result;
7530            case 'h':
7531                return withoutSuffix ? 'jedan sat' : 'jedan sat';
7532            case 'hh':
7533                if (number === 1) {
7534                    result += 'sat';
7535                } else if (number === 2 || number === 3 || number === 4) {
7536                    result += 'sata';
7537                } else {
7538                    result += 'sati';
7539                }
7540                return result;
7541            case 'dd':
7542                if (number === 1) {
7543                    result += 'dan';
7544                } else {
7545                    result += 'dana';
7546                }
7547                return result;
7548            case 'MM':
7549                if (number === 1) {
7550                    result += 'mjesec';
7551                } else if (number === 2 || number === 3 || number === 4) {
7552                    result += 'mjeseca';
7553                } else {
7554                    result += 'mjeseci';
7555                }
7556                return result;
7557            case 'yy':
7558                if (number === 1) {
7559                    result += 'godina';
7560                } else if (number === 2 || number === 3 || number === 4) {
7561                    result += 'godine';
7562                } else {
7563                    result += 'godina';
7564                }
7565                return result;
7566        }
7567    }
7568
7569    var bs = moment.defineLocale('bs', {
7570        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
7571            '_'
7572        ),
7573        monthsShort:
7574            'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
7575                '_'
7576            ),
7577        monthsParseExact: true,
7578        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
7579            '_'
7580        ),
7581        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
7582        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
7583        weekdaysParseExact: true,
7584        longDateFormat: {
7585            LT: 'H:mm',
7586            LTS: 'H:mm:ss',
7587            L: 'DD.MM.YYYY',
7588            LL: 'D. MMMM YYYY',
7589            LLL: 'D. MMMM YYYY H:mm',
7590            LLLL: 'dddd, D. MMMM YYYY H:mm',
7591        },
7592        calendar: {
7593            sameDay: '[danas u] LT',
7594            nextDay: '[sutra u] LT',
7595            nextWeek: function () {
7596                switch (this.day()) {
7597                    case 0:
7598                        return '[u] [nedjelju] [u] LT';
7599                    case 3:
7600                        return '[u] [srijedu] [u] LT';
7601                    case 6:
7602                        return '[u] [subotu] [u] LT';
7603                    case 1:
7604                    case 2:
7605                    case 4:
7606                    case 5:
7607                        return '[u] dddd [u] LT';
7608                }
7609            },
7610            lastDay: '[jučer u] LT',
7611            lastWeek: function () {
7612                switch (this.day()) {
7613                    case 0:
7614                    case 3:
7615                        return '[prošlu] dddd [u] LT';
7616                    case 6:
7617                        return '[prošle] [subote] [u] LT';
7618                    case 1:
7619                    case 2:
7620                    case 4:
7621                    case 5:
7622                        return '[prošli] dddd [u] LT';
7623                }
7624            },
7625            sameElse: 'L',
7626        },
7627        relativeTime: {
7628            future: 'za %s',
7629            past: 'prije %s',
7630            s: 'par sekundi',
7631            ss: translate,
7632            m: processRelativeTime,
7633            mm: translate,
7634            h: translate,
7635            hh: translate,
7636            d: 'dan',
7637            dd: translate,
7638            M: 'mjesec',
7639            MM: translate,
7640            y: 'godinu',
7641            yy: translate,
7642        },
7643        dayOfMonthOrdinalParse: /\d{1,2}\./,
7644        ordinal: '%d.',
7645        week: {
7646            dow: 1, // Monday is the first day of the week.
7647            doy: 7, // The week that contains Jan 7th is the first week of the year.
7648        },
7649    });
7650
7651    return bs;
7652
7653})));
7654
7655
7656/***/ }),
7657
7658/***/ 4451:
7659/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7660
7661//! moment.js locale configuration
7662//! locale : Kannada [kn]
7663//! author : Rajeev Naik : https://github.com/rajeevnaikte
7664
7665;(function (global, factory) {
7666    true ? factory(__webpack_require__(5093)) :
7667   0
7668}(this, (function (moment) { 'use strict';
7669
7670    //! moment.js locale configuration
7671
7672    var symbolMap = {
7673            1: 'à³§',
7674            2: '೨',
7675            3: '೩',
7676            4: '೪',
7677            5: '೫',
7678            6: '೬',
7679            7: 'à³­',
7680            8: 'à³®',
7681            9: '೯',
7682            0: '೦',
7683        },
7684        numberMap = {
7685            'à³§': '1',
7686            '೨': '2',
7687            '೩': '3',
7688            '೪': '4',
7689            '೫': '5',
7690            '೬': '6',
7691            'à³­': '7',
7692            'à³®': '8',
7693            '೯': '9',
7694            '೦': '0',
7695        };
7696
7697    var kn = moment.defineLocale('kn', {
7698        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
7699            '_'
7700        ),
7701        monthsShort:
7702            'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
7703                '_'
7704            ),
7705        monthsParseExact: true,
7706        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
7707            '_'
7708        ),
7709        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
7710        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
7711        longDateFormat: {
7712            LT: 'A h:mm',
7713            LTS: 'A h:mm:ss',
7714            L: 'DD/MM/YYYY',
7715            LL: 'D MMMM YYYY',
7716            LLL: 'D MMMM YYYY, A h:mm',
7717            LLLL: 'dddd, D MMMM YYYY, A h:mm',
7718        },
7719        calendar: {
7720            sameDay: '[ಇಂದು] LT',
7721            nextDay: '[ನಾಳೆ] LT',
7722            nextWeek: 'dddd, LT',
7723            lastDay: '[ನಿನ್ನೆ] LT',
7724            lastWeek: '[ಕೊನೆಯ] dddd, LT',
7725            sameElse: 'L',
7726        },
7727        relativeTime: {
7728            future: '%s ನಂತರ',
7729            past: '%s ಹಿಂದೆ',
7730            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
7731            ss: '%d ಸೆಕೆಂಡುಗಳು',
7732            m: 'ಒಂದು ನಿಮಿಷ',
7733            mm: '%d ನಿಮಿಷ',
7734            h: 'ಒಂದು ಗಂಟೆ',
7735            hh: '%d ಗಂಟೆ',
7736            d: 'ಒಂದು ದಿನ',
7737            dd: '%d ದಿನ',
7738            M: 'ಒಂದು ತಿಂಗಳು',
7739            MM: '%d ತಿಂಗಳು',
7740            y: 'ಒಂದು ವರ್ಷ',
7741            yy: '%d ವರ್ಷ',
7742        },
7743        preparse: function (string) {
7744            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
7745                return numberMap[match];
7746            });
7747        },
7748        postformat: function (string) {
7749            return string.replace(/\d/g, function (match) {
7750                return symbolMap[match];
7751            });
7752        },
7753        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
7754        meridiemHour: function (hour, meridiem) {
7755            if (hour === 12) {
7756                hour = 0;
7757            }
7758            if (meridiem === 'ರಾತ್ರಿ') {
7759                return hour < 4 ? hour : hour + 12;
7760            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
7761                return hour;
7762            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
7763                return hour >= 10 ? hour : hour + 12;
7764            } else if (meridiem === 'ಸಂಜೆ') {
7765                return hour + 12;
7766            }
7767        },
7768        meridiem: function (hour, minute, isLower) {
7769            if (hour < 4) {
7770                return 'ರಾತ್ರಿ';
7771            } else if (hour < 10) {
7772                return 'ಬೆಳಿಗ್ಗೆ';
7773            } else if (hour < 17) {
7774                return 'ಮಧ್ಯಾಹ್ನ';
7775            } else if (hour < 20) {
7776                return 'ಸಂಜೆ';
7777            } else {
7778                return 'ರಾತ್ರಿ';
7779            }
7780        },
7781        dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
7782        ordinal: function (number) {
7783            return number + 'ನೇ';
7784        },
7785        week: {
7786            dow: 0, // Sunday is the first day of the week.
7787            doy: 6, // The week that contains Jan 6th is the first week of the year.
7788        },
7789    });
7790
7791    return kn;
7792
7793})));
7794
7795
7796/***/ }),
7797
7798/***/ 4457:
7799/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7800
7801//! moment.js locale configuration
7802//! locale : Romanian [ro]
7803//! author : Vlad Gurdiga : https://github.com/gurdiga
7804//! author : Valentin Agachi : https://github.com/avaly
7805//! author : Emanuel Cepoi : https://github.com/cepem
7806
7807;(function (global, factory) {
7808    true ? factory(__webpack_require__(5093)) :
7809   0
7810}(this, (function (moment) { 'use strict';
7811
7812    //! moment.js locale configuration
7813
7814    function relativeTimeWithPlural(number, withoutSuffix, key) {
7815        var format = {
7816                ss: 'secunde',
7817                mm: 'minute',
7818                hh: 'ore',
7819                dd: 'zile',
7820                ww: 'săptămâni',
7821                MM: 'luni',
7822                yy: 'ani',
7823            },
7824            separator = ' ';
7825        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
7826            separator = ' de ';
7827        }
7828        return number + separator + format[key];
7829    }
7830
7831    var ro = moment.defineLocale('ro', {
7832        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
7833            '_'
7834        ),
7835        monthsShort:
7836            'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
7837                '_'
7838            ),
7839        monthsParseExact: true,
7840        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
7841        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
7842        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
7843        longDateFormat: {
7844            LT: 'H:mm',
7845            LTS: 'H:mm:ss',
7846            L: 'DD.MM.YYYY',
7847            LL: 'D MMMM YYYY',
7848            LLL: 'D MMMM YYYY H:mm',
7849            LLLL: 'dddd, D MMMM YYYY H:mm',
7850        },
7851        calendar: {
7852            sameDay: '[azi la] LT',
7853            nextDay: '[mâine la] LT',
7854            nextWeek: 'dddd [la] LT',
7855            lastDay: '[ieri la] LT',
7856            lastWeek: '[fosta] dddd [la] LT',
7857            sameElse: 'L',
7858        },
7859        relativeTime: {
7860            future: 'peste %s',
7861            past: '%s în urmă',
7862            s: 'câteva secunde',
7863            ss: relativeTimeWithPlural,
7864            m: 'un minut',
7865            mm: relativeTimeWithPlural,
7866            h: 'o oră',
7867            hh: relativeTimeWithPlural,
7868            d: 'o zi',
7869            dd: relativeTimeWithPlural,
7870            w: 'o săptămână',
7871            ww: relativeTimeWithPlural,
7872            M: 'o lună',
7873            MM: relativeTimeWithPlural,
7874            y: 'un an',
7875            yy: relativeTimeWithPlural,
7876        },
7877        week: {
7878            dow: 1, // Monday is the first day of the week.
7879            doy: 7, // The week that contains Jan 7th is the first week of the year.
7880        },
7881    });
7882
7883    return ro;
7884
7885})));
7886
7887
7888/***/ }),
7889
7890/***/ 4496:
7891/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7892
7893//! moment.js locale configuration
7894//! locale : Arabic (Morocco) [ar-ma]
7895//! author : ElFadili Yassine : https://github.com/ElFadiliY
7896//! author : Abdel Said : https://github.com/abdelsaid
7897
7898;(function (global, factory) {
7899    true ? factory(__webpack_require__(5093)) :
7900   0
7901}(this, (function (moment) { 'use strict';
7902
7903    //! moment.js locale configuration
7904
7905    var arMa = moment.defineLocale('ar-ma', {
7906        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
7907            '_'
7908        ),
7909        monthsShort:
7910            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
7911                '_'
7912            ),
7913        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
7914        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
7915        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
7916        weekdaysParseExact: true,
7917        longDateFormat: {
7918            LT: 'HH:mm',
7919            LTS: 'HH:mm:ss',
7920            L: 'DD/MM/YYYY',
7921            LL: 'D MMMM YYYY',
7922            LLL: 'D MMMM YYYY HH:mm',
7923            LLLL: 'dddd D MMMM YYYY HH:mm',
7924        },
7925        calendar: {
7926            sameDay: '[اليوم على الساعة] LT',
7927            nextDay: '[غدا على الساعة] LT',
7928            nextWeek: 'dddd [على الساعة] LT',
7929            lastDay: '[أمس على الساعة] LT',
7930            lastWeek: 'dddd [على الساعة] LT',
7931            sameElse: 'L',
7932        },
7933        relativeTime: {
7934            future: 'في %s',
7935            past: 'منذ %s',
7936            s: 'ثوان',
7937            ss: '%d ثانية',
7938            m: 'دقيقة',
7939            mm: '%d دقائق',
7940            h: 'ساعة',
7941            hh: '%d ساعات',
7942            d: 'يوم',
7943            dd: '%d أيام',
7944            M: 'شهر',
7945            MM: '%d أشهر',
7946            y: 'سنة',
7947            yy: '%d سنوات',
7948        },
7949        week: {
7950            dow: 1, // Monday is the first day of the week.
7951            doy: 4, // The week that contains Jan 4th is the first week of the year.
7952        },
7953    });
7954
7955    return arMa;
7956
7957})));
7958
7959
7960/***/ }),
7961
7962/***/ 4566:
7963/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
7964
7965//! moment.js locale configuration
7966//! locale : Nynorsk [nn]
7967//! authors : https://github.com/mechuwind
7968//!           Stephen Ramthun : https://github.com/stephenramthun
7969
7970;(function (global, factory) {
7971    true ? factory(__webpack_require__(5093)) :
7972   0
7973}(this, (function (moment) { 'use strict';
7974
7975    //! moment.js locale configuration
7976
7977    var nn = moment.defineLocale('nn', {
7978        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
7979            '_'
7980        ),
7981        monthsShort:
7982            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
7983        monthsParseExact: true,
7984        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
vendor: 5,562 bytes, lines 7985-8138
7985        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
7986        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
7987        weekdaysParseExact: true,
7988        longDateFormat: {
7989            LT: 'HH:mm',
7990            LTS: 'HH:mm:ss',
7991            L: 'DD.MM.YYYY',
7992            LL: 'D. MMMM YYYY',
7993            LLL: 'D. MMMM YYYY [kl.] H:mm',
7994            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
7995        },
7996        calendar: {
7997            sameDay: '[I dag klokka] LT',
7998            nextDay: '[I morgon klokka] LT',
7999            nextWeek: 'dddd [klokka] LT',
8000            lastDay: '[I går klokka] LT',
8001            lastWeek: '[Føregåande] dddd [klokka] LT',
8002            sameElse: 'L',
8003        },
8004        relativeTime: {
8005            future: 'om %s',
8006            past: '%s sidan',
8007            s: 'nokre sekund',
8008            ss: '%d sekund',
8009            m: 'eit minutt',
8010            mm: '%d minutt',
8011            h: 'ein time',
8012            hh: '%d timar',
8013            d: 'ein dag',
8014            dd: '%d dagar',
8015            w: 'ei veke',
8016            ww: '%d veker',
8017            M: 'ein månad',
8018            MM: '%d månader',
8019            y: 'eit år',
8020            yy: '%d år',
8021        },
8022        dayOfMonthOrdinalParse: /\d{1,2}\./,
8023        ordinal: '%d.',
8024        week: {
8025            dow: 1, // Monday is the first day of the week.
8026            doy: 4, // The week that contains Jan 4th is the first week of the year.
8027        },
8028    });
8029
8030    return nn;
8031
8032})));
8033
8034
8035/***/ }),
8036
8037/***/ 4691:
8038/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
8039
8040//! moment.js locale configuration
8041//! locale : Greek [el]
8042//! author : Aggelos Karalias : https://github.com/mehiel
8043
8044;(function (global, factory) {
8045    true ? factory(__webpack_require__(5093)) :
8046   0
8047}(this, (function (moment) { 'use strict';
8048
8049    //! moment.js locale configuration
8050
8051    function isFunction(input) {
8052        return (
8053            (typeof Function !== 'undefined' && input instanceof Function) ||
8054            Object.prototype.toString.call(input) === '[object Function]'
8055        );
8056    }
8057
8058    var el = moment.defineLocale('el', {
8059        monthsNominativeEl:
8060            'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
8061                '_'
8062            ),
8063        monthsGenitiveEl:
8064            'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
8065                '_'
8066            ),
8067        months: function (momentToFormat, format) {
8068            if (!momentToFormat) {
8069                return this._monthsNominativeEl;
8070            } else if (
8071                typeof format === 'string' &&
8072                /D/.test(format.substring(0, format.indexOf('MMMM')))
8073            ) {
8074                // if there is a day number before 'MMMM'
8075                return this._monthsGenitiveEl[momentToFormat.month()];
8076            } else {
8077                return this._monthsNominativeEl[momentToFormat.month()];
8078            }
8079        },
8080        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
8081        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
8082            '_'
8083        ),
8084        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
8085        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
8086        meridiem: function (hours, minutes, isLower) {
8087            if (hours > 11) {
8088                return isLower ? 'μμ' : 'ΜΜ';
8089            } else {
8090                return isLower ? 'πμ' : 'ΠΜ';
8091            }
8092        },
8093        isPM: function (input) {
8094            return (input + '').toLowerCase()[0] === 'μ';
8095        },
8096        meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
8097        longDateFormat: {
8098            LT: 'h:mm A',
8099            LTS: 'h:mm:ss A',
8100            L: 'DD/MM/YYYY',
8101            LL: 'D MMMM YYYY',
8102            LLL: 'D MMMM YYYY h:mm A',
8103            LLLL: 'dddd, D MMMM YYYY h:mm A',
8104        },
8105        calendarEl: {
8106            sameDay: '[Σήμερα {}] LT',
8107            nextDay: '[Αύριο {}] LT',
8108            nextWeek: 'dddd [{}] LT',
8109            lastDay: '[Χθες {}] LT',
8110            lastWeek: function () {
8111                switch (this.day()) {
8112                    case 6:
8113                        return '[το προηγούμενο] dddd [{}] LT';
8114                    default:
8115                        return '[την προηγούμενη] dddd [{}] LT';
8116                }
8117            },
8118            sameElse: 'L',
8119        },
8120        calendar: function (key, mom) {
8121            var output = this._calendarEl[key],
8122                hours = mom && mom.hours();
8123            if (isFunction(output)) {
8124                output = output.apply(mom);
8125            }
8126            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
8127        },
8128        relativeTime: {
8129            future: 'σε %s',
8130            past: '%s πριν',
8131            s: 'λίγα δευτερόλεπτα',
8132            ss: '%d δευτερόλεπτα',
8133            m: 'ένα λεπτό',
8134            mm: '%d λεπτά',
8135            h: 'μία ώρα',
8136            hh: '%d ώρες',
8137            d: 'μία μέρα',
8138            dd: '%d μέρες',
8139            M: 'ένας μήνας',
8140            MM: '%d μήνες',
8141            y: 'ένας χρόνος',
8142            yy: '%d χρόνια',
8143        },
8144        dayOfMonthOrdinalParse: /\d{1,2}η/,
8145        ordinal: '%dη',
8146        week: {
8147            dow: 1, // Monday is the first day of the week.
8148            doy: 4, // The week that contains Jan 4st is the first week of the year.
8149        },
8150    });
8151
8152    return el;
8153
8154})));
8155
8156
8157/***/ }),
8158
8159/***/ 4692:
8160/***/ (function(module, exports) {
8161
8162var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
8163 * jQuery JavaScript Library v3.6.0
8164 * https://jquery.com/
8165 *
8166 * Includes Sizzle.js
8167 * https://sizzlejs.com/
8168 *
8169 * Copyright OpenJS Foundation and other contributors
8170 * Released under the MIT license
8171 * https://jquery.org/license
8172 *
8173 * Date: 2021-03-02T17:08Z
8174 */
8175( function( global, factory ) {
8176
8177	"use strict";
8178
8179	if (  true
vendor: 6,468 bytes, lines 8179-8423
8179 && typeof module.exports === "object" ) {
8180
8181		// For CommonJS and CommonJS-like environments where a proper `window`
8182		// is present, execute the factory and get jQuery.
8183		// For environments that do not have a `window` with a `document`
8184		// (such as Node.js), expose a factory as module.exports.
8185		// This accentuates the need for the creation of a real `window`.
8186		// e.g. var jQuery = require("jquery")(window);
8187		// See ticket #14549 for more info.
8188		module.exports = global.document ?
8189			factory( global, true ) :
8190			function( w ) {
8191				if ( !w.document ) {
8192					throw new Error( "jQuery requires a window with a document" );
8193				}
8194				return factory( w );
8195			};
8196	} else {
8197		factory( global );
8198	}
8199
8200// Pass this if window is not defined yet
8201} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
8202
8203// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
8204// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
8205// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
8206// enough that all such attempts are guarded in a try block.
8207"use strict";
8208
8209var arr = [];
8210
8211var getProto = Object.getPrototypeOf;
8212
8213var slice = arr.slice;
8214
8215var flat = arr.flat ? function( array ) {
8216	return arr.flat.call( array );
8217} : function( array ) {
8218	return arr.concat.apply( [], array );
8219};
8220
8221
8222var push = arr.push;
8223
8224var indexOf = arr.indexOf;
8225
8226var class2type = {};
8227
8228var toString = class2type.toString;
8229
8230var hasOwn = class2type.hasOwnProperty;
8231
8232var fnToString = hasOwn.toString;
8233
8234var ObjectFunctionString = fnToString.call( Object );
8235
8236var support = {};
8237
8238var isFunction = function isFunction( obj ) {
8239
8240		// Support: Chrome <=57, Firefox <=52
8241		// In some browsers, typeof returns "function" for HTML <object> elements
8242		// (i.e., `typeof document.createElement( "object" ) === "function"`).
8243		// We don't want to classify *any* DOM node as a function.
8244		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
8245		// Plus for old WebKit, typeof returns "function" for HTML collections
8246		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
8247		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
8248			typeof obj.item !== "function";
8249	};
8250
8251
8252var isWindow = function isWindow( obj ) {
8253		return obj != null && obj === obj.window;
8254	};
8255
8256
8257var document = window.document;
8258
8259
8260
8261	var preservedScriptAttributes = {
8262		type: true,
8263		src: true,
8264		nonce: true,
8265		noModule: true
8266	};
8267
8268	function DOMEval( code, node, doc ) {
8269		doc = doc || document;
8270
8271		var i, val,
8272			script = doc.createElement( "script" );
8273
8274		script.text = code;
8275		if ( node ) {
8276			for ( i in preservedScriptAttributes ) {
8277
8278				// Support: Firefox 64+, Edge 18+
8279				// Some browsers don't support the "nonce" property on scripts.
8280				// On the other hand, just using `getAttribute` is not enough as
8281				// the `nonce` attribute is reset to an empty string whenever it
8282				// becomes browsing-context connected.
8283				// See https://github.com/whatwg/html/issues/2369
8284				// See https://html.spec.whatwg.org/#nonce-attributes
8285				// The `node.getAttribute` check was added for the sake of
8286				// `jQuery.globalEval` so that it can fake a nonce-containing node
8287				// via an object.
8288				val = node[ i ] || node.getAttribute && node.getAttribute( i );
8289				if ( val ) {
8290					script.setAttribute( i, val );
8291				}
8292			}
8293		}
8294		doc.head.appendChild( script ).parentNode.removeChild( script );
8295	}
8296
8297
8298function toType( obj ) {
8299	if ( obj == null ) {
8300		return obj + "";
8301	}
8302
8303	// Support: Android <=2.3 only (functionish RegExp)
8304	return typeof obj === "object" || typeof obj === "function" ?
8305		class2type[ toString.call( obj ) ] || "object" :
8306		typeof obj;
8307}
8308/* global Symbol */
8309// Defining this global in .eslintrc.json would create a danger of using the global
8310// unguarded in another place, it seems safer to define global only for this module
8311
8312
8313
8314var
8315	version = "3.6.0",
8316
8317	// Define a local copy of jQuery
8318	jQuery = function( selector, context ) {
8319
8320		// The jQuery object is actually just the init constructor 'enhanced'
8321		// Need init if jQuery is called (just allow error to be thrown if not included)
8322		return new jQuery.fn.init( selector, context );
8323	};
8324
8325jQuery.fn = jQuery.prototype = {
8326
8327	// The current version of jQuery being used
8328	jquery: version,
8329
8330	constructor: jQuery,
8331
8332	// The default length of a jQuery object is 0
8333	length: 0,
8334
8335	toArray: function() {
8336		return slice.call( this );
8337	},
8338
8339	// Get the Nth element in the matched element set OR
8340	// Get the whole matched element set as a clean array
8341	get: function( num ) {
8342
8343		// Return all the elements in a clean array
8344		if ( num == null ) {
8345			return slice.call( this );
8346		}
8347
8348		// Return just the one element from the set
8349		return num < 0 ? this[ num + this.length ] : this[ num ];
8350	},
8351
8352	// Take an array of elements and push it onto the stack
8353	// (returning the new matched element set)
8354	pushStack: function( elems ) {
8355
8356		// Build a new jQuery matched element set
8357		var ret = jQuery.merge( this.constructor(), elems );
8358
8359		// Add the old object onto the stack (as a reference)
8360		ret.prevObject = this;
8361
8362		// Return the newly-formed element set
8363		return ret;
8364	},
8365
8366	// Execute a callback for every element in the matched set.
8367	each: function( callback ) {
8368		return jQuery.each( this, callback );
8369	},
8370
8371	map: function( callback ) {
8372		return this.pushStack( jQuery.map( this, function( elem, i ) {
8373			return callback.call( elem, i, elem );
8374		} ) );
8375	},
8376
8377	slice: function() {
8378		return this.pushStack( slice.apply( this, arguments ) );
8379	},
8380
8381	first: function() {
8382		return this.eq( 0 );
8383	},
8384
8385	last: function() {
8386		return this.eq( -1 );
8387	},
8388
8389	even: function() {
8390		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
8391			return ( i + 1 ) % 2;
8392		} ) );
8393	},
8394
8395	odd: function() {
8396		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
8397			return i % 2;
8398		} ) );
8399	},
8400
8401	eq: function( i ) {
8402		var len = this.length,
8403			j = +i + ( i < 0 ? len : 0 );
8404		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
8405	},
8406
8407	end: function() {
8408		return this.prevObject || this.constructor();
8409	},
8410
8411	// For internal use only.
8412	// Behaves like an Array's method, not like a jQuery method.
8413	push: push,
8414	sort: arr.sort,
8415	splice: arr.splice
8416};
8417
8418jQuery.extend = jQuery.fn.extend = function() {
8419	var options, name, src, copy, copyIsArray, clone,
8420		target = arguments[ 0 ] || {},
8421		i = 1,
8422		length = arguments.length,
8423		deep = false;
vendor: 180,765 bytes, lines 8424-15110
8424
8425	// Handle a deep copy situation
8426	if ( typeof target === "boolean" ) {
8427		deep = target;
8428
8429		// Skip the boolean and the target
8430		target = arguments[ i ] || {};
8431		i++;
8432	}
8433
8434	// Handle case when target is a string or something (possible in deep copy)
8435	if ( typeof target !== "object" && !isFunction( target ) ) {
8436		target = {};
8437	}
8438
8439	// Extend jQuery itself if only one argument is passed
8440	if ( i === length ) {
8441		target = this;
8442		i--;
8443	}
8444
8445	for ( ; i < length; i++ ) {
8446
8447		// Only deal with non-null/undefined values
8448		if ( ( options = arguments[ i ] ) != null ) {
8449
8450			// Extend the base object
8451			for ( name in options ) {
8452				copy = options[ name ];
8453
8454				// Prevent Object.prototype pollution
8455				// Prevent never-ending loop
8456				if ( name === "__proto__" || target === copy ) {
8457					continue;
8458				}
8459
8460				// Recurse if we're merging plain objects or arrays
8461				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
8462					( copyIsArray = Array.isArray( copy ) ) ) ) {
8463					src = target[ name ];
8464
8465					// Ensure proper type for the source value
8466					if ( copyIsArray && !Array.isArray( src ) ) {
8467						clone = [];
8468					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
8469						clone = {};
8470					} else {
8471						clone = src;
8472					}
8473					copyIsArray = false;
8474
8475					// Never move original objects, clone them
8476					target[ name ] = jQuery.extend( deep, clone, copy );
8477
8478				// Don't bring in undefined values
8479				} else if ( copy !== undefined ) {
8480					target[ name ] = copy;
8481				}
8482			}
8483		}
8484	}
8485
8486	// Return the modified object
8487	return target;
8488};
8489
8490jQuery.extend( {
8491
8492	// Unique for each copy of jQuery on the page
8493	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
8494
8495	// Assume jQuery is ready without the ready module
8496	isReady: true,
8497
8498	error: function( msg ) {
8499		throw new Error( msg );
8500	},
8501
8502	noop: function() {},
8503
8504	isPlainObject: function( obj ) {
8505		var proto, Ctor;
8506
8507		// Detect obvious negatives
8508		// Use toString instead of jQuery.type to catch host objects
8509		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
8510			return false;
8511		}
8512
8513		proto = getProto( obj );
8514
8515		// Objects with no prototype (e.g., `Object.create( null )`) are plain
8516		if ( !proto ) {
8517			return true;
8518		}
8519
8520		// Objects with prototype are plain iff they were constructed by a global Object function
8521		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
8522		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
8523	},
8524
8525	isEmptyObject: function( obj ) {
8526		var name;
8527
8528		for ( name in obj ) {
8529			return false;
8530		}
8531		return true;
8532	},
8533
8534	// Evaluates a script in a provided context; falls back to the global one
8535	// if not specified.
8536	globalEval: function( code, options, doc ) {
8537		DOMEval( code, { nonce: options && options.nonce }, doc );
8538	},
8539
8540	each: function( obj, callback ) {
8541		var length, i = 0;
8542
8543		if ( isArrayLike( obj ) ) {
8544			length = obj.length;
8545			for ( ; i < length; i++ ) {
8546				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
8547					break;
8548				}
8549			}
8550		} else {
8551			for ( i in obj ) {
8552				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
8553					break;
8554				}
8555			}
8556		}
8557
8558		return obj;
8559	},
8560
8561	// results is for internal usage only
8562	makeArray: function( arr, results ) {
8563		var ret = results || [];
8564
8565		if ( arr != null ) {
8566			if ( isArrayLike( Object( arr ) ) ) {
8567				jQuery.merge( ret,
8568					typeof arr === "string" ?
8569						[ arr ] : arr
8570				);
8571			} else {
8572				push.call( ret, arr );
8573			}
8574		}
8575
8576		return ret;
8577	},
8578
8579	inArray: function( elem, arr, i ) {
8580		return arr == null ? -1 : indexOf.call( arr, elem, i );
8581	},
8582
8583	// Support: Android <=4.0 only, PhantomJS 1 only
8584	// push.apply(_, arraylike) throws on ancient WebKit
8585	merge: function( first, second ) {
8586		var len = +second.length,
8587			j = 0,
8588			i = first.length;
8589
8590		for ( ; j < len; j++ ) {
8591			first[ i++ ] = second[ j ];
8592		}
8593
8594		first.length = i;
8595
8596		return first;
8597	},
8598
8599	grep: function( elems, callback, invert ) {
8600		var callbackInverse,
8601			matches = [],
8602			i = 0,
8603			length = elems.length,
8604			callbackExpect = !invert;
8605
8606		// Go through the array, only saving the items
8607		// that pass the validator function
8608		for ( ; i < length; i++ ) {
8609			callbackInverse = !callback( elems[ i ], i );
8610			if ( callbackInverse !== callbackExpect ) {
8611				matches.push( elems[ i ] );
8612			}
8613		}
8614
8615		return matches;
8616	},
8617
8618	// arg is for internal usage only
8619	map: function( elems, callback, arg ) {
8620		var length, value,
8621			i = 0,
8622			ret = [];
8623
8624		// Go through the array, translating each of the items to their new values
8625		if ( isArrayLike( elems ) ) {
8626			length = elems.length;
8627			for ( ; i < length; i++ ) {
8628				value = callback( elems[ i ], i, arg );
8629
8630				if ( value != null ) {
8631					ret.push( value );
8632				}
8633			}
8634
8635		// Go through every key on the object,
8636		} else {
8637			for ( i in elems ) {
8638				value = callback( elems[ i ], i, arg );
8639
8640				if ( value != null ) {
8641					ret.push( value );
8642				}
8643			}
8644		}
8645
8646		// Flatten any nested arrays
8647		return flat( ret );
8648	},
8649
8650	// A global GUID counter for objects
8651	guid: 1,
8652
8653	// jQuery.support is not used in Core but other projects attach their
8654	// properties to it so it needs to exist.
8655	support: support
8656} );
8657
8658if ( typeof Symbol === "function" ) {
8659	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
8660}
8661
8662// Populate the class2type map
8663jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
8664	function( _i, name ) {
8665		class2type[ "[object " + name + "]" ] = name.toLowerCase();
8666	} );
8667
8668function isArrayLike( obj ) {
8669
8670	// Support: real iOS 8.2 only (not reproducible in simulator)
8671	// `in` check used to prevent JIT error (gh-2145)
8672	// hasOwn isn't used here due to false negatives
8673	// regarding Nodelist length in IE
8674	var length = !!obj && "length" in obj && obj.length,
8675		type = toType( obj );
8676
8677	if ( isFunction( obj ) || isWindow( obj ) ) {
8678		return false;
8679	}
8680
8681	return type === "array" || length === 0 ||
8682		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
8683}
8684var Sizzle =
8685/*!
8686 * Sizzle CSS Selector Engine v2.3.6
8687 * https://sizzlejs.com/
8688 *
8689 * Copyright JS Foundation and other contributors
8690 * Released under the MIT license
8691 * https://js.foundation/
8692 *
8693 * Date: 2021-02-16
8694 */
8695( function( window ) {
8696var i,
8697	support,
8698	Expr,
8699	getText,
8700	isXML,
8701	tokenize,
8702	compile,
8703	select,
8704	outermostContext,
8705	sortInput,
8706	hasDuplicate,
8707
8708	// Local document vars
8709	setDocument,
8710	document,
8711	docElem,
8712	documentIsHTML,
8713	rbuggyQSA,
8714	rbuggyMatches,
8715	matches,
8716	contains,
8717
8718	// Instance-specific data
8719	expando = "sizzle" + 1 * new Date(),
8720	preferredDoc = window.document,
8721	dirruns = 0,
8722	done = 0,
8723	classCache = createCache(),
8724	tokenCache = createCache(),
8725	compilerCache = createCache(),
8726	nonnativeSelectorCache = createCache(),
8727	sortOrder = function( a, b ) {
8728		if ( a === b ) {
8729			hasDuplicate = true;
8730		}
8731		return 0;
8732	},
8733
8734	// Instance methods
8735	hasOwn = ( {} ).hasOwnProperty,
8736	arr = [],
8737	pop = arr.pop,
8738	pushNative = arr.push,
8739	push = arr.push,
8740	slice = arr.slice,
8741
8742	// Use a stripped-down indexOf as it's faster than native
8743	// https://jsperf.com/thor-indexof-vs-for/5
8744	indexOf = function( list, elem ) {
8745		var i = 0,
8746			len = list.length;
8747		for ( ; i < len; i++ ) {
8748			if ( list[ i ] === elem ) {
8749				return i;
8750			}
8751		}
8752		return -1;
8753	},
8754
8755	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
8756		"ismap|loop|multiple|open|readonly|required|scoped",
8757
8758	// Regular expressions
8759
8760	// http://www.w3.org/TR/css3-selectors/#whitespace
8761	whitespace = "[\\x20\\t\\r\\n\\f]",
8762
8763	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
8764	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
8765		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
8766
8767	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
8768	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
8769
8770		// Operator (capture 2)
8771		"*([*^$|!~]?=)" + whitespace +
8772
8773		// "Attribute values must be CSS identifiers [capture 5]
8774		// or strings [capture 3 or capture 4]"
8775		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
8776		whitespace + "*\\]",
8777
8778	pseudos = ":(" + identifier + ")(?:\\((" +
8779
8780		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
8781		// 1. quoted (capture 3; capture 4 or capture 5)
8782		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
8783
8784		// 2. simple (capture 6)
8785		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
8786
8787		// 3. anything else (capture 2)
8788		".*" +
8789		")\\)|)",
8790
8791	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
8792	rwhitespace = new RegExp( whitespace + "+", "g" ),
8793	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
8794		whitespace + "+$", "g" ),
8795
8796	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
8797	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
8798		"*" ),
8799	rdescend = new RegExp( whitespace + "|>" ),
8800
8801	rpseudo = new RegExp( pseudos ),
8802	ridentifier = new RegExp( "^" + identifier + "$" ),
8803
8804	matchExpr = {
8805		"ID": new RegExp( "^#(" + identifier + ")" ),
8806		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
8807		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
8808		"ATTR": new RegExp( "^" + attributes ),
8809		"PSEUDO": new RegExp( "^" + pseudos ),
8810		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
8811			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
8812			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
8813		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
8814
8815		// For use in libraries implementing .is()
8816		// We use this for POS matching in `select`
8817		"needsContext": new RegExp( "^" + whitespace +
8818			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
8819			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
8820	},
8821
8822	rhtml = /HTML$/i,
8823	rinputs = /^(?:input|select|textarea|button)$/i,
8824	rheader = /^h\d$/i,
8825
8826	rnative = /^[^{]+\{\s*\[native \w/,
8827
8828	// Easily-parseable/retrievable ID or TAG or CLASS selectors
8829	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
8830
8831	rsibling = /[+~]/,
8832
8833	// CSS escapes
8834	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
8835	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
8836	funescape = function( escape, nonHex ) {
8837		var high = "0x" + escape.slice( 1 ) - 0x10000;
8838
8839		return nonHex ?
8840
8841			// Strip the backslash prefix from a non-hex escape sequence
8842			nonHex :
8843
8844			// Replace a hexadecimal escape sequence with the encoded Unicode code point
8845			// Support: IE <=11+
8846			// For values outside the Basic Multilingual Plane (BMP), manually construct a
8847			// surrogate pair
8848			high < 0 ?
8849				String.fromCharCode( high + 0x10000 ) :
8850				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
8851	},
8852
8853	// CSS string/identifier serialization
8854	// https://drafts.csswg.org/cssom/#common-serializing-idioms
8855	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
8856	fcssescape = function( ch, asCodePoint ) {
8857		if ( asCodePoint ) {
8858
8859			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
8860			if ( ch === "\0" ) {
8861				return "\uFFFD";
8862			}
8863
8864			// Control characters and (dependent upon position) numbers get escaped as code points
8865			return ch.slice( 0, -1 ) + "\\" +
8866				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
8867		}
8868
8869		// Other potentially-special ASCII characters get backslash-escaped
8870		return "\\" + ch;
8871	},
8872
8873	// Used for iframes
8874	// See setDocument()
8875	// Removing the function wrapper causes a "Permission Denied"
8876	// error in IE
8877	unloadHandler = function() {
8878		setDocument();
8879	},
8880
8881	inDisabledFieldset = addCombinator(
8882		function( elem ) {
8883			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
8884		},
8885		{ dir: "parentNode", next: "legend" }
8886	);
8887
8888// Optimize for push.apply( _, NodeList )
8889try {
8890	push.apply(
8891		( arr = slice.call( preferredDoc.childNodes ) ),
8892		preferredDoc.childNodes
8893	);
8894
8895	// Support: Android<4.0
8896	// Detect silently failing push.apply
8897	// eslint-disable-next-line no-unused-expressions
8898	arr[ preferredDoc.childNodes.length ].nodeType;
8899} catch ( e ) {
8900	push = { apply: arr.length ?
8901
8902		// Leverage slice if possible
8903		function( target, els ) {
8904			pushNative.apply( target, slice.call( els ) );
8905		} :
8906
8907		// Support: IE<9
8908		// Otherwise append directly
8909		function( target, els ) {
8910			var j = target.length,
8911				i = 0;
8912
8913			// Can't trust NodeList.length
8914			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
8915			target.length = j - 1;
8916		}
8917	};
8918}
8919
8920function Sizzle( selector, context, results, seed ) {
8921	var m, i, elem, nid, match, groups, newSelector,
8922		newContext = context && context.ownerDocument,
8923
8924		// nodeType defaults to 9, since context defaults to document
8925		nodeType = context ? context.nodeType : 9;
8926
8927	results = results || [];
8928
8929	// Return early from calls with invalid selector or context
8930	if ( typeof selector !== "string" || !selector ||
8931		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
8932
8933		return results;
8934	}
8935
8936	// Try to shortcut find operations (as opposed to filters) in HTML documents
8937	if ( !seed ) {
8938		setDocument( context );
8939		context = context || document;
8940
8941		if ( documentIsHTML ) {
8942
8943			// If the selector is sufficiently simple, try using a "get*By*" DOM method
8944			// (excepting DocumentFragment context, where the methods don't exist)
8945			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
8946
8947				// ID selector
8948				if ( ( m = match[ 1 ] ) ) {
8949
8950					// Document context
8951					if ( nodeType === 9 ) {
8952						if ( ( elem = context.getElementById( m ) ) ) {
8953
8954							// Support: IE, Opera, Webkit
8955							// TODO: identify versions
8956							// getElementById can match elements by name instead of ID
8957							if ( elem.id === m ) {
8958								results.push( elem );
8959								return results;
8960							}
8961						} else {
8962							return results;
8963						}
8964
8965					// Element context
8966					} else {
8967
8968						// Support: IE, Opera, Webkit
8969						// TODO: identify versions
8970						// getElementById can match elements by name instead of ID
8971						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
8972							contains( context, elem ) &&
8973							elem.id === m ) {
8974
8975							results.push( elem );
8976							return results;
8977						}
8978					}
8979
8980				// Type selector
8981				} else if ( match[ 2 ] ) {
8982					push.apply( results, context.getElementsByTagName( selector ) );
8983					return results;
8984
8985				// Class selector
8986				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
8987					context.getElementsByClassName ) {
8988
8989					push.apply( results, context.getElementsByClassName( m ) );
8990					return results;
8991				}
8992			}
8993
8994			// Take advantage of querySelectorAll
8995			if ( support.qsa &&
8996				!nonnativeSelectorCache[ selector + " " ] &&
8997				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
8998
8999				// Support: IE 8 only
9000				// Exclude object elements
9001				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
9002
9003				newSelector = selector;
9004				newContext = context;
9005
9006				// qSA considers elements outside a scoping root when evaluating child or
9007				// descendant combinators, which is not what we want.
9008				// In such cases, we work around the behavior by prefixing every selector in the
9009				// list with an ID selector referencing the scope context.
9010				// The technique has to be used as well when a leading combinator is used
9011				// as such selectors are not recognized by querySelectorAll.
9012				// Thanks to Andrew Dupont for this technique.
9013				if ( nodeType === 1 &&
9014					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
9015
9016					// Expand context for sibling selectors
9017					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
9018						context;
9019
9020					// We can use :scope instead of the ID hack if the browser
9021					// supports it & if we're not changing the context.
9022					if ( newContext !== context || !support.scope ) {
9023
9024						// Capture the context ID, setting it first if necessary
9025						if ( ( nid = context.getAttribute( "id" ) ) ) {
9026							nid = nid.replace( rcssescape, fcssescape );
9027						} else {
9028							context.setAttribute( "id", ( nid = expando ) );
9029						}
9030					}
9031
9032					// Prefix every selector in the list
9033					groups = tokenize( selector );
9034					i = groups.length;
9035					while ( i-- ) {
9036						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
9037							toSelector( groups[ i ] );
9038					}
9039					newSelector = groups.join( "," );
9040				}
9041
9042				try {
9043					push.apply( results,
9044						newContext.querySelectorAll( newSelector )
9045					);
9046					return results;
9047				} catch ( qsaError ) {
9048					nonnativeSelectorCache( selector, true );
9049				} finally {
9050					if ( nid === expando ) {
9051						context.removeAttribute( "id" );
9052					}
9053				}
9054			}
9055		}
9056	}
9057
9058	// All others
9059	return select( selector.replace( rtrim, "$1" ), context, results, seed );
9060}
9061
9062/**
9063 * Create key-value caches of limited size
9064 * @returns {function(string, object)} Returns the Object data after storing it on itself with
9065 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
9066 *	deleting the oldest entry
9067 */
9068function createCache() {
9069	var keys = [];
9070
9071	function cache( key, value ) {
9072
9073		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
9074		if ( keys.push( key + " " ) > Expr.cacheLength ) {
9075
9076			// Only keep the most recent entries
9077			delete cache[ keys.shift() ];
9078		}
9079		return ( cache[ key + " " ] = value );
9080	}
9081	return cache;
9082}
9083
9084/**
9085 * Mark a function for special use by Sizzle
9086 * @param {Function} fn The function to mark
9087 */
9088function markFunction( fn ) {
9089	fn[ expando ] = true;
9090	return fn;
9091}
9092
9093/**
9094 * Support testing using an element
9095 * @param {Function} fn Passed the created element and returns a boolean result
9096 */
9097function assert( fn ) {
9098	var el = document.createElement( "fieldset" );
9099
9100	try {
9101		return !!fn( el );
9102	} catch ( e ) {
9103		return false;
9104	} finally {
9105
9106		// Remove from its parent by default
9107		if ( el.parentNode ) {
9108			el.parentNode.removeChild( el );
9109		}
9110
9111		// release memory in IE
9112		el = null;
9113	}
9114}
9115
9116/**
9117 * Adds the same handler for all of the specified attrs
9118 * @param {String} attrs Pipe-separated list of attributes
9119 * @param {Function} handler The method that will be applied
9120 */
9121function addHandle( attrs, handler ) {
9122	var arr = attrs.split( "|" ),
9123		i = arr.length;
9124
9125	while ( i-- ) {
9126		Expr.attrHandle[ arr[ i ] ] = handler;
9127	}
9128}
9129
9130/**
9131 * Checks document order of two siblings
9132 * @param {Element} a
9133 * @param {Element} b
9134 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
9135 */
9136function siblingCheck( a, b ) {
9137	var cur = b && a,
9138		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
9139			a.sourceIndex - b.sourceIndex;
9140
9141	// Use IE sourceIndex if available on both nodes
9142	if ( diff ) {
9143		return diff;
9144	}
9145
9146	// Check if b follows a
9147	if ( cur ) {
9148		while ( ( cur = cur.nextSibling ) ) {
9149			if ( cur === b ) {
9150				return -1;
9151			}
9152		}
9153	}
9154
9155	return a ? 1 : -1;
9156}
9157
9158/**
9159 * Returns a function to use in pseudos for input types
9160 * @param {String} type
9161 */
9162function createInputPseudo( type ) {
9163	return function( elem ) {
9164		var name = elem.nodeName.toLowerCase();
9165		return name === "input" && elem.type === type;
9166	};
9167}
9168
9169/**
9170 * Returns a function to use in pseudos for buttons
9171 * @param {String} type
9172 */
9173function createButtonPseudo( type ) {
9174	return function( elem ) {
9175		var name = elem.nodeName.toLowerCase();
9176		return ( name === "input" || name === "button" ) && elem.type === type;
9177	};
9178}
9179
9180/**
9181 * Returns a function to use in pseudos for :enabled/:disabled
9182 * @param {Boolean} disabled true for :disabled; false for :enabled
9183 */
9184function createDisabledPseudo( disabled ) {
9185
9186	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
9187	return function( elem ) {
9188
9189		// Only certain elements can match :enabled or :disabled
9190		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
9191		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
9192		if ( "form" in elem ) {
9193
9194			// Check for inherited disabledness on relevant non-disabled elements:
9195			// * listed form-associated elements in a disabled fieldset
9196			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
9197			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
9198			// * option elements in a disabled optgroup
9199			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
9200			// All such elements have a "form" property.
9201			if ( elem.parentNode && elem.disabled === false ) {
9202
9203				// Option elements defer to a parent optgroup if present
9204				if ( "label" in elem ) {
9205					if ( "label" in elem.parentNode ) {
9206						return elem.parentNode.disabled === disabled;
9207					} else {
9208						return elem.disabled === disabled;
9209					}
9210				}
9211
9212				// Support: IE 6 - 11
9213				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
9214				return elem.isDisabled === disabled ||
9215
9216					// Where there is no isDisabled, check manually
9217					/* jshint -W018 */
9218					elem.isDisabled !== !disabled &&
9219					inDisabledFieldset( elem ) === disabled;
9220			}
9221
9222			return elem.disabled === disabled;
9223
9224		// Try to winnow out elements that can't be disabled before trusting the disabled property.
9225		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
9226		// even exist on them, let alone have a boolean value.
9227		} else if ( "label" in elem ) {
9228			return elem.disabled === disabled;
9229		}
9230
9231		// Remaining elements are neither :enabled nor :disabled
9232		return false;
9233	};
9234}
9235
9236/**
9237 * Returns a function to use in pseudos for positionals
9238 * @param {Function} fn
9239 */
9240function createPositionalPseudo( fn ) {
9241	return markFunction( function( argument ) {
9242		argument = +argument;
9243		return markFunction( function( seed, matches ) {
9244			var j,
9245				matchIndexes = fn( [], seed.length, argument ),
9246				i = matchIndexes.length;
9247
9248			// Match elements found at the specified indexes
9249			while ( i-- ) {
9250				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
9251					seed[ j ] = !( matches[ j ] = seed[ j ] );
9252				}
9253			}
9254		} );
9255	} );
9256}
9257
9258/**
9259 * Checks a node for validity as a Sizzle context
9260 * @param {Element|Object=} context
9261 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
9262 */
9263function testContext( context ) {
9264	return context && typeof context.getElementsByTagName !== "undefined" && context;
9265}
9266
9267// Expose support vars for convenience
9268support = Sizzle.support = {};
9269
9270/**
9271 * Detects XML nodes
9272 * @param {Element|Object} elem An element or a document
9273 * @returns {Boolean} True iff elem is a non-HTML XML node
9274 */
9275isXML = Sizzle.isXML = function( elem ) {
9276	var namespace = elem && elem.namespaceURI,
9277		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
9278
9279	// Support: IE <=8
9280	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
9281	// https://bugs.jquery.com/ticket/4833
9282	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
9283};
9284
9285/**
9286 * Sets document-related variables once based on the current document
9287 * @param {Element|Object} [doc] An element or document object to use to set the document
9288 * @returns {Object} Returns the current document
9289 */
9290setDocument = Sizzle.setDocument = function( node ) {
9291	var hasCompare, subWindow,
9292		doc = node ? node.ownerDocument || node : preferredDoc;
9293
9294	// Return early if doc is invalid or already selected
9295	// Support: IE 11+, Edge 17 - 18+
9296	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9297	// two documents; shallow comparisons work.
9298	// eslint-disable-next-line eqeqeq
9299	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
9300		return document;
9301	}
9302
9303	// Update global variables
9304	document = doc;
9305	docElem = document.documentElement;
9306	documentIsHTML = !isXML( document );
9307
9308	// Support: IE 9 - 11+, Edge 12 - 18+
9309	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
9310	// Support: IE 11+, Edge 17 - 18+
9311	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9312	// two documents; shallow comparisons work.
9313	// eslint-disable-next-line eqeqeq
9314	if ( preferredDoc != document &&
9315		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
9316
9317		// Support: IE 11, Edge
9318		if ( subWindow.addEventListener ) {
9319			subWindow.addEventListener( "unload", unloadHandler, false );
9320
9321		// Support: IE 9 - 10 only
9322		} else if ( subWindow.attachEvent ) {
9323			subWindow.attachEvent( "onunload", unloadHandler );
9324		}
9325	}
9326
9327	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
9328	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
9329	// IE/Edge & older browsers don't support the :scope pseudo-class.
9330	// Support: Safari 6.0 only
9331	// Safari 6.0 supports :scope but it's an alias of :root there.
9332	support.scope = assert( function( el ) {
9333		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
9334		return typeof el.querySelectorAll !== "undefined" &&
9335			!el.querySelectorAll( ":scope fieldset div" ).length;
9336	} );
9337
9338	/* Attributes
9339	---------------------------------------------------------------------- */
9340
9341	// Support: IE<8
9342	// Verify that getAttribute really returns attributes and not properties
9343	// (excepting IE8 booleans)
9344	support.attributes = assert( function( el ) {
9345		el.className = "i";
9346		return !el.getAttribute( "className" );
9347	} );
9348
9349	/* getElement(s)By*
9350	---------------------------------------------------------------------- */
9351
9352	// Check if getElementsByTagName("*") returns only elements
9353	support.getElementsByTagName = assert( function( el ) {
9354		el.appendChild( document.createComment( "" ) );
9355		return !el.getElementsByTagName( "*" ).length;
9356	} );
9357
9358	// Support: IE<9
9359	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
9360
9361	// Support: IE<10
9362	// Check if getElementById returns elements by name
9363	// The broken getElementById methods don't pick up programmatically-set names,
9364	// so use a roundabout getElementsByName test
9365	support.getById = assert( function( el ) {
9366		docElem.appendChild( el ).id = expando;
9367		return !document.getElementsByName || !document.getElementsByName( expando ).length;
9368	} );
9369
9370	// ID filter and find
9371	if ( support.getById ) {
9372		Expr.filter[ "ID" ] = function( id ) {
9373			var attrId = id.replace( runescape, funescape );
9374			return function( elem ) {
9375				return elem.getAttribute( "id" ) === attrId;
9376			};
9377		};
9378		Expr.find[ "ID" ] = function( id, context ) {
9379			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
9380				var elem = context.getElementById( id );
9381				return elem ? [ elem ] : [];
9382			}
9383		};
9384	} else {
9385		Expr.filter[ "ID" ] =  function( id ) {
9386			var attrId = id.replace( runescape, funescape );
9387			return function( elem ) {
9388				var node = typeof elem.getAttributeNode !== "undefined" &&
9389					elem.getAttributeNode( "id" );
9390				return node && node.value === attrId;
9391			};
9392		};
9393
9394		// Support: IE 6 - 7 only
9395		// getElementById is not reliable as a find shortcut
9396		Expr.find[ "ID" ] = function( id, context ) {
9397			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
9398				var node, i, elems,
9399					elem = context.getElementById( id );
9400
9401				if ( elem ) {
9402
9403					// Verify the id attribute
9404					node = elem.getAttributeNode( "id" );
9405					if ( node && node.value === id ) {
9406						return [ elem ];
9407					}
9408
9409					// Fall back on getElementsByName
9410					elems = context.getElementsByName( id );
9411					i = 0;
9412					while ( ( elem = elems[ i++ ] ) ) {
9413						node = elem.getAttributeNode( "id" );
9414						if ( node && node.value === id ) {
9415							return [ elem ];
9416						}
9417					}
9418				}
9419
9420				return [];
9421			}
9422		};
9423	}
9424
9425	// Tag
9426	Expr.find[ "TAG" ] = support.getElementsByTagName ?
9427		function( tag, context ) {
9428			if ( typeof context.getElementsByTagName !== "undefined" ) {
9429				return context.getElementsByTagName( tag );
9430
9431			// DocumentFragment nodes don't have gEBTN
9432			} else if ( support.qsa ) {
9433				return context.querySelectorAll( tag );
9434			}
9435		} :
9436
9437		function( tag, context ) {
9438			var elem,
9439				tmp = [],
9440				i = 0,
9441
9442				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
9443				results = context.getElementsByTagName( tag );
9444
9445			// Filter out possible comments
9446			if ( tag === "*" ) {
9447				while ( ( elem = results[ i++ ] ) ) {
9448					if ( elem.nodeType === 1 ) {
9449						tmp.push( elem );
9450					}
9451				}
9452
9453				return tmp;
9454			}
9455			return results;
9456		};
9457
9458	// Class
9459	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
9460		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
9461			return context.getElementsByClassName( className );
9462		}
9463	};
9464
9465	/* QSA/matchesSelector
9466	---------------------------------------------------------------------- */
9467
9468	// QSA and matchesSelector support
9469
9470	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
9471	rbuggyMatches = [];
9472
9473	// qSa(:focus) reports false when true (Chrome 21)
9474	// We allow this because of a bug in IE8/9 that throws an error
9475	// whenever `document.activeElement` is accessed on an iframe
9476	// So, we allow :focus to pass through QSA all the time to avoid the IE error
9477	// See https://bugs.jquery.com/ticket/13378
9478	rbuggyQSA = [];
9479
9480	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
9481
9482		// Build QSA regex
9483		// Regex strategy adopted from Diego Perini
9484		assert( function( el ) {
9485
9486			var input;
9487
9488			// Select is set to empty string on purpose
9489			// This is to test IE's treatment of not explicitly
9490			// setting a boolean content attribute,
9491			// since its presence should be enough
9492			// https://bugs.jquery.com/ticket/12359
9493			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
9494				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
9495				"<option selected=''></option></select>";
9496
9497			// Support: IE8, Opera 11-12.16
9498			// Nothing should be selected when empty strings follow ^= or $= or *=
9499			// The test attribute must be unknown in Opera but "safe" for WinRT
9500			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
9501			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
9502				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
9503			}
9504
9505			// Support: IE8
9506			// Boolean attributes and "value" are not treated correctly
9507			if ( !el.querySelectorAll( "[selected]" ).length ) {
9508				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
9509			}
9510
9511			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
9512			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
9513				rbuggyQSA.push( "~=" );
9514			}
9515
9516			// Support: IE 11+, Edge 15 - 18+
9517			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
9518			// Adding a temporary attribute to the document before the selection works
9519			// around the issue.
9520			// Interestingly, IE 10 & older don't seem to have the issue.
9521			input = document.createElement( "input" );
9522			input.setAttribute( "name", "" );
9523			el.appendChild( input );
9524			if ( !el.querySelectorAll( "[name='']" ).length ) {
9525				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
9526					whitespace + "*(?:''|\"\")" );
9527			}
9528
9529			// Webkit/Opera - :checked should return selected option elements
9530			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
9531			// IE8 throws error here and will not see later tests
9532			if ( !el.querySelectorAll( ":checked" ).length ) {
9533				rbuggyQSA.push( ":checked" );
9534			}
9535
9536			// Support: Safari 8+, iOS 8+
9537			// https://bugs.webkit.org/show_bug.cgi?id=136851
9538			// In-page `selector#id sibling-combinator selector` fails
9539			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
9540				rbuggyQSA.push( ".#.+[+~]" );
9541			}
9542
9543			// Support: Firefox <=3.6 - 5 only
9544			// Old Firefox doesn't throw on a badly-escaped identifier.
9545			el.querySelectorAll( "\\\f" );
9546			rbuggyQSA.push( "[\\r\\n\\f]" );
9547		} );
9548
9549		assert( function( el ) {
9550			el.innerHTML = "<a href='' disabled='disabled'></a>" +
9551				"<select disabled='disabled'><option/></select>";
9552
9553			// Support: Windows 8 Native Apps
9554			// The type and name attributes are restricted during .innerHTML assignment
9555			var input = document.createElement( "input" );
9556			input.setAttribute( "type", "hidden" );
9557			el.appendChild( input ).setAttribute( "name", "D" );
9558
9559			// Support: IE8
9560			// Enforce case-sensitivity of name attribute
9561			if ( el.querySelectorAll( "[name=d]" ).length ) {
9562				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
9563			}
9564
9565			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
9566			// IE8 throws error here and will not see later tests
9567			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
9568				rbuggyQSA.push( ":enabled", ":disabled" );
9569			}
9570
9571			// Support: IE9-11+
9572			// IE's :disabled selector does not pick up the children of disabled fieldsets
9573			docElem.appendChild( el ).disabled = true;
9574			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
9575				rbuggyQSA.push( ":enabled", ":disabled" );
9576			}
9577
9578			// Support: Opera 10 - 11 only
9579			// Opera 10-11 does not throw on post-comma invalid pseudos
9580			el.querySelectorAll( "*,:x" );
9581			rbuggyQSA.push( ",.*:" );
9582		} );
9583	}
9584
9585	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
9586		docElem.webkitMatchesSelector ||
9587		docElem.mozMatchesSelector ||
9588		docElem.oMatchesSelector ||
9589		docElem.msMatchesSelector ) ) ) ) {
9590
9591		assert( function( el ) {
9592
9593			// Check to see if it's possible to do matchesSelector
9594			// on a disconnected node (IE 9)
9595			support.disconnectedMatch = matches.call( el, "*" );
9596
9597			// This should fail with an exception
9598			// Gecko does not error, returns false instead
9599			matches.call( el, "[s!='']:x" );
9600			rbuggyMatches.push( "!=", pseudos );
9601		} );
9602	}
9603
9604	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
9605	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
9606
9607	/* Contains
9608	---------------------------------------------------------------------- */
9609	hasCompare = rnative.test( docElem.compareDocumentPosition );
9610
9611	// Element contains another
9612	// Purposefully self-exclusive
9613	// As in, an element does not contain itself
9614	contains = hasCompare || rnative.test( docElem.contains ) ?
9615		function( a, b ) {
9616			var adown = a.nodeType === 9 ? a.documentElement : a,
9617				bup = b && b.parentNode;
9618			return a === bup || !!( bup && bup.nodeType === 1 && (
9619				adown.contains ?
9620					adown.contains( bup ) :
9621					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
9622			) );
9623		} :
9624		function( a, b ) {
9625			if ( b ) {
9626				while ( ( b = b.parentNode ) ) {
9627					if ( b === a ) {
9628						return true;
9629					}
9630				}
9631			}
9632			return false;
9633		};
9634
9635	/* Sorting
9636	---------------------------------------------------------------------- */
9637
9638	// Document order sorting
9639	sortOrder = hasCompare ?
9640	function( a, b ) {
9641
9642		// Flag for duplicate removal
9643		if ( a === b ) {
9644			hasDuplicate = true;
9645			return 0;
9646		}
9647
9648		// Sort on method existence if only one input has compareDocumentPosition
9649		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
9650		if ( compare ) {
9651			return compare;
9652		}
9653
9654		// Calculate position if both inputs belong to the same document
9655		// Support: IE 11+, Edge 17 - 18+
9656		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9657		// two documents; shallow comparisons work.
9658		// eslint-disable-next-line eqeqeq
9659		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
9660			a.compareDocumentPosition( b ) :
9661
9662			// Otherwise we know they are disconnected
9663			1;
9664
9665		// Disconnected nodes
9666		if ( compare & 1 ||
9667			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
9668
9669			// Choose the first element that is related to our preferred document
9670			// Support: IE 11+, Edge 17 - 18+
9671			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9672			// two documents; shallow comparisons work.
9673			// eslint-disable-next-line eqeqeq
9674			if ( a == document || a.ownerDocument == preferredDoc &&
9675				contains( preferredDoc, a ) ) {
9676				return -1;
9677			}
9678
9679			// Support: IE 11+, Edge 17 - 18+
9680			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9681			// two documents; shallow comparisons work.
9682			// eslint-disable-next-line eqeqeq
9683			if ( b == document || b.ownerDocument == preferredDoc &&
9684				contains( preferredDoc, b ) ) {
9685				return 1;
9686			}
9687
9688			// Maintain original order
9689			return sortInput ?
9690				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
9691				0;
9692		}
9693
9694		return compare & 4 ? -1 : 1;
9695	} :
9696	function( a, b ) {
9697
9698		// Exit early if the nodes are identical
9699		if ( a === b ) {
9700			hasDuplicate = true;
9701			return 0;
9702		}
9703
9704		var cur,
9705			i = 0,
9706			aup = a.parentNode,
9707			bup = b.parentNode,
9708			ap = [ a ],
9709			bp = [ b ];
9710
9711		// Parentless nodes are either documents or disconnected
9712		if ( !aup || !bup ) {
9713
9714			// Support: IE 11+, Edge 17 - 18+
9715			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9716			// two documents; shallow comparisons work.
9717			/* eslint-disable eqeqeq */
9718			return a == document ? -1 :
9719				b == document ? 1 :
9720				/* eslint-enable eqeqeq */
9721				aup ? -1 :
9722				bup ? 1 :
9723				sortInput ?
9724				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
9725				0;
9726
9727		// If the nodes are siblings, we can do a quick check
9728		} else if ( aup === bup ) {
9729			return siblingCheck( a, b );
9730		}
9731
9732		// Otherwise we need full lists of their ancestors for comparison
9733		cur = a;
9734		while ( ( cur = cur.parentNode ) ) {
9735			ap.unshift( cur );
9736		}
9737		cur = b;
9738		while ( ( cur = cur.parentNode ) ) {
9739			bp.unshift( cur );
9740		}
9741
9742		// Walk down the tree looking for a discrepancy
9743		while ( ap[ i ] === bp[ i ] ) {
9744			i++;
9745		}
9746
9747		return i ?
9748
9749			// Do a sibling check if the nodes have a common ancestor
9750			siblingCheck( ap[ i ], bp[ i ] ) :
9751
9752			// Otherwise nodes in our document sort first
9753			// Support: IE 11+, Edge 17 - 18+
9754			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9755			// two documents; shallow comparisons work.
9756			/* eslint-disable eqeqeq */
9757			ap[ i ] == preferredDoc ? -1 :
9758			bp[ i ] == preferredDoc ? 1 :
9759			/* eslint-enable eqeqeq */
9760			0;
9761	};
9762
9763	return document;
9764};
9765
9766Sizzle.matches = function( expr, elements ) {
9767	return Sizzle( expr, null, null, elements );
9768};
9769
9770Sizzle.matchesSelector = function( elem, expr ) {
9771	setDocument( elem );
9772
9773	if ( support.matchesSelector && documentIsHTML &&
9774		!nonnativeSelectorCache[ expr + " " ] &&
9775		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
9776		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
9777
9778		try {
9779			var ret = matches.call( elem, expr );
9780
9781			// IE 9's matchesSelector returns false on disconnected nodes
9782			if ( ret || support.disconnectedMatch ||
9783
9784				// As well, disconnected nodes are said to be in a document
9785				// fragment in IE 9
9786				elem.document && elem.document.nodeType !== 11 ) {
9787				return ret;
9788			}
9789		} catch ( e ) {
9790			nonnativeSelectorCache( expr, true );
9791		}
9792	}
9793
9794	return Sizzle( expr, document, null, [ elem ] ).length > 0;
9795};
9796
9797Sizzle.contains = function( context, elem ) {
9798
9799	// Set document vars if needed
9800	// Support: IE 11+, Edge 17 - 18+
9801	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9802	// two documents; shallow comparisons work.
9803	// eslint-disable-next-line eqeqeq
9804	if ( ( context.ownerDocument || context ) != document ) {
9805		setDocument( context );
9806	}
9807	return contains( context, elem );
9808};
9809
9810Sizzle.attr = function( elem, name ) {
9811
9812	// Set document vars if needed
9813	// Support: IE 11+, Edge 17 - 18+
9814	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
9815	// two documents; shallow comparisons work.
9816	// eslint-disable-next-line eqeqeq
9817	if ( ( elem.ownerDocument || elem ) != document ) {
9818		setDocument( elem );
9819	}
9820
9821	var fn = Expr.attrHandle[ name.toLowerCase() ],
9822
9823		// Don't get fooled by Object.prototype properties (jQuery #13807)
9824		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
9825			fn( elem, name, !documentIsHTML ) :
9826			undefined;
9827
9828	return val !== undefined ?
9829		val :
9830		support.attributes || !documentIsHTML ?
9831			elem.getAttribute( name ) :
9832			( val = elem.getAttributeNode( name ) ) && val.specified ?
9833				val.value :
9834				null;
9835};
9836
9837Sizzle.escape = function( sel ) {
9838	return ( sel + "" ).replace( rcssescape, fcssescape );
9839};
9840
9841Sizzle.error = function( msg ) {
9842	throw new Error( "Syntax error, unrecognized expression: " + msg );
9843};
9844
9845/**
9846 * Document sorting and removing duplicates
9847 * @param {ArrayLike} results
9848 */
9849Sizzle.uniqueSort = function( results ) {
9850	var elem,
9851		duplicates = [],
9852		j = 0,
9853		i = 0;
9854
9855	// Unless we *know* we can detect duplicates, assume their presence
9856	hasDuplicate = !support.detectDuplicates;
9857	sortInput = !support.sortStable && results.slice( 0 );
9858	results.sort( sortOrder );
9859
9860	if ( hasDuplicate ) {
9861		while ( ( elem = results[ i++ ] ) ) {
9862			if ( elem === results[ i ] ) {
9863				j = duplicates.push( i );
9864			}
9865		}
9866		while ( j-- ) {
9867			results.splice( duplicates[ j ], 1 );
9868		}
9869	}
9870
9871	// Clear input after sorting to release objects
9872	// See https://github.com/jquery/sizzle/pull/225
9873	sortInput = null;
9874
9875	return results;
9876};
9877
9878/**
9879 * Utility function for retrieving the text value of an array of DOM nodes
9880 * @param {Array|Element} elem
9881 */
9882getText = Sizzle.getText = function( elem ) {
9883	var node,
9884		ret = "",
9885		i = 0,
9886		nodeType = elem.nodeType;
9887
9888	if ( !nodeType ) {
9889
9890		// If no nodeType, this is expected to be an array
9891		while ( ( node = elem[ i++ ] ) ) {
9892
9893			// Do not traverse comment nodes
9894			ret += getText( node );
9895		}
9896	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
9897
9898		// Use textContent for elements
9899		// innerText usage removed for consistency of new lines (jQuery #11153)
9900		if ( typeof elem.textContent === "string" ) {
9901			return elem.textContent;
9902		} else {
9903
9904			// Traverse its children
9905			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
9906				ret += getText( elem );
9907			}
9908		}
9909	} else if ( nodeType === 3 || nodeType === 4 ) {
9910		return elem.nodeValue;
9911	}
9912
9913	// Do not include comment or processing instruction nodes
9914
9915	return ret;
9916};
9917
9918Expr = Sizzle.selectors = {
9919
9920	// Can be adjusted by the user
9921	cacheLength: 50,
9922
9923	createPseudo: markFunction,
9924
9925	match: matchExpr,
9926
9927	attrHandle: {},
9928
9929	find: {},
9930
9931	relative: {
9932		">": { dir: "parentNode", first: true },
9933		" ": { dir: "parentNode" },
9934		"+": { dir: "previousSibling", first: true },
9935		"~": { dir: "previousSibling" }
9936	},
9937
9938	preFilter: {
9939		"ATTR": function( match ) {
9940			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
9941
9942			// Move the given value to match[3] whether quoted or unquoted
9943			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
9944				match[ 5 ] || "" ).replace( runescape, funescape );
9945
9946			if ( match[ 2 ] === "~=" ) {
9947				match[ 3 ] = " " + match[ 3 ] + " ";
9948			}
9949
9950			return match.slice( 0, 4 );
9951		},
9952
9953		"CHILD": function( match ) {
9954
9955			/* matches from matchExpr["CHILD"]
9956				1 type (only|nth|...)
9957				2 what (child|of-type)
9958				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
9959				4 xn-component of xn+y argument ([+-]?\d*n|)
9960				5 sign of xn-component
9961				6 x of xn-component
9962				7 sign of y-component
9963				8 y of y-component
9964			*/
9965			match[ 1 ] = match[ 1 ].toLowerCase();
9966
9967			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
9968
9969				// nth-* requires argument
9970				if ( !match[ 3 ] ) {
9971					Sizzle.error( match[ 0 ] );
9972				}
9973
9974				// numeric x and y parameters for Expr.filter.CHILD
9975				// remember that false/true cast respectively to 0/1
9976				match[ 4 ] = +( match[ 4 ] ?
9977					match[ 5 ] + ( match[ 6 ] || 1 ) :
9978					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
9979				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
9980
9981				// other types prohibit arguments
9982			} else if ( match[ 3 ] ) {
9983				Sizzle.error( match[ 0 ] );
9984			}
9985
9986			return match;
9987		},
9988
9989		"PSEUDO": function( match ) {
9990			var excess,
9991				unquoted = !match[ 6 ] && match[ 2 ];
9992
9993			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
9994				return null;
9995			}
9996
9997			// Accept quoted arguments as-is
9998			if ( match[ 3 ] ) {
9999				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
10000
10001			// Strip excess characters from unquoted arguments
10002			} else if ( unquoted && rpseudo.test( unquoted ) &&
10003
10004				// Get excess from tokenize (recursively)
10005				( excess = tokenize( unquoted, true ) ) &&
10006
10007				// advance to the next closing parenthesis
10008				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
10009
10010				// excess is a negative index
10011				match[ 0 ] = match[ 0 ].slice( 0, excess );
10012				match[ 2 ] = unquoted.slice( 0, excess );
10013			}
10014
10015			// Return only captures needed by the pseudo filter method (type and argument)
10016			return match.slice( 0, 3 );
10017		}
10018	},
10019
10020	filter: {
10021
10022		"TAG": function( nodeNameSelector ) {
10023			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
10024			return nodeNameSelector === "*" ?
10025				function() {
10026					return true;
10027				} :
10028				function( elem ) {
10029					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
10030				};
10031		},
10032
10033		"CLASS": function( className ) {
10034			var pattern = classCache[ className + " " ];
10035
10036			return pattern ||
10037				( pattern = new RegExp( "(^|" + whitespace +
10038					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
10039						className, function( elem ) {
10040							return pattern.test(
10041								typeof elem.className === "string" && elem.className ||
10042								typeof elem.getAttribute !== "undefined" &&
10043									elem.getAttribute( "class" ) ||
10044								""
10045							);
10046				} );
10047		},
10048
10049		"ATTR": function( name, operator, check ) {
10050			return function( elem ) {
10051				var result = Sizzle.attr( elem, name );
10052
10053				if ( result == null ) {
10054					return operator === "!=";
10055				}
10056				if ( !operator ) {
10057					return true;
10058				}
10059
10060				result += "";
10061
10062				/* eslint-disable max-len */
10063
10064				return operator === "=" ? result === check :
10065					operator === "!=" ? result !== check :
10066					operator === "^=" ? check && result.indexOf( check ) === 0 :
10067					operator === "*=" ? check && result.indexOf( check ) > -1 :
10068					operator === "$=" ? check && result.slice( -check.length ) === check :
10069					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
10070					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
10071					false;
10072				/* eslint-enable max-len */
10073
10074			};
10075		},
10076
10077		"CHILD": function( type, what, _argument, first, last ) {
10078			var simple = type.slice( 0, 3 ) !== "nth",
10079				forward = type.slice( -4 ) !== "last",
10080				ofType = what === "of-type";
10081
10082			return first === 1 && last === 0 ?
10083
10084				// Shortcut for :nth-*(n)
10085				function( elem ) {
10086					return !!elem.parentNode;
10087				} :
10088
10089				function( elem, _context, xml ) {
10090					var cache, uniqueCache, outerCache, node, nodeIndex, start,
10091						dir = simple !== forward ? "nextSibling" : "previousSibling",
10092						parent = elem.parentNode,
10093						name = ofType && elem.nodeName.toLowerCase(),
10094						useCache = !xml && !ofType,
10095						diff = false;
10096
10097					if ( parent ) {
10098
10099						// :(first|last|only)-(child|of-type)
10100						if ( simple ) {
10101							while ( dir ) {
10102								node = elem;
10103								while ( ( node = node[ dir ] ) ) {
10104									if ( ofType ?
10105										node.nodeName.toLowerCase() === name :
10106										node.nodeType === 1 ) {
10107
10108										return false;
10109									}
10110								}
10111
10112								// Reverse direction for :only-* (if we haven't yet done so)
10113								start = dir = type === "only" && !start && "nextSibling";
10114							}
10115							return true;
10116						}
10117
10118						start = [ forward ? parent.firstChild : parent.lastChild ];
10119
10120						// non-xml :nth-child(...) stores cache data on `parent`
10121						if ( forward && useCache ) {
10122
10123							// Seek `elem` from a previously-cached index
10124
10125							// ...in a gzip-friendly way
10126							node = parent;
10127							outerCache = node[ expando ] || ( node[ expando ] = {} );
10128
10129							// Support: IE <9 only
10130							// Defend against cloned attroperties (jQuery gh-1709)
10131							uniqueCache = outerCache[ node.uniqueID ] ||
10132								( outerCache[ node.uniqueID ] = {} );
10133
10134							cache = uniqueCache[ type ] || [];
10135							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
10136							diff = nodeIndex && cache[ 2 ];
10137							node = nodeIndex && parent.childNodes[ nodeIndex ];
10138
10139							while ( ( node = ++nodeIndex && node && node[ dir ] ||
10140
10141								// Fallback to seeking `elem` from the start
10142								( diff = nodeIndex = 0 ) || start.pop() ) ) {
10143
10144								// When found, cache indexes on `parent` and break
10145								if ( node.nodeType === 1 && ++diff && node === elem ) {
10146									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
10147									break;
10148								}
10149							}
10150
10151						} else {
10152
10153							// Use previously-cached element index if available
10154							if ( useCache ) {
10155
10156								// ...in a gzip-friendly way
10157								node = elem;
10158								outerCache = node[ expando ] || ( node[ expando ] = {} );
10159
10160								// Support: IE <9 only
10161								// Defend against cloned attroperties (jQuery gh-1709)
10162								uniqueCache = outerCache[ node.uniqueID ] ||
10163									( outerCache[ node.uniqueID ] = {} );
10164
10165								cache = uniqueCache[ type ] || [];
10166								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
10167								diff = nodeIndex;
10168							}
10169
10170							// xml :nth-child(...)
10171							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
10172							if ( diff === false ) {
10173
10174								// Use the same loop as above to seek `elem` from the start
10175								while ( ( node = ++nodeIndex && node && node[ dir ] ||
10176									( diff = nodeIndex = 0 ) || start.pop() ) ) {
10177
10178									if ( ( ofType ?
10179										node.nodeName.toLowerCase() === name :
10180										node.nodeType === 1 ) &&
10181										++diff ) {
10182
10183										// Cache the index of each encountered element
10184										if ( useCache ) {
10185											outerCache = node[ expando ] ||
10186												( node[ expando ] = {} );
10187
10188											// Support: IE <9 only
10189											// Defend against cloned attroperties (jQuery gh-1709)
10190											uniqueCache = outerCache[ node.uniqueID ] ||
10191												( outerCache[ node.uniqueID ] = {} );
10192
10193											uniqueCache[ type ] = [ dirruns, diff ];
10194										}
10195
10196										if ( node === elem ) {
10197											break;
10198										}
10199									}
10200								}
10201							}
10202						}
10203
10204						// Incorporate the offset, then check against cycle size
10205						diff -= last;
10206						return diff === first || ( diff % first === 0 && diff / first >= 0 );
10207					}
10208				};
10209		},
10210
10211		"PSEUDO": function( pseudo, argument ) {
10212
10213			// pseudo-class names are case-insensitive
10214			// http://www.w3.org/TR/selectors/#pseudo-classes
10215			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
10216			// Remember that setFilters inherits from pseudos
10217			var args,
10218				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
10219					Sizzle.error( "unsupported pseudo: " + pseudo );
10220
10221			// The user may use createPseudo to indicate that
10222			// arguments are needed to create the filter function
10223			// just as Sizzle does
10224			if ( fn[ expando ] ) {
10225				return fn( argument );
10226			}
10227
10228			// But maintain support for old signatures
10229			if ( fn.length > 1 ) {
10230				args = [ pseudo, pseudo, "", argument ];
10231				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
10232					markFunction( function( seed, matches ) {
10233						var idx,
10234							matched = fn( seed, argument ),
10235							i = matched.length;
10236						while ( i-- ) {
10237							idx = indexOf( seed, matched[ i ] );
10238							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
10239						}
10240					} ) :
10241					function( elem ) {
10242						return fn( elem, 0, args );
10243					};
10244			}
10245
10246			return fn;
10247		}
10248	},
10249
10250	pseudos: {
10251
10252		// Potentially complex pseudos
10253		"not": markFunction( function( selector ) {
10254
10255			// Trim the selector passed to compile
10256			// to avoid treating leading and trailing
10257			// spaces as combinators
10258			var input = [],
10259				results = [],
10260				matcher = compile( selector.replace( rtrim, "$1" ) );
10261
10262			return matcher[ expando ] ?
10263				markFunction( function( seed, matches, _context, xml ) {
10264					var elem,
10265						unmatched = matcher( seed, null, xml, [] ),
10266						i = seed.length;
10267
10268					// Match elements unmatched by `matcher`
10269					while ( i-- ) {
10270						if ( ( elem = unmatched[ i ] ) ) {
10271							seed[ i ] = !( matches[ i ] = elem );
10272						}
10273					}
10274				} ) :
10275				function( elem, _context, xml ) {
10276					input[ 0 ] = elem;
10277					matcher( input, null, xml, results );
10278
10279					// Don't keep the element (issue #299)
10280					input[ 0 ] = null;
10281					return !results.pop();
10282				};
10283		} ),
10284
10285		"has": markFunction( function( selector ) {
10286			return function( elem ) {
10287				return Sizzle( selector, elem ).length > 0;
10288			};
10289		} ),
10290
10291		"contains": markFunction( function( text ) {
10292			text = text.replace( runescape, funescape );
10293			return function( elem ) {
10294				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
10295			};
10296		} ),
10297
10298		// "Whether an element is represented by a :lang() selector
10299		// is based solely on the element's language value
10300		// being equal to the identifier C,
10301		// or beginning with the identifier C immediately followed by "-".
10302		// The matching of C against the element's language value is performed case-insensitively.
10303		// The identifier C does not have to be a valid language name."
10304		// http://www.w3.org/TR/selectors/#lang-pseudo
10305		"lang": markFunction( function( lang ) {
10306
10307			// lang value must be a valid identifier
10308			if ( !ridentifier.test( lang || "" ) ) {
10309				Sizzle.error( "unsupported lang: " + lang );
10310			}
10311			lang = lang.replace( runescape, funescape ).toLowerCase();
10312			return function( elem ) {
10313				var elemLang;
10314				do {
10315					if ( ( elemLang = documentIsHTML ?
10316						elem.lang :
10317						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
10318
10319						elemLang = elemLang.toLowerCase();
10320						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
10321					}
10322				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
10323				return false;
10324			};
10325		} ),
10326
10327		// Miscellaneous
10328		"target": function( elem ) {
10329			var hash = window.location && window.location.hash;
10330			return hash && hash.slice( 1 ) === elem.id;
10331		},
10332
10333		"root": function( elem ) {
10334			return elem === docElem;
10335		},
10336
10337		"focus": function( elem ) {
10338			return elem === document.activeElement &&
10339				( !document.hasFocus || document.hasFocus() ) &&
10340				!!( elem.type || elem.href || ~elem.tabIndex );
10341		},
10342
10343		// Boolean properties
10344		"enabled": createDisabledPseudo( false ),
10345		"disabled": createDisabledPseudo( true ),
10346
10347		"checked": function( elem ) {
10348
10349			// In CSS3, :checked should return both checked and selected elements
10350			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
10351			var nodeName = elem.nodeName.toLowerCase();
10352			return ( nodeName === "input" && !!elem.checked ) ||
10353				( nodeName === "option" && !!elem.selected );
10354		},
10355
10356		"selected": function( elem ) {
10357
10358			// Accessing this property makes selected-by-default
10359			// options in Safari work properly
10360			if ( elem.parentNode ) {
10361				// eslint-disable-next-line no-unused-expressions
10362				elem.parentNode.selectedIndex;
10363			}
10364
10365			return elem.selected === true;
10366		},
10367
10368		// Contents
10369		"empty": function( elem ) {
10370
10371			// http://www.w3.org/TR/selectors/#empty-pseudo
10372			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
10373			//   but not by others (comment: 8; processing instruction: 7; etc.)
10374			// nodeType < 6 works because attributes (2) do not appear as children
10375			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
10376				if ( elem.nodeType < 6 ) {
10377					return false;
10378				}
10379			}
10380			return true;
10381		},
10382
10383		"parent": function( elem ) {
10384			return !Expr.pseudos[ "empty" ]( elem );
10385		},
10386
10387		// Element/input types
10388		"header": function( elem ) {
10389			return rheader.test( elem.nodeName );
10390		},
10391
10392		"input": function( elem ) {
10393			return rinputs.test( elem.nodeName );
10394		},
10395
10396		"button": function( elem ) {
10397			var name = elem.nodeName.toLowerCase();
10398			return name === "input" && elem.type === "button" || name === "button";
10399		},
10400
10401		"text": function( elem ) {
10402			var attr;
10403			return elem.nodeName.toLowerCase() === "input" &&
10404				elem.type === "text" &&
10405
10406				// Support: IE<8
10407				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
10408				( ( attr = elem.getAttribute( "type" ) ) == null ||
10409					attr.toLowerCase() === "text" );
10410		},
10411
10412		// Position-in-collection
10413		"first": createPositionalPseudo( function() {
10414			return [ 0 ];
10415		} ),
10416
10417		"last": createPositionalPseudo( function( _matchIndexes, length ) {
10418			return [ length - 1 ];
10419		} ),
10420
10421		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
10422			return [ argument < 0 ? argument + length : argument ];
10423		} ),
10424
10425		"even": createPositionalPseudo( function( matchIndexes, length ) {
10426			var i = 0;
10427			for ( ; i < length; i += 2 ) {
10428				matchIndexes.push( i );
10429			}
10430			return matchIndexes;
10431		} ),
10432
10433		"odd": createPositionalPseudo( function( matchIndexes, length ) {
10434			var i = 1;
10435			for ( ; i < length; i += 2 ) {
10436				matchIndexes.push( i );
10437			}
10438			return matchIndexes;
10439		} ),
10440
10441		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
10442			var i = argument < 0 ?
10443				argument + length :
10444				argument > length ?
10445					length :
10446					argument;
10447			for ( ; --i >= 0; ) {
10448				matchIndexes.push( i );
10449			}
10450			return matchIndexes;
10451		} ),
10452
10453		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
10454			var i = argument < 0 ? argument + length : argument;
10455			for ( ; ++i < length; ) {
10456				matchIndexes.push( i );
10457			}
10458			return matchIndexes;
10459		} )
10460	}
10461};
10462
10463Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
10464
10465// Add button/input type pseudos
10466for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
10467	Expr.pseudos[ i ] = createInputPseudo( i );
10468}
10469for ( i in { submit: true, reset: true } ) {
10470	Expr.pseudos[ i ] = createButtonPseudo( i );
10471}
10472
10473// Easy API for creating new setFilters
10474function setFilters() {}
10475setFilters.prototype = Expr.filters = Expr.pseudos;
10476Expr.setFilters = new setFilters();
10477
10478tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
10479	var matched, match, tokens, type,
10480		soFar, groups, preFilters,
10481		cached = tokenCache[ selector + " " ];
10482
10483	if ( cached ) {
10484		return parseOnly ? 0 : cached.slice( 0 );
10485	}
10486
10487	soFar = selector;
10488	groups = [];
10489	preFilters = Expr.preFilter;
10490
10491	while ( soFar ) {
10492
10493		// Comma and first run
10494		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
10495			if ( match ) {
10496
10497				// Don't consume trailing commas as valid
10498				soFar = soFar.slice( match[ 0 ].length ) || soFar;
10499			}
10500			groups.push( ( tokens = [] ) );
10501		}
10502
10503		matched = false;
10504
10505		// Combinators
10506		if ( ( match = rcombinators.exec( soFar ) ) ) {
10507			matched = match.shift();
10508			tokens.push( {
10509				value: matched,
10510
10511				// Cast descendant combinators to space
10512				type: match[ 0 ].replace( rtrim, " " )
10513			} );
10514			soFar = soFar.slice( matched.length );
10515		}
10516
10517		// Filters
10518		for ( type in Expr.filter ) {
10519			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
10520				( match = preFilters[ type ]( match ) ) ) ) {
10521				matched = match.shift();
10522				tokens.push( {
10523					value: matched,
10524					type: type,
10525					matches: match
10526				} );
10527				soFar = soFar.slice( matched.length );
10528			}
10529		}
10530
10531		if ( !matched ) {
10532			break;
10533		}
10534	}
10535
10536	// Return the length of the invalid excess
10537	// if we're just parsing
10538	// Otherwise, throw an error or return tokens
10539	return parseOnly ?
10540		soFar.length :
10541		soFar ?
10542			Sizzle.error( selector ) :
10543
10544			// Cache the tokens
10545			tokenCache( selector, groups ).slice( 0 );
10546};
10547
10548function toSelector( tokens ) {
10549	var i = 0,
10550		len = tokens.length,
10551		selector = "";
10552	for ( ; i < len; i++ ) {
10553		selector += tokens[ i ].value;
10554	}
10555	return selector;
10556}
10557
10558function addCombinator( matcher, combinator, base ) {
10559	var dir = combinator.dir,
10560		skip = combinator.next,
10561		key = skip || dir,
10562		checkNonElements = base && key === "parentNode",
10563		doneName = done++;
10564
10565	return combinator.first ?
10566
10567		// Check against closest ancestor/preceding element
10568		function( elem, context, xml ) {
10569			while ( ( elem = elem[ dir ] ) ) {
10570				if ( elem.nodeType === 1 || checkNonElements ) {
10571					return matcher( elem, context, xml );
10572				}
10573			}
10574			return false;
10575		} :
10576
10577		// Check against all ancestor/preceding elements
10578		function( elem, context, xml ) {
10579			var oldCache, uniqueCache, outerCache,
10580				newCache = [ dirruns, doneName ];
10581
10582			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
10583			if ( xml ) {
10584				while ( ( elem = elem[ dir ] ) ) {
10585					if ( elem.nodeType === 1 || checkNonElements ) {
10586						if ( matcher( elem, context, xml ) ) {
10587							return true;
10588						}
10589					}
10590				}
10591			} else {
10592				while ( ( elem = elem[ dir ] ) ) {
10593					if ( elem.nodeType === 1 || checkNonElements ) {
10594						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
10595
10596						// Support: IE <9 only
10597						// Defend against cloned attroperties (jQuery gh-1709)
10598						uniqueCache = outerCache[ elem.uniqueID ] ||
10599							( outerCache[ elem.uniqueID ] = {} );
10600
10601						if ( skip && skip === elem.nodeName.toLowerCase() ) {
10602							elem = elem[ dir ] || elem;
10603						} else if ( ( oldCache = uniqueCache[ key ] ) &&
10604							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
10605
10606							// Assign to newCache so results back-propagate to previous elements
10607							return ( newCache[ 2 ] = oldCache[ 2 ] );
10608						} else {
10609
10610							// Reuse newcache so results back-propagate to previous elements
10611							uniqueCache[ key ] = newCache;
10612
10613							// A match means we're done; a fail means we have to keep checking
10614							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
10615								return true;
10616							}
10617						}
10618					}
10619				}
10620			}
10621			return false;
10622		};
10623}
10624
10625function elementMatcher( matchers ) {
10626	return matchers.length > 1 ?
10627		function( elem, context, xml ) {
10628			var i = matchers.length;
10629			while ( i-- ) {
10630				if ( !matchers[ i ]( elem, context, xml ) ) {
10631					return false;
10632				}
10633			}
10634			return true;
10635		} :
10636		matchers[ 0 ];
10637}
10638
10639function multipleContexts( selector, contexts, results ) {
10640	var i = 0,
10641		len = contexts.length;
10642	for ( ; i < len; i++ ) {
10643		Sizzle( selector, contexts[ i ], results );
10644	}
10645	return results;
10646}
10647
10648function condense( unmatched, map, filter, context, xml ) {
10649	var elem,
10650		newUnmatched = [],
10651		i = 0,
10652		len = unmatched.length,
10653		mapped = map != null;
10654
10655	for ( ; i < len; i++ ) {
10656		if ( ( elem = unmatched[ i ] ) ) {
10657			if ( !filter || filter( elem, context, xml ) ) {
10658				newUnmatched.push( elem );
10659				if ( mapped ) {
10660					map.push( i );
10661				}
10662			}
10663		}
10664	}
10665
10666	return newUnmatched;
10667}
10668
10669function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
10670	if ( postFilter && !postFilter[ expando ] ) {
10671		postFilter = setMatcher( postFilter );
10672	}
10673	if ( postFinder && !postFinder[ expando ] ) {
10674		postFinder = setMatcher( postFinder, postSelector );
10675	}
10676	return markFunction( function( seed, results, context, xml ) {
10677		var temp, i, elem,
10678			preMap = [],
10679			postMap = [],
10680			preexisting = results.length,
10681
10682			// Get initial elements from seed or context
10683			elems = seed || multipleContexts(
10684				selector || "*",
10685				context.nodeType ? [ context ] : context,
10686				[]
10687			),
10688
10689			// Prefilter to get matcher input, preserving a map for seed-results synchronization
10690			matcherIn = preFilter && ( seed || !selector ) ?
10691				condense( elems, preMap, preFilter, context, xml ) :
10692				elems,
10693
10694			matcherOut = matcher ?
10695
10696				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
10697				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
10698
10699					// ...intermediate processing is necessary
10700					[] :
10701
10702					// ...otherwise use results directly
10703					results :
10704				matcherIn;
10705
10706		// Find primary matches
10707		if ( matcher ) {
10708			matcher( matcherIn, matcherOut, context, xml );
10709		}
10710
10711		// Apply postFilter
10712		if ( postFilter ) {
10713			temp = condense( matcherOut, postMap );
10714			postFilter( temp, [], context, xml );
10715
10716			// Un-match failing elements by moving them back to matcherIn
10717			i = temp.length;
10718			while ( i-- ) {
10719				if ( ( elem = temp[ i ] ) ) {
10720					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
10721				}
10722			}
10723		}
10724
10725		if ( seed ) {
10726			if ( postFinder || preFilter ) {
10727				if ( postFinder ) {
10728
10729					// Get the final matcherOut by condensing this intermediate into postFinder contexts
10730					temp = [];
10731					i = matcherOut.length;
10732					while ( i-- ) {
10733						if ( ( elem = matcherOut[ i ] ) ) {
10734
10735							// Restore matcherIn since elem is not yet a final match
10736							temp.push( ( matcherIn[ i ] = elem ) );
10737						}
10738					}
10739					postFinder( null, ( matcherOut = [] ), temp, xml );
10740				}
10741
10742				// Move matched elements from seed to results to keep them synchronized
10743				i = matcherOut.length;
10744				while ( i-- ) {
10745					if ( ( elem = matcherOut[ i ] ) &&
10746						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
10747
10748						seed[ temp ] = !( results[ temp ] = elem );
10749					}
10750				}
10751			}
10752
10753		// Add elements to results, through postFinder if defined
10754		} else {
10755			matcherOut = condense(
10756				matcherOut === results ?
10757					matcherOut.splice( preexisting, matcherOut.length ) :
10758					matcherOut
10759			);
10760			if ( postFinder ) {
10761				postFinder( null, results, matcherOut, xml );
10762			} else {
10763				push.apply( results, matcherOut );
10764			}
10765		}
10766	} );
10767}
10768
10769function matcherFromTokens( tokens ) {
10770	var checkContext, matcher, j,
10771		len = tokens.length,
10772		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
10773		implicitRelative = leadingRelative || Expr.relative[ " " ],
10774		i = leadingRelative ? 1 : 0,
10775
10776		// The foundational matcher ensures that elements are reachable from top-level context(s)
10777		matchContext = addCombinator( function( elem ) {
10778			return elem === checkContext;
10779		}, implicitRelative, true ),
10780		matchAnyContext = addCombinator( function( elem ) {
10781			return indexOf( checkContext, elem ) > -1;
10782		}, implicitRelative, true ),
10783		matchers = [ function( elem, context, xml ) {
10784			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
10785				( checkContext = context ).nodeType ?
10786					matchContext( elem, context, xml ) :
10787					matchAnyContext( elem, context, xml ) );
10788
10789			// Avoid hanging onto element (issue #299)
10790			checkContext = null;
10791			return ret;
10792		} ];
10793
10794	for ( ; i < len; i++ ) {
10795		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
10796			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
10797		} else {
10798			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
10799
10800			// Return special upon seeing a positional matcher
10801			if ( matcher[ expando ] ) {
10802
10803				// Find the next relative operator (if any) for proper handling
10804				j = ++i;
10805				for ( ; j < len; j++ ) {
10806					if ( Expr.relative[ tokens[ j ].type ] ) {
10807						break;
10808					}
10809				}
10810				return setMatcher(
10811					i > 1 && elementMatcher( matchers ),
10812					i > 1 && toSelector(
10813
10814					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
10815					tokens
10816						.slice( 0, i - 1 )
10817						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
10818					).replace( rtrim, "$1" ),
10819					matcher,
10820					i < j && matcherFromTokens( tokens.slice( i, j ) ),
10821					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
10822					j < len && toSelector( tokens )
10823				);
10824			}
10825			matchers.push( matcher );
10826		}
10827	}
10828
10829	return elementMatcher( matchers );
10830}
10831
10832function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
10833	var bySet = setMatchers.length > 0,
10834		byElement = elementMatchers.length > 0,
10835		superMatcher = function( seed, context, xml, results, outermost ) {
10836			var elem, j, matcher,
10837				matchedCount = 0,
10838				i = "0",
10839				unmatched = seed && [],
10840				setMatched = [],
10841				contextBackup = outermostContext,
10842
10843				// We must always have either seed elements or outermost context
10844				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
10845
10846				// Use integer dirruns iff this is the outermost matcher
10847				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
10848				len = elems.length;
10849
10850			if ( outermost ) {
10851
10852				// Support: IE 11+, Edge 17 - 18+
10853				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
10854				// two documents; shallow comparisons work.
10855				// eslint-disable-next-line eqeqeq
10856				outermostContext = context == document || context || outermost;
10857			}
10858
10859			// Add elements passing elementMatchers directly to results
10860			// Support: IE<9, Safari
10861			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
10862			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
10863				if ( byElement && elem ) {
10864					j = 0;
10865
10866					// Support: IE 11+, Edge 17 - 18+
10867					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
10868					// two documents; shallow comparisons work.
10869					// eslint-disable-next-line eqeqeq
10870					if ( !context && elem.ownerDocument != document ) {
10871						setDocument( elem );
10872						xml = !documentIsHTML;
10873					}
10874					while ( ( matcher = elementMatchers[ j++ ] ) ) {
10875						if ( matcher( elem, context || document, xml ) ) {
10876							results.push( elem );
10877							break;
10878						}
10879					}
10880					if ( outermost ) {
10881						dirruns = dirrunsUnique;
10882					}
10883				}
10884
10885				// Track unmatched elements for set filters
10886				if ( bySet ) {
10887
10888					// They will have gone through all possible matchers
10889					if ( ( elem = !matcher && elem ) ) {
10890						matchedCount--;
10891					}
10892
10893					// Lengthen the array for every element, matched or not
10894					if ( seed ) {
10895						unmatched.push( elem );
10896					}
10897				}
10898			}
10899
10900			// `i` is now the count of elements visited above, and adding it to `matchedCount`
10901			// makes the latter nonnegative.
10902			matchedCount += i;
10903
10904			// Apply set filters to unmatched elements
10905			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
10906			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
10907			// no element matchers and no seed.
10908			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
10909			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
10910			// numerically zero.
10911			if ( bySet && i !== matchedCount ) {
10912				j = 0;
10913				while ( ( matcher = setMatchers[ j++ ] ) ) {
10914					matcher( unmatched, setMatched, context, xml );
10915				}
10916
10917				if ( seed ) {
10918
10919					// Reintegrate element matches to eliminate the need for sorting
10920					if ( matchedCount > 0 ) {
10921						while ( i-- ) {
10922							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
10923								setMatched[ i ] = pop.call( results );
10924							}
10925						}
10926					}
10927
10928					// Discard index placeholder values to get only actual matches
10929					setMatched = condense( setMatched );
10930				}
10931
10932				// Add matches to results
10933				push.apply( results, setMatched );
10934
10935				// Seedless set matches succeeding multiple successful matchers stipulate sorting
10936				if ( outermost && !seed && setMatched.length > 0 &&
10937					( matchedCount + setMatchers.length ) > 1 ) {
10938
10939					Sizzle.uniqueSort( results );
10940				}
10941			}
10942
10943			// Override manipulation of globals by nested matchers
10944			if ( outermost ) {
10945				dirruns = dirrunsUnique;
10946				outermostContext = contextBackup;
10947			}
10948
10949			return unmatched;
10950		};
10951
10952	return bySet ?
10953		markFunction( superMatcher ) :
10954		superMatcher;
10955}
10956
10957compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
10958	var i,
10959		setMatchers = [],
10960		elementMatchers = [],
10961		cached = compilerCache[ selector + " " ];
10962
10963	if ( !cached ) {
10964
10965		// Generate a function of recursive functions that can be used to check each element
10966		if ( !match ) {
10967			match = tokenize( selector );
10968		}
10969		i = match.length;
10970		while ( i-- ) {
10971			cached = matcherFromTokens( match[ i ] );
10972			if ( cached[ expando ] ) {
10973				setMatchers.push( cached );
10974			} else {
10975				elementMatchers.push( cached );
10976			}
10977		}
10978
10979		// Cache the compiled function
10980		cached = compilerCache(
10981			selector,
10982			matcherFromGroupMatchers( elementMatchers, setMatchers )
10983		);
10984
10985		// Save selector and tokenization
10986		cached.selector = selector;
10987	}
10988	return cached;
10989};
10990
10991/**
10992 * A low-level selection function that works with Sizzle's compiled
10993 *  selector functions
10994 * @param {String|Function} selector A selector or a pre-compiled
10995 *  selector function built with Sizzle.compile
10996 * @param {Element} context
10997 * @param {Array} [results]
10998 * @param {Array} [seed] A set of elements to match against
10999 */
11000select = Sizzle.select = function( selector, context, results, seed ) {
11001	var i, tokens, token, type, find,
11002		compiled = typeof selector === "function" && selector,
11003		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
11004
11005	results = results || [];
11006
11007	// Try to minimize operations if there is only one selector in the list and no seed
11008	// (the latter of which guarantees us context)
11009	if ( match.length === 1 ) {
11010
11011		// Reduce context if the leading compound selector is an ID
11012		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
11013		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
11014			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
11015
11016			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
11017				.replace( runescape, funescape ), context ) || [] )[ 0 ];
11018			if ( !context ) {
11019				return results;
11020
11021			// Precompiled matchers will still verify ancestry, so step up a level
11022			} else if ( compiled ) {
11023				context = context.parentNode;
11024			}
11025
11026			selector = selector.slice( tokens.shift().value.length );
11027		}
11028
11029		// Fetch a seed set for right-to-left matching
11030		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
11031		while ( i-- ) {
11032			token = tokens[ i ];
11033
11034			// Abort if we hit a combinator
11035			if ( Expr.relative[ ( type = token.type ) ] ) {
11036				break;
11037			}
11038			if ( ( find = Expr.find[ type ] ) ) {
11039
11040				// Search, expanding context for leading sibling combinators
11041				if ( ( seed = find(
11042					token.matches[ 0 ].replace( runescape, funescape ),
11043					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
11044						context
11045				) ) ) {
11046
11047					// If seed is empty or no tokens remain, we can return early
11048					tokens.splice( i, 1 );
11049					selector = seed.length && toSelector( tokens );
11050					if ( !selector ) {
11051						push.apply( results, seed );
11052						return results;
11053					}
11054
11055					break;
11056				}
11057			}
11058		}
11059	}
11060
11061	// Compile and execute a filtering function if one is not provided
11062	// Provide `match` to avoid retokenization if we modified the selector above
11063	( compiled || compile( selector, match ) )(
11064		seed,
11065		context,
11066		!documentIsHTML,
11067		results,
11068		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
11069	);
11070	return results;
11071};
11072
11073// One-time assignments
11074
11075// Sort stability
11076support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
11077
11078// Support: Chrome 14-35+
11079// Always assume duplicates if they aren't passed to the comparison function
11080support.detectDuplicates = !!hasDuplicate;
11081
11082// Initialize against the default document
11083setDocument();
11084
11085// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
11086// Detached nodes confoundingly follow *each other*
11087support.sortDetached = assert( function( el ) {
11088
11089	// Should return 1, but returns 4 (following)
11090	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
11091} );
11092
11093// Support: IE<8
11094// Prevent attribute/property "interpolation"
11095// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
11096if ( !assert( function( el ) {
11097	el.innerHTML = "<a href='#'></a>";
11098	return el.firstChild.getAttribute( "href" ) === "#";
11099} ) ) {
11100	addHandle( "type|href|height|width", function( elem, name, isXML ) {
11101		if ( !isXML ) {
11102			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
11103		}
11104	} );
11105}
11106
11107// Support: IE<9
11108// Use defaultValue in place of getAttribute("value")
11109if ( !support.attributes || !assert( function( el ) {
11110	el.innerHTML = "<input/>";
11111	el.firstChild.setAttribute( "value", "" );
11112	return el.firstChild.getAttribute( "value" ) === "";
11113} ) ) {
11114	addHandle( "value", function( elem, _name, isXML ) {
11115		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
11116			return elem.defaultValue;
11117		}
11118	} );
11119}
11120
11121// Support: IE<9
11122// Use getAttributeNode to fetch booleans when getAttribute lies
11123if ( !assert( function( el ) {
11124	return el.getAttribute( "disabled" ) == null;
11125} ) ) {
11126	addHandle( booleans, function( elem, name, isXML ) {
11127		var val;
11128		if ( !isXML ) {
11129			return elem[ name ] === true ? name.toLowerCase() :
11130				( val = elem.getAttributeNode( name ) ) && val.specified ?
11131					val.value :
11132					null;
11133		}
11134	} );
11135}
11136
11137return Sizzle;
11138
11139} )( window );
11140
11141
11142
11143jQuery.find = Sizzle;
11144jQuery.expr = Sizzle.selectors;
11145
11146// Deprecated
11147jQuery.expr[ ":" ] = jQuery.expr.pseudos;
11148jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
11149jQuery.text = Sizzle.getText;
11150jQuery.isXMLDoc = Sizzle.isXML;
11151jQuery.contains = Sizzle.contains;
11152jQuery.escapeSelector = Sizzle.escape;
11153
11154
11155
11156
11157var dir = function( elem, dir, until ) {
11158	var matched = [],
11159		truncate = until !== undefined;
11160
11161	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
11162		if ( elem.nodeType === 1 ) {
11163			if ( truncate && jQuery( elem ).is( until ) ) {
11164				break;
11165			}
11166			matched.push( elem );
11167		}
11168	}
11169	return matched;
11170};
11171
11172
11173var siblings = function( n, elem ) {
11174	var matched = [];
11175
11176	for ( ; n; n = n.nextSibling ) {
11177		if ( n.nodeType === 1 && n !== elem ) {
11178			matched.push( n );
11179		}
11180	}
11181
11182	return matched;
11183};
11184
11185
11186var rneedsContext = jQuery.expr.match.needsContext;
11187
11188
11189
11190function nodeName( elem, name ) {
11191
11192	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
11193
11194}
11195var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
11196
11197
11198
11199// Implement the identical functionality for filter and not
11200function winnow( elements, qualifier, not ) {
11201	if ( isFunction( qualifier ) ) {
11202		return jQuery.grep( elements, function( elem, i ) {
11203			return !!qualifier.call( elem, i, elem ) !== not;
11204		} );
11205	}
11206
11207	// Single element
11208	if ( qualifier.nodeType ) {
11209		return jQuery.grep( elements, function( elem ) {
11210			return ( elem === qualifier ) !== not;
11211		} );
11212	}
11213
11214	// Arraylike of elements (jQuery, arguments, Array)
11215	if ( typeof qualifier !== "string" ) {
11216		return jQuery.grep( elements, function( elem ) {
11217			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
11218		} );
11219	}
11220
11221	// Filtered directly for both simple and complex selectors
11222	return jQuery.filter( qualifier, elements, not );
11223}
11224
11225jQuery.filter = function( expr, elems, not ) {
11226	var elem = elems[ 0 ];
11227
11228	if ( not ) {
11229		expr = ":not(" + expr + ")";
11230	}
11231
11232	if ( elems.length === 1 && elem.nodeType === 1 ) {
11233		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
11234	}
11235
11236	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
11237		return elem.nodeType === 1;
11238	} ) );
11239};
11240
11241jQuery.fn.extend( {
11242	find: function( selector ) {
11243		var i, ret,
11244			len = this.length,
11245			self = this;
11246
11247		if ( typeof selector !== "string" ) {
11248			return this.pushStack( jQuery( selector ).filter( function() {
11249				for ( i = 0; i < len; i++ ) {
11250					if ( jQuery.contains( self[ i ], this ) ) {
11251						return true;
11252					}
11253				}
11254			} ) );
11255		}
11256
11257		ret = this.pushStack( [] );
11258
11259		for ( i = 0; i < len; i++ ) {
11260			jQuery.find( selector, self[ i ], ret );
11261		}
11262
11263		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
11264	},
11265	filter: function( selector ) {
11266		return this.pushStack( winnow( this, selector || [], false ) );
11267	},
11268	not: function( selector ) {
11269		return this.pushStack( winnow( this, selector || [], true ) );
11270	},
11271	is: function( selector ) {
11272		return !!winnow(
11273			this,
11274
11275			// If this is a positional/relative selector, check membership in the returned set
11276			// so $("p:first").is("p:last") won't return true for a doc with two "p".
11277			typeof selector === "string" && rneedsContext.test( selector ) ?
11278				jQuery( selector ) :
11279				selector || [],
11280			false
11281		).length;
11282	}
11283} );
11284
11285
11286// Initialize a jQuery object
11287
11288
11289// A central reference to the root jQuery(document)
11290var rootjQuery,
11291
11292	// A simple way to check for HTML strings
11293	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
11294	// Strict HTML recognition (#11290: must start with <)
11295	// Shortcut simple #id case for speed
11296	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
11297
11298	init = jQuery.fn.init = function( selector, context, root ) {
11299		var match, elem;
11300
11301		// HANDLE: $(""), $(null), $(undefined), $(false)
11302		if ( !selector ) {
11303			return this;
11304		}
11305
11306		// Method init() accepts an alternate rootjQuery
11307		// so migrate can support jQuery.sub (gh-2101)
11308		root = root || rootjQuery;
11309
11310		// Handle HTML strings
11311		if ( typeof selector === "string" ) {
11312			if ( selector[ 0 ] === "<" &&
11313				selector[ selector.length - 1 ] === ">" &&
11314				selector.length >= 3 ) {
11315
11316				// Assume that strings that start and end with <> are HTML and skip the regex check
11317				match = [ null, selector, null ];
11318
11319			} else {
11320				match = rquickExpr.exec( selector );
11321			}
11322
11323			// Match html or make sure no context is specified for #id
11324			if ( match && ( match[ 1 ] || !context ) ) {
11325
11326				// HANDLE: $(html) -> $(array)
11327				if ( match[ 1 ] ) {
11328					context = context instanceof jQuery ? context[ 0 ] : context;
11329
11330					// Option to run scripts is true for back-compat
11331					// Intentionally let the error be thrown if parseHTML is not present
11332					jQuery.merge( this, jQuery.parseHTML(
11333						match[ 1 ],
11334						context && context.nodeType ? context.ownerDocument || context : document,
11335						true
11336					) );
11337
11338					// HANDLE: $(html, props)
11339					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
11340						for ( match in context ) {
11341
11342							// Properties of context are called as methods if possible
11343							if ( isFunction( this[ match ] ) ) {
11344								this[ match ]( context[ match ] );
11345
11346							// ...and otherwise set as attributes
11347							} else {
11348								this.attr( match, context[ match ] );
11349							}
11350						}
11351					}
11352
11353					return this;
11354
11355				// HANDLE: $(#id)
11356				} else {
11357					elem = document.getElementById( match[ 2 ] );
11358
11359					if ( elem ) {
11360
11361						// Inject the element directly into the jQuery object
11362						this[ 0 ] = elem;
11363						this.length = 1;
11364					}
11365					return this;
11366				}
11367
11368			// HANDLE: $(expr, $(...))
11369			} else if ( !context || context.jquery ) {
11370				return ( context || root ).find( selector );
11371
11372			// HANDLE: $(expr, context)
11373			// (which is just equivalent to: $(context).find(expr)
11374			} else {
11375				return this.constructor( context ).find( selector );
11376			}
11377
11378		// HANDLE: $(DOMElement)
11379		} else if ( selector.nodeType ) {
11380			this[ 0 ] = selector;
11381			this.length = 1;
11382			return this;
11383
11384		// HANDLE: $(function)
11385		// Shortcut for document ready
11386		} else if ( isFunction( selector ) ) {
11387			return root.ready !== undefined ?
11388				root.ready( selector ) :
11389
11390				// Execute immediately if ready is not present
11391				selector( jQuery );
11392		}
11393
11394		return jQuery.makeArray( selector, this );
11395	};
11396
11397// Give the init function the jQuery prototype for later instantiation
11398init.prototype = jQuery.fn;
11399
11400// Initialize central reference
11401rootjQuery = jQuery( document );
11402
11403
11404var rparentsprev = /^(?:parents|prev(?:Until|All))/,
11405
11406	// Methods guaranteed to produce a unique set when starting from a unique set
11407	guaranteedUnique = {
11408		children: true,
11409		contents: true,
11410		next: true,
11411		prev: true
11412	};
11413
11414jQuery.fn.extend( {
11415	has: function( target ) {
11416		var targets = jQuery( target, this ),
11417			l = targets.length;
11418
11419		return this.filter( function() {
11420			var i = 0;
11421			for ( ; i < l; i++ ) {
11422				if ( jQuery.contains( this, targets[ i ] ) ) {
11423					return true;
11424				}
11425			}
11426		} );
11427	},
11428
11429	closest: function( selectors, context ) {
11430		var cur,
11431			i = 0,
11432			l = this.length,
11433			matched = [],
11434			targets = typeof selectors !== "string" && jQuery( selectors );
11435
11436		// Positional selectors never match, since there's no _selection_ context
11437		if ( !rneedsContext.test( selectors ) ) {
11438			for ( ; i < l; i++ ) {
11439				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
11440
11441					// Always skip document fragments
11442					if ( cur.nodeType < 11 && ( targets ?
11443						targets.index( cur ) > -1 :
11444
11445						// Don't pass non-elements to Sizzle
11446						cur.nodeType === 1 &&
11447							jQuery.find.matchesSelector( cur, selectors ) ) ) {
11448
11449						matched.push( cur );
11450						break;
11451					}
11452				}
11453			}
11454		}
11455
11456		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
11457	},
11458
11459	// Determine the position of an element within the set
11460	index: function( elem ) {
11461
11462		// No argument, return index in parent
11463		if ( !elem ) {
11464			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
11465		}
11466
11467		// Index in selector
11468		if ( typeof elem === "string" ) {
11469			return indexOf.call( jQuery( elem ), this[ 0 ] );
11470		}
11471
11472		// Locate the position of the desired element
11473		return indexOf.call( this,
11474
11475			// If it receives a jQuery object, the first element is used
11476			elem.jquery ? elem[ 0 ] : elem
11477		);
11478	},
11479
11480	add: function( selector, context ) {
11481		return this.pushStack(
11482			jQuery.uniqueSort(
11483				jQuery.merge( this.get(), jQuery( selector, context ) )
11484			)
11485		);
11486	},
11487
11488	addBack: function( selector ) {
11489		return this.add( selector == null ?
11490			this.prevObject : this.prevObject.filter( selector )
11491		);
11492	}
11493} );
11494
11495function sibling( cur, dir ) {
11496	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
11497	return cur;
11498}
11499
11500jQuery.each( {
11501	parent: function( elem ) {
11502		var parent = elem.parentNode;
11503		return parent && parent.nodeType !== 11 ? parent : null;
11504	},
11505	parents: function( elem ) {
11506		return dir( elem, "parentNode" );
11507	},
11508	parentsUntil: function( elem, _i, until ) {
11509		return dir( elem, "parentNode", until );
11510	},
11511	next: function( elem ) {
11512		return sibling( elem, "nextSibling" );
11513	},
11514	prev: function( elem ) {
11515		return sibling( elem, "previousSibling" );
11516	},
11517	nextAll: function( elem ) {
11518		return dir( elem, "nextSibling" );
11519	},
11520	prevAll: function( elem ) {
11521		return dir( elem, "previousSibling" );
11522	},
11523	nextUntil: function( elem, _i, until ) {
11524		return dir( elem, "nextSibling", until );
11525	},
11526	prevUntil: function( elem, _i, until ) {
11527		return dir( elem, "previousSibling", until );
11528	},
11529	siblings: function( elem ) {
11530		return siblings( ( elem.parentNode || {} ).firstChild, elem );
11531	},
11532	children: function( elem ) {
11533		return siblings( elem.firstChild );
11534	},
11535	contents: function( elem ) {
11536		if ( elem.contentDocument != null &&
11537
11538			// Support: IE 11+
11539			// <object> elements with no `data` attribute has an object
11540			// `contentDocument` with a `null` prototype.
11541			getProto( elem.contentDocument ) ) {
11542
11543			return elem.contentDocument;
11544		}
11545
11546		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
11547		// Treat the template element as a regular one in browsers that
11548		// don't support it.
11549		if ( nodeName( elem, "template" ) ) {
11550			elem = elem.content || elem;
11551		}
11552
11553		return jQuery.merge( [], elem.childNodes );
11554	}
11555}, function( name, fn ) {
11556	jQuery.fn[ name ] = function( until, selector ) {
11557		var matched = jQuery.map( this, fn, until );
11558
11559		if ( name.slice( -5 ) !== "Until" ) {
11560			selector = until;
11561		}
11562
11563		if ( selector && typeof selector === "string" ) {
11564			matched = jQuery.filter( selector, matched );
11565		}
11566
11567		if ( this.length > 1 ) {
11568
11569			// Remove duplicates
11570			if ( !guaranteedUnique[ name ] ) {
11571				jQuery.uniqueSort( matched );
11572			}
11573
11574			// Reverse order for parents* and prev-derivatives
11575			if ( rparentsprev.test( name ) ) {
11576				matched.reverse();
11577			}
11578		}
11579
11580		return this.pushStack( matched );
11581	};
11582} );
11583var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
11584
11585
11586
11587// Convert String-formatted options into Object-formatted ones
11588function createOptions( options ) {
11589	var object = {};
11590	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
11591		object[ flag ] = true;
11592	} );
11593	return object;
11594}
11595
11596/*
11597 * Create a callback list using the following parameters:
11598 *
11599 *	options: an optional list of space-separated options that will change how
11600 *			the callback list behaves or a more traditional option object
11601 *
11602 * By default a callback list will act like an event callback list and can be
11603 * "fired" multiple times.
11604 *
11605 * Possible options:
11606 *
11607 *	once:			will ensure the callback list can only be fired once (like a Deferred)
11608 *
11609 *	memory:			will keep track of previous values and will call any callback added
11610 *					after the list has been fired right away with the latest "memorized"
11611 *					values (like a Deferred)
11612 *
11613 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
11614 *
11615 *	stopOnFalse:	interrupt callings when a callback returns false
11616 *
11617 */
11618jQuery.Callbacks = function( options ) {
11619
11620	// Convert options from String-formatted to Object-formatted if needed
11621	// (we check in cache first)
11622	options = typeof options === "string" ?
11623		createOptions( options ) :
11624		jQuery.extend( {}, options );
11625
11626	var // Flag to know if list is currently firing
11627		firing,
11628
11629		// Last fire value for non-forgettable lists
11630		memory,
11631
11632		// Flag to know if list was already fired
11633		fired,
11634
11635		// Flag to prevent firing
11636		locked,
11637
11638		// Actual callback list
11639		list = [],
11640
11641		// Queue of execution data for repeatable lists
11642		queue = [],
11643
11644		// Index of currently firing callback (modified by add/remove as needed)
11645		firingIndex = -1,
11646
11647		// Fire callbacks
11648		fire = function() {
11649
11650			// Enforce single-firing
11651			locked = locked || options.once;
11652
11653			// Execute callbacks for all pending executions,
11654			// respecting firingIndex overrides and runtime changes
11655			fired = firing = true;
11656			for ( ; queue.length; firingIndex = -1 ) {
11657				memory = queue.shift();
11658				while ( ++firingIndex < list.length ) {
11659
11660					// Run callback and check for early termination
11661					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
11662						options.stopOnFalse ) {
11663
11664						// Jump to end and forget the data so .add doesn't re-fire
11665						firingIndex = list.length;
11666						memory = false;
11667					}
11668				}
11669			}
11670
11671			// Forget the data if we're done with it
11672			if ( !options.memory ) {
11673				memory = false;
11674			}
11675
11676			firing = false;
11677
11678			// Clean up if we're done firing for good
11679			if ( locked ) {
11680
11681				// Keep an empty list if we have data for future add calls
11682				if ( memory ) {
11683					list = [];
11684
11685				// Otherwise, this object is spent
11686				} else {
11687					list = "";
11688				}
11689			}
11690		},
11691
11692		// Actual Callbacks object
11693		self = {
11694
11695			// Add a callback or a collection of callbacks to the list
11696			add: function() {
11697				if ( list ) {
11698
11699					// If we have memory from a past run, we should fire after adding
11700					if ( memory && !firing ) {
11701						firingIndex = list.length - 1;
11702						queue.push( memory );
11703					}
11704
11705					( function add( args ) {
11706						jQuery.each( args, function( _, arg ) {
11707							if ( isFunction( arg ) ) {
11708								if ( !options.unique || !self.has( arg ) ) {
11709									list.push( arg );
11710								}
11711							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
11712
11713								// Inspect recursively
11714								add( arg );
11715							}
11716						} );
11717					} )( arguments );
11718
11719					if ( memory && !firing ) {
11720						fire();
11721					}
11722				}
11723				return this;
11724			},
11725
11726			// Remove a callback from the list
11727			remove: function() {
11728				jQuery.each( arguments, function( _, arg ) {
11729					var index;
11730					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
11731						list.splice( index, 1 );
11732
11733						// Handle firing indexes
11734						if ( index <= firingIndex ) {
11735							firingIndex--;
11736						}
11737					}
11738				} );
11739				return this;
11740			},
11741
11742			// Check if a given callback is in the list.
11743			// If no argument is given, return whether or not list has callbacks attached.
11744			has: function( fn ) {
11745				return fn ?
11746					jQuery.inArray( fn, list ) > -1 :
11747					list.length > 0;
11748			},
11749
11750			// Remove all callbacks from the list
11751			empty: function() {
11752				if ( list ) {
11753					list = [];
11754				}
11755				return this;
11756			},
11757
11758			// Disable .fire and .add
11759			// Abort any current/pending executions
11760			// Clear all callbacks and values
11761			disable: function() {
11762				locked = queue = [];
11763				list = memory = "";
11764				return this;
11765			},
11766			disabled: function() {
11767				return !list;
11768			},
11769
11770			// Disable .fire
11771			// Also disable .add unless we have memory (since it would have no effect)
11772			// Abort any pending executions
11773			lock: function() {
11774				locked = queue = [];
11775				if ( !memory && !firing ) {
11776					list = memory = "";
11777				}
11778				return this;
11779			},
11780			locked: function() {
11781				return !!locked;
11782			},
11783
11784			// Call all callbacks with the given context and arguments
11785			fireWith: function( context, args ) {
11786				if ( !locked ) {
11787					args = args || [];
11788					args = [ context, args.slice ? args.slice() : args ];
11789					queue.push( args );
11790					if ( !firing ) {
11791						fire();
11792					}
11793				}
11794				return this;
11795			},
11796
11797			// Call all the callbacks with the given arguments
11798			fire: function() {
11799				self.fireWith( this, arguments );
11800				return this;
11801			},
11802
11803			// To know if the callbacks have already been called at least once
11804			fired: function() {
11805				return !!fired;
11806			}
11807		};
11808
11809	return self;
11810};
11811
11812
11813function Identity( v ) {
11814	return v;
11815}
11816function Thrower( ex ) {
11817	throw ex;
11818}
11819
11820function adoptValue( value, resolve, reject, noValue ) {
11821	var method;
11822
11823	try {
11824
11825		// Check for promise aspect first to privilege synchronous behavior
11826		if ( value && isFunction( ( method = value.promise ) ) ) {
11827			method.call( value ).done( resolve ).fail( reject );
11828
11829		// Other thenables
11830		} else if ( value && isFunction( ( method = value.then ) ) ) {
11831			method.call( value, resolve, reject );
11832
11833		// Other non-thenables
11834		} else {
11835
11836			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
11837			// * false: [ value ].slice( 0 ) => resolve( value )
11838			// * true: [ value ].slice( 1 ) => resolve()
11839			resolve.apply( undefined, [ value ].slice( noValue ) );
11840		}
11841
11842	// For Promises/A+, convert exceptions into rejections
11843	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
11844	// Deferred#then to conditionally suppress rejection.
11845	} catch ( value ) {
11846
11847		// Support: Android 4.0 only
11848		// Strict mode functions invoked without .call/.apply get global-object context
11849		reject.apply( undefined, [ value ] );
11850	}
11851}
11852
11853jQuery.extend( {
11854
11855	Deferred: function( func ) {
11856		var tuples = [
11857
11858				// action, add listener, callbacks,
11859				// ... .then handlers, argument index, [final state]
11860				[ "notify", "progress", jQuery.Callbacks( "memory" ),
11861					jQuery.Callbacks( "memory" ), 2 ],
11862				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
11863					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
11864				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
11865					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
11866			],
11867			state = "pending",
11868			promise = {
11869				state: function() {
11870					return state;
11871				},
11872				always: function() {
11873					deferred.done( arguments ).fail( arguments );
11874					return this;
11875				},
11876				"catch": function( fn ) {
11877					return promise.then( null, fn );
11878				},
11879
11880				// Keep pipe for back-compat
11881				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
11882					var fns = arguments;
11883
11884					return jQuery.Deferred( function( newDefer ) {
11885						jQuery.each( tuples, function( _i, tuple ) {
11886
11887							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
11888							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
11889
11890							// deferred.progress(function() { bind to newDefer or newDefer.notify })
11891							// deferred.done(function() { bind to newDefer or newDefer.resolve })
11892							// deferred.fail(function() { bind to newDefer or newDefer.reject })
11893							deferred[ tuple[ 1 ] ]( function() {
11894								var returned = fn && fn.apply( this, arguments );
11895								if ( returned && isFunction( returned.promise ) ) {
11896									returned.promise()
11897										.progress( newDefer.notify )
11898										.done( newDefer.resolve )
11899										.fail( newDefer.reject );
11900								} else {
11901									newDefer[ tuple[ 0 ] + "With" ](
11902										this,
11903										fn ? [ returned ] : arguments
11904									);
11905								}
11906							} );
11907						} );
11908						fns = null;
11909					} ).promise();
11910				},
11911				then: function( onFulfilled, onRejected, onProgress ) {
11912					var maxDepth = 0;
11913					function resolve( depth, deferred, handler, special ) {
11914						return function() {
11915							var that = this,
11916								args = arguments,
11917								mightThrow = function() {
11918									var returned, then;
11919
11920									// Support: Promises/A+ section 2.3.3.3.3
11921									// https://promisesaplus.com/#point-59
11922									// Ignore double-resolution attempts
11923									if ( depth < maxDepth ) {
11924										return;
11925									}
11926
11927									returned = handler.apply( that, args );
11928
11929									// Support: Promises/A+ section 2.3.1
11930									// https://promisesaplus.com/#point-48
11931									if ( returned === deferred.promise() ) {
11932										throw new TypeError( "Thenable self-resolution" );
11933									}
11934
11935									// Support: Promises/A+ sections 2.3.3.1, 3.5
11936									// https://promisesaplus.com/#point-54
11937									// https://promisesaplus.com/#point-75
11938									// Retrieve `then` only once
11939									then = returned &&
11940
11941										// Support: Promises/A+ section 2.3.4
11942										// https://promisesaplus.com/#point-64
11943										// Only check objects and functions for thenability
11944										( typeof returned === "object" ||
11945											typeof returned === "function" ) &&
11946										returned.then;
11947
11948									// Handle a returned thenable
11949									if ( isFunction( then ) ) {
11950
11951										// Special processors (notify) just wait for resolution
11952										if ( special ) {
11953											then.call(
11954												returned,
11955												resolve( maxDepth, deferred, Identity, special ),
11956												resolve( maxDepth, deferred, Thrower, special )
11957											);
11958
11959										// Normal processors (resolve) also hook into progress
11960										} else {
11961
11962											// ...and disregard older resolution values
11963											maxDepth++;
11964
11965											then.call(
11966												returned,
11967												resolve( maxDepth, deferred, Identity, special ),
11968												resolve( maxDepth, deferred, Thrower, special ),
11969												resolve( maxDepth, deferred, Identity,
11970													deferred.notifyWith )
11971											);
11972										}
11973
11974									// Handle all other returned values
11975									} else {
11976
11977										// Only substitute handlers pass on context
11978										// and multiple values (non-spec behavior)
11979										if ( handler !== Identity ) {
11980											that = undefined;
11981											args = [ returned ];
11982										}
11983
11984										// Process the value(s)
11985										// Default process is resolve
11986										( special || deferred.resolveWith )( that, args );
11987									}
11988								},
11989
11990								// Only normal processors (resolve) catch and reject exceptions
11991								process = special ?
11992									mightThrow :
11993									function() {
11994										try {
11995											mightThrow();
11996										} catch ( e ) {
11997
11998											if ( jQuery.Deferred.exceptionHook ) {
11999												jQuery.Deferred.exceptionHook( e,
12000													process.stackTrace );
12001											}
12002
12003											// Support: Promises/A+ section 2.3.3.3.4.1
12004											// https://promisesaplus.com/#point-61
12005											// Ignore post-resolution exceptions
12006											if ( depth + 1 >= maxDepth ) {
12007
12008												// Only substitute handlers pass on context
12009												// and multiple values (non-spec behavior)
12010												if ( handler !== Thrower ) {
12011													that = undefined;
12012													args = [ e ];
12013												}
12014
12015												deferred.rejectWith( that, args );
12016											}
12017										}
12018									};
12019
12020							// Support: Promises/A+ section 2.3.3.3.1
12021							// https://promisesaplus.com/#point-57
12022							// Re-resolve promises immediately to dodge false rejection from
12023							// subsequent errors
12024							if ( depth ) {
12025								process();
12026							} else {
12027
12028								// Call an optional hook to record the stack, in case of exception
12029								// since it's otherwise lost when execution goes async
12030								if ( jQuery.Deferred.getStackHook ) {
12031									process.stackTrace = jQuery.Deferred.getStackHook();
12032								}
12033								window.setTimeout( process );
12034							}
12035						};
12036					}
12037
12038					return jQuery.Deferred( function( newDefer ) {
12039
12040						// progress_handlers.add( ... )
12041						tuples[ 0 ][ 3 ].add(
12042							resolve(
12043								0,
12044								newDefer,
12045								isFunction( onProgress ) ?
12046									onProgress :
12047									Identity,
12048								newDefer.notifyWith
12049							)
12050						);
12051
12052						// fulfilled_handlers.add( ... )
12053						tuples[ 1 ][ 3 ].add(
12054							resolve(
12055								0,
12056								newDefer,
12057								isFunction( onFulfilled ) ?
12058									onFulfilled :
12059									Identity
12060							)
12061						);
12062
12063						// rejected_handlers.add( ... )
12064						tuples[ 2 ][ 3 ].add(
12065							resolve(
12066								0,
12067								newDefer,
12068								isFunction( onRejected ) ?
12069									onRejected :
12070									Thrower
12071							)
12072						);
12073					} ).promise();
12074				},
12075
12076				// Get a promise for this deferred
12077				// If obj is provided, the promise aspect is added to the object
12078				promise: function( obj ) {
12079					return obj != null ? jQuery.extend( obj, promise ) : promise;
12080				}
12081			},
12082			deferred = {};
12083
12084		// Add list-specific methods
12085		jQuery.each( tuples, function( i, tuple ) {
12086			var list = tuple[ 2 ],
12087				stateString = tuple[ 5 ];
12088
12089			// promise.progress = list.add
12090			// promise.done = list.add
12091			// promise.fail = list.add
12092			promise[ tuple[ 1 ] ] = list.add;
12093
12094			// Handle state
12095			if ( stateString ) {
12096				list.add(
12097					function() {
12098
12099						// state = "resolved" (i.e., fulfilled)
12100						// state = "rejected"
12101						state = stateString;
12102					},
12103
12104					// rejected_callbacks.disable
12105					// fulfilled_callbacks.disable
12106					tuples[ 3 - i ][ 2 ].disable,
12107
12108					// rejected_handlers.disable
12109					// fulfilled_handlers.disable
12110					tuples[ 3 - i ][ 3 ].disable,
12111
12112					// progress_callbacks.lock
12113					tuples[ 0 ][ 2 ].lock,
12114
12115					// progress_handlers.lock
12116					tuples[ 0 ][ 3 ].lock
12117				);
12118			}
12119
12120			// progress_handlers.fire
12121			// fulfilled_handlers.fire
12122			// rejected_handlers.fire
12123			list.add( tuple[ 3 ].fire );
12124
12125			// deferred.notify = function() { deferred.notifyWith(...) }
12126			// deferred.resolve = function() { deferred.resolveWith(...) }
12127			// deferred.reject = function() { deferred.rejectWith(...) }
12128			deferred[ tuple[ 0 ] ] = function() {
12129				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
12130				return this;
12131			};
12132
12133			// deferred.notifyWith = list.fireWith
12134			// deferred.resolveWith = list.fireWith
12135			// deferred.rejectWith = list.fireWith
12136			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
12137		} );
12138
12139		// Make the deferred a promise
12140		promise.promise( deferred );
12141
12142		// Call given func if any
12143		if ( func ) {
12144			func.call( deferred, deferred );
12145		}
12146
12147		// All done!
12148		return deferred;
12149	},
12150
12151	// Deferred helper
12152	when: function( singleValue ) {
12153		var
12154
12155			// count of uncompleted subordinates
12156			remaining = arguments.length,
12157
12158			// count of unprocessed arguments
12159			i = remaining,
12160
12161			// subordinate fulfillment data
12162			resolveContexts = Array( i ),
12163			resolveValues = slice.call( arguments ),
12164
12165			// the primary Deferred
12166			primary = jQuery.Deferred(),
12167
12168			// subordinate callback factory
12169			updateFunc = function( i ) {
12170				return function( value ) {
12171					resolveContexts[ i ] = this;
12172					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
12173					if ( !( --remaining ) ) {
12174						primary.resolveWith( resolveContexts, resolveValues );
12175					}
12176				};
12177			};
12178
12179		// Single- and empty arguments are adopted like Promise.resolve
12180		if ( remaining <= 1 ) {
12181			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
12182				!remaining );
12183
12184			// Use .then() to unwrap secondary thenables (cf. gh-3000)
12185			if ( primary.state() === "pending" ||
12186				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
12187
12188				return primary.then();
12189			}
12190		}
12191
12192		// Multiple arguments are aggregated like Promise.all array elements
12193		while ( i-- ) {
12194			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
12195		}
12196
12197		return primary.promise();
12198	}
12199} );
12200
12201
12202// These usually indicate a programmer mistake during development,
12203// warn about them ASAP rather than swallowing them by default.
12204var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
12205
12206jQuery.Deferred.exceptionHook = function( error, stack ) {
12207
12208	// Support: IE 8 - 9 only
12209	// Console exists when dev tools are open, which can happen at any time
12210	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
12211		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
12212	}
12213};
12214
12215
12216
12217
12218jQuery.readyException = function( error ) {
12219	window.setTimeout( function() {
12220		throw error;
12221	} );
12222};
12223
12224
12225
12226
12227// The deferred used on DOM ready
12228var readyList = jQuery.Deferred();
12229
12230jQuery.fn.ready = function( fn ) {
12231
12232	readyList
12233		.then( fn )
12234
12235		// Wrap jQuery.readyException in a function so that the lookup
12236		// happens at the time of error handling instead of callback
12237		// registration.
12238		.catch( function( error ) {
12239			jQuery.readyException( error );
12240		} );
12241
12242	return this;
12243};
12244
12245jQuery.extend( {
12246
12247	// Is the DOM ready to be used? Set to true once it occurs.
12248	isReady: false,
12249
12250	// A counter to track how many items to wait for before
12251	// the ready event fires. See #6781
12252	readyWait: 1,
12253
12254	// Handle when the DOM is ready
12255	ready: function( wait ) {
12256
12257		// Abort if there are pending holds or we're already ready
12258		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
12259			return;
12260		}
12261
12262		// Remember that the DOM is ready
12263		jQuery.isReady = true;
12264
12265		// If a normal DOM Ready event fired, decrement, and wait if need be
12266		if ( wait !== true && --jQuery.readyWait > 0 ) {
12267			return;
12268		}
12269
12270		// If there are functions bound, to execute
12271		readyList.resolveWith( document, [ jQuery ] );
12272	}
12273} );
12274
12275jQuery.ready.then = readyList.then;
12276
12277// The ready event handler and self cleanup method
12278function completed() {
12279	document.removeEventListener( "DOMContentLoaded", completed );
12280	window.removeEventListener( "load", completed );
12281	jQuery.ready();
12282}
12283
12284// Catch cases where $(document).ready() is called
12285// after the browser event has already occurred.
12286// Support: IE <=9 - 10 only
12287// Older IE sometimes signals "interactive" too soon
12288if ( document.readyState === "complete" ||
12289	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
12290
12291	// Handle it asynchronously to allow scripts the opportunity to delay ready
12292	window.setTimeout( jQuery.ready );
12293
12294} else {
12295
12296	// Use the handy event callback
12297	document.addEventListener( "DOMContentLoaded", completed );
12298
12299	// A fallback to window.onload, that will always work
12300	window.addEventListener( "load", completed );
12301}
12302
12303
12304
12305
12306// Multifunctional method to get and set values of a collection
12307// The value/s can optionally be executed if it's a function
12308var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
12309	var i = 0,
12310		len = elems.length,
12311		bulk = key == null;
12312
12313	// Sets many values
12314	if ( toType( key ) === "object" ) {
12315		chainable = true;
12316		for ( i in key ) {
12317			access( elems, fn, i, key[ i ], true, emptyGet, raw );
12318		}
12319
12320	// Sets one value
12321	} else if ( value !== undefined ) {
12322		chainable = true;
12323
12324		if ( !isFunction( value ) ) {
12325			raw = true;
12326		}
12327
12328		if ( bulk ) {
12329
12330			// Bulk operations run against the entire set
12331			if ( raw ) {
12332				fn.call( elems, value );
12333				fn = null;
12334
12335			// ...except when executing function values
12336			} else {
12337				bulk = fn;
12338				fn = function( elem, _key, value ) {
12339					return bulk.call( jQuery( elem ), value );
12340				};
12341			}
12342		}
12343
12344		if ( fn ) {
12345			for ( ; i < len; i++ ) {
12346				fn(
12347					elems[ i ], key, raw ?
12348						value :
12349						value.call( elems[ i ], i, fn( elems[ i ], key ) )
12350				);
12351			}
12352		}
12353	}
12354
12355	if ( chainable ) {
12356		return elems;
12357	}
12358
12359	// Gets
12360	if ( bulk ) {
12361		return fn.call( elems );
12362	}
12363
12364	return len ? fn( elems[ 0 ], key ) : emptyGet;
12365};
12366
12367
12368// Matches dashed string for camelizing
12369var rmsPrefix = /^-ms-/,
12370	rdashAlpha = /-([a-z])/g;
12371
12372// Used by camelCase as callback to replace()
12373function fcamelCase( _all, letter ) {
12374	return letter.toUpperCase();
12375}
12376
12377// Convert dashed to camelCase; used by the css and data modules
12378// Support: IE <=9 - 11, Edge 12 - 15
12379// Microsoft forgot to hump their vendor prefix (#9572)
12380function camelCase( string ) {
12381	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
12382}
12383var acceptData = function( owner ) {
12384
12385	// Accepts only:
12386	//  - Node
12387	//    - Node.ELEMENT_NODE
12388	//    - Node.DOCUMENT_NODE
12389	//  - Object
12390	//    - Any
12391	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
12392};
12393
12394
12395
12396
12397function Data() {
12398	this.expando = jQuery.expando + Data.uid++;
12399}
12400
12401Data.uid = 1;
12402
12403Data.prototype = {
12404
12405	cache: function( owner ) {
12406
12407		// Check if the owner object already has a cache
12408		var value = owner[ this.expando ];
12409
12410		// If not, create one
12411		if ( !value ) {
12412			value = {};
12413
12414			// We can accept data for non-element nodes in modern browsers,
12415			// but we should not, see #8335.
12416			// Always return an empty object.
12417			if ( acceptData( owner ) ) {
12418
12419				// If it is a node unlikely to be stringify-ed or looped over
12420				// use plain assignment
12421				if ( owner.nodeType ) {
12422					owner[ this.expando ] = value;
12423
12424				// Otherwise secure it in a non-enumerable property
12425				// configurable must be true to allow the property to be
12426				// deleted when data is removed
12427				} else {
12428					Object.defineProperty( owner, this.expando, {
12429						value: value,
12430						configurable: true
12431					} );
12432				}
12433			}
12434		}
12435
12436		return value;
12437	},
12438	set: function( owner, data, value ) {
12439		var prop,
12440			cache = this.cache( owner );
12441
12442		// Handle: [ owner, key, value ] args
12443		// Always use camelCase key (gh-2257)
12444		if ( typeof data === "string" ) {
12445			cache[ camelCase( data ) ] = value;
12446
12447		// Handle: [ owner, { properties } ] args
12448		} else {
12449
12450			// Copy the properties one-by-one to the cache object
12451			for ( prop in data ) {
12452				cache[ camelCase( prop ) ] = data[ prop ];
12453			}
12454		}
12455		return cache;
12456	},
12457	get: function( owner, key ) {
12458		return key === undefined ?
12459			this.cache( owner ) :
12460
12461			// Always use camelCase key (gh-2257)
12462			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
12463	},
12464	access: function( owner, key, value ) {
12465
12466		// In cases where either:
12467		//
12468		//   1. No key was specified
12469		//   2. A string key was specified, but no value provided
12470		//
12471		// Take the "read" path and allow the get method to determine
12472		// which value to return, respectively either:
12473		//
12474		//   1. The entire cache object
12475		//   2. The data stored at the key
12476		//
12477		if ( key === undefined ||
12478				( ( key && typeof key === "string" ) && value === undefined ) ) {
12479
12480			return this.get( owner, key );
12481		}
12482
12483		// When the key is not a string, or both a key and value
12484		// are specified, set or extend (existing objects) with either:
12485		//
12486		//   1. An object of properties
12487		//   2. A key and value
12488		//
12489		this.set( owner, key, value );
12490
12491		// Since the "set" path can have two possible entry points
12492		// return the expected data based on which path was taken[*]
12493		return value !== undefined ? value : key;
12494	},
12495	remove: function( owner, key ) {
12496		var i,
12497			cache = owner[ this.expando ];
12498
12499		if ( cache === undefined ) {
12500			return;
12501		}
12502
12503		if ( key !== undefined ) {
12504
12505			// Support array or space separated string of keys
12506			if ( Array.isArray( key ) ) {
12507
12508				// If key is an array of keys...
12509				// We always set camelCase keys, so remove that.
12510				key = key.map( camelCase );
12511			} else {
12512				key = camelCase( key );
12513
12514				// If a key with the spaces exists, use it.
12515				// Otherwise, create an array by matching non-whitespace
12516				key = key in cache ?
12517					[ key ] :
12518					( key.match( rnothtmlwhite ) || [] );
12519			}
12520
12521			i = key.length;
12522
12523			while ( i-- ) {
12524				delete cache[ key[ i ] ];
12525			}
12526		}
12527
12528		// Remove the expando if there's no more data
12529		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
12530
12531			// Support: Chrome <=35 - 45
12532			// Webkit & Blink performance suffers when deleting properties
12533			// from DOM nodes, so set to undefined instead
12534			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
12535			if ( owner.nodeType ) {
12536				owner[ this.expando ] = undefined;
12537			} else {
12538				delete owner[ this.expando ];
12539			}
12540		}
12541	},
12542	hasData: function( owner ) {
12543		var cache = owner[ this.expando ];
12544		return cache !== undefined && !jQuery.isEmptyObject( cache );
12545	}
12546};
12547var dataPriv = new Data();
12548
12549var dataUser = new Data();
12550
12551
12552
12553//	Implementation Summary
12554//
12555//	1. Enforce API surface and semantic compatibility with 1.9.x branch
12556//	2. Improve the module's maintainability by reducing the storage
12557//		paths to a single mechanism.
12558//	3. Use the same single mechanism to support "private" and "user" data.
12559//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
12560//	5. Avoid exposing implementation details on user objects (eg. expando properties)
12561//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
12562
12563var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
12564	rmultiDash = /[A-Z]/g;
12565
12566function getData( data ) {
12567	if ( data === "true" ) {
12568		return true;
12569	}
12570
12571	if ( data === "false" ) {
12572		return false;
12573	}
12574
12575	if ( data === "null" ) {
12576		return null;
12577	}
12578
12579	// Only convert to a number if it doesn't change the string
12580	if ( data === +data + "" ) {
12581		return +data;
12582	}
12583
12584	if ( rbrace.test( data ) ) {
12585		return JSON.parse( data );
12586	}
12587
12588	return data;
12589}
12590
12591function dataAttr( elem, key, data ) {
12592	var name;
12593
12594	// If nothing was found internally, try to fetch any
12595	// data from the HTML5 data-* attribute
12596	if ( data === undefined && elem.nodeType === 1 ) {
12597		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
12598		data = elem.getAttribute( name );
12599
12600		if ( typeof data === "string" ) {
12601			try {
12602				data = getData( data );
12603			} catch ( e ) {}
12604
12605			// Make sure we set the data so it isn't changed later
12606			dataUser.set( elem, key, data );
12607		} else {
12608			data = undefined;
12609		}
12610	}
12611	return data;
12612}
12613
12614jQuery.extend( {
12615	hasData: function( elem ) {
12616		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
12617	},
12618
12619	data: function( elem, name, data ) {
12620		return dataUser.access( elem, name, data );
12621	},
12622
12623	removeData: function( elem, name ) {
12624		dataUser.remove( elem, name );
12625	},
12626
12627	// TODO: Now that all calls to _data and _removeData have been replaced
12628	// with direct calls to dataPriv methods, these can be deprecated.
12629	_data: function( elem, name, data ) {
12630		return dataPriv.access( elem, name, data );
12631	},
12632
12633	_removeData: function( elem, name ) {
12634		dataPriv.remove( elem, name );
12635	}
12636} );
12637
12638jQuery.fn.extend( {
12639	data: function( key, value ) {
12640		var i, name, data,
12641			elem = this[ 0 ],
12642			attrs = elem && elem.attributes;
12643
12644		// Gets all values
12645		if ( key === undefined ) {
12646			if ( this.length ) {
12647				data = dataUser.get( elem );
12648
12649				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
12650					i = attrs.length;
12651					while ( i-- ) {
12652
12653						// Support: IE 11 only
12654						// The attrs elements can be null (#14894)
12655						if ( attrs[ i ] ) {
12656							name = attrs[ i ].name;
12657							if ( name.indexOf( "data-" ) === 0 ) {
12658								name = camelCase( name.slice( 5 ) );
12659								dataAttr( elem, name, data[ name ] );
12660							}
12661						}
12662					}
12663					dataPriv.set( elem, "hasDataAttrs", true );
12664				}
12665			}
12666
12667			return data;
12668		}
12669
12670		// Sets multiple values
12671		if ( typeof key === "object" ) {
12672			return this.each( function() {
12673				dataUser.set( this, key );
12674			} );
12675		}
12676
12677		return access( this, function( value ) {
12678			var data;
12679
12680			// The calling jQuery object (element matches) is not empty
12681			// (and therefore has an element appears at this[ 0 ]) and the
12682			// `value` parameter was not undefined. An empty jQuery object
12683			// will result in `undefined` for elem = this[ 0 ] which will
12684			// throw an exception if an attempt to read a data cache is made.
12685			if ( elem && value === undefined ) {
12686
12687				// Attempt to get data from the cache
12688				// The key will always be camelCased in Data
12689				data = dataUser.get( elem, key );
12690				if ( data !== undefined ) {
12691					return data;
12692				}
12693
12694				// Attempt to "discover" the data in
12695				// HTML5 custom data-* attrs
12696				data = dataAttr( elem, key );
12697				if ( data !== undefined ) {
12698					return data;
12699				}
12700
12701				// We tried really hard, but the data doesn't exist.
12702				return;
12703			}
12704
12705			// Set the data...
12706			this.each( function() {
12707
12708				// We always store the camelCased key
12709				dataUser.set( this, key, value );
12710			} );
12711		}, null, value, arguments.length > 1, null, true );
12712	},
12713
12714	removeData: function( key ) {
12715		return this.each( function() {
12716			dataUser.remove( this, key );
12717		} );
12718	}
12719} );
12720
12721
12722jQuery.extend( {
12723	queue: function( elem, type, data ) {
12724		var queue;
12725
12726		if ( elem ) {
12727			type = ( type || "fx" ) + "queue";
12728			queue = dataPriv.get( elem, type );
12729
12730			// Speed up dequeue by getting out quickly if this is just a lookup
12731			if ( data ) {
12732				if ( !queue || Array.isArray( data ) ) {
12733					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
12734				} else {
12735					queue.push( data );
12736				}
12737			}
12738			return queue || [];
12739		}
12740	},
12741
12742	dequeue: function( elem, type ) {
12743		type = type || "fx";
12744
12745		var queue = jQuery.queue( elem, type ),
12746			startLength = queue.length,
12747			fn = queue.shift(),
12748			hooks = jQuery._queueHooks( elem, type ),
12749			next = function() {
12750				jQuery.dequeue( elem, type );
12751			};
12752
12753		// If the fx queue is dequeued, always remove the progress sentinel
12754		if ( fn === "inprogress" ) {
12755			fn = queue.shift();
12756			startLength--;
12757		}
12758
12759		if ( fn ) {
12760
12761			// Add a progress sentinel to prevent the fx queue from being
12762			// automatically dequeued
12763			if ( type === "fx" ) {
12764				queue.unshift( "inprogress" );
12765			}
12766
12767			// Clear up the last queue stop function
12768			delete hooks.stop;
12769			fn.call( elem, next, hooks );
12770		}
12771
12772		if ( !startLength && hooks ) {
12773			hooks.empty.fire();
12774		}
12775	},
12776
12777	// Not public - generate a queueHooks object, or return the current one
12778	_queueHooks: function( elem, type ) {
12779		var key = type + "queueHooks";
12780		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
12781			empty: jQuery.Callbacks( "once memory" ).add( function() {
12782				dataPriv.remove( elem, [ type + "queue", key ] );
12783			} )
12784		} );
12785	}
12786} );
12787
12788jQuery.fn.extend( {
12789	queue: function( type, data ) {
12790		var setter = 2;
12791
12792		if ( typeof type !== "string" ) {
12793			data = type;
12794			type = "fx";
12795			setter--;
12796		}
12797
12798		if ( arguments.length < setter ) {
12799			return jQuery.queue( this[ 0 ], type );
12800		}
12801
12802		return data === undefined ?
12803			this :
12804			this.each( function() {
12805				var queue = jQuery.queue( this, type, data );
12806
12807				// Ensure a hooks for this queue
12808				jQuery._queueHooks( this, type );
12809
12810				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
12811					jQuery.dequeue( this, type );
12812				}
12813			} );
12814	},
12815	dequeue: function( type ) {
12816		return this.each( function() {
12817			jQuery.dequeue( this, type );
12818		} );
12819	},
12820	clearQueue: function( type ) {
12821		return this.queue( type || "fx", [] );
12822	},
12823
12824	// Get a promise resolved when queues of a certain type
12825	// are emptied (fx is the type by default)
12826	promise: function( type, obj ) {
12827		var tmp,
12828			count = 1,
12829			defer = jQuery.Deferred(),
12830			elements = this,
12831			i = this.length,
12832			resolve = function() {
12833				if ( !( --count ) ) {
12834					defer.resolveWith( elements, [ elements ] );
12835				}
12836			};
12837
12838		if ( typeof type !== "string" ) {
12839			obj = type;
12840			type = undefined;
12841		}
12842		type = type || "fx";
12843
12844		while ( i-- ) {
12845			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
12846			if ( tmp && tmp.empty ) {
12847				count++;
12848				tmp.empty.add( resolve );
12849			}
12850		}
12851		resolve();
12852		return defer.promise( obj );
12853	}
12854} );
12855var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
12856
12857var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
12858
12859
12860var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
12861
12862var documentElement = document.documentElement;
12863
12864
12865
12866	var isAttached = function( elem ) {
12867			return jQuery.contains( elem.ownerDocument, elem );
12868		},
12869		composed = { composed: true };
12870
12871	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
12872	// Check attachment across shadow DOM boundaries when possible (gh-3504)
12873	// Support: iOS 10.0-10.2 only
12874	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
12875	// leading to errors. We need to check for `getRootNode`.
12876	if ( documentElement.getRootNode ) {
12877		isAttached = function( elem ) {
12878			return jQuery.contains( elem.ownerDocument, elem ) ||
12879				elem.getRootNode( composed ) === elem.ownerDocument;
12880		};
12881	}
12882var isHiddenWithinTree = function( elem, el ) {
12883
12884		// isHiddenWithinTree might be called from jQuery#filter function;
12885		// in that case, element will be second argument
12886		elem = el || elem;
12887
12888		// Inline style trumps all
12889		return elem.style.display === "none" ||
12890			elem.style.display === "" &&
12891
12892			// Otherwise, check computed style
12893			// Support: Firefox <=43 - 45
12894			// Disconnected elements can have computed display: none, so first confirm that elem is
12895			// in the document.
12896			isAttached( elem ) &&
12897
12898			jQuery.css( elem, "display" ) === "none";
12899	};
12900
12901
12902
12903function adjustCSS( elem, prop, valueParts, tween ) {
12904	var adjusted, scale,
12905		maxIterations = 20,
12906		currentValue = tween ?
12907			function() {
12908				return tween.cur();
12909			} :
12910			function() {
12911				return jQuery.css( elem, prop, "" );
12912			},
12913		initial = currentValue(),
12914		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
12915
12916		// Starting value computation is required for potential unit mismatches
12917		initialInUnit = elem.nodeType &&
12918			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
12919			rcssNum.exec( jQuery.css( elem, prop ) );
12920
12921	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
12922
12923		// Support: Firefox <=54
12924		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
12925		initial = initial / 2;
12926
12927		// Trust units reported by jQuery.css
12928		unit = unit || initialInUnit[ 3 ];
12929
12930		// Iteratively approximate from a nonzero starting point
12931		initialInUnit = +initial || 1;
12932
12933		while ( maxIterations-- ) {
12934
12935			// Evaluate and update our best guess (doubling guesses that zero out).
12936			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
12937			jQuery.style( elem, prop, initialInUnit + unit );
12938			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
12939				maxIterations = 0;
12940			}
12941			initialInUnit = initialInUnit / scale;
12942
12943		}
12944
12945		initialInUnit = initialInUnit * 2;
12946		jQuery.style( elem, prop, initialInUnit + unit );
12947
12948		// Make sure we update the tween properties later on
12949		valueParts = valueParts || [];
12950	}
12951
12952	if ( valueParts ) {
12953		initialInUnit = +initialInUnit || +initial || 0;
12954
12955		// Apply relative offset (+=/-=) if specified
12956		adjusted = valueParts[ 1 ] ?
12957			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
12958			+valueParts[ 2 ];
12959		if ( tween ) {
12960			tween.unit = unit;
12961			tween.start = initialInUnit;
12962			tween.end = adjusted;
12963		}
12964	}
12965	return adjusted;
12966}
12967
12968
12969var defaultDisplayMap = {};
12970
12971function getDefaultDisplay( elem ) {
12972	var temp,
12973		doc = elem.ownerDocument,
12974		nodeName = elem.nodeName,
12975		display = defaultDisplayMap[ nodeName ];
12976
12977	if ( display ) {
12978		return display;
12979	}
12980
12981	temp = doc.body.appendChild( doc.createElement( nodeName ) );
12982	display = jQuery.css( temp, "display" );
12983
12984	temp.parentNode.removeChild( temp );
12985
12986	if ( display === "none" ) {
12987		display = "block";
12988	}
12989	defaultDisplayMap[ nodeName ] = display;
12990
12991	return display;
12992}
12993
12994function showHide( elements, show ) {
12995	var display, elem,
12996		values = [],
12997		index = 0,
12998		length = elements.length;
12999
13000	// Determine new display value for elements that need to change
13001	for ( ; index < length; index++ ) {
13002		elem = elements[ index ];
13003		if ( !elem.style ) {
13004			continue;
13005		}
13006
13007		display = elem.style.display;
13008		if ( show ) {
13009
13010			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
13011			// check is required in this first loop unless we have a nonempty display value (either
13012			// inline or about-to-be-restored)
13013			if ( display === "none" ) {
13014				values[ index ] = dataPriv.get( elem, "display" ) || null;
13015				if ( !values[ index ] ) {
13016					elem.style.display = "";
13017				}
13018			}
13019			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
13020				values[ index ] = getDefaultDisplay( elem );
13021			}
13022		} else {
13023			if ( display !== "none" ) {
13024				values[ index ] = "none";
13025
13026				// Remember what we're overwriting
13027				dataPriv.set( elem, "display", display );
13028			}
13029		}
13030	}
13031
13032	// Set the display of the elements in a second loop to avoid constant reflow
13033	for ( index = 0; index < length; index++ ) {
13034		if ( values[ index ] != null ) {
13035			elements[ index ].style.display = values[ index ];
13036		}
13037	}
13038
13039	return elements;
13040}
13041
13042jQuery.fn.extend( {
13043	show: function() {
13044		return showHide( this, true );
13045	},
13046	hide: function() {
13047		return showHide( this );
13048	},
13049	toggle: function( state ) {
13050		if ( typeof state === "boolean" ) {
13051			return state ? this.show() : this.hide();
13052		}
13053
13054		return this.each( function() {
13055			if ( isHiddenWithinTree( this ) ) {
13056				jQuery( this ).show();
13057			} else {
13058				jQuery( this ).hide();
13059			}
13060		} );
13061	}
13062} );
13063var rcheckableType = ( /^(?:checkbox|radio)$/i );
13064
13065var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
13066
13067var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
13068
13069
13070
13071( function() {
13072	var fragment = document.createDocumentFragment(),
13073		div = fragment.appendChild( document.createElement( "div" ) ),
13074		input = document.createElement( "input" );
13075
13076	// Support: Android 4.0 - 4.3 only
13077	// Check state lost if the name is set (#11217)
13078	// Support: Windows Web Apps (WWA)
13079	// `name` and `type` must use .setAttribute for WWA (#14901)
13080	input.setAttribute( "type", "radio" );
13081	input.setAttribute( "checked", "checked" );
13082	input.setAttribute( "name", "t" );
13083
13084	div.appendChild( input );
13085
13086	// Support: Android <=4.1 only
13087	// Older WebKit doesn't clone checked state correctly in fragments
13088	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
13089
13090	// Support: IE <=11 only
13091	// Make sure textarea (and checkbox) defaultValue is properly cloned
13092	div.innerHTML = "<textarea>x</textarea>";
13093	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
13094
13095	// Support: IE <=9 only
13096	// IE <=9 replaces <option> tags with their contents when inserted outside of
13097	// the select element.
13098	div.innerHTML = "<option></option>";
13099	support.option = !!div.lastChild;
13100} )();
13101
13102
13103// We have to close these tags to support XHTML (#13200)
13104var wrapMap = {
13105
13106	// XHTML parsers do not magically insert elements in the
13107	// same way that tag soup parsers do. So we cannot shorten
13108	// this by omitting <tbody> or other required elements.
13109	thead: [ 1, "<table>", "</table>" ],
13110	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
13111	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
13112	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
13113
13114	_default: [ 0, "", "" ]
13115};
13116
13117wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
13118wrapMap.th = wrapMap.td;
13119
13120// Support: IE <=9 only
13121if ( !support.option ) {
13122	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
13123}
13124
13125
13126function getAll( context, tag ) {
13127
13128	// Support: IE <=9 - 11 only
13129	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
13130	var ret;
13131
13132	if ( typeof context.getElementsByTagName !== "undefined" ) {
13133		ret = context.getElementsByTagName( tag || "*" );
13134
13135	} else if ( typeof context.querySelectorAll !== "undefined" ) {
13136		ret = context.querySelectorAll( tag || "*" );
13137
13138	} else {
13139		ret = [];
13140	}
13141
13142	if ( tag === undefined || tag && nodeName( context, tag ) ) {
13143		return jQuery.merge( [ context ], ret );
13144	}
13145
13146	return ret;
13147}
13148
13149
13150// Mark scripts as having already been evaluated
13151function setGlobalEval( elems, refElements ) {
13152	var i = 0,
13153		l = elems.length;
13154
13155	for ( ; i < l; i++ ) {
13156		dataPriv.set(
13157			elems[ i ],
13158			"globalEval",
13159			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
13160		);
13161	}
13162}
13163
13164
13165var rhtml = /<|&#?\w+;/;
13166
13167function buildFragment( elems, context, scripts, selection, ignored ) {
13168	var elem, tmp, tag, wrap, attached, j,
13169		fragment = context.createDocumentFragment(),
13170		nodes = [],
13171		i = 0,
13172		l = elems.length;
13173
13174	for ( ; i < l; i++ ) {
13175		elem = elems[ i ];
13176
13177		if ( elem || elem === 0 ) {
13178
13179			// Add nodes directly
13180			if ( toType( elem ) === "object" ) {
13181
13182				// Support: Android <=4.0 only, PhantomJS 1 only
13183				// push.apply(_, arraylike) throws on ancient WebKit
13184				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
13185
13186			// Convert non-html into a text node
13187			} else if ( !rhtml.test( elem ) ) {
13188				nodes.push( context.createTextNode( elem ) );
13189
13190			// Convert html into DOM nodes
13191			} else {
13192				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
13193
13194				// Deserialize a standard representation
13195				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
13196				wrap = wrapMap[ tag ] || wrapMap._default;
13197				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
13198
13199				// Descend through wrappers to the right content
13200				j = wrap[ 0 ];
13201				while ( j-- ) {
13202					tmp = tmp.lastChild;
13203				}
13204
13205				// Support: Android <=4.0 only, PhantomJS 1 only
13206				// push.apply(_, arraylike) throws on ancient WebKit
13207				jQuery.merge( nodes, tmp.childNodes );
13208
13209				// Remember the top-level container
13210				tmp = fragment.firstChild;
13211
13212				// Ensure the created nodes are orphaned (#12392)
13213				tmp.textContent = "";
13214			}
13215		}
13216	}
13217
13218	// Remove wrapper from fragment
13219	fragment.textContent = "";
13220
13221	i = 0;
13222	while ( ( elem = nodes[ i++ ] ) ) {
13223
13224		// Skip elements already in the context collection (trac-4087)
13225		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
13226			if ( ignored ) {
13227				ignored.push( elem );
13228			}
13229			continue;
13230		}
13231
13232		attached = isAttached( elem );
13233
13234		// Append to fragment
13235		tmp = getAll( fragment.appendChild( elem ), "script" );
13236
13237		// Preserve script evaluation history
13238		if ( attached ) {
13239			setGlobalEval( tmp );
13240		}
13241
13242		// Capture executables
13243		if ( scripts ) {
13244			j = 0;
13245			while ( ( elem = tmp[ j++ ] ) ) {
13246				if ( rscriptType.test( elem.type || "" ) ) {
13247					scripts.push( elem );
13248				}
13249			}
13250		}
13251	}
13252
13253	return fragment;
13254}
13255
13256
13257var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
13258
13259function returnTrue() {
13260	return true;
13261}
13262
13263function returnFalse() {
13264	return false;
13265}
13266
13267// Support: IE <=9 - 11+
13268// focus() and blur() are asynchronous, except when they are no-op.
13269// So expect focus to be synchronous when the element is already active,
13270// and blur to be synchronous when the element is not already active.
13271// (focus and blur are always synchronous in other supported browsers,
13272// this just defines when we can count on it).
13273function expectSync( elem, type ) {
13274	return ( elem === safeActiveElement() ) === ( type === "focus" );
13275}
13276
13277// Support: IE <=9 only
13278// Accessing document.activeElement can throw unexpectedly
13279// https://bugs.jquery.com/ticket/13393
13280function safeActiveElement() {
13281	try {
13282		return document.activeElement;
13283	} catch ( err ) { }
13284}
13285
13286function on( elem, types, selector, data, fn, one ) {
13287	var origFn, type;
13288
13289	// Types can be a map of types/handlers
13290	if ( typeof types === "object" ) {
13291
13292		// ( types-Object, selector, data )
13293		if ( typeof selector !== "string" ) {
13294
13295			// ( types-Object, data )
13296			data = data || selector;
13297			selector = undefined;
13298		}
13299		for ( type in types ) {
13300			on( elem, type, selector, data, types[ type ], one );
13301		}
13302		return elem;
13303	}
13304
13305	if ( data == null && fn == null ) {
13306
13307		// ( types, fn )
13308		fn = selector;
13309		data = selector = undefined;
13310	} else if ( fn == null ) {
13311		if ( typeof selector === "string" ) {
13312
13313			// ( types, selector, fn )
13314			fn = data;
13315			data = undefined;
13316		} else {
13317
13318			// ( types, data, fn )
13319			fn = data;
13320			data = selector;
13321			selector = undefined;
13322		}
13323	}
13324	if ( fn === false ) {
13325		fn = returnFalse;
13326	} else if ( !fn ) {
13327		return elem;
13328	}
13329
13330	if ( one === 1 ) {
13331		origFn = fn;
13332		fn = function( event ) {
13333
13334			// Can use an empty set, since event contains the info
13335			jQuery().off( event );
13336			return origFn.apply( this, arguments );
13337		};
13338
13339		// Use same guid so caller can remove using origFn
13340		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
13341	}
13342	return elem.each( function() {
13343		jQuery.event.add( this, types, fn, data, selector );
13344	} );
13345}
13346
13347/*
13348 * Helper functions for managing events -- not part of the public interface.
13349 * Props to Dean Edwards' addEvent library for many of the ideas.
13350 */
13351jQuery.event = {
13352
13353	global: {},
13354
13355	add: function( elem, types, handler, data, selector ) {
13356
13357		var handleObjIn, eventHandle, tmp,
13358			events, t, handleObj,
13359			special, handlers, type, namespaces, origType,
13360			elemData = dataPriv.get( elem );
13361
13362		// Only attach events to objects that accept data
13363		if ( !acceptData( elem ) ) {
13364			return;
13365		}
13366
13367		// Caller can pass in an object of custom data in lieu of the handler
13368		if ( handler.handler ) {
13369			handleObjIn = handler;
13370			handler = handleObjIn.handler;
13371			selector = handleObjIn.selector;
13372		}
13373
13374		// Ensure that invalid selectors throw exceptions at attach time
13375		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
13376		if ( selector ) {
13377			jQuery.find.matchesSelector( documentElement, selector );
13378		}
13379
13380		// Make sure that the handler has a unique ID, used to find/remove it later
13381		if ( !handler.guid ) {
13382			handler.guid = jQuery.guid++;
13383		}
13384
13385		// Init the element's event structure and main handler, if this is the first
13386		if ( !( events = elemData.events ) ) {
13387			events = elemData.events = Object.create( null );
13388		}
13389		if ( !( eventHandle = elemData.handle ) ) {
13390			eventHandle = elemData.handle = function( e ) {
13391
13392				// Discard the second event of a jQuery.event.trigger() and
13393				// when an event is called after a page has unloaded
13394				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
13395					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
13396			};
13397		}
13398
13399		// Handle multiple events separated by a space
13400		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
13401		t = types.length;
13402		while ( t-- ) {
13403			tmp = rtypenamespace.exec( types[ t ] ) || [];
13404			type = origType = tmp[ 1 ];
13405			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
13406
13407			// There *must* be a type, no attaching namespace-only handlers
13408			if ( !type ) {
13409				continue;
13410			}
13411
13412			// If event changes its type, use the special event handlers for the changed type
13413			special = jQuery.event.special[ type ] || {};
13414
13415			// If selector defined, determine special event api type, otherwise given type
13416			type = ( selector ? special.delegateType : special.bindType ) || type;
13417
13418			// Update special based on newly reset type
13419			special = jQuery.event.special[ type ] || {};
13420
13421			// handleObj is passed to all event handlers
13422			handleObj = jQuery.extend( {
13423				type: type,
13424				origType: origType,
13425				data: data,
13426				handler: handler,
13427				guid: handler.guid,
13428				selector: selector,
13429				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
13430				namespace: namespaces.join( "." )
13431			}, handleObjIn );
13432
13433			// Init the event handler queue if we're the first
13434			if ( !( handlers = events[ type ] ) ) {
13435				handlers = events[ type ] = [];
13436				handlers.delegateCount = 0;
13437
13438				// Only use addEventListener if the special events handler returns false
13439				if ( !special.setup ||
13440					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
13441
13442					if ( elem.addEventListener ) {
13443						elem.addEventListener( type, eventHandle );
13444					}
13445				}
13446			}
13447
13448			if ( special.add ) {
13449				special.add.call( elem, handleObj );
13450
13451				if ( !handleObj.handler.guid ) {
13452					handleObj.handler.guid = handler.guid;
13453				}
13454			}
13455
13456			// Add to the element's handler list, delegates in front
13457			if ( selector ) {
13458				handlers.splice( handlers.delegateCount++, 0, handleObj );
13459			} else {
13460				handlers.push( handleObj );
13461			}
13462
13463			// Keep track of which events have ever been used, for event optimization
13464			jQuery.event.global[ type ] = true;
13465		}
13466
13467	},
13468
13469	// Detach an event or set of events from an element
13470	remove: function( elem, types, handler, selector, mappedTypes ) {
13471
13472		var j, origCount, tmp,
13473			events, t, handleObj,
13474			special, handlers, type, namespaces, origType,
13475			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
13476
13477		if ( !elemData || !( events = elemData.events ) ) {
13478			return;
13479		}
13480
13481		// Once for each type.namespace in types; type may be omitted
13482		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
13483		t = types.length;
13484		while ( t-- ) {
13485			tmp = rtypenamespace.exec( types[ t ] ) || [];
13486			type = origType = tmp[ 1 ];
13487			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
13488
13489			// Unbind all events (on this namespace, if provided) for the element
13490			if ( !type ) {
13491				for ( type in events ) {
13492					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
13493				}
13494				continue;
13495			}
13496
13497			special = jQuery.event.special[ type ] || {};
13498			type = ( selector ? special.delegateType : special.bindType ) || type;
13499			handlers = events[ type ] || [];
13500			tmp = tmp[ 2 ] &&
13501				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
13502
13503			// Remove matching events
13504			origCount = j = handlers.length;
13505			while ( j-- ) {
13506				handleObj = handlers[ j ];
13507
13508				if ( ( mappedTypes || origType === handleObj.origType ) &&
13509					( !handler || handler.guid === handleObj.guid ) &&
13510					( !tmp || tmp.test( handleObj.namespace ) ) &&
13511					( !selector || selector === handleObj.selector ||
13512						selector === "**" && handleObj.selector ) ) {
13513					handlers.splice( j, 1 );
13514
13515					if ( handleObj.selector ) {
13516						handlers.delegateCount--;
13517					}
13518					if ( special.remove ) {
13519						special.remove.call( elem, handleObj );
13520					}
13521				}
13522			}
13523
13524			// Remove generic event handler if we removed something and no more handlers exist
13525			// (avoids potential for endless recursion during removal of special event handlers)
13526			if ( origCount && !handlers.length ) {
13527				if ( !special.teardown ||
13528					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
13529
13530					jQuery.removeEvent( elem, type, elemData.handle );
13531				}
13532
13533				delete events[ type ];
13534			}
13535		}
13536
13537		// Remove data and the expando if it's no longer used
13538		if ( jQuery.isEmptyObject( events ) ) {
13539			dataPriv.remove( elem, "handle events" );
13540		}
13541	},
13542
13543	dispatch: function( nativeEvent ) {
13544
13545		var i, j, ret, matched, handleObj, handlerQueue,
13546			args = new Array( arguments.length ),
13547
13548			// Make a writable jQuery.Event from the native event object
13549			event = jQuery.event.fix( nativeEvent ),
13550
13551			handlers = (
13552				dataPriv.get( this, "events" ) || Object.create( null )
13553			)[ event.type ] || [],
13554			special = jQuery.event.special[ event.type ] || {};
13555
13556		// Use the fix-ed jQuery.Event rather than the (read-only) native event
13557		args[ 0 ] = event;
13558
13559		for ( i = 1; i < arguments.length; i++ ) {
13560			args[ i ] = arguments[ i ];
13561		}
13562
13563		event.delegateTarget = this;
13564
13565		// Call the preDispatch hook for the mapped type, and let it bail if desired
13566		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
13567			return;
13568		}
13569
13570		// Determine handlers
13571		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
13572
13573		// Run delegates first; they may want to stop propagation beneath us
13574		i = 0;
13575		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
13576			event.currentTarget = matched.elem;
13577
13578			j = 0;
13579			while ( ( handleObj = matched.handlers[ j++ ] ) &&
13580				!event.isImmediatePropagationStopped() ) {
13581
13582				// If the event is namespaced, then each handler is only invoked if it is
13583				// specially universal or its namespaces are a superset of the event's.
13584				if ( !event.rnamespace || handleObj.namespace === false ||
13585					event.rnamespace.test( handleObj.namespace ) ) {
13586
13587					event.handleObj = handleObj;
13588					event.data = handleObj.data;
13589
13590					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
13591						handleObj.handler ).apply( matched.elem, args );
13592
13593					if ( ret !== undefined ) {
13594						if ( ( event.result = ret ) === false ) {
13595							event.preventDefault();
13596							event.stopPropagation();
13597						}
13598					}
13599				}
13600			}
13601		}
13602
13603		// Call the postDispatch hook for the mapped type
13604		if ( special.postDispatch ) {
13605			special.postDispatch.call( this, event );
13606		}
13607
13608		return event.result;
13609	},
13610
13611	handlers: function( event, handlers ) {
13612		var i, handleObj, sel, matchedHandlers, matchedSelectors,
13613			handlerQueue = [],
13614			delegateCount = handlers.delegateCount,
13615			cur = event.target;
13616
13617		// Find delegate handlers
13618		if ( delegateCount &&
13619
13620			// Support: IE <=9
13621			// Black-hole SVG <use> instance trees (trac-13180)
13622			cur.nodeType &&
13623
13624			// Support: Firefox <=42
13625			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
13626			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
13627			// Support: IE 11 only
13628			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
13629			!( event.type === "click" && event.button >= 1 ) ) {
13630
13631			for ( ; cur !== this; cur = cur.parentNode || this ) {
13632
13633				// Don't check non-elements (#13208)
13634				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
13635				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
13636					matchedHandlers = [];
13637					matchedSelectors = {};
13638					for ( i = 0; i < delegateCount; i++ ) {
13639						handleObj = handlers[ i ];
13640
13641						// Don't conflict with Object.prototype properties (#13203)
13642						sel = handleObj.selector + " ";
13643
13644						if ( matchedSelectors[ sel ] === undefined ) {
13645							matchedSelectors[ sel ] = handleObj.needsContext ?
13646								jQuery( sel, this ).index( cur ) > -1 :
13647								jQuery.find( sel, this, null, [ cur ] ).length;
13648						}
13649						if ( matchedSelectors[ sel ] ) {
13650							matchedHandlers.push( handleObj );
13651						}
13652					}
13653					if ( matchedHandlers.length ) {
13654						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
13655					}
13656				}
13657			}
13658		}
13659
13660		// Add the remaining (directly-bound) handlers
13661		cur = this;
13662		if ( delegateCount < handlers.length ) {
13663			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
13664		}
13665
13666		return handlerQueue;
13667	},
13668
13669	addProp: function( name, hook ) {
13670		Object.defineProperty( jQuery.Event.prototype, name, {
13671			enumerable: true,
13672			configurable: true,
13673
13674			get: isFunction( hook ) ?
13675				function() {
13676					if ( this.originalEvent ) {
13677						return hook( this.originalEvent );
13678					}
13679				} :
13680				function() {
13681					if ( this.originalEvent ) {
13682						return this.originalEvent[ name ];
13683					}
13684				},
13685
13686			set: function( value ) {
13687				Object.defineProperty( this, name, {
13688					enumerable: true,
13689					configurable: true,
13690					writable: true,
13691					value: value
13692				} );
13693			}
13694		} );
13695	},
13696
13697	fix: function( originalEvent ) {
13698		return originalEvent[ jQuery.expando ] ?
13699			originalEvent :
13700			new jQuery.Event( originalEvent );
13701	},
13702
13703	special: {
13704		load: {
13705
13706			// Prevent triggered image.load events from bubbling to window.load
13707			noBubble: true
13708		},
13709		click: {
13710
13711			// Utilize native event to ensure correct state for checkable inputs
13712			setup: function( data ) {
13713
13714				// For mutual compressibility with _default, replace `this` access with a local var.
13715				// `|| data` is dead code meant only to preserve the variable through minification.
13716				var el = this || data;
13717
13718				// Claim the first handler
13719				if ( rcheckableType.test( el.type ) &&
13720					el.click && nodeName( el, "input" ) ) {
13721
13722					// dataPriv.set( el, "click", ... )
13723					leverageNative( el, "click", returnTrue );
13724				}
13725
13726				// Return false to allow normal processing in the caller
13727				return false;
13728			},
13729			trigger: function( data ) {
13730
13731				// For mutual compressibility with _default, replace `this` access with a local var.
13732				// `|| data` is dead code meant only to preserve the variable through minification.
13733				var el = this || data;
13734
13735				// Force setup before triggering a click
13736				if ( rcheckableType.test( el.type ) &&
13737					el.click && nodeName( el, "input" ) ) {
13738
13739					leverageNative( el, "click" );
13740				}
13741
13742				// Return non-false to allow normal event-path propagation
13743				return true;
13744			},
13745
13746			// For cross-browser consistency, suppress native .click() on links
13747			// Also prevent it if we're currently inside a leveraged native-event stack
13748			_default: function( event ) {
13749				var target = event.target;
13750				return rcheckableType.test( target.type ) &&
13751					target.click && nodeName( target, "input" ) &&
13752					dataPriv.get( target, "click" ) ||
13753					nodeName( target, "a" );
13754			}
13755		},
13756
13757		beforeunload: {
13758			postDispatch: function( event ) {
13759
13760				// Support: Firefox 20+
13761				// Firefox doesn't alert if the returnValue field is not set.
13762				if ( event.result !== undefined && event.originalEvent ) {
13763					event.originalEvent.returnValue = event.result;
13764				}
13765			}
13766		}
13767	}
13768};
13769
13770// Ensure the presence of an event listener that handles manually-triggered
13771// synthetic events by interrupting progress until reinvoked in response to
13772// *native* events that it fires directly, ensuring that state changes have
13773// already occurred before other listeners are invoked.
13774function leverageNative( el, type, expectSync ) {
13775
13776	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
13777	if ( !expectSync ) {
13778		if ( dataPriv.get( el, type ) === undefined ) {
13779			jQuery.event.add( el, type, returnTrue );
13780		}
13781		return;
13782	}
13783
13784	// Register the controller as a special universal handler for all event namespaces
13785	dataPriv.set( el, type, false );
13786	jQuery.event.add( el, type, {
13787		namespace: false,
13788		handler: function( event ) {
13789			var notAsync, result,
13790				saved = dataPriv.get( this, type );
13791
13792			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
13793
13794				// Interrupt processing of the outer synthetic .trigger()ed event
13795				// Saved data should be false in such cases, but might be a leftover capture object
13796				// from an async native handler (gh-4350)
13797				if ( !saved.length ) {
13798
13799					// Store arguments for use when handling the inner native event
13800					// There will always be at least one argument (an event object), so this array
13801					// will not be confused with a leftover capture object.
13802					saved = slice.call( arguments );
13803					dataPriv.set( this, type, saved );
13804
13805					// Trigger the native event and capture its result
13806					// Support: IE <=9 - 11+
13807					// focus() and blur() are asynchronous
13808					notAsync = expectSync( this, type );
13809					this[ type ]();
13810					result = dataPriv.get( this, type );
13811					if ( saved !== result || notAsync ) {
13812						dataPriv.set( this, type, false );
13813					} else {
13814						result = {};
13815					}
13816					if ( saved !== result ) {
13817
13818						// Cancel the outer synthetic event
13819						event.stopImmediatePropagation();
13820						event.preventDefault();
13821
13822						// Support: Chrome 86+
13823						// In Chrome, if an element having a focusout handler is blurred by
13824						// clicking outside of it, it invokes the handler synchronously. If
13825						// that handler calls `.remove()` on the element, the data is cleared,
13826						// leaving `result` undefined. We need to guard against this.
13827						return result && result.value;
13828					}
13829
13830				// If this is an inner synthetic event for an event with a bubbling surrogate
13831				// (focus or blur), assume that the surrogate already propagated from triggering the
13832				// native event and prevent that from happening again here.
13833				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
13834				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
13835				// less bad than duplication.
13836				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
13837					event.stopPropagation();
13838				}
13839
13840			// If this is a native event triggered above, everything is now in order
13841			// Fire an inner synthetic event with the original arguments
13842			} else if ( saved.length ) {
13843
13844				// ...and capture the result
13845				dataPriv.set( this, type, {
13846					value: jQuery.event.trigger(
13847
13848						// Support: IE <=9 - 11+
13849						// Extend with the prototype to reset the above stopImmediatePropagation()
13850						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
13851						saved.slice( 1 ),
13852						this
13853					)
13854				} );
13855
13856				// Abort handling of the native event
13857				event.stopImmediatePropagation();
13858			}
13859		}
13860	} );
13861}
13862
13863jQuery.removeEvent = function( elem, type, handle ) {
13864
13865	// This "if" is needed for plain objects
13866	if ( elem.removeEventListener ) {
13867		elem.removeEventListener( type, handle );
13868	}
13869};
13870
13871jQuery.Event = function( src, props ) {
13872
13873	// Allow instantiation without the 'new' keyword
13874	if ( !( this instanceof jQuery.Event ) ) {
13875		return new jQuery.Event( src, props );
13876	}
13877
13878	// Event object
13879	if ( src && src.type ) {
13880		this.originalEvent = src;
13881		this.type = src.type;
13882
13883		// Events bubbling up the document may have been marked as prevented
13884		// by a handler lower down the tree; reflect the correct value.
13885		this.isDefaultPrevented = src.defaultPrevented ||
13886				src.defaultPrevented === undefined &&
13887
13888				// Support: Android <=2.3 only
13889				src.returnValue === false ?
13890			returnTrue :
13891			returnFalse;
13892
13893		// Create target properties
13894		// Support: Safari <=6 - 7 only
13895		// Target should not be a text node (#504, #13143)
13896		this.target = ( src.target && src.target.nodeType === 3 ) ?
13897			src.target.parentNode :
13898			src.target;
13899
13900		this.currentTarget = src.currentTarget;
13901		this.relatedTarget = src.relatedTarget;
13902
13903	// Event type
13904	} else {
13905		this.type = src;
13906	}
13907
13908	// Put explicitly provided properties onto the event object
13909	if ( props ) {
13910		jQuery.extend( this, props );
13911	}
13912
13913	// Create a timestamp if incoming event doesn't have one
13914	this.timeStamp = src && src.timeStamp || Date.now();
13915
13916	// Mark it as fixed
13917	this[ jQuery.expando ] = true;
13918};
13919
13920// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
13921// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
13922jQuery.Event.prototype = {
13923	constructor: jQuery.Event,
13924	isDefaultPrevented: returnFalse,
13925	isPropagationStopped: returnFalse,
13926	isImmediatePropagationStopped: returnFalse,
13927	isSimulated: false,
13928
13929	preventDefault: function() {
13930		var e = this.originalEvent;
13931
13932		this.isDefaultPrevented = returnTrue;
13933
13934		if ( e && !this.isSimulated ) {
13935			e.preventDefault();
13936		}
13937	},
13938	stopPropagation: function() {
13939		var e = this.originalEvent;
13940
13941		this.isPropagationStopped = returnTrue;
13942
13943		if ( e && !this.isSimulated ) {
13944			e.stopPropagation();
13945		}
13946	},
13947	stopImmediatePropagation: function() {
13948		var e = this.originalEvent;
13949
13950		this.isImmediatePropagationStopped = returnTrue;
13951
13952		if ( e && !this.isSimulated ) {
13953			e.stopImmediatePropagation();
13954		}
13955
13956		this.stopPropagation();
13957	}
13958};
13959
13960// Includes all common event props including KeyEvent and MouseEvent specific props
13961jQuery.each( {
13962	altKey: true,
13963	bubbles: true,
13964	cancelable: true,
13965	changedTouches: true,
13966	ctrlKey: true,
13967	detail: true,
13968	eventPhase: true,
13969	metaKey: true,
13970	pageX: true,
13971	pageY: true,
13972	shiftKey: true,
13973	view: true,
13974	"char": true,
13975	code: true,
13976	charCode: true,
13977	key: true,
13978	keyCode: true,
13979	button: true,
13980	buttons: true,
13981	clientX: true,
13982	clientY: true,
13983	offsetX: true,
13984	offsetY: true,
13985	pointerId: true,
13986	pointerType: true,
13987	screenX: true,
13988	screenY: true,
13989	targetTouches: true,
13990	toElement: true,
13991	touches: true,
13992	which: true
13993}, jQuery.event.addProp );
13994
13995jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
13996	jQuery.event.special[ type ] = {
13997
13998		// Utilize native event if possible so blur/focus sequence is correct
13999		setup: function() {
14000
14001			// Claim the first handler
14002			// dataPriv.set( this, "focus", ... )
14003			// dataPriv.set( this, "blur", ... )
14004			leverageNative( this, type, expectSync );
14005
14006			// Return false to allow normal processing in the caller
14007			return false;
14008		},
14009		trigger: function() {
14010
14011			// Force setup before trigger
14012			leverageNative( this, type );
14013
14014			// Return non-false to allow normal event-path propagation
14015			return true;
14016		},
14017
14018		// Suppress native focus or blur as it's already being fired
14019		// in leverageNative.
14020		_default: function() {
14021			return true;
14022		},
14023
14024		delegateType: delegateType
14025	};
14026} );
14027
14028// Create mouseenter/leave events using mouseover/out and event-time checks
14029// so that event delegation works in jQuery.
14030// Do the same for pointerenter/pointerleave and pointerover/pointerout
14031//
14032// Support: Safari 7 only
14033// Safari sends mouseenter too often; see:
14034// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
14035// for the description of the bug (it existed in older Chrome versions as well).
14036jQuery.each( {
14037	mouseenter: "mouseover",
14038	mouseleave: "mouseout",
14039	pointerenter: "pointerover",
14040	pointerleave: "pointerout"
14041}, function( orig, fix ) {
14042	jQuery.event.special[ orig ] = {
14043		delegateType: fix,
14044		bindType: fix,
14045
14046		handle: function( event ) {
14047			var ret,
14048				target = this,
14049				related = event.relatedTarget,
14050				handleObj = event.handleObj;
14051
14052			// For mouseenter/leave call the handler if related is outside the target.
14053			// NB: No relatedTarget if the mouse left/entered the browser window
14054			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
14055				event.type = handleObj.origType;
14056				ret = handleObj.handler.apply( this, arguments );
14057				event.type = fix;
14058			}
14059			return ret;
14060		}
14061	};
14062} );
14063
14064jQuery.fn.extend( {
14065
14066	on: function( types, selector, data, fn ) {
14067		return on( this, types, selector, data, fn );
14068	},
14069	one: function( types, selector, data, fn ) {
14070		return on( this, types, selector, data, fn, 1 );
14071	},
14072	off: function( types, selector, fn ) {
14073		var handleObj, type;
14074		if ( types && types.preventDefault && types.handleObj ) {
14075
14076			// ( event )  dispatched jQuery.Event
14077			handleObj = types.handleObj;
14078			jQuery( types.delegateTarget ).off(
14079				handleObj.namespace ?
14080					handleObj.origType + "." + handleObj.namespace :
14081					handleObj.origType,
14082				handleObj.selector,
14083				handleObj.handler
14084			);
14085			return this;
14086		}
14087		if ( typeof types === "object" ) {
14088
14089			// ( types-object [, selector] )
14090			for ( type in types ) {
14091				this.off( type, selector, types[ type ] );
14092			}
14093			return this;
14094		}
14095		if ( selector === false || typeof selector === "function" ) {
14096
14097			// ( types [, fn] )
14098			fn = selector;
14099			selector = undefined;
14100		}
14101		if ( fn === false ) {
14102			fn = returnFalse;
14103		}
14104		return this.each( function() {
14105			jQuery.event.remove( this, types, fn, selector );
14106		} );
14107	}
14108} );
14109
14110
14111var
14112
14113	// Support: IE <=10 - 11, Edge 12 - 13 only
14114	// In IE/Edge using regex groups here causes severe slowdowns.
14115	// See https://connect.microsoft.com/IE/feedback/details/1736512/
14116	rnoInnerhtml = /<script|<style|<link/i,
14117
14118	// checked="checked" or checked
14119	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
14120	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
14121
14122// Prefer a tbody over its parent table for containing new rows
14123function manipulationTarget( elem, content ) {
14124	if ( nodeName( elem, "table" ) &&
14125		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
14126
14127		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
14128	}
14129
14130	return elem;
14131}
14132
14133// Replace/restore the type attribute of script elements for safe DOM manipulation
14134function disableScript( elem ) {
14135	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
14136	return elem;
14137}
14138function restoreScript( elem ) {
14139	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
14140		elem.type = elem.type.slice( 5 );
14141	} else {
14142		elem.removeAttribute( "type" );
14143	}
14144
14145	return elem;
14146}
14147
14148function cloneCopyEvent( src, dest ) {
14149	var i, l, type, pdataOld, udataOld, udataCur, events;
14150
14151	if ( dest.nodeType !== 1 ) {
14152		return;
14153	}
14154
14155	// 1. Copy private data: events, handlers, etc.
14156	if ( dataPriv.hasData( src ) ) {
14157		pdataOld = dataPriv.get( src );
14158		events = pdataOld.events;
14159
14160		if ( events ) {
14161			dataPriv.remove( dest, "handle events" );
14162
14163			for ( type in events ) {
14164				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
14165					jQuery.event.add( dest, type, events[ type ][ i ] );
14166				}
14167			}
14168		}
14169	}
14170
14171	// 2. Copy user data
14172	if ( dataUser.hasData( src ) ) {
14173		udataOld = dataUser.access( src );
14174		udataCur = jQuery.extend( {}, udataOld );
14175
14176		dataUser.set( dest, udataCur );
14177	}
14178}
14179
14180// Fix IE bugs, see support tests
14181function fixInput( src, dest ) {
14182	var nodeName = dest.nodeName.toLowerCase();
14183
14184	// Fails to persist the checked state of a cloned checkbox or radio button.
14185	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
14186		dest.checked = src.checked;
14187
14188	// Fails to return the selected option to the default selected state when cloning options
14189	} else if ( nodeName === "input" || nodeName === "textarea" ) {
14190		dest.defaultValue = src.defaultValue;
14191	}
14192}
14193
14194function domManip( collection, args, callback, ignored ) {
14195
14196	// Flatten any nested arrays
14197	args = flat( args );
14198
14199	var fragment, first, scripts, hasScripts, node, doc,
14200		i = 0,
14201		l = collection.length,
14202		iNoClone = l - 1,
14203		value = args[ 0 ],
14204		valueIsFunction = isFunction( value );
14205
14206	// We can't cloneNode fragments that contain checked, in WebKit
14207	if ( valueIsFunction ||
14208			( l > 1 && typeof value === "string" &&
14209				!support.checkClone && rchecked.test( value ) ) ) {
14210		return collection.each( function( index ) {
14211			var self = collection.eq( index );
14212			if ( valueIsFunction ) {
14213				args[ 0 ] = value.call( this, index, self.html() );
14214			}
14215			domManip( self, args, callback, ignored );
14216		} );
14217	}
14218
14219	if ( l ) {
14220		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
14221		first = fragment.firstChild;
14222
14223		if ( fragment.childNodes.length === 1 ) {
14224			fragment = first;
14225		}
14226
14227		// Require either new content or an interest in ignored elements to invoke the callback
14228		if ( first || ignored ) {
14229			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
14230			hasScripts = scripts.length;
14231
14232			// Use the original fragment for the last item
14233			// instead of the first because it can end up
14234			// being emptied incorrectly in certain situations (#8070).
14235			for ( ; i < l; i++ ) {
14236				node = fragment;
14237
14238				if ( i !== iNoClone ) {
14239					node = jQuery.clone( node, true, true );
14240
14241					// Keep references to cloned scripts for later restoration
14242					if ( hasScripts ) {
14243
14244						// Support: Android <=4.0 only, PhantomJS 1 only
14245						// push.apply(_, arraylike) throws on ancient WebKit
14246						jQuery.merge( scripts, getAll( node, "script" ) );
14247					}
14248				}
14249
14250				callback.call( collection[ i ], node, i );
14251			}
14252
14253			if ( hasScripts ) {
14254				doc = scripts[ scripts.length - 1 ].ownerDocument;
14255
14256				// Reenable scripts
14257				jQuery.map( scripts, restoreScript );
14258
14259				// Evaluate executable scripts on first document insertion
14260				for ( i = 0; i < hasScripts; i++ ) {
14261					node = scripts[ i ];
14262					if ( rscriptType.test( node.type || "" ) &&
14263						!dataPriv.access( node, "globalEval" ) &&
14264						jQuery.contains( doc, node ) ) {
14265
14266						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
14267
14268							// Optional AJAX dependency, but won't run scripts if not present
14269							if ( jQuery._evalUrl && !node.noModule ) {
14270								jQuery._evalUrl( node.src, {
14271									nonce: node.nonce || node.getAttribute( "nonce" )
14272								}, doc );
14273							}
14274						} else {
14275							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
14276						}
14277					}
14278				}
14279			}
14280		}
14281	}
14282
14283	return collection;
14284}
14285
14286function remove( elem, selector, keepData ) {
14287	var node,
14288		nodes = selector ? jQuery.filter( selector, elem ) : elem,
14289		i = 0;
14290
14291	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
14292		if ( !keepData && node.nodeType === 1 ) {
14293			jQuery.cleanData( getAll( node ) );
14294		}
14295
14296		if ( node.parentNode ) {
14297			if ( keepData && isAttached( node ) ) {
14298				setGlobalEval( getAll( node, "script" ) );
14299			}
14300			node.parentNode.removeChild( node );
14301		}
14302	}
14303
14304	return elem;
14305}
14306
14307jQuery.extend( {
14308	htmlPrefilter: function( html ) {
14309		return html;
14310	},
14311
14312	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
14313		var i, l, srcElements, destElements,
14314			clone = elem.cloneNode( true ),
14315			inPage = isAttached( elem );
14316
14317		// Fix IE cloning issues
14318		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
14319				!jQuery.isXMLDoc( elem ) ) {
14320
14321			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
14322			destElements = getAll( clone );
14323			srcElements = getAll( elem );
14324
14325			for ( i = 0, l = srcElements.length; i < l; i++ ) {
14326				fixInput( srcElements[ i ], destElements[ i ] );
14327			}
14328		}
14329
14330		// Copy the events from the original to the clone
14331		if ( dataAndEvents ) {
14332			if ( deepDataAndEvents ) {
14333				srcElements = srcElements || getAll( elem );
14334				destElements = destElements || getAll( clone );
14335
14336				for ( i = 0, l = srcElements.length; i < l; i++ ) {
14337					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
14338				}
14339			} else {
14340				cloneCopyEvent( elem, clone );
14341			}
14342		}
14343
14344		// Preserve script evaluation history
14345		destElements = getAll( clone, "script" );
14346		if ( destElements.length > 0 ) {
14347			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
14348		}
14349
14350		// Return the cloned set
14351		return clone;
14352	},
14353
14354	cleanData: function( elems ) {
14355		var data, elem, type,
14356			special = jQuery.event.special,
14357			i = 0;
14358
14359		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
14360			if ( acceptData( elem ) ) {
14361				if ( ( data = elem[ dataPriv.expando ] ) ) {
14362					if ( data.events ) {
14363						for ( type in data.events ) {
14364							if ( special[ type ] ) {
14365								jQuery.event.remove( elem, type );
14366
14367							// This is a shortcut to avoid jQuery.event.remove's overhead
14368							} else {
14369								jQuery.removeEvent( elem, type, data.handle );
14370							}
14371						}
14372					}
14373
14374					// Support: Chrome <=35 - 45+
14375					// Assign undefined instead of using delete, see Data#remove
14376					elem[ dataPriv.expando ] = undefined;
14377				}
14378				if ( elem[ dataUser.expando ] ) {
14379
14380					// Support: Chrome <=35 - 45+
14381					// Assign undefined instead of using delete, see Data#remove
14382					elem[ dataUser.expando ] = undefined;
14383				}
14384			}
14385		}
14386	}
14387} );
14388
14389jQuery.fn.extend( {
14390	detach: function( selector ) {
14391		return remove( this, selector, true );
14392	},
14393
14394	remove: function( selector ) {
14395		return remove( this, selector );
14396	},
14397
14398	text: function( value ) {
14399		return access( this, function( value ) {
14400			return value === undefined ?
14401				jQuery.text( this ) :
14402				this.empty().each( function() {
14403					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
14404						this.textContent = value;
14405					}
14406				} );
14407		}, null, value, arguments.length );
14408	},
14409
14410	append: function() {
14411		return domManip( this, arguments, function( elem ) {
14412			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
14413				var target = manipulationTarget( this, elem );
14414				target.appendChild( elem );
14415			}
14416		} );
14417	},
14418
14419	prepend: function() {
14420		return domManip( this, arguments, function( elem ) {
14421			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
14422				var target = manipulationTarget( this, elem );
14423				target.insertBefore( elem, target.firstChild );
14424			}
14425		} );
14426	},
14427
14428	before: function() {
14429		return domManip( this, arguments, function( elem ) {
14430			if ( this.parentNode ) {
14431				this.parentNode.insertBefore( elem, this );
14432			}
14433		} );
14434	},
14435
14436	after: function() {
14437		return domManip( this, arguments, function( elem ) {
14438			if ( this.parentNode ) {
14439				this.parentNode.insertBefore( elem, this.nextSibling );
14440			}
14441		} );
14442	},
14443
14444	empty: function() {
14445		var elem,
14446			i = 0;
14447
14448		for ( ; ( elem = this[ i ] ) != null; i++ ) {
14449			if ( elem.nodeType === 1 ) {
14450
14451				// Prevent memory leaks
14452				jQuery.cleanData( getAll( elem, false ) );
14453
14454				// Remove any remaining nodes
14455				elem.textContent = "";
14456			}
14457		}
14458
14459		return this;
14460	},
14461
14462	clone: function( dataAndEvents, deepDataAndEvents ) {
14463		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
14464		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
14465
14466		return this.map( function() {
14467			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
14468		} );
14469	},
14470
14471	html: function( value ) {
14472		return access( this, function( value ) {
14473			var elem = this[ 0 ] || {},
14474				i = 0,
14475				l = this.length;
14476
14477			if ( value === undefined && elem.nodeType === 1 ) {
14478				return elem.innerHTML;
14479			}
14480
14481			// See if we can take a shortcut and just use innerHTML
14482			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
14483				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
14484
14485				value = jQuery.htmlPrefilter( value );
14486
14487				try {
14488					for ( ; i < l; i++ ) {
14489						elem = this[ i ] || {};
14490
14491						// Remove element nodes and prevent memory leaks
14492						if ( elem.nodeType === 1 ) {
14493							jQuery.cleanData( getAll( elem, false ) );
14494							elem.innerHTML = value;
14495						}
14496					}
14497
14498					elem = 0;
14499
14500				// If using innerHTML throws an exception, use the fallback method
14501				} catch ( e ) {}
14502			}
14503
14504			if ( elem ) {
14505				this.empty().append( value );
14506			}
14507		}, null, value, arguments.length );
14508	},
14509
14510	replaceWith: function() {
14511		var ignored = [];
14512
14513		// Make the changes, replacing each non-ignored context element with the new content
14514		return domManip( this, arguments, function( elem ) {
14515			var parent = this.parentNode;
14516
14517			if ( jQuery.inArray( this, ignored ) < 0 ) {
14518				jQuery.cleanData( getAll( this ) );
14519				if ( parent ) {
14520					parent.replaceChild( elem, this );
14521				}
14522			}
14523
14524		// Force callback invocation
14525		}, ignored );
14526	}
14527} );
14528
14529jQuery.each( {
14530	appendTo: "append",
14531	prependTo: "prepend",
14532	insertBefore: "before",
14533	insertAfter: "after",
14534	replaceAll: "replaceWith"
14535}, function( name, original ) {
14536	jQuery.fn[ name ] = function( selector ) {
14537		var elems,
14538			ret = [],
14539			insert = jQuery( selector ),
14540			last = insert.length - 1,
14541			i = 0;
14542
14543		for ( ; i <= last; i++ ) {
14544			elems = i === last ? this : this.clone( true );
14545			jQuery( insert[ i ] )[ original ]( elems );
14546
14547			// Support: Android <=4.0 only, PhantomJS 1 only
14548			// .get() because push.apply(_, arraylike) throws on ancient WebKit
14549			push.apply( ret, elems.get() );
14550		}
14551
14552		return this.pushStack( ret );
14553	};
14554} );
14555var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
14556
14557var getStyles = function( elem ) {
14558
14559		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
14560		// IE throws on elements created in popups
14561		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
14562		var view = elem.ownerDocument.defaultView;
14563
14564		if ( !view || !view.opener ) {
14565			view = window;
14566		}
14567
14568		return view.getComputedStyle( elem );
14569	};
14570
14571var swap = function( elem, options, callback ) {
14572	var ret, name,
14573		old = {};
14574
14575	// Remember the old values, and insert the new ones
14576	for ( name in options ) {
14577		old[ name ] = elem.style[ name ];
14578		elem.style[ name ] = options[ name ];
14579	}
14580
14581	ret = callback.call( elem );
14582
14583	// Revert the old values
14584	for ( name in options ) {
14585		elem.style[ name ] = old[ name ];
14586	}
14587
14588	return ret;
14589};
14590
14591
14592var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
14593
14594
14595
14596( function() {
14597
14598	// Executing both pixelPosition & boxSizingReliable tests require only one layout
14599	// so they're executed at the same time to save the second computation.
14600	function computeStyleTests() {
14601
14602		// This is a singleton, we need to execute it only once
14603		if ( !div ) {
14604			return;
14605		}
14606
14607		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
14608			"margin-top:1px;padding:0;border:0";
14609		div.style.cssText =
14610			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
14611			"margin:auto;border:1px;padding:1px;" +
14612			"width:60%;top:1%";
14613		documentElement.appendChild( container ).appendChild( div );
14614
14615		var divStyle = window.getComputedStyle( div );
14616		pixelPositionVal = divStyle.top !== "1%";
14617
14618		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
14619		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
14620
14621		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
14622		// Some styles come back with percentage values, even though they shouldn't
14623		div.style.right = "60%";
14624		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
14625
14626		// Support: IE 9 - 11 only
14627		// Detect misreporting of content dimensions for box-sizing:border-box elements
14628		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
14629
14630		// Support: IE 9 only
14631		// Detect overflow:scroll screwiness (gh-3699)
14632		// Support: Chrome <=64
14633		// Don't get tricked when zoom affects offsetWidth (gh-4029)
14634		div.style.position = "absolute";
14635		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
14636
14637		documentElement.removeChild( container );
14638
14639		// Nullify the div so it wouldn't be stored in the memory and
14640		// it will also be a sign that checks already performed
14641		div = null;
14642	}
14643
14644	function roundPixelMeasures( measure ) {
14645		return Math.round( parseFloat( measure ) );
14646	}
14647
14648	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
14649		reliableTrDimensionsVal, reliableMarginLeftVal,
14650		container = document.createElement( "div" ),
14651		div = document.createElement( "div" );
14652
14653	// Finish early in limited (non-browser) environments
14654	if ( !div.style ) {
14655		return;
14656	}
14657
14658	// Support: IE <=9 - 11 only
14659	// Style of cloned element affects source element cloned (#8908)
14660	div.style.backgroundClip = "content-box";
14661	div.cloneNode( true ).style.backgroundClip = "";
14662	support.clearCloneStyle = div.style.backgroundClip === "content-box";
14663
14664	jQuery.extend( support, {
14665		boxSizingReliable: function() {
14666			computeStyleTests();
14667			return boxSizingReliableVal;
14668		},
14669		pixelBoxStyles: function() {
14670			computeStyleTests();
14671			return pixelBoxStylesVal;
14672		},
14673		pixelPosition: function() {
14674			computeStyleTests();
14675			return pixelPositionVal;
14676		},
14677		reliableMarginLeft: function() {
14678			computeStyleTests();
14679			return reliableMarginLeftVal;
14680		},
14681		scrollboxSize: function() {
14682			computeStyleTests();
14683			return scrollboxSizeVal;
14684		},
14685
14686		// Support: IE 9 - 11+, Edge 15 - 18+
14687		// IE/Edge misreport `getComputedStyle` of table rows with width/height
14688		// set in CSS while `offset*` properties report correct values.
14689		// Behavior in IE 9 is more subtle than in newer versions & it passes
14690		// some versions of this test; make sure not to make it pass there!
14691		//
14692		// Support: Firefox 70+
14693		// Only Firefox includes border widths
14694		// in computed dimensions. (gh-4529)
14695		reliableTrDimensions: function() {
14696			var table, tr, trChild, trStyle;
14697			if ( reliableTrDimensionsVal == null ) {
14698				table = document.createElement( "table" );
14699				tr = document.createElement( "tr" );
14700				trChild = document.createElement( "div" );
14701
14702				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
14703				tr.style.cssText = "border:1px solid";
14704
14705				// Support: Chrome 86+
14706				// Height set through cssText does not get applied.
14707				// Computed height then comes back as 0.
14708				tr.style.height = "1px";
14709				trChild.style.height = "9px";
14710
14711				// Support: Android 8 Chrome 86+
14712				// In our bodyBackground.html iframe,
14713				// display for all div elements is set to "inline",
14714				// which causes a problem only in Android 8 Chrome 86.
14715				// Ensuring the div is display: block
14716				// gets around this issue.
14717				trChild.style.display = "block";
14718
14719				documentElement
14720					.appendChild( table )
14721					.appendChild( tr )
14722					.appendChild( trChild );
14723
14724				trStyle = window.getComputedStyle( tr );
14725				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
14726					parseInt( trStyle.borderTopWidth, 10 ) +
14727					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
14728
14729				documentElement.removeChild( table );
14730			}
14731			return reliableTrDimensionsVal;
14732		}
14733	} );
14734} )();
14735
14736
14737function curCSS( elem, name, computed ) {
14738	var width, minWidth, maxWidth, ret,
14739
14740		// Support: Firefox 51+
14741		// Retrieving style before computed somehow
14742		// fixes an issue with getting wrong values
14743		// on detached elements
14744		style = elem.style;
14745
14746	computed = computed || getStyles( elem );
14747
14748	// getPropertyValue is needed for:
14749	//   .css('filter') (IE 9 only, #12537)
14750	//   .css('--customProperty) (#3144)
14751	if ( computed ) {
14752		ret = computed.getPropertyValue( name ) || computed[ name ];
14753
14754		if ( ret === "" && !isAttached( elem ) ) {
14755			ret = jQuery.style( elem, name );
14756		}
14757
14758		// A tribute to the "awesome hack by Dean Edwards"
14759		// Android Browser returns percentage for some values,
14760		// but width seems to be reliably pixels.
14761		// This is against the CSSOM draft spec:
14762		// https://drafts.csswg.org/cssom/#resolved-values
14763		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
14764
14765			// Remember the original values
14766			width = style.width;
14767			minWidth = style.minWidth;
14768			maxWidth = style.maxWidth;
14769
14770			// Put in the new values to get a computed value out
14771			style.minWidth = style.maxWidth = style.width = ret;
14772			ret = computed.width;
14773
14774			// Revert the changed values
14775			style.width = width;
14776			style.minWidth = minWidth;
14777			style.maxWidth = maxWidth;
14778		}
14779	}
14780
14781	return ret !== undefined ?
14782
14783		// Support: IE <=9 - 11 only
14784		// IE returns zIndex value as an integer.
14785		ret + "" :
14786		ret;
14787}
14788
14789
14790function addGetHookIf( conditionFn, hookFn ) {
14791
14792	// Define the hook, we'll check on the first run if it's really needed.
14793	return {
14794		get: function() {
14795			if ( conditionFn() ) {
14796
14797				// Hook not needed (or it's not possible to use it due
14798				// to missing dependency), remove it.
14799				delete this.get;
14800				return;
14801			}
14802
14803			// Hook needed; redefine it so that the support test is not executed again.
14804			return ( this.get = hookFn ).apply( this, arguments );
14805		}
14806	};
14807}
14808
14809
14810var cssPrefixes = [ "Webkit", "Moz", "ms" ],
14811	emptyStyle = document.createElement( "div" ).style,
14812	vendorProps = {};
14813
14814// Return a vendor-prefixed property or undefined
14815function vendorPropName( name ) {
14816
14817	// Check for vendor prefixed names
14818	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
14819		i = cssPrefixes.length;
14820
14821	while ( i-- ) {
14822		name = cssPrefixes[ i ] + capName;
14823		if ( name in emptyStyle ) {
14824			return name;
14825		}
14826	}
14827}
14828
14829// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
14830function finalPropName( name ) {
14831	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
14832
14833	if ( final ) {
14834		return final;
14835	}
14836	if ( name in emptyStyle ) {
14837		return name;
14838	}
14839	return vendorProps[ name ] = vendorPropName( name ) || name;
14840}
14841
14842
14843var
14844
14845	// Swappable if display is none or starts with table
14846	// except "table", "table-cell", or "table-caption"
14847	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
14848	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
14849	rcustomProp = /^--/,
14850	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
14851	cssNormalTransform = {
14852		letterSpacing: "0",
14853		fontWeight: "400"
14854	};
14855
14856function setPositiveNumber( _elem, value, subtract ) {
14857
14858	// Any relative (+/-) values have already been
14859	// normalized at this point
14860	var matches = rcssNum.exec( value );
14861	return matches ?
14862
14863		// Guard against undefined "subtract", e.g., when used as in cssHooks
14864		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
14865		value;
14866}
14867
14868function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
14869	var i = dimension === "width" ? 1 : 0,
14870		extra = 0,
14871		delta = 0;
14872
14873	// Adjustment may not be necessary
14874	if ( box === ( isBorderBox ? "border" : "content" ) ) {
14875		return 0;
14876	}
14877
14878	for ( ; i < 4; i += 2 ) {
14879
14880		// Both box models exclude margin
14881		if ( box === "margin" ) {
14882			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
14883		}
14884
14885		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
14886		if ( !isBorderBox ) {
14887
14888			// Add padding
14889			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
14890
14891			// For "border" or "margin", add border
14892			if ( box !== "padding" ) {
14893				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
14894
14895			// But still keep track of it otherwise
14896			} else {
14897				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
14898			}
14899
14900		// If we get here with a border-box (content + padding + border), we're seeking "content" or
14901		// "padding" or "margin"
14902		} else {
14903
14904			// For "content", subtract padding
14905			if ( box === "content" ) {
14906				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
14907			}
14908
14909			// For "content" or "padding", subtract border
14910			if ( box !== "margin" ) {
14911				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
14912			}
14913		}
14914	}
14915
14916	// Account for positive content-box scroll gutter when requested by providing computedVal
14917	if ( !isBorderBox && computedVal >= 0 ) {
14918
14919		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
14920		// Assuming integer scroll gutter, subtract the rest and round down
14921		delta += Math.max( 0, Math.ceil(
14922			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
14923			computedVal -
14924			delta -
14925			extra -
14926			0.5
14927
14928		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
14929		// Use an explicit zero to avoid NaN (gh-3964)
14930		) ) || 0;
14931	}
14932
14933	return delta;
14934}
14935
14936function getWidthOrHeight( elem, dimension, extra ) {
14937
14938	// Start with computed style
14939	var styles = getStyles( elem ),
14940
14941		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
14942		// Fake content-box until we know it's needed to know the true value.
14943		boxSizingNeeded = !support.boxSizingReliable() || extra,
14944		isBorderBox = boxSizingNeeded &&
14945			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
14946		valueIsBorderBox = isBorderBox,
14947
14948		val = curCSS( elem, dimension, styles ),
14949		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
14950
14951	// Support: Firefox <=54
14952	// Return a confounding non-pixel value or feign ignorance, as appropriate.
14953	if ( rnumnonpx.test( val ) ) {
14954		if ( !extra ) {
14955			return val;
14956		}
14957		val = "auto";
14958	}
14959
14960
14961	// Support: IE 9 - 11 only
14962	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
14963	// In those cases, the computed value can be trusted to be border-box.
14964	if ( ( !support.boxSizingReliable() && isBorderBox ||
14965
14966		// Support: IE 10 - 11+, Edge 15 - 18+
14967		// IE/Edge misreport `getComputedStyle` of table rows with width/height
14968		// set in CSS while `offset*` properties report correct values.
14969		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
14970		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
14971
14972		// Fall back to offsetWidth/offsetHeight when value is "auto"
14973		// This happens for inline elements with no explicit setting (gh-3571)
14974		val === "auto" ||
14975
14976		// Support: Android <=4.1 - 4.3 only
14977		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
14978		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
14979
14980		// Make sure the element is visible & connected
14981		elem.getClientRects().length ) {
14982
14983		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
14984
14985		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
14986		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
14987		// retrieved value as a content box dimension.
14988		valueIsBorderBox = offsetProp in elem;
14989		if ( valueIsBorderBox ) {
14990			val = elem[ offsetProp ];
14991		}
14992	}
14993
14994	// Normalize "" and auto
14995	val = parseFloat( val ) || 0;
14996
14997	// Adjust for the element's box model
14998	return ( val +
14999		boxModelAdjustment(
15000			elem,
15001			dimension,
15002			extra || ( isBorderBox ? "border" : "content" ),
15003			valueIsBorderBox,
15004			styles,
15005
15006			// Provide the current computed size to request scroll gutter calculation (gh-3589)
15007			val
15008		)
15009	) + "px";
15010}
15011
15012jQuery.extend( {
15013
15014	// Add in style property hooks for overriding the default
15015	// behavior of getting and setting a style property
15016	cssHooks: {
15017		opacity: {
15018			get: function( elem, computed ) {
15019				if ( computed ) {
15020
15021					// We should always get a number back from opacity
15022					var ret = curCSS( elem, "opacity" );
15023					return ret === "" ? "1" : ret;
15024				}
15025			}
15026		}
15027	},
15028
15029	// Don't automatically add "px" to these possibly-unitless properties
15030	cssNumber: {
15031		"animationIterationCount": true,
15032		"columnCount": true,
15033		"fillOpacity": true,
15034		"flexGrow": true,
15035		"flexShrink": true,
15036		"fontWeight": true,
15037		"gridArea": true,
15038		"gridColumn": true,
15039		"gridColumnEnd": true,
15040		"gridColumnStart": true,
15041		"gridRow": true,
15042		"gridRowEnd": true,
15043		"gridRowStart": true,
15044		"lineHeight": true,
15045		"opacity": true,
15046		"order": true,
15047		"orphans": true,
15048		"widows": true,
15049		"zIndex": true,
15050		"zoom": true
15051	},
15052
15053	// Add in properties whose names you wish to fix before
15054	// setting or getting the value
15055	cssProps: {},
15056
15057	// Get and set the style property on a DOM Node
15058	style: function( elem, name, value, extra ) {
15059
15060		// Don't set styles on text and comment nodes
15061		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
15062			return;
15063		}
15064
15065		// Make sure that we're working with the right name
15066		var ret, type, hooks,
15067			origName = camelCase( name ),
15068			isCustomProp = rcustomProp.test( name ),
15069			style = elem.style;
15070
15071		// Make sure that we're working with the right name. We don't
15072		// want to query the value if it is a CSS custom property
15073		// since they are user-defined.
15074		if ( !isCustomProp ) {
15075			name = finalPropName( origName );
15076		}
15077
15078		// Gets hook for the prefixed version, then unprefixed version
15079		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
15080
15081		// Check if we're setting a value
15082		if ( value !== undefined ) {
15083			type = typeof value;
15084
15085			// Convert "+=" or "-=" to relative numbers (#7345)
15086			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
15087				value = adjustCSS( elem, name, ret );
15088
15089				// Fixes bug #9237
15090				type = "number";
15091			}
15092
15093			// Make sure that null and NaN values aren't set (#7116)
15094			if ( value == null || value !== value ) {
15095				return;
15096			}
15097
15098			// If a number was passed in, add the unit (except for certain CSS properties)
15099			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
15100			// "px" to a few hardcoded values.
15101			if ( type === "number" && !isCustomProp ) {
15102				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
15103			}
15104
15105			// background-* props affect original clone's values
15106			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
15107				style[ name ] = "inherit";
15108			}
15109
15110			// If a hook was provided, use that value, otherwise just set the specified value
vendor: 25,692 bytes, lines 15111-16107
15111			if ( !hooks || !( "set" in hooks ) ||
15112				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
15113
15114				if ( isCustomProp ) {
15115					style.setProperty( name, value );
15116				} else {
15117					style[ name ] = value;
15118				}
15119			}
15120
15121		} else {
15122
15123			// If a hook was provided get the non-computed value from there
15124			if ( hooks && "get" in hooks &&
15125				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
15126
15127				return ret;
15128			}
15129
15130			// Otherwise just get the value from the style object
15131			return style[ name ];
15132		}
15133	},
15134
15135	css: function( elem, name, extra, styles ) {
15136		var val, num, hooks,
15137			origName = camelCase( name ),
15138			isCustomProp = rcustomProp.test( name );
15139
15140		// Make sure that we're working with the right name. We don't
15141		// want to modify the value if it is a CSS custom property
15142		// since they are user-defined.
15143		if ( !isCustomProp ) {
15144			name = finalPropName( origName );
15145		}
15146
15147		// Try prefixed name followed by the unprefixed name
15148		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
15149
15150		// If a hook was provided get the computed value from there
15151		if ( hooks && "get" in hooks ) {
15152			val = hooks.get( elem, true, extra );
15153		}
15154
15155		// Otherwise, if a way to get the computed value exists, use that
15156		if ( val === undefined ) {
15157			val = curCSS( elem, name, styles );
15158		}
15159
15160		// Convert "normal" to computed value
15161		if ( val === "normal" && name in cssNormalTransform ) {
15162			val = cssNormalTransform[ name ];
15163		}
15164
15165		// Make numeric if forced or a qualifier was provided and val looks numeric
15166		if ( extra === "" || extra ) {
15167			num = parseFloat( val );
15168			return extra === true || isFinite( num ) ? num || 0 : val;
15169		}
15170
15171		return val;
15172	}
15173} );
15174
15175jQuery.each( [ "height", "width" ], function( _i, dimension ) {
15176	jQuery.cssHooks[ dimension ] = {
15177		get: function( elem, computed, extra ) {
15178			if ( computed ) {
15179
15180				// Certain elements can have dimension info if we invisibly show them
15181				// but it must have a current display style that would benefit
15182				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
15183
15184					// Support: Safari 8+
15185					// Table columns in Safari have non-zero offsetWidth & zero
15186					// getBoundingClientRect().width unless display is changed.
15187					// Support: IE <=11 only
15188					// Running getBoundingClientRect on a disconnected node
15189					// in IE throws an error.
15190					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
15191					swap( elem, cssShow, function() {
15192						return getWidthOrHeight( elem, dimension, extra );
15193					} ) :
15194					getWidthOrHeight( elem, dimension, extra );
15195			}
15196		},
15197
15198		set: function( elem, value, extra ) {
15199			var matches,
15200				styles = getStyles( elem ),
15201
15202				// Only read styles.position if the test has a chance to fail
15203				// to avoid forcing a reflow.
15204				scrollboxSizeBuggy = !support.scrollboxSize() &&
15205					styles.position === "absolute",
15206
15207				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
15208				boxSizingNeeded = scrollboxSizeBuggy || extra,
15209				isBorderBox = boxSizingNeeded &&
15210					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
15211				subtract = extra ?
15212					boxModelAdjustment(
15213						elem,
15214						dimension,
15215						extra,
15216						isBorderBox,
15217						styles
15218					) :
15219					0;
15220
15221			// Account for unreliable border-box dimensions by comparing offset* to computed and
15222			// faking a content-box to get border and padding (gh-3699)
15223			if ( isBorderBox && scrollboxSizeBuggy ) {
15224				subtract -= Math.ceil(
15225					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
15226					parseFloat( styles[ dimension ] ) -
15227					boxModelAdjustment( elem, dimension, "border", false, styles ) -
15228					0.5
15229				);
15230			}
15231
15232			// Convert to pixels if value adjustment is needed
15233			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
15234				( matches[ 3 ] || "px" ) !== "px" ) {
15235
15236				elem.style[ dimension ] = value;
15237				value = jQuery.css( elem, dimension );
15238			}
15239
15240			return setPositiveNumber( elem, value, subtract );
15241		}
15242	};
15243} );
15244
15245jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
15246	function( elem, computed ) {
15247		if ( computed ) {
15248			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
15249				elem.getBoundingClientRect().left -
15250					swap( elem, { marginLeft: 0 }, function() {
15251						return elem.getBoundingClientRect().left;
15252					} )
15253			) + "px";
15254		}
15255	}
15256);
15257
15258// These hooks are used by animate to expand properties
15259jQuery.each( {
15260	margin: "",
15261	padding: "",
15262	border: "Width"
15263}, function( prefix, suffix ) {
15264	jQuery.cssHooks[ prefix + suffix ] = {
15265		expand: function( value ) {
15266			var i = 0,
15267				expanded = {},
15268
15269				// Assumes a single number if not a string
15270				parts = typeof value === "string" ? value.split( " " ) : [ value ];
15271
15272			for ( ; i < 4; i++ ) {
15273				expanded[ prefix + cssExpand[ i ] + suffix ] =
15274					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
15275			}
15276
15277			return expanded;
15278		}
15279	};
15280
15281	if ( prefix !== "margin" ) {
15282		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
15283	}
15284} );
15285
15286jQuery.fn.extend( {
15287	css: function( name, value ) {
15288		return access( this, function( elem, name, value ) {
15289			var styles, len,
15290				map = {},
15291				i = 0;
15292
15293			if ( Array.isArray( name ) ) {
15294				styles = getStyles( elem );
15295				len = name.length;
15296
15297				for ( ; i < len; i++ ) {
15298					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
15299				}
15300
15301				return map;
15302			}
15303
15304			return value !== undefined ?
15305				jQuery.style( elem, name, value ) :
15306				jQuery.css( elem, name );
15307		}, name, value, arguments.length > 1 );
15308	}
15309} );
15310
15311
15312function Tween( elem, options, prop, end, easing ) {
15313	return new Tween.prototype.init( elem, options, prop, end, easing );
15314}
15315jQuery.Tween = Tween;
15316
15317Tween.prototype = {
15318	constructor: Tween,
15319	init: function( elem, options, prop, end, easing, unit ) {
15320		this.elem = elem;
15321		this.prop = prop;
15322		this.easing = easing || jQuery.easing._default;
15323		this.options = options;
15324		this.start = this.now = this.cur();
15325		this.end = end;
15326		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
15327	},
15328	cur: function() {
15329		var hooks = Tween.propHooks[ this.prop ];
15330
15331		return hooks && hooks.get ?
15332			hooks.get( this ) :
15333			Tween.propHooks._default.get( this );
15334	},
15335	run: function( percent ) {
15336		var eased,
15337			hooks = Tween.propHooks[ this.prop ];
15338
15339		if ( this.options.duration ) {
15340			this.pos = eased = jQuery.easing[ this.easing ](
15341				percent, this.options.duration * percent, 0, 1, this.options.duration
15342			);
15343		} else {
15344			this.pos = eased = percent;
15345		}
15346		this.now = ( this.end - this.start ) * eased + this.start;
15347
15348		if ( this.options.step ) {
15349			this.options.step.call( this.elem, this.now, this );
15350		}
15351
15352		if ( hooks && hooks.set ) {
15353			hooks.set( this );
15354		} else {
15355			Tween.propHooks._default.set( this );
15356		}
15357		return this;
15358	}
15359};
15360
15361Tween.prototype.init.prototype = Tween.prototype;
15362
15363Tween.propHooks = {
15364	_default: {
15365		get: function( tween ) {
15366			var result;
15367
15368			// Use a property on the element directly when it is not a DOM element,
15369			// or when there is no matching style property that exists.
15370			if ( tween.elem.nodeType !== 1 ||
15371				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
15372				return tween.elem[ tween.prop ];
15373			}
15374
15375			// Passing an empty string as a 3rd parameter to .css will automatically
15376			// attempt a parseFloat and fallback to a string if the parse fails.
15377			// Simple values such as "10px" are parsed to Float;
15378			// complex values such as "rotate(1rad)" are returned as-is.
15379			result = jQuery.css( tween.elem, tween.prop, "" );
15380
15381			// Empty strings, null, undefined and "auto" are converted to 0.
15382			return !result || result === "auto" ? 0 : result;
15383		},
15384		set: function( tween ) {
15385
15386			// Use step hook for back compat.
15387			// Use cssHook if its there.
15388			// Use .style if available and use plain properties where available.
15389			if ( jQuery.fx.step[ tween.prop ] ) {
15390				jQuery.fx.step[ tween.prop ]( tween );
15391			} else if ( tween.elem.nodeType === 1 && (
15392				jQuery.cssHooks[ tween.prop ] ||
15393					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
15394				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
15395			} else {
15396				tween.elem[ tween.prop ] = tween.now;
15397			}
15398		}
15399	}
15400};
15401
15402// Support: IE <=9 only
15403// Panic based approach to setting things on disconnected nodes
15404Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
15405	set: function( tween ) {
15406		if ( tween.elem.nodeType && tween.elem.parentNode ) {
15407			tween.elem[ tween.prop ] = tween.now;
15408		}
15409	}
15410};
15411
15412jQuery.easing = {
15413	linear: function( p ) {
15414		return p;
15415	},
15416	swing: function( p ) {
15417		return 0.5 - Math.cos( p * Math.PI ) / 2;
15418	},
15419	_default: "swing"
15420};
15421
15422jQuery.fx = Tween.prototype.init;
15423
15424// Back compat <1.8 extension point
15425jQuery.fx.step = {};
15426
15427
15428
15429
15430var
15431	fxNow, inProgress,
15432	rfxtypes = /^(?:toggle|show|hide)$/,
15433	rrun = /queueHooks$/;
15434
15435function schedule() {
15436	if ( inProgress ) {
15437		if ( document.hidden === false && window.requestAnimationFrame ) {
15438			window.requestAnimationFrame( schedule );
15439		} else {
15440			window.setTimeout( schedule, jQuery.fx.interval );
15441		}
15442
15443		jQuery.fx.tick();
15444	}
15445}
15446
15447// Animations created synchronously will run synchronously
15448function createFxNow() {
15449	window.setTimeout( function() {
15450		fxNow = undefined;
15451	} );
15452	return ( fxNow = Date.now() );
15453}
15454
15455// Generate parameters to create a standard animation
15456function genFx( type, includeWidth ) {
15457	var which,
15458		i = 0,
15459		attrs = { height: type };
15460
15461	// If we include width, step value is 1 to do all cssExpand values,
15462	// otherwise step value is 2 to skip over Left and Right
15463	includeWidth = includeWidth ? 1 : 0;
15464	for ( ; i < 4; i += 2 - includeWidth ) {
15465		which = cssExpand[ i ];
15466		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
15467	}
15468
15469	if ( includeWidth ) {
15470		attrs.opacity = attrs.width = type;
15471	}
15472
15473	return attrs;
15474}
15475
15476function createTween( value, prop, animation ) {
15477	var tween,
15478		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
15479		index = 0,
15480		length = collection.length;
15481	for ( ; index < length; index++ ) {
15482		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
15483
15484			// We're done with this property
15485			return tween;
15486		}
15487	}
15488}
15489
15490function defaultPrefilter( elem, props, opts ) {
15491	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
15492		isBox = "width" in props || "height" in props,
15493		anim = this,
15494		orig = {},
15495		style = elem.style,
15496		hidden = elem.nodeType && isHiddenWithinTree( elem ),
15497		dataShow = dataPriv.get( elem, "fxshow" );
15498
15499	// Queue-skipping animations hijack the fx hooks
15500	if ( !opts.queue ) {
15501		hooks = jQuery._queueHooks( elem, "fx" );
15502		if ( hooks.unqueued == null ) {
15503			hooks.unqueued = 0;
15504			oldfire = hooks.empty.fire;
15505			hooks.empty.fire = function() {
15506				if ( !hooks.unqueued ) {
15507					oldfire();
15508				}
15509			};
15510		}
15511		hooks.unqueued++;
15512
15513		anim.always( function() {
15514
15515			// Ensure the complete handler is called before this completes
15516			anim.always( function() {
15517				hooks.unqueued--;
15518				if ( !jQuery.queue( elem, "fx" ).length ) {
15519					hooks.empty.fire();
15520				}
15521			} );
15522		} );
15523	}
15524
15525	// Detect show/hide animations
15526	for ( prop in props ) {
15527		value = props[ prop ];
15528		if ( rfxtypes.test( value ) ) {
15529			delete props[ prop ];
15530			toggle = toggle || value === "toggle";
15531			if ( value === ( hidden ? "hide" : "show" ) ) {
15532
15533				// Pretend to be hidden if this is a "show" and
15534				// there is still data from a stopped show/hide
15535				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
15536					hidden = true;
15537
15538				// Ignore all other no-op show/hide data
15539				} else {
15540					continue;
15541				}
15542			}
15543			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
15544		}
15545	}
15546
15547	// Bail out if this is a no-op like .hide().hide()
15548	propTween = !jQuery.isEmptyObject( props );
15549	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
15550		return;
15551	}
15552
15553	// Restrict "overflow" and "display" styles during box animations
15554	if ( isBox && elem.nodeType === 1 ) {
15555
15556		// Support: IE <=9 - 11, Edge 12 - 15
15557		// Record all 3 overflow attributes because IE does not infer the shorthand
15558		// from identically-valued overflowX and overflowY and Edge just mirrors
15559		// the overflowX value there.
15560		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
15561
15562		// Identify a display type, preferring old show/hide data over the CSS cascade
15563		restoreDisplay = dataShow && dataShow.display;
15564		if ( restoreDisplay == null ) {
15565			restoreDisplay = dataPriv.get( elem, "display" );
15566		}
15567		display = jQuery.css( elem, "display" );
15568		if ( display === "none" ) {
15569			if ( restoreDisplay ) {
15570				display = restoreDisplay;
15571			} else {
15572
15573				// Get nonempty value(s) by temporarily forcing visibility
15574				showHide( [ elem ], true );
15575				restoreDisplay = elem.style.display || restoreDisplay;
15576				display = jQuery.css( elem, "display" );
15577				showHide( [ elem ] );
15578			}
15579		}
15580
15581		// Animate inline elements as inline-block
15582		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
15583			if ( jQuery.css( elem, "float" ) === "none" ) {
15584
15585				// Restore the original display value at the end of pure show/hide animations
15586				if ( !propTween ) {
15587					anim.done( function() {
15588						style.display = restoreDisplay;
15589					} );
15590					if ( restoreDisplay == null ) {
15591						display = style.display;
15592						restoreDisplay = display === "none" ? "" : display;
15593					}
15594				}
15595				style.display = "inline-block";
15596			}
15597		}
15598	}
15599
15600	if ( opts.overflow ) {
15601		style.overflow = "hidden";
15602		anim.always( function() {
15603			style.overflow = opts.overflow[ 0 ];
15604			style.overflowX = opts.overflow[ 1 ];
15605			style.overflowY = opts.overflow[ 2 ];
15606		} );
15607	}
15608
15609	// Implement show/hide animations
15610	propTween = false;
15611	for ( prop in orig ) {
15612
15613		// General show/hide setup for this element animation
15614		if ( !propTween ) {
15615			if ( dataShow ) {
15616				if ( "hidden" in dataShow ) {
15617					hidden = dataShow.hidden;
15618				}
15619			} else {
15620				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
15621			}
15622
15623			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
15624			if ( toggle ) {
15625				dataShow.hidden = !hidden;
15626			}
15627
15628			// Show elements before animating them
15629			if ( hidden ) {
15630				showHide( [ elem ], true );
15631			}
15632
15633			/* eslint-disable no-loop-func */
15634
15635			anim.done( function() {
15636
15637				/* eslint-enable no-loop-func */
15638
15639				// The final step of a "hide" animation is actually hiding the element
15640				if ( !hidden ) {
15641					showHide( [ elem ] );
15642				}
15643				dataPriv.remove( elem, "fxshow" );
15644				for ( prop in orig ) {
15645					jQuery.style( elem, prop, orig[ prop ] );
15646				}
15647			} );
15648		}
15649
15650		// Per-property setup
15651		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
15652		if ( !( prop in dataShow ) ) {
15653			dataShow[ prop ] = propTween.start;
15654			if ( hidden ) {
15655				propTween.end = propTween.start;
15656				propTween.start = 0;
15657			}
15658		}
15659	}
15660}
15661
15662function propFilter( props, specialEasing ) {
15663	var index, name, easing, value, hooks;
15664
15665	// camelCase, specialEasing and expand cssHook pass
15666	for ( index in props ) {
15667		name = camelCase( index );
15668		easing = specialEasing[ name ];
15669		value = props[ index ];
15670		if ( Array.isArray( value ) ) {
15671			easing = value[ 1 ];
15672			value = props[ index ] = value[ 0 ];
15673		}
15674
15675		if ( index !== name ) {
15676			props[ name ] = value;
15677			delete props[ index ];
15678		}
15679
15680		hooks = jQuery.cssHooks[ name ];
15681		if ( hooks && "expand" in hooks ) {
15682			value = hooks.expand( value );
15683			delete props[ name ];
15684
15685			// Not quite $.extend, this won't overwrite existing keys.
15686			// Reusing 'index' because we have the correct "name"
15687			for ( index in value ) {
15688				if ( !( index in props ) ) {
15689					props[ index ] = value[ index ];
15690					specialEasing[ index ] = easing;
15691				}
15692			}
15693		} else {
15694			specialEasing[ name ] = easing;
15695		}
15696	}
15697}
15698
15699function Animation( elem, properties, options ) {
15700	var result,
15701		stopped,
15702		index = 0,
15703		length = Animation.prefilters.length,
15704		deferred = jQuery.Deferred().always( function() {
15705
15706			// Don't match elem in the :animated selector
15707			delete tick.elem;
15708		} ),
15709		tick = function() {
15710			if ( stopped ) {
15711				return false;
15712			}
15713			var currentTime = fxNow || createFxNow(),
15714				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
15715
15716				// Support: Android 2.3 only
15717				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
15718				temp = remaining / animation.duration || 0,
15719				percent = 1 - temp,
15720				index = 0,
15721				length = animation.tweens.length;
15722
15723			for ( ; index < length; index++ ) {
15724				animation.tweens[ index ].run( percent );
15725			}
15726
15727			deferred.notifyWith( elem, [ animation, percent, remaining ] );
15728
15729			// If there's more to do, yield
15730			if ( percent < 1 && length ) {
15731				return remaining;
15732			}
15733
15734			// If this was an empty animation, synthesize a final progress notification
15735			if ( !length ) {
15736				deferred.notifyWith( elem, [ animation, 1, 0 ] );
15737			}
15738
15739			// Resolve the animation and report its conclusion
15740			deferred.resolveWith( elem, [ animation ] );
15741			return false;
15742		},
15743		animation = deferred.promise( {
15744			elem: elem,
15745			props: jQuery.extend( {}, properties ),
15746			opts: jQuery.extend( true, {
15747				specialEasing: {},
15748				easing: jQuery.easing._default
15749			}, options ),
15750			originalProperties: properties,
15751			originalOptions: options,
15752			startTime: fxNow || createFxNow(),
15753			duration: options.duration,
15754			tweens: [],
15755			createTween: function( prop, end ) {
15756				var tween = jQuery.Tween( elem, animation.opts, prop, end,
15757					animation.opts.specialEasing[ prop ] || animation.opts.easing );
15758				animation.tweens.push( tween );
15759				return tween;
15760			},
15761			stop: function( gotoEnd ) {
15762				var index = 0,
15763
15764					// If we are going to the end, we want to run all the tweens
15765					// otherwise we skip this part
15766					length = gotoEnd ? animation.tweens.length : 0;
15767				if ( stopped ) {
15768					return this;
15769				}
15770				stopped = true;
15771				for ( ; index < length; index++ ) {
15772					animation.tweens[ index ].run( 1 );
15773				}
15774
15775				// Resolve when we played the last frame; otherwise, reject
15776				if ( gotoEnd ) {
15777					deferred.notifyWith( elem, [ animation, 1, 0 ] );
15778					deferred.resolveWith( elem, [ animation, gotoEnd ] );
15779				} else {
15780					deferred.rejectWith( elem, [ animation, gotoEnd ] );
15781				}
15782				return this;
15783			}
15784		} ),
15785		props = animation.props;
15786
15787	propFilter( props, animation.opts.specialEasing );
15788
15789	for ( ; index < length; index++ ) {
15790		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
15791		if ( result ) {
15792			if ( isFunction( result.stop ) ) {
15793				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
15794					result.stop.bind( result );
15795			}
15796			return result;
15797		}
15798	}
15799
15800	jQuery.map( props, createTween, animation );
15801
15802	if ( isFunction( animation.opts.start ) ) {
15803		animation.opts.start.call( elem, animation );
15804	}
15805
15806	// Attach callbacks from options
15807	animation
15808		.progress( animation.opts.progress )
15809		.done( animation.opts.done, animation.opts.complete )
15810		.fail( animation.opts.fail )
15811		.always( animation.opts.always );
15812
15813	jQuery.fx.timer(
15814		jQuery.extend( tick, {
15815			elem: elem,
15816			anim: animation,
15817			queue: animation.opts.queue
15818		} )
15819	);
15820
15821	return animation;
15822}
15823
15824jQuery.Animation = jQuery.extend( Animation, {
15825
15826	tweeners: {
15827		"*": [ function( prop, value ) {
15828			var tween = this.createTween( prop, value );
15829			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
15830			return tween;
15831		} ]
15832	},
15833
15834	tweener: function( props, callback ) {
15835		if ( isFunction( props ) ) {
15836			callback = props;
15837			props = [ "*" ];
15838		} else {
15839			props = props.match( rnothtmlwhite );
15840		}
15841
15842		var prop,
15843			index = 0,
15844			length = props.length;
15845
15846		for ( ; index < length; index++ ) {
15847			prop = props[ index ];
15848			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
15849			Animation.tweeners[ prop ].unshift( callback );
15850		}
15851	},
15852
15853	prefilters: [ defaultPrefilter ],
15854
15855	prefilter: function( callback, prepend ) {
15856		if ( prepend ) {
15857			Animation.prefilters.unshift( callback );
15858		} else {
15859			Animation.prefilters.push( callback );
15860		}
15861	}
15862} );
15863
15864jQuery.speed = function( speed, easing, fn ) {
15865	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
15866		complete: fn || !fn && easing ||
15867			isFunction( speed ) && speed,
15868		duration: speed,
15869		easing: fn && easing || easing && !isFunction( easing ) && easing
15870	};
15871
15872	// Go to the end state if fx are off
15873	if ( jQuery.fx.off ) {
15874		opt.duration = 0;
15875
15876	} else {
15877		if ( typeof opt.duration !== "number" ) {
15878			if ( opt.duration in jQuery.fx.speeds ) {
15879				opt.duration = jQuery.fx.speeds[ opt.duration ];
15880
15881			} else {
15882				opt.duration = jQuery.fx.speeds._default;
15883			}
15884		}
15885	}
15886
15887	// Normalize opt.queue - true/undefined/null -> "fx"
15888	if ( opt.queue == null || opt.queue === true ) {
15889		opt.queue = "fx";
15890	}
15891
15892	// Queueing
15893	opt.old = opt.complete;
15894
15895	opt.complete = function() {
15896		if ( isFunction( opt.old ) ) {
15897			opt.old.call( this );
15898		}
15899
15900		if ( opt.queue ) {
15901			jQuery.dequeue( this, opt.queue );
15902		}
15903	};
15904
15905	return opt;
15906};
15907
15908jQuery.fn.extend( {
15909	fadeTo: function( speed, to, easing, callback ) {
15910
15911		// Show any hidden elements after setting opacity to 0
15912		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
15913
15914			// Animate to the value specified
15915			.end().animate( { opacity: to }, speed, easing, callback );
15916	},
15917	animate: function( prop, speed, easing, callback ) {
15918		var empty = jQuery.isEmptyObject( prop ),
15919			optall = jQuery.speed( speed, easing, callback ),
15920			doAnimation = function() {
15921
15922				// Operate on a copy of prop so per-property easing won't be lost
15923				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
15924
15925				// Empty animations, or finishing resolves immediately
15926				if ( empty || dataPriv.get( this, "finish" ) ) {
15927					anim.stop( true );
15928				}
15929			};
15930
15931		doAnimation.finish = doAnimation;
15932
15933		return empty || optall.queue === false ?
15934			this.each( doAnimation ) :
15935			this.queue( optall.queue, doAnimation );
15936	},
15937	stop: function( type, clearQueue, gotoEnd ) {
15938		var stopQueue = function( hooks ) {
15939			var stop = hooks.stop;
15940			delete hooks.stop;
15941			stop( gotoEnd );
15942		};
15943
15944		if ( typeof type !== "string" ) {
15945			gotoEnd = clearQueue;
15946			clearQueue = type;
15947			type = undefined;
15948		}
15949		if ( clearQueue ) {
15950			this.queue( type || "fx", [] );
15951		}
15952
15953		return this.each( function() {
15954			var dequeue = true,
15955				index = type != null && type + "queueHooks",
15956				timers = jQuery.timers,
15957				data = dataPriv.get( this );
15958
15959			if ( index ) {
15960				if ( data[ index ] && data[ index ].stop ) {
15961					stopQueue( data[ index ] );
15962				}
15963			} else {
15964				for ( index in data ) {
15965					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
15966						stopQueue( data[ index ] );
15967					}
15968				}
15969			}
15970
15971			for ( index = timers.length; index--; ) {
15972				if ( timers[ index ].elem === this &&
15973					( type == null || timers[ index ].queue === type ) ) {
15974
15975					timers[ index ].anim.stop( gotoEnd );
15976					dequeue = false;
15977					timers.splice( index, 1 );
15978				}
15979			}
15980
15981			// Start the next in the queue if the last step wasn't forced.
15982			// Timers currently will call their complete callbacks, which
15983			// will dequeue but only if they were gotoEnd.
15984			if ( dequeue || !gotoEnd ) {
15985				jQuery.dequeue( this, type );
15986			}
15987		} );
15988	},
15989	finish: function( type ) {
15990		if ( type !== false ) {
15991			type = type || "fx";
15992		}
15993		return this.each( function() {
15994			var index,
15995				data = dataPriv.get( this ),
15996				queue = data[ type + "queue" ],
15997				hooks = data[ type + "queueHooks" ],
15998				timers = jQuery.timers,
15999				length = queue ? queue.length : 0;
16000
16001			// Enable finishing flag on private data
16002			data.finish = true;
16003
16004			// Empty the queue first
16005			jQuery.queue( this, type, [] );
16006
16007			if ( hooks && hooks.stop ) {
16008				hooks.stop.call( this, true );
16009			}
16010
16011			// Look for any active animations, and finish them
16012			for ( index = timers.length; index--; ) {
16013				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
16014					timers[ index ].anim.stop( true );
16015					timers.splice( index, 1 );
16016				}
16017			}
16018
16019			// Look for any animations in the old queue and finish them
16020			for ( index = 0; index < length; index++ ) {
16021				if ( queue[ index ] && queue[ index ].finish ) {
16022					queue[ index ].finish.call( this );
16023				}
16024			}
16025
16026			// Turn off finishing flag
16027			delete data.finish;
16028		} );
16029	}
16030} );
16031
16032jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
16033	var cssFn = jQuery.fn[ name ];
16034	jQuery.fn[ name ] = function( speed, easing, callback ) {
16035		return speed == null || typeof speed === "boolean" ?
16036			cssFn.apply( this, arguments ) :
16037			this.animate( genFx( name, true ), speed, easing, callback );
16038	};
16039} );
16040
16041// Generate shortcuts for custom animations
16042jQuery.each( {
16043	slideDown: genFx( "show" ),
16044	slideUp: genFx( "hide" ),
16045	slideToggle: genFx( "toggle" ),
16046	fadeIn: { opacity: "show" },
16047	fadeOut: { opacity: "hide" },
16048	fadeToggle: { opacity: "toggle" }
16049}, function( name, props ) {
16050	jQuery.fn[ name ] = function( speed, easing, callback ) {
16051		return this.animate( props, speed, easing, callback );
16052	};
16053} );
16054
16055jQuery.timers = [];
16056jQuery.fx.tick = function() {
16057	var timer,
16058		i = 0,
16059		timers = jQuery.timers;
16060
16061	fxNow = Date.now();
16062
16063	for ( ; i < timers.length; i++ ) {
16064		timer = timers[ i ];
16065
16066		// Run the timer and safely remove it when done (allowing for external removal)
16067		if ( !timer() && timers[ i ] === timer ) {
16068			timers.splice( i--, 1 );
16069		}
16070	}
16071
16072	if ( !timers.length ) {
16073		jQuery.fx.stop();
16074	}
16075	fxNow = undefined;
16076};
16077
16078jQuery.fx.timer = function( timer ) {
16079	jQuery.timers.push( timer );
16080	jQuery.fx.start();
16081};
16082
16083jQuery.fx.interval = 13;
16084jQuery.fx.start = function() {
16085	if ( inProgress ) {
16086		return;
16087	}
16088
16089	inProgress = true;
16090	schedule();
16091};
16092
16093jQuery.fx.stop = function() {
16094	inProgress = null;
16095};
16096
16097jQuery.fx.speeds = {
16098	slow: 600,
16099	fast: 200,
16100
16101	// Default speed
16102	_default: 400
16103};
16104
16105
16106// Based off of the plugin by Clint Helfers, with permission.
16107// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
vendor: 21,001 bytes, lines 16108-16976
16108jQuery.fn.delay = function( time, type ) {
16109	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
16110	type = type || "fx";
16111
16112	return this.queue( type, function( next, hooks ) {
16113		var timeout = window.setTimeout( next, time );
16114		hooks.stop = function() {
16115			window.clearTimeout( timeout );
16116		};
16117	} );
16118};
16119
16120
16121( function() {
16122	var input = document.createElement( "input" ),
16123		select = document.createElement( "select" ),
16124		opt = select.appendChild( document.createElement( "option" ) );
16125
16126	input.type = "checkbox";
16127
16128	// Support: Android <=4.3 only
16129	// Default value for a checkbox should be "on"
16130	support.checkOn = input.value !== "";
16131
16132	// Support: IE <=11 only
16133	// Must access selectedIndex to make default options select
16134	support.optSelected = opt.selected;
16135
16136	// Support: IE <=11 only
16137	// An input loses its value after becoming a radio
16138	input = document.createElement( "input" );
16139	input.value = "t";
16140	input.type = "radio";
16141	support.radioValue = input.value === "t";
16142} )();
16143
16144
16145var boolHook,
16146	attrHandle = jQuery.expr.attrHandle;
16147
16148jQuery.fn.extend( {
16149	attr: function( name, value ) {
16150		return access( this, jQuery.attr, name, value, arguments.length > 1 );
16151	},
16152
16153	removeAttr: function( name ) {
16154		return this.each( function() {
16155			jQuery.removeAttr( this, name );
16156		} );
16157	}
16158} );
16159
16160jQuery.extend( {
16161	attr: function( elem, name, value ) {
16162		var ret, hooks,
16163			nType = elem.nodeType;
16164
16165		// Don't get/set attributes on text, comment and attribute nodes
16166		if ( nType === 3 || nType === 8 || nType === 2 ) {
16167			return;
16168		}
16169
16170		// Fallback to prop when attributes are not supported
16171		if ( typeof elem.getAttribute === "undefined" ) {
16172			return jQuery.prop( elem, name, value );
16173		}
16174
16175		// Attribute hooks are determined by the lowercase version
16176		// Grab necessary hook if one is defined
16177		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
16178			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
16179				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
16180		}
16181
16182		if ( value !== undefined ) {
16183			if ( value === null ) {
16184				jQuery.removeAttr( elem, name );
16185				return;
16186			}
16187
16188			if ( hooks && "set" in hooks &&
16189				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
16190				return ret;
16191			}
16192
16193			elem.setAttribute( name, value + "" );
16194			return value;
16195		}
16196
16197		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
16198			return ret;
16199		}
16200
16201		ret = jQuery.find.attr( elem, name );
16202
16203		// Non-existent attributes return null, we normalize to undefined
16204		return ret == null ? undefined : ret;
16205	},
16206
16207	attrHooks: {
16208		type: {
16209			set: function( elem, value ) {
16210				if ( !support.radioValue && value === "radio" &&
16211					nodeName( elem, "input" ) ) {
16212					var val = elem.value;
16213					elem.setAttribute( "type", value );
16214					if ( val ) {
16215						elem.value = val;
16216					}
16217					return value;
16218				}
16219			}
16220		}
16221	},
16222
16223	removeAttr: function( elem, value ) {
16224		var name,
16225			i = 0,
16226
16227			// Attribute names can contain non-HTML whitespace characters
16228			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
16229			attrNames = value && value.match( rnothtmlwhite );
16230
16231		if ( attrNames && elem.nodeType === 1 ) {
16232			while ( ( name = attrNames[ i++ ] ) ) {
16233				elem.removeAttribute( name );
16234			}
16235		}
16236	}
16237} );
16238
16239// Hooks for boolean attributes
16240boolHook = {
16241	set: function( elem, value, name ) {
16242		if ( value === false ) {
16243
16244			// Remove boolean attributes when set to false
16245			jQuery.removeAttr( elem, name );
16246		} else {
16247			elem.setAttribute( name, name );
16248		}
16249		return name;
16250	}
16251};
16252
16253jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
16254	var getter = attrHandle[ name ] || jQuery.find.attr;
16255
16256	attrHandle[ name ] = function( elem, name, isXML ) {
16257		var ret, handle,
16258			lowercaseName = name.toLowerCase();
16259
16260		if ( !isXML ) {
16261
16262			// Avoid an infinite loop by temporarily removing this function from the getter
16263			handle = attrHandle[ lowercaseName ];
16264			attrHandle[ lowercaseName ] = ret;
16265			ret = getter( elem, name, isXML ) != null ?
16266				lowercaseName :
16267				null;
16268			attrHandle[ lowercaseName ] = handle;
16269		}
16270		return ret;
16271	};
16272} );
16273
16274
16275
16276
16277var rfocusable = /^(?:input|select|textarea|button)$/i,
16278	rclickable = /^(?:a|area)$/i;
16279
16280jQuery.fn.extend( {
16281	prop: function( name, value ) {
16282		return access( this, jQuery.prop, name, value, arguments.length > 1 );
16283	},
16284
16285	removeProp: function( name ) {
16286		return this.each( function() {
16287			delete this[ jQuery.propFix[ name ] || name ];
16288		} );
16289	}
16290} );
16291
16292jQuery.extend( {
16293	prop: function( elem, name, value ) {
16294		var ret, hooks,
16295			nType = elem.nodeType;
16296
16297		// Don't get/set properties on text, comment and attribute nodes
16298		if ( nType === 3 || nType === 8 || nType === 2 ) {
16299			return;
16300		}
16301
16302		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
16303
16304			// Fix name and attach hooks
16305			name = jQuery.propFix[ name ] || name;
16306			hooks = jQuery.propHooks[ name ];
16307		}
16308
16309		if ( value !== undefined ) {
16310			if ( hooks && "set" in hooks &&
16311				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
16312				return ret;
16313			}
16314
16315			return ( elem[ name ] = value );
16316		}
16317
16318		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
16319			return ret;
16320		}
16321
16322		return elem[ name ];
16323	},
16324
16325	propHooks: {
16326		tabIndex: {
16327			get: function( elem ) {
16328
16329				// Support: IE <=9 - 11 only
16330				// elem.tabIndex doesn't always return the
16331				// correct value when it hasn't been explicitly set
16332				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
16333				// Use proper attribute retrieval(#12072)
16334				var tabindex = jQuery.find.attr( elem, "tabindex" );
16335
16336				if ( tabindex ) {
16337					return parseInt( tabindex, 10 );
16338				}
16339
16340				if (
16341					rfocusable.test( elem.nodeName ) ||
16342					rclickable.test( elem.nodeName ) &&
16343					elem.href
16344				) {
16345					return 0;
16346				}
16347
16348				return -1;
16349			}
16350		}
16351	},
16352
16353	propFix: {
16354		"for": "htmlFor",
16355		"class": "className"
16356	}
16357} );
16358
16359// Support: IE <=11 only
16360// Accessing the selectedIndex property
16361// forces the browser to respect setting selected
16362// on the option
16363// The getter ensures a default option is selected
16364// when in an optgroup
16365// eslint rule "no-unused-expressions" is disabled for this code
16366// since it considers such accessions noop
16367if ( !support.optSelected ) {
16368	jQuery.propHooks.selected = {
16369		get: function( elem ) {
16370
16371			/* eslint no-unused-expressions: "off" */
16372
16373			var parent = elem.parentNode;
16374			if ( parent && parent.parentNode ) {
16375				parent.parentNode.selectedIndex;
16376			}
16377			return null;
16378		},
16379		set: function( elem ) {
16380
16381			/* eslint no-unused-expressions: "off" */
16382
16383			var parent = elem.parentNode;
16384			if ( parent ) {
16385				parent.selectedIndex;
16386
16387				if ( parent.parentNode ) {
16388					parent.parentNode.selectedIndex;
16389				}
16390			}
16391		}
16392	};
16393}
16394
16395jQuery.each( [
16396	"tabIndex",
16397	"readOnly",
16398	"maxLength",
16399	"cellSpacing",
16400	"cellPadding",
16401	"rowSpan",
16402	"colSpan",
16403	"useMap",
16404	"frameBorder",
16405	"contentEditable"
16406], function() {
16407	jQuery.propFix[ this.toLowerCase() ] = this;
16408} );
16409
16410
16411
16412
16413	// Strip and collapse whitespace according to HTML spec
16414	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
16415	function stripAndCollapse( value ) {
16416		var tokens = value.match( rnothtmlwhite ) || [];
16417		return tokens.join( " " );
16418	}
16419
16420
16421function getClass( elem ) {
16422	return elem.getAttribute && elem.getAttribute( "class" ) || "";
16423}
16424
16425function classesToArray( value ) {
16426	if ( Array.isArray( value ) ) {
16427		return value;
16428	}
16429	if ( typeof value === "string" ) {
16430		return value.match( rnothtmlwhite ) || [];
16431	}
16432	return [];
16433}
16434
16435jQuery.fn.extend( {
16436	addClass: function( value ) {
16437		var classes, elem, cur, curValue, clazz, j, finalValue,
16438			i = 0;
16439
16440		if ( isFunction( value ) ) {
16441			return this.each( function( j ) {
16442				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
16443			} );
16444		}
16445
16446		classes = classesToArray( value );
16447
16448		if ( classes.length ) {
16449			while ( ( elem = this[ i++ ] ) ) {
16450				curValue = getClass( elem );
16451				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
16452
16453				if ( cur ) {
16454					j = 0;
16455					while ( ( clazz = classes[ j++ ] ) ) {
16456						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
16457							cur += clazz + " ";
16458						}
16459					}
16460
16461					// Only assign if different to avoid unneeded rendering.
16462					finalValue = stripAndCollapse( cur );
16463					if ( curValue !== finalValue ) {
16464						elem.setAttribute( "class", finalValue );
16465					}
16466				}
16467			}
16468		}
16469
16470		return this;
16471	},
16472
16473	removeClass: function( value ) {
16474		var classes, elem, cur, curValue, clazz, j, finalValue,
16475			i = 0;
16476
16477		if ( isFunction( value ) ) {
16478			return this.each( function( j ) {
16479				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
16480			} );
16481		}
16482
16483		if ( !arguments.length ) {
16484			return this.attr( "class", "" );
16485		}
16486
16487		classes = classesToArray( value );
16488
16489		if ( classes.length ) {
16490			while ( ( elem = this[ i++ ] ) ) {
16491				curValue = getClass( elem );
16492
16493				// This expression is here for better compressibility (see addClass)
16494				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
16495
16496				if ( cur ) {
16497					j = 0;
16498					while ( ( clazz = classes[ j++ ] ) ) {
16499
16500						// Remove *all* instances
16501						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
16502							cur = cur.replace( " " + clazz + " ", " " );
16503						}
16504					}
16505
16506					// Only assign if different to avoid unneeded rendering.
16507					finalValue = stripAndCollapse( cur );
16508					if ( curValue !== finalValue ) {
16509						elem.setAttribute( "class", finalValue );
16510					}
16511				}
16512			}
16513		}
16514
16515		return this;
16516	},
16517
16518	toggleClass: function( value, stateVal ) {
16519		var type = typeof value,
16520			isValidValue = type === "string" || Array.isArray( value );
16521
16522		if ( typeof stateVal === "boolean" && isValidValue ) {
16523			return stateVal ? this.addClass( value ) : this.removeClass( value );
16524		}
16525
16526		if ( isFunction( value ) ) {
16527			return this.each( function( i ) {
16528				jQuery( this ).toggleClass(
16529					value.call( this, i, getClass( this ), stateVal ),
16530					stateVal
16531				);
16532			} );
16533		}
16534
16535		return this.each( function() {
16536			var className, i, self, classNames;
16537
16538			if ( isValidValue ) {
16539
16540				// Toggle individual class names
16541				i = 0;
16542				self = jQuery( this );
16543				classNames = classesToArray( value );
16544
16545				while ( ( className = classNames[ i++ ] ) ) {
16546
16547					// Check each className given, space separated list
16548					if ( self.hasClass( className ) ) {
16549						self.removeClass( className );
16550					} else {
16551						self.addClass( className );
16552					}
16553				}
16554
16555			// Toggle whole class name
16556			} else if ( value === undefined || type === "boolean" ) {
16557				className = getClass( this );
16558				if ( className ) {
16559
16560					// Store className if set
16561					dataPriv.set( this, "__className__", className );
16562				}
16563
16564				// If the element has a class name or if we're passed `false`,
16565				// then remove the whole classname (if there was one, the above saved it).
16566				// Otherwise bring back whatever was previously saved (if anything),
16567				// falling back to the empty string if nothing was stored.
16568				if ( this.setAttribute ) {
16569					this.setAttribute( "class",
16570						className || value === false ?
16571							"" :
16572							dataPriv.get( this, "__className__" ) || ""
16573					);
16574				}
16575			}
16576		} );
16577	},
16578
16579	hasClass: function( selector ) {
16580		var className, elem,
16581			i = 0;
16582
16583		className = " " + selector + " ";
16584		while ( ( elem = this[ i++ ] ) ) {
16585			if ( elem.nodeType === 1 &&
16586				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
16587				return true;
16588			}
16589		}
16590
16591		return false;
16592	}
16593} );
16594
16595
16596
16597
16598var rreturn = /\r/g;
16599
16600jQuery.fn.extend( {
16601	val: function( value ) {
16602		var hooks, ret, valueIsFunction,
16603			elem = this[ 0 ];
16604
16605		if ( !arguments.length ) {
16606			if ( elem ) {
16607				hooks = jQuery.valHooks[ elem.type ] ||
16608					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
16609
16610				if ( hooks &&
16611					"get" in hooks &&
16612					( ret = hooks.get( elem, "value" ) ) !== undefined
16613				) {
16614					return ret;
16615				}
16616
16617				ret = elem.value;
16618
16619				// Handle most common string cases
16620				if ( typeof ret === "string" ) {
16621					return ret.replace( rreturn, "" );
16622				}
16623
16624				// Handle cases where value is null/undef or number
16625				return ret == null ? "" : ret;
16626			}
16627
16628			return;
16629		}
16630
16631		valueIsFunction = isFunction( value );
16632
16633		return this.each( function( i ) {
16634			var val;
16635
16636			if ( this.nodeType !== 1 ) {
16637				return;
16638			}
16639
16640			if ( valueIsFunction ) {
16641				val = value.call( this, i, jQuery( this ).val() );
16642			} else {
16643				val = value;
16644			}
16645
16646			// Treat null/undefined as ""; convert numbers to string
16647			if ( val == null ) {
16648				val = "";
16649
16650			} else if ( typeof val === "number" ) {
16651				val += "";
16652
16653			} else if ( Array.isArray( val ) ) {
16654				val = jQuery.map( val, function( value ) {
16655					return value == null ? "" : value + "";
16656				} );
16657			}
16658
16659			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
16660
16661			// If set returns undefined, fall back to normal setting
16662			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
16663				this.value = val;
16664			}
16665		} );
16666	}
16667} );
16668
16669jQuery.extend( {
16670	valHooks: {
16671		option: {
16672			get: function( elem ) {
16673
16674				var val = jQuery.find.attr( elem, "value" );
16675				return val != null ?
16676					val :
16677
16678					// Support: IE <=10 - 11 only
16679					// option.text throws exceptions (#14686, #14858)
16680					// Strip and collapse whitespace
16681					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
16682					stripAndCollapse( jQuery.text( elem ) );
16683			}
16684		},
16685		select: {
16686			get: function( elem ) {
16687				var value, option, i,
16688					options = elem.options,
16689					index = elem.selectedIndex,
16690					one = elem.type === "select-one",
16691					values = one ? null : [],
16692					max = one ? index + 1 : options.length;
16693
16694				if ( index < 0 ) {
16695					i = max;
16696
16697				} else {
16698					i = one ? index : 0;
16699				}
16700
16701				// Loop through all the selected options
16702				for ( ; i < max; i++ ) {
16703					option = options[ i ];
16704
16705					// Support: IE <=9 only
16706					// IE8-9 doesn't update selected after form reset (#2551)
16707					if ( ( option.selected || i === index ) &&
16708
16709							// Don't return options that are disabled or in a disabled optgroup
16710							!option.disabled &&
16711							( !option.parentNode.disabled ||
16712								!nodeName( option.parentNode, "optgroup" ) ) ) {
16713
16714						// Get the specific value for the option
16715						value = jQuery( option ).val();
16716
16717						// We don't need an array for one selects
16718						if ( one ) {
16719							return value;
16720						}
16721
16722						// Multi-Selects return an array
16723						values.push( value );
16724					}
16725				}
16726
16727				return values;
16728			},
16729
16730			set: function( elem, value ) {
16731				var optionSet, option,
16732					options = elem.options,
16733					values = jQuery.makeArray( value ),
16734					i = options.length;
16735
16736				while ( i-- ) {
16737					option = options[ i ];
16738
16739					/* eslint-disable no-cond-assign */
16740
16741					if ( option.selected =
16742						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
16743					) {
16744						optionSet = true;
16745					}
16746
16747					/* eslint-enable no-cond-assign */
16748				}
16749
16750				// Force browsers to behave consistently when non-matching value is set
16751				if ( !optionSet ) {
16752					elem.selectedIndex = -1;
16753				}
16754				return values;
16755			}
16756		}
16757	}
16758} );
16759
16760// Radios and checkboxes getter/setter
16761jQuery.each( [ "radio", "checkbox" ], function() {
16762	jQuery.valHooks[ this ] = {
16763		set: function( elem, value ) {
16764			if ( Array.isArray( value ) ) {
16765				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
16766			}
16767		}
16768	};
16769	if ( !support.checkOn ) {
16770		jQuery.valHooks[ this ].get = function( elem ) {
16771			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
16772		};
16773	}
16774} );
16775
16776
16777
16778
16779// Return jQuery for attributes-only inclusion
16780
16781
16782support.focusin = "onfocusin" in window;
16783
16784
16785var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
16786	stopPropagationCallback = function( e ) {
16787		e.stopPropagation();
16788	};
16789
16790jQuery.extend( jQuery.event, {
16791
16792	trigger: function( event, data, elem, onlyHandlers ) {
16793
16794		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
16795			eventPath = [ elem || document ],
16796			type = hasOwn.call( event, "type" ) ? event.type : event,
16797			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
16798
16799		cur = lastElement = tmp = elem = elem || document;
16800
16801		// Don't do events on text and comment nodes
16802		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
16803			return;
16804		}
16805
16806		// focus/blur morphs to focusin/out; ensure we're not firing them right now
16807		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
16808			return;
16809		}
16810
16811		if ( type.indexOf( "." ) > -1 ) {
16812
16813			// Namespaced trigger; create a regexp to match event type in handle()
16814			namespaces = type.split( "." );
16815			type = namespaces.shift();
16816			namespaces.sort();
16817		}
16818		ontype = type.indexOf( ":" ) < 0 && "on" + type;
16819
16820		// Caller can pass in a jQuery.Event object, Object, or just an event type string
16821		event = event[ jQuery.expando ] ?
16822			event :
16823			new jQuery.Event( type, typeof event === "object" && event );
16824
16825		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
16826		event.isTrigger = onlyHandlers ? 2 : 3;
16827		event.namespace = namespaces.join( "." );
16828		event.rnamespace = event.namespace ?
16829			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
16830			null;
16831
16832		// Clean up the event in case it is being reused
16833		event.result = undefined;
16834		if ( !event.target ) {
16835			event.target = elem;
16836		}
16837
16838		// Clone any incoming data and prepend the event, creating the handler arg list
16839		data = data == null ?
16840			[ event ] :
16841			jQuery.makeArray( data, [ event ] );
16842
16843		// Allow special events to draw outside the lines
16844		special = jQuery.event.special[ type ] || {};
16845		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
16846			return;
16847		}
16848
16849		// Determine event propagation path in advance, per W3C events spec (#9951)
16850		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
16851		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
16852
16853			bubbleType = special.delegateType || type;
16854			if ( !rfocusMorph.test( bubbleType + type ) ) {
16855				cur = cur.parentNode;
16856			}
16857			for ( ; cur; cur = cur.parentNode ) {
16858				eventPath.push( cur );
16859				tmp = cur;
16860			}
16861
16862			// Only add window if we got to document (e.g., not plain obj or detached DOM)
16863			if ( tmp === ( elem.ownerDocument || document ) ) {
16864				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
16865			}
16866		}
16867
16868		// Fire handlers on the event path
16869		i = 0;
16870		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
16871			lastElement = cur;
16872			event.type = i > 1 ?
16873				bubbleType :
16874				special.bindType || type;
16875
16876			// jQuery handler
16877			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
16878				dataPriv.get( cur, "handle" );
16879			if ( handle ) {
16880				handle.apply( cur, data );
16881			}
16882
16883			// Native handler
16884			handle = ontype && cur[ ontype ];
16885			if ( handle && handle.apply && acceptData( cur ) ) {
16886				event.result = handle.apply( cur, data );
16887				if ( event.result === false ) {
16888					event.preventDefault();
16889				}
16890			}
16891		}
16892		event.type = type;
16893
16894		// If nobody prevented the default action, do it now
16895		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
16896
16897			if ( ( !special._default ||
16898				special._default.apply( eventPath.pop(), data ) === false ) &&
16899				acceptData( elem ) ) {
16900
16901				// Call a native DOM method on the target with the same name as the event.
16902				// Don't do default actions on window, that's where global variables be (#6170)
16903				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
16904
16905					// Don't re-trigger an onFOO event when we call its FOO() method
16906					tmp = elem[ ontype ];
16907
16908					if ( tmp ) {
16909						elem[ ontype ] = null;
16910					}
16911
16912					// Prevent re-triggering of the same event, since we already bubbled it above
16913					jQuery.event.triggered = type;
16914
16915					if ( event.isPropagationStopped() ) {
16916						lastElement.addEventListener( type, stopPropagationCallback );
16917					}
16918
16919					elem[ type ]();
16920
16921					if ( event.isPropagationStopped() ) {
16922						lastElement.removeEventListener( type, stopPropagationCallback );
16923					}
16924
16925					jQuery.event.triggered = undefined;
16926
16927					if ( tmp ) {
16928						elem[ ontype ] = tmp;
16929					}
16930				}
16931			}
16932		}
16933
16934		return event.result;
16935	},
16936
16937	// Piggyback on a donor event to simulate a different one
16938	// Used only for `focus(in | out)` events
16939	simulate: function( type, elem, event ) {
16940		var e = jQuery.extend(
16941			new jQuery.Event(),
16942			event,
16943			{
16944				type: type,
16945				isSimulated: true
16946			}
16947		);
16948
16949		jQuery.event.trigger( e, null, elem );
16950	}
16951
16952} );
16953
16954jQuery.fn.extend( {
16955
16956	trigger: function( type, data ) {
16957		return this.each( function() {
16958			jQuery.event.trigger( type, data, this );
16959		} );
16960	},
16961	triggerHandler: function( type, data ) {
16962		var elem = this[ 0 ];
16963		if ( elem ) {
16964			return jQuery.event.trigger( type, data, elem, true );
16965		}
16966	}
16967} );
16968
16969
16970// Support: Firefox <=44
16971// Firefox doesn't have focus(in | out) events
16972// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
16973//
16974// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
16975// focus(in | out) events fire after focus & blur events,
16976// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
vendor: 53,617 bytes, lines 16977-19002
16977// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
16978if ( !support.focusin ) {
16979	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
16980
16981		// Attach a single capturing handler on the document while someone wants focusin/focusout
16982		var handler = function( event ) {
16983			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
16984		};
16985
16986		jQuery.event.special[ fix ] = {
16987			setup: function() {
16988
16989				// Handle: regular nodes (via `this.ownerDocument`), window
16990				// (via `this.document`) & document (via `this`).
16991				var doc = this.ownerDocument || this.document || this,
16992					attaches = dataPriv.access( doc, fix );
16993
16994				if ( !attaches ) {
16995					doc.addEventListener( orig, handler, true );
16996				}
16997				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
16998			},
16999			teardown: function() {
17000				var doc = this.ownerDocument || this.document || this,
17001					attaches = dataPriv.access( doc, fix ) - 1;
17002
17003				if ( !attaches ) {
17004					doc.removeEventListener( orig, handler, true );
17005					dataPriv.remove( doc, fix );
17006
17007				} else {
17008					dataPriv.access( doc, fix, attaches );
17009				}
17010			}
17011		};
17012	} );
17013}
17014var location = window.location;
17015
17016var nonce = { guid: Date.now() };
17017
17018var rquery = ( /\?/ );
17019
17020
17021
17022// Cross-browser xml parsing
17023jQuery.parseXML = function( data ) {
17024	var xml, parserErrorElem;
17025	if ( !data || typeof data !== "string" ) {
17026		return null;
17027	}
17028
17029	// Support: IE 9 - 11 only
17030	// IE throws on parseFromString with invalid input.
17031	try {
17032		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
17033	} catch ( e ) {}
17034
17035	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
17036	if ( !xml || parserErrorElem ) {
17037		jQuery.error( "Invalid XML: " + (
17038			parserErrorElem ?
17039				jQuery.map( parserErrorElem.childNodes, function( el ) {
17040					return el.textContent;
17041				} ).join( "\n" ) :
17042				data
17043		) );
17044	}
17045	return xml;
17046};
17047
17048
17049var
17050	rbracket = /\[\]$/,
17051	rCRLF = /\r?\n/g,
17052	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
17053	rsubmittable = /^(?:input|select|textarea|keygen)/i;
17054
17055function buildParams( prefix, obj, traditional, add ) {
17056	var name;
17057
17058	if ( Array.isArray( obj ) ) {
17059
17060		// Serialize array item.
17061		jQuery.each( obj, function( i, v ) {
17062			if ( traditional || rbracket.test( prefix ) ) {
17063
17064				// Treat each array item as a scalar.
17065				add( prefix, v );
17066
17067			} else {
17068
17069				// Item is non-scalar (array or object), encode its numeric index.
17070				buildParams(
17071					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
17072					v,
17073					traditional,
17074					add
17075				);
17076			}
17077		} );
17078
17079	} else if ( !traditional && toType( obj ) === "object" ) {
17080
17081		// Serialize object item.
17082		for ( name in obj ) {
17083			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
17084		}
17085
17086	} else {
17087
17088		// Serialize scalar item.
17089		add( prefix, obj );
17090	}
17091}
17092
17093// Serialize an array of form elements or a set of
17094// key/values into a query string
17095jQuery.param = function( a, traditional ) {
17096	var prefix,
17097		s = [],
17098		add = function( key, valueOrFunction ) {
17099
17100			// If value is a function, invoke it and use its return value
17101			var value = isFunction( valueOrFunction ) ?
17102				valueOrFunction() :
17103				valueOrFunction;
17104
17105			s[ s.length ] = encodeURIComponent( key ) + "=" +
17106				encodeURIComponent( value == null ? "" : value );
17107		};
17108
17109	if ( a == null ) {
17110		return "";
17111	}
17112
17113	// If an array was passed in, assume that it is an array of form elements.
17114	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
17115
17116		// Serialize the form elements
17117		jQuery.each( a, function() {
17118			add( this.name, this.value );
17119		} );
17120
17121	} else {
17122
17123		// If traditional, encode the "old" way (the way 1.3.2 or older
17124		// did it), otherwise encode params recursively.
17125		for ( prefix in a ) {
17126			buildParams( prefix, a[ prefix ], traditional, add );
17127		}
17128	}
17129
17130	// Return the resulting serialization
17131	return s.join( "&" );
17132};
17133
17134jQuery.fn.extend( {
17135	serialize: function() {
17136		return jQuery.param( this.serializeArray() );
17137	},
17138	serializeArray: function() {
17139		return this.map( function() {
17140
17141			// Can add propHook for "elements" to filter or add form elements
17142			var elements = jQuery.prop( this, "elements" );
17143			return elements ? jQuery.makeArray( elements ) : this;
17144		} ).filter( function() {
17145			var type = this.type;
17146
17147			// Use .is( ":disabled" ) so that fieldset[disabled] works
17148			return this.name && !jQuery( this ).is( ":disabled" ) &&
17149				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
17150				( this.checked || !rcheckableType.test( type ) );
17151		} ).map( function( _i, elem ) {
17152			var val = jQuery( this ).val();
17153
17154			if ( val == null ) {
17155				return null;
17156			}
17157
17158			if ( Array.isArray( val ) ) {
17159				return jQuery.map( val, function( val ) {
17160					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
17161				} );
17162			}
17163
17164			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
17165		} ).get();
17166	}
17167} );
17168
17169
17170var
17171	r20 = /%20/g,
17172	rhash = /#.*$/,
17173	rantiCache = /([?&])_=[^&]*/,
17174	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
17175
17176	// #7653, #8125, #8152: local protocol detection
17177	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
17178	rnoContent = /^(?:GET|HEAD)$/,
17179	rprotocol = /^\/\//,
17180
17181	/* Prefilters
17182	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
17183	 * 2) These are called:
17184	 *    - BEFORE asking for a transport
17185	 *    - AFTER param serialization (s.data is a string if s.processData is true)
17186	 * 3) key is the dataType
17187	 * 4) the catchall symbol "*" can be used
17188	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
17189	 */
17190	prefilters = {},
17191
17192	/* Transports bindings
17193	 * 1) key is the dataType
17194	 * 2) the catchall symbol "*" can be used
17195	 * 3) selection will start with transport dataType and THEN go to "*" if needed
17196	 */
17197	transports = {},
17198
17199	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
17200	allTypes = "*/".concat( "*" ),
17201
17202	// Anchor tag for parsing the document origin
17203	originAnchor = document.createElement( "a" );
17204
17205originAnchor.href = location.href;
17206
17207// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
17208function addToPrefiltersOrTransports( structure ) {
17209
17210	// dataTypeExpression is optional and defaults to "*"
17211	return function( dataTypeExpression, func ) {
17212
17213		if ( typeof dataTypeExpression !== "string" ) {
17214			func = dataTypeExpression;
17215			dataTypeExpression = "*";
17216		}
17217
17218		var dataType,
17219			i = 0,
17220			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
17221
17222		if ( isFunction( func ) ) {
17223
17224			// For each dataType in the dataTypeExpression
17225			while ( ( dataType = dataTypes[ i++ ] ) ) {
17226
17227				// Prepend if requested
17228				if ( dataType[ 0 ] === "+" ) {
17229					dataType = dataType.slice( 1 ) || "*";
17230					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
17231
17232				// Otherwise append
17233				} else {
17234					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
17235				}
17236			}
17237		}
17238	};
17239}
17240
17241// Base inspection function for prefilters and transports
17242function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
17243
17244	var inspected = {},
17245		seekingTransport = ( structure === transports );
17246
17247	function inspect( dataType ) {
17248		var selected;
17249		inspected[ dataType ] = true;
17250		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
17251			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
17252			if ( typeof dataTypeOrTransport === "string" &&
17253				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
17254
17255				options.dataTypes.unshift( dataTypeOrTransport );
17256				inspect( dataTypeOrTransport );
17257				return false;
17258			} else if ( seekingTransport ) {
17259				return !( selected = dataTypeOrTransport );
17260			}
17261		} );
17262		return selected;
17263	}
17264
17265	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
17266}
17267
17268// A special extend for ajax options
17269// that takes "flat" options (not to be deep extended)
17270// Fixes #9887
17271function ajaxExtend( target, src ) {
17272	var key, deep,
17273		flatOptions = jQuery.ajaxSettings.flatOptions || {};
17274
17275	for ( key in src ) {
17276		if ( src[ key ] !== undefined ) {
17277			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
17278		}
17279	}
17280	if ( deep ) {
17281		jQuery.extend( true, target, deep );
17282	}
17283
17284	return target;
17285}
17286
17287/* Handles responses to an ajax request:
17288 * - finds the right dataType (mediates between content-type and expected dataType)
17289 * - returns the corresponding response
17290 */
17291function ajaxHandleResponses( s, jqXHR, responses ) {
17292
17293	var ct, type, finalDataType, firstDataType,
17294		contents = s.contents,
17295		dataTypes = s.dataTypes;
17296
17297	// Remove auto dataType and get content-type in the process
17298	while ( dataTypes[ 0 ] === "*" ) {
17299		dataTypes.shift();
17300		if ( ct === undefined ) {
17301			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
17302		}
17303	}
17304
17305	// Check if we're dealing with a known content-type
17306	if ( ct ) {
17307		for ( type in contents ) {
17308			if ( contents[ type ] && contents[ type ].test( ct ) ) {
17309				dataTypes.unshift( type );
17310				break;
17311			}
17312		}
17313	}
17314
17315	// Check to see if we have a response for the expected dataType
17316	if ( dataTypes[ 0 ] in responses ) {
17317		finalDataType = dataTypes[ 0 ];
17318	} else {
17319
17320		// Try convertible dataTypes
17321		for ( type in responses ) {
17322			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
17323				finalDataType = type;
17324				break;
17325			}
17326			if ( !firstDataType ) {
17327				firstDataType = type;
17328			}
17329		}
17330
17331		// Or just use first one
17332		finalDataType = finalDataType || firstDataType;
17333	}
17334
17335	// If we found a dataType
17336	// We add the dataType to the list if needed
17337	// and return the corresponding response
17338	if ( finalDataType ) {
17339		if ( finalDataType !== dataTypes[ 0 ] ) {
17340			dataTypes.unshift( finalDataType );
17341		}
17342		return responses[ finalDataType ];
17343	}
17344}
17345
17346/* Chain conversions given the request and the original response
17347 * Also sets the responseXXX fields on the jqXHR instance
17348 */
17349function ajaxConvert( s, response, jqXHR, isSuccess ) {
17350	var conv2, current, conv, tmp, prev,
17351		converters = {},
17352
17353		// Work with a copy of dataTypes in case we need to modify it for conversion
17354		dataTypes = s.dataTypes.slice();
17355
17356	// Create converters map with lowercased keys
17357	if ( dataTypes[ 1 ] ) {
17358		for ( conv in s.converters ) {
17359			converters[ conv.toLowerCase() ] = s.converters[ conv ];
17360		}
17361	}
17362
17363	current = dataTypes.shift();
17364
17365	// Convert to each sequential dataType
17366	while ( current ) {
17367
17368		if ( s.responseFields[ current ] ) {
17369			jqXHR[ s.responseFields[ current ] ] = response;
17370		}
17371
17372		// Apply the dataFilter if provided
17373		if ( !prev && isSuccess && s.dataFilter ) {
17374			response = s.dataFilter( response, s.dataType );
17375		}
17376
17377		prev = current;
17378		current = dataTypes.shift();
17379
17380		if ( current ) {
17381
17382			// There's only work to do if current dataType is non-auto
17383			if ( current === "*" ) {
17384
17385				current = prev;
17386
17387			// Convert response if prev dataType is non-auto and differs from current
17388			} else if ( prev !== "*" && prev !== current ) {
17389
17390				// Seek a direct converter
17391				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
17392
17393				// If none found, seek a pair
17394				if ( !conv ) {
17395					for ( conv2 in converters ) {
17396
17397						// If conv2 outputs current
17398						tmp = conv2.split( " " );
17399						if ( tmp[ 1 ] === current ) {
17400
17401							// If prev can be converted to accepted input
17402							conv = converters[ prev + " " + tmp[ 0 ] ] ||
17403								converters[ "* " + tmp[ 0 ] ];
17404							if ( conv ) {
17405
17406								// Condense equivalence converters
17407								if ( conv === true ) {
17408									conv = converters[ conv2 ];
17409
17410								// Otherwise, insert the intermediate dataType
17411								} else if ( converters[ conv2 ] !== true ) {
17412									current = tmp[ 0 ];
17413									dataTypes.unshift( tmp[ 1 ] );
17414								}
17415								break;
17416							}
17417						}
17418					}
17419				}
17420
17421				// Apply converter (if not an equivalence)
17422				if ( conv !== true ) {
17423
17424					// Unless errors are allowed to bubble, catch and return them
17425					if ( conv && s.throws ) {
17426						response = conv( response );
17427					} else {
17428						try {
17429							response = conv( response );
17430						} catch ( e ) {
17431							return {
17432								state: "parsererror",
17433								error: conv ? e : "No conversion from " + prev + " to " + current
17434							};
17435						}
17436					}
17437				}
17438			}
17439		}
17440	}
17441
17442	return { state: "success", data: response };
17443}
17444
17445jQuery.extend( {
17446
17447	// Counter for holding the number of active queries
17448	active: 0,
17449
17450	// Last-Modified header cache for next request
17451	lastModified: {},
17452	etag: {},
17453
17454	ajaxSettings: {
17455		url: location.href,
17456		type: "GET",
17457		isLocal: rlocalProtocol.test( location.protocol ),
17458		global: true,
17459		processData: true,
17460		async: true,
17461		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
17462
17463		/*
17464		timeout: 0,
17465		data: null,
17466		dataType: null,
17467		username: null,
17468		password: null,
17469		cache: null,
17470		throws: false,
17471		traditional: false,
17472		headers: {},
17473		*/
17474
17475		accepts: {
17476			"*": allTypes,
17477			text: "text/plain",
17478			html: "text/html",
17479			xml: "application/xml, text/xml",
17480			json: "application/json, text/javascript"
17481		},
17482
17483		contents: {
17484			xml: /\bxml\b/,
17485			html: /\bhtml/,
17486			json: /\bjson\b/
17487		},
17488
17489		responseFields: {
17490			xml: "responseXML",
17491			text: "responseText",
17492			json: "responseJSON"
17493		},
17494
17495		// Data converters
17496		// Keys separate source (or catchall "*") and destination types with a single space
17497		converters: {
17498
17499			// Convert anything to text
17500			"* text": String,
17501
17502			// Text to html (true = no transformation)
17503			"text html": true,
17504
17505			// Evaluate text as a json expression
17506			"text json": JSON.parse,
17507
17508			// Parse text as xml
17509			"text xml": jQuery.parseXML
17510		},
17511
17512		// For options that shouldn't be deep extended:
17513		// you can add your own custom options here if
17514		// and when you create one that shouldn't be
17515		// deep extended (see ajaxExtend)
17516		flatOptions: {
17517			url: true,
17518			context: true
17519		}
17520	},
17521
17522	// Creates a full fledged settings object into target
17523	// with both ajaxSettings and settings fields.
17524	// If target is omitted, writes into ajaxSettings.
17525	ajaxSetup: function( target, settings ) {
17526		return settings ?
17527
17528			// Building a settings object
17529			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
17530
17531			// Extending ajaxSettings
17532			ajaxExtend( jQuery.ajaxSettings, target );
17533	},
17534
17535	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
17536	ajaxTransport: addToPrefiltersOrTransports( transports ),
17537
17538	// Main method
17539	ajax: function( url, options ) {
17540
17541		// If url is an object, simulate pre-1.5 signature
17542		if ( typeof url === "object" ) {
17543			options = url;
17544			url = undefined;
17545		}
17546
17547		// Force options to be an object
17548		options = options || {};
17549
17550		var transport,
17551
17552			// URL without anti-cache param
17553			cacheURL,
17554
17555			// Response headers
17556			responseHeadersString,
17557			responseHeaders,
17558
17559			// timeout handle
17560			timeoutTimer,
17561
17562			// Url cleanup var
17563			urlAnchor,
17564
17565			// Request state (becomes false upon send and true upon completion)
17566			completed,
17567
17568			// To know if global events are to be dispatched
17569			fireGlobals,
17570
17571			// Loop variable
17572			i,
17573
17574			// uncached part of the url
17575			uncached,
17576
17577			// Create the final options object
17578			s = jQuery.ajaxSetup( {}, options ),
17579
17580			// Callbacks context
17581			callbackContext = s.context || s,
17582
17583			// Context for global events is callbackContext if it is a DOM node or jQuery collection
17584			globalEventContext = s.context &&
17585				( callbackContext.nodeType || callbackContext.jquery ) ?
17586				jQuery( callbackContext ) :
17587				jQuery.event,
17588
17589			// Deferreds
17590			deferred = jQuery.Deferred(),
17591			completeDeferred = jQuery.Callbacks( "once memory" ),
17592
17593			// Status-dependent callbacks
17594			statusCode = s.statusCode || {},
17595
17596			// Headers (they are sent all at once)
17597			requestHeaders = {},
17598			requestHeadersNames = {},
17599
17600			// Default abort message
17601			strAbort = "canceled",
17602
17603			// Fake xhr
17604			jqXHR = {
17605				readyState: 0,
17606
17607				// Builds headers hashtable if needed
17608				getResponseHeader: function( key ) {
17609					var match;
17610					if ( completed ) {
17611						if ( !responseHeaders ) {
17612							responseHeaders = {};
17613							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
17614								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
17615									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
17616										.concat( match[ 2 ] );
17617							}
17618						}
17619						match = responseHeaders[ key.toLowerCase() + " " ];
17620					}
17621					return match == null ? null : match.join( ", " );
17622				},
17623
17624				// Raw string
17625				getAllResponseHeaders: function() {
17626					return completed ? responseHeadersString : null;
17627				},
17628
17629				// Caches the header
17630				setRequestHeader: function( name, value ) {
17631					if ( completed == null ) {
17632						name = requestHeadersNames[ name.toLowerCase() ] =
17633							requestHeadersNames[ name.toLowerCase() ] || name;
17634						requestHeaders[ name ] = value;
17635					}
17636					return this;
17637				},
17638
17639				// Overrides response content-type header
17640				overrideMimeType: function( type ) {
17641					if ( completed == null ) {
17642						s.mimeType = type;
17643					}
17644					return this;
17645				},
17646
17647				// Status-dependent callbacks
17648				statusCode: function( map ) {
17649					var code;
17650					if ( map ) {
17651						if ( completed ) {
17652
17653							// Execute the appropriate callbacks
17654							jqXHR.always( map[ jqXHR.status ] );
17655						} else {
17656
17657							// Lazy-add the new callbacks in a way that preserves old ones
17658							for ( code in map ) {
17659								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
17660							}
17661						}
17662					}
17663					return this;
17664				},
17665
17666				// Cancel the request
17667				abort: function( statusText ) {
17668					var finalText = statusText || strAbort;
17669					if ( transport ) {
17670						transport.abort( finalText );
17671					}
17672					done( 0, finalText );
17673					return this;
17674				}
17675			};
17676
17677		// Attach deferreds
17678		deferred.promise( jqXHR );
17679
17680		// Add protocol if not provided (prefilters might expect it)
17681		// Handle falsy url in the settings object (#10093: consistency with old signature)
17682		// We also use the url parameter if available
17683		s.url = ( ( url || s.url || location.href ) + "" )
17684			.replace( rprotocol, location.protocol + "//" );
17685
17686		// Alias method option to type as per ticket #12004
17687		s.type = options.method || options.type || s.method || s.type;
17688
17689		// Extract dataTypes list
17690		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
17691
17692		// A cross-domain request is in order when the origin doesn't match the current origin.
17693		if ( s.crossDomain == null ) {
17694			urlAnchor = document.createElement( "a" );
17695
17696			// Support: IE <=8 - 11, Edge 12 - 15
17697			// IE throws exception on accessing the href property if url is malformed,
17698			// e.g. http://example.com:80x/
17699			try {
17700				urlAnchor.href = s.url;
17701
17702				// Support: IE <=8 - 11 only
17703				// Anchor's host property isn't correctly set when s.url is relative
17704				urlAnchor.href = urlAnchor.href;
17705				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
17706					urlAnchor.protocol + "//" + urlAnchor.host;
17707			} catch ( e ) {
17708
17709				// If there is an error parsing the URL, assume it is crossDomain,
17710				// it can be rejected by the transport if it is invalid
17711				s.crossDomain = true;
17712			}
17713		}
17714
17715		// Convert data if not already a string
17716		if ( s.data && s.processData && typeof s.data !== "string" ) {
17717			s.data = jQuery.param( s.data, s.traditional );
17718		}
17719
17720		// Apply prefilters
17721		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
17722
17723		// If request was aborted inside a prefilter, stop there
17724		if ( completed ) {
17725			return jqXHR;
17726		}
17727
17728		// We can fire global events as of now if asked to
17729		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
17730		fireGlobals = jQuery.event && s.global;
17731
17732		// Watch for a new set of requests
17733		if ( fireGlobals && jQuery.active++ === 0 ) {
17734			jQuery.event.trigger( "ajaxStart" );
17735		}
17736
17737		// Uppercase the type
17738		s.type = s.type.toUpperCase();
17739
17740		// Determine if request has content
17741		s.hasContent = !rnoContent.test( s.type );
17742
17743		// Save the URL in case we're toying with the If-Modified-Since
17744		// and/or If-None-Match header later on
17745		// Remove hash to simplify url manipulation
17746		cacheURL = s.url.replace( rhash, "" );
17747
17748		// More options handling for requests with no content
17749		if ( !s.hasContent ) {
17750
17751			// Remember the hash so we can put it back
17752			uncached = s.url.slice( cacheURL.length );
17753
17754			// If data is available and should be processed, append data to url
17755			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
17756				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
17757
17758				// #9682: remove data so that it's not used in an eventual retry
17759				delete s.data;
17760			}
17761
17762			// Add or update anti-cache param if needed
17763			if ( s.cache === false ) {
17764				cacheURL = cacheURL.replace( rantiCache, "$1" );
17765				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
17766					uncached;
17767			}
17768
17769			// Put hash and anti-cache on the URL that will be requested (gh-1732)
17770			s.url = cacheURL + uncached;
17771
17772		// Change '%20' to '+' if this is encoded form body content (gh-2658)
17773		} else if ( s.data && s.processData &&
17774			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
17775			s.data = s.data.replace( r20, "+" );
17776		}
17777
17778		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
17779		if ( s.ifModified ) {
17780			if ( jQuery.lastModified[ cacheURL ] ) {
17781				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
17782			}
17783			if ( jQuery.etag[ cacheURL ] ) {
17784				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
17785			}
17786		}
17787
17788		// Set the correct header, if data is being sent
17789		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
17790			jqXHR.setRequestHeader( "Content-Type", s.contentType );
17791		}
17792
17793		// Set the Accepts header for the server, depending on the dataType
17794		jqXHR.setRequestHeader(
17795			"Accept",
17796			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
17797				s.accepts[ s.dataTypes[ 0 ] ] +
17798					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
17799				s.accepts[ "*" ]
17800		);
17801
17802		// Check for headers option
17803		for ( i in s.headers ) {
17804			jqXHR.setRequestHeader( i, s.headers[ i ] );
17805		}
17806
17807		// Allow custom headers/mimetypes and early abort
17808		if ( s.beforeSend &&
17809			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
17810
17811			// Abort if not done already and return
17812			return jqXHR.abort();
17813		}
17814
17815		// Aborting is no longer a cancellation
17816		strAbort = "abort";
17817
17818		// Install callbacks on deferreds
17819		completeDeferred.add( s.complete );
17820		jqXHR.done( s.success );
17821		jqXHR.fail( s.error );
17822
17823		// Get transport
17824		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
17825
17826		// If no transport, we auto-abort
17827		if ( !transport ) {
17828			done( -1, "No Transport" );
17829		} else {
17830			jqXHR.readyState = 1;
17831
17832			// Send global event
17833			if ( fireGlobals ) {
17834				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
17835			}
17836
17837			// If request was aborted inside ajaxSend, stop there
17838			if ( completed ) {
17839				return jqXHR;
17840			}
17841
17842			// Timeout
17843			if ( s.async && s.timeout > 0 ) {
17844				timeoutTimer = window.setTimeout( function() {
17845					jqXHR.abort( "timeout" );
17846				}, s.timeout );
17847			}
17848
17849			try {
17850				completed = false;
17851				transport.send( requestHeaders, done );
17852			} catch ( e ) {
17853
17854				// Rethrow post-completion exceptions
17855				if ( completed ) {
17856					throw e;
17857				}
17858
17859				// Propagate others as results
17860				done( -1, e );
17861			}
17862		}
17863
17864		// Callback for when everything is done
17865		function done( status, nativeStatusText, responses, headers ) {
17866			var isSuccess, success, error, response, modified,
17867				statusText = nativeStatusText;
17868
17869			// Ignore repeat invocations
17870			if ( completed ) {
17871				return;
17872			}
17873
17874			completed = true;
17875
17876			// Clear timeout if it exists
17877			if ( timeoutTimer ) {
17878				window.clearTimeout( timeoutTimer );
17879			}
17880
17881			// Dereference transport for early garbage collection
17882			// (no matter how long the jqXHR object will be used)
17883			transport = undefined;
17884
17885			// Cache response headers
17886			responseHeadersString = headers || "";
17887
17888			// Set readyState
17889			jqXHR.readyState = status > 0 ? 4 : 0;
17890
17891			// Determine if successful
17892			isSuccess = status >= 200 && status < 300 || status === 304;
17893
17894			// Get response data
17895			if ( responses ) {
17896				response = ajaxHandleResponses( s, jqXHR, responses );
17897			}
17898
17899			// Use a noop converter for missing script but not if jsonp
17900			if ( !isSuccess &&
17901				jQuery.inArray( "script", s.dataTypes ) > -1 &&
17902				jQuery.inArray( "json", s.dataTypes ) < 0 ) {
17903				s.converters[ "text script" ] = function() {};
17904			}
17905
17906			// Convert no matter what (that way responseXXX fields are always set)
17907			response = ajaxConvert( s, response, jqXHR, isSuccess );
17908
17909			// If successful, handle type chaining
17910			if ( isSuccess ) {
17911
17912				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
17913				if ( s.ifModified ) {
17914					modified = jqXHR.getResponseHeader( "Last-Modified" );
17915					if ( modified ) {
17916						jQuery.lastModified[ cacheURL ] = modified;
17917					}
17918					modified = jqXHR.getResponseHeader( "etag" );
17919					if ( modified ) {
17920						jQuery.etag[ cacheURL ] = modified;
17921					}
17922				}
17923
17924				// if no content
17925				if ( status === 204 || s.type === "HEAD" ) {
17926					statusText = "nocontent";
17927
17928				// if not modified
17929				} else if ( status === 304 ) {
17930					statusText = "notmodified";
17931
17932				// If we have data, let's convert it
17933				} else {
17934					statusText = response.state;
17935					success = response.data;
17936					error = response.error;
17937					isSuccess = !error;
17938				}
17939			} else {
17940
17941				// Extract error from statusText and normalize for non-aborts
17942				error = statusText;
17943				if ( status || !statusText ) {
17944					statusText = "error";
17945					if ( status < 0 ) {
17946						status = 0;
17947					}
17948				}
17949			}
17950
17951			// Set data for the fake xhr object
17952			jqXHR.status = status;
17953			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
17954
17955			// Success/Error
17956			if ( isSuccess ) {
17957				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
17958			} else {
17959				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
17960			}
17961
17962			// Status-dependent callbacks
17963			jqXHR.statusCode( statusCode );
17964			statusCode = undefined;
17965
17966			if ( fireGlobals ) {
17967				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
17968					[ jqXHR, s, isSuccess ? success : error ] );
17969			}
17970
17971			// Complete
17972			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
17973
17974			if ( fireGlobals ) {
17975				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
17976
17977				// Handle the global AJAX counter
17978				if ( !( --jQuery.active ) ) {
17979					jQuery.event.trigger( "ajaxStop" );
17980				}
17981			}
17982		}
17983
17984		return jqXHR;
17985	},
17986
17987	getJSON: function( url, data, callback ) {
17988		return jQuery.get( url, data, callback, "json" );
17989	},
17990
17991	getScript: function( url, callback ) {
17992		return jQuery.get( url, undefined, callback, "script" );
17993	}
17994} );
17995
17996jQuery.each( [ "get", "post" ], function( _i, method ) {
17997	jQuery[ method ] = function( url, data, callback, type ) {
17998
17999		// Shift arguments if data argument was omitted
18000		if ( isFunction( data ) ) {
18001			type = type || callback;
18002			callback = data;
18003			data = undefined;
18004		}
18005
18006		// The url can be an options object (which then must have .url)
18007		return jQuery.ajax( jQuery.extend( {
18008			url: url,
18009			type: method,
18010			dataType: type,
18011			data: data,
18012			success: callback
18013		}, jQuery.isPlainObject( url ) && url ) );
18014	};
18015} );
18016
18017jQuery.ajaxPrefilter( function( s ) {
18018	var i;
18019	for ( i in s.headers ) {
18020		if ( i.toLowerCase() === "content-type" ) {
18021			s.contentType = s.headers[ i ] || "";
18022		}
18023	}
18024} );
18025
18026
18027jQuery._evalUrl = function( url, options, doc ) {
18028	return jQuery.ajax( {
18029		url: url,
18030
18031		// Make this explicit, since user can override this through ajaxSetup (#11264)
18032		type: "GET",
18033		dataType: "script",
18034		cache: true,
18035		async: false,
18036		global: false,
18037
18038		// Only evaluate the response if it is successful (gh-4126)
18039		// dataFilter is not invoked for failure responses, so using it instead
18040		// of the default converter is kludgy but it works.
18041		converters: {
18042			"text script": function() {}
18043		},
18044		dataFilter: function( response ) {
18045			jQuery.globalEval( response, options, doc );
18046		}
18047	} );
18048};
18049
18050
18051jQuery.fn.extend( {
18052	wrapAll: function( html ) {
18053		var wrap;
18054
18055		if ( this[ 0 ] ) {
18056			if ( isFunction( html ) ) {
18057				html = html.call( this[ 0 ] );
18058			}
18059
18060			// The elements to wrap the target around
18061			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
18062
18063			if ( this[ 0 ].parentNode ) {
18064				wrap.insertBefore( this[ 0 ] );
18065			}
18066
18067			wrap.map( function() {
18068				var elem = this;
18069
18070				while ( elem.firstElementChild ) {
18071					elem = elem.firstElementChild;
18072				}
18073
18074				return elem;
18075			} ).append( this );
18076		}
18077
18078		return this;
18079	},
18080
18081	wrapInner: function( html ) {
18082		if ( isFunction( html ) ) {
18083			return this.each( function( i ) {
18084				jQuery( this ).wrapInner( html.call( this, i ) );
18085			} );
18086		}
18087
18088		return this.each( function() {
18089			var self = jQuery( this ),
18090				contents = self.contents();
18091
18092			if ( contents.length ) {
18093				contents.wrapAll( html );
18094
18095			} else {
18096				self.append( html );
18097			}
18098		} );
18099	},
18100
18101	wrap: function( html ) {
18102		var htmlIsFunction = isFunction( html );
18103
18104		return this.each( function( i ) {
18105			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
18106		} );
18107	},
18108
18109	unwrap: function( selector ) {
18110		this.parent( selector ).not( "body" ).each( function() {
18111			jQuery( this ).replaceWith( this.childNodes );
18112		} );
18113		return this;
18114	}
18115} );
18116
18117
18118jQuery.expr.pseudos.hidden = function( elem ) {
18119	return !jQuery.expr.pseudos.visible( elem );
18120};
18121jQuery.expr.pseudos.visible = function( elem ) {
18122	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
18123};
18124
18125
18126
18127
18128jQuery.ajaxSettings.xhr = function() {
18129	try {
18130		return new window.XMLHttpRequest();
18131	} catch ( e ) {}
18132};
18133
18134var xhrSuccessStatus = {
18135
18136		// File protocol always yields status code 0, assume 200
18137		0: 200,
18138
18139		// Support: IE <=9 only
18140		// #1450: sometimes IE returns 1223 when it should be 204
18141		1223: 204
18142	},
18143	xhrSupported = jQuery.ajaxSettings.xhr();
18144
18145support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
18146support.ajax = xhrSupported = !!xhrSupported;
18147
18148jQuery.ajaxTransport( function( options ) {
18149	var callback, errorCallback;
18150
18151	// Cross domain only allowed if supported through XMLHttpRequest
18152	if ( support.cors || xhrSupported && !options.crossDomain ) {
18153		return {
18154			send: function( headers, complete ) {
18155				var i,
18156					xhr = options.xhr();
18157
18158				xhr.open(
18159					options.type,
18160					options.url,
18161					options.async,
18162					options.username,
18163					options.password
18164				);
18165
18166				// Apply custom fields if provided
18167				if ( options.xhrFields ) {
18168					for ( i in options.xhrFields ) {
18169						xhr[ i ] = options.xhrFields[ i ];
18170					}
18171				}
18172
18173				// Override mime type if needed
18174				if ( options.mimeType && xhr.overrideMimeType ) {
18175					xhr.overrideMimeType( options.mimeType );
18176				}
18177
18178				// X-Requested-With header
18179				// For cross-domain requests, seeing as conditions for a preflight are
18180				// akin to a jigsaw puzzle, we simply never set it to be sure.
18181				// (it can always be set on a per-request basis or even using ajaxSetup)
18182				// For same-domain requests, won't change header if already provided.
18183				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
18184					headers[ "X-Requested-With" ] = "XMLHttpRequest";
18185				}
18186
18187				// Set headers
18188				for ( i in headers ) {
18189					xhr.setRequestHeader( i, headers[ i ] );
18190				}
18191
18192				// Callback
18193				callback = function( type ) {
18194					return function() {
18195						if ( callback ) {
18196							callback = errorCallback = xhr.onload =
18197								xhr.onerror = xhr.onabort = xhr.ontimeout =
18198									xhr.onreadystatechange = null;
18199
18200							if ( type === "abort" ) {
18201								xhr.abort();
18202							} else if ( type === "error" ) {
18203
18204								// Support: IE <=9 only
18205								// On a manual native abort, IE9 throws
18206								// errors on any property access that is not readyState
18207								if ( typeof xhr.status !== "number" ) {
18208									complete( 0, "error" );
18209								} else {
18210									complete(
18211
18212										// File: protocol always yields status 0; see #8605, #14207
18213										xhr.status,
18214										xhr.statusText
18215									);
18216								}
18217							} else {
18218								complete(
18219									xhrSuccessStatus[ xhr.status ] || xhr.status,
18220									xhr.statusText,
18221
18222									// Support: IE <=9 only
18223									// IE9 has no XHR2 but throws on binary (trac-11426)
18224									// For XHR2 non-text, let the caller handle it (gh-2498)
18225									( xhr.responseType || "text" ) !== "text"  ||
18226									typeof xhr.responseText !== "string" ?
18227										{ binary: xhr.response } :
18228										{ text: xhr.responseText },
18229									xhr.getAllResponseHeaders()
18230								);
18231							}
18232						}
18233					};
18234				};
18235
18236				// Listen to events
18237				xhr.onload = callback();
18238				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
18239
18240				// Support: IE 9 only
18241				// Use onreadystatechange to replace onabort
18242				// to handle uncaught aborts
18243				if ( xhr.onabort !== undefined ) {
18244					xhr.onabort = errorCallback;
18245				} else {
18246					xhr.onreadystatechange = function() {
18247
18248						// Check readyState before timeout as it changes
18249						if ( xhr.readyState === 4 ) {
18250
18251							// Allow onerror to be called first,
18252							// but that will not handle a native abort
18253							// Also, save errorCallback to a variable
18254							// as xhr.onerror cannot be accessed
18255							window.setTimeout( function() {
18256								if ( callback ) {
18257									errorCallback();
18258								}
18259							} );
18260						}
18261					};
18262				}
18263
18264				// Create the abort callback
18265				callback = callback( "abort" );
18266
18267				try {
18268
18269					// Do send the request (this may raise an exception)
18270					xhr.send( options.hasContent && options.data || null );
18271				} catch ( e ) {
18272
18273					// #14683: Only rethrow if this hasn't been notified as an error yet
18274					if ( callback ) {
18275						throw e;
18276					}
18277				}
18278			},
18279
18280			abort: function() {
18281				if ( callback ) {
18282					callback();
18283				}
18284			}
18285		};
18286	}
18287} );
18288
18289
18290
18291
18292// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
18293jQuery.ajaxPrefilter( function( s ) {
18294	if ( s.crossDomain ) {
18295		s.contents.script = false;
18296	}
18297} );
18298
18299// Install script dataType
18300jQuery.ajaxSetup( {
18301	accepts: {
18302		script: "text/javascript, application/javascript, " +
18303			"application/ecmascript, application/x-ecmascript"
18304	},
18305	contents: {
18306		script: /\b(?:java|ecma)script\b/
18307	},
18308	converters: {
18309		"text script": function( text ) {
18310			jQuery.globalEval( text );
18311			return text;
18312		}
18313	}
18314} );
18315
18316// Handle cache's special case and crossDomain
18317jQuery.ajaxPrefilter( "script", function( s ) {
18318	if ( s.cache === undefined ) {
18319		s.cache = false;
18320	}
18321	if ( s.crossDomain ) {
18322		s.type = "GET";
18323	}
18324} );
18325
18326// Bind script tag hack transport
18327jQuery.ajaxTransport( "script", function( s ) {
18328
18329	// This transport only deals with cross domain or forced-by-attrs requests
18330	if ( s.crossDomain || s.scriptAttrs ) {
18331		var script, callback;
18332		return {
18333			send: function( _, complete ) {
18334				script = jQuery( "<script>" )
18335					.attr( s.scriptAttrs || {} )
18336					.prop( { charset: s.scriptCharset, src: s.url } )
18337					.on( "load error", callback = function( evt ) {
18338						script.remove();
18339						callback = null;
18340						if ( evt ) {
18341							complete( evt.type === "error" ? 404 : 200, evt.type );
18342						}
18343					} );
18344
18345				// Use native DOM manipulation to avoid our domManip AJAX trickery
18346				document.head.appendChild( script[ 0 ] );
18347			},
18348			abort: function() {
18349				if ( callback ) {
18350					callback();
18351				}
18352			}
18353		};
18354	}
18355} );
18356
18357
18358
18359
18360var oldCallbacks = [],
18361	rjsonp = /(=)\?(?=&|$)|\?\?/;
18362
18363// Default jsonp settings
18364jQuery.ajaxSetup( {
18365	jsonp: "callback",
18366	jsonpCallback: function() {
18367		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
18368		this[ callback ] = true;
18369		return callback;
18370	}
18371} );
18372
18373// Detect, normalize options and install callbacks for jsonp requests
18374jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
18375
18376	var callbackName, overwritten, responseContainer,
18377		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
18378			"url" :
18379			typeof s.data === "string" &&
18380				( s.contentType || "" )
18381					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
18382				rjsonp.test( s.data ) && "data"
18383		);
18384
18385	// Handle iff the expected data type is "jsonp" or we have a parameter to set
18386	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
18387
18388		// Get callback name, remembering preexisting value associated with it
18389		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
18390			s.jsonpCallback() :
18391			s.jsonpCallback;
18392
18393		// Insert callback into url or form data
18394		if ( jsonProp ) {
18395			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
18396		} else if ( s.jsonp !== false ) {
18397			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
18398		}
18399
18400		// Use data converter to retrieve json after script execution
18401		s.converters[ "script json" ] = function() {
18402			if ( !responseContainer ) {
18403				jQuery.error( callbackName + " was not called" );
18404			}
18405			return responseContainer[ 0 ];
18406		};
18407
18408		// Force json dataType
18409		s.dataTypes[ 0 ] = "json";
18410
18411		// Install callback
18412		overwritten = window[ callbackName ];
18413		window[ callbackName ] = function() {
18414			responseContainer = arguments;
18415		};
18416
18417		// Clean-up function (fires after converters)
18418		jqXHR.always( function() {
18419
18420			// If previous value didn't exist - remove it
18421			if ( overwritten === undefined ) {
18422				jQuery( window ).removeProp( callbackName );
18423
18424			// Otherwise restore preexisting value
18425			} else {
18426				window[ callbackName ] = overwritten;
18427			}
18428
18429			// Save back as free
18430			if ( s[ callbackName ] ) {
18431
18432				// Make sure that re-using the options doesn't screw things around
18433				s.jsonpCallback = originalSettings.jsonpCallback;
18434
18435				// Save the callback name for future use
18436				oldCallbacks.push( callbackName );
18437			}
18438
18439			// Call if it was a function and we have a response
18440			if ( responseContainer && isFunction( overwritten ) ) {
18441				overwritten( responseContainer[ 0 ] );
18442			}
18443
18444			responseContainer = overwritten = undefined;
18445		} );
18446
18447		// Delegate to script
18448		return "script";
18449	}
18450} );
18451
18452
18453
18454
18455// Support: Safari 8 only
18456// In Safari 8 documents created via document.implementation.createHTMLDocument
18457// collapse sibling forms: the second one becomes a child of the first one.
18458// Because of that, this security measure has to be disabled in Safari 8.
18459// https://bugs.webkit.org/show_bug.cgi?id=137337
18460support.createHTMLDocument = ( function() {
18461	var body = document.implementation.createHTMLDocument( "" ).body;
18462	body.innerHTML = "<form></form><form></form>";
18463	return body.childNodes.length === 2;
18464} )();
18465
18466
18467// Argument "data" should be string of html
18468// context (optional): If specified, the fragment will be created in this context,
18469// defaults to document
18470// keepScripts (optional): If true, will include scripts passed in the html string
18471jQuery.parseHTML = function( data, context, keepScripts ) {
18472	if ( typeof data !== "string" ) {
18473		return [];
18474	}
18475	if ( typeof context === "boolean" ) {
18476		keepScripts = context;
18477		context = false;
18478	}
18479
18480	var base, parsed, scripts;
18481
18482	if ( !context ) {
18483
18484		// Stop scripts or inline event handlers from being executed immediately
18485		// by using document.implementation
18486		if ( support.createHTMLDocument ) {
18487			context = document.implementation.createHTMLDocument( "" );
18488
18489			// Set the base href for the created document
18490			// so any parsed elements with URLs
18491			// are based on the document's URL (gh-2965)
18492			base = context.createElement( "base" );
18493			base.href = document.location.href;
18494			context.head.appendChild( base );
18495		} else {
18496			context = document;
18497		}
18498	}
18499
18500	parsed = rsingleTag.exec( data );
18501	scripts = !keepScripts && [];
18502
18503	// Single tag
18504	if ( parsed ) {
18505		return [ context.createElement( parsed[ 1 ] ) ];
18506	}
18507
18508	parsed = buildFragment( [ data ], context, scripts );
18509
18510	if ( scripts && scripts.length ) {
18511		jQuery( scripts ).remove();
18512	}
18513
18514	return jQuery.merge( [], parsed.childNodes );
18515};
18516
18517
18518/**
18519 * Load a url into a page
18520 */
18521jQuery.fn.load = function( url, params, callback ) {
18522	var selector, type, response,
18523		self = this,
18524		off = url.indexOf( " " );
18525
18526	if ( off > -1 ) {
18527		selector = stripAndCollapse( url.slice( off ) );
18528		url = url.slice( 0, off );
18529	}
18530
18531	// If it's a function
18532	if ( isFunction( params ) ) {
18533
18534		// We assume that it's the callback
18535		callback = params;
18536		params = undefined;
18537
18538	// Otherwise, build a param string
18539	} else if ( params && typeof params === "object" ) {
18540		type = "POST";
18541	}
18542
18543	// If we have elements to modify, make the request
18544	if ( self.length > 0 ) {
18545		jQuery.ajax( {
18546			url: url,
18547
18548			// If "type" variable is undefined, then "GET" method will be used.
18549			// Make value of this field explicit since
18550			// user can override it through ajaxSetup method
18551			type: type || "GET",
18552			dataType: "html",
18553			data: params
18554		} ).done( function( responseText ) {
18555
18556			// Save response for use in complete callback
18557			response = arguments;
18558
18559			self.html( selector ?
18560
18561				// If a selector was specified, locate the right elements in a dummy div
18562				// Exclude scripts to avoid IE 'Permission Denied' errors
18563				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
18564
18565				// Otherwise use the full result
18566				responseText );
18567
18568		// If the request succeeds, this function gets "data", "status", "jqXHR"
18569		// but they are ignored because response was set above.
18570		// If it fails, this function gets "jqXHR", "status", "error"
18571		} ).always( callback && function( jqXHR, status ) {
18572			self.each( function() {
18573				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
18574			} );
18575		} );
18576	}
18577
18578	return this;
18579};
18580
18581
18582
18583
18584jQuery.expr.pseudos.animated = function( elem ) {
18585	return jQuery.grep( jQuery.timers, function( fn ) {
18586		return elem === fn.elem;
18587	} ).length;
18588};
18589
18590
18591
18592
18593jQuery.offset = {
18594	setOffset: function( elem, options, i ) {
18595		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
18596			position = jQuery.css( elem, "position" ),
18597			curElem = jQuery( elem ),
18598			props = {};
18599
18600		// Set position first, in-case top/left are set even on static elem
18601		if ( position === "static" ) {
18602			elem.style.position = "relative";
18603		}
18604
18605		curOffset = curElem.offset();
18606		curCSSTop = jQuery.css( elem, "top" );
18607		curCSSLeft = jQuery.css( elem, "left" );
18608		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
18609			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
18610
18611		// Need to be able to calculate position if either
18612		// top or left is auto and position is either absolute or fixed
18613		if ( calculatePosition ) {
18614			curPosition = curElem.position();
18615			curTop = curPosition.top;
18616			curLeft = curPosition.left;
18617
18618		} else {
18619			curTop = parseFloat( curCSSTop ) || 0;
18620			curLeft = parseFloat( curCSSLeft ) || 0;
18621		}
18622
18623		if ( isFunction( options ) ) {
18624
18625			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
18626			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
18627		}
18628
18629		if ( options.top != null ) {
18630			props.top = ( options.top - curOffset.top ) + curTop;
18631		}
18632		if ( options.left != null ) {
18633			props.left = ( options.left - curOffset.left ) + curLeft;
18634		}
18635
18636		if ( "using" in options ) {
18637			options.using.call( elem, props );
18638
18639		} else {
18640			curElem.css( props );
18641		}
18642	}
18643};
18644
18645jQuery.fn.extend( {
18646
18647	// offset() relates an element's border box to the document origin
18648	offset: function( options ) {
18649
18650		// Preserve chaining for setter
18651		if ( arguments.length ) {
18652			return options === undefined ?
18653				this :
18654				this.each( function( i ) {
18655					jQuery.offset.setOffset( this, options, i );
18656				} );
18657		}
18658
18659		var rect, win,
18660			elem = this[ 0 ];
18661
18662		if ( !elem ) {
18663			return;
18664		}
18665
18666		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
18667		// Support: IE <=11 only
18668		// Running getBoundingClientRect on a
18669		// disconnected node in IE throws an error
18670		if ( !elem.getClientRects().length ) {
18671			return { top: 0, left: 0 };
18672		}
18673
18674		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
18675		rect = elem.getBoundingClientRect();
18676		win = elem.ownerDocument.defaultView;
18677		return {
18678			top: rect.top + win.pageYOffset,
18679			left: rect.left + win.pageXOffset
18680		};
18681	},
18682
18683	// position() relates an element's margin box to its offset parent's padding box
18684	// This corresponds to the behavior of CSS absolute positioning
18685	position: function() {
18686		if ( !this[ 0 ] ) {
18687			return;
18688		}
18689
18690		var offsetParent, offset, doc,
18691			elem = this[ 0 ],
18692			parentOffset = { top: 0, left: 0 };
18693
18694		// position:fixed elements are offset from the viewport, which itself always has zero offset
18695		if ( jQuery.css( elem, "position" ) === "fixed" ) {
18696
18697			// Assume position:fixed implies availability of getBoundingClientRect
18698			offset = elem.getBoundingClientRect();
18699
18700		} else {
18701			offset = this.offset();
18702
18703			// Account for the *real* offset parent, which can be the document or its root element
18704			// when a statically positioned element is identified
18705			doc = elem.ownerDocument;
18706			offsetParent = elem.offsetParent || doc.documentElement;
18707			while ( offsetParent &&
18708				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
18709				jQuery.css( offsetParent, "position" ) === "static" ) {
18710
18711				offsetParent = offsetParent.parentNode;
18712			}
18713			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
18714
18715				// Incorporate borders into its offset, since they are outside its content origin
18716				parentOffset = jQuery( offsetParent ).offset();
18717				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
18718				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
18719			}
18720		}
18721
18722		// Subtract parent offsets and element margins
18723		return {
18724			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
18725			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
18726		};
18727	},
18728
18729	// This method will return documentElement in the following cases:
18730	// 1) For the element inside the iframe without offsetParent, this method will return
18731	//    documentElement of the parent window
18732	// 2) For the hidden or detached element
18733	// 3) For body or html element, i.e. in case of the html node - it will return itself
18734	//
18735	// but those exceptions were never presented as a real life use-cases
18736	// and might be considered as more preferable results.
18737	//
18738	// This logic, however, is not guaranteed and can change at any point in the future
18739	offsetParent: function() {
18740		return this.map( function() {
18741			var offsetParent = this.offsetParent;
18742
18743			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
18744				offsetParent = offsetParent.offsetParent;
18745			}
18746
18747			return offsetParent || documentElement;
18748		} );
18749	}
18750} );
18751
18752// Create scrollLeft and scrollTop methods
18753jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
18754	var top = "pageYOffset" === prop;
18755
18756	jQuery.fn[ method ] = function( val ) {
18757		return access( this, function( elem, method, val ) {
18758
18759			// Coalesce documents and windows
18760			var win;
18761			if ( isWindow( elem ) ) {
18762				win = elem;
18763			} else if ( elem.nodeType === 9 ) {
18764				win = elem.defaultView;
18765			}
18766
18767			if ( val === undefined ) {
18768				return win ? win[ prop ] : elem[ method ];
18769			}
18770
18771			if ( win ) {
18772				win.scrollTo(
18773					!top ? val : win.pageXOffset,
18774					top ? val : win.pageYOffset
18775				);
18776
18777			} else {
18778				elem[ method ] = val;
18779			}
18780		}, method, val, arguments.length );
18781	};
18782} );
18783
18784// Support: Safari <=7 - 9.1, Chrome <=37 - 49
18785// Add the top/left cssHooks using jQuery.fn.position
18786// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
18787// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
18788// getComputedStyle returns percent when specified for top/left/bottom/right;
18789// rather than make the css module depend on the offset module, just check for it here
18790jQuery.each( [ "top", "left" ], function( _i, prop ) {
18791	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
18792		function( elem, computed ) {
18793			if ( computed ) {
18794				computed = curCSS( elem, prop );
18795
18796				// If curCSS returns percentage, fallback to offset
18797				return rnumnonpx.test( computed ) ?
18798					jQuery( elem ).position()[ prop ] + "px" :
18799					computed;
18800			}
18801		}
18802	);
18803} );
18804
18805
18806// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
18807jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
18808	jQuery.each( {
18809		padding: "inner" + name,
18810		content: type,
18811		"": "outer" + name
18812	}, function( defaultExtra, funcName ) {
18813
18814		// Margin is only for outerHeight, outerWidth
18815		jQuery.fn[ funcName ] = function( margin, value ) {
18816			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
18817				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
18818
18819			return access( this, function( elem, type, value ) {
18820				var doc;
18821
18822				if ( isWindow( elem ) ) {
18823
18824					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
18825					return funcName.indexOf( "outer" ) === 0 ?
18826						elem[ "inner" + name ] :
18827						elem.document.documentElement[ "client" + name ];
18828				}
18829
18830				// Get document width or height
18831				if ( elem.nodeType === 9 ) {
18832					doc = elem.documentElement;
18833
18834					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
18835					// whichever is greatest
18836					return Math.max(
18837						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
18838						elem.body[ "offset" + name ], doc[ "offset" + name ],
18839						doc[ "client" + name ]
18840					);
18841				}
18842
18843				return value === undefined ?
18844
18845					// Get width or height on the element, requesting but not forcing parseFloat
18846					jQuery.css( elem, type, extra ) :
18847
18848					// Set width or height on the element
18849					jQuery.style( elem, type, value, extra );
18850			}, type, chainable ? margin : undefined, chainable );
18851		};
18852	} );
18853} );
18854
18855
18856jQuery.each( [
18857	"ajaxStart",
18858	"ajaxStop",
18859	"ajaxComplete",
18860	"ajaxError",
18861	"ajaxSuccess",
18862	"ajaxSend"
18863], function( _i, type ) {
18864	jQuery.fn[ type ] = function( fn ) {
18865		return this.on( type, fn );
18866	};
18867} );
18868
18869
18870
18871
18872jQuery.fn.extend( {
18873
18874	bind: function( types, data, fn ) {
18875		return this.on( types, null, data, fn );
18876	},
18877	unbind: function( types, fn ) {
18878		return this.off( types, null, fn );
18879	},
18880
18881	delegate: function( selector, types, data, fn ) {
18882		return this.on( types, selector, data, fn );
18883	},
18884	undelegate: function( selector, types, fn ) {
18885
18886		// ( namespace ) or ( selector, types [, fn] )
18887		return arguments.length === 1 ?
18888			this.off( selector, "**" ) :
18889			this.off( types, selector || "**", fn );
18890	},
18891
18892	hover: function( fnOver, fnOut ) {
18893		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
18894	}
18895} );
18896
18897jQuery.each(
18898	( "blur focus focusin focusout resize scroll click dblclick " +
18899	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
18900	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
18901	function( _i, name ) {
18902
18903		// Handle event binding
18904		jQuery.fn[ name ] = function( data, fn ) {
18905			return arguments.length > 0 ?
18906				this.on( name, null, data, fn ) :
18907				this.trigger( name );
18908		};
18909	}
18910);
18911
18912
18913
18914
18915// Support: Android <=4.0 only
18916// Make sure we trim BOM and NBSP
18917var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
18918
18919// Bind a function to a context, optionally partially applying any
18920// arguments.
18921// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
18922// However, it is not slated for removal any time soon
18923jQuery.proxy = function( fn, context ) {
18924	var tmp, args, proxy;
18925
18926	if ( typeof context === "string" ) {
18927		tmp = fn[ context ];
18928		context = fn;
18929		fn = tmp;
18930	}
18931
18932	// Quick check to determine if target is callable, in the spec
18933	// this throws a TypeError, but we will just return undefined.
18934	if ( !isFunction( fn ) ) {
18935		return undefined;
18936	}
18937
18938	// Simulated bind
18939	args = slice.call( arguments, 2 );
18940	proxy = function() {
18941		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
18942	};
18943
18944	// Set the guid of unique handler to the same of original handler, so it can be removed
18945	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
18946
18947	return proxy;
18948};
18949
18950jQuery.holdReady = function( hold ) {
18951	if ( hold ) {
18952		jQuery.readyWait++;
18953	} else {
18954		jQuery.ready( true );
18955	}
18956};
18957jQuery.isArray = Array.isArray;
18958jQuery.parseJSON = JSON.parse;
18959jQuery.nodeName = nodeName;
18960jQuery.isFunction = isFunction;
18961jQuery.isWindow = isWindow;
18962jQuery.camelCase = camelCase;
18963jQuery.type = toType;
18964
18965jQuery.now = Date.now;
18966
18967jQuery.isNumeric = function( obj ) {
18968
18969	// As of jQuery 3.0, isNumeric is limited to
18970	// strings and numbers (primitives or objects)
18971	// that can be coerced to finite numbers (gh-2662)
18972	var type = jQuery.type( obj );
18973	return ( type === "number" || type === "string" ) &&
18974
18975		// parseFloat NaNs numeric-cast false positives ("")
18976		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
18977		// subtraction forces infinities to NaN
18978		!isNaN( obj - parseFloat( obj ) );
18979};
18980
18981jQuery.trim = function( text ) {
18982	return text == null ?
18983		"" :
18984		( text + "" ).replace( rtrim, "" );
18985};
18986
18987
18988
18989// Register as a named AMD module, since jQuery can be concatenated with other
18990// files that may use define, but not via a proper concatenation script that
18991// understands anonymous AMD modules. A named AMD is safest and most robust
18992// way to register. Lowercase jquery is used because AMD module names are
18993// derived from file names, and jQuery is normally delivered in a lowercase
18994// file name. Do this after creating the global so that if an AMD module wants
18995// to call noConflict to hide this version of jQuery, it will work.
18996
18997// Note that for maximum portability, libraries that are not jQuery should
18998// declare themselves as anonymous modules, and avoid setting a global if an
18999// AMD loader is present. jQuery is a special case. For more information, see
19000// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
19001
19002if ( t
19002rue ) {
19003	!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
19004		return jQuery;
19005	}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
19006		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
19007}
19008
19009
19010
19011
19012var
19013
19014	// Map over jQuery in case of overwrite
19015	_jQuery = window.jQuery,
19016
19017	// Map over the $ in case of overwrite
19018	_$ = window.$;
19019
19020jQuery.noConflict = function( deep ) {
19021	if ( window.$ === jQuery ) {
19022		window.$ = _$;
19023	}
19024
19025	if ( deep && window.jQuery === jQuery ) {
19026		window.jQuery = _jQuery;
19027	}
19028
19029	return jQuery;
19030};
19031
19032// Expose jQuery and $ identifiers, even in AMD
19033// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
19034// and CommonJS for browser emulators (#13566)
19035if ( typeof noGlobal === "undefined" ) {
19036	window.jQuery = window.$ = jQuery;
19037}
19038
19039
19040
19041
19042return jQuery;
19043} );
19044
19045
19046/***/ }),
19047
19048/***/ 4697:
19049/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
19050
19051//! moment.js locale configuration
19052//! locale : German (Switzerland) [de-ch]
19053//! author : sschueller : https://github.com/sschueller
19054
19055;(function (global, factory) {
19056    true ? factory(__webpack_require__(5093)) :
19057   0
19058}(this, (function (moment) { 'use strict';
19059
19060    //! moment.js locale configuration
19061
19062    function processRelativeTime(number, withoutSuffix, key, isFuture) {
19063        var format = {
19064            m: ['eine Minute', 'einer Minute'],
19065            h: ['eine Stunde', 'einer Stunde'],
19066            d: ['ein Tag', 'einem Tag'],
19067            dd: [number + ' Tage', number + ' Tagen'],
19068            w: ['eine Woche', 'einer Woche'],
19069            M: ['ein Monat', 'einem Monat'],
19070            MM: [number + ' Monate', number + ' Monaten'],
19071            y: ['ein Jahr', 'einem Jahr'],
19072            yy: [number + ' Jahre', number + ' Jahren'],
19073        };
19074        return withoutSuffix ? format[key][0] : format[key][1];
19075    }
19076
19077    var deCh = moment.defineLocale('de-ch', {
19078        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
19079            '_'
19080        ),
19081        monthsShort:
19082            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
19083        monthsParseExact: true,
19084        weekdays:
19085            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
19086                '_'
19087            ),
19088        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
19089        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
19090        weekdaysParseExact: true,
19091        longDateFormat: {
19092            LT: 'HH:mm',
19093            LTS: 'HH:mm:ss',
19094            L: 'DD.MM.YYYY',
19095            LL: 'D. MMMM YYYY',
19096            LLL: 'D. MMMM YYYY HH:mm',
19097            LLLL: 'dddd, D. MMMM YYYY HH:mm',
19098        },
19099        calendar: {
19100            sameDay: '[heute um] LT [Uhr]',
19101            sameElse: 'L',
19102            nextDay: '[morgen um] LT [Uhr]',
19103            nextWeek: 'dddd [um] LT [Uhr]',
19104            lastDay: '[gestern um] LT [Uhr]',
19105            lastWeek: '[letzten] dddd [um] LT [Uhr]',
19106        },
19107        relativeTime: {
19108            future: 'in %s',
19109            past: 'vor %s',
19110            s: 'ein paar Sekunden',
19111            ss: '%d Sekunden',
19112            m: processRelativeTime,
19113            mm: '%d Minuten',
19114            h: processRelativeTime,
19115            hh: '%d Stunden',
19116            d: processRelativeTime,
19117            dd: processRelativeTime,
19118            w: processRelativeTime,
19119            ww: '%d Wochen',
19120            M: processRelativeTime,
19121            MM: processRelativeTime,
19122            y: processRelativeTime,
19123            yy: processRelativeTime,
19124        },
19125        dayOfMonthOrdinalParse: /\d{1,2}\./,
19126        ordinal: '%d.',
19127        week: {
19128            dow: 1, // Monday is the first day of the week.
19129            doy: 4, // The week that contains Jan 4th is the first week of the year.
19130        },
19131    });
19132
19133    return deCh;
19134
19135})));
19136
19137
19138/***/ }),
19139
19140/***/ 4903:
19141/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
19142
19143//! moment.js locale configuration
19144//! locale : Bambara [bm]
19145//! author : Estelle Comment : https://github.com/estellecomment
19146
19147;(function (global, factory) {
19148    true ? factory(__webpack_require__(5093)) :
19149   0
19150}(this, (function (moment) { 'use strict';
19151
19152    //! moment.js locale configuration
19153
19154    var bm = moment.defineLocale('bm', {
19155        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
19156            '_'
19157        ),
19158        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
19159        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
19160        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
19161        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
19162        longDateFormat: {
19163            LT: 'HH:mm',
19164            LTS: 'HH:mm:ss',
19165            L: 'DD/MM/YYYY',
19166            LL: 'MMMM [tile] D [san] YYYY',
19167            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
19168            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
19169        },
19170        calendar: {
19171            sameDay: '[Bi lɛrɛ] LT',
19172            nextDay: '[Sini lɛrɛ] LT',
19173            nextWeek: 'dddd [don lɛrɛ] LT',
19174            lastDay: '[Kunu lɛrɛ] LT',
19175            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
19176            sameElse: 'L',
19177        },
19178        relativeTime: {
19179            future: '%s kɔnɔ',
19180            past: 'a bɛ %s bɔ',
19181            s: 'sanga dama dama',
19182            ss: 'sekondi %d',
19183            m: 'miniti kelen',
19184            mm: 'miniti %d',
19185            h: 'lɛrɛ kelen',
19186            hh: 'lɛrɛ %d',
19187            d: 'tile kelen',
19188            dd: 'tile %d',
19189            M: 'kalo kelen',
19190            MM: 'kalo %d',
19191            y: 'san kelen',
19192            yy: 'san %d',
19193        },
19194        week: {
19195            dow: 1, // Monday is the first day of the week.
19196            doy: 4, // The week that contains Jan 4th is the first week of the year.
19197        },
19198    });
19199
19200    return bm;
19201
19202})));
19203
19204
19205/***/ }),
19206
19207/***/ 5050:
19208/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
19209
19210//! moment.js locale configuration
19211//! locale : Gujarati [gu]
19212//! author : Kaushik Thanki : https://github.com/Kaushik1987
19213
19214;(function (global, factory) {
19215    true ? factory(__webpack_require__(5093)) :
19216   0
19217}(this, (function (moment) { 'use strict';
19218
19219    //! moment.js locale configuration
19220
19221    var symbolMap = {
19222            1: 'à«§',
19223            2: '૨',
19224            3: 'à«©',
19225            4: '૪',
19226            5: 'à««',
19227            6: '૬',
19228            7: 'à«­',
19229            8: 'à«®',
19230            9: '૯',
19231            0: '૦',
19232        },
19233        numberMap = {
19234            'à«§': '1',
19235            '૨': '2',
19236            'à«©': '3',
19237            '૪': '4',
19238            'à««': '5',
19239            '૬': '6',
19240            'à«­': '7',
19241            'à«®': '8',
19242            '૯': '9',
19243            '૦': '0',
19244        };
19245
19246    var gu = moment.defineLocale('gu', {
19247        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
19248            '_'
19249        ),
19250        monthsShort:
19251            'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
19252                '_'
19253            ),
19254        monthsParseExact: true,
19255        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
19256            '_'
19257        ),
19258        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
19259        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
19260        longDateFormat: {
19261            LT: 'A h:mm વાગ્યે',
19262            LTS: 'A h:mm:ss વાગ્યે',
19263            L: 'DD/MM/YYYY',
19264            LL: 'D MMMM YYYY',
19265            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
19266            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
19267        },
19268        calendar: {
19269            sameDay: '[આજ] LT',
19270            nextDay: '[કાલે] LT',
19271            nextWeek: 'dddd, LT',
19272            lastDay: '[ગઇકાલે] LT',
19273            lastWeek: '[પાછલા] dddd, LT',
19274            sameElse: 'L',
19275        },
19276        relativeTime: {
19277            future: '%s મા',
19278            past: '%s પહેલા',
19279            s: 'અમુક પળો',
19280            ss: '%d સેકંડ',
19281            m: 'એક મિનિટ',
19282            mm: '%d મિનિટ',
19283            h: 'એક કલાક',
19284            hh: '%d કલાક',
19285            d: 'એક દિવસ',
19286            dd: '%d દિવસ',
19287            M: 'એક મહિનો',
19288            MM: '%d મહિનો',
19289            y: 'એક વર્ષ',
19290            yy: '%d વર્ષ',
19291        },
19292        preparse: function (string) {
19293            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
19294                return numberMap[match];
19295            });
19296        },
19297        postformat: function (string) {
19298            return string.replace(/\d/g, function (match) {
19299                return symbolMap[match];
19300            });
19301        },
19302        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
19303        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
19304        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
19305        meridiemHour: function (hour, meridiem) {
19306            if (hour === 12) {
19307                hour = 0;
19308            }
19309            if (meridiem === 'રાત') {
19310                return hour < 4 ? hour : hour + 12;
19311            } else if (meridiem === 'સવાર') {
19312                return hour;
19313            } else if (meridiem === 'બપોર') {
19314                return hour >= 10 ? hour : hour + 12;
19315            } else if (meridiem === 'સાંજ') {
19316                return hour + 12;
19317            }
19318        },
19319        meridiem: function (hour, minute, isLower) {
19320            if (hour < 4) {
19321                return 'રાત';
19322            } else if (hour < 10) {
19323                return 'સવાર';
19324            } else if (hour < 17) {
19325                return 'બપોર';
19326            } else if (hour < 20) {
19327                return 'સાંજ';
19328            } else {
19329                return 'રાત';
19330            }
19331        },
19332        week: {
19333            dow: 0, // Sunday is the first day of the week.
19334            doy: 6, // The week that contains Jan 6th is the first week of the year.
19335        },
19336    });
19337
19338    return gu;
19339
19340})));
19341
19342
19343/***/ }),
19344
19345/***/ 5093:
19346/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
19347
19348/* module decorator */ module = __webpack_require__.nmd(module);
19349//! moment.js
19350//! version : 2.30.1
19351//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
19352//! license : MIT
19353//! momentjs.com
19354
19355;(function (global, factory) {
19356     true ? module.exports = factory() :
19357    0
19358}(this, (function () { 'use strict';
19359
19360    var hookCallback;
19361
19362    function hooks() {
19363        return hookCallback.apply(null, arguments);
19364    }
19365
19366    // This is done to register the method called with moment()
19367    // without creating circular dependencies.
19368    function setHookCallback(callback) {
19369        hookCallback = callback;
19370    }
19371
19372    function isArray(input) {
19373        return (
19374            input instanceof Array ||
19375            Object.prototype.toString.call(input) === '[object Array]'
19376        );
19377    }
19378
19379    function isObject(input) {
19380        // IE8 will treat undefined and null as object if it wasn't for
19381        // input != null
19382        return (
19383            input != null &&
19384            Object.prototype.toString.call(input) === '[object Object]'
19385        );
19386    }
19387
19388    function hasOwnProp(a, b) {
19389        return Object.prototype.hasOwnProperty.call(a, b);
19390    }
19391
19392    function isObjectEmpty(obj) {
19393        if (Object.getOwnPropertyNames) {
19394            return Object.getOwnPropertyNames(obj).length === 0;
19395        } else {
19396            var k;
19397            for (k in obj) {
19398                if (hasOwnProp(obj, k)) {
19399                    return false;
vendor: 5,904 bytes, lines 19400-19618
19400                }
19401            }
19402            return true;
19403        }
19404    }
19405
19406    function isUndefined(input) {
19407        return input === void 0;
19408    }
19409
19410    function isNumber(input) {
19411        return (
19412            typeof input === 'number' ||
19413            Object.prototype.toString.call(input) === '[object Number]'
19414        );
19415    }
19416
19417    function isDate(input) {
19418        return (
19419            input instanceof Date ||
19420            Object.prototype.toString.call(input) === '[object Date]'
19421        );
19422    }
19423
19424    function map(arr, fn) {
19425        var res = [],
19426            i,
19427            arrLen = arr.length;
19428        for (i = 0; i < arrLen; ++i) {
19429            res.push(fn(arr[i], i));
19430        }
19431        return res;
19432    }
19433
19434    function extend(a, b) {
19435        for (var i in b) {
19436            if (hasOwnProp(b, i)) {
19437                a[i] = b[i];
19438            }
19439        }
19440
19441        if (hasOwnProp(b, 'toString')) {
19442            a.toString = b.toString;
19443        }
19444
19445        if (hasOwnProp(b, 'valueOf')) {
19446            a.valueOf = b.valueOf;
19447        }
19448
19449        return a;
19450    }
19451
19452    function createUTC(input, format, locale, strict) {
19453        return createLocalOrUTC(input, format, locale, strict, true).utc();
19454    }
19455
19456    function defaultParsingFlags() {
19457        // We need to deep clone this object.
19458        return {
19459            empty: false,
19460            unusedTokens: [],
19461            unusedInput: [],
19462            overflow: -2,
19463            charsLeftOver: 0,
19464            nullInput: false,
19465            invalidEra: null,
19466            invalidMonth: null,
19467            invalidFormat: false,
19468            userInvalidated: false,
19469            iso: false,
19470            parsedDateParts: [],
19471            era: null,
19472            meridiem: null,
19473            rfc2822: false,
19474            weekdayMismatch: false,
19475        };
19476    }
19477
19478    function getParsingFlags(m) {
19479        if (m._pf == null) {
19480            m._pf = defaultParsingFlags();
19481        }
19482        return m._pf;
19483    }
19484
19485    var some;
19486    if (Array.prototype.some) {
19487        some = Array.prototype.some;
19488    } else {
19489        some = function (fun) {
19490            var t = Object(this),
19491                len = t.length >>> 0,
19492                i;
19493
19494            for (i = 0; i < len; i++) {
19495                if (i in t && fun.call(this, t[i], i, t)) {
19496                    return true;
19497                }
19498            }
19499
19500            return false;
19501        };
19502    }
19503
19504    function isValid(m) {
19505        var flags = null,
19506            parsedParts = false,
19507            isNowValid = m._d && !isNaN(m._d.getTime());
19508        if (isNowValid) {
19509            flags = getParsingFlags(m);
19510            parsedParts = some.call(flags.parsedDateParts, function (i) {
19511                return i != null;
19512            });
19513            isNowValid =
19514                flags.overflow < 0 &&
19515                !flags.empty &&
19516                !flags.invalidEra &&
19517                !flags.invalidMonth &&
19518                !flags.invalidWeekday &&
19519                !flags.weekdayMismatch &&
19520                !flags.nullInput &&
19521                !flags.invalidFormat &&
19522                !flags.userInvalidated &&
19523                (!flags.meridiem || (flags.meridiem && parsedParts));
19524            if (m._strict) {
19525                isNowValid =
19526                    isNowValid &&
19527                    flags.charsLeftOver === 0 &&
19528                    flags.unusedTokens.length === 0 &&
19529                    flags.bigHour === undefined;
19530            }
19531        }
19532        if (Object.isFrozen == null || !Object.isFrozen(m)) {
19533            m._isValid = isNowValid;
19534        } else {
19535            return isNowValid;
19536        }
19537        return m._isValid;
19538    }
19539
19540    function createInvalid(flags) {
19541        var m = createUTC(NaN);
19542        if (flags != null) {
19543            extend(getParsingFlags(m), flags);
19544        } else {
19545            getParsingFlags(m).userInvalidated = true;
19546        }
19547
19548        return m;
19549    }
19550
19551    // Plugins that add properties should also add the key here (null value),
19552    // so we can properly clone ourselves.
19553    var momentProperties = (hooks.momentProperties = []),
19554        updateInProgress = false;
19555
19556    function copyConfig(to, from) {
19557        var i,
19558            prop,
19559            val,
19560            momentPropertiesLen = momentProperties.length;
19561
19562        if (!isUndefined(from._isAMomentObject)) {
19563            to._isAMomentObject = from._isAMomentObject;
19564        }
19565        if (!isUndefined(from._i)) {
19566            to._i = from._i;
19567        }
19568        if (!isUndefined(from._f)) {
19569            to._f = from._f;
19570        }
19571        if (!isUndefined(from._l)) {
19572            to._l = from._l;
19573        }
19574        if (!isUndefined(from._strict)) {
19575            to._strict = from._strict;
19576        }
19577        if (!isUndefined(from._tzm)) {
19578            to._tzm = from._tzm;
19579        }
19580        if (!isUndefined(from._isUTC)) {
19581            to._isUTC = from._isUTC;
19582        }
19583        if (!isUndefined(from._offset)) {
19584            to._offset = from._offset;
19585        }
19586        if (!isUndefined(from._pf)) {
19587            to._pf = getParsingFlags(from);
19588        }
19589        if (!isUndefined(from._locale)) {
19590            to._locale = from._locale;
19591        }
19592
19593        if (momentPropertiesLen > 0) {
19594            for (i = 0; i < momentPropertiesLen; i++) {
19595                prop = momentProperties[i];
19596                val = from[prop];
19597                if (!isUndefined(val)) {
19598                    to[prop] = val;
19599                }
19600            }
19601        }
19602
19603        return to;
19604    }
19605
19606    // Moment prototype object
19607    function Moment(config) {
19608        copyConfig(this, config);
19609        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
19610        if (!this.isValid()) {
19611            this._d = new Date(NaN);
19612        }
19613        // Prevent infinite loop in case updateOffset creates new moment
19614        // objects.
19615        if (updateInProgress === false) {
19616            updateInProgress = true;
19617            hooks.updateOffset(this);
19618            updateInProgress = false;
vendor: 5,578 bytes, lines 19619-19802
19619        }
19620    }
19621
19622    function isMoment(obj) {
19623        return (
19624            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
19625        );
19626    }
19627
19628    function warn(msg) {
19629        if (
19630            hooks.suppressDeprecationWarnings === false &&
19631            typeof console !== 'undefined' &&
19632            console.warn
19633        ) {
19634            console.warn('Deprecation warning: ' + msg);
19635        }
19636    }
19637
19638    function deprecate(msg, fn) {
19639        var firstTime = true;
19640
19641        return extend(function () {
19642            if (hooks.deprecationHandler != null) {
19643                hooks.deprecationHandler(null, msg);
19644            }
19645            if (firstTime) {
19646                var args = [],
19647                    arg,
19648                    i,
19649                    key,
19650                    argLen = arguments.length;
19651                for (i = 0; i < argLen; i++) {
19652                    arg = '';
19653                    if (typeof arguments[i] === 'object') {
19654                        arg += '\n[' + i + '] ';
19655                        for (key in arguments[0]) {
19656                            if (hasOwnProp(arguments[0], key)) {
19657                                arg += key + ': ' + arguments[0][key] + ', ';
19658                            }
19659                        }
19660                        arg = arg.slice(0, -2); // Remove trailing comma and space
19661                    } else {
19662                        arg = arguments[i];
19663                    }
19664                    args.push(arg);
19665                }
19666                warn(
19667                    msg +
19668                        '\nArguments: ' +
19669                        Array.prototype.slice.call(args).join('') +
19670                        '\n' +
19671                        new Error().stack
19672                );
19673                firstTime = false;
19674            }
19675            return fn.apply(this, arguments);
19676        }, fn);
19677    }
19678
19679    var deprecations = {};
19680
19681    function deprecateSimple(name, msg) {
19682        if (hooks.deprecationHandler != null) {
19683            hooks.deprecationHandler(name, msg);
19684        }
19685        if (!deprecations[name]) {
19686            warn(msg);
19687            deprecations[name] = true;
19688        }
19689    }
19690
19691    hooks.suppressDeprecationWarnings = false;
19692    hooks.deprecationHandler = null;
19693
19694    function isFunction(input) {
19695        return (
19696            (typeof Function !== 'undefined' && input instanceof Function) ||
19697            Object.prototype.toString.call(input) === '[object Function]'
19698        );
19699    }
19700
19701    function set(config) {
19702        var prop, i;
19703        for (i in config) {
19704            if (hasOwnProp(config, i)) {
19705                prop = config[i];
19706                if (isFunction(prop)) {
19707                    this[i] = prop;
19708                } else {
19709                    this['_' + i] = prop;
19710                }
19711            }
19712        }
19713        this._config = config;
19714        // Lenient ordinal parsing accepts just a number in addition to
19715        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
19716        // TODO: Remove "ordinalParse" fallback in next major release.
19717        this._dayOfMonthOrdinalParseLenient = new RegExp(
19718            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
19719                '|' +
19720                /\d{1,2}/.source
19721        );
19722    }
19723
19724    function mergeConfigs(parentConfig, childConfig) {
19725        var res = extend({}, parentConfig),
19726            prop;
19727        for (prop in childConfig) {
19728            if (hasOwnProp(childConfig, prop)) {
19729                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
19730                    res[prop] = {};
19731                    extend(res[prop], parentConfig[prop]);
19732                    extend(res[prop], childConfig[prop]);
19733                } else if (childConfig[prop] != null) {
19734                    res[prop] = childConfig[prop];
19735                } else {
19736                    delete res[prop];
19737                }
19738            }
19739        }
19740        for (prop in parentConfig) {
19741            if (
19742                hasOwnProp(parentConfig, prop) &&
19743                !hasOwnProp(childConfig, prop) &&
19744                isObject(parentConfig[prop])
19745            ) {
19746                // make sure changes to properties don't modify parent config
19747                res[prop] = extend({}, res[prop]);
19748            }
19749        }
19750        return res;
19751    }
19752
19753    function Locale(config) {
19754        if (config != null) {
19755            this.set(config);
19756        }
19757    }
19758
19759    var keys;
19760
19761    if (Object.keys) {
19762        keys = Object.keys;
19763    } else {
19764        keys = function (obj) {
19765            var i,
19766                res = [];
19767            for (i in obj) {
19768                if (hasOwnProp(obj, i)) {
19769                    res.push(i);
19770                }
19771            }
19772            return res;
19773        };
19774    }
19775
19776    var defaultCalendar = {
19777        sameDay: '[Today at] LT',
19778        nextDay: '[Tomorrow at] LT',
19779        nextWeek: 'dddd [at] LT',
19780        lastDay: '[Yesterday at] LT',
19781        lastWeek: '[Last] dddd [at] LT',
19782        sameElse: 'L',
19783    };
19784
19785    function calendar(key, mom, now) {
19786        var output = this._calendar[key] || this._calendar['sameElse'];
19787        return isFunction(output) ? output.call(mom, now) : output;
19788    }
19789
19790    function zeroFill(number, targetLength, forceSign) {
19791        var absNumber = '' + Math.abs(number),
19792            zerosToFill = targetLength - absNumber.length,
19793            sign = number >= 0;
19794        return (
19795            (sign ? (forceSign ? '+' : '') : '-') +
19796            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
19797            absNumber
19798        );
19799    }
19800
19801    var formattingTokens =
19802           
vendor: 5,181 bytes, lines 19802-19980
19802 /(\[[^\[]*\])|(\\)?([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,
19803        localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
19804        formatFunctions = {},
19805        formatTokenFunctions = {};
19806
19807    // token:    'M'
19808    // padded:   ['MM', 2]
19809    // ordinal:  'Mo'
19810    // callback: function () { this.month() + 1 }
19811    function addFormatToken(token, padded, ordinal, callback) {
19812        var func = callback;
19813        if (typeof callback === 'string') {
19814            func = function () {
19815                return this[callback]();
19816            };
19817        }
19818        if (token) {
19819            formatTokenFunctions[token] = func;
19820        }
19821        if (padded) {
19822            formatTokenFunctions[padded[0]] = function () {
19823                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
19824            };
19825        }
19826        if (ordinal) {
19827            formatTokenFunctions[ordinal] = function () {
19828                return this.localeData().ordinal(
19829                    func.apply(this, arguments),
19830                    token
19831                );
19832            };
19833        }
19834    }
19835
19836    function removeFormattingTokens(input) {
19837        if (input.match(/\[[\s\S]/)) {
19838            return input.replace(/^\[|\]$/g, '');
19839        }
19840        return input.replace(/\\/g, '');
19841    }
19842
19843    function makeFormatFunction(format) {
19844        var array = format.match(formattingTokens),
19845            i,
19846            length;
19847
19848        for (i = 0, length = array.length; i < length; i++) {
19849            if (formatTokenFunctions[array[i]]) {
19850                array[i] = formatTokenFunctions[array[i]];
19851            } else {
19852                array[i] = removeFormattingTokens(array[i]);
19853            }
19854        }
19855
19856        return function (mom) {
19857            var output = '',
19858                i;
19859            for (i = 0; i < length; i++) {
19860                output += isFunction(array[i])
19861                    ? array[i].call(mom, format)
19862                    : array[i];
19863            }
19864            return output;
19865        };
19866    }
19867
19868    // format date using native date object
19869    function formatMoment(m, format) {
19870        if (!m.isValid()) {
19871            return m.localeData().invalidDate();
19872        }
19873
19874        format = expandFormat(format, m.localeData());
19875        formatFunctions[format] =
19876            formatFunctions[format] || makeFormatFunction(format);
19877
19878        return formatFunctions[format](m);
19879    }
19880
19881    function expandFormat(format, locale) {
19882        var i = 5;
19883
19884        function replaceLongDateFormatTokens(input) {
19885            return locale.longDateFormat(input) || input;
19886        }
19887
19888        localFormattingTokens.lastIndex = 0;
19889        while (i >= 0 && localFormattingTokens.test(format)) {
19890            format = format.replace(
19891                localFormattingTokens,
19892                replaceLongDateFormatTokens
19893            );
19894            localFormattingTokens.lastIndex = 0;
19895            i -= 1;
19896        }
19897
19898        return format;
19899    }
19900
19901    var defaultLongDateFormat = {
19902        LTS: 'h:mm:ss A',
19903        LT: 'h:mm A',
19904        L: 'MM/DD/YYYY',
19905        LL: 'MMMM D, YYYY',
19906        LLL: 'MMMM D, YYYY h:mm A',
19907        LLLL: 'dddd, MMMM D, YYYY h:mm A',
19908    };
19909
19910    function longDateFormat(key) {
19911        var format = this._longDateFormat[key],
19912            formatUpper = this._longDateFormat[key.toUpperCase()];
19913
19914        if (format || !formatUpper) {
19915            return format;
19916        }
19917
19918        this._longDateFormat[key] = formatUpper
19919            .match(formattingTokens)
19920            .map(function (tok) {
19921                if (
19922                    tok === 'MMMM' ||
19923                    tok === 'MM' ||
19924                    tok === 'DD' ||
19925                    tok === 'dddd'
19926                ) {
19927                    return tok.slice(1);
19928                }
19929                return tok;
19930            })
19931            .join('');
19932
19933        return this._longDateFormat[key];
19934    }
19935
19936    var defaultInvalidDate = 'Invalid date';
19937
19938    function invalidDate() {
19939        return this._invalidDate;
19940    }
19941
19942    var defaultOrdinal = '%d',
19943        defaultDayOfMonthOrdinalParse = /\d{1,2}/;
19944
19945    function ordinal(number) {
19946        return this._ordinal.replace('%d', number);
19947    }
19948
19949    var defaultRelativeTime = {
19950        future: 'in %s',
19951        past: '%s ago',
19952        s: 'a few seconds',
19953        ss: '%d seconds',
19954        m: 'a minute',
19955        mm: '%d minutes',
19956        h: 'an hour',
19957        hh: '%d hours',
19958        d: 'a day',
19959        dd: '%d days',
19960        w: 'a week',
19961        ww: '%d weeks',
19962        M: 'a month',
19963        MM: '%d months',
19964        y: 'a year',
19965        yy: '%d years',
19966    };
19967
19968    function relativeTime(number, withoutSuffix, string, isFuture) {
19969        var output = this._relativeTime[string];
19970        return isFunction(output)
19971            ? output(number, withoutSuffix, string, isFuture)
19972            : output.replace(/%d/i, number);
19973    }
19974
19975    function pastFuture(diff, output) {
19976        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
19977        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
19978    }
19979
19980    var aliases = {
vendor: 18,098 bytes, lines 19980-20576
19980
19981        D: 'date',
19982        dates: 'date',
19983        date: 'date',
19984        d: 'day',
19985        days: 'day',
19986        day: 'day',
19987        e: 'weekday',
19988        weekdays: 'weekday',
19989        weekday: 'weekday',
19990        E: 'isoWeekday',
19991        isoweekdays: 'isoWeekday',
19992        isoweekday: 'isoWeekday',
19993        DDD: 'dayOfYear',
19994        dayofyears: 'dayOfYear',
19995        dayofyear: 'dayOfYear',
19996        h: 'hour',
19997        hours: 'hour',
19998        hour: 'hour',
19999        ms: 'millisecond',
20000        milliseconds: 'millisecond',
20001        millisecond: 'millisecond',
20002        m: 'minute',
20003        minutes: 'minute',
20004        minute: 'minute',
20005        M: 'month',
20006        months: 'month',
20007        month: 'month',
20008        Q: 'quarter',
20009        quarters: 'quarter',
20010        quarter: 'quarter',
20011        s: 'second',
20012        seconds: 'second',
20013        second: 'second',
20014        gg: 'weekYear',
20015        weekyears: 'weekYear',
20016        weekyear: 'weekYear',
20017        GG: 'isoWeekYear',
20018        isoweekyears: 'isoWeekYear',
20019        isoweekyear: 'isoWeekYear',
20020        w: 'week',
20021        weeks: 'week',
20022        week: 'week',
20023        W: 'isoWeek',
20024        isoweeks: 'isoWeek',
20025        isoweek: 'isoWeek',
20026        y: 'year',
20027        years: 'year',
20028        year: 'year',
20029    };
20030
20031    function normalizeUnits(units) {
20032        return typeof units === 'string'
20033            ? aliases[units] || aliases[units.toLowerCase()]
20034            : undefined;
20035    }
20036
20037    function normalizeObjectUnits(inputObject) {
20038        var normalizedInput = {},
20039            normalizedProp,
20040            prop;
20041
20042        for (prop in inputObject) {
20043            if (hasOwnProp(inputObject, prop)) {
20044                normalizedProp = normalizeUnits(prop);
20045                if (normalizedProp) {
20046                    normalizedInput[normalizedProp] = inputObject[prop];
20047                }
20048            }
20049        }
20050
20051        return normalizedInput;
20052    }
20053
20054    var priorities = {
20055        date: 9,
20056        day: 11,
20057        weekday: 11,
20058        isoWeekday: 11,
20059        dayOfYear: 4,
20060        hour: 13,
20061        millisecond: 16,
20062        minute: 14,
20063        month: 8,
20064        quarter: 7,
20065        second: 15,
20066        weekYear: 1,
20067        isoWeekYear: 1,
20068        week: 5,
20069        isoWeek: 5,
20070        year: 1,
20071    };
20072
20073    function getPrioritizedUnits(unitsObj) {
20074        var units = [],
20075            u;
20076        for (u in unitsObj) {
20077            if (hasOwnProp(unitsObj, u)) {
20078                units.push({ unit: u, priority: priorities[u] });
20079            }
20080        }
20081        units.sort(function (a, b) {
20082            return a.priority - b.priority;
20083        });
20084        return units;
20085    }
20086
20087    var match1 = /\d/, //       0 - 9
20088        match2 = /\d\d/, //      00 - 99
20089        match3 = /\d{3}/, //     000 - 999
20090        match4 = /\d{4}/, //    0000 - 9999
20091        match6 = /[+-]?\d{6}/, // -999999 - 999999
20092        match1to2 = /\d\d?/, //       0 - 99
20093        match3to4 = /\d\d\d\d?/, //     999 - 9999
20094        match5to6 = /\d\d\d\d\d\d?/, //   99999 - 999999
20095        match1to3 = /\d{1,3}/, //       0 - 999
20096        match1to4 = /\d{1,4}/, //       0 - 9999
20097        match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
20098        matchUnsigned = /\d+/, //       0 - inf
20099        matchSigned = /[+-]?\d+/, //    -inf - inf
20100        matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
20101        matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
20102        matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
20103        // any word (or two) characters or numbers including two/three word month in arabic.
20104        // includes scottish gaelic two word and hyphenated months
20105        matchWord =
20106            /[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,
20107        match1to2NoLeadingZero = /^[1-9]\d?/, //         1-99
20108        match1to2HasZero = /^([1-9]\d|\d)/, //           0-99
20109        regexes;
20110
20111    regexes = {};
20112
20113    function addRegexToken(token, regex, strictRegex) {
20114        regexes[token] = isFunction(regex)
20115            ? regex
20116            : function (isStrict, localeData) {
20117                  return isStrict && strictRegex ? strictRegex : regex;
20118              };
20119    }
20120
20121    function getParseRegexForToken(token, config) {
20122        if (!hasOwnProp(regexes, token)) {
20123            return new RegExp(unescapeFormat(token));
20124        }
20125
20126        return regexes[token](config._strict, config._locale);
20127    }
20128
20129    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
20130    function unescapeFormat(s) {
20131        return regexEscape(
20132            s
20133                .replace('\\', '')
20134                .replace(
20135                    /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
20136                    function (matched, p1, p2, p3, p4) {
20137                        return p1 || p2 || p3 || p4;
20138                    }
20139                )
20140        );
20141    }
20142
20143    function regexEscape(s) {
20144        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
20145    }
20146
20147    function absFloor(number) {
20148        if (number < 0) {
20149            // -0 -> 0
20150            return Math.ceil(number) || 0;
20151        } else {
20152            return Math.floor(number);
20153        }
20154    }
20155
20156    function toInt(argumentForCoercion) {
20157        var coercedNumber = +argumentForCoercion,
20158            value = 0;
20159
20160        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
20161            value = absFloor(coercedNumber);
20162        }
20163
20164        return value;
20165    }
20166
20167    var tokens = {};
20168
20169    function addParseToken(token, callback) {
20170        var i,
20171            func = callback,
20172            tokenLen;
20173        if (typeof token === 'string') {
20174            token = [token];
20175        }
20176        if (isNumber(callback)) {
20177            func = function (input, array) {
20178                array[callback] = toInt(input);
20179            };
20180        }
20181        tokenLen = token.length;
20182        for (i = 0; i < tokenLen; i++) {
20183            tokens[token[i]] = func;
20184        }
20185    }
20186
20187    function addWeekParseToken(token, callback) {
20188        addParseToken(token, function (input, array, config, token) {
20189            config._w = config._w || {};
20190            callback(input, config._w, config, token);
20191        });
20192    }
20193
20194    function addTimeToArrayFromToken(token, input, config) {
20195        if (input != null && hasOwnProp(tokens, token)) {
20196            tokens[token](input, config._a, config, token);
20197        }
20198    }
20199
20200    function isLeapYear(year) {
20201        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
20202    }
20203
20204    var YEAR = 0,
20205        MONTH = 1,
20206        DATE = 2,
20207        HOUR = 3,
20208        MINUTE = 4,
20209        SECOND = 5,
20210        MILLISECOND = 6,
20211        WEEK = 7,
20212        WEEKDAY = 8;
20213
20214    // FORMATTING
20215
20216    addFormatToken('Y', 0, 0, function () {
20217        var y = this.year();
20218        return y <= 9999 ? zeroFill(y, 4) : '+' + y;
20219    });
20220
20221    addFormatToken(0, ['YY', 2], 0, function () {
20222        return this.year() % 100;
20223    });
20224
20225    addFormatToken(0, ['YYYY', 4], 0, 'year');
20226    addFormatToken(0, ['YYYYY', 5], 0, 'year');
20227    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
20228
20229    // PARSING
20230
20231    addRegexToken('Y', matchSigned);
20232    addRegexToken('YY', match1to2, match2);
20233    addRegexToken('YYYY', match1to4, match4);
20234    addRegexToken('YYYYY', match1to6, match6);
20235    addRegexToken('YYYYYY', match1to6, match6);
20236
20237    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
20238    addParseToken('YYYY', function (input, array) {
20239        array[YEAR] =
20240            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
20241    });
20242    addParseToken('YY', function (input, array) {
20243        array[YEAR] = hooks.parseTwoDigitYear(input);
20244    });
20245    addParseToken('Y', function (input, array) {
20246        array[YEAR] = parseInt(input, 10);
20247    });
20248
20249    // HELPERS
20250
20251    function daysInYear(year) {
20252        return isLeapYear(year) ? 366 : 365;
20253    }
20254
20255    // HOOKS
20256
20257    hooks.parseTwoDigitYear = function (input) {
20258        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
20259    };
20260
20261    // MOMENTS
20262
20263    var getSetYear = makeGetSet('FullYear', true);
20264
20265    function getIsLeapYear() {
20266        return isLeapYear(this.year());
20267    }
20268
20269    function makeGetSet(unit, keepTime) {
20270        return function (value) {
20271            if (value != null) {
20272                set$1(this, unit, value);
20273                hooks.updateOffset(this, keepTime);
20274                return this;
20275            } else {
20276                return get(this, unit);
20277            }
20278        };
20279    }
20280
20281    function get(mom, unit) {
20282        if (!mom.isValid()) {
20283            return NaN;
20284        }
20285
20286        var d = mom._d,
20287            isUTC = mom._isUTC;
20288
20289        switch (unit) {
20290            case 'Milliseconds':
20291                return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();
20292            case 'Seconds':
20293                return isUTC ? d.getUTCSeconds() : d.getSeconds();
20294            case 'Minutes':
20295                return isUTC ? d.getUTCMinutes() : d.getMinutes();
20296            case 'Hours':
20297                return isUTC ? d.getUTCHours() : d.getHours();
20298            case 'Date':
20299                return isUTC ? d.getUTCDate() : d.getDate();
20300            case 'Day':
20301                return isUTC ? d.getUTCDay() : d.getDay();
20302            case 'Month':
20303                return isUTC ? d.getUTCMonth() : d.getMonth();
20304            case 'FullYear':
20305                return isUTC ? d.getUTCFullYear() : d.getFullYear();
20306            default:
20307                return NaN; // Just in case
20308        }
20309    }
20310
20311    function set$1(mom, unit, value) {
20312        var d, isUTC, year, month, date;
20313
20314        if (!mom.isValid() || isNaN(value)) {
20315            return;
20316        }
20317
20318        d = mom._d;
20319        isUTC = mom._isUTC;
20320
20321        switch (unit) {
20322            case 'Milliseconds':
20323                return void (isUTC
20324                    ? d.setUTCMilliseconds(value)
20325                    : d.setMilliseconds(value));
20326            case 'Seconds':
20327                return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));
20328            case 'Minutes':
20329                return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));
20330            case 'Hours':
20331                return void (isUTC ? d.setUTCHours(value) : d.setHours(value));
20332            case 'Date':
20333                return void (isUTC ? d.setUTCDate(value) : d.setDate(value));
20334            // case 'Day': // Not real
20335            //    return void (isUTC ? d.setUTCDay(value) : d.setDay(value));
20336            // case 'Month': // Not used because we need to pass two variables
20337            //     return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));
20338            case 'FullYear':
20339                break; // See below ...
20340            default:
20341                return; // Just in case
20342        }
20343
20344        year = value;
20345        month = mom.month();
20346        date = mom.date();
20347        date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;
20348        void (isUTC
20349            ? d.setUTCFullYear(year, month, date)
20350            : d.setFullYear(year, month, date));
20351    }
20352
20353    // MOMENTS
20354
20355    function stringGet(units) {
20356        units = normalizeUnits(units);
20357        if (isFunction(this[units])) {
20358            return this[units]();
20359        }
20360        return this;
20361    }
20362
20363    function stringSet(units, value) {
20364        if (typeof units === 'object') {
20365            units = normalizeObjectUnits(units);
20366            var prioritized = getPrioritizedUnits(units),
20367                i,
20368                prioritizedLen = prioritized.length;
20369            for (i = 0; i < prioritizedLen; i++) {
20370                this[prioritized[i].unit](units[prioritized[i].unit]);
20371            }
20372        } else {
20373            units = normalizeUnits(units);
20374            if (isFunction(this[units])) {
20375                return this[units](value);
20376            }
20377        }
20378        return this;
20379    }
20380
20381    function mod(n, x) {
20382        return ((n % x) + x) % x;
20383    }
20384
20385    var indexOf;
20386
20387    if (Array.prototype.indexOf) {
20388        indexOf = Array.prototype.indexOf;
20389    } else {
20390        indexOf = function (o) {
20391            // I know
20392            var i;
20393            for (i = 0; i < this.length; ++i) {
20394                if (this[i] === o) {
20395                    return i;
20396                }
20397            }
20398            return -1;
20399        };
20400    }
20401
20402    function daysInMonth(year, month) {
20403        if (isNaN(year) || isNaN(month)) {
20404            return NaN;
20405        }
20406        var modMonth = mod(month, 12);
20407        year += (month - modMonth) / 12;
20408        return modMonth === 1
20409            ? isLeapYear(year)
20410                ? 29
20411                : 28
20412            : 31 - ((modMonth % 7) % 2);
20413    }
20414
20415    // FORMATTING
20416
20417    addFormatToken('M', ['MM', 2], 'Mo', function () {
20418        return this.month() + 1;
20419    });
20420
20421    addFormatToken('MMM', 0, 0, function (format) {
20422        return this.localeData().monthsShort(this, format);
20423    });
20424
20425    addFormatToken('MMMM', 0, 0, function (format) {
20426        return this.localeData().months(this, format);
20427    });
20428
20429    // PARSING
20430
20431    addRegexToken('M', match1to2, match1to2NoLeadingZero);
20432    addRegexToken('MM', match1to2, match2);
20433    addRegexToken('MMM', function (isStrict, locale) {
20434        return locale.monthsShortRegex(isStrict);
20435    });
20436    addRegexToken('MMMM', function (isStrict, locale) {
20437        return locale.monthsRegex(isStrict);
20438    });
20439
20440    addParseToken(['M', 'MM'], function (input, array) {
20441        array[MONTH] = toInt(input) - 1;
20442    });
20443
20444    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
20445        var month = config._locale.monthsParse(input, token, config._strict);
20446        // if we didn't find a month name, mark the date as invalid.
20447        if (month != null) {
20448            array[MONTH] = month;
20449        } else {
20450            getParsingFlags(config).invalidMonth = input;
20451        }
20452    });
20453
20454    // LOCALES
20455
20456    var defaultLocaleMonths =
20457            'January_February_March_April_May_June_July_August_September_October_November_December'.split(
20458                '_'
20459            ),
20460        defaultLocaleMonthsShort =
20461            'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
20462        MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
20463        defaultMonthsShortRegex = matchWord,
20464        defaultMonthsRegex = matchWord;
20465
20466    function localeMonths(m, format) {
20467        if (!m) {
20468            return isArray(this._months)
20469                ? this._months
20470                : this._months['standalone'];
20471        }
20472        return isArray(this._months)
20473            ? this._months[m.month()]
20474            : this._months[
20475                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
20476                      ? 'format'
20477                      : 'standalone'
20478              ][m.month()];
20479    }
20480
20481    function localeMonthsShort(m, format) {
20482        if (!m) {
20483            return isArray(this._monthsShort)
20484                ? this._monthsShort
20485                : this._monthsShort['standalone'];
20486        }
20487        return isArray(this._monthsShort)
20488            ? this._monthsShort[m.month()]
20489            : this._monthsShort[
20490                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
20491              ][m.month()];
20492    }
20493
20494    function handleStrictParse(monthName, format, strict) {
20495        var i,
20496            ii,
20497            mom,
20498            llc = monthName.toLocaleLowerCase();
20499        if (!this._monthsParse) {
20500            // this is not used
20501            this._monthsParse = [];
20502            this._longMonthsParse = [];
20503            this._shortMonthsParse = [];
20504            for (i = 0; i < 12; ++i) {
20505                mom = createUTC([2000, i]);
20506                this._shortMonthsParse[i] = this.monthsShort(
20507                    mom,
20508                    ''
20509                ).toLocaleLowerCase();
20510                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
20511            }
20512        }
20513
20514        if (strict) {
20515            if (format === 'MMM') {
20516                ii = indexOf.call(this._shortMonthsParse, llc);
20517                return ii !== -1 ? ii : null;
20518            } else {
20519                ii = indexOf.call(this._longMonthsParse, llc);
20520                return ii !== -1 ? ii : null;
20521            }
20522        } else {
20523            if (format === 'MMM') {
20524                ii = indexOf.call(this._shortMonthsParse, llc);
20525                if (ii !== -1) {
20526                    return ii;
20527                }
20528                ii = indexOf.call(this._longMonthsParse, llc);
20529                return ii !== -1 ? ii : null;
20530            } else {
20531                ii = indexOf.call(this._longMonthsParse, llc);
20532                if (ii !== -1) {
20533                    return ii;
20534                }
20535                ii = indexOf.call(this._shortMonthsParse, llc);
20536                return ii !== -1 ? ii : null;
20537            }
20538        }
20539    }
20540
20541    function localeMonthsParse(monthName, format, strict) {
20542        var i, mom, regex;
20543
20544        if (this._monthsParseExact) {
20545            return handleStrictParse.call(this, monthName, format, strict);
20546        }
20547
20548        if (!this._monthsParse) {
20549            this._monthsParse = [];
20550            this._longMonthsParse = [];
20551            this._shortMonthsParse = [];
20552        }
20553
20554        // TODO: add sorting
20555        // Sorting makes sure if one month (or abbr) is a prefix of another
20556        // see sorting in computeMonthsParse
20557        for (i = 0; i < 12; i++) {
20558            // make the regex if we don't have it already
20559            mom = createUTC([2000, i]);
20560            if (strict && !this._longMonthsParse[i]) {
20561                this._longMonthsParse[i] = new RegExp(
20562                    '^' + this.months(mom, '').replace('.', '') + '$',
20563                    'i'
20564                );
20565                this._shortMonthsParse[i] = new RegExp(
20566                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',
20567                    'i'
20568                );
20569            }
20570            if (!strict && !this._monthsParse[i]) {
20571                regex =
20572                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
20573                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
20574            }
20575            // test the regex
20576            if (
vendor: 5,127 bytes, lines 20577-20742
20577                strict &&
20578                format === 'MMMM' &&
20579                this._longMonthsParse[i].test(monthName)
20580            ) {
20581                return i;
20582            } else if (
20583                strict &&
20584                format === 'MMM' &&
20585                this._shortMonthsParse[i].test(monthName)
20586            ) {
20587                return i;
20588            } else if (!strict && this._monthsParse[i].test(monthName)) {
20589                return i;
20590            }
20591        }
20592    }
20593
20594    // MOMENTS
20595
20596    function setMonth(mom, value) {
20597        if (!mom.isValid()) {
20598            // No op
20599            return mom;
20600        }
20601
20602        if (typeof value === 'string') {
20603            if (/^\d+$/.test(value)) {
20604                value = toInt(value);
20605            } else {
20606                value = mom.localeData().monthsParse(value);
20607                // TODO: Another silent failure?
20608                if (!isNumber(value)) {
20609                    return mom;
20610                }
20611            }
20612        }
20613
20614        var month = value,
20615            date = mom.date();
20616
20617        date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));
20618        void (mom._isUTC
20619            ? mom._d.setUTCMonth(month, date)
20620            : mom._d.setMonth(month, date));
20621        return mom;
20622    }
20623
20624    function getSetMonth(value) {
20625        if (value != null) {
20626            setMonth(this, value);
20627            hooks.updateOffset(this, true);
20628            return this;
20629        } else {
20630            return get(this, 'Month');
20631        }
20632    }
20633
20634    function getDaysInMonth() {
20635        return daysInMonth(this.year(), this.month());
20636    }
20637
20638    function monthsShortRegex(isStrict) {
20639        if (this._monthsParseExact) {
20640            if (!hasOwnProp(this, '_monthsRegex')) {
20641                computeMonthsParse.call(this);
20642            }
20643            if (isStrict) {
20644                return this._monthsShortStrictRegex;
20645            } else {
20646                return this._monthsShortRegex;
20647            }
20648        } else {
20649            if (!hasOwnProp(this, '_monthsShortRegex')) {
20650                this._monthsShortRegex = defaultMonthsShortRegex;
20651            }
20652            return this._monthsShortStrictRegex && isStrict
20653                ? this._monthsShortStrictRegex
20654                : this._monthsShortRegex;
20655        }
20656    }
20657
20658    function monthsRegex(isStrict) {
20659        if (this._monthsParseExact) {
20660            if (!hasOwnProp(this, '_monthsRegex')) {
20661                computeMonthsParse.call(this);
20662            }
20663            if (isStrict) {
20664                return this._monthsStrictRegex;
20665            } else {
20666                return this._monthsRegex;
20667            }
20668        } else {
20669            if (!hasOwnProp(this, '_monthsRegex')) {
20670                this._monthsRegex = defaultMonthsRegex;
20671            }
20672            return this._monthsStrictRegex && isStrict
20673                ? this._monthsStrictRegex
20674                : this._monthsRegex;
20675        }
20676    }
20677
20678    function computeMonthsParse() {
20679        function cmpLenRev(a, b) {
20680            return b.length - a.length;
20681        }
20682
20683        var shortPieces = [],
20684            longPieces = [],
20685            mixedPieces = [],
20686            i,
20687            mom,
20688            shortP,
20689            longP;
20690        for (i = 0; i < 12; i++) {
20691            // make the regex if we don't have it already
20692            mom = createUTC([2000, i]);
20693            shortP = regexEscape(this.monthsShort(mom, ''));
20694            longP = regexEscape(this.months(mom, ''));
20695            shortPieces.push(shortP);
20696            longPieces.push(longP);
20697            mixedPieces.push(longP);
20698            mixedPieces.push(shortP);
20699        }
20700        // Sorting makes sure if one month (or abbr) is a prefix of another it
20701        // will match the longer piece.
20702        shortPieces.sort(cmpLenRev);
20703        longPieces.sort(cmpLenRev);
20704        mixedPieces.sort(cmpLenRev);
20705
20706        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
20707        this._monthsShortRegex = this._monthsRegex;
20708        this._monthsStrictRegex = new RegExp(
20709            '^(' + longPieces.join('|') + ')',
20710            'i'
20711        );
20712        this._monthsShortStrictRegex = new RegExp(
20713            '^(' + shortPieces.join('|') + ')',
20714            'i'
20715        );
20716    }
20717
20718    function createDate(y, m, d, h, M, s, ms) {
20719        // can't just apply() to create a date:
20720        // https://stackoverflow.com/q/181348
20721        var date;
20722        // the date constructor remaps years 0-99 to 1900-1999
20723        if (y < 100 && y >= 0) {
20724            // preserve leap years using a full 400 year cycle, then reset
20725            date = new Date(y + 400, m, d, h, M, s, ms);
20726            if (isFinite(date.getFullYear())) {
20727                date.setFullYear(y);
20728            }
20729        } else {
20730            date = new Date(y, m, d, h, M, s, ms);
20731        }
20732
20733        return date;
20734    }
20735
20736    function createUTCDate(y) {
20737        var date, args;
20738        // the Date.UTC function remaps years 0-99 to 1900-1999
20739        if (y < 100 && y >= 0) {
20740            args = Array.prototype.slice.call(arguments);
20741            // preserve leap years using a full 400 year cycle, then reset
20742            args[0] = y + 400;
vendor: 11,578 bytes, lines 20743-21104
20743            date = new Date(Date.UTC.apply(null, args));
20744            if (isFinite(date.getUTCFullYear())) {
20745                date.setUTCFullYear(y);
20746            }
20747        } else {
20748            date = new Date(Date.UTC.apply(null, arguments));
20749        }
20750
20751        return date;
20752    }
20753
20754    // start-of-first-week - start-of-year
20755    function firstWeekOffset(year, dow, doy) {
20756        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
20757            fwd = 7 + dow - doy,
20758            // first-week day local weekday -- which local weekday is fwd
20759            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
20760
20761        return -fwdlw + fwd - 1;
20762    }
20763
20764    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
20765    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
20766        var localWeekday = (7 + weekday - dow) % 7,
20767            weekOffset = firstWeekOffset(year, dow, doy),
20768            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
20769            resYear,
20770            resDayOfYear;
20771
20772        if (dayOfYear <= 0) {
20773            resYear = year - 1;
20774            resDayOfYear = daysInYear(resYear) + dayOfYear;
20775        } else if (dayOfYear > daysInYear(year)) {
20776            resYear = year + 1;
20777            resDayOfYear = dayOfYear - daysInYear(year);
20778        } else {
20779            resYear = year;
20780            resDayOfYear = dayOfYear;
20781        }
20782
20783        return {
20784            year: resYear,
20785            dayOfYear: resDayOfYear,
20786        };
20787    }
20788
20789    function weekOfYear(mom, dow, doy) {
20790        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
20791            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
20792            resWeek,
20793            resYear;
20794
20795        if (week < 1) {
20796            resYear = mom.year() - 1;
20797            resWeek = week + weeksInYear(resYear, dow, doy);
20798        } else if (week > weeksInYear(mom.year(), dow, doy)) {
20799            resWeek = week - weeksInYear(mom.year(), dow, doy);
20800            resYear = mom.year() + 1;
20801        } else {
20802            resYear = mom.year();
20803            resWeek = week;
20804        }
20805
20806        return {
20807            week: resWeek,
20808            year: resYear,
20809        };
20810    }
20811
20812    function weeksInYear(year, dow, doy) {
20813        var weekOffset = firstWeekOffset(year, dow, doy),
20814            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
20815        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
20816    }
20817
20818    // FORMATTING
20819
20820    addFormatToken('w', ['ww', 2], 'wo', 'week');
20821    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
20822
20823    // PARSING
20824
20825    addRegexToken('w', match1to2, match1to2NoLeadingZero);
20826    addRegexToken('ww', match1to2, match2);
20827    addRegexToken('W', match1to2, match1to2NoLeadingZero);
20828    addRegexToken('WW', match1to2, match2);
20829
20830    addWeekParseToken(
20831        ['w', 'ww', 'W', 'WW'],
20832        function (input, week, config, token) {
20833            week[token.substr(0, 1)] = toInt(input);
20834        }
20835    );
20836
20837    // HELPERS
20838
20839    // LOCALES
20840
20841    function localeWeek(mom) {
20842        return weekOfYear(mom, this._week.dow, this._week.doy).week;
20843    }
20844
20845    var defaultLocaleWeek = {
20846        dow: 0, // Sunday is the first day of the week.
20847        doy: 6, // The week that contains Jan 6th is the first week of the year.
20848    };
20849
20850    function localeFirstDayOfWeek() {
20851        return this._week.dow;
20852    }
20853
20854    function localeFirstDayOfYear() {
20855        return this._week.doy;
20856    }
20857
20858    // MOMENTS
20859
20860    function getSetWeek(input) {
20861        var week = this.localeData().week(this);
20862        return input == null ? week : this.add((input - week) * 7, 'd');
20863    }
20864
20865    function getSetISOWeek(input) {
20866        var week = weekOfYear(this, 1, 4).week;
20867        return input == null ? week : this.add((input - week) * 7, 'd');
20868    }
20869
20870    // FORMATTING
20871
20872    addFormatToken('d', 0, 'do', 'day');
20873
20874    addFormatToken('dd', 0, 0, function (format) {
20875        return this.localeData().weekdaysMin(this, format);
20876    });
20877
20878    addFormatToken('ddd', 0, 0, function (format) {
20879        return this.localeData().weekdaysShort(this, format);
20880    });
20881
20882    addFormatToken('dddd', 0, 0, function (format) {
20883        return this.localeData().weekdays(this, format);
20884    });
20885
20886    addFormatToken('e', 0, 0, 'weekday');
20887    addFormatToken('E', 0, 0, 'isoWeekday');
20888
20889    // PARSING
20890
20891    addRegexToken('d', match1to2);
20892    addRegexToken('e', match1to2);
20893    addRegexToken('E', match1to2);
20894    addRegexToken('dd', function (isStrict, locale) {
20895        return locale.weekdaysMinRegex(isStrict);
20896    });
20897    addRegexToken('ddd', function (isStrict, locale) {
20898        return locale.weekdaysShortRegex(isStrict);
20899    });
20900    addRegexToken('dddd', function (isStrict, locale) {
20901        return locale.weekdaysRegex(isStrict);
20902    });
20903
20904    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
20905        var weekday = config._locale.weekdaysParse(input, token, config._strict);
20906        // if we didn't get a weekday name, mark the date as invalid
20907        if (weekday != null) {
20908            week.d = weekday;
20909        } else {
20910            getParsingFlags(config).invalidWeekday = input;
20911        }
20912    });
20913
20914    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
20915        week[token] = toInt(input);
20916    });
20917
20918    // HELPERS
20919
20920    function parseWeekday(input, locale) {
20921        if (typeof input !== 'string') {
20922            return input;
20923        }
20924
20925        if (!isNaN(input)) {
20926            return parseInt(input, 10);
20927        }
20928
20929        input = locale.weekdaysParse(input);
20930        if (typeof input === 'number') {
20931            return input;
20932        }
20933
20934        return null;
20935    }
20936
20937    function parseIsoWeekday(input, locale) {
20938        if (typeof input === 'string') {
20939            return locale.weekdaysParse(input) % 7 || 7;
20940        }
20941        return isNaN(input) ? null : input;
20942    }
20943
20944    // LOCALES
20945    function shiftWeekdays(ws, n) {
20946        return ws.slice(n, 7).concat(ws.slice(0, n));
20947    }
20948
20949    var defaultLocaleWeekdays =
20950            'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
20951        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
20952        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
20953        defaultWeekdaysRegex = matchWord,
20954        defaultWeekdaysShortRegex = matchWord,
20955        defaultWeekdaysMinRegex = matchWord;
20956
20957    function localeWeekdays(m, format) {
20958        var weekdays = isArray(this._weekdays)
20959            ? this._weekdays
20960            : this._weekdays[
20961                  m && m !== true && this._weekdays.isFormat.test(format)
20962                      ? 'format'
20963                      : 'standalone'
20964              ];
20965        return m === true
20966            ? shiftWeekdays(weekdays, this._week.dow)
20967            : m
20968              ? weekdays[m.day()]
20969              : weekdays;
20970    }
20971
20972    function localeWeekdaysShort(m) {
20973        return m === true
20974            ? shiftWeekdays(this._weekdaysShort, this._week.dow)
20975            : m
20976              ? this._weekdaysShort[m.day()]
20977              : this._weekdaysShort;
20978    }
20979
20980    function localeWeekdaysMin(m) {
20981        return m === true
20982            ? shiftWeekdays(this._weekdaysMin, this._week.dow)
20983            : m
20984              ? this._weekdaysMin[m.day()]
20985              : this._weekdaysMin;
20986    }
20987
20988    function handleStrictParse$1(weekdayName, format, strict) {
20989        var i,
20990            ii,
20991            mom,
20992            llc = weekdayName.toLocaleLowerCase();
20993        if (!this._weekdaysParse) {
20994            this._weekdaysParse = [];
20995            this._shortWeekdaysParse = [];
20996            this._minWeekdaysParse = [];
20997
20998            for (i = 0; i < 7; ++i) {
20999                mom = createUTC([2000, 1]).day(i);
21000                this._minWeekdaysParse[i] = this.weekdaysMin(
21001                    mom,
21002                    ''
21003                ).toLocaleLowerCase();
21004                this._shortWeekdaysParse[i] = this.weekdaysShort(
21005                    mom,
21006                    ''
21007                ).toLocaleLowerCase();
21008                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
21009            }
21010        }
21011
21012        if (strict) {
21013            if (format === 'dddd') {
21014                ii = indexOf.call(this._weekdaysParse, llc);
21015                return ii !== -1 ? ii : null;
21016            } else if (format === 'ddd') {
21017                ii = indexOf.call(this._shortWeekdaysParse, llc);
21018                return ii !== -1 ? ii : null;
21019            } else {
21020                ii = indexOf.call(this._minWeekdaysParse, llc);
21021                return ii !== -1 ? ii : null;
21022            }
21023        } else {
21024            if (format === 'dddd') {
21025                ii = indexOf.call(this._weekdaysParse, llc);
21026                if (ii !== -1) {
21027                    return ii;
21028                }
21029                ii = indexOf.call(this._shortWeekdaysParse, llc);
21030                if (ii !== -1) {
21031                    return ii;
21032                }
21033                ii = indexOf.call(this._minWeekdaysParse, llc);
21034                return ii !== -1 ? ii : null;
21035            } else if (format === 'ddd') {
21036                ii = indexOf.call(this._shortWeekdaysParse, llc);
21037                if (ii !== -1) {
21038                    return ii;
21039                }
21040                ii = indexOf.call(this._weekdaysParse, llc);
21041                if (ii !== -1) {
21042                    return ii;
21043                }
21044                ii = indexOf.call(this._minWeekdaysParse, llc);
21045                return ii !== -1 ? ii : null;
21046            } else {
21047                ii = indexOf.call(this._minWeekdaysParse, llc);
21048                if (ii !== -1) {
21049                    return ii;
21050                }
21051                ii = indexOf.call(this._weekdaysParse, llc);
21052                if (ii !== -1) {
21053                    return ii;
21054                }
21055                ii = indexOf.call(this._shortWeekdaysParse, llc);
21056                return ii !== -1 ? ii : null;
21057            }
21058        }
21059    }
21060
21061    function localeWeekdaysParse(weekdayName, format, strict) {
21062        var i, mom, regex;
21063
21064        if (this._weekdaysParseExact) {
21065            return handleStrictParse$1.call(this, weekdayName, format, strict);
21066        }
21067
21068        if (!this._weekdaysParse) {
21069            this._weekdaysParse = [];
21070            this._minWeekdaysParse = [];
21071            this._shortWeekdaysParse = [];
21072            this._fullWeekdaysParse = [];
21073        }
21074
21075        for (i = 0; i < 7; i++) {
21076            // make the regex if we don't have it already
21077
21078            mom = createUTC([2000, 1]).day(i);
21079            if (strict && !this._fullWeekdaysParse[i]) {
21080                this._fullWeekdaysParse[i] = new RegExp(
21081                    '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
21082                    'i'
21083                );
21084                this._shortWeekdaysParse[i] = new RegExp(
21085                    '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
21086                    'i'
21087                );
21088                this._minWeekdaysParse[i] = new RegExp(
21089                    '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
21090                    'i'
21091                );
21092            }
21093            if (!this._weekdaysParse[i]) {
21094                regex =
21095                    '^' +
21096                    this.weekdays(mom, '') +
21097                    '|^' +
21098                    this.weekdaysShort(mom, '') +
21099                    '|^' +
21100                    this.weekdaysMin(mom, '');
21101                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
21102            }
21103            // test the regex
21104            if (
vendor: 9,327 bytes, lines 21105-21397
21105                strict &&
21106                format === 'dddd' &&
21107                this._fullWeekdaysParse[i].test(weekdayName)
21108            ) {
21109                return i;
21110            } else if (
21111                strict &&
21112                format === 'ddd' &&
21113                this._shortWeekdaysParse[i].test(weekdayName)
21114            ) {
21115                return i;
21116            } else if (
21117                strict &&
21118                format === 'dd' &&
21119                this._minWeekdaysParse[i].test(weekdayName)
21120            ) {
21121                return i;
21122            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
21123                return i;
21124            }
21125        }
21126    }
21127
21128    // MOMENTS
21129
21130    function getSetDayOfWeek(input) {
21131        if (!this.isValid()) {
21132            return input != null ? this : NaN;
21133        }
21134
21135        var day = get(this, 'Day');
21136        if (input != null) {
21137            input = parseWeekday(input, this.localeData());
21138            return this.add(input - day, 'd');
21139        } else {
21140            return day;
21141        }
21142    }
21143
21144    function getSetLocaleDayOfWeek(input) {
21145        if (!this.isValid()) {
21146            return input != null ? this : NaN;
21147        }
21148        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
21149        return input == null ? weekday : this.add(input - weekday, 'd');
21150    }
21151
21152    function getSetISODayOfWeek(input) {
21153        if (!this.isValid()) {
21154            return input != null ? this : NaN;
21155        }
21156
21157        // behaves the same as moment#day except
21158        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
21159        // as a setter, sunday should belong to the previous week.
21160
21161        if (input != null) {
21162            var weekday = parseIsoWeekday(input, this.localeData());
21163            return this.day(this.day() % 7 ? weekday : weekday - 7);
21164        } else {
21165            return this.day() || 7;
21166        }
21167    }
21168
21169    function weekdaysRegex(isStrict) {
21170        if (this._weekdaysParseExact) {
21171            if (!hasOwnProp(this, '_weekdaysRegex')) {
21172                computeWeekdaysParse.call(this);
21173            }
21174            if (isStrict) {
21175                return this._weekdaysStrictRegex;
21176            } else {
21177                return this._weekdaysRegex;
21178            }
21179        } else {
21180            if (!hasOwnProp(this, '_weekdaysRegex')) {
21181                this._weekdaysRegex = defaultWeekdaysRegex;
21182            }
21183            return this._weekdaysStrictRegex && isStrict
21184                ? this._weekdaysStrictRegex
21185                : this._weekdaysRegex;
21186        }
21187    }
21188
21189    function weekdaysShortRegex(isStrict) {
21190        if (this._weekdaysParseExact) {
21191            if (!hasOwnProp(this, '_weekdaysRegex')) {
21192                computeWeekdaysParse.call(this);
21193            }
21194            if (isStrict) {
21195                return this._weekdaysShortStrictRegex;
21196            } else {
21197                return this._weekdaysShortRegex;
21198            }
21199        } else {
21200            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
21201                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
21202            }
21203            return this._weekdaysShortStrictRegex && isStrict
21204                ? this._weekdaysShortStrictRegex
21205                : this._weekdaysShortRegex;
21206        }
21207    }
21208
21209    function weekdaysMinRegex(isStrict) {
21210        if (this._weekdaysParseExact) {
21211            if (!hasOwnProp(this, '_weekdaysRegex')) {
21212                computeWeekdaysParse.call(this);
21213            }
21214            if (isStrict) {
21215                return this._weekdaysMinStrictRegex;
21216            } else {
21217                return this._weekdaysMinRegex;
21218            }
21219        } else {
21220            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
21221                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
21222            }
21223            return this._weekdaysMinStrictRegex && isStrict
21224                ? this._weekdaysMinStrictRegex
21225                : this._weekdaysMinRegex;
21226        }
21227    }
21228
21229    function computeWeekdaysParse() {
21230        function cmpLenRev(a, b) {
21231            return b.length - a.length;
21232        }
21233
21234        var minPieces = [],
21235            shortPieces = [],
21236            longPieces = [],
21237            mixedPieces = [],
21238            i,
21239            mom,
21240            minp,
21241            shortp,
21242            longp;
21243        for (i = 0; i < 7; i++) {
21244            // make the regex if we don't have it already
21245            mom = createUTC([2000, 1]).day(i);
21246            minp = regexEscape(this.weekdaysMin(mom, ''));
21247            shortp = regexEscape(this.weekdaysShort(mom, ''));
21248            longp = regexEscape(this.weekdays(mom, ''));
21249            minPieces.push(minp);
21250            shortPieces.push(shortp);
21251            longPieces.push(longp);
21252            mixedPieces.push(minp);
21253            mixedPieces.push(shortp);
21254            mixedPieces.push(longp);
21255        }
21256        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
21257        // will match the longer piece.
21258        minPieces.sort(cmpLenRev);
21259        shortPieces.sort(cmpLenRev);
21260        longPieces.sort(cmpLenRev);
21261        mixedPieces.sort(cmpLenRev);
21262
21263        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
21264        this._weekdaysShortRegex = this._weekdaysRegex;
21265        this._weekdaysMinRegex = this._weekdaysRegex;
21266
21267        this._weekdaysStrictRegex = new RegExp(
21268            '^(' + longPieces.join('|') + ')',
21269            'i'
21270        );
21271        this._weekdaysShortStrictRegex = new RegExp(
21272            '^(' + shortPieces.join('|') + ')',
21273            'i'
21274        );
21275        this._weekdaysMinStrictRegex = new RegExp(
21276            '^(' + minPieces.join('|') + ')',
21277            'i'
21278        );
21279    }
21280
21281    // FORMATTING
21282
21283    function hFormat() {
21284        return this.hours() % 12 || 12;
21285    }
21286
21287    function kFormat() {
21288        return this.hours() || 24;
21289    }
21290
21291    addFormatToken('H', ['HH', 2], 0, 'hour');
21292    addFormatToken('h', ['hh', 2], 0, hFormat);
21293    addFormatToken('k', ['kk', 2], 0, kFormat);
21294
21295    addFormatToken('hmm', 0, 0, function () {
21296        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
21297    });
21298
21299    addFormatToken('hmmss', 0, 0, function () {
21300        return (
21301            '' +
21302            hFormat.apply(this) +
21303            zeroFill(this.minutes(), 2) +
21304            zeroFill(this.seconds(), 2)
21305        );
21306    });
21307
21308    addFormatToken('Hmm', 0, 0, function () {
21309        return '' + this.hours() + zeroFill(this.minutes(), 2);
21310    });
21311
21312    addFormatToken('Hmmss', 0, 0, function () {
21313        return (
21314            '' +
21315            this.hours() +
21316            zeroFill(this.minutes(), 2) +
21317            zeroFill(this.seconds(), 2)
21318        );
21319    });
21320
21321    function meridiem(token, lowercase) {
21322        addFormatToken(token, 0, 0, function () {
21323            return this.localeData().meridiem(
21324                this.hours(),
21325                this.minutes(),
21326                lowercase
21327            );
21328        });
21329    }
21330
21331    meridiem('a', true);
21332    meridiem('A', false);
21333
21334    // PARSING
21335
21336    function matchMeridiem(isStrict, locale) {
21337        return locale._meridiemParse;
21338    }
21339
21340    addRegexToken('a', matchMeridiem);
21341    addRegexToken('A', matchMeridiem);
21342    addRegexToken('H', match1to2, match1to2HasZero);
21343    addRegexToken('h', match1to2, match1to2NoLeadingZero);
21344    addRegexToken('k', match1to2, match1to2NoLeadingZero);
21345    addRegexToken('HH', match1to2, match2);
21346    addRegexToken('hh', match1to2, match2);
21347    addRegexToken('kk', match1to2, match2);
21348
21349    addRegexToken('hmm', match3to4);
21350    addRegexToken('hmmss', match5to6);
21351    addRegexToken('Hmm', match3to4);
21352    addRegexToken('Hmmss', match5to6);
21353
21354    addParseToken(['H', 'HH'], HOUR);
21355    addParseToken(['k', 'kk'], function (input, array, config) {
21356        var kInput = toInt(input);
21357        array[HOUR] = kInput === 24 ? 0 : kInput;
21358    });
21359    addParseToken(['a', 'A'], function (input, array, config) {
21360        config._isPm = config._locale.isPM(input);
21361        config._meridiem = input;
21362    });
21363    addParseToken(['h', 'hh'], function (input, array, config) {
21364        array[HOUR] = toInt(input);
21365        getParsingFlags(config).bigHour = true;
21366    });
21367    addParseToken('hmm', function (input, array, config) {
21368        var pos = input.length - 2;
21369        array[HOUR] = toInt(input.substr(0, pos));
21370        array[MINUTE] = toInt(input.substr(pos));
21371        getParsingFlags(config).bigHour = true;
21372    });
21373    addParseToken('hmmss', function (input, array, config) {
21374        var pos1 = input.length - 4,
21375            pos2 = input.length - 2;
21376        array[HOUR] = toInt(input.substr(0, pos1));
21377        array[MINUTE] = toInt(input.substr(pos1, 2));
21378        array[SECOND] = toInt(input.substr(pos2));
21379        getParsingFlags(config).bigHour = true;
21380    });
21381    addParseToken('Hmm', function (input, array, config) {
21382        var pos = input.length - 2;
21383        array[HOUR] = toInt(input.substr(0, pos));
21384        array[MINUTE] = toInt(input.substr(pos));
21385    });
21386    addParseToken('Hmmss', function (input, array, config) {
21387        var pos1 = input.length - 4,
21388            pos2 = input.length - 2;
21389        array[HOUR] = toInt(input.substr(0, pos1));
21390        array[MINUTE] = toInt(input.substr(pos1, 2));
21391        array[SECOND] = toInt(input.substr(pos2));
21392    });
21393
21394    // LOCALES
21395
21396    function localeIsPM(input) {
21397        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing str
vendor: 7,804 bytes, lines 21397-21616
21397ings like arrays
21398        // Using charAt should be more compatible.
21399        return (input + '').toLowerCase().charAt(0) === 'p';
21400    }
21401
21402    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
21403        // Setting the hour should keep the time, because the user explicitly
21404        // specified which hour they want. So trying to maintain the same hour (in
21405        // a new timezone) makes sense. Adding/subtracting hours does not follow
21406        // this rule.
21407        getSetHour = makeGetSet('Hours', true);
21408
21409    function localeMeridiem(hours, minutes, isLower) {
21410        if (hours > 11) {
21411            return isLower ? 'pm' : 'PM';
21412        } else {
21413            return isLower ? 'am' : 'AM';
21414        }
21415    }
21416
21417    var baseConfig = {
21418        calendar: defaultCalendar,
21419        longDateFormat: defaultLongDateFormat,
21420        invalidDate: defaultInvalidDate,
21421        ordinal: defaultOrdinal,
21422        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
21423        relativeTime: defaultRelativeTime,
21424
21425        months: defaultLocaleMonths,
21426        monthsShort: defaultLocaleMonthsShort,
21427
21428        week: defaultLocaleWeek,
21429
21430        weekdays: defaultLocaleWeekdays,
21431        weekdaysMin: defaultLocaleWeekdaysMin,
21432        weekdaysShort: defaultLocaleWeekdaysShort,
21433
21434        meridiemParse: defaultLocaleMeridiemParse,
21435    };
21436
21437    // internal storage for locale config files
21438    var locales = {},
21439        localeFamilies = {},
21440        globalLocale;
21441
21442    function commonPrefix(arr1, arr2) {
21443        var i,
21444            minl = Math.min(arr1.length, arr2.length);
21445        for (i = 0; i < minl; i += 1) {
21446            if (arr1[i] !== arr2[i]) {
21447                return i;
21448            }
21449        }
21450        return minl;
21451    }
21452
21453    function normalizeLocale(key) {
21454        return key ? key.toLowerCase().replace('_', '-') : key;
21455    }
21456
21457    // pick the locale from the array
21458    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
21459    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
21460    function chooseLocale(names) {
21461        var i = 0,
21462            j,
21463            next,
21464            locale,
21465            split;
21466
21467        while (i < names.length) {
21468            split = normalizeLocale(names[i]).split('-');
21469            j = split.length;
21470            next = normalizeLocale(names[i + 1]);
21471            next = next ? next.split('-') : null;
21472            while (j > 0) {
21473                locale = loadLocale(split.slice(0, j).join('-'));
21474                if (locale) {
21475                    return locale;
21476                }
21477                if (
21478                    next &&
21479                    next.length >= j &&
21480                    commonPrefix(split, next) >= j - 1
21481                ) {
21482                    //the next array item is better than a shallower substring of this one
21483                    break;
21484                }
21485                j--;
21486            }
21487            i++;
21488        }
21489        return globalLocale;
21490    }
21491
21492    function isLocaleNameSane(name) {
21493        // Prevent names that look like filesystem paths, i.e contain '/' or '\'
21494        // Ensure name is available and function returns boolean
21495        return !!(name && name.match('^[^/\\\\]*$'));
21496    }
21497
21498    function loadLocale(name) {
21499        var oldLocale = null,
21500            aliasedRequire;
21501        // TODO: Find a better way to register and load all the locales in Node
21502        if (
21503            locales[name] === undefined &&
21504            "object" !== 'undefined' &&
21505            module &&
21506            module.exports &&
21507            isLocaleNameSane(name)
21508        ) {
21509            try {
21510                oldLocale = globalLocale._abbr;
21511                aliasedRequire = undefined;
21512                __webpack_require__(5358)("./" + name);
21513                getSetGlobalLocale(oldLocale);
21514            } catch (e) {
21515                // mark as not found to avoid repeating expensive file require call causing high CPU
21516                // when trying to find en-US, en_US, en-us for every format call
21517                locales[name] = null; // null means not found
21518            }
21519        }
21520        return locales[name];
21521    }
21522
21523    // This function will load locale and then set the global locale.  If
21524    // no arguments are passed in, it will simply return the current global
21525    // locale key.
21526    function getSetGlobalLocale(key, values) {
21527        var data;
21528        if (key) {
21529            if (isUndefined(values)) {
21530                data = getLocale(key);
21531            } else {
21532                data = defineLocale(key, values);
21533            }
21534
21535            if (data) {
21536                // moment.duration._locale = moment._locale = data;
21537                globalLocale = data;
21538            } else {
21539                if (typeof console !== 'undefined' && console.warn) {
21540                    //warn user if arguments are passed but the locale could not be set
21541                    console.warn(
21542                        'Locale ' + key + ' not found. Did you forget to load it?'
21543                    );
21544                }
21545            }
21546        }
21547
21548        return globalLocale._abbr;
21549    }
21550
21551    function defineLocale(name, config) {
21552        if (config !== null) {
21553            var locale,
21554                parentConfig = baseConfig;
21555            config.abbr = name;
21556            if (locales[name] != null) {
21557                deprecateSimple(
21558                    'defineLocaleOverride',
21559                    'use moment.updateLocale(localeName, config) to change ' +
21560                        'an existing locale. moment.defineLocale(localeName, ' +
21561                        'config) should only be used for creating a new locale ' +
21562                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
21563                );
21564                parentConfig = locales[name]._config;
21565            } else if (config.parentLocale != null) {
21566                if (locales[config.parentLocale] != null) {
21567                    parentConfig = locales[config.parentLocale]._config;
21568                } else {
21569                    locale = loadLocale(config.parentLocale);
21570                    if (locale != null) {
21571                        parentConfig = locale._config;
21572                    } else {
21573                        if (!localeFamilies[config.parentLocale]) {
21574                            localeFamilies[config.parentLocale] = [];
21575                        }
21576                        localeFamilies[config.parentLocale].push({
21577                            name: name,
21578                            config: config,
21579                        });
21580                        return null;
21581                    }
21582                }
21583            }
21584            locales[name] = new Locale(mergeConfigs(parentConfig, config));
21585
21586            if (localeFamilies[name]) {
21587                localeFamilies[name].forEach(function (x) {
21588                    defineLocale(x.name, x.config);
21589                });
21590            }
21591
21592            // backwards compat for now: also set the locale
21593            // make sure we set the locale AFTER all child locales have been
21594            // created, so we won't end up with the child locale set.
21595            getSetGlobalLocale(name);
21596
21597            return locales[name];
21598        } else {
21599            // useful for testing
21600            delete locales[name];
21601            return null;
21602        }
21603    }
21604
21605    function updateLocale(name, config) {
21606        if (config != null) {
21607            var locale,
21608                tmpLocale,
21609                parentConfig = baseConfig;
21610
21611            if (locales[name] != null && locales[name].parentLocale != null) {
21612                // Update existing child locale in-place to avoid memory-leaks
21613                locales[name].set(mergeConfigs(locales[name]._config, config));
21614            } else {
21615                // MERGE
21616                tmpLocale = loadLocale(name);
vendor: 12,148 bytes, lines 21616-21984
21616
21617                if (tmpLocale != null) {
21618                    parentConfig = tmpLocale._config;
21619                }
21620                config = mergeConfigs(parentConfig, config);
21621                if (tmpLocale == null) {
21622                    // updateLocale is called for creating a new locale
21623                    // Set abbr so it will have a name (getters return
21624                    // undefined otherwise).
21625                    config.abbr = name;
21626                }
21627                locale = new Locale(config);
21628                locale.parentLocale = locales[name];
21629                locales[name] = locale;
21630            }
21631
21632            // backwards compat for now: also set the locale
21633            getSetGlobalLocale(name);
21634        } else {
21635            // pass null for config to unupdate, useful for tests
21636            if (locales[name] != null) {
21637                if (locales[name].parentLocale != null) {
21638                    locales[name] = locales[name].parentLocale;
21639                    if (name === getSetGlobalLocale()) {
21640                        getSetGlobalLocale(name);
21641                    }
21642                } else if (locales[name] != null) {
21643                    delete locales[name];
21644                }
21645            }
21646        }
21647        return locales[name];
21648    }
21649
21650    // returns locale data
21651    function getLocale(key) {
21652        var locale;
21653
21654        if (key && key._locale && key._locale._abbr) {
21655            key = key._locale._abbr;
21656        }
21657
21658        if (!key) {
21659            return globalLocale;
21660        }
21661
21662        if (!isArray(key)) {
21663            //short-circuit everything else
21664            locale = loadLocale(key);
21665            if (locale) {
21666                return locale;
21667            }
21668            key = [key];
21669        }
21670
21671        return chooseLocale(key);
21672    }
21673
21674    function listLocales() {
21675        return keys(locales);
21676    }
21677
21678    function checkOverflow(m) {
21679        var overflow,
21680            a = m._a;
21681
21682        if (a && getParsingFlags(m).overflow === -2) {
21683            overflow =
21684                a[MONTH] < 0 || a[MONTH] > 11
21685                    ? MONTH
21686                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
21687                      ? DATE
21688                      : a[HOUR] < 0 ||
21689                          a[HOUR] > 24 ||
21690                          (a[HOUR] === 24 &&
21691                              (a[MINUTE] !== 0 ||
21692                                  a[SECOND] !== 0 ||
21693                                  a[MILLISECOND] !== 0))
21694                        ? HOUR
21695                        : a[MINUTE] < 0 || a[MINUTE] > 59
21696                          ? MINUTE
21697                          : a[SECOND] < 0 || a[SECOND] > 59
21698                            ? SECOND
21699                            : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
21700                              ? MILLISECOND
21701                              : -1;
21702
21703            if (
21704                getParsingFlags(m)._overflowDayOfYear &&
21705                (overflow < YEAR || overflow > DATE)
21706            ) {
21707                overflow = DATE;
21708            }
21709            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
21710                overflow = WEEK;
21711            }
21712            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
21713                overflow = WEEKDAY;
21714            }
21715
21716            getParsingFlags(m).overflow = overflow;
21717        }
21718
21719        return m;
21720    }
21721
21722    // iso 8601 regex
21723    // 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)
21724    var extendedIsoRegex =
21725            /^\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)?)?$/,
21726        basicIsoRegex =
21727            /^\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)?)?$/,
21728        tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
21729        isoDates = [
21730            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
21731            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
21732            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
21733            ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
21734            ['YYYY-DDD', /\d{4}-\d{3}/],
21735            ['YYYY-MM', /\d{4}-\d\d/, false],
21736            ['YYYYYYMMDD', /[+-]\d{10}/],
21737            ['YYYYMMDD', /\d{8}/],
21738            ['GGGG[W]WWE', /\d{4}W\d{3}/],
21739            ['GGGG[W]WW', /\d{4}W\d{2}/, false],
21740            ['YYYYDDD', /\d{7}/],
21741            ['YYYYMM', /\d{6}/, false],
21742            ['YYYY', /\d{4}/, false],
21743        ],
21744        // iso time formats and regexes
21745        isoTimes = [
21746            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
21747            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
21748            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
21749            ['HH:mm', /\d\d:\d\d/],
21750            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
21751            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
21752            ['HHmmss', /\d\d\d\d\d\d/],
21753            ['HHmm', /\d\d\d\d/],
21754            ['HH', /\d\d/],
21755        ],
21756        aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
21757        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
21758        rfc2822 =
21759            /^(?:(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}))$/,
21760        obsOffsets = {
21761            UT: 0,
21762            GMT: 0,
21763            EDT: -4 * 60,
21764            EST: -5 * 60,
21765            CDT: -5 * 60,
21766            CST: -6 * 60,
21767            MDT: -6 * 60,
21768            MST: -7 * 60,
21769            PDT: -7 * 60,
21770            PST: -8 * 60,
21771        };
21772
21773    // date from iso format
21774    function configFromISO(config) {
21775        var i,
21776            l,
21777            string = config._i,
21778            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
21779            allowTime,
21780            dateFormat,
21781            timeFormat,
21782            tzFormat,
21783            isoDatesLen = isoDates.length,
21784            isoTimesLen = isoTimes.length;
21785
21786        if (match) {
21787            getParsingFlags(config).iso = true;
21788            for (i = 0, l = isoDatesLen; i < l; i++) {
21789                if (isoDates[i][1].exec(match[1])) {
21790                    dateFormat = isoDates[i][0];
21791                    allowTime = isoDates[i][2] !== false;
21792                    break;
21793                }
21794            }
21795            if (dateFormat == null) {
21796                config._isValid = false;
21797                return;
21798            }
21799            if (match[3]) {
21800                for (i = 0, l = isoTimesLen; i < l; i++) {
21801                    if (isoTimes[i][1].exec(match[3])) {
21802                        // match[2] should be 'T' or space
21803                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
21804                        break;
21805                    }
21806                }
21807                if (timeFormat == null) {
21808                    config._isValid = false;
21809                    return;
21810                }
21811            }
21812            if (!allowTime && timeFormat != null) {
21813                config._isValid = false;
21814                return;
21815            }
21816            if (match[4]) {
21817                if (tzRegex.exec(match[4])) {
21818                    tzFormat = 'Z';
21819                } else {
21820                    config._isValid = false;
21821                    return;
21822                }
21823            }
21824            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
21825            configFromStringAndFormat(config);
21826        } else {
21827            config._isValid = false;
21828        }
21829    }
21830
21831    function extractFromRFC2822Strings(
21832        yearStr,
21833        monthStr,
21834        dayStr,
21835        hourStr,
21836        minuteStr,
21837        secondStr
21838    ) {
21839        var result = [
21840            untruncateYear(yearStr),
21841            defaultLocaleMonthsShort.indexOf(monthStr),
21842            parseInt(dayStr, 10),
21843            parseInt(hourStr, 10),
21844            parseInt(minuteStr, 10),
21845        ];
21846
21847        if (secondStr) {
21848            result.push(parseInt(secondStr, 10));
21849        }
21850
21851        return result;
21852    }
21853
21854    function untruncateYear(yearStr) {
21855        var year = parseInt(yearStr, 10);
21856        if (year <= 49) {
21857            return 2000 + year;
21858        } else if (year <= 999) {
21859            return 1900 + year;
21860        }
21861        return year;
21862    }
21863
21864    function preprocessRFC2822(s) {
21865        // Remove comments and folding whitespace and replace multiple-spaces with a single space
21866        return s
21867            .replace(/\([^()]*\)|[\n\t]/g, ' ')
21868            .replace(/(\s\s+)/g, ' ')
21869            .replace(/^\s\s*/, '')
21870            .replace(/\s\s*$/, '');
21871    }
21872
21873    function checkWeekday(weekdayStr, parsedInput, config) {
21874        if (weekdayStr) {
21875            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.
21876            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
21877                weekdayActual = new Date(
21878                    parsedInput[0],
21879                    parsedInput[1],
21880                    parsedInput[2]
21881                ).getDay();
21882            if (weekdayProvided !== weekdayActual) {
21883                getParsingFlags(config).weekdayMismatch = true;
21884                config._isValid = false;
21885                return false;
21886            }
21887        }
21888        return true;
21889    }
21890
21891    function calculateOffset(obsOffset, militaryOffset, numOffset) {
21892        if (obsOffset) {
21893            return obsOffsets[obsOffset];
21894        } else if (militaryOffset) {
21895            // the only allowed military tz is Z
21896            return 0;
21897        } else {
21898            var hm = parseInt(numOffset, 10),
21899                m = hm % 100,
21900                h = (hm - m) / 100;
21901            return h * 60 + m;
21902        }
21903    }
21904
21905    // date and time from ref 2822 format
21906    function configFromRFC2822(config) {
21907        var match = rfc2822.exec(preprocessRFC2822(config._i)),
21908            parsedArray;
21909        if (match) {
21910            parsedArray = extractFromRFC2822Strings(
21911                match[4],
21912                match[3],
21913                match[2],
21914                match[5],
21915                match[6],
21916                match[7]
21917            );
21918            if (!checkWeekday(match[1], parsedArray, config)) {
21919                return;
21920            }
21921
21922            config._a = parsedArray;
21923            config._tzm = calculateOffset(match[8], match[9], match[10]);
21924
21925            config._d = createUTCDate.apply(null, config._a);
21926            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
21927
21928            getParsingFlags(config).rfc2822 = true;
21929        } else {
21930            config._isValid = false;
21931        }
21932    }
21933
21934    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
21935    function configFromString(config) {
21936        var matched = aspNetJsonRegex.exec(config._i);
21937        if (matched !== null) {
21938            config._d = new Date(+matched[1]);
21939            return;
21940        }
21941
21942        configFromISO(config);
21943        if (config._isValid === false) {
21944            delete config._isValid;
21945        } else {
21946            return;
21947        }
21948
21949        configFromRFC2822(config);
21950        if (config._isValid === false) {
21951            delete config._isValid;
21952        } else {
21953            return;
21954        }
21955
21956        if (config._strict) {
21957            config._isValid = false;
21958        } else {
21959            // Final attempt, use Input Fallback
21960            hooks.createFromInputFallback(config);
21961        }
21962    }
21963
21964    hooks.createFromInputFallback = deprecate(
21965        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
21966            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
21967            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
21968        function (config) {
21969            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
21970        }
21971    );
21972
21973    // Pick the first defined of two or three arguments.
21974    function defaults(a, b, c) {
21975        if (a != null) {
21976            return a;
21977        }
21978        if (b != null) {
21979            return b;
21980        }
21981        return c;
21982    }
21983
21984    function currentDateArray(config
vendor: 17,694 bytes, lines 21984-22545
21984) {
21985        // hooks is actually the exported moment object
21986        var nowValue = new Date(hooks.now());
21987        if (config._useUTC) {
21988            return [
21989                nowValue.getUTCFullYear(),
21990                nowValue.getUTCMonth(),
21991                nowValue.getUTCDate(),
21992            ];
21993        }
21994        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
21995    }
21996
21997    // convert an array to a date.
21998    // the array should mirror the parameters below
21999    // note: all values past the year are optional and will default to the lowest possible value.
22000    // [year, month, day , hour, minute, second, millisecond]
22001    function configFromArray(config) {
22002        var i,
22003            date,
22004            input = [],
22005            currentDate,
22006            expectedWeekday,
22007            yearToUse;
22008
22009        if (config._d) {
22010            return;
22011        }
22012
22013        currentDate = currentDateArray(config);
22014
22015        //compute day of the year from weeks and weekdays
22016        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
22017            dayOfYearFromWeekInfo(config);
22018        }
22019
22020        //if the day of the year is set, figure out what it is
22021        if (config._dayOfYear != null) {
22022            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
22023
22024            if (
22025                config._dayOfYear > daysInYear(yearToUse) ||
22026                config._dayOfYear === 0
22027            ) {
22028                getParsingFlags(config)._overflowDayOfYear = true;
22029            }
22030
22031            date = createUTCDate(yearToUse, 0, config._dayOfYear);
22032            config._a[MONTH] = date.getUTCMonth();
22033            config._a[DATE] = date.getUTCDate();
22034        }
22035
22036        // Default to current date.
22037        // * if no year, month, day of month are given, default to today
22038        // * if day of month is given, default month and year
22039        // * if month is given, default only year
22040        // * if year is given, don't default anything
22041        for (i = 0; i < 3 && config._a[i] == null; ++i) {
22042            config._a[i] = input[i] = currentDate[i];
22043        }
22044
22045        // Zero out whatever was not defaulted, including time
22046        for (; i < 7; i++) {
22047            config._a[i] = input[i] =
22048                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
22049        }
22050
22051        // Check for 24:00:00.000
22052        if (
22053            config._a[HOUR] === 24 &&
22054            config._a[MINUTE] === 0 &&
22055            config._a[SECOND] === 0 &&
22056            config._a[MILLISECOND] === 0
22057        ) {
22058            config._nextDay = true;
22059            config._a[HOUR] = 0;
22060        }
22061
22062        config._d = (config._useUTC ? createUTCDate : createDate).apply(
22063            null,
22064            input
22065        );
22066        expectedWeekday = config._useUTC
22067            ? config._d.getUTCDay()
22068            : config._d.getDay();
22069
22070        // Apply timezone offset from input. The actual utcOffset can be changed
22071        // with parseZone.
22072        if (config._tzm != null) {
22073            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
22074        }
22075
22076        if (config._nextDay) {
22077            config._a[HOUR] = 24;
22078        }
22079
22080        // check for mismatching day of week
22081        if (
22082            config._w &&
22083            typeof config._w.d !== 'undefined' &&
22084            config._w.d !== expectedWeekday
22085        ) {
22086            getParsingFlags(config).weekdayMismatch = true;
22087        }
22088    }
22089
22090    function dayOfYearFromWeekInfo(config) {
22091        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
22092
22093        w = config._w;
22094        if (w.GG != null || w.W != null || w.E != null) {
22095            dow = 1;
22096            doy = 4;
22097
22098            // TODO: We need to take the current isoWeekYear, but that depends on
22099            // how we interpret now (local, utc, fixed offset). So create
22100            // a now version of current config (take local/utc/offset flags, and
22101            // create now).
22102            weekYear = defaults(
22103                w.GG,
22104                config._a[YEAR],
22105                weekOfYear(createLocal(), 1, 4).year
22106            );
22107            week = defaults(w.W, 1);
22108            weekday = defaults(w.E, 1);
22109            if (weekday < 1 || weekday > 7) {
22110                weekdayOverflow = true;
22111            }
22112        } else {
22113            dow = config._locale._week.dow;
22114            doy = config._locale._week.doy;
22115
22116            curWeek = weekOfYear(createLocal(), dow, doy);
22117
22118            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
22119
22120            // Default to current week.
22121            week = defaults(w.w, curWeek.week);
22122
22123            if (w.d != null) {
22124                // weekday -- low day numbers are considered next week
22125                weekday = w.d;
22126                if (weekday < 0 || weekday > 6) {
22127                    weekdayOverflow = true;
22128                }
22129            } else if (w.e != null) {
22130                // local weekday -- counting starts from beginning of week
22131                weekday = w.e + dow;
22132                if (w.e < 0 || w.e > 6) {
22133                    weekdayOverflow = true;
22134                }
22135            } else {
22136                // default to beginning of week
22137                weekday = dow;
22138            }
22139        }
22140        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
22141            getParsingFlags(config)._overflowWeeks = true;
22142        } else if (weekdayOverflow != null) {
22143            getParsingFlags(config)._overflowWeekday = true;
22144        } else {
22145            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
22146            config._a[YEAR] = temp.year;
22147            config._dayOfYear = temp.dayOfYear;
22148        }
22149    }
22150
22151    // constant that refers to the ISO standard
22152    hooks.ISO_8601 = function () {};
22153
22154    // constant that refers to the RFC 2822 form
22155    hooks.RFC_2822 = function () {};
22156
22157    // date from string and format string
22158    function configFromStringAndFormat(config) {
22159        // TODO: Move this to another part of the creation flow to prevent circular deps
22160        if (config._f === hooks.ISO_8601) {
22161            configFromISO(config);
22162            return;
22163        }
22164        if (config._f === hooks.RFC_2822) {
22165            configFromRFC2822(config);
22166            return;
22167        }
22168        config._a = [];
22169        getParsingFlags(config).empty = true;
22170
22171        // This array is used to make a Date, either with `new Date` or `Date.UTC`
22172        var string = '' + config._i,
22173            i,
22174            parsedInput,
22175            tokens,
22176            token,
22177            skipped,
22178            stringLength = string.length,
22179            totalParsedInputLength = 0,
22180            era,
22181            tokenLen;
22182
22183        tokens =
22184            expandFormat(config._f, config._locale).match(formattingTokens) || [];
22185        tokenLen = tokens.length;
22186        for (i = 0; i < tokenLen; i++) {
22187            token = tokens[i];
22188            parsedInput = (string.match(getParseRegexForToken(token, config)) ||
22189                [])[0];
22190            if (parsedInput) {
22191                skipped = string.substr(0, string.indexOf(parsedInput));
22192                if (skipped.length > 0) {
22193                    getParsingFlags(config).unusedInput.push(skipped);
22194                }
22195                string = string.slice(
22196                    string.indexOf(parsedInput) + parsedInput.length
22197                );
22198                totalParsedInputLength += parsedInput.length;
22199            }
22200            // don't parse if it's not a known token
22201            if (formatTokenFunctions[token]) {
22202                if (parsedInput) {
22203                    getParsingFlags(config).empty = false;
22204                } else {
22205                    getParsingFlags(config).unusedTokens.push(token);
22206                }
22207                addTimeToArrayFromToken(token, parsedInput, config);
22208            } else if (config._strict && !parsedInput) {
22209                getParsingFlags(config).unusedTokens.push(token);
22210            }
22211        }
22212
22213        // add remaining unparsed input length to the string
22214        getParsingFlags(config).charsLeftOver =
22215            stringLength - totalParsedInputLength;
22216        if (string.length > 0) {
22217            getParsingFlags(config).unusedInput.push(string);
22218        }
22219
22220        // clear _12h flag if hour is <= 12
22221        if (
22222            config._a[HOUR] <= 12 &&
22223            getParsingFlags(config).bigHour === true &&
22224            config._a[HOUR] > 0
22225        ) {
22226            getParsingFlags(config).bigHour = undefined;
22227        }
22228
22229        getParsingFlags(config).parsedDateParts = config._a.slice(0);
22230        getParsingFlags(config).meridiem = config._meridiem;
22231        // handle meridiem
22232        config._a[HOUR] = meridiemFixWrap(
22233            config._locale,
22234            config._a[HOUR],
22235            config._meridiem
22236        );
22237
22238        // handle era
22239        era = getParsingFlags(config).era;
22240        if (era !== null) {
22241            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
22242        }
22243
22244        configFromArray(config);
22245        checkOverflow(config);
22246    }
22247
22248    function meridiemFixWrap(locale, hour, meridiem) {
22249        var isPm;
22250
22251        if (meridiem == null) {
22252            // nothing to do
22253            return hour;
22254        }
22255        if (locale.meridiemHour != null) {
22256            return locale.meridiemHour(hour, meridiem);
22257        } else if (locale.isPM != null) {
22258            // Fallback
22259            isPm = locale.isPM(meridiem);
22260            if (isPm && hour < 12) {
22261                hour += 12;
22262            }
22263            if (!isPm && hour === 12) {
22264                hour = 0;
22265            }
22266            return hour;
22267        } else {
22268            // this is not supposed to happen
22269            return hour;
22270        }
22271    }
22272
22273    // date from string and array of format strings
22274    function configFromStringAndArray(config) {
22275        var tempConfig,
22276            bestMoment,
22277            scoreToBeat,
22278            i,
22279            currentScore,
22280            validFormatFound,
22281            bestFormatIsValid = false,
22282            configfLen = config._f.length;
22283
22284        if (configfLen === 0) {
22285            getParsingFlags(config).invalidFormat = true;
22286            config._d = new Date(NaN);
22287            return;
22288        }
22289
22290        for (i = 0; i < configfLen; i++) {
22291            currentScore = 0;
22292            validFormatFound = false;
22293            tempConfig = copyConfig({}, config);
22294            if (config._useUTC != null) {
22295                tempConfig._useUTC = config._useUTC;
22296            }
22297            tempConfig._f = config._f[i];
22298            configFromStringAndFormat(tempConfig);
22299
22300            if (isValid(tempConfig)) {
22301                validFormatFound = true;
22302            }
22303
22304            // if there is any input that was not parsed add a penalty for that format
22305            currentScore += getParsingFlags(tempConfig).charsLeftOver;
22306
22307            //or tokens
22308            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
22309
22310            getParsingFlags(tempConfig).score = currentScore;
22311
22312            if (!bestFormatIsValid) {
22313                if (
22314                    scoreToBeat == null ||
22315                    currentScore < scoreToBeat ||
22316                    validFormatFound
22317                ) {
22318                    scoreToBeat = currentScore;
22319                    bestMoment = tempConfig;
22320                    if (validFormatFound) {
22321                        bestFormatIsValid = true;
22322                    }
22323                }
22324            } else {
22325                if (currentScore < scoreToBeat) {
22326                    scoreToBeat = currentScore;
22327                    bestMoment = tempConfig;
22328                }
22329            }
22330        }
22331
22332        extend(config, bestMoment || tempConfig);
22333    }
22334
22335    function configFromObject(config) {
22336        if (config._d) {
22337            return;
22338        }
22339
22340        var i = normalizeObjectUnits(config._i),
22341            dayOrDate = i.day === undefined ? i.date : i.day;
22342        config._a = map(
22343            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
22344            function (obj) {
22345                return obj && parseInt(obj, 10);
22346            }
22347        );
22348
22349        configFromArray(config);
22350    }
22351
22352    function createFromConfig(config) {
22353        var res = new Moment(checkOverflow(prepareConfig(config)));
22354        if (res._nextDay) {
22355            // Adding is smart enough around DST
22356            res.add(1, 'd');
22357            res._nextDay = undefined;
22358        }
22359
22360        return res;
22361    }
22362
22363    function prepareConfig(config) {
22364        var input = config._i,
22365            format = config._f;
22366
22367        config._locale = config._locale || getLocale(config._l);
22368
22369        if (input === null || (format === undefined && input === '')) {
22370            return createInvalid({ nullInput: true });
22371        }
22372
22373        if (typeof input === 'string') {
22374            config._i = input = config._locale.preparse(input);
22375        }
22376
22377        if (isMoment(input)) {
22378            return new Moment(checkOverflow(input));
22379        } else if (isDate(input)) {
22380            config._d = input;
22381        } else if (isArray(format)) {
22382            configFromStringAndArray(config);
22383        } else if (format) {
22384            configFromStringAndFormat(config);
22385        } else {
22386            configFromInput(config);
22387        }
22388
22389        if (!isValid(config)) {
22390            config._d = null;
22391        }
22392
22393        return config;
22394    }
22395
22396    function configFromInput(config) {
22397        var input = config._i;
22398        if (isUndefined(input)) {
22399            config._d = new Date(hooks.now());
22400        } else if (isDate(input)) {
22401            config._d = new Date(input.valueOf());
22402        } else if (typeof input === 'string') {
22403            configFromString(config);
22404        } else if (isArray(input)) {
22405            config._a = map(input.slice(0), function (obj) {
22406                return parseInt(obj, 10);
22407            });
22408            configFromArray(config);
22409        } else if (isObject(input)) {
22410            configFromObject(config);
22411        } else if (isNumber(input)) {
22412            // from milliseconds
22413            config._d = new Date(input);
22414        } else {
22415            hooks.createFromInputFallback(config);
22416        }
22417    }
22418
22419    function createLocalOrUTC(input, format, locale, strict, isUTC) {
22420        var c = {};
22421
22422        if (format === true || format === false) {
22423            strict = format;
22424            format = undefined;
22425        }
22426
22427        if (locale === true || locale === false) {
22428            strict = locale;
22429            locale = undefined;
22430        }
22431
22432        if (
22433            (isObject(input) && isObjectEmpty(input)) ||
22434            (isArray(input) && input.length === 0)
22435        ) {
22436            input = undefined;
22437        }
22438        // object construction must be done this way.
22439        // https://github.com/moment/moment/issues/1423
22440        c._isAMomentObject = true;
22441        c._useUTC = c._isUTC = isUTC;
22442        c._l = locale;
22443        c._i = input;
22444        c._f = format;
22445        c._strict = strict;
22446
22447        return createFromConfig(c);
22448    }
22449
22450    function createLocal(input, format, locale, strict) {
22451        return createLocalOrUTC(input, format, locale, strict, false);
22452    }
22453
22454    var prototypeMin = deprecate(
22455            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
22456            function () {
22457                var other = createLocal.apply(null, arguments);
22458                if (this.isValid() && other.isValid()) {
22459                    return other < this ? this : other;
22460                } else {
22461                    return createInvalid();
22462                }
22463            }
22464        ),
22465        prototypeMax = deprecate(
22466            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
22467            function () {
22468                var other = createLocal.apply(null, arguments);
22469                if (this.isValid() && other.isValid()) {
22470                    return other > this ? this : other;
22471                } else {
22472                    return createInvalid();
22473                }
22474            }
22475        );
22476
22477    // Pick a moment m from moments so that m[fn](other) is true for all
22478    // other. This relies on the function fn to be transitive.
22479    //
22480    // moments should either be an array of moment objects or an array, whose
22481    // first element is an array of moment objects.
22482    function pickBy(fn, moments) {
22483        var res, i;
22484        if (moments.length === 1 && isArray(moments[0])) {
22485            moments = moments[0];
22486        }
22487        if (!moments.length) {
22488            return createLocal();
22489        }
22490        res = moments[0];
22491        for (i = 1; i < moments.length; ++i) {
22492            if (!moments[i].isValid() || moments[i][fn](res)) {
22493                res = moments[i];
22494            }
22495        }
22496        return res;
22497    }
22498
22499    // TODO: Use [].sort instead?
22500    function min() {
22501        var args = [].slice.call(arguments, 0);
22502
22503        return pickBy('isBefore', args);
22504    }
22505
22506    function max() {
22507        var args = [].slice.call(arguments, 0);
22508
22509        return pickBy('isAfter', args);
22510    }
22511
22512    var now = function () {
22513        return Date.now ? Date.now() : +new Date();
22514    };
22515
22516    var ordering = [
22517        'year',
22518        'quarter',
22519        'month',
22520        'week',
22521        'day',
22522        'hour',
22523        'minute',
22524        'second',
22525        'millisecond',
22526    ];
22527
22528    function isDurationValid(m) {
22529        var key,
22530            unitHasDecimal = false,
22531            i,
22532            orderLen = ordering.length;
22533        for (key in m) {
22534            if (
22535                hasOwnProp(m, key) &&
22536                !(
22537                    indexOf.call(ordering, key) !== -1 &&
22538                    (m[key] == null || !isNaN(m[key]))
22539                )
22540            ) {
22541                return false;
22542            }
22543        }
22544
22545        for (i = 0; i < orderLen
vendor: 10,251 bytes, lines 22545-22870
22545; ++i) {
22546            if (m[ordering[i]]) {
22547                if (unitHasDecimal) {
22548                    return false; // only allow non-integers for smallest unit
22549                }
22550                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
22551                    unitHasDecimal = true;
22552                }
22553            }
22554        }
22555
22556        return true;
22557    }
22558
22559    function isValid$1() {
22560        return this._isValid;
22561    }
22562
22563    function createInvalid$1() {
22564        return createDuration(NaN);
22565    }
22566
22567    function Duration(duration) {
22568        var normalizedInput = normalizeObjectUnits(duration),
22569            years = normalizedInput.year || 0,
22570            quarters = normalizedInput.quarter || 0,
22571            months = normalizedInput.month || 0,
22572            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
22573            days = normalizedInput.day || 0,
22574            hours = normalizedInput.hour || 0,
22575            minutes = normalizedInput.minute || 0,
22576            seconds = normalizedInput.second || 0,
22577            milliseconds = normalizedInput.millisecond || 0;
22578
22579        this._isValid = isDurationValid(normalizedInput);
22580
22581        // representation for dateAddRemove
22582        this._milliseconds =
22583            +milliseconds +
22584            seconds * 1e3 + // 1000
22585            minutes * 6e4 + // 1000 * 60
22586            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
22587        // Because of dateAddRemove treats 24 hours as different from a
22588        // day when working around DST, we need to store them separately
22589        this._days = +days + weeks * 7;
22590        // It is impossible to translate months into days without knowing
22591        // which months you are are talking about, so we have to store
22592        // it separately.
22593        this._months = +months + quarters * 3 + years * 12;
22594
22595        this._data = {};
22596
22597        this._locale = getLocale();
22598
22599        this._bubble();
22600    }
22601
22602    function isDuration(obj) {
22603        return obj instanceof Duration;
22604    }
22605
22606    function absRound(number) {
22607        if (number < 0) {
22608            return Math.round(-1 * number) * -1;
22609        } else {
22610            return Math.round(number);
22611        }
22612    }
22613
22614    // compare two arrays, return the number of differences
22615    function compareArrays(array1, array2, dontConvert) {
22616        var len = Math.min(array1.length, array2.length),
22617            lengthDiff = Math.abs(array1.length - array2.length),
22618            diffs = 0,
22619            i;
22620        for (i = 0; i < len; i++) {
22621            if (
22622                (dontConvert && array1[i] !== array2[i]) ||
22623                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
22624            ) {
22625                diffs++;
22626            }
22627        }
22628        return diffs + lengthDiff;
22629    }
22630
22631    // FORMATTING
22632
22633    function offset(token, separator) {
22634        addFormatToken(token, 0, 0, function () {
22635            var offset = this.utcOffset(),
22636                sign = '+';
22637            if (offset < 0) {
22638                offset = -offset;
22639                sign = '-';
22640            }
22641            return (
22642                sign +
22643                zeroFill(~~(offset / 60), 2) +
22644                separator +
22645                zeroFill(~~offset % 60, 2)
22646            );
22647        });
22648    }
22649
22650    offset('Z', ':');
22651    offset('ZZ', '');
22652
22653    // PARSING
22654
22655    addRegexToken('Z', matchShortOffset);
22656    addRegexToken('ZZ', matchShortOffset);
22657    addParseToken(['Z', 'ZZ'], function (input, array, config) {
22658        config._useUTC = true;
22659        config._tzm = offsetFromString(matchShortOffset, input);
22660    });
22661
22662    // HELPERS
22663
22664    // timezone chunker
22665    // '+10:00' > ['10',  '00']
22666    // '-1530'  > ['-15', '30']
22667    var chunkOffset = /([\+\-]|\d\d)/gi;
22668
22669    function offsetFromString(matcher, string) {
22670        var matches = (string || '').match(matcher),
22671            chunk,
22672            parts,
22673            minutes;
22674
22675        if (matches === null) {
22676            return null;
22677        }
22678
22679        chunk = matches[matches.length - 1] || [];
22680        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
22681        minutes = +(parts[1] * 60) + toInt(parts[2]);
22682
22683        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
22684    }
22685
22686    // Return a moment from input, that is local/utc/zone equivalent to model.
22687    function cloneWithOffset(input, model) {
22688        var res, diff;
22689        if (model._isUTC) {
22690            res = model.clone();
22691            diff =
22692                (isMoment(input) || isDate(input)
22693                    ? input.valueOf()
22694                    : createLocal(input).valueOf()) - res.valueOf();
22695            // Use low-level api, because this fn is low-level api.
22696            res._d.setTime(res._d.valueOf() + diff);
22697            hooks.updateOffset(res, false);
22698            return res;
22699        } else {
22700            return createLocal(input).local();
22701        }
22702    }
22703
22704    function getDateOffset(m) {
22705        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
22706        // https://github.com/moment/moment/pull/1871
22707        return -Math.round(m._d.getTimezoneOffset());
22708    }
22709
22710    // HOOKS
22711
22712    // This function will be called whenever a moment is mutated.
22713    // It is intended to keep the offset in sync with the timezone.
22714    hooks.updateOffset = function () {};
22715
22716    // MOMENTS
22717
22718    // keepLocalTime = true means only change the timezone, without
22719    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
22720    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
22721    // +0200, so we adjust the time as needed, to be valid.
22722    //
22723    // Keeping the time actually adds/subtracts (one hour)
22724    // from the actual represented time. That is why we call updateOffset
22725    // a second time. In case it wants us to change the offset again
22726    // _changeInProgress == true case, then we have to adjust, because
22727    // there is no such time in the given timezone.
22728    function getSetOffset(input, keepLocalTime, keepMinutes) {
22729        var offset = this._offset || 0,
22730            localAdjust;
22731        if (!this.isValid()) {
22732            return input != null ? this : NaN;
22733        }
22734        if (input != null) {
22735            if (typeof input === 'string') {
22736                input = offsetFromString(matchShortOffset, input);
22737                if (input === null) {
22738                    return this;
22739                }
22740            } else if (Math.abs(input) < 16 && !keepMinutes) {
22741                input = input * 60;
22742            }
22743            if (!this._isUTC && keepLocalTime) {
22744                localAdjust = getDateOffset(this);
22745            }
22746            this._offset = input;
22747            this._isUTC = true;
22748            if (localAdjust != null) {
22749                this.add(localAdjust, 'm');
22750            }
22751            if (offset !== input) {
22752                if (!keepLocalTime || this._changeInProgress) {
22753                    addSubtract(
22754                        this,
22755                        createDuration(input - offset, 'm'),
22756                        1,
22757                        false
22758                    );
22759                } else if (!this._changeInProgress) {
22760                    this._changeInProgress = true;
22761                    hooks.updateOffset(this, true);
22762                    this._changeInProgress = null;
22763                }
22764            }
22765            return this;
22766        } else {
22767            return this._isUTC ? offset : getDateOffset(this);
22768        }
22769    }
22770
22771    function getSetZone(input, keepLocalTime) {
22772        if (input != null) {
22773            if (typeof input !== 'string') {
22774                input = -input;
22775            }
22776
22777            this.utcOffset(input, keepLocalTime);
22778
22779            return this;
22780        } else {
22781            return -this.utcOffset();
22782        }
22783    }
22784
22785    function setOffsetToUTC(keepLocalTime) {
22786        return this.utcOffset(0, keepLocalTime);
22787    }
22788
22789    function setOffsetToLocal(keepLocalTime) {
22790        if (this._isUTC) {
22791            this.utcOffset(0, keepLocalTime);
22792            this._isUTC = false;
22793
22794            if (keepLocalTime) {
22795                this.subtract(getDateOffset(this), 'm');
22796            }
22797        }
22798        return this;
22799    }
22800
22801    function setOffsetToParsedOffset() {
22802        if (this._tzm != null) {
22803            this.utcOffset(this._tzm, false, true);
22804        } else if (typeof this._i === 'string') {
22805            var tZone = offsetFromString(matchOffset, this._i);
22806            if (tZone != null) {
22807                this.utcOffset(tZone);
22808            } else {
22809                this.utcOffset(0, true);
22810            }
22811        }
22812        return this;
22813    }
22814
22815    function hasAlignedHourOffset(input) {
22816        if (!this.isValid()) {
22817            return false;
22818        }
22819        input = input ? createLocal(input).utcOffset() : 0;
22820
22821        return (this.utcOffset() - input) % 60 === 0;
22822    }
22823
22824    function isDaylightSavingTime() {
22825        return (
22826            this.utcOffset() > this.clone().month(0).utcOffset() ||
22827            this.utcOffset() > this.clone().month(5).utcOffset()
22828        );
22829    }
22830
22831    function isDaylightSavingTimeShifted() {
22832        if (!isUndefined(this._isDSTShifted)) {
22833            return this._isDSTShifted;
22834        }
22835
22836        var c = {},
22837            other;
22838
22839        copyConfig(c, this);
22840        c = prepareConfig(c);
22841
22842        if (c._a) {
22843            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
22844            this._isDSTShifted =
22845                this.isValid() && compareArrays(c._a, other.toArray()) > 0;
22846        } else {
22847            this._isDSTShifted = false;
22848        }
22849
22850        return this._isDSTShifted;
22851    }
22852
22853    function isLocal() {
22854        return this.isValid() ? !this._isUTC : false;
22855    }
22856
22857    function isUtcOffset() {
22858        return this.isValid() ? this._isUTC : false;
22859    }
22860
22861    function isUtc() {
22862        return this.isValid() ? this._isUTC && this._offset === 0 : false;
22863    }
22864
22865    // ASP.NET json date format regex
22866    var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
22867        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
22868        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
22869        // and further modified to allow for strings containing both week and day
22870        isoRegex =
vendor: 9,081 bytes, lines 22870-23160
22870
22871            /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
22872
22873    function createDuration(input, key) {
22874        var duration = input,
22875            // matching against regexp is expensive, do it on demand
22876            match = null,
22877            sign,
22878            ret,
22879            diffRes;
22880
22881        if (isDuration(input)) {
22882            duration = {
22883                ms: input._milliseconds,
22884                d: input._days,
22885                M: input._months,
22886            };
22887        } else if (isNumber(input) || !isNaN(+input)) {
22888            duration = {};
22889            if (key) {
22890                duration[key] = +input;
22891            } else {
22892                duration.milliseconds = +input;
22893            }
22894        } else if ((match = aspNetRegex.exec(input))) {
22895            sign = match[1] === '-' ? -1 : 1;
22896            duration = {
22897                y: 0,
22898                d: toInt(match[DATE]) * sign,
22899                h: toInt(match[HOUR]) * sign,
22900                m: toInt(match[MINUTE]) * sign,
22901                s: toInt(match[SECOND]) * sign,
22902                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
22903            };
22904        } else if ((match = isoRegex.exec(input))) {
22905            sign = match[1] === '-' ? -1 : 1;
22906            duration = {
22907                y: parseIso(match[2], sign),
22908                M: parseIso(match[3], sign),
22909                w: parseIso(match[4], sign),
22910                d: parseIso(match[5], sign),
22911                h: parseIso(match[6], sign),
22912                m: parseIso(match[7], sign),
22913                s: parseIso(match[8], sign),
22914            };
22915        } else if (duration == null) {
22916            // checks for null or undefined
22917            duration = {};
22918        } else if (
22919            typeof duration === 'object' &&
22920            ('from' in duration || 'to' in duration)
22921        ) {
22922            diffRes = momentsDifference(
22923                createLocal(duration.from),
22924                createLocal(duration.to)
22925            );
22926
22927            duration = {};
22928            duration.ms = diffRes.milliseconds;
22929            duration.M = diffRes.months;
22930        }
22931
22932        ret = new Duration(duration);
22933
22934        if (isDuration(input) && hasOwnProp(input, '_locale')) {
22935            ret._locale = input._locale;
22936        }
22937
22938        if (isDuration(input) && hasOwnProp(input, '_isValid')) {
22939            ret._isValid = input._isValid;
22940        }
22941
22942        return ret;
22943    }
22944
22945    createDuration.fn = Duration.prototype;
22946    createDuration.invalid = createInvalid$1;
22947
22948    function parseIso(inp, sign) {
22949        // We'd normally use ~~inp for this, but unfortunately it also
22950        // converts floats to ints.
22951        // inp may be undefined, so careful calling replace on it.
22952        var res = inp && parseFloat(inp.replace(',', '.'));
22953        // apply sign while we're at it
22954        return (isNaN(res) ? 0 : res) * sign;
22955    }
22956
22957    function positiveMomentsDifference(base, other) {
22958        var res = {};
22959
22960        res.months =
22961            other.month() - base.month() + (other.year() - base.year()) * 12;
22962        if (base.clone().add(res.months, 'M').isAfter(other)) {
22963            --res.months;
22964        }
22965
22966        res.milliseconds = +other - +base.clone().add(res.months, 'M');
22967
22968        return res;
22969    }
22970
22971    function momentsDifference(base, other) {
22972        var res;
22973        if (!(base.isValid() && other.isValid())) {
22974            return { milliseconds: 0, months: 0 };
22975        }
22976
22977        other = cloneWithOffset(other, base);
22978        if (base.isBefore(other)) {
22979            res = positiveMomentsDifference(base, other);
22980        } else {
22981            res = positiveMomentsDifference(other, base);
22982            res.milliseconds = -res.milliseconds;
22983            res.months = -res.months;
22984        }
22985
22986        return res;
22987    }
22988
22989    // TODO: remove 'name' arg after deprecation is removed
22990    function createAdder(direction, name) {
22991        return function (val, period) {
22992            var dur, tmp;
22993            //invert the arguments, but complain about it
22994            if (period !== null && !isNaN(+period)) {
22995                deprecateSimple(
22996                    name,
22997                    'moment().' +
22998                        name +
22999                        '(period, number) is deprecated. Please use moment().' +
23000                        name +
23001                        '(number, period). ' +
23002                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
23003                );
23004                tmp = val;
23005                val = period;
23006                period = tmp;
23007            }
23008
23009            dur = createDuration(val, period);
23010            addSubtract(this, dur, direction);
23011            return this;
23012        };
23013    }
23014
23015    function addSubtract(mom, duration, isAdding, updateOffset) {
23016        var milliseconds = duration._milliseconds,
23017            days = absRound(duration._days),
23018            months = absRound(duration._months);
23019
23020        if (!mom.isValid()) {
23021            // No op
23022            return;
23023        }
23024
23025        updateOffset = updateOffset == null ? true : updateOffset;
23026
23027        if (months) {
23028            setMonth(mom, get(mom, 'Month') + months * isAdding);
23029        }
23030        if (days) {
23031            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
23032        }
23033        if (milliseconds) {
23034            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
23035        }
23036        if (updateOffset) {
23037            hooks.updateOffset(mom, days || months);
23038        }
23039    }
23040
23041    var add = createAdder(1, 'add'),
23042        subtract = createAdder(-1, 'subtract');
23043
23044    function isString(input) {
23045        return typeof input === 'string' || input instanceof String;
23046    }
23047
23048    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
23049    function isMomentInput(input) {
23050        return (
23051            isMoment(input) ||
23052            isDate(input) ||
23053            isString(input) ||
23054            isNumber(input) ||
23055            isNumberOrStringArray(input) ||
23056            isMomentInputObject(input) ||
23057            input === null ||
23058            input === undefined
23059        );
23060    }
23061
23062    function isMomentInputObject(input) {
23063        var objectTest = isObject(input) && !isObjectEmpty(input),
23064            propertyTest = false,
23065            properties = [
23066                'years',
23067                'year',
23068                'y',
23069                'months',
23070                'month',
23071                'M',
23072                'days',
23073                'day',
23074                'd',
23075                'dates',
23076                'date',
23077                'D',
23078                'hours',
23079                'hour',
23080                'h',
23081                'minutes',
23082                'minute',
23083                'm',
23084                'seconds',
23085                'second',
23086                's',
23087                'milliseconds',
23088                'millisecond',
23089                'ms',
23090            ],
23091            i,
23092            property,
23093            propertyLen = properties.length;
23094
23095        for (i = 0; i < propertyLen; i += 1) {
23096            property = properties[i];
23097            propertyTest = propertyTest || hasOwnProp(input, property);
23098        }
23099
23100        return objectTest && propertyTest;
23101    }
23102
23103    function isNumberOrStringArray(input) {
23104        var arrayTest = isArray(input),
23105            dataTypeTest = false;
23106        if (arrayTest) {
23107            dataTypeTest =
23108                input.filter(function (item) {
23109                    return !isNumber(item) && isString(input);
23110                }).length === 0;
23111        }
23112        return arrayTest && dataTypeTest;
23113    }
23114
23115    function isCalendarSpec(input) {
23116        var objectTest = isObject(input) && !isObjectEmpty(input),
23117            propertyTest = false,
23118            properties = [
23119                'sameDay',
23120                'nextDay',
23121                'lastDay',
23122                'nextWeek',
23123                'lastWeek',
23124                'sameElse',
23125            ],
23126            i,
23127            property;
23128
23129        for (i = 0; i < properties.length; i += 1) {
23130            property = properties[i];
23131            propertyTest = propertyTest || hasOwnProp(input, property);
23132        }
23133
23134        return objectTest && propertyTest;
23135    }
23136
23137    function getCalendarFormat(myMoment, now) {
23138        var diff = myMoment.diff(now, 'days', true);
23139        return diff < -6
23140            ? 'sameElse'
23141            : diff < -1
23142              ? 'lastWeek'
23143              : diff < 0
23144                ? 'lastDay'
23145                : diff < 1
23146                  ? 'sameDay'
23147                  : diff < 2
23148                    ? 'nextDay'
23149                    : diff < 7
23150                      ? 'nextWeek'
23151                      : 'sameElse';
23152    }
23153
23154    function calendar$1(time, formats) {
23155        // Support for single parameter, formats only overload to the calendar function
23156        if (arguments.length === 1) {
23157            if (!arguments[0]) {
23158                time = undefined;
23159                formats = undefined;
23160            } else
vendor: 17,627 bytes, lines 23160-23718
23160 if (isMomentInput(arguments[0])) {
23161                time = arguments[0];
23162                formats = undefined;
23163            } else if (isCalendarSpec(arguments[0])) {
23164                formats = arguments[0];
23165                time = undefined;
23166            }
23167        }
23168        // We want to compare the start of today, vs this.
23169        // Getting start-of-today depends on whether we're local/utc/offset or not.
23170        var now = time || createLocal(),
23171            sod = cloneWithOffset(now, this).startOf('day'),
23172            format = hooks.calendarFormat(this, sod) || 'sameElse',
23173            output =
23174                formats &&
23175                (isFunction(formats[format])
23176                    ? formats[format].call(this, now)
23177                    : formats[format]);
23178
23179        return this.format(
23180            output || this.localeData().calendar(format, this, createLocal(now))
23181        );
23182    }
23183
23184    function clone() {
23185        return new Moment(this);
23186    }
23187
23188    function isAfter(input, units) {
23189        var localInput = isMoment(input) ? input : createLocal(input);
23190        if (!(this.isValid() && localInput.isValid())) {
23191            return false;
23192        }
23193        units = normalizeUnits(units) || 'millisecond';
23194        if (units === 'millisecond') {
23195            return this.valueOf() > localInput.valueOf();
23196        } else {
23197            return localInput.valueOf() < this.clone().startOf(units).valueOf();
23198        }
23199    }
23200
23201    function isBefore(input, units) {
23202        var localInput = isMoment(input) ? input : createLocal(input);
23203        if (!(this.isValid() && localInput.isValid())) {
23204            return false;
23205        }
23206        units = normalizeUnits(units) || 'millisecond';
23207        if (units === 'millisecond') {
23208            return this.valueOf() < localInput.valueOf();
23209        } else {
23210            return this.clone().endOf(units).valueOf() < localInput.valueOf();
23211        }
23212    }
23213
23214    function isBetween(from, to, units, inclusivity) {
23215        var localFrom = isMoment(from) ? from : createLocal(from),
23216            localTo = isMoment(to) ? to : createLocal(to);
23217        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
23218            return false;
23219        }
23220        inclusivity = inclusivity || '()';
23221        return (
23222            (inclusivity[0] === '('
23223                ? this.isAfter(localFrom, units)
23224                : !this.isBefore(localFrom, units)) &&
23225            (inclusivity[1] === ')'
23226                ? this.isBefore(localTo, units)
23227                : !this.isAfter(localTo, units))
23228        );
23229    }
23230
23231    function isSame(input, units) {
23232        var localInput = isMoment(input) ? input : createLocal(input),
23233            inputMs;
23234        if (!(this.isValid() && localInput.isValid())) {
23235            return false;
23236        }
23237        units = normalizeUnits(units) || 'millisecond';
23238        if (units === 'millisecond') {
23239            return this.valueOf() === localInput.valueOf();
23240        } else {
23241            inputMs = localInput.valueOf();
23242            return (
23243                this.clone().startOf(units).valueOf() <= inputMs &&
23244                inputMs <= this.clone().endOf(units).valueOf()
23245            );
23246        }
23247    }
23248
23249    function isSameOrAfter(input, units) {
23250        return this.isSame(input, units) || this.isAfter(input, units);
23251    }
23252
23253    function isSameOrBefore(input, units) {
23254        return this.isSame(input, units) || this.isBefore(input, units);
23255    }
23256
23257    function diff(input, units, asFloat) {
23258        var that, zoneDelta, output;
23259
23260        if (!this.isValid()) {
23261            return NaN;
23262        }
23263
23264        that = cloneWithOffset(input, this);
23265
23266        if (!that.isValid()) {
23267            return NaN;
23268        }
23269
23270        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
23271
23272        units = normalizeUnits(units);
23273
23274        switch (units) {
23275            case 'year':
23276                output = monthDiff(this, that) / 12;
23277                break;
23278            case 'month':
23279                output = monthDiff(this, that);
23280                break;
23281            case 'quarter':
23282                output = monthDiff(this, that) / 3;
23283                break;
23284            case 'second':
23285                output = (this - that) / 1e3;
23286                break; // 1000
23287            case 'minute':
23288                output = (this - that) / 6e4;
23289                break; // 1000 * 60
23290            case 'hour':
23291                output = (this - that) / 36e5;
23292                break; // 1000 * 60 * 60
23293            case 'day':
23294                output = (this - that - zoneDelta) / 864e5;
23295                break; // 1000 * 60 * 60 * 24, negate dst
23296            case 'week':
23297                output = (this - that - zoneDelta) / 6048e5;
23298                break; // 1000 * 60 * 60 * 24 * 7, negate dst
23299            default:
23300                output = this - that;
23301        }
23302
23303        return asFloat ? output : absFloor(output);
23304    }
23305
23306    function monthDiff(a, b) {
23307        if (a.date() < b.date()) {
23308            // end-of-month calculations work correct when the start month has more
23309            // days than the end month.
23310            return -monthDiff(b, a);
23311        }
23312        // difference in months
23313        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
23314            // b is in (anchor - 1 month, anchor + 1 month)
23315            anchor = a.clone().add(wholeMonthDiff, 'months'),
23316            anchor2,
23317            adjust;
23318
23319        if (b - anchor < 0) {
23320            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
23321            // linear across the month
23322            adjust = (b - anchor) / (anchor - anchor2);
23323        } else {
23324            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
23325            // linear across the month
23326            adjust = (b - anchor) / (anchor2 - anchor);
23327        }
23328
23329        //check for negative zero, return zero if negative zero
23330        return -(wholeMonthDiff + adjust) || 0;
23331    }
23332
23333    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
23334    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
23335
23336    function toString() {
23337        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
23338    }
23339
23340    function toISOString(keepOffset) {
23341        if (!this.isValid()) {
23342            return null;
23343        }
23344        var utc = keepOffset !== true,
23345            m = utc ? this.clone().utc() : this;
23346        if (m.year() < 0 || m.year() > 9999) {
23347            return formatMoment(
23348                m,
23349                utc
23350                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
23351                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
23352            );
23353        }
23354        if (isFunction(Date.prototype.toISOString)) {
23355            // native implementation is ~50x faster, use it when we can
23356            if (utc) {
23357                return this.toDate().toISOString();
23358            } else {
23359                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
23360                    .toISOString()
23361                    .replace('Z', formatMoment(m, 'Z'));
23362            }
23363        }
23364        return formatMoment(
23365            m,
23366            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
23367        );
23368    }
23369
23370    /**
23371     * Return a human readable representation of a moment that can
23372     * also be evaluated to get a new moment which is the same
23373     *
23374     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
23375     */
23376    function inspect() {
23377        if (!this.isValid()) {
23378            return 'moment.invalid(/* ' + this._i + ' */)';
23379        }
23380        var func = 'moment',
23381            zone = '',
23382            prefix,
23383            year,
23384            datetime,
23385            suffix;
23386        if (!this.isLocal()) {
23387            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
23388            zone = 'Z';
23389        }
23390        prefix = '[' + func + '("]';
23391        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
23392        datetime = '-MM-DD[T]HH:mm:ss.SSS';
23393        suffix = zone + '[")]';
23394
23395        return this.format(prefix + year + datetime + suffix);
23396    }
23397
23398    function format(inputString) {
23399        if (!inputString) {
23400            inputString = this.isUtc()
23401                ? hooks.defaultFormatUtc
23402                : hooks.defaultFormat;
23403        }
23404        var output = formatMoment(this, inputString);
23405        return this.localeData().postformat(output);
23406    }
23407
23408    function from(time, withoutSuffix) {
23409        if (
23410            this.isValid() &&
23411            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
23412        ) {
23413            return createDuration({ to: this, from: time })
23414                .locale(this.locale())
23415                .humanize(!withoutSuffix);
23416        } else {
23417            return this.localeData().invalidDate();
23418        }
23419    }
23420
23421    function fromNow(withoutSuffix) {
23422        return this.from(createLocal(), withoutSuffix);
23423    }
23424
23425    function to(time, withoutSuffix) {
23426        if (
23427            this.isValid() &&
23428            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
23429        ) {
23430            return createDuration({ from: this, to: time })
23431                .locale(this.locale())
23432                .humanize(!withoutSuffix);
23433        } else {
23434            return this.localeData().invalidDate();
23435        }
23436    }
23437
23438    function toNow(withoutSuffix) {
23439        return this.to(createLocal(), withoutSuffix);
23440    }
23441
23442    // If passed a locale key, it will set the locale for this
23443    // instance.  Otherwise, it will return the locale configuration
23444    // variables for this instance.
23445    function locale(key) {
23446        var newLocaleData;
23447
23448        if (key === undefined) {
23449            return this._locale._abbr;
23450        } else {
23451            newLocaleData = getLocale(key);
23452            if (newLocaleData != null) {
23453                this._locale = newLocaleData;
23454            }
23455            return this;
23456        }
23457    }
23458
23459    var lang = deprecate(
23460        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
23461        function (key) {
23462            if (key === undefined) {
23463                return this.localeData();
23464            } else {
23465                return this.locale(key);
23466            }
23467        }
23468    );
23469
23470    function localeData() {
23471        return this._locale;
23472    }
23473
23474    var MS_PER_SECOND = 1000,
23475        MS_PER_MINUTE = 60 * MS_PER_SECOND,
23476        MS_PER_HOUR = 60 * MS_PER_MINUTE,
23477        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
23478
23479    // actual modulo - handles negative numbers (for dates before 1970):
23480    function mod$1(dividend, divisor) {
23481        return ((dividend % divisor) + divisor) % divisor;
23482    }
23483
23484    function localStartOfDate(y, m, d) {
23485        // the date constructor remaps years 0-99 to 1900-1999
23486        if (y < 100 && y >= 0) {
23487            // preserve leap years using a full 400 year cycle, then reset
23488            return new Date(y + 400, m, d) - MS_PER_400_YEARS;
23489        } else {
23490            return new Date(y, m, d).valueOf();
23491        }
23492    }
23493
23494    function utcStartOfDate(y, m, d) {
23495        // Date.UTC remaps years 0-99 to 1900-1999
23496        if (y < 100 && y >= 0) {
23497            // preserve leap years using a full 400 year cycle, then reset
23498            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
23499        } else {
23500            return Date.UTC(y, m, d);
23501        }
23502    }
23503
23504    function startOf(units) {
23505        var time, startOfDate;
23506        units = normalizeUnits(units);
23507        if (units === undefined || units === 'millisecond' || !this.isValid()) {
23508            return this;
23509        }
23510
23511        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
23512
23513        switch (units) {
23514            case 'year':
23515                time = startOfDate(this.year(), 0, 1);
23516                break;
23517            case 'quarter':
23518                time = startOfDate(
23519                    this.year(),
23520                    this.month() - (this.month() % 3),
23521                    1
23522                );
23523                break;
23524            case 'month':
23525                time = startOfDate(this.year(), this.month(), 1);
23526                break;
23527            case 'week':
23528                time = startOfDate(
23529                    this.year(),
23530                    this.month(),
23531                    this.date() - this.weekday()
23532                );
23533                break;
23534            case 'isoWeek':
23535                time = startOfDate(
23536                    this.year(),
23537                    this.month(),
23538                    this.date() - (this.isoWeekday() - 1)
23539                );
23540                break;
23541            case 'day':
23542            case 'date':
23543                time = startOfDate(this.year(), this.month(), this.date());
23544                break;
23545            case 'hour':
23546                time = this._d.valueOf();
23547                time -= mod$1(
23548                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
23549                    MS_PER_HOUR
23550                );
23551                break;
23552            case 'minute':
23553                time = this._d.valueOf();
23554                time -= mod$1(time, MS_PER_MINUTE);
23555                break;
23556            case 'second':
23557                time = this._d.valueOf();
23558                time -= mod$1(time, MS_PER_SECOND);
23559                break;
23560        }
23561
23562        this._d.setTime(time);
23563        hooks.updateOffset(this, true);
23564        return this;
23565    }
23566
23567    function endOf(units) {
23568        var time, startOfDate;
23569        units = normalizeUnits(units);
23570        if (units === undefined || units === 'millisecond' || !this.isValid()) {
23571            return this;
23572        }
23573
23574        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
23575
23576        switch (units) {
23577            case 'year':
23578                time = startOfDate(this.year() + 1, 0, 1) - 1;
23579                break;
23580            case 'quarter':
23581                time =
23582                    startOfDate(
23583                        this.year(),
23584                        this.month() - (this.month() % 3) + 3,
23585                        1
23586                    ) - 1;
23587                break;
23588            case 'month':
23589                time = startOfDate(this.year(), this.month() + 1, 1) - 1;
23590                break;
23591            case 'week':
23592                time =
23593                    startOfDate(
23594                        this.year(),
23595                        this.month(),
23596                        this.date() - this.weekday() + 7
23597                    ) - 1;
23598                break;
23599            case 'isoWeek':
23600                time =
23601                    startOfDate(
23602                        this.year(),
23603                        this.month(),
23604                        this.date() - (this.isoWeekday() - 1) + 7
23605                    ) - 1;
23606                break;
23607            case 'day':
23608            case 'date':
23609                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
23610                break;
23611            case 'hour':
23612                time = this._d.valueOf();
23613                time +=
23614                    MS_PER_HOUR -
23615                    mod$1(
23616                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
23617                        MS_PER_HOUR
23618                    ) -
23619                    1;
23620                break;
23621            case 'minute':
23622                time = this._d.valueOf();
23623                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
23624                break;
23625            case 'second':
23626                time = this._d.valueOf();
23627                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
23628                break;
23629        }
23630
23631        this._d.setTime(time);
23632        hooks.updateOffset(this, true);
23633        return this;
23634    }
23635
23636    function valueOf() {
23637        return this._d.valueOf() - (this._offset || 0) * 60000;
23638    }
23639
23640    function unix() {
23641        return Math.floor(this.valueOf() / 1000);
23642    }
23643
23644    function toDate() {
23645        return new Date(this.valueOf());
23646    }
23647
23648    function toArray() {
23649        var m = this;
23650        return [
23651            m.year(),
23652            m.month(),
23653            m.date(),
23654            m.hour(),
23655            m.minute(),
23656            m.second(),
23657            m.millisecond(),
23658        ];
23659    }
23660
23661    function toObject() {
23662        var m = this;
23663        return {
23664            years: m.year(),
23665            months: m.month(),
23666            date: m.date(),
23667            hours: m.hours(),
23668            minutes: m.minutes(),
23669            seconds: m.seconds(),
23670            milliseconds: m.milliseconds(),
23671        };
23672    }
23673
23674    function toJSON() {
23675        // new Date(NaN).toJSON() === null
23676        return this.isValid() ? this.toISOString() : null;
23677    }
23678
23679    function isValid$2() {
23680        return isValid(this);
23681    }
23682
23683    function parsingFlags() {
23684        return extend({}, getParsingFlags(this));
23685    }
23686
23687    function invalidAt() {
23688        return getParsingFlags(this).overflow;
23689    }
23690
23691    function creationData() {
23692        return {
23693            input: this._i,
23694            format: this._f,
23695            locale: this._locale,
23696            isUTC: this._isUTC,
23697            strict: this._strict,
23698        };
23699    }
23700
23701    addFormatToken('N', 0, 0, 'eraAbbr');
23702    addFormatToken('NN', 0, 0, 'eraAbbr');
23703    addFormatToken('NNN', 0, 0, 'eraAbbr');
23704    addFormatToken('NNNN', 0, 0, 'eraName');
23705    addFormatToken('NNNNN', 0, 0, 'eraNarrow');
23706
23707    addFormatToken('y', ['y', 1], 'yo', 'eraYear');
23708    addFormatToken('y', ['yy', 2], 0, 'eraYear');
23709    addFormatToken('y', ['yyy', 3], 0, 'eraYear');
23710    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
23711
23712    addRegexToken('N', matchEraAbbr);
23713    addRegexToken('NN', matchEraAbbr);
23714    addRegexToken('NNN', matchEraAbbr);
23715    addRegexToken('NNNN', matchEraName);
23716    addRegexToken('NNNNN', matchEraNarrow);
23717
23718    addParseToken(
vendor: 5,275 bytes, lines 23718-23896
23718
23719        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],
23720        function (input, array, config, token) {
23721            var era = config._locale.erasParse(input, token, config._strict);
23722            if (era) {
23723                getParsingFlags(config).era = era;
23724            } else {
23725                getParsingFlags(config).invalidEra = input;
23726            }
23727        }
23728    );
23729
23730    addRegexToken('y', matchUnsigned);
23731    addRegexToken('yy', matchUnsigned);
23732    addRegexToken('yyy', matchUnsigned);
23733    addRegexToken('yyyy', matchUnsigned);
23734    addRegexToken('yo', matchEraYearOrdinal);
23735
23736    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
23737    addParseToken(['yo'], function (input, array, config, token) {
23738        var match;
23739        if (config._locale._eraYearOrdinalRegex) {
23740            match = input.match(config._locale._eraYearOrdinalRegex);
23741        }
23742
23743        if (config._locale.eraYearOrdinalParse) {
23744            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
23745        } else {
23746            array[YEAR] = parseInt(input, 10);
23747        }
23748    });
23749
23750    function localeEras(m, format) {
23751        var i,
23752            l,
23753            date,
23754            eras = this._eras || getLocale('en')._eras;
23755        for (i = 0, l = eras.length; i < l; ++i) {
23756            switch (typeof eras[i].since) {
23757                case 'string':
23758                    // truncate time
23759                    date = hooks(eras[i].since).startOf('day');
23760                    eras[i].since = date.valueOf();
23761                    break;
23762            }
23763
23764            switch (typeof eras[i].until) {
23765                case 'undefined':
23766                    eras[i].until = +Infinity;
23767                    break;
23768                case 'string':
23769                    // truncate time
23770                    date = hooks(eras[i].until).startOf('day').valueOf();
23771                    eras[i].until = date.valueOf();
23772                    break;
23773            }
23774        }
23775        return eras;
23776    }
23777
23778    function localeErasParse(eraName, format, strict) {
23779        var i,
23780            l,
23781            eras = this.eras(),
23782            name,
23783            abbr,
23784            narrow;
23785        eraName = eraName.toUpperCase();
23786
23787        for (i = 0, l = eras.length; i < l; ++i) {
23788            name = eras[i].name.toUpperCase();
23789            abbr = eras[i].abbr.toUpperCase();
23790            narrow = eras[i].narrow.toUpperCase();
23791
23792            if (strict) {
23793                switch (format) {
23794                    case 'N':
23795                    case 'NN':
23796                    case 'NNN':
23797                        if (abbr === eraName) {
23798                            return eras[i];
23799                        }
23800                        break;
23801
23802                    case 'NNNN':
23803                        if (name === eraName) {
23804                            return eras[i];
23805                        }
23806                        break;
23807
23808                    case 'NNNNN':
23809                        if (narrow === eraName) {
23810                            return eras[i];
23811                        }
23812                        break;
23813                }
23814            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
23815                return eras[i];
23816            }
23817        }
23818    }
23819
23820    function localeErasConvertYear(era, year) {
23821        var dir = era.since <= era.until ? +1 : -1;
23822        if (year === undefined) {
23823            return hooks(era.since).year();
23824        } else {
23825            return hooks(era.since).year() + (year - era.offset) * dir;
23826        }
23827    }
23828
23829    function getEraName() {
23830        var i,
23831            l,
23832            val,
23833            eras = this.localeData().eras();
23834        for (i = 0, l = eras.length; i < l; ++i) {
23835            // truncate time
23836            val = this.clone().startOf('day').valueOf();
23837
23838            if (eras[i].since <= val && val <= eras[i].until) {
23839                return eras[i].name;
23840            }
23841            if (eras[i].until <= val && val <= eras[i].since) {
23842                return eras[i].name;
23843            }
23844        }
23845
23846        return '';
23847    }
23848
23849    function getEraNarrow() {
23850        var i,
23851            l,
23852            val,
23853            eras = this.localeData().eras();
23854        for (i = 0, l = eras.length; i < l; ++i) {
23855            // truncate time
23856            val = this.clone().startOf('day').valueOf();
23857
23858            if (eras[i].since <= val && val <= eras[i].until) {
23859                return eras[i].narrow;
23860            }
23861            if (eras[i].until <= val && val <= eras[i].since) {
23862                return eras[i].narrow;
23863            }
23864        }
23865
23866        return '';
23867    }
23868
23869    function getEraAbbr() {
23870        var i,
23871            l,
23872            val,
23873            eras = this.localeData().eras();
23874        for (i = 0, l = eras.length; i < l; ++i) {
23875            // truncate time
23876            val = this.clone().startOf('day').valueOf();
23877
23878            if (eras[i].since <= val && val <= eras[i].until) {
23879                return eras[i].abbr;
23880            }
23881            if (eras[i].until <= val && val <= eras[i].since) {
23882                return eras[i].abbr;
23883            }
23884        }
23885
23886        return '';
23887    }
23888
23889    function getEraYear() {
23890        var i,
23891            l,
23892            dir,
23893            val,
23894            eras = this.localeData().eras();
23895        for (i = 0, l = eras.length; i < l; ++i) {
23896            dir = eras[i].since <= eras[i].until ? +
vendor: 9,818 bytes, lines 23896-24255
238961 : -1;
23897
23898            // truncate time
23899            val = this.clone().startOf('day').valueOf();
23900
23901            if (
23902                (eras[i].since <= val && val <= eras[i].until) ||
23903                (eras[i].until <= val && val <= eras[i].since)
23904            ) {
23905                return (
23906                    (this.year() - hooks(eras[i].since).year()) * dir +
23907                    eras[i].offset
23908                );
23909            }
23910        }
23911
23912        return this.year();
23913    }
23914
23915    function erasNameRegex(isStrict) {
23916        if (!hasOwnProp(this, '_erasNameRegex')) {
23917            computeErasParse.call(this);
23918        }
23919        return isStrict ? this._erasNameRegex : this._erasRegex;
23920    }
23921
23922    function erasAbbrRegex(isStrict) {
23923        if (!hasOwnProp(this, '_erasAbbrRegex')) {
23924            computeErasParse.call(this);
23925        }
23926        return isStrict ? this._erasAbbrRegex : this._erasRegex;
23927    }
23928
23929    function erasNarrowRegex(isStrict) {
23930        if (!hasOwnProp(this, '_erasNarrowRegex')) {
23931            computeErasParse.call(this);
23932        }
23933        return isStrict ? this._erasNarrowRegex : this._erasRegex;
23934    }
23935
23936    function matchEraAbbr(isStrict, locale) {
23937        return locale.erasAbbrRegex(isStrict);
23938    }
23939
23940    function matchEraName(isStrict, locale) {
23941        return locale.erasNameRegex(isStrict);
23942    }
23943
23944    function matchEraNarrow(isStrict, locale) {
23945        return locale.erasNarrowRegex(isStrict);
23946    }
23947
23948    function matchEraYearOrdinal(isStrict, locale) {
23949        return locale._eraYearOrdinalRegex || matchUnsigned;
23950    }
23951
23952    function computeErasParse() {
23953        var abbrPieces = [],
23954            namePieces = [],
23955            narrowPieces = [],
23956            mixedPieces = [],
23957            i,
23958            l,
23959            erasName,
23960            erasAbbr,
23961            erasNarrow,
23962            eras = this.eras();
23963
23964        for (i = 0, l = eras.length; i < l; ++i) {
23965            erasName = regexEscape(eras[i].name);
23966            erasAbbr = regexEscape(eras[i].abbr);
23967            erasNarrow = regexEscape(eras[i].narrow);
23968
23969            namePieces.push(erasName);
23970            abbrPieces.push(erasAbbr);
23971            narrowPieces.push(erasNarrow);
23972            mixedPieces.push(erasName);
23973            mixedPieces.push(erasAbbr);
23974            mixedPieces.push(erasNarrow);
23975        }
23976
23977        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
23978        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
23979        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
23980        this._erasNarrowRegex = new RegExp(
23981            '^(' + narrowPieces.join('|') + ')',
23982            'i'
23983        );
23984    }
23985
23986    // FORMATTING
23987
23988    addFormatToken(0, ['gg', 2], 0, function () {
23989        return this.weekYear() % 100;
23990    });
23991
23992    addFormatToken(0, ['GG', 2], 0, function () {
23993        return this.isoWeekYear() % 100;
23994    });
23995
23996    function addWeekYearFormatToken(token, getter) {
23997        addFormatToken(0, [token, token.length], 0, getter);
23998    }
23999
24000    addWeekYearFormatToken('gggg', 'weekYear');
24001    addWeekYearFormatToken('ggggg', 'weekYear');
24002    addWeekYearFormatToken('GGGG', 'isoWeekYear');
24003    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
24004
24005    // ALIASES
24006
24007    // PARSING
24008
24009    addRegexToken('G', matchSigned);
24010    addRegexToken('g', matchSigned);
24011    addRegexToken('GG', match1to2, match2);
24012    addRegexToken('gg', match1to2, match2);
24013    addRegexToken('GGGG', match1to4, match4);
24014    addRegexToken('gggg', match1to4, match4);
24015    addRegexToken('GGGGG', match1to6, match6);
24016    addRegexToken('ggggg', match1to6, match6);
24017
24018    addWeekParseToken(
24019        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],
24020        function (input, week, config, token) {
24021            week[token.substr(0, 2)] = toInt(input);
24022        }
24023    );
24024
24025    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
24026        week[token] = hooks.parseTwoDigitYear(input);
24027    });
24028
24029    // MOMENTS
24030
24031    function getSetWeekYear(input) {
24032        return getSetWeekYearHelper.call(
24033            this,
24034            input,
24035            this.week(),
24036            this.weekday() + this.localeData()._week.dow,
24037            this.localeData()._week.dow,
24038            this.localeData()._week.doy
24039        );
24040    }
24041
24042    function getSetISOWeekYear(input) {
24043        return getSetWeekYearHelper.call(
24044            this,
24045            input,
24046            this.isoWeek(),
24047            this.isoWeekday(),
24048            1,
24049            4
24050        );
24051    }
24052
24053    function getISOWeeksInYear() {
24054        return weeksInYear(this.year(), 1, 4);
24055    }
24056
24057    function getISOWeeksInISOWeekYear() {
24058        return weeksInYear(this.isoWeekYear(), 1, 4);
24059    }
24060
24061    function getWeeksInYear() {
24062        var weekInfo = this.localeData()._week;
24063        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
24064    }
24065
24066    function getWeeksInWeekYear() {
24067        var weekInfo = this.localeData()._week;
24068        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
24069    }
24070
24071    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
24072        var weeksTarget;
24073        if (input == null) {
24074            return weekOfYear(this, dow, doy).year;
24075        } else {
24076            weeksTarget = weeksInYear(input, dow, doy);
24077            if (week > weeksTarget) {
24078                week = weeksTarget;
24079            }
24080            return setWeekAll.call(this, input, week, weekday, dow, doy);
24081        }
24082    }
24083
24084    function setWeekAll(weekYear, week, weekday, dow, doy) {
24085        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
24086            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
24087
24088        this.year(date.getUTCFullYear());
24089        this.month(date.getUTCMonth());
24090        this.date(date.getUTCDate());
24091        return this;
24092    }
24093
24094    // FORMATTING
24095
24096    addFormatToken('Q', 0, 'Qo', 'quarter');
24097
24098    // PARSING
24099
24100    addRegexToken('Q', match1);
24101    addParseToken('Q', function (input, array) {
24102        array[MONTH] = (toInt(input) - 1) * 3;
24103    });
24104
24105    // MOMENTS
24106
24107    function getSetQuarter(input) {
24108        return input == null
24109            ? Math.ceil((this.month() + 1) / 3)
24110            : this.month((input - 1) * 3 + (this.month() % 3));
24111    }
24112
24113    // FORMATTING
24114
24115    addFormatToken('D', ['DD', 2], 'Do', 'date');
24116
24117    // PARSING
24118
24119    addRegexToken('D', match1to2, match1to2NoLeadingZero);
24120    addRegexToken('DD', match1to2, match2);
24121    addRegexToken('Do', function (isStrict, locale) {
24122        // TODO: Remove "ordinalParse" fallback in next major release.
24123        return isStrict
24124            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse
24125            : locale._dayOfMonthOrdinalParseLenient;
24126    });
24127
24128    addParseToken(['D', 'DD'], DATE);
24129    addParseToken('Do', function (input, array) {
24130        array[DATE] = toInt(input.match(match1to2)[0]);
24131    });
24132
24133    // MOMENTS
24134
24135    var getSetDayOfMonth = makeGetSet('Date', true);
24136
24137    // FORMATTING
24138
24139    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
24140
24141    // PARSING
24142
24143    addRegexToken('DDD', match1to3);
24144    addRegexToken('DDDD', match3);
24145    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
24146        config._dayOfYear = toInt(input);
24147    });
24148
24149    // HELPERS
24150
24151    // MOMENTS
24152
24153    function getSetDayOfYear(input) {
24154        var dayOfYear =
24155            Math.round(
24156                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
24157            ) + 1;
24158        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
24159    }
24160
24161    // FORMATTING
24162
24163    addFormatToken('m', ['mm', 2], 0, 'minute');
24164
24165    // PARSING
24166
24167    addRegexToken('m', match1to2, match1to2HasZero);
24168    addRegexToken('mm', match1to2, match2);
24169    addParseToken(['m', 'mm'], MINUTE);
24170
24171    // MOMENTS
24172
24173    var getSetMinute = makeGetSet('Minutes', false);
24174
24175    // FORMATTING
24176
24177    addFormatToken('s', ['ss', 2], 0, 'second');
24178
24179    // PARSING
24180
24181    addRegexToken('s', match1to2, match1to2HasZero);
24182    addRegexToken('ss', match1to2, match2);
24183    addParseToken(['s', 'ss'], SECOND);
24184
24185    // MOMENTS
24186
24187    var getSetSecond = makeGetSet('Seconds', false);
24188
24189    // FORMATTING
24190
24191    addFormatToken('S', 0, 0, function () {
24192        return ~~(this.millisecond() / 100);
24193    });
24194
24195    addFormatToken(0, ['SS', 2], 0, function () {
24196        return ~~(this.millisecond() / 10);
24197    });
24198
24199    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
24200    addFormatToken(0, ['SSSS', 4], 0, function () {
24201        return this.millisecond() * 10;
24202    });
24203    addFormatToken(0, ['SSSSS', 5], 0, function () {
24204        return this.millisecond() * 100;
24205    });
24206    addFormatToken(0, ['SSSSSS', 6], 0, function () {
24207        return this.millisecond() * 1000;
24208    });
24209    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
24210        return this.millisecond() * 10000;
24211    });
24212    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
24213        return this.millisecond() * 100000;
24214    });
24215    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
24216        return this.millisecond() * 1000000;
24217    });
24218
24219    // PARSING
24220
24221    addRegexToken('S', match1to3, match1);
24222    addRegexToken('SS', match1to3, match2);
24223    addRegexToken('SSS', match1to3, match3);
24224
24225    var token, getSetMillisecond;
24226    for (token = 'SSSS'; token.length <= 9; token += 'S') {
24227        addRegexToken(token, matchUnsigned);
24228    }
24229
24230    function parseMs(input, array) {
24231        array[MILLISECOND] = toInt(('0.' + input) * 1000);
24232    }
24233
24234    for (token = 'S'; token.length <= 9; token += 'S') {
24235        addParseToken(token, parseMs);
24236    }
24237
24238    getSetMillisecond = makeGetSet('Milliseconds', false);
24239
24240    // FORMATTING
24241
24242    addFormatToken('z', 0, 0, 'zoneAbbr');
24243    addFormatToken('zz', 0, 0, 'zoneName');
24244
24245    // MOMENTS
24246
24247    function getZoneAbbr() {
24248        return this._isUTC ? 'UTC' : '';
24249    }
24250
24251    function getZoneName() {
24252        return this._isUTC ? 'Coordinated Universal Time' : '';
24253    }
24254
24255    var proto
vendor: 8,352 bytes, lines 24255-24526
24255 = Moment.prototype;
24256
24257    proto.add = add;
24258    proto.calendar = calendar$1;
24259    proto.clone = clone;
24260    proto.diff = diff;
24261    proto.endOf = endOf;
24262    proto.format = format;
24263    proto.from = from;
24264    proto.fromNow = fromNow;
24265    proto.to = to;
24266    proto.toNow = toNow;
24267    proto.get = stringGet;
24268    proto.invalidAt = invalidAt;
24269    proto.isAfter = isAfter;
24270    proto.isBefore = isBefore;
24271    proto.isBetween = isBetween;
24272    proto.isSame = isSame;
24273    proto.isSameOrAfter = isSameOrAfter;
24274    proto.isSameOrBefore = isSameOrBefore;
24275    proto.isValid = isValid$2;
24276    proto.lang = lang;
24277    proto.locale = locale;
24278    proto.localeData = localeData;
24279    proto.max = prototypeMax;
24280    proto.min = prototypeMin;
24281    proto.parsingFlags = parsingFlags;
24282    proto.set = stringSet;
24283    proto.startOf = startOf;
24284    proto.subtract = subtract;
24285    proto.toArray = toArray;
24286    proto.toObject = toObject;
24287    proto.toDate = toDate;
24288    proto.toISOString = toISOString;
24289    proto.inspect = inspect;
24290    if (typeof Symbol !== 'undefined' && Symbol.for != null) {
24291        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
24292            return 'Moment<' + this.format() + '>';
24293        };
24294    }
24295    proto.toJSON = toJSON;
24296    proto.toString = toString;
24297    proto.unix = unix;
24298    proto.valueOf = valueOf;
24299    proto.creationData = creationData;
24300    proto.eraName = getEraName;
24301    proto.eraNarrow = getEraNarrow;
24302    proto.eraAbbr = getEraAbbr;
24303    proto.eraYear = getEraYear;
24304    proto.year = getSetYear;
24305    proto.isLeapYear = getIsLeapYear;
24306    proto.weekYear = getSetWeekYear;
24307    proto.isoWeekYear = getSetISOWeekYear;
24308    proto.quarter = proto.quarters = getSetQuarter;
24309    proto.month = getSetMonth;
24310    proto.daysInMonth = getDaysInMonth;
24311    proto.week = proto.weeks = getSetWeek;
24312    proto.isoWeek = proto.isoWeeks = getSetISOWeek;
24313    proto.weeksInYear = getWeeksInYear;
24314    proto.weeksInWeekYear = getWeeksInWeekYear;
24315    proto.isoWeeksInYear = getISOWeeksInYear;
24316    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
24317    proto.date = getSetDayOfMonth;
24318    proto.day = proto.days = getSetDayOfWeek;
24319    proto.weekday = getSetLocaleDayOfWeek;
24320    proto.isoWeekday = getSetISODayOfWeek;
24321    proto.dayOfYear = getSetDayOfYear;
24322    proto.hour = proto.hours = getSetHour;
24323    proto.minute = proto.minutes = getSetMinute;
24324    proto.second = proto.seconds = getSetSecond;
24325    proto.millisecond = proto.milliseconds = getSetMillisecond;
24326    proto.utcOffset = getSetOffset;
24327    proto.utc = setOffsetToUTC;
24328    proto.local = setOffsetToLocal;
24329    proto.parseZone = setOffsetToParsedOffset;
24330    proto.hasAlignedHourOffset = hasAlignedHourOffset;
24331    proto.isDST = isDaylightSavingTime;
24332    proto.isLocal = isLocal;
24333    proto.isUtcOffset = isUtcOffset;
24334    proto.isUtc = isUtc;
24335    proto.isUTC = isUtc;
24336    proto.zoneAbbr = getZoneAbbr;
24337    proto.zoneName = getZoneName;
24338    proto.dates = deprecate(
24339        'dates accessor is deprecated. Use date instead.',
24340        getSetDayOfMonth
24341    );
24342    proto.months = deprecate(
24343        'months accessor is deprecated. Use month instead',
24344        getSetMonth
24345    );
24346    proto.years = deprecate(
24347        'years accessor is deprecated. Use year instead',
24348        getSetYear
24349    );
24350    proto.zone = deprecate(
24351        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
24352        getSetZone
24353    );
24354    proto.isDSTShifted = deprecate(
24355        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
24356        isDaylightSavingTimeShifted
24357    );
24358
24359    function createUnix(input) {
24360        return createLocal(input * 1000);
24361    }
24362
24363    function createInZone() {
24364        return createLocal.apply(null, arguments).parseZone();
24365    }
24366
24367    function preParsePostFormat(string) {
24368        return string;
24369    }
24370
24371    var proto$1 = Locale.prototype;
24372
24373    proto$1.calendar = calendar;
24374    proto$1.longDateFormat = longDateFormat;
24375    proto$1.invalidDate = invalidDate;
24376    proto$1.ordinal = ordinal;
24377    proto$1.preparse = preParsePostFormat;
24378    proto$1.postformat = preParsePostFormat;
24379    proto$1.relativeTime = relativeTime;
24380    proto$1.pastFuture = pastFuture;
24381    proto$1.set = set;
24382    proto$1.eras = localeEras;
24383    proto$1.erasParse = localeErasParse;
24384    proto$1.erasConvertYear = localeErasConvertYear;
24385    proto$1.erasAbbrRegex = erasAbbrRegex;
24386    proto$1.erasNameRegex = erasNameRegex;
24387    proto$1.erasNarrowRegex = erasNarrowRegex;
24388
24389    proto$1.months = localeMonths;
24390    proto$1.monthsShort = localeMonthsShort;
24391    proto$1.monthsParse = localeMonthsParse;
24392    proto$1.monthsRegex = monthsRegex;
24393    proto$1.monthsShortRegex = monthsShortRegex;
24394    proto$1.week = localeWeek;
24395    proto$1.firstDayOfYear = localeFirstDayOfYear;
24396    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
24397
24398    proto$1.weekdays = localeWeekdays;
24399    proto$1.weekdaysMin = localeWeekdaysMin;
24400    proto$1.weekdaysShort = localeWeekdaysShort;
24401    proto$1.weekdaysParse = localeWeekdaysParse;
24402
24403    proto$1.weekdaysRegex = weekdaysRegex;
24404    proto$1.weekdaysShortRegex = weekdaysShortRegex;
24405    proto$1.weekdaysMinRegex = weekdaysMinRegex;
24406
24407    proto$1.isPM = localeIsPM;
24408    proto$1.meridiem = localeMeridiem;
24409
24410    function get$1(format, index, field, setter) {
24411        var locale = getLocale(),
24412            utc = createUTC().set(setter, index);
24413        return locale[field](utc, format);
24414    }
24415
24416    function listMonthsImpl(format, index, field) {
24417        if (isNumber(format)) {
24418            index = format;
24419            format = undefined;
24420        }
24421
24422        format = format || '';
24423
24424        if (index != null) {
24425            return get$1(format, index, field, 'month');
24426        }
24427
24428        var i,
24429            out = [];
24430        for (i = 0; i < 12; i++) {
24431            out[i] = get$1(format, i, field, 'month');
24432        }
24433        return out;
24434    }
24435
24436    // ()
24437    // (5)
24438    // (fmt, 5)
24439    // (fmt)
24440    // (true)
24441    // (true, 5)
24442    // (true, fmt, 5)
24443    // (true, fmt)
24444    function listWeekdaysImpl(localeSorted, format, index, field) {
24445        if (typeof localeSorted === 'boolean') {
24446            if (isNumber(format)) {
24447                index = format;
24448                format = undefined;
24449            }
24450
24451            format = format || '';
24452        } else {
24453            format = localeSorted;
24454            index = format;
24455            localeSorted = false;
24456
24457            if (isNumber(format)) {
24458                index = format;
24459                format = undefined;
24460            }
24461
24462            format = format || '';
24463        }
24464
24465        var locale = getLocale(),
24466            shift = localeSorted ? locale._week.dow : 0,
24467            i,
24468            out = [];
24469
24470        if (index != null) {
24471            return get$1(format, (index + shift) % 7, field, 'day');
24472        }
24473
24474        for (i = 0; i < 7; i++) {
24475            out[i] = get$1(format, (i + shift) % 7, field, 'day');
24476        }
24477        return out;
24478    }
24479
24480    function listMonths(format, index) {
24481        return listMonthsImpl(format, index, 'months');
24482    }
24483
24484    function listMonthsShort(format, index) {
24485        return listMonthsImpl(format, index, 'monthsShort');
24486    }
24487
24488    function listWeekdays(localeSorted, format, index) {
24489        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
24490    }
24491
24492    function listWeekdaysShort(localeSorted, format, index) {
24493        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
24494    }
24495
24496    function listWeekdaysMin(localeSorted, format, index) {
24497        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
24498    }
24499
24500    getSetGlobalLocale('en', {
24501        eras: [
24502            {
24503                since: '0001-01-01',
24504                until: +Infinity,
24505                offset: 1,
24506                name: 'Anno Domini',
24507                narrow: 'AD',
24508                abbr: 'AD',
24509            },
24510            {
24511                since: '0000-12-31',
24512                until: -Infinity,
24513                offset: 1,
24514                name: 'Before Christ',
24515                narrow: 'BC',
24516                abbr: 'BC',
24517            },
24518        ],
24519        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
24520        ordinal: function (number) {
24521            var b = number % 10,
24522                output =
24523                    toInt((number % 100) / 10) === 1
24524                        ? 'th'
24525                        : b === 1
24526                        
vendor: 21,432 bytes, lines 24526-25213
24526  ? 'st'
24527                          : b === 2
24528                            ? 'nd'
24529                            : b === 3
24530                              ? 'rd'
24531                              : 'th';
24532            return number + output;
24533        },
24534    });
24535
24536    // Side effect imports
24537
24538    hooks.lang = deprecate(
24539        'moment.lang is deprecated. Use moment.locale instead.',
24540        getSetGlobalLocale
24541    );
24542    hooks.langData = deprecate(
24543        'moment.langData is deprecated. Use moment.localeData instead.',
24544        getLocale
24545    );
24546
24547    var mathAbs = Math.abs;
24548
24549    function abs() {
24550        var data = this._data;
24551
24552        this._milliseconds = mathAbs(this._milliseconds);
24553        this._days = mathAbs(this._days);
24554        this._months = mathAbs(this._months);
24555
24556        data.milliseconds = mathAbs(data.milliseconds);
24557        data.seconds = mathAbs(data.seconds);
24558        data.minutes = mathAbs(data.minutes);
24559        data.hours = mathAbs(data.hours);
24560        data.months = mathAbs(data.months);
24561        data.years = mathAbs(data.years);
24562
24563        return this;
24564    }
24565
24566    function addSubtract$1(duration, input, value, direction) {
24567        var other = createDuration(input, value);
24568
24569        duration._milliseconds += direction * other._milliseconds;
24570        duration._days += direction * other._days;
24571        duration._months += direction * other._months;
24572
24573        return duration._bubble();
24574    }
24575
24576    // supports only 2.0-style add(1, 's') or add(duration)
24577    function add$1(input, value) {
24578        return addSubtract$1(this, input, value, 1);
24579    }
24580
24581    // supports only 2.0-style subtract(1, 's') or subtract(duration)
24582    function subtract$1(input, value) {
24583        return addSubtract$1(this, input, value, -1);
24584    }
24585
24586    function absCeil(number) {
24587        if (number < 0) {
24588            return Math.floor(number);
24589        } else {
24590            return Math.ceil(number);
24591        }
24592    }
24593
24594    function bubble() {
24595        var milliseconds = this._milliseconds,
24596            days = this._days,
24597            months = this._months,
24598            data = this._data,
24599            seconds,
24600            minutes,
24601            hours,
24602            years,
24603            monthsFromDays;
24604
24605        // if we have a mix of positive and negative values, bubble down first
24606        // check: https://github.com/moment/moment/issues/2166
24607        if (
24608            !(
24609                (milliseconds >= 0 && days >= 0 && months >= 0) ||
24610                (milliseconds <= 0 && days <= 0 && months <= 0)
24611            )
24612        ) {
24613            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
24614            days = 0;
24615            months = 0;
24616        }
24617
24618        // The following code bubbles up values, see the tests for
24619        // examples of what that means.
24620        data.milliseconds = milliseconds % 1000;
24621
24622        seconds = absFloor(milliseconds / 1000);
24623        data.seconds = seconds % 60;
24624
24625        minutes = absFloor(seconds / 60);
24626        data.minutes = minutes % 60;
24627
24628        hours = absFloor(minutes / 60);
24629        data.hours = hours % 24;
24630
24631        days += absFloor(hours / 24);
24632
24633        // convert days to months
24634        monthsFromDays = absFloor(daysToMonths(days));
24635        months += monthsFromDays;
24636        days -= absCeil(monthsToDays(monthsFromDays));
24637
24638        // 12 months -> 1 year
24639        years = absFloor(months / 12);
24640        months %= 12;
24641
24642        data.days = days;
24643        data.months = months;
24644        data.years = years;
24645
24646        return this;
24647    }
24648
24649    function daysToMonths(days) {
24650        // 400 years have 146097 days (taking into account leap year rules)
24651        // 400 years have 12 months === 4800
24652        return (days * 4800) / 146097;
24653    }
24654
24655    function monthsToDays(months) {
24656        // the reverse of daysToMonths
24657        return (months * 146097) / 4800;
24658    }
24659
24660    function as(units) {
24661        if (!this.isValid()) {
24662            return NaN;
24663        }
24664        var days,
24665            months,
24666            milliseconds = this._milliseconds;
24667
24668        units = normalizeUnits(units);
24669
24670        if (units === 'month' || units === 'quarter' || units === 'year') {
24671            days = this._days + milliseconds / 864e5;
24672            months = this._months + daysToMonths(days);
24673            switch (units) {
24674                case 'month':
24675                    return months;
24676                case 'quarter':
24677                    return months / 3;
24678                case 'year':
24679                    return months / 12;
24680            }
24681        } else {
24682            // handle milliseconds separately because of floating point math errors (issue #1867)
24683            days = this._days + Math.round(monthsToDays(this._months));
24684            switch (units) {
24685                case 'week':
24686                    return days / 7 + milliseconds / 6048e5;
24687                case 'day':
24688                    return days + milliseconds / 864e5;
24689                case 'hour':
24690                    return days * 24 + milliseconds / 36e5;
24691                case 'minute':
24692                    return days * 1440 + milliseconds / 6e4;
24693                case 'second':
24694                    return days * 86400 + milliseconds / 1000;
24695                // Math.floor prevents floating point math errors here
24696                case 'millisecond':
24697                    return Math.floor(days * 864e5) + milliseconds;
24698                default:
24699                    throw new Error('Unknown unit ' + units);
24700            }
24701        }
24702    }
24703
24704    function makeAs(alias) {
24705        return function () {
24706            return this.as(alias);
24707        };
24708    }
24709
24710    var asMilliseconds = makeAs('ms'),
24711        asSeconds = makeAs('s'),
24712        asMinutes = makeAs('m'),
24713        asHours = makeAs('h'),
24714        asDays = makeAs('d'),
24715        asWeeks = makeAs('w'),
24716        asMonths = makeAs('M'),
24717        asQuarters = makeAs('Q'),
24718        asYears = makeAs('y'),
24719        valueOf$1 = asMilliseconds;
24720
24721    function clone$1() {
24722        return createDuration(this);
24723    }
24724
24725    function get$2(units) {
24726        units = normalizeUnits(units);
24727        return this.isValid() ? this[units + 's']() : NaN;
24728    }
24729
24730    function makeGetter(name) {
24731        return function () {
24732            return this.isValid() ? this._data[name] : NaN;
24733        };
24734    }
24735
24736    var milliseconds = makeGetter('milliseconds'),
24737        seconds = makeGetter('seconds'),
24738        minutes = makeGetter('minutes'),
24739        hours = makeGetter('hours'),
24740        days = makeGetter('days'),
24741        months = makeGetter('months'),
24742        years = makeGetter('years');
24743
24744    function weeks() {
24745        return absFloor(this.days() / 7);
24746    }
24747
24748    var round = Math.round,
24749        thresholds = {
24750            ss: 44, // a few seconds to seconds
24751            s: 45, // seconds to minute
24752            m: 45, // minutes to hour
24753            h: 22, // hours to day
24754            d: 26, // days to month/week
24755            w: null, // weeks to month
24756            M: 11, // months to year
24757        };
24758
24759    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
24760    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
24761        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
24762    }
24763
24764    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
24765        var duration = createDuration(posNegDuration).abs(),
24766            seconds = round(duration.as('s')),
24767            minutes = round(duration.as('m')),
24768            hours = round(duration.as('h')),
24769            days = round(duration.as('d')),
24770            months = round(duration.as('M')),
24771            weeks = round(duration.as('w')),
24772            years = round(duration.as('y')),
24773            a =
24774                (seconds <= thresholds.ss && ['s', seconds]) ||
24775                (seconds < thresholds.s && ['ss', seconds]) ||
24776                (minutes <= 1 && ['m']) ||
24777                (minutes < thresholds.m && ['mm', minutes]) ||
24778                (hours <= 1 && ['h']) ||
24779                (hours < thresholds.h && ['hh', hours]) ||
24780                (days <= 1 && ['d']) ||
24781                (days < thresholds.d && ['dd', days]);
24782
24783        if (thresholds.w != null) {
24784            a =
24785                a ||
24786                (weeks <= 1 && ['w']) ||
24787                (weeks < thresholds.w && ['ww', weeks]);
24788        }
24789        a = a ||
24790            (months <= 1 && ['M']) ||
24791            (months < thresholds.M && ['MM', months]) ||
24792            (years <= 1 && ['y']) || ['yy', years];
24793
24794        a[2] = withoutSuffix;
24795        a[3] = +posNegDuration > 0;
24796        a[4] = locale;
24797        return substituteTimeAgo.apply(null, a);
24798    }
24799
24800    // This function allows you to set the rounding function for relative time strings
24801    function getSetRelativeTimeRounding(roundingFunction) {
24802        if (roundingFunction === undefined) {
24803            return round;
24804        }
24805        if (typeof roundingFunction === 'function') {
24806            round = roundingFunction;
24807            return true;
24808        }
24809        return false;
24810    }
24811
24812    // This function allows you to set a threshold for relative time strings
24813    function getSetRelativeTimeThreshold(threshold, limit) {
24814        if (thresholds[threshold] === undefined) {
24815            return false;
24816        }
24817        if (limit === undefined) {
24818            return thresholds[threshold];
24819        }
24820        thresholds[threshold] = limit;
24821        if (threshold === 's') {
24822            thresholds.ss = limit - 1;
24823        }
24824        return true;
24825    }
24826
24827    function humanize(argWithSuffix, argThresholds) {
24828        if (!this.isValid()) {
24829            return this.localeData().invalidDate();
24830        }
24831
24832        var withSuffix = false,
24833            th = thresholds,
24834            locale,
24835            output;
24836
24837        if (typeof argWithSuffix === 'object') {
24838            argThresholds = argWithSuffix;
24839            argWithSuffix = false;
24840        }
24841        if (typeof argWithSuffix === 'boolean') {
24842            withSuffix = argWithSuffix;
24843        }
24844        if (typeof argThresholds === 'object') {
24845            th = Object.assign({}, thresholds, argThresholds);
24846            if (argThresholds.s != null && argThresholds.ss == null) {
24847                th.ss = argThresholds.s - 1;
24848            }
24849        }
24850
24851        locale = this.localeData();
24852        output = relativeTime$1(this, !withSuffix, th, locale);
24853
24854        if (withSuffix) {
24855            output = locale.pastFuture(+this, output);
24856        }
24857
24858        return locale.postformat(output);
24859    }
24860
24861    var abs$1 = Math.abs;
24862
24863    function sign(x) {
24864        return (x > 0) - (x < 0) || +x;
24865    }
24866
24867    function toISOString$1() {
24868        // for ISO strings we do not use the normal bubbling rules:
24869        //  * milliseconds bubble up until they become hours
24870        //  * days do not bubble at all
24871        //  * months bubble up until they become years
24872        // This is because there is no context-free conversion between hours and days
24873        // (think of clock changes)
24874        // and also not between days and months (28-31 days per month)
24875        if (!this.isValid()) {
24876            return this.localeData().invalidDate();
24877        }
24878
24879        var seconds = abs$1(this._milliseconds) / 1000,
24880            days = abs$1(this._days),
24881            months = abs$1(this._months),
24882            minutes,
24883            hours,
24884            years,
24885            s,
24886            total = this.asSeconds(),
24887            totalSign,
24888            ymSign,
24889            daysSign,
24890            hmsSign;
24891
24892        if (!total) {
24893            // this is the same as C#'s (Noda) and python (isodate)...
24894            // but not other JS (goog.date)
24895            return 'P0D';
24896        }
24897
24898        // 3600 seconds -> 60 minutes -> 1 hour
24899        minutes = absFloor(seconds / 60);
24900        hours = absFloor(minutes / 60);
24901        seconds %= 60;
24902        minutes %= 60;
24903
24904        // 12 months -> 1 year
24905        years = absFloor(months / 12);
24906        months %= 12;
24907
24908        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
24909        s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
24910
24911        totalSign = total < 0 ? '-' : '';
24912        ymSign = sign(this._months) !== sign(total) ? '-' : '';
24913        daysSign = sign(this._days) !== sign(total) ? '-' : '';
24914        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
24915
24916        return (
24917            totalSign +
24918            'P' +
24919            (years ? ymSign + years + 'Y' : '') +
24920            (months ? ymSign + months + 'M' : '') +
24921            (days ? daysSign + days + 'D' : '') +
24922            (hours || minutes || seconds ? 'T' : '') +
24923            (hours ? hmsSign + hours + 'H' : '') +
24924            (minutes ? hmsSign + minutes + 'M' : '') +
24925            (seconds ? hmsSign + s + 'S' : '')
24926        );
24927    }
24928
24929    var proto$2 = Duration.prototype;
24930
24931    proto$2.isValid = isValid$1;
24932    proto$2.abs = abs;
24933    proto$2.add = add$1;
24934    proto$2.subtract = subtract$1;
24935    proto$2.as = as;
24936    proto$2.asMilliseconds = asMilliseconds;
24937    proto$2.asSeconds = asSeconds;
24938    proto$2.asMinutes = asMinutes;
24939    proto$2.asHours = asHours;
24940    proto$2.asDays = asDays;
24941    proto$2.asWeeks = asWeeks;
24942    proto$2.asMonths = asMonths;
24943    proto$2.asQuarters = asQuarters;
24944    proto$2.asYears = asYears;
24945    proto$2.valueOf = valueOf$1;
24946    proto$2._bubble = bubble;
24947    proto$2.clone = clone$1;
24948    proto$2.get = get$2;
24949    proto$2.milliseconds = milliseconds;
24950    proto$2.seconds = seconds;
24951    proto$2.minutes = minutes;
24952    proto$2.hours = hours;
24953    proto$2.days = days;
24954    proto$2.weeks = weeks;
24955    proto$2.months = months;
24956    proto$2.years = years;
24957    proto$2.humanize = humanize;
24958    proto$2.toISOString = toISOString$1;
24959    proto$2.toString = toISOString$1;
24960    proto$2.toJSON = toISOString$1;
24961    proto$2.locale = locale;
24962    proto$2.localeData = localeData;
24963
24964    proto$2.toIsoString = deprecate(
24965        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
24966        toISOString$1
24967    );
24968    proto$2.lang = lang;
24969
24970    // FORMATTING
24971
24972    addFormatToken('X', 0, 0, 'unix');
24973    addFormatToken('x', 0, 0, 'valueOf');
24974
24975    // PARSING
24976
24977    addRegexToken('x', matchSigned);
24978    addRegexToken('X', matchTimestamp);
24979    addParseToken('X', function (input, array, config) {
24980        config._d = new Date(parseFloat(input) * 1000);
24981    });
24982    addParseToken('x', function (input, array, config) {
24983        config._d = new Date(toInt(input));
24984    });
24985
24986    //! moment.js
24987
24988    hooks.version = '2.30.1';
24989
24990    setHookCallback(createLocal);
24991
24992    hooks.fn = proto;
24993    hooks.min = min;
24994    hooks.max = max;
24995    hooks.now = now;
24996    hooks.utc = createUTC;
24997    hooks.unix = createUnix;
24998    hooks.months = listMonths;
24999    hooks.isDate = isDate;
25000    hooks.locale = getSetGlobalLocale;
25001    hooks.invalid = createInvalid;
25002    hooks.duration = createDuration;
25003    hooks.isMoment = isMoment;
25004    hooks.weekdays = listWeekdays;
25005    hooks.parseZone = createInZone;
25006    hooks.localeData = getLocale;
25007    hooks.isDuration = isDuration;
25008    hooks.monthsShort = listMonthsShort;
25009    hooks.weekdaysMin = listWeekdaysMin;
25010    hooks.defineLocale = defineLocale;
25011    hooks.updateLocale = updateLocale;
25012    hooks.locales = listLocales;
25013    hooks.weekdaysShort = listWeekdaysShort;
25014    hooks.normalizeUnits = normalizeUnits;
25015    hooks.relativeTimeRounding = getSetRelativeTimeRounding;
25016    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
25017    hooks.calendarFormat = getCalendarFormat;
25018    hooks.prototype = proto;
25019
25020    // currently HTML5 input type only supports 24-hour formats
25021    hooks.HTML5_FMT = {
25022        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
25023        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
25024        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
25025        DATE: 'YYYY-MM-DD', // <input type="date" />
25026        TIME: 'HH:mm', // <input type="time" />
25027        TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
25028        TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
25029        WEEK: 'GGGG-[W]WW', // <input type="week" />
25030        MONTH: 'YYYY-MM', // <input type="month" />
25031    };
25032
25033    return hooks;
25034
25035})));
25036
25037
25038/***/ }),
25039
25040/***/ 5096:
25041/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25042
25043//! moment.js locale configuration
25044//! locale : Turkish [tr]
25045//! authors : Erhan Gundogan : https://github.com/erhangundogan,
25046//!           Burak Yiğit Kaya: https://github.com/BYK
25047
25048;(function (global, factory) {
25049    true ? factory(__webpack_require__(5093)) :
25050   0
25051}(this, (function (moment) { 'use strict';
25052
25053    //! moment.js locale configuration
25054
25055    var suffixes = {
25056        1: "'inci",
25057        5: "'inci",
25058        8: "'inci",
25059        70: "'inci",
25060        80: "'inci",
25061        2: "'nci",
25062        7: "'nci",
25063        20: "'nci",
25064        50: "'nci",
25065        3: "'üncü",
25066        4: "'üncü",
25067        100: "'üncü",
25068        6: "'ncı",
25069        9: "'uncu",
25070        10: "'uncu",
25071        30: "'uncu",
25072        60: "'ıncı",
25073        90: "'ıncı",
25074    };
25075
25076    var tr = moment.defineLocale('tr', {
25077        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
25078            '_'
25079        ),
25080        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
25081        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
25082            '_'
25083        ),
25084        weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),
25085        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
25086        meridiem: function (hours, minutes, isLower) {
25087            if (hours < 12) {
25088                return isLower ? 'öö' : 'ÖÖ';
25089            } else {
25090                return isLower ? 'ös' : 'ÖS';
25091            }
25092        },
25093        meridiemParse: /öö|ÖÖ|ös|ÖS/,
25094        isPM: function (input) {
25095            return input === 'ös' || input === 'ÖS';
25096        },
25097        longDateFormat: {
25098            LT: 'HH:mm',
25099            LTS: 'HH:mm:ss',
25100            L: 'DD.MM.YYYY',
25101            LL: 'D MMMM YYYY',
25102            LLL: 'D MMMM YYYY HH:mm',
25103            LLLL: 'dddd, D MMMM YYYY HH:mm',
25104        },
25105        calendar: {
25106            sameDay: '[bugün saat] LT',
25107            nextDay: '[yarın saat] LT',
25108            nextWeek: '[gelecek] dddd [saat] LT',
25109            lastDay: '[dün] LT',
25110            lastWeek: '[geçen] dddd [saat] LT',
25111            sameElse: 'L',
25112        },
25113        relativeTime: {
25114            future: '%s sonra',
25115            past: '%s önce',
25116            s: 'birkaç saniye',
25117            ss: '%d saniye',
25118            m: 'bir dakika',
25119            mm: '%d dakika',
25120            h: 'bir saat',
25121            hh: '%d saat',
25122            d: 'bir gün',
25123            dd: '%d gün',
25124            w: 'bir hafta',
25125            ww: '%d hafta',
25126            M: 'bir ay',
25127            MM: '%d ay',
25128            y: 'bir yıl',
25129            yy: '%d yıl',
25130        },
25131        ordinal: function (number, period) {
25132            switch (period) {
25133                case 'd':
25134                case 'D':
25135                case 'Do':
25136                case 'DD':
25137                    return number;
25138                default:
25139                    if (number === 0) {
25140                        // special case for zero
25141                        return number + "'ıncı";
25142                    }
25143                    var a = number % 10,
25144                        b = (number % 100) - a,
25145                        c = number >= 100 ? 100 : null;
25146                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);
25147            }
25148        },
25149        week: {
25150            dow: 1, // Monday is the first day of the week.
25151            doy: 7, // The week that contains Jan 7th is the first week of the year.
25152        },
25153    });
25154
25155    return tr;
25156
25157})));
25158
25159
25160/***/ }),
25161
25162/***/ 5177:
25163/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25164
25165//! moment.js locale configuration
25166//! locale : Afrikaans [af]
25167//! author : Werner Mollentze : https://github.com/wernerm
25168
25169;(function (global, factory) {
25170    true ? factory(__webpack_require__(5093)) :
25171   0
25172}(this, (function (moment) { 'use strict';
25173
25174    //! moment.js locale configuration
25175
25176    var af = moment.defineLocale('af', {
25177        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
25178            '_'
25179        ),
25180        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
25181        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
25182            '_'
25183        ),
25184        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
25185        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
25186        meridiemParse: /vm|nm/i,
25187        isPM: function (input) {
25188            return /^nm$/i.test(input);
25189        },
25190        meridiem: function (hours, minutes, isLower) {
25191            if (hours < 12) {
25192                return isLower ? 'vm' : 'VM';
25193            } else {
25194                return isLower ? 'nm' : 'NM';
25195            }
25196        },
25197        longDateFormat: {
25198            LT: 'HH:mm',
25199            LTS: 'HH:mm:ss',
25200            L: 'DD/MM/YYYY',
25201            LL: 'D MMMM YYYY',
25202            LLL: 'D MMMM YYYY HH:mm',
25203            LLLL: 'dddd, D MMMM YYYY HH:mm',
25204        },
25205        calendar: {
25206            sameDay: '[Vandag om] LT',
25207            nextDay: '[Môre om] LT',
25208            nextWeek: 'dddd [om] LT',
25209            lastDay: '[Gister om] LT',
25210            lastWeek: '[Laas] dddd [om] LT',
25211            sameElse: 'L',
25212        },
25213        relativeTime: {
25214            future: 'oor %s',
25215            past: '%s gelede',
25216            s: "'n paar sekondes",
25217            ss: '%d sekondes',
25218            m: "'n minuut",
25219            mm: '%d minute',
25220            h: "'n uur",
25221            hh: '%d ure',
25222            d: "'n dag",
25223            dd: '%d dae',
25224            M: "'n maand",
25225            MM: '%d maande',
25226            y: "'n jaar",
25227            yy: '%d jaar',
25228        },
25229        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
25230        ordinal: function (number) {
25231            return (
25232                number +
25233                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
25234            ); // Thanks to Joris Röling : https://github.com/jjupiter
25235        },
25236        week: {
25237            dow: 1, // Maandag is die eerste dag van die week.
25238            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
25239        },
25240    });
25241
25242    return af;
25243
25244})));
25245
25246
25247/***/ }),
25248
25249/***/ 5358:
25250/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
25251
25252var map = {
25253	"./af": 5177,
25254	"./af.js": 5177,
25255	"./ar": 1509,
25256	"./ar-dz": 1488,
25257	"./ar-dz.js": 1488,
25258	"./ar-kw": 8676,
25259	"./ar-kw.js": 8676,
25260	"./ar-ly": 2353,
25261	"./ar-ly.js": 2353,
25262	"./ar-ma": 4496,
25263	"./ar-ma.js": 4496,
25264	"./ar-ps": 6947,
25265	"./ar-ps.js": 6947,
25266	"./ar-sa": 2682,
25267	"./ar-sa.js": 2682,
25268	"./ar-tn": 9756,
25269	"./ar-tn.js": 9756,
25270	"./ar.js": 1509,
25271	"./az": 5533,
25272	"./az.js": 5533,
25273	"./be": 8959,
25274	"./be.js": 8959,
25275	"./bg": 7777,
25276	"./bg.js": 7777,
25277	"./bm": 4903,
25278	"./bm.js": 4903,
25279	"./bn": 1290,
25280	"./bn-bd": 7357,
25281	"./bn-bd.js": 7357,
25282	"./bn.js": 1290,
25283	"./bo": 1545,
25284	"./bo.js": 1545,
25285	"./br": 1470,
25286	"./br.js": 1470,
25287	"./bs": 4429,
25288	"./bs.js": 4429,
25289	"./ca": 7306,
25290	"./ca.js": 7306,
25291	"./cs": 6464,
25292	"./cs.js": 6464,
25293	"./cv": 3635,
25294	"./cv.js": 3635,
25295	"./cy": 4226,
25296	"./cy.js": 4226,
25297	"./da": 3601,
25298	"./da.js": 3601,
25299	"./de": 7853,
25300	"./de-at": 6111,
25301	"./de-at.js": 6111,
25302	"./de-ch": 4697,
25303	"./de-ch.js": 4697,
25304	"./de.js": 7853,
25305	"./dv": 708,
25306	"./dv.js": 708,
25307	"./el": 4691,
25308	"./el.js": 4691,
25309	"./en-au": 3872,
25310	"./en-au.js": 3872,
25311	"./en-ca": 8298,
25312	"./en-ca.js": 8298,
25313	"./en-gb": 6195,
25314	"./en-gb.js": 6195,
25315	"./en-ie": 6584,
25316	"./en-ie.js": 6584,
25317	"./en-il": 5543,
25318	"./en-il.js": 5543,
25319	"./en-in": 9033,
25320	"./en-in.js": 9033,
25321	"./en-nz": 9402,
25322	"./en-nz.js": 9402,
25323	"./en-sg": 3004,
25324	"./en-sg.js": 3004,
25325	"./eo": 2934,
25326	"./eo.js": 2934,
25327	"./es": 7650,
25328	"./es-do": 838,
25329	"./es-do.js": 838,
25330	"./es-mx": 7730,
25331	"./es-mx.js": 7730,
25332	"./es-us": 6575,
25333	"./es-us.js": 6575,
25334	"./es.js": 7650,
25335	"./et": 3035,
25336	"./et.js": 3035,
25337	"./eu": 3508,
25338	"./eu.js": 3508,
25339	"./fa": 119,
25340	"./fa.js": 119,
25341	"./fi": 527,
25342	"./fi.js": 527,
25343	"./fil": 5995,
25344	"./fil.js": 5995,
25345	"./fo": 2477,
25346	"./fo.js": 2477,
25347	"./fr": 5498,
25348	"./fr-ca": 6435,
25349	"./fr-ca.js": 6435,
25350	"./fr-ch": 7892,
25351	"./fr-ch.js": 7892,
25352	"./fr.js": 5498,
25353	"./fy": 7071,
25354	"./fy.js": 7071,
25355	"./ga": 1734,
25356	"./ga.js": 1734,
25357	"./gd": 217,
25358	"./gd.js": 217,
25359	"./gl": 7329,
25360	"./gl.js": 7329,
25361	"./gom-deva": 2124,
25362	"./gom-deva.js": 2124,
25363	"./gom-latn": 3383,
25364	"./gom-latn.js": 3383,
25365	"./gu": 5050,
25366	"./gu.js": 5050,
25367	"./he": 1713,
25368	"./he.js": 1713,
25369	"./hi": 3861,
25370	"./hi.js": 3861,
25371	"./hr": 6308,
25372	"./hr.js": 6308,
25373	"./hu": 609,
25374	"./hu.js": 609,
25375	"./hy-am": 7160,
25376	"./hy-am.js": 7160,
25377	"./id": 4063,
25378	"./id.js": 4063,
25379	"./is": 9374,
25380	"./is.js": 9374,
25381	"./it": 8383,
25382	"./it-ch": 1827,
25383	"./it-ch.js": 1827,
25384	"./it.js": 8383,
25385	"./ja": 3827,
25386	"./ja.js": 3827,
25387	"./jv": 9722,
25388	"./jv.js": 9722,
25389	"./ka": 1794,
25390	"./ka.js": 1794,
25391	"./kk": 7088,
25392	"./kk.js": 7088,
25393	"./km": 6870,
25394	"./km.js": 6870,
25395	"./kn": 4451,
25396	"./kn.js": 4451,
25397	"./ko": 3164,
25398	"./ko.js": 3164,
25399	"./ku": 8174,
25400	"./ku-kmr": 6181,
25401	"./ku-kmr.js": 6181,
25402	"./ku.js": 8174,
25403	"./ky": 8474,
25404	"./ky.js": 8474,
25405	"./lb": 9680,
25406	"./lb.js": 9680,
25407	"./lo": 5867,
25408	"./lo.js": 5867,
25409	"./lt": 5766,
25410	"./lt.js": 5766,
25411	"./lv": 9532,
25412	"./lv.js": 9532,
25413	"./me": 8076,
25414	"./me.js": 8076,
25415	"./mi": 1848,
25416	"./mi.js": 1848,
25417	"./mk": 306,
25418	"./mk.js": 306,
25419	"./ml": 3739,
25420	"./ml.js": 3739,
25421	"./mn": 9053,
25422	"./mn.js": 9053,
25423	"./mr": 6169,
25424	"./mr.js": 6169,
25425	"./ms": 3386,
25426	"./ms-my": 2297,
25427	"./ms-my.js": 2297,
25428	"./ms.js": 3386,
25429	"./mt": 7075,
25430	"./mt.js": 7075,
25431	"./my": 2264,
25432	"./my.js": 2264,
25433	"./nb": 2274,
25434	"./nb.js": 2274,
25435	"./ne": 8235,
25436	"./ne.js": 8235,
25437	"./nl": 2572,
25438	"./nl-be": 3784,
25439	"./nl-be.js": 3784,
25440	"./nl.js": 2572,
25441	"./nn": 4566,
25442	"./nn.js": 4566,
25443	"./oc-lnc": 9330,
25444	"./oc-lnc.js": 9330,
25445	"./pa-in": 9849,
25446	"./pa-in.js": 9849,
25447	"./pl": 4418,
25448	"./pl.js": 4418,
25449	"./pt": 9834,
25450	"./pt-br": 8303,
25451	"./pt-br.js": 8303,
25452	"./pt.js": 9834,
25453	"./ro": 4457,
25454	"./ro.js": 4457,
25455	"./ru": 2271,
25456	"./ru.js": 2271,
25457	"./sd": 1221,
25458	"./sd.js": 1221,
25459	"./se": 3478,
25460	"./se.js": 3478,
25461	"./si": 7538,
25462	"./si.js": 7538,
25463	"./sk": 5784,
25464	"./sk.js": 5784,
25465	"./sl": 6637,
25466	"./sl.js": 6637,
25467	"./sq": 6794,
25468	"./sq.js": 6794,
25469	"./sr": 5719,
25470	"./sr-cyrl": 3322,
25471	"./sr-cyrl.js": 3322,
25472	"./sr.js": 5719,
25473	"./ss": 6000,
25474	"./ss.js": 6000,
25475	"./sv": 1011,
25476	"./sv.js": 1011,
25477	"./sw": 748,
25478	"./sw.js": 748,
25479	"./ta": 1025,
25480	"./ta.js": 1025,
25481	"./te": 1885,
25482	"./te.js": 1885,
25483	"./tet": 8861,
25484	"./tet.js": 8861,
25485	"./tg": 6571,
25486	"./tg.js": 6571,
25487	"./th": 5802,
25488	"./th.js": 5802,
25489	"./tk": 9527,
25490	"./tk.js": 9527,
25491	"./tl-ph": 9231,
25492	"./tl-ph.js": 9231,
25493	"./tlh": 1052,
25494	"./tlh.js": 1052,
25495	"./tr": 5096,
25496	"./tr.js": 5096,
25497	"./tzl": 9846,
25498	"./tzl.js": 9846,
25499	"./tzm": 1765,
25500	"./tzm-latn": 7711,
25501	"./tzm-latn.js": 7711,
25502	"./tzm.js": 1765,
25503	"./ug-cn": 8414,
25504	"./ug-cn.js": 8414,
25505	"./uk": 6618,
25506	"./uk.js": 6618,
25507	"./ur": 158,
25508	"./ur.js": 158,
25509	"./uz": 7609,
25510	"./uz-latn": 2475,
25511	"./uz-latn.js": 2475,
25512	"./uz.js": 7609,
25513	"./vi": 1135,
25514	"./vi.js": 1135,
25515	"./x-pseudo": 4051,
25516	"./x-pseudo.js": 4051,
25517	"./yo": 2218,
25518	"./yo.js": 2218,
25519	"./zh-cn": 2648,
25520	"./zh-cn.js": 2648,
25521	"./zh-hk": 1632,
25522	"./zh-hk.js": 1632,
25523	"./zh-mo": 1541,
25524	"./zh-mo.js": 1541,
25525	"./zh-tw": 304,
25526	"./zh-tw.js": 304
25527};
25528
25529
25530function webpackContext(req) {
25531	var id = webpackContextResolve(req);
25532	return __webpack_require__(id);
25533}
25534function webpackContextResolve(req) {
25535	if(!__webpack_require__.o(map, req)) {
25536		var e = new Error("Cannot find module '" + req + "'");
25537		e.code = 'MODULE_NOT_FOUND';
25538		throw e;
25539	}
25540	return map[req];
25541}
25542webpackContext.keys = function webpackContextKeys() {
25543	return Object.keys(map);
25544};
25545webpackContext.resolve = webpackContextResolve;
25546module.exports = webpackContext;
25547webpackContext.id = 5358;
25548
25549/***/ }),
25550
25551/***/ 5498:
25552/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25553
25554//! moment.js locale configuration
25555//! locale : French [fr]
25556//! author : John Fischer : https://github.com/jfroffice
25557
25558;(function (global, factory) {
25559    true ? factory(__webpack_require__(5093)) :
25560   0
25561}(this, (function (moment) { 'use strict';
25562
25563    //! moment.js locale configuration
25564
25565    var monthsStrictRegex =
25566            /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
25567        monthsShortStrictRegex =
25568            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
25569        monthsRegex =
25570            /(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,
25571        monthsParse = [
25572            /^janv/i,
25573            /^févr/i,
25574            /^mars/i,
25575            /^avr/i,
25576            /^mai/i,
25577            /^juin/i,
25578            /^juil/i,
25579            /^août/i,
25580            /^sept/i,
25581            /^oct/i,
25582            /^nov/i,
25583            /^déc/i,
25584        ];
25585
25586    var fr = moment.defineLocale('fr', {
25587        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
25588            '_'
25589        ),
25590        monthsShort:
25591            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
25592                '_'
25593            ),
25594        monthsRegex: monthsRegex,
25595        monthsShortRegex: monthsRegex,
25596        monthsStrictRegex: monthsStrictRegex,
25597        monthsShortStrictRegex: monthsShortStrictRegex,
25598        monthsParse: monthsParse,
25599        longMonthsParse: monthsParse,
25600        shortMonthsParse: monthsParse,
25601        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
25602        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
25603        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
25604        weekdaysParseExact: true,
25605        longDateFormat: {
25606            LT: 'HH:mm',
25607            LTS: 'HH:mm:ss',
25608            L: 'DD/MM/YYYY',
25609            LL: 'D MMMM YYYY',
25610            LLL: 'D MMMM YYYY HH:mm',
25611            LLLL: 'dddd D MMMM YYYY HH:mm',
25612        },
25613        calendar: {
25614            sameDay: '[Aujourd’hui à] LT',
25615            nextDay: '[Demain à] LT',
25616            nextWeek: 'dddd [à] LT',
25617            lastDay: '[Hier à] LT',
25618            lastWeek: 'dddd [dernier à] LT',
25619            sameElse: 'L',
25620        },
25621        relativeTime: {
25622            future: 'dans %s',
25623            past: 'il y a %s',
25624            s: 'quelques secondes',
25625            ss: '%d secondes',
25626            m: 'une minute',
25627            mm: '%d minutes',
25628            h: 'une heure',
25629            hh: '%d heures',
25630            d: 'un jour',
25631            dd: '%d jours',
25632            w: 'une semaine',
25633            ww: '%d semaines',
25634            M: 'un mois',
25635            MM: '%d mois',
25636            y: 'un an',
25637            yy: '%d ans',
25638        },
25639        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
25640        ordinal: function (number, period) {
25641            switch (period) {
25642                // TODO: Return 'e' when day of month > 1. Move this case inside
25643                // block for masculine words below.
25644                // See https://github.com/moment/moment/issues/3375
25645                case 'D':
25646                    return number + (number === 1 ? 'er' : '');
25647
25648                // Words with masculine grammatical gender: mois, trimestre, jour
25649                default:
25650                case 'M':
25651                case 'Q':
25652                case 'DDD':
25653                case 'd':
25654                    return number + (number === 1 ? 'er' : 'e');
25655
25656                // Words with feminine grammatical gender: semaine
25657                case 'w':
25658                case 'W':
25659                    return number + (number === 1 ? 're' : 'e');
25660            }
25661        },
25662        week: {
25663            dow: 1, // Monday is the first day of the week.
25664            doy: 4, // The week that contains Jan 4th is the first week of the year.
25665        },
25666    });
25667
25668    return fr;
25669
25670})));
25671
25672
25673/***/ }),
25674
25675/***/ 5533:
25676/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25677
25678//! moment.js locale configuration
25679//! locale : Azerbaijani [az]
25680//! author : topchiyev : https://github.com/topchiyev
25681
25682;(function (global, factory) {
25683    true ? factory(__webpack_require__(5093)) :
25684   0
25685}(this, (function (moment) { 'use strict';
25686
25687    //! moment.js locale configuration
25688
25689    var suffixes = {
25690        1: '-inci',
25691        5: '-inci',
25692        8: '-inci',
25693        70: '-inci',
25694        80: '-inci',
25695        2: '-nci',
25696        7: '-nci',
25697        20: '-nci',
25698        50: '-nci',
25699        3: '-üncü',
25700        4: '-üncü',
25701        100: '-üncü',
25702        6: '-ncı',
25703        9: '-uncu',
25704        10: '-uncu',
25705        30: '-uncu',
25706        60: '-ıncı',
25707        90: '-ıncı',
25708    };
25709
25710    var az = moment.defineLocale('az', {
25711        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
25712            '_'
25713        ),
25714        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
25715        weekdays:
25716            'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
25717                '_'
25718            ),
25719        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
25720        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
25721        weekdaysParseExact: true,
25722        longDateFormat: {
25723            LT: 'HH:mm',
25724            LTS: 'HH:mm:ss',
25725            L: 'DD.MM.YYYY',
25726            LL: 'D MMMM YYYY',
25727            LLL: 'D MMMM YYYY HH:mm',
25728            LLLL: 'dddd, D MMMM YYYY HH:mm',
25729        },
25730        calendar: {
25731            sameDay: '[bugün saat] LT',
25732            nextDay: '[sabah saat] LT',
25733            nextWeek: '[gələn həftə] dddd [saat] LT',
25734            lastDay: '[dünən] LT',
25735            lastWeek: '[keçən həftə] dddd [saat] LT',
25736            sameElse: 'L',
25737        },
25738        relativeTime: {
25739            future: '%s sonra',
25740            past: '%s əvvəl',
25741            s: 'bir neçə saniyə',
25742            ss: '%d saniyə',
25743            m: 'bir dəqiqə',
25744            mm: '%d dəqiqə',
25745            h: 'bir saat',
25746            hh: '%d saat',
25747            d: 'bir gün',
25748            dd: '%d gün',
25749            M: 'bir ay',
25750            MM: '%d ay',
25751            y: 'bir il',
25752            yy: '%d il',
25753        },
25754        meridiemParse: /gecə|səhər|gündüz|axşam/,
25755        isPM: function (input) {
25756            return /^(gündüz|axşam)$/.test(input);
25757        },
25758        meridiem: function (hour, minute, isLower) {
25759            if (hour < 4) {
25760                return 'gecə';
25761            } else if (hour < 12) {
25762                return 'səhər';
25763            } else if (hour < 17) {
25764                return 'gündüz';
25765            } else {
25766                return 'axşam';
25767            }
25768        },
25769        dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
25770        ordinal: function (number) {
25771            if (number === 0) {
25772                // special case for zero
25773                return number + '-ıncı';
25774            }
25775            var a = number % 10,
25776                b = (number % 100) - a,
25777                c = number >= 100 ? 100 : null;
25778            return number + (suffixes[a] || suffixes[b] || suffixes[c]);
25779        },
25780        week: {
25781            dow: 1, // Monday is the first day of the week.
25782            doy: 7, // The week that contains Jan 7th is the first week of the year.
25783        },
25784    });
25785
25786    return az;
25787
25788})));
25789
25790
25791/***/ }),
25792
25793/***/ 5543:
25794/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25795
25796//! moment.js locale configuration
25797//! locale : English (Israel) [en-il]
25798//! author : Chris Gedrim : https://github.com/chrisgedrim
25799
25800;(function (global, factory) {
25801    true ? factory(__webpack_require__(5093)) :
25802   0
25803}(this, (function (moment) { 'use strict';
25804
25805    //! moment.js locale configuration
25806
25807    var enIl = moment.defineLocale('en-il', {
25808        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
25809            '_'
25810        ),
25811        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
25812        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
25813            '_'
25814        ),
25815        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
25816        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
25817        longDateFormat: {
25818            LT: 'HH:mm',
25819            LTS: 'HH:mm:ss',
25820            L: 'DD/MM/YYYY',
25821            LL: 'D MMMM YYYY',
25822            LLL: 'D MMMM YYYY HH:mm',
25823            LLLL: 'dddd, D MMMM YYYY HH:mm',
25824        },
25825        calendar: {
25826            sameDay: '[Today at] LT',
25827            nextDay: '[Tomorrow at] LT',
25828            nextWeek: 'dddd [at] LT',
25829            lastDay: '[Yesterday at] LT',
25830            lastWeek: '[Last] dddd [at] LT',
25831            sameElse: 'L',
25832        },
25833        relativeTime: {
25834            future: 'in %s',
25835            past: '%s ago',
25836            s: 'a few seconds',
25837            ss: '%d seconds',
25838            m: 'a minute',
25839            mm: '%d minutes',
25840            h: 'an hour',
25841            hh: '%d hours',
25842            d: 'a day',
25843            dd: '%d days',
25844            M: 'a month',
25845            MM: '%d months',
25846            y: 'a year',
25847            yy: '%d years',
25848        },
25849        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
25850        ordinal: function (number) {
25851            var b = number % 10,
25852                output =
25853                    ~~((number % 100) / 10) === 1
25854                        ? 'th'
25855                        : b === 1
25856                          ? 'st'
25857                          : b === 2
25858                            ? 'nd'
25859                            : b === 3
25860                              ? 'rd'
25861                              : 'th';
25862            return number + output;
25863        },
25864    });
25865
25866    return enIl;
25867
25868})));
25869
25870
25871/***/ }),
25872
25873/***/ 5719:
25874/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
25875
25876//! moment.js locale configuration
25877//! locale : Serbian [sr]
25878//! author : Milan Janačković<[email protected]> : https://github.com/milan-j
25879//! author : Stefan Crnjaković <[email protected]> : https://github.com/crnjakovic
25880
25881;(function (global, factory) {
25882    true ? factory(__webpack_require__(5093)) :
25883   0
25884}(this, (function (moment) { 'use strict';
25885
25886    //! moment.js locale configuration
25887
25888    var translator = {
25889        words: {
25890            //Different grammatical cases
25891            ss: ['sekunda', 'sekunde', 'sekundi'],
25892            m: ['jedan minut', 'jednog minuta'],
25893            mm: ['minut', 'minuta', 'minuta'],
25894            h: ['jedan sat', 'jednog sata'],
25895            hh: ['sat', 'sata', 'sati'],
25896            d: ['jedan dan', 'jednog dana'],
25897            dd: ['dan', 'dana', 'dana'],
25898            M: ['jedan mesec', 'jednog meseca'],
25899            MM: ['mesec', 'meseca', 'meseci'],
25900            y: ['jednu godinu', 'jedne godine'],
25901            yy: ['godinu', 'godine', 'godina'],
25902        },
25903        correctGrammaticalCase: function (number, wordKey) {
25904            if (
25905                number % 10 >= 1 &&
25906                number % 10 <= 4 &&
25907                (number % 100 < 10 || number % 100 >= 20)
25908            ) {
25909                return number % 10 === 1 ? wordKey[0] : wordKey[1];
25910            }
25911            return wordKey[2];
25912        },
25913        translate: function (number, withoutSuffix, key, isFuture) {
25914            var wordKey = translator.words[key],
25915                word;
25916
25917            if (key.length === 1) {
25918                // Nominativ
25919                if (key === 'y' && withoutSuffix) return 'jedna godina';
25920                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
25921            }
25922
25923            word = translator.correctGrammaticalCase(number, wordKey);
25924            // Nominativ
25925            if (key === 'yy' && withoutSuffix && word === 'godinu') {
25926                return number + ' godina';
25927            }
25928
25929            return number + ' ' + word;
25930        },
25931    };
25932
25933    var sr = moment.defineLocale('sr', {
25934        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
25935            '_'
25936        ),
25937        monthsShort:
25938            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
25939        monthsParseExact: true,
25940        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
25941            '_'
25942        ),
25943        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
25944        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
25945        weekdaysParseExact: true,
25946        longDateFormat: {
25947            LT: 'H:mm',
25948            LTS: 'H:mm:ss',
25949            L: 'D. M. YYYY.',
25950            LL: 'D. MMMM YYYY.',
25951            LLL: 'D. MMMM YYYY. H:mm',
25952            LLLL: 'dddd, D. MMMM YYYY. H:mm',
25953        },
25954        calendar: {
25955            sameDay: '[danas u] LT',
25956            nextDay: '[sutra u] LT',
25957            nextWeek: function () {
25958                switch (this.day()) {
25959                    case 0:
25960                        return '[u] [nedelju] [u] LT';
25961                    case 3:
25962                        return '[u] [sredu] [u] LT';
25963                    case 6:
25964                        return '[u] [subotu] [u] LT';
25965                    case 1:
25966                    case 2:
25967                    case 4:
25968                    case 5:
25969                        return '[u] dddd [u] LT';
25970                }
25971            },
25972            lastDay: '[juče u] LT',
25973            lastWeek: function () {
25974                var lastWeekDays = [
25975                    '[prošle] [nedelje] [u] LT',
25976                    '[prošlog] [ponedeljka] [u] LT',
25977                    '[prošlog] [utorka] [u] LT',
25978                    '[prošle] [srede] [u] LT',
25979                    '[prošlog] [četvrtka] [u] LT',
25980                    '[prošlog] [petka] [u] LT',
25981                    '[prošle] [subote] [u] LT',
25982                ];
25983                return lastWeekDays[this.day()];
25984            },
25985            sameElse: 'L',
25986        },
25987        relativeTime: {
25988            future: 'za %s',
25989            past: 'pre %s',
25990            s: 'nekoliko sekundi',
25991            ss: translator.translate,
25992            m: translator.translate,
25993            mm: translator.translate,
25994            h: translator.translate,
25995            hh: translator.translate,
25996            d: translator.translate,
25997            dd: translator.translate,
25998            M: translator.translate,
25999            MM: translator.translate,
26000            y: translator.translate,
26001            yy: translator.translate,
26002        },
26003        dayOfMonthOrdinalParse: /\d{1,2}\./,
26004        ordinal: '%d.',
26005        week: {
26006            dow: 1, // Monday is the first day of the week.
26007            doy: 7, // The week that contains Jan 7th is the first week of the year.
26008        },
26009    });
26010
26011    return sr;
26012
26013})));
26014
26015
26016/***/ }),
26017
26018/***/ 5766:
26019/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26020
26021//! moment.js locale configuration
26022//! locale : Lithuanian [lt]
26023//! author : Mindaugas Mozūras : https://github.com/mmozuras
26024
26025;(function (global, factory) {
26026    true ? factory(__webpack_require__(5093)) :
26027   0
26028}(this, (function (moment) { 'use strict';
26029
26030    //! moment.js locale configuration
26031
26032    var units = {
26033        ss: 'sekundė_sekundžių_sekundes',
26034        m: 'minutė_minutės_minutę',
26035        mm: 'minutės_minučių_minutes',
26036        h: 'valanda_valandos_valandą',
26037        hh: 'valandos_valandų_valandas',
vendor: 11,245 bytes, lines 26038-26343
26038        d: 'diena_dienos_dieną',
26039        dd: 'dienos_dienų_dienas',
26040        M: 'mėnuo_mėnesio_mėnesį',
26041        MM: 'mėnesiai_mėnesių_mėnesius',
26042        y: 'metai_metų_metus',
26043        yy: 'metai_metų_metus',
26044    };
26045    function translateSeconds(number, withoutSuffix, key, isFuture) {
26046        if (withoutSuffix) {
26047            return 'kelios sekundės';
26048        } else {
26049            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
26050        }
26051    }
26052    function translateSingular(number, withoutSuffix, key, isFuture) {
26053        return withoutSuffix
26054            ? forms(key)[0]
26055            : isFuture
26056              ? forms(key)[1]
26057              : forms(key)[2];
26058    }
26059    function special(number) {
26060        return number % 10 === 0 || (number > 10 && number < 20);
26061    }
26062    function forms(key) {
26063        return units[key].split('_');
26064    }
26065    function translate(number, withoutSuffix, key, isFuture) {
26066        var result = number + ' ';
26067        if (number === 1) {
26068            return (
26069                result + translateSingular(number, withoutSuffix, key[0], isFuture)
26070            );
26071        } else if (withoutSuffix) {
26072            return result + (special(number) ? forms(key)[1] : forms(key)[0]);
26073        } else {
26074            if (isFuture) {
26075                return result + forms(key)[1];
26076            } else {
26077                return result + (special(number) ? forms(key)[1] : forms(key)[2]);
26078            }
26079        }
26080    }
26081    var lt = moment.defineLocale('lt', {
26082        months: {
26083            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
26084                '_'
26085            ),
26086            standalone:
26087                'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
26088                    '_'
26089                ),
26090            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
26091        },
26092        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
26093        weekdays: {
26094            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
26095                '_'
26096            ),
26097            standalone:
26098                'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
26099                    '_'
26100                ),
26101            isFormat: /dddd HH:mm/,
26102        },
26103        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
26104        weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),
26105        weekdaysParseExact: true,
26106        longDateFormat: {
26107            LT: 'HH:mm',
26108            LTS: 'HH:mm:ss',
26109            L: 'YYYY-MM-DD',
26110            LL: 'YYYY [m.] MMMM D [d.]',
26111            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
26112            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
26113            l: 'YYYY-MM-DD',
26114            ll: 'YYYY [m.] MMMM D [d.]',
26115            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
26116            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
26117        },
26118        calendar: {
26119            sameDay: '[Å iandien] LT',
26120            nextDay: '[Rytoj] LT',
26121            nextWeek: 'dddd LT',
26122            lastDay: '[Vakar] LT',
26123            lastWeek: '[Praėjusį] dddd LT',
26124            sameElse: 'L',
26125        },
26126        relativeTime: {
26127            future: 'po %s',
26128            past: 'prieš %s',
26129            s: translateSeconds,
26130            ss: translate,
26131            m: translateSingular,
26132            mm: translate,
26133            h: translateSingular,
26134            hh: translate,
26135            d: translateSingular,
26136            dd: translate,
26137            M: translateSingular,
26138            MM: translate,
26139            y: translateSingular,
26140            yy: translate,
26141        },
26142        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
26143        ordinal: function (number) {
26144            return number + '-oji';
26145        },
26146        week: {
26147            dow: 1, // Monday is the first day of the week.
26148            doy: 4, // The week that contains Jan 4th is the first week of the year.
26149        },
26150    });
26151
26152    return lt;
26153
26154})));
26155
26156
26157/***/ }),
26158
26159/***/ 5784:
26160/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26161
26162//! moment.js locale configuration
26163//! locale : Slovak [sk]
26164//! author : Martin Minka : https://github.com/k2s
26165//! based on work of petrbela : https://github.com/petrbela
26166
26167;(function (global, factory) {
26168    true ? factory(__webpack_require__(5093)) :
26169   0
26170}(this, (function (moment) { 'use strict';
26171
26172    //! moment.js locale configuration
26173
26174    var months =
26175            'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
26176                '_'
26177            ),
26178        monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
26179    function plural(n) {
26180        return n > 1 && n < 5;
26181    }
26182    function translate(number, withoutSuffix, key, isFuture) {
26183        var result = number + ' ';
26184        switch (key) {
26185            case 's': // a few seconds / in a few seconds / a few seconds ago
26186                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
26187            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
26188                if (withoutSuffix || isFuture) {
26189                    return result + (plural(number) ? 'sekundy' : 'sekúnd');
26190                } else {
26191                    return result + 'sekundami';
26192                }
26193            case 'm': // a minute / in a minute / a minute ago
26194                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
26195            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
26196                if (withoutSuffix || isFuture) {
26197                    return result + (plural(number) ? 'minúty' : 'minút');
26198                } else {
26199                    return result + 'minútami';
26200                }
26201            case 'h': // an hour / in an hour / an hour ago
26202                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
26203            case 'hh': // 9 hours / in 9 hours / 9 hours ago
26204                if (withoutSuffix || isFuture) {
26205                    return result + (plural(number) ? 'hodiny' : 'hodín');
26206                } else {
26207                    return result + 'hodinami';
26208                }
26209            case 'd': // a day / in a day / a day ago
26210                return withoutSuffix || isFuture ? 'deň' : 'dňom';
26211            case 'dd': // 9 days / in 9 days / 9 days ago
26212                if (withoutSuffix || isFuture) {
26213                    return result + (plural(number) ? 'dni' : 'dní');
26214                } else {
26215                    return result + 'dňami';
26216                }
26217            case 'M': // a month / in a month / a month ago
26218                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
26219            case 'MM': // 9 months / in 9 months / 9 months ago
26220                if (withoutSuffix || isFuture) {
26221                    return result + (plural(number) ? 'mesiace' : 'mesiacov');
26222                } else {
26223                    return result + 'mesiacmi';
26224                }
26225            case 'y': // a year / in a year / a year ago
26226                return withoutSuffix || isFuture ? 'rok' : 'rokom';
26227            case 'yy': // 9 years / in 9 years / 9 years ago
26228                if (withoutSuffix || isFuture) {
26229                    return result + (plural(number) ? 'roky' : 'rokov');
26230                } else {
26231                    return result + 'rokmi';
26232                }
26233        }
26234    }
26235
26236    var sk = moment.defineLocale('sk', {
26237        months: months,
26238        monthsShort: monthsShort,
26239        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
26240        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
26241        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
26242        longDateFormat: {
26243            LT: 'H:mm',
26244            LTS: 'H:mm:ss',
26245            L: 'DD.MM.YYYY',
26246            LL: 'D. MMMM YYYY',
26247            LLL: 'D. MMMM YYYY H:mm',
26248            LLLL: 'dddd D. MMMM YYYY H:mm',
26249        },
26250        calendar: {
26251            sameDay: '[dnes o] LT',
26252            nextDay: '[zajtra o] LT',
26253            nextWeek: function () {
26254                switch (this.day()) {
26255                    case 0:
26256                        return '[v nedeľu o] LT';
26257                    case 1:
26258                    case 2:
26259                        return '[v] dddd [o] LT';
26260                    case 3:
26261                        return '[v stredu o] LT';
26262                    case 4:
26263                        return '[vo štvrtok o] LT';
26264                    case 5:
26265                        return '[v piatok o] LT';
26266                    case 6:
26267                        return '[v sobotu o] LT';
26268                }
26269            },
26270            lastDay: '[včera o] LT',
26271            lastWeek: function () {
26272                switch (this.day()) {
26273                    case 0:
26274                        return '[minulú nedeľu o] LT';
26275                    case 1:
26276                    case 2:
26277                        return '[minulý] dddd [o] LT';
26278                    case 3:
26279                        return '[minulú stredu o] LT';
26280                    case 4:
26281                    case 5:
26282                        return '[minulý] dddd [o] LT';
26283                    case 6:
26284                        return '[minulú sobotu o] LT';
26285                }
26286            },
26287            sameElse: 'L',
26288        },
26289        relativeTime: {
26290            future: 'za %s',
26291            past: 'pred %s',
26292            s: translate,
26293            ss: translate,
26294            m: translate,
26295            mm: translate,
26296            h: translate,
26297            hh: translate,
26298            d: translate,
26299            dd: translate,
26300            M: translate,
26301            MM: translate,
26302            y: translate,
26303            yy: translate,
26304        },
26305        dayOfMonthOrdinalParse: /\d{1,2}\./,
26306        ordinal: '%d.',
26307        week: {
26308            dow: 1, // Monday is the first day of the week.
26309            doy: 4, // The week that contains Jan 4th is the first week of the year.
26310        },
26311    });
26312
26313    return sk;
26314
26315})));
26316
26317
26318/***/ }),
26319
26320/***/ 5802:
26321/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26322
26323//! moment.js locale configuration
26324//! locale : Thai [th]
26325//! author : Kridsada Thanabulpong : https://github.com/sirn
26326
26327;(function (global, factory) {
26328    true ? factory(__webpack_require__(5093)) :
26329   0
26330}(this, (function (moment) { 'use strict';
26331
26332    //! moment.js locale configuration
26333
26334    var th = moment.defineLocale('th', {
26335        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
26336            '_'
26337        ),
26338        monthsShort:
26339            'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
26340                '_'
26341            ),
26342        monthsParseExact: true,
26343        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.
26343split('_'),
26344        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
26345        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
26346        weekdaysParseExact: true,
26347        longDateFormat: {
26348            LT: 'H:mm',
26349            LTS: 'H:mm:ss',
26350            L: 'DD/MM/YYYY',
26351            LL: 'D MMMM YYYY',
26352            LLL: 'D MMMM YYYY เวลา H:mm',
26353            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
26354        },
26355        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
26356        isPM: function (input) {
26357            return input === 'หลังเที่ยง';
26358        },
26359        meridiem: function (hour, minute, isLower) {
26360            if (hour < 12) {
26361                return 'ก่อนเที่ยง';
26362            } else {
26363                return 'หลังเที่ยง';
26364            }
26365        },
26366        calendar: {
26367            sameDay: '[วันนี้ เวลา] LT',
26368            nextDay: '[พรุ่งนี้ เวลา] LT',
26369            nextWeek: 'dddd[หน้า เวลา] LT',
26370            lastDay: '[เมื่อวานนี้ เวลา] LT',
26371            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
26372            sameElse: 'L',
26373        },
26374        relativeTime: {
26375            future: 'อีก %s',
26376            past: '%sที่แล้ว',
26377            s: 'ไม่กี่วินาที',
26378            ss: '%d วินาที',
26379            m: '1 นาที',
26380            mm: '%d นาที',
26381            h: '1 ชั่วโมง',
26382            hh: '%d ชั่วโมง',
26383            d: '1 วัน',
26384            dd: '%d วัน',
26385            w: '1 สัปดาห์',
26386            ww: '%d สัปดาห์',
26387            M: '1 เดือน',
26388            MM: '%d เดือน',
26389            y: '1 ปี',
26390            yy: '%d ปี',
26391        },
26392    });
26393
26394    return th;
26395
26396})));
26397
26398
26399/***/ }),
26400
26401/***/ 5867:
26402/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26403
26404//! moment.js locale configuration
26405//! locale : Lao [lo]
26406//! author : Ryan Hart : https://github.com/ryanhart2
26407
26408;(function (global, factory) {
26409    true ? factory(__webpack_require__(5093)) :
26410   0
26411}(this, (function (moment) { 'use strict';
26412
26413    //! moment.js locale configuration
26414
26415    var lo = moment.defineLocale('lo', {
26416        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
26417            '_'
26418        ),
26419        monthsShort:
26420            'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
26421                '_'
26422            ),
26423        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
26424        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
26425        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
26426        weekdaysParseExact: true,
26427        longDateFormat: {
26428            LT: 'HH:mm',
26429            LTS: 'HH:mm:ss',
26430            L: 'DD/MM/YYYY',
26431            LL: 'D MMMM YYYY',
26432            LLL: 'D MMMM YYYY HH:mm',
26433            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
26434        },
26435        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
26436        isPM: function (input) {
26437            return input === 'ຕອນແລງ';
26438        },
26439        meridiem: function (hour, minute, isLower) {
26440            if (hour < 12) {
26441                return 'ຕອນເຊົ້າ';
26442            } else {
26443                return 'ຕອນແລງ';
26444            }
26445        },
26446        calendar: {
26447            sameDay: '[ມື້ນີ້ເວລາ] LT',
26448            nextDay: '[ມື້ອື່ນເວລາ] LT',
26449            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
26450            lastDay: '[ມື້ວານນີ້ເວລາ] LT',
26451            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
26452            sameElse: 'L',
26453        },
26454        relativeTime: {
26455            future: 'ອີກ %s',
26456            past: '%sຜ່ານມາ',
26457            s: 'ບໍ່ເທົ່າໃດວິນາທີ',
26458            ss: '%d ວິນາທີ',
26459            m: '1 ນາທີ',
26460            mm: '%d ນາທີ',
26461            h: '1 ຊົ່ວໂມງ',
26462            hh: '%d ຊົ່ວໂມງ',
26463            d: '1 ມື້',
26464            dd: '%d ມື້',
26465            M: '1 ເດືອນ',
26466            MM: '%d ເດືອນ',
26467            y: '1 ປີ',
26468            yy: '%d ປີ',
26469        },
26470        dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
26471        ordinal: function (number) {
26472            return 'ທີ່' + number;
26473        },
26474    });
26475
26476    return lo;
26477
26478})));
26479
26480
26481/***/ }),
26482
26483/***/ 5995:
26484/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26485
26486//! moment.js locale configuration
26487//! locale : Filipino [fil]
26488//! author : Dan Hagman : https://github.com/hagmandan
26489//! author : Matthew Co : https://github.com/matthewdeeco
26490
26491;(function (global, factory) {
26492    true ? factory(__webpack_require__(5093)) :
26493   0
26494}(this, (function (moment) { 'use strict';
26495
26496    //! moment.js locale configuration
26497
26498    var fil = moment.defineLocale('fil', {
26499        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
26500            '_'
26501        ),
26502        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
26503        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
26504            '_'
26505        ),
26506        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
26507        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
26508        longDateFormat: {
26509            LT: 'HH:mm',
26510            LTS: 'HH:mm:ss',
26511            L: 'MM/D/YYYY',
26512            LL: 'MMMM D, YYYY',
26513            LLL: 'MMMM D, YYYY HH:mm',
26514            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
26515        },
26516        calendar: {
26517            sameDay: 'LT [ngayong araw]',
26518            nextDay: '[Bukas ng] LT',
26519            nextWeek: 'LT [sa susunod na] dddd',
26520            lastDay: 'LT [kahapon]',
26521            lastWeek: 'LT [noong nakaraang] dddd',
26522            sameElse: 'L',
26523        },
26524        relativeTime: {
26525            future: 'sa loob ng %s',
26526            past: '%s ang nakalipas',
26527            s: 'ilang segundo',
26528            ss: '%d segundo',
26529            m: 'isang minuto',
26530            mm: '%d minuto',
26531            h: 'isang oras',
26532            hh: '%d oras',
26533            d: 'isang araw',
26534            dd: '%d araw',
vendor: 4,654 bytes, lines 26535-26683
26535            M: 'isang buwan',
26536            MM: '%d buwan',
26537            y: 'isang taon',
26538            yy: '%d taon',
26539        },
26540        dayOfMonthOrdinalParse: /\d{1,2}/,
26541        ordinal: function (number) {
26542            return number;
26543        },
26544        week: {
26545            dow: 1, // Monday is the first day of the week.
26546            doy: 4, // The week that contains Jan 4th is the first week of the year.
26547        },
26548    });
26549
26550    return fil;
26551
26552})));
26553
26554
26555/***/ }),
26556
26557/***/ 6000:
26558/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26559
26560//! moment.js locale configuration
26561//! locale : siSwati [ss]
26562//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies
26563
26564;(function (global, factory) {
26565    true ? factory(__webpack_require__(5093)) :
26566   0
26567}(this, (function (moment) { 'use strict';
26568
26569    //! moment.js locale configuration
26570
26571    var ss = moment.defineLocale('ss', {
26572        months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
26573            '_'
26574        ),
26575        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
26576        weekdays:
26577            'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
26578                '_'
26579            ),
26580        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
26581        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
26582        weekdaysParseExact: true,
26583        longDateFormat: {
26584            LT: 'h:mm A',
26585            LTS: 'h:mm:ss A',
26586            L: 'DD/MM/YYYY',
26587            LL: 'D MMMM YYYY',
26588            LLL: 'D MMMM YYYY h:mm A',
26589            LLLL: 'dddd, D MMMM YYYY h:mm A',
26590        },
26591        calendar: {
26592            sameDay: '[Namuhla nga] LT',
26593            nextDay: '[Kusasa nga] LT',
26594            nextWeek: 'dddd [nga] LT',
26595            lastDay: '[Itolo nga] LT',
26596            lastWeek: 'dddd [leliphelile] [nga] LT',
26597            sameElse: 'L',
26598        },
26599        relativeTime: {
26600            future: 'nga %s',
26601            past: 'wenteka nga %s',
26602            s: 'emizuzwana lomcane',
26603            ss: '%d mzuzwana',
26604            m: 'umzuzu',
26605            mm: '%d emizuzu',
26606            h: 'lihora',
26607            hh: '%d emahora',
26608            d: 'lilanga',
26609            dd: '%d emalanga',
26610            M: 'inyanga',
26611            MM: '%d tinyanga',
26612            y: 'umnyaka',
26613            yy: '%d iminyaka',
26614        },
26615        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
26616        meridiem: function (hours, minutes, isLower) {
26617            if (hours < 11) {
26618                return 'ekuseni';
26619            } else if (hours < 15) {
26620                return 'emini';
26621            } else if (hours < 19) {
26622                return 'entsambama';
26623            } else {
26624                return 'ebusuku';
26625            }
26626        },
26627        meridiemHour: function (hour, meridiem) {
26628            if (hour === 12) {
26629                hour = 0;
26630            }
26631            if (meridiem === 'ekuseni') {
26632                return hour;
26633            } else if (meridiem === 'emini') {
26634                return hour >= 11 ? hour : hour + 12;
26635            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
26636                if (hour === 0) {
26637                    return 0;
26638                }
26639                return hour + 12;
26640            }
26641        },
26642        dayOfMonthOrdinalParse: /\d{1,2}/,
26643        ordinal: '%d',
26644        week: {
26645            dow: 1, // Monday is the first day of the week.
26646            doy: 4, // The week that contains Jan 4th is the first week of the year.
26647        },
26648    });
26649
26650    return ss;
26651
26652})));
26653
26654
26655/***/ }),
26656
26657/***/ 6111:
26658/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26659
26660//! moment.js locale configuration
26661//! locale : German (Austria) [de-at]
26662//! author : lluchs : https://github.com/lluchs
26663//! author: Menelion Elensúle: https://github.com/Oire
26664//! author : Martin Groller : https://github.com/MadMG
26665//! author : Mikolaj Dadela : https://github.com/mik01aj
26666
26667;(function (global, factory) {
26668    true ? factory(__webpack_require__(5093)) :
26669   0
26670}(this, (function (moment) { 'use strict';
26671
26672    //! moment.js locale configuration
26673
26674    function processRelativeTime(number, withoutSuffix, key, isFuture) {
26675        var format = {
26676            m: ['eine Minute', 'einer Minute'],
26677            h: ['eine Stunde', 'einer Stunde'],
26678            d: ['ein Tag', 'einem Tag'],
26679            dd: [number + ' Tage', number + ' Tagen'],
26680            w: ['eine Woche', 'einer Woche'],
26681            M: ['ein Monat', 'einem Monat'],
26682            MM: [number + ' Monate', number + ' Monaten'],
26683            y: ['ein Jahr', 'einem Jahr'],
26684            yy: [number + ' Jahre', number + ' Jahren'],
26685        };
26686        return withoutSuffix ? format[key][0] : format[key][1];
26687    }
26688
26689    var deAt = moment.defineLocale('de-at', {
26690        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
26691            '_'
26692        ),
26693        monthsShort:
26694            'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
26695        monthsParseExact: true,
26696        weekdays:
26697            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
26698                '_'
26699            ),
26700        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
26701        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
26702        weekdaysParseExact: true,
26703        longDateFormat: {
26704            LT: 'HH:mm',
26705            LTS: 'HH:mm:ss',
26706            L: 'DD.MM.YYYY',
26707            LL: 'D. MMMM YYYY',
26708            LLL: 'D. MMMM YYYY HH:mm',
26709            LLLL: 'dddd, D. MMMM YYYY HH:mm',
26710        },
26711        calendar: {
26712            sameDay: '[heute um] LT [Uhr]',
26713            sameElse: 'L',
26714            nextDay: '[morgen um] LT [Uhr]',
26715            nextWeek: 'dddd [um] LT [Uhr]',
26716            lastDay: '[gestern um] LT [Uhr]',
26717            lastWeek: '[letzten] dddd [um] LT [Uhr]',
26718        },
26719        relativeTime: {
26720            future: 'in %s',
26721            past: 'vor %s',
26722            s: 'ein paar Sekunden',
26723            ss: '%d Sekunden',
26724            m: processRelativeTime,
26725            mm: '%d Minuten',
26726            h: processRelativeTime,
26727            hh: '%d Stunden',
26728            d: processRelativeTime,
26729            dd: processRelativeTime,
26730            w: processRelativeTime,
26731            ww: '%d Wochen',
26732            M: processRelativeTime,
26733            MM: processRelativeTime,
26734            y: processRelativeTime,
26735            yy: processRelativeTime,
26736        },
26737        dayOfMonthOrdinalParse: /\d{1,2}\./,
26738        ordinal: '%d.',
26739        week: {
26740            dow: 1, // Monday is the first day of the week.
26741            doy: 4, // The week that contains Jan 4th is the first week of the year.
26742        },
26743    });
26744
26745    return deAt;
26746
26747})));
26748
26749
26750/***/ }),
26751
26752/***/ 6169:
26753/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26754
26755//! moment.js locale configuration
26756//! locale : Marathi [mr]
26757//! author : Harshad Kale : https://github.com/kalehv
26758//! author : Vivek Athalye : https://github.com/vnathalye
26759
26760;(function (global, factory) {
26761    true ? factory(__webpack_require__(5093)) :
26762   0
26763}(this, (function (moment) { 'use strict';
26764
26765    //! moment.js locale configuration
26766
26767    var symbolMap = {
26768            1: '१',
26769            2: '२',
26770            3: '३',
26771            4: '४',
26772            5: '५',
26773            6: '६',
26774            7: '७',
26775            8: '८',
26776            9: '९',
26777            0: '०',
26778        },
26779        numberMap = {
26780            '१': '1',
26781            '२': '2',
26782            '३': '3',
26783            '४': '4',
26784            '५': '5',
26785            '६': '6',
26786            '७': '7',
26787            '८': '8',
26788            '९': '9',
26789            '०': '0',
26790        };
26791
26792    function relativeTimeMr(number, withoutSuffix, string, isFuture) {
26793        var output = '';
26794        if (withoutSuffix) {
26795            switch (string) {
26796                case 's':
26797                    output = 'काही सेकंद';
26798                    break;
26799                case 'ss':
26800                    output = '%d सेकंद';
26801                    break;
26802                case 'm':
26803                    output = 'एक मिनिट';
26804                    break;
26805                case 'mm':
26806                    output = '%d मिनिटे';
26807                    break;
26808                case 'h':
26809                    output = 'एक तास';
26810                    break;
26811                case 'hh':
26812                    output = '%d तास';
26813                    break;
26814                case 'd':
26815                    output = 'एक दिवस';
26816                    break;
26817                case 'dd':
26818                    output = '%d दिवस';
26819                    break;
26820                case 'M':
26821                    output = 'एक महिना';
26822                    break;
26823                case 'MM':
26824                    output = '%d महिने';
26825                    break;
26826                case 'y':
26827                    output = 'एक वर्ष';
26828                    break;
26829                case 'yy':
26830                    output = '%d वर्षे';
26831                    break;
26832            }
26833        } else {
26834            switch (string) {
26835                case 's':
vendor: 4,304 bytes, lines 26836-26939
26836                    output = 'काही सेकंदां';
26837                    break;
26838                case 'ss':
26839                    output = '%d सेकंदां';
26840                    break;
26841                case 'm':
26842                    output = 'एका मिनिटा';
26843                    break;
26844                case 'mm':
26845                    output = '%d मिनिटां';
26846                    break;
26847                case 'h':
26848                    output = 'एका तासा';
26849                    break;
26850                case 'hh':
26851                    output = '%d तासां';
26852                    break;
26853                case 'd':
26854                    output = 'एका दिवसा';
26855                    break;
26856                case 'dd':
26857                    output = '%d दिवसां';
26858                    break;
26859                case 'M':
26860                    output = 'एका महिन्या';
26861                    break;
26862                case 'MM':
26863                    output = '%d महिन्यां';
26864                    break;
26865                case 'y':
26866                    output = 'एका वर्षा';
26867                    break;
26868                case 'yy':
26869                    output = '%d वर्षां';
26870                    break;
26871            }
26872        }
26873        return output.replace(/%d/i, number);
26874    }
26875
26876    var mr = moment.defineLocale('mr', {
26877        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
26878            '_'
26879        ),
26880        monthsShort:
26881            'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
26882                '_'
26883            ),
26884        monthsParseExact: true,
26885        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
26886        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
26887        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
26888        longDateFormat: {
26889            LT: 'A h:mm वाजता',
26890            LTS: 'A h:mm:ss वाजता',
26891            L: 'DD/MM/YYYY',
26892            LL: 'D MMMM YYYY',
26893            LLL: 'D MMMM YYYY, A h:mm वाजता',
26894            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
26895        },
26896        calendar: {
26897            sameDay: '[आज] LT',
26898            nextDay: '[उद्या] LT',
26899            nextWeek: 'dddd, LT',
26900            lastDay: '[काल] LT',
26901            lastWeek: '[मागील] dddd, LT',
26902            sameElse: 'L',
26903        },
26904        relativeTime: {
26905            future: '%sमध्ये',
26906            past: '%sपूर्वी',
26907            s: relativeTimeMr,
26908            ss: relativeTimeMr,
26909            m: relativeTimeMr,
26910            mm: relativeTimeMr,
26911            h: relativeTimeMr,
26912            hh: relativeTimeMr,
26913            d: relativeTimeMr,
26914            dd: relativeTimeMr,
26915            M: relativeTimeMr,
26916            MM: relativeTimeMr,
26917            y: relativeTimeMr,
26918            yy: relativeTimeMr,
26919        },
26920        preparse: function (string) {
26921            return string.replace(/[१२३४५६७८९०]/g, function (match) {
26922                return numberMap[match];
26923            });
26924        },
26925        postformat: function (string) {
26926            return string.replace(/\d/g, function (match) {
26927                return symbolMap[match];
26928            });
26929        },
26930        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
26931        meridiemHour: function (hour, meridiem) {
26932            if (hour === 12) {
26933                hour = 0;
26934            }
26935            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
26936                return hour;
26937            } else if (
26938                meridiem === 'दुपारी' ||
26939                meridiem === 'सायंकाळी' ||
26940                meridiem === 'रात्री'
26941            ) {
26942                return hour >= 12 ? hour : hour + 12;
26943            }
26944        },
26945        meridiem: function (hour, minute, isLower) {
26946            if (hour >= 0 && hour < 6) {
26947                return 'पहाटे';
26948            } else if (hour < 12) {
26949                return 'सकाळी';
26950            } else if (hour < 17) {
26951                return 'दुपारी';
26952            } else if (hour < 20) {
26953                return 'सायंकाळी';
26954            } else {
26955                return 'रात्री';
26956            }
26957        },
26958        week: {
26959            dow: 0, // Sunday is the first day of the week.
26960            doy: 6, // The week that contains Jan 6th is the first week of the year.
26961        },
26962    });
26963
26964    return mr;
26965
26966})));
26967
26968
26969/***/ }),
26970
26971/***/ 6181:
26972/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
26973
26974//! moment.js locale configuration
26975//! locale : Northern Kurdish [ku-kmr]
26976//! authors : Mazlum Özdogan : https://github.com/mergehez
26977
26978;(function (global, factory) {
26979    true ? factory(__webpack_require__(5093)) :
26980   0
26981}(this, (function (moment) { 'use strict';
26982
26983    //! moment.js locale configuration
26984
26985    function processRelativeTime(num, withoutSuffix, key, isFuture) {
26986        var format = {
26987            s: ['çend sanîye', 'çend sanîyeyan'],
26988            ss: [num + ' sanîye', num + ' sanîyeyan'],
26989            m: ['deqîqeyek', 'deqîqeyekê'],
26990            mm: [num + ' deqîqe', num + ' deqîqeyan'],
26991            h: ['saetek', 'saetekê'],
26992            hh: [num + ' saet', num + ' saetan'],
26993            d: ['rojek', 'rojekê'],
26994            dd: [num + ' roj', num + ' rojan'],
26995            w: ['hefteyek', 'hefteyekê'],
26996            ww: [num + ' hefte', num + ' hefteyan'],
26997            M: ['mehek', 'mehekê'],
26998            MM: [num + ' meh', num + ' mehan'],
26999            y: ['salek', 'salekê'],
27000            yy: [num + ' sal', num + ' salan'],
27001        };
27002        return withoutSuffix ? format[key][0] : format[key][1];
27003    }
27004    // function obliqueNumSuffix(num) {
27005    //     if(num.includes(':'))
27006    //         num = parseInt(num.split(':')[0]);
27007    //     else
27008    //         num = parseInt(num);
27009    //     return num == 0 || num % 10 == 1 ? 'ê'
27010    //                         : (num > 10 && num % 10 == 0 ? 'î' : 'an');
27011    // }
27012    function ezafeNumSuffix(num) {
27013        num = '' + num;
27014        var l = num.substring(num.length - 1),
27015            ll = num.length > 1 ? num.substring(num.length - 2) : '';
27016        if (
27017            !(ll == 12 || ll == 13) &&
27018            (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')
27019        )
27020            return 'yê';
27021        return 'ê';
27022    }
27023
27024    var kuKmr = moment.defineLocale('ku-kmr', {
27025        // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)
27026        // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'
27027        // But the names below are more well known and handy
27028        months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(
27029            '_'
27030        ),
27031        monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),
27032        monthsParseExact: true,
27033        weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),
27034        weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),
27035        weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),
27036        meridiem: function (hours, minutes, isLower) {
27037            if (hours < 12) {
27038                return isLower ? 'bn' : 'BN';
27039            } else {
27040                return isLower ? 'pn' : 'PN';
27041            }
27042        },
27043        meridiemParse: /bn|BN|pn|PN/,
27044        longDateFormat: {
27045            LT: 'HH:mm',
27046            LTS: 'HH:mm:ss',
27047            L: 'DD.MM.YYYY',
27048            LL: 'Do MMMM[a] YYYY[an]',
27049            LLL: 'Do MMMM[a] YYYY[an] HH:mm',
27050            LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',
27051            ll: 'Do MMM[.] YYYY[an]',
27052            lll: 'Do MMM[.] YYYY[an] HH:mm',
27053            llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',
27054        },
27055        calendar: {
27056            sameDay: '[Îro di saet] LT [de]',
27057            nextDay: '[Sibê di saet] LT [de]',
27058            nextWeek: 'dddd [di saet] LT [de]',
27059            lastDay: '[Duh di saet] LT [de]',
27060            lastWeek: 'dddd[a borî di saet] LT [de]',
27061            sameElse: 'L',
27062        },
27063        relativeTime: {
27064            future: 'di %s de',
27065            past: 'berî %s',
27066            s: processRelativeTime,
27067            ss: processRelativeTime,
27068            m: processRelativeTime,
27069            mm: processRelativeTime,
27070            h: processRelativeTime,
27071            hh: processRelativeTime,
27072            d: processRelativeTime,
27073            dd: processRelativeTime,
27074            w: processRelativeTime,
27075            ww: processRelativeTime,
27076            M: processRelativeTime,
27077            MM: processRelativeTime,
27078            y: processRelativeTime,
27079            yy: processRelativeTime,
27080        },
27081        dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/,
vendor: 8,730 bytes, lines 27082-27360
27082        ordinal: function (num, period) {
27083            var p = period.toLowerCase();
27084            if (p.includes('w') || p.includes('m')) return num + '.';
27085
27086            return num + ezafeNumSuffix(num);
27087        },
27088        week: {
27089            dow: 1, // Monday is the first day of the week.
27090            doy: 4, // The week that contains Jan 4th is the first week of the year.
27091        },
27092    });
27093
27094    return kuKmr;
27095
27096})));
27097
27098
27099/***/ }),
27100
27101/***/ 6195:
27102/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27103
27104//! moment.js locale configuration
27105//! locale : English (United Kingdom) [en-gb]
27106//! author : Chris Gedrim : https://github.com/chrisgedrim
27107
27108;(function (global, factory) {
27109    true ? factory(__webpack_require__(5093)) :
27110   0
27111}(this, (function (moment) { 'use strict';
27112
27113    //! moment.js locale configuration
27114
27115    var enGb = moment.defineLocale('en-gb', {
27116        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
27117            '_'
27118        ),
27119        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
27120        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
27121            '_'
27122        ),
27123        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
27124        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
27125        longDateFormat: {
27126            LT: 'HH:mm',
27127            LTS: 'HH:mm:ss',
27128            L: 'DD/MM/YYYY',
27129            LL: 'D MMMM YYYY',
27130            LLL: 'D MMMM YYYY HH:mm',
27131            LLLL: 'dddd, D MMMM YYYY HH:mm',
27132        },
27133        calendar: {
27134            sameDay: '[Today at] LT',
27135            nextDay: '[Tomorrow at] LT',
27136            nextWeek: 'dddd [at] LT',
27137            lastDay: '[Yesterday at] LT',
27138            lastWeek: '[Last] dddd [at] LT',
27139            sameElse: 'L',
27140        },
27141        relativeTime: {
27142            future: 'in %s',
27143            past: '%s ago',
27144            s: 'a few seconds',
27145            ss: '%d seconds',
27146            m: 'a minute',
27147            mm: '%d minutes',
27148            h: 'an hour',
27149            hh: '%d hours',
27150            d: 'a day',
27151            dd: '%d days',
27152            M: 'a month',
27153            MM: '%d months',
27154            y: 'a year',
27155            yy: '%d years',
27156        },
27157        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
27158        ordinal: function (number) {
27159            var b = number % 10,
27160                output =
27161                    ~~((number % 100) / 10) === 1
27162                        ? 'th'
27163                        : b === 1
27164                          ? 'st'
27165                          : b === 2
27166                            ? 'nd'
27167                            : b === 3
27168                              ? 'rd'
27169                              : 'th';
27170            return number + output;
27171        },
27172        week: {
27173            dow: 1, // Monday is the first day of the week.
27174            doy: 4, // The week that contains Jan 4th is the first week of the year.
27175        },
27176    });
27177
27178    return enGb;
27179
27180})));
27181
27182
27183/***/ }),
27184
27185/***/ 6308:
27186/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27187
27188//! moment.js locale configuration
27189//! locale : Croatian [hr]
27190//! author : Bojan Marković : https://github.com/bmarkovic
27191
27192;(function (global, factory) {
27193    true ? factory(__webpack_require__(5093)) :
27194   0
27195}(this, (function (moment) { 'use strict';
27196
27197    //! moment.js locale configuration
27198
27199    function translate(number, withoutSuffix, key) {
27200        var result = number + ' ';
27201        switch (key) {
27202            case 'ss':
27203                if (number === 1) {
27204                    result += 'sekunda';
27205                } else if (number === 2 || number === 3 || number === 4) {
27206                    result += 'sekunde';
27207                } else {
27208                    result += 'sekundi';
27209                }
27210                return result;
27211            case 'm':
27212                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
27213            case 'mm':
27214                if (number === 1) {
27215                    result += 'minuta';
27216                } else if (number === 2 || number === 3 || number === 4) {
27217                    result += 'minute';
27218                } else {
27219                    result += 'minuta';
27220                }
27221                return result;
27222            case 'h':
27223                return withoutSuffix ? 'jedan sat' : 'jednog sata';
27224            case 'hh':
27225                if (number === 1) {
27226                    result += 'sat';
27227                } else if (number === 2 || number === 3 || number === 4) {
27228                    result += 'sata';
27229                } else {
27230                    result += 'sati';
27231                }
27232                return result;
27233            case 'dd':
27234                if (number === 1) {
27235                    result += 'dan';
27236                } else {
27237                    result += 'dana';
27238                }
27239                return result;
27240            case 'MM':
27241                if (number === 1) {
27242                    result += 'mjesec';
27243                } else if (number === 2 || number === 3 || number === 4) {
27244                    result += 'mjeseca';
27245                } else {
27246                    result += 'mjeseci';
27247                }
27248                return result;
27249            case 'yy':
27250                if (number === 1) {
27251                    result += 'godina';
27252                } else if (number === 2 || number === 3 || number === 4) {
27253                    result += 'godine';
27254                } else {
27255                    result += 'godina';
27256                }
27257                return result;
27258        }
27259    }
27260
27261    var hr = moment.defineLocale('hr', {
27262        months: {
27263            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
27264                '_'
27265            ),
27266            standalone:
27267                'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
27268                    '_'
27269                ),
27270        },
27271        monthsShort:
27272            'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
27273                '_'
27274            ),
27275        monthsParseExact: true,
27276        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
27277            '_'
27278        ),
27279        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
27280        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
27281        weekdaysParseExact: true,
27282        longDateFormat: {
27283            LT: 'H:mm',
27284            LTS: 'H:mm:ss',
27285            L: 'DD.MM.YYYY',
27286            LL: 'Do MMMM YYYY',
27287            LLL: 'Do MMMM YYYY H:mm',
27288            LLLL: 'dddd, Do MMMM YYYY H:mm',
27289        },
27290        calendar: {
27291            sameDay: '[danas u] LT',
27292            nextDay: '[sutra u] LT',
27293            nextWeek: function () {
27294                switch (this.day()) {
27295                    case 0:
27296                        return '[u] [nedjelju] [u] LT';
27297                    case 3:
27298                        return '[u] [srijedu] [u] LT';
27299                    case 6:
27300                        return '[u] [subotu] [u] LT';
27301                    case 1:
27302                    case 2:
27303                    case 4:
27304                    case 5:
27305                        return '[u] dddd [u] LT';
27306                }
27307            },
27308            lastDay: '[jučer u] LT',
27309            lastWeek: function () {
27310                switch (this.day()) {
27311                    case 0:
27312                        return '[prošlu] [nedjelju] [u] LT';
27313                    case 3:
27314                        return '[prošlu] [srijedu] [u] LT';
27315                    case 6:
27316                        return '[prošle] [subote] [u] LT';
27317                    case 1:
27318                    case 2:
27319                    case 4:
27320                    case 5:
27321                        return '[prošli] dddd [u] LT';
27322                }
27323            },
27324            sameElse: 'L',
27325        },
27326        relativeTime: {
27327            future: 'za %s',
27328            past: 'prije %s',
27329            s: 'par sekundi',
27330            ss: translate,
27331            m: translate,
27332            mm: translate,
27333            h: translate,
27334            hh: translate,
27335            d: 'dan',
27336            dd: translate,
27337            M: 'mjesec',
27338            MM: translate,
27339            y: 'godinu',
27340            yy: translate,
27341        },
27342        dayOfMonthOrdinalParse: /\d{1,2}\./,
27343        ordinal: '%d.',
27344        week: {
27345            dow: 1, // Monday is the first day of the week.
27346            doy: 7, // The week that contains Jan 7th is the first week of the year.
27347        },
27348    });
27349
27350    return hr;
27351
27352})));
27353
27354
27355/***/ }),
27356
27357/***/ 6435:
27358/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27359
27360//! moment.js locale configuration
27361//! locale : French (Canada) [fr-ca]
27362//! author : Jonathan Abourbih : https://github.com/jonbca
27363
27364;(function (global, factory) {
27365    true ? factory(__webpack_require__(5093)) :
27366   0
27367}(this, (function (moment) { 'use strict';
27368
27369    //! moment.js locale configuration
27370
27371    var frCa = moment.defineLocale('fr-ca', {
27372        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
27373            '_'
27374        ),
27375        monthsShort:
27376            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
27377                '_'
27378            ),
27379        monthsParseExact: true,
27380        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
27381        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
27382        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
27383        weekdaysParseExact: true,
27384        longDateFormat: {
27385            LT: 'HH:mm',
27386            LTS: 'HH:mm:ss',
27387            L: 'YYYY-MM-DD',
27388            LL: 'D MMMM YYYY',
27389            LLL: 'D MMMM YYYY HH:mm',
27390            LLLL: 'dddd D MMMM YYYY HH:mm',
27391        },
27392        calendar: {
27393            sameDay: '[Aujourd’hui à] LT',
27394            nextDay: '[Demain à] LT',
27395            nextWeek: 'dddd [à] LT',
27396            lastDay: '[Hier à] LT',
27397            lastWeek: 'dddd [dernier à] LT',
27398            sameElse: 'L',
27399        },
27400        relativeTime: {
27401            future: 'dans %s',
27402            past: 'il y a %s',
27403            s: 'quelques secondes',
27404            ss: '%d secondes',
27405            m: 'une minute',
27406            mm: '%d minutes',
27407            h: 'une heure',
27408            hh: '%d heures',
27409            d: 'un jour',
27410            dd: '%d jours',
27411            M: 'un mois',
27412            MM: '%d mois',
27413            y: 'un an',
27414            yy: '%d ans',
27415        },
27416        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
27417        ordinal: function (number, period) {
27418            switch (period) {
27419                // Words with masculine grammatical gender: mois, trimestre, jour
27420                default:
27421                case 'M':
27422                case 'Q':
27423                case 'D':
27424                case 'DDD':
27425                case 'd':
27426                    return number + (number === 1 ? 'er' : 'e');
27427
27428                // Words with feminine grammatical gender: semaine
27429                case 'w':
27430                case 'W':
27431                    return number + (number === 1 ? 're' : 'e');
27432            }
27433        },
27434    });
27435
27436    return frCa;
27437
27438})));
27439
27440
27441/***/ }),
27442
27443/***/ 6464:
27444/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27445
27446//! moment.js locale configuration
27447//! locale : Czech [cs]
27448//! author : petrbela : https://github.com/petrbela
27449
27450;(function (global, factory) {
27451    true ? factory(__webpack_require__(5093)) :
27452   0
27453}(this, (function (moment) { 'use strict';
27454
27455    //! moment.js locale configuration
27456
27457    var months = {
27458            standalone:
27459                'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.
vendor: 32,768 bytes, lines 27459-28370
27459split(
27460                    '_'
27461                ),
27462            format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
27463                '_'
27464            ),
27465            isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/,
27466        },
27467        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
27468        monthsParse = [
27469            /^led/i,
27470            /^úno/i,
27471            /^bře/i,
27472            /^dub/i,
27473            /^kvě/i,
27474            /^(čvn|červen$|června)/i,
27475            /^(čvc|červenec|července)/i,
27476            /^srp/i,
27477            /^zář/i,
27478            /^říj/i,
27479            /^lis/i,
27480            /^pro/i,
27481        ],
27482        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
27483        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
27484        monthsRegex =
27485            /^(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;
27486
27487    function plural(n) {
27488        return n > 1 && n < 5 && ~~(n / 10) !== 1;
27489    }
27490    function translate(number, withoutSuffix, key, isFuture) {
27491        var result = number + ' ';
27492        switch (key) {
27493            case 's': // a few seconds / in a few seconds / a few seconds ago
27494                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
27495            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
27496                if (withoutSuffix || isFuture) {
27497                    return result + (plural(number) ? 'sekundy' : 'sekund');
27498                } else {
27499                    return result + 'sekundami';
27500                }
27501            case 'm': // a minute / in a minute / a minute ago
27502                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
27503            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
27504                if (withoutSuffix || isFuture) {
27505                    return result + (plural(number) ? 'minuty' : 'minut');
27506                } else {
27507                    return result + 'minutami';
27508                }
27509            case 'h': // an hour / in an hour / an hour ago
27510                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
27511            case 'hh': // 9 hours / in 9 hours / 9 hours ago
27512                if (withoutSuffix || isFuture) {
27513                    return result + (plural(number) ? 'hodiny' : 'hodin');
27514                } else {
27515                    return result + 'hodinami';
27516                }
27517            case 'd': // a day / in a day / a day ago
27518                return withoutSuffix || isFuture ? 'den' : 'dnem';
27519            case 'dd': // 9 days / in 9 days / 9 days ago
27520                if (withoutSuffix || isFuture) {
27521                    return result + (plural(number) ? 'dny' : 'dní');
27522                } else {
27523                    return result + 'dny';
27524                }
27525            case 'M': // a month / in a month / a month ago
27526                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
27527            case 'MM': // 9 months / in 9 months / 9 months ago
27528                if (withoutSuffix || isFuture) {
27529                    return result + (plural(number) ? 'měsíce' : 'měsíců');
27530                } else {
27531                    return result + 'měsíci';
27532                }
27533            case 'y': // a year / in a year / a year ago
27534                return withoutSuffix || isFuture ? 'rok' : 'rokem';
27535            case 'yy': // 9 years / in 9 years / 9 years ago
27536                if (withoutSuffix || isFuture) {
27537                    return result + (plural(number) ? 'roky' : 'let');
27538                } else {
27539                    return result + 'lety';
27540                }
27541        }
27542    }
27543
27544    var cs = moment.defineLocale('cs', {
27545        months: months,
27546        monthsShort: monthsShort,
27547        monthsRegex: monthsRegex,
27548        monthsShortRegex: monthsRegex,
27549        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
27550        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
27551        monthsStrictRegex:
27552            /^(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,
27553        monthsShortStrictRegex:
27554            /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
27555        monthsParse: monthsParse,
27556        longMonthsParse: monthsParse,
27557        shortMonthsParse: monthsParse,
27558        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
27559        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
27560        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
27561        longDateFormat: {
27562            LT: 'H:mm',
27563            LTS: 'H:mm:ss',
27564            L: 'DD.MM.YYYY',
27565            LL: 'D. MMMM YYYY',
27566            LLL: 'D. MMMM YYYY H:mm',
27567            LLLL: 'dddd D. MMMM YYYY H:mm',
27568            l: 'D. M. YYYY',
27569        },
27570        calendar: {
27571            sameDay: '[dnes v] LT',
27572            nextDay: '[zítra v] LT',
27573            nextWeek: function () {
27574                switch (this.day()) {
27575                    case 0:
27576                        return '[v neděli v] LT';
27577                    case 1:
27578                    case 2:
27579                        return '[v] dddd [v] LT';
27580                    case 3:
27581                        return '[ve středu v] LT';
27582                    case 4:
27583                        return '[ve čtvrtek v] LT';
27584                    case 5:
27585                        return '[v pátek v] LT';
27586                    case 6:
27587                        return '[v sobotu v] LT';
27588                }
27589            },
27590            lastDay: '[včera v] LT',
27591            lastWeek: function () {
27592                switch (this.day()) {
27593                    case 0:
27594                        return '[minulou neděli v] LT';
27595                    case 1:
27596                    case 2:
27597                        return '[minulé] dddd [v] LT';
27598                    case 3:
27599                        return '[minulou středu v] LT';
27600                    case 4:
27601                    case 5:
27602                        return '[minulý] dddd [v] LT';
27603                    case 6:
27604                        return '[minulou sobotu v] LT';
27605                }
27606            },
27607            sameElse: 'L',
27608        },
27609        relativeTime: {
27610            future: 'za %s',
27611            past: 'před %s',
27612            s: translate,
27613            ss: translate,
27614            m: translate,
27615            mm: translate,
27616            h: translate,
27617            hh: translate,
27618            d: translate,
27619            dd: translate,
27620            M: translate,
27621            MM: translate,
27622            y: translate,
27623            yy: translate,
27624        },
27625        dayOfMonthOrdinalParse: /\d{1,2}\./,
27626        ordinal: '%d.',
27627        week: {
27628            dow: 1, // Monday is the first day of the week.
27629            doy: 4, // The week that contains Jan 4th is the first week of the year.
27630        },
27631    });
27632
27633    return cs;
27634
27635})));
27636
27637
27638/***/ }),
27639
27640/***/ 6571:
27641/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27642
27643//! moment.js locale configuration
27644//! locale : Tajik [tg]
27645//! author : Orif N. Jr. : https://github.com/orif-jr
27646
27647;(function (global, factory) {
27648    true ? factory(__webpack_require__(5093)) :
27649   0
27650}(this, (function (moment) { 'use strict';
27651
27652    //! moment.js locale configuration
27653
27654    var suffixes = {
27655        0: '-ум',
27656        1: '-ум',
27657        2: '-юм',
27658        3: '-юм',
27659        4: '-ум',
27660        5: '-ум',
27661        6: '-ум',
27662        7: '-ум',
27663        8: '-ум',
27664        9: '-ум',
27665        10: '-ум',
27666        12: '-ум',
27667        13: '-ум',
27668        20: '-ум',
27669        30: '-юм',
27670        40: '-ум',
27671        50: '-ум',
27672        60: '-ум',
27673        70: '-ум',
27674        80: '-ум',
27675        90: '-ум',
27676        100: '-ум',
27677    };
27678
27679    var tg = moment.defineLocale('tg', {
27680        months: {
27681            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
27682                '_'
27683            ),
27684            standalone:
27685                'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
27686                    '_'
27687                ),
27688        },
27689        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
27690        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
27691            '_'
27692        ),
27693        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
27694        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
27695        longDateFormat: {
27696            LT: 'HH:mm',
27697            LTS: 'HH:mm:ss',
27698            L: 'DD.MM.YYYY',
27699            LL: 'D MMMM YYYY',
27700            LLL: 'D MMMM YYYY HH:mm',
27701            LLLL: 'dddd, D MMMM YYYY HH:mm',
27702        },
27703        calendar: {
27704            sameDay: '[Имрӯз соати] LT',
27705            nextDay: '[Фардо соати] LT',
27706            lastDay: '[Дирӯз соати] LT',
27707            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
27708            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
27709            sameElse: 'L',
27710        },
27711        relativeTime: {
27712            future: 'баъди %s',
27713            past: '%s пеш',
27714            s: 'якчанд сония',
27715            m: 'як дақиқа',
27716            mm: '%d дақиқа',
27717            h: 'як соат',
27718            hh: '%d соат',
27719            d: 'як рӯз',
27720            dd: '%d рӯз',
27721            M: 'як моҳ',
27722            MM: '%d моҳ',
27723            y: 'як сол',
27724            yy: '%d сол',
27725        },
27726        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
27727        meridiemHour: function (hour, meridiem) {
27728            if (hour === 12) {
27729                hour = 0;
27730            }
27731            if (meridiem === 'шаб') {
27732                return hour < 4 ? hour : hour + 12;
27733            } else if (meridiem === 'субҳ') {
27734                return hour;
27735            } else if (meridiem === 'рӯз') {
27736                return hour >= 11 ? hour : hour + 12;
27737            } else if (meridiem === 'бегоҳ') {
27738                return hour + 12;
27739            }
27740        },
27741        meridiem: function (hour, minute, isLower) {
27742            if (hour < 4) {
27743                return 'шаб';
27744            } else if (hour < 11) {
27745                return 'субҳ';
27746            } else if (hour < 16) {
27747                return 'рӯз';
27748            } else if (hour < 19) {
27749                return 'бегоҳ';
27750            } else {
27751                return 'шаб';
27752            }
27753        },
27754        dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
27755        ordinal: function (number) {
27756            var a = number % 10,
27757                b = number >= 100 ? 100 : null;
27758            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
27759        },
27760        week: {
27761            dow: 1, // Monday is the first day of the week.
27762            doy: 7, // The week that contains Jan 1th is the first week of the year.
27763        },
27764    });
27765
27766    return tg;
27767
27768})));
27769
27770
27771/***/ }),
27772
27773/***/ 6575:
27774/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27775
27776//! moment.js locale configuration
27777//! locale : Spanish (United States) [es-us]
27778//! author : bustta : https://github.com/bustta
27779//! author : chrisrodz : https://github.com/chrisrodz
27780
27781;(function (global, factory) {
27782    true ? factory(__webpack_require__(5093)) :
27783   0
27784}(this, (function (moment) { 'use strict';
27785
27786    //! moment.js locale configuration
27787
27788    var monthsShortDot =
27789            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
27790                '_'
27791            ),
27792        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
27793        monthsParse = [
27794            /^ene/i,
27795            /^feb/i,
27796            /^mar/i,
27797            /^abr/i,
27798            /^may/i,
27799            /^jun/i,
27800            /^jul/i,
27801            /^ago/i,
27802            /^sep/i,
27803            /^oct/i,
27804            /^nov/i,
27805            /^dic/i,
27806        ],
27807        monthsRegex =
27808            /^(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;
27809
27810    var esUs = moment.defineLocale('es-us', {
27811        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
27812            '_'
27813        ),
27814        monthsShort: function (m, format) {
27815            if (!m) {
27816                return monthsShortDot;
27817            } else if (/-MMM-/.test(format)) {
27818                return monthsShort[m.month()];
27819            } else {
27820                return monthsShortDot[m.month()];
27821            }
27822        },
27823        monthsRegex: monthsRegex,
27824        monthsShortRegex: monthsRegex,
27825        monthsStrictRegex:
27826            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
27827        monthsShortStrictRegex:
27828            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
27829        monthsParse: monthsParse,
27830        longMonthsParse: monthsParse,
27831        shortMonthsParse: monthsParse,
27832        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
27833        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
27834        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
27835        weekdaysParseExact: true,
27836        longDateFormat: {
27837            LT: 'h:mm A',
27838            LTS: 'h:mm:ss A',
27839            L: 'MM/DD/YYYY',
27840            LL: 'D [de] MMMM [de] YYYY',
27841            LLL: 'D [de] MMMM [de] YYYY h:mm A',
27842            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
27843        },
27844        calendar: {
27845            sameDay: function () {
27846                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
27847            },
27848            nextDay: function () {
27849                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
27850            },
27851            nextWeek: function () {
27852                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
27853            },
27854            lastDay: function () {
27855                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
27856            },
27857            lastWeek: function () {
27858                return (
27859                    '[el] dddd [pasado a la' +
27860                    (this.hours() !== 1 ? 's' : '') +
27861                    '] LT'
27862                );
27863            },
27864            sameElse: 'L',
27865        },
27866        relativeTime: {
27867            future: 'en %s',
27868            past: 'hace %s',
27869            s: 'unos segundos',
27870            ss: '%d segundos',
27871            m: 'un minuto',
27872            mm: '%d minutos',
27873            h: 'una hora',
27874            hh: '%d horas',
27875            d: 'un día',
27876            dd: '%d días',
27877            w: 'una semana',
27878            ww: '%d semanas',
27879            M: 'un mes',
27880            MM: '%d meses',
27881            y: 'un año',
27882            yy: '%d años',
27883        },
27884        dayOfMonthOrdinalParse: /\d{1,2}º/,
27885        ordinal: '%dº',
27886        week: {
27887            dow: 0, // Sunday is the first day of the week.
27888            doy: 6, // The week that contains Jan 6th is the first week of the year.
27889        },
27890    });
27891
27892    return esUs;
27893
27894})));
27895
27896
27897/***/ }),
27898
27899/***/ 6584:
27900/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27901
27902//! moment.js locale configuration
27903//! locale : English (Ireland) [en-ie]
27904//! author : Chris Cartlidge : https://github.com/chriscartlidge
27905
27906;(function (global, factory) {
27907    true ? factory(__webpack_require__(5093)) :
27908   0
27909}(this, (function (moment) { 'use strict';
27910
27911    //! moment.js locale configuration
27912
27913    var enIe = moment.defineLocale('en-ie', {
27914        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
27915            '_'
27916        ),
27917        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
27918        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
27919            '_'
27920        ),
27921        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
27922        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
27923        longDateFormat: {
27924            LT: 'HH:mm',
27925            LTS: 'HH:mm:ss',
27926            L: 'DD/MM/YYYY',
27927            LL: 'D MMMM YYYY',
27928            LLL: 'D MMMM YYYY HH:mm',
27929            LLLL: 'dddd D MMMM YYYY HH:mm',
27930        },
27931        calendar: {
27932            sameDay: '[Today at] LT',
27933            nextDay: '[Tomorrow at] LT',
27934            nextWeek: 'dddd [at] LT',
27935            lastDay: '[Yesterday at] LT',
27936            lastWeek: '[Last] dddd [at] LT',
27937            sameElse: 'L',
27938        },
27939        relativeTime: {
27940            future: 'in %s',
27941            past: '%s ago',
27942            s: 'a few seconds',
27943            ss: '%d seconds',
27944            m: 'a minute',
27945            mm: '%d minutes',
27946            h: 'an hour',
27947            hh: '%d hours',
27948            d: 'a day',
27949            dd: '%d days',
27950            M: 'a month',
27951            MM: '%d months',
27952            y: 'a year',
27953            yy: '%d years',
27954        },
27955        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
27956        ordinal: function (number) {
27957            var b = number % 10,
27958                output =
27959                    ~~((number % 100) / 10) === 1
27960                        ? 'th'
27961                        : b === 1
27962                          ? 'st'
27963                          : b === 2
27964                            ? 'nd'
27965                            : b === 3
27966                              ? 'rd'
27967                              : 'th';
27968            return number + output;
27969        },
27970        week: {
27971            dow: 1, // Monday is the first day of the week.
27972            doy: 4, // The week that contains Jan 4th is the first week of the year.
27973        },
27974    });
27975
27976    return enIe;
27977
27978})));
27979
27980
27981/***/ }),
27982
27983/***/ 6618:
27984/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
27985
27986//! moment.js locale configuration
27987//! locale : Ukrainian [uk]
27988//! author : zemlanin : https://github.com/zemlanin
27989//! Author : Menelion Elensúle : https://github.com/Oire
27990
27991;(function (global, factory) {
27992    true ? factory(__webpack_require__(5093)) :
27993   0
27994}(this, (function (moment) { 'use strict';
27995
27996    //! moment.js locale configuration
27997
27998    function plural(word, num) {
27999        var forms = word.split('_');
28000        return num % 10 === 1 && num % 100 !== 11
28001            ? forms[0]
28002            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
28003              ? forms[1]
28004              : forms[2];
28005    }
28006    function relativeTimeWithPlural(number, withoutSuffix, key) {
28007        var format = {
28008            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
28009            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
28010            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
28011            dd: 'день_дні_днів',
28012            MM: 'місяць_місяці_місяців',
28013            yy: 'рік_роки_років',
28014        };
28015        if (key === 'm') {
28016            return withoutSuffix ? 'хвилина' : 'хвилину';
28017        } else if (key === 'h') {
28018            return withoutSuffix ? 'година' : 'годину';
28019        } else {
28020            return number + ' ' + plural(format[key], +number);
28021        }
28022    }
28023    function weekdaysCaseReplace(m, format) {
28024        var weekdays = {
28025                nominative:
28026                    'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
28027                        '_'
28028                    ),
28029                accusative:
28030                    'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
28031                        '_'
28032                    ),
28033                genitive:
28034                    'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
28035                        '_'
28036                    ),
28037            },
28038            nounCase;
28039
28040        if (m === true) {
28041            return weekdays['nominative']
28042                .slice(1, 7)
28043                .concat(weekdays['nominative'].slice(0, 1));
28044        }
28045        if (!m) {
28046            return weekdays['nominative'];
28047        }
28048
28049        nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
28050            ? 'accusative'
28051            : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
28052              ? 'genitive'
28053              : 'nominative';
28054        return weekdays[nounCase][m.day()];
28055    }
28056    function processHoursFunction(str) {
28057        return function () {
28058            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
28059        };
28060    }
28061
28062    var uk = moment.defineLocale('uk', {
28063        months: {
28064            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
28065                '_'
28066            ),
28067            standalone:
28068                'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
28069                    '_'
28070                ),
28071        },
28072        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
28073            '_'
28074        ),
28075        weekdays: weekdaysCaseReplace,
28076        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
28077        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
28078        longDateFormat: {
28079            LT: 'HH:mm',
28080            LTS: 'HH:mm:ss',
28081            L: 'DD.MM.YYYY',
28082            LL: 'D MMMM YYYY р.',
28083            LLL: 'D MMMM YYYY р., HH:mm',
28084            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
28085        },
28086        calendar: {
28087            sameDay: processHoursFunction('[Сьогодні '),
28088            nextDay: processHoursFunction('[Завтра '),
28089            lastDay: processHoursFunction('[Вчора '),
28090            nextWeek: processHoursFunction('[У] dddd ['),
28091            lastWeek: function () {
28092                switch (this.day()) {
28093                    case 0:
28094                    case 3:
28095                    case 5:
28096                    case 6:
28097                        return processHoursFunction('[Минулої] dddd [').call(this);
28098                    case 1:
28099                    case 2:
28100                    case 4:
28101                        return processHoursFunction('[Минулого] dddd [').call(this);
28102                }
28103            },
28104            sameElse: 'L',
28105        },
28106        relativeTime: {
28107            future: 'за %s',
28108            past: '%s тому',
28109            s: 'декілька секунд',
28110            ss: relativeTimeWithPlural,
28111            m: relativeTimeWithPlural,
28112            mm: relativeTimeWithPlural,
28113            h: 'годину',
28114            hh: relativeTimeWithPlural,
28115            d: 'день',
28116            dd: relativeTimeWithPlural,
28117            M: 'місяць',
28118            MM: relativeTimeWithPlural,
28119            y: 'рік',
28120            yy: relativeTimeWithPlural,
28121        },
28122        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
28123        meridiemParse: /ночі|ранку|дня|вечора/,
28124        isPM: function (input) {
28125            return /^(дня|вечора)$/.test(input);
28126        },
28127        meridiem: function (hour, minute, isLower) {
28128            if (hour < 4) {
28129                return 'ночі';
28130            } else if (hour < 12) {
28131                return 'ранку';
28132            } else if (hour < 17) {
28133                return 'дня';
28134            } else {
28135                return 'вечора';
28136            }
28137        },
28138        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
28139        ordinal: function (number, period) {
28140            switch (period) {
28141                case 'M':
28142                case 'd':
28143                case 'DDD':
28144                case 'w':
28145                case 'W':
28146                    return number + '-й';
28147                case 'D':
28148                    return number + '-го';
28149                default:
28150                    return number;
28151            }
28152        },
28153        week: {
28154            dow: 1, // Monday is the first day of the week.
28155            doy: 7, // The week that contains Jan 7th is the first week of the year.
28156        },
28157    });
28158
28159    return uk;
28160
28161})));
28162
28163
28164/***/ }),
28165
28166/***/ 6637:
28167/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28168
28169//! moment.js locale configuration
28170//! locale : Slovenian [sl]
28171//! author : Robert Sedovšek : https://github.com/sedovsek
28172
28173;(function (global, factory) {
28174    true ? factory(__webpack_require__(5093)) :
28175   0
28176}(this, (function (moment) { 'use strict';
28177
28178    //! moment.js locale configuration
28179
28180    function processRelativeTime(number, withoutSuffix, key, isFuture) {
28181        var result = number + ' ';
28182        switch (key) {
28183            case 's':
28184                return withoutSuffix || isFuture
28185                    ? 'nekaj sekund'
28186                    : 'nekaj sekundami';
28187            case 'ss':
28188                if (number === 1) {
28189                    result += withoutSuffix ? 'sekundo' : 'sekundi';
28190                } else if (number === 2) {
28191                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
28192                } else if (number < 5) {
28193                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
28194                } else {
28195                    result += 'sekund';
28196                }
28197                return result;
28198            case 'm':
28199                return withoutSuffix ? 'ena minuta' : 'eno minuto';
28200            case 'mm':
28201                if (number === 1) {
28202                    result += withoutSuffix ? 'minuta' : 'minuto';
28203                } else if (number === 2) {
28204                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
28205                } else if (number < 5) {
28206                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';
28207                } else {
28208                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';
28209                }
28210                return result;
28211            case 'h':
28212                return withoutSuffix ? 'ena ura' : 'eno uro';
28213            case 'hh':
28214                if (number === 1) {
28215                    result += withoutSuffix ? 'ura' : 'uro';
28216                } else if (number === 2) {
28217                    result += withoutSuffix || isFuture ? 'uri' : 'urama';
28218                } else if (number < 5) {
28219                    result += withoutSuffix || isFuture ? 'ure' : 'urami';
28220                } else {
28221                    result += withoutSuffix || isFuture ? 'ur' : 'urami';
28222                }
28223                return result;
28224            case 'd':
28225                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
28226            case 'dd':
28227                if (number === 1) {
28228                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';
28229                } else if (number === 2) {
28230                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
28231                } else {
28232                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
28233                }
28234                return result;
28235            case 'M':
28236                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
28237            case 'MM':
28238                if (number === 1) {
28239                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
28240                } else if (number === 2) {
28241                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
28242                } else if (number < 5) {
28243                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
28244                } else {
28245                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
28246                }
28247                return result;
28248            case 'y':
28249                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
28250            case 'yy':
28251                if (number === 1) {
28252                    result += withoutSuffix || isFuture ? 'leto' : 'letom';
28253                } else if (number === 2) {
28254                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';
28255                } else if (number < 5) {
28256                    result += withoutSuffix || isFuture ? 'leta' : 'leti';
28257                } else {
28258                    result += withoutSuffix || isFuture ? 'let' : 'leti';
28259                }
28260                return result;
28261        }
28262    }
28263
28264    var sl = moment.defineLocale('sl', {
28265        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
28266            '_'
28267        ),
28268        monthsShort:
28269            'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
28270                '_'
28271            ),
28272        monthsParseExact: true,
28273        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
28274        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
28275        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
28276        weekdaysParseExact: true,
28277        longDateFormat: {
28278            LT: 'H:mm',
28279            LTS: 'H:mm:ss',
28280            L: 'DD. MM. YYYY',
28281            LL: 'D. MMMM YYYY',
28282            LLL: 'D. MMMM YYYY H:mm',
28283            LLLL: 'dddd, D. MMMM YYYY H:mm',
28284        },
28285        calendar: {
28286            sameDay: '[danes ob] LT',
28287            nextDay: '[jutri ob] LT',
28288
28289            nextWeek: function () {
28290                switch (this.day()) {
28291                    case 0:
28292                        return '[v] [nedeljo] [ob] LT';
28293                    case 3:
28294                        return '[v] [sredo] [ob] LT';
28295                    case 6:
28296                        return '[v] [soboto] [ob] LT';
28297                    case 1:
28298                    case 2:
28299                    case 4:
28300                    case 5:
28301                        return '[v] dddd [ob] LT';
28302                }
28303            },
28304            lastDay: '[včeraj ob] LT',
28305            lastWeek: function () {
28306                switch (this.day()) {
28307                    case 0:
28308                        return '[prejšnjo] [nedeljo] [ob] LT';
28309                    case 3:
28310                        return '[prejšnjo] [sredo] [ob] LT';
28311                    case 6:
28312                        return '[prejšnjo] [soboto] [ob] LT';
28313                    case 1:
28314                    case 2:
28315                    case 4:
28316                    case 5:
28317                        return '[prejšnji] dddd [ob] LT';
28318                }
28319            },
28320            sameElse: 'L',
28321        },
28322        relativeTime: {
28323            future: 'čez %s',
28324            past: 'pred %s',
28325            s: processRelativeTime,
28326            ss: processRelativeTime,
28327            m: processRelativeTime,
28328            mm: processRelativeTime,
28329            h: processRelativeTime,
28330            hh: processRelativeTime,
28331            d: processRelativeTime,
28332            dd: processRelativeTime,
28333            M: processRelativeTime,
28334            MM: processRelativeTime,
28335            y: processRelativeTime,
28336            yy: processRelativeTime,
28337        },
28338        dayOfMonthOrdinalParse: /\d{1,2}\./,
28339        ordinal: '%d.',
28340        week: {
28341            dow: 1, // Monday is the first day of the week.
28342            doy: 7, // The week that contains Jan 7th is the first week of the year.
28343        },
28344    });
28345
28346    return sl;
28347
28348})));
28349
28350
28351/***/ }),
28352
28353/***/ 6794:
28354/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28355
28356//! moment.js locale configuration
28357//! locale : Albanian [sq]
28358//! author : Flakërim Ismani : https://github.com/flakerimi
28359//! author : Menelion Elensúle : https://github.com/Oire
28360//! author : Oerd Cukalla : https://github.com/oerd
28361
28362;(function (global, factory) {
28363    true ? factory(__webpack_require__(5093)) :
28364   0
28365}(this, (function (moment) { 'use strict';
28366
28367    //! moment.js locale configuration
28368
28369    var sq = moment.defineLocale('sq', {
28370        months: 'Janar_Shku
28370rt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
28371            '_'
28372        ),
28373        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
28374        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
28375            '_'
28376        ),
28377        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
28378        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
28379        weekdaysParseExact: true,
28380        meridiemParse: /PD|MD/,
28381        isPM: function (input) {
28382            return input.charAt(0) === 'M';
28383        },
28384        meridiem: function (hours, minutes, isLower) {
28385            return hours < 12 ? 'PD' : 'MD';
28386        },
28387        longDateFormat: {
28388            LT: 'HH:mm',
28389            LTS: 'HH:mm:ss',
28390            L: 'DD/MM/YYYY',
28391            LL: 'D MMMM YYYY',
28392            LLL: 'D MMMM YYYY HH:mm',
28393            LLLL: 'dddd, D MMMM YYYY HH:mm',
28394        },
28395        calendar: {
28396            sameDay: '[Sot në] LT',
28397            nextDay: '[Nesër në] LT',
28398            nextWeek: 'dddd [në] LT',
28399            lastDay: '[Dje në] LT',
28400            lastWeek: 'dddd [e kaluar në] LT',
28401            sameElse: 'L',
28402        },
28403        relativeTime: {
28404            future: 'në %s',
28405            past: '%s më parë',
28406            s: 'disa sekonda',
28407            ss: '%d sekonda',
28408            m: 'një minutë',
28409            mm: '%d minuta',
28410            h: 'një orë',
28411            hh: '%d orë',
28412            d: 'një ditë',
28413            dd: '%d ditë',
28414            M: 'një muaj',
28415            MM: '%d muaj',
28416            y: 'një vit',
28417            yy: '%d vite',
28418        },
28419        dayOfMonthOrdinalParse: /\d{1,2}\./,
28420        ordinal: '%d.',
28421        week: {
28422            dow: 1, // Monday is the first day of the week.
28423            doy: 4, // The week that contains Jan 4th is the first week of the year.
28424        },
28425    });
28426
28427    return sq;
28428
28429})));
28430
28431
28432/***/ }),
28433
28434/***/ 6870:
28435/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28436
28437//! moment.js locale configuration
28438//! locale : Cambodian [km]
28439//! author : Kruy Vanna : https://github.com/kruyvanna
28440
28441;(function (global, factory) {
28442    true ? factory(__webpack_require__(5093)) :
28443   0
28444}(this, (function (moment) { 'use strict';
28445
28446    //! moment.js locale configuration
28447
28448    var symbolMap = {
28449            1: '១',
28450            2: '២',
28451            3: '៣',
28452            4: '៤',
28453            5: '៥',
28454            6: '៦',
28455            7: '៧',
28456            8: '៨',
28457            9: '៩',
28458            0: '០',
28459        },
28460        numberMap = {
28461            '១': '1',
28462            '២': '2',
28463            '៣': '3',
28464            '៤': '4',
28465            '៥': '5',
28466            '៦': '6',
28467            '៧': '7',
28468            '៨': '8',
28469            '៩': '9',
28470            '០': '0',
28471        };
28472
28473    var km = moment.defineLocale('km', {
28474        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
28475            '_'
28476        ),
28477        monthsShort:
28478            'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
28479                '_'
28480            ),
28481        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
28482        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
28483        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
28484        weekdaysParseExact: true,
28485        longDateFormat: {
28486            LT: 'HH:mm',
28487            LTS: 'HH:mm:ss',
28488            L: 'DD/MM/YYYY',
28489            LL: 'D MMMM YYYY',
28490            LLL: 'D MMMM YYYY HH:mm',
28491            LLLL: 'dddd, D MMMM YYYY HH:mm',
28492        },
28493        meridiemParse: /ព្រឹក|ល្ងាច/,
28494        isPM: function (input) {
28495            return input === 'ល្ងាច';
28496        },
28497        meridiem: function (hour, minute, isLower) {
28498            if (hour < 12) {
vendor: 7,998 bytes, lines 28499-28746
28499                return 'ព្រឹក';
28500            } else {
28501                return 'ល្ងាច';
28502            }
28503        },
28504        calendar: {
28505            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
28506            nextDay: '[ស្អែក ម៉ោង] LT',
28507            nextWeek: 'dddd [ម៉ោង] LT',
28508            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
28509            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
28510            sameElse: 'L',
28511        },
28512        relativeTime: {
28513            future: '%sទៀត',
28514            past: '%sមុន',
28515            s: 'ប៉ុន្មានវិនាទី',
28516            ss: '%d វិនាទី',
28517            m: 'មួយនាទី',
28518            mm: '%d នាទី',
28519            h: 'មួយម៉ោង',
28520            hh: '%d ម៉ោង',
28521            d: 'មួយថ្ងៃ',
28522            dd: '%d ថ្ងៃ',
28523            M: 'មួយខែ',
28524            MM: '%d ខែ',
28525            y: 'មួយឆ្នាំ',
28526            yy: '%d ឆ្នាំ',
28527        },
28528        dayOfMonthOrdinalParse: /ទី\d{1,2}/,
28529        ordinal: 'ទី%d',
28530        preparse: function (string) {
28531            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
28532                return numberMap[match];
28533            });
28534        },
28535        postformat: function (string) {
28536            return string.replace(/\d/g, function (match) {
28537                return symbolMap[match];
28538            });
28539        },
28540        week: {
28541            dow: 1, // Monday is the first day of the week.
28542            doy: 4, // The week that contains Jan 4th is the first week of the year.
28543        },
28544    });
28545
28546    return km;
28547
28548})));
28549
28550
28551/***/ }),
28552
28553/***/ 6947:
28554/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28555
28556//! moment.js locale configuration
28557//! locale : Arabic (Palestine) [ar-ps]
28558//! author : Majd Al-Shihabi : https://github.com/majdal
28559
28560;(function (global, factory) {
28561    true ? factory(__webpack_require__(5093)) :
28562   0
28563}(this, (function (moment) { 'use strict';
28564
28565    //! moment.js locale configuration
28566
28567    var symbolMap = {
28568            1: 'Ù¡',
28569            2: 'Ù¢',
28570            3: 'Ù£',
28571            4: 'Ù¤',
28572            5: 'Ù¥',
28573            6: 'Ù¦',
28574            7: 'Ù§',
28575            8: 'Ù¨',
28576            9: 'Ù©',
28577            0: 'Ù ',
28578        },
28579        numberMap = {
28580            'Ù¡': '1',
28581            'Ù¢': '2',
28582            'Ù£': '3',
28583            'Ù¤': '4',
28584            'Ù¥': '5',
28585            'Ù¦': '6',
28586            'Ù§': '7',
28587            'Ù¨': '8',
28588            'Ù©': '9',
28589            'Ù ': '0',
28590        };
28591
28592    var arPs = moment.defineLocale('ar-ps', {
28593        months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(
28594            '_'
28595        ),
28596        monthsShort:
28597            'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),
28598        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
28599        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
28600        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
28601        weekdaysParseExact: true,
28602        longDateFormat: {
28603            LT: 'HH:mm',
28604            LTS: 'HH:mm:ss',
28605            L: 'DD/MM/YYYY',
28606            LL: 'D MMMM YYYY',
28607            LLL: 'D MMMM YYYY HH:mm',
28608            LLLL: 'dddd D MMMM YYYY HH:mm',
28609        },
28610        meridiemParse: /ص|م/,
28611        isPM: function (input) {
28612            return 'م' === input;
28613        },
28614        meridiem: function (hour, minute, isLower) {
28615            if (hour < 12) {
28616                return 'ص';
28617            } else {
28618                return 'م';
28619            }
28620        },
28621        calendar: {
28622            sameDay: '[اليوم على الساعة] LT',
28623            nextDay: '[غدا على الساعة] LT',
28624            nextWeek: 'dddd [على الساعة] LT',
28625            lastDay: '[أمس على الساعة] LT',
28626            lastWeek: 'dddd [على الساعة] LT',
28627            sameElse: 'L',
28628        },
28629        relativeTime: {
28630            future: 'في %s',
28631            past: 'منذ %s',
28632            s: 'ثوان',
28633            ss: '%d ثانية',
28634            m: 'دقيقة',
28635            mm: '%d دقائق',
28636            h: 'ساعة',
28637            hh: '%d ساعات',
28638            d: 'يوم',
28639            dd: '%d أيام',
28640            M: 'شهر',
28641            MM: '%d أشهر',
28642            y: 'سنة',
28643            yy: '%d سنوات',
28644        },
28645        preparse: function (string) {
28646            return string
28647                .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {
28648                    return numberMap[match];
28649                })
28650                .split('') // reversed since negative lookbehind not supported everywhere
28651                .reverse()
28652                .join('')
28653                .replace(/[١٢](?![\u062a\u0643])/g, function (match) {
28654                    return numberMap[match];
28655                })
28656                .split('')
28657                .reverse()
28658                .join('')
28659                .replace(/،/g, ',');
28660        },
28661        postformat: function (string) {
28662            return string
28663                .replace(/\d/g, function (match) {
28664                    return symbolMap[match];
28665                })
28666                .replace(/,/g, '،');
28667        },
28668        week: {
28669            dow: 0, // Sunday is the first day of the week.
28670            doy: 6, // The week that contains Jan 6th is the first week of the year.
28671        },
28672    });
28673
28674    return arPs;
28675
28676})));
28677
28678
28679/***/ }),
28680
28681/***/ 7071:
28682/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28683
28684//! moment.js locale configuration
28685//! locale : Frisian [fy]
28686//! author : Robin van der Vliet : https://github.com/robin0van0der0v
28687
28688;(function (global, factory) {
28689    true ? factory(__webpack_require__(5093)) :
28690   0
28691}(this, (function (moment) { 'use strict';
28692
28693    //! moment.js locale configuration
28694
28695    var monthsShortWithDots =
28696            'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
28697        monthsShortWithoutDots =
28698            'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
28699
28700    var fy = moment.defineLocale('fy', {
28701        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
28702            '_'
28703        ),
28704        monthsShort: function (m, format) {
28705            if (!m) {
28706                return monthsShortWithDots;
28707            } else if (/-MMM-/.test(format)) {
28708                return monthsShortWithoutDots[m.month()];
28709            } else {
28710                return monthsShortWithDots[m.month()];
28711            }
28712        },
28713        monthsParseExact: true,
28714        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
28715            '_'
28716        ),
28717        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
28718        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
28719        weekdaysParseExact: true,
28720        longDateFormat: {
28721            LT: 'HH:mm',
28722            LTS: 'HH:mm:ss',
28723            L: 'DD-MM-YYYY',
28724            LL: 'D MMMM YYYY',
28725            LLL: 'D MMMM YYYY HH:mm',
28726            LLLL: 'dddd D MMMM YYYY HH:mm',
28727        },
28728        calendar: {
28729            sameDay: '[hjoed om] LT',
28730            nextDay: '[moarn om] LT',
28731            nextWeek: 'dddd [om] LT',
28732            lastDay: '[juster om] LT',
28733            lastWeek: '[ôfrûne] dddd [om] LT',
28734            sameElse: 'L',
28735        },
28736        relativeTime: {
28737            future: 'oer %s',
28738            past: '%s lyn',
28739            s: 'in pear sekonden',
28740            ss: '%d sekonden',
28741            m: 'ien minút',
28742            mm: '%d minuten',
28743            h: 'ien oere',
28744            hh: '%d oeren',
28745            d: 'ien dei',
28746            dd: '%d dagen',
28747            M: 'ien moanne',
28748            MM: '%d moannen',
28749            y: 'ien jier',
28750            yy: '%d jierren',
28751        },
28752        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
28753        ordinal: function (number) {
28754            return (
28755                number +
28756                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
28757            );
28758        },
28759        week: {
28760            dow: 1, // Monday is the first day of the week.
28761            doy: 4, // The week that contains Jan 4th is the first week of the year.
28762        },
28763    });
28764
28765    return fy;
28766
28767})));
28768
28769
28770/***/ }),
28771
28772/***/ 7075:
28773/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28774
28775//! moment.js locale configuration
28776//! locale : Maltese (Malta) [mt]
28777//! author : Alessandro Maruccia : https://github.com/alesma
28778
28779;(function (global, factory) {
28780    true ? factory(__webpack_require__(5093)) :
28781   0
28782}(this, (function (moment) { 'use strict';
28783
28784    //! moment.js locale configuration
28785
28786    var mt = moment.defineLocale('mt', {
28787        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
28788            '_'
28789        ),
28790        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
28791        weekdays:
28792            'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
28793                '_'
28794            ),
28795        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
28796        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
28797        longDateFormat: {
28798            LT: 'HH:mm',
28799            LTS: 'HH:mm:ss',
28800            L: 'DD/MM/YYYY',
28801            LL: 'D MMMM YYYY',
28802            LLL: 'D MMMM YYYY HH:mm',
28803            LLLL: 'dddd, D MMMM YYYY HH:mm',
28804        },
28805        calendar: {
28806            sameDay: '[Illum fil-]LT',
28807            nextDay: '[Għada fil-]LT',
28808            nextWeek: 'dddd [fil-]LT',
28809            lastDay: '[Il-bieraħ fil-]LT',
28810            lastWeek: 'dddd [li għadda] [fil-]LT',
28811            sameElse: 'L',
28812        },
28813        relativeTime: {
28814            future: 'f’ %s',
28815            past: '%s ilu',
28816            s: 'ftit sekondi',
28817            ss: '%d sekondi',
28818            m: 'minuta',
28819            mm: '%d minuti',
28820            h: 'siegħa',
28821            hh: '%d siegħat',
28822            d: 'ġurnata',
28823            dd: '%d ġranet',
28824            M: 'xahar',
28825            MM: '%d xhur',
28826            y: 'sena',
28827            yy: '%d sni',
28828        },
28829        dayOfMonthOrdinalParse: /\d{1,2}º/,
28830        ordinal: '%dº',
28831        week: {
28832            dow: 1, // Monday is the first day of the week.
28833            doy: 4, // The week that contains Jan 4th is the first week of the year.
28834        },
28835    });
28836
28837    return mt;
28838
28839})));
28840
28841
28842/***/ }),
28843
28844/***/ 7088:
28845/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28846
28847//! moment.js locale configuration
28848//! locale : Kazakh [kk]
28849//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
28850
28851;(function (global, factory) {
28852    true ? factory(__webpack_require__(5093)) :
28853   0
28854}(this, (function (moment) { 'use strict';
28855
28856    //! moment.js locale configuration
28857
28858    var suffixes = {
28859        0: '-ші',
28860        1: '-ші',
28861        2: '-ші',
28862        3: '-ші',
28863        4: '-ші',
28864        5: '-ші',
28865        6: '-шы',
28866        7: '-ші',
28867        8: '-ші',
28868        9: '-шы',
28869        10: '-шы',
28870        20: '-шы',
28871        30: '-шы',
28872        40: '-шы',
28873        50: '-ші',
28874        60: '-шы',
28875        70: '-ші',
28876        80: '-ші',
28877        90: '-шы',
28878        100: '-ші',
28879    };
28880
28881    var kk = moment.defineLocale('kk', {
28882        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
28883            '_'
28884        ),
28885        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
28886        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
28887            '_'
28888        ),
28889        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
28890        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
28891        longDateFormat: {
28892            LT: 'HH:mm',
28893            LTS: 'HH:mm:ss',
28894            L: 'DD.MM.YYYY',
28895            LL: 'D MMMM YYYY',
28896            LLL: 'D MMMM YYYY HH:mm',
28897            LLLL: 'dddd, D MMMM YYYY HH:mm',
28898        },
28899        calendar: {
28900            sameDay: '[Бүгін сағат] LT',
28901            nextDay: '[Ертең сағат] LT',
28902            nextWeek: 'dddd [сағат] LT',
28903            lastDay: '[Кеше сағат] LT',
28904            lastWeek: '[Өткен аптаның] dddd [сағат] LT',
28905            sameElse: 'L',
28906        },
28907        relativeTime: {
28908            future: '%s ішінде',
28909            past: '%s бұрын',
28910            s: 'бірнеше секунд',
28911            ss: '%d секунд',
28912            m: 'бір минут',
28913            mm: '%d минут',
28914            h: 'бір сағат',
28915            hh: '%d сағат',
28916            d: 'бір күн',
28917            dd: '%d күн',
28918            M: 'бір ай',
28919            MM: '%d ай',
28920            y: 'бір жыл',
28921            yy: '%d жыл',
28922        },
28923        dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
28924        ordinal: function (number) {
28925            var a = number % 10,
28926                b = number >= 100 ? 100 : null;
28927            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
28928        },
28929        week: {
28930            dow: 1, // Monday is the first day of the week.
28931            doy: 7, // The week that contains Jan 7th is the first week of the year.
28932        },
28933    });
28934
28935    return kk;
28936
28937})));
28938
28939
28940/***/ }),
28941
28942/***/ 7160:
28943/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
28944
28945//! moment.js locale configuration
28946//! locale : Armenian [hy-am]
28947//! author : Armendarabyan : https://github.com/armendarabyan
28948
28949;(function (global, factory) {
28950    true ? factory(__webpack_require__(5093)) :
28951   0
28952}(this, (function (moment) { 'use strict';
28953
28954    //! moment.js locale configuration
28955
28956    var hyAm = moment.defineLocale('hy-am', {
28957        months: {
28958            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
28959                '_'
28960            ),
28961            standalone:
28962                'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
28963                    '_'
28964                ),
28965        },
28966        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
28967        weekdays:
28968            'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
28969                '_'
28970            ),
28971        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
28972        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
28973        longDateFormat: {
28974            LT: 'HH:mm',
28975            LTS: 'HH:mm:ss',
28976            L: 'DD.MM.YYYY',
28977            LL: 'D MMMM YYYY Õ©.',
28978            LLL: 'D MMMM YYYY Õ©., HH:mm',
28979            LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',
28980        },
28981        calendar: {
28982            sameDay: '[այսօր] LT',
28983            nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',
28984            lastDay: '[երեկ] LT',
28985            nextWeek: function () {
28986                return 'dddd [օրը ժամը] LT';
28987            },
28988            lastWeek: function () {
28989                return '[անցած] dddd [օրը ժամը] LT';
28990            },
28991            sameElse: 'L',
28992        },
28993        relativeTime: {
28994            future: '%s Õ°Õ¥Õ¿Õ¸',
28995            past: '%s Õ¡Õ¼Õ¡Õ»',
28996            s: 'մի քանի վայրկյան',
28997            ss: '%d վայրկյան',
28998            m: 'րոպե',
28999            mm: '%d րոպե',
29000            h: 'ÕªÕ¡Õ´',
29001            hh: '%d ÕªÕ¡Õ´',
29002            d: 'օր',
29003            dd: '%d օր',
29004            M: 'Õ¡Õ´Õ«Õ½',
29005            MM: '%d Õ¡Õ´Õ«Õ½',
29006            y: 'տարի',
29007            yy: '%d տարի',
29008        },
29009        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
29010        isPM: function (input) {
29011            return /^(ցերեկվա|երեկոյան)$/.test(input);
29012        },
29013        meridiem: function (hour) {
29014            if (hour < 4) {
29015                return 'գիշերվա';
29016            } else if (hour < 12) {
29017                return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';
29018            } else if (hour < 17) {
29019                return 'ցերեկվա';
29020            } else {
29021                return 'երեկոյան';
29022            }
29023        },
29024        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
29025        ordinal: function (number, period) {
29026            switch (period) {
29027                case 'DDD':
29028                case 'w':
29029                case 'W':
29030                case 'DDDo':
29031                    if (number === 1) {
29032                        return number + '-Õ«Õ¶';
29033                    }
29034                    return number + '-րդ';
29035                default:
29036                    return number;
29037            }
29038        },
29039        week: {
29040            dow: 1, // Monday is the first day of the week.
29041            doy: 7, // The week that contains Jan 7th is the first week of the year.
29042        },
29043    });
29044
29045    return hyAm;
29046
29047})));
29048
29049
29050/***/ }),
29051
29052/***/ 7306:
29053/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29054
29055//! moment.js locale configuration
29056//! locale : Catalan [ca]
29057//! author : Juan G. Hurtado : https://github.com/juanghurtado
29058
29059;(function (global, factory) {
29060    true ? factory(__webpack_require__(5093)) :
29061   0
29062}(this, (function (moment) { 'use strict';
29063
29064    //! moment.js locale configuration
29065
29066    var ca = moment.defineLocale('ca', {
29067        months: {
29068            standalone:
29069                'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
29070                    '_'
29071                ),
29072            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(
29073                '_'
29074            ),
29075            isFormat: /D[oD]?(\s)+MMMM/,
29076        },
29077        monthsShort:
29078            'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
29079                '_'
29080            ),
29081        monthsParseExact: true,
29082        weekdays:
29083            'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
29084                '_'
29085            ),
29086        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
29087        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
29088        weekdaysParseExact: true,
29089        longDateFormat: {
29090            LT: 'H:mm',
29091            LTS: 'H:mm:ss',
29092            L: 'DD/MM/YYYY',
29093            LL: 'D MMMM [de] YYYY',
29094            ll: 'D MMM YYYY',
29095            LLL: 'D MMMM [de] YYYY [a les] H:mm',
29096            lll: 'D MMM YYYY, H:mm',
29097            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
29098            llll: 'ddd D MMM YYYY, H:mm',
29099        },
29100        calendar: {
29101            sameDay: function () {
29102                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
29103            },
29104            nextDay: function () {
29105                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
29106            },
29107            nextWeek: function () {
29108                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
29109            },
29110            lastDay: function () {
29111                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
29112            },
29113            lastWeek: function () {
29114                return (
29115                    '[el] dddd [passat a ' +
29116                    (this.hours() !== 1 ? 'les' : 'la') +
29117                    '] LT'
29118                );
29119            },
29120            sameElse: 'L',
29121        },
29122        relativeTime: {
29123            future: "d'aquí %s",
29124            past: 'fa %s',
29125            s: 'uns segons',
29126            ss: '%d segons',
29127            m: 'un minut',
29128            mm: '%d minuts',
29129            h: 'una hora',
29130            hh: '%d hores',
29131            d: 'un dia',
29132            dd: '%d dies',
29133            M: 'un mes',
29134            MM: '%d mesos',
29135            y: 'un any',
29136            yy: '%d anys',
29137        },
29138        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
29139        ordinal: function (number, period) {
29140            var output =
29141                number === 1
29142                    ? 'r'
29143                    : number === 2
29144                      ? 'n'
29145                      : number === 3
29146                        ? 'r'
29147                        : number === 4
29148                          ? 't'
29149                          : 'è';
29150            if (period === 'w' || period === 'W') {
29151                output = 'a';
29152            }
29153            return number + output;
29154        },
29155        week: {
29156            dow: 1, // Monday is the first day of the week.
29157            doy: 4, // The week that contains Jan 4th is the first week of the year.
29158        },
29159    });
29160
29161    return ca;
29162
29163})));
29164
29165
29166/***/ }),
29167
29168/***/ 7329:
29169/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29170
29171//! moment.js locale configuration
29172//! locale : Galician [gl]
29173//! author : Juan G. Hurtado : https://github.com/juanghurtado
29174
29175;(function (global, factory) {
29176    true ? factory(__webpack_require__(5093)) :
29177   0
29178}(this, (function (moment) { 'use strict';
29179
29180    //! moment.js locale configuration
29181
29182    var gl = moment.defineLocale('gl', {
29183        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
29184            '_'
29185        ),
29186        monthsShort:
29187            'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
29188                '_'
29189            ),
29190        monthsParseExact: true,
29191        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
29192        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
29193        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
29194        weekdaysParseExact: true,
29195        longDateFormat: {
29196            LT: 'H:mm',
29197            LTS: 'H:mm:ss',
29198            L: 'DD/MM/YYYY',
29199            LL: 'D [de] MMMM [de] YYYY',
29200            LLL: 'D [de] MMMM [de] YYYY H:mm',
29201            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
29202        },
29203        calendar: {
29204            sameDay: function () {
29205                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
29206            },
29207            nextDay: function () {
29208                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
29209            },
29210            nextWeek: function () {
29211                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
29212            },
29213            lastDay: function () {
29214                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
29215            },
29216            lastWeek: function () {
29217                return (
29218                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
29219                );
29220            },
29221            sameElse: 'L',
29222        },
29223        relativeTime: {
29224            future: function (str) {
29225                if (str.indexOf('un') === 0) {
29226                    return 'n' + str;
29227                }
29228                return 'en ' + str;
29229            },
29230            past: 'hai %s',
29231            s: 'uns segundos',
29232            ss: '%d segundos',
29233            m: 'un minuto',
29234            mm: '%d minutos',
29235            h: 'unha hora',
29236            hh: '%d horas',
29237            d: 'un día',
29238            dd: '%d días',
29239            M: 'un mes',
29240            MM: '%d meses',
29241            y: 'un ano',
29242            yy: '%d anos',
29243        },
29244        dayOfMonthOrdinalParse: /\d{1,2}º/,
29245        ordinal: '%dº',
29246        week: {
29247            dow: 1, // Monday is the first day of the week.
29248            doy: 4, // The week that contains Jan 4th is the first week of the year.
29249        },
29250    });
29251
29252    return gl;
29253
29254})));
29255
29256
29257/***/ }),
29258
29259/***/ 7357:
29260/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29261
29262//! moment.js locale configuration
vendor: 5,365 bytes, lines 29263-29417
29263//! locale : Bengali (Bangladesh) [bn-bd]
29264//! author : Asraf Hossain Patoary : https://github.com/ashwoolford
29265
29266;(function (global, factory) {
29267    true ? factory(__webpack_require__(5093)) :
29268   0
29269}(this, (function (moment) { 'use strict';
29270
29271    //! moment.js locale configuration
29272
29273    var symbolMap = {
29274            1: 'à§§',
29275            2: '২',
29276            3: 'à§©',
29277            4: '৪',
29278            5: 'à§«',
29279            6: '৬',
29280            7: 'à§­',
29281            8: 'à§®',
29282            9: '৯',
29283            0: '০',
29284        },
29285        numberMap = {
29286            'à§§': '1',
29287            '২': '2',
29288            'à§©': '3',
29289            '৪': '4',
29290            'à§«': '5',
29291            '৬': '6',
29292            'à§­': '7',
29293            'à§®': '8',
29294            '৯': '9',
29295            '০': '0',
29296        };
29297
29298    var bnBd = moment.defineLocale('bn-bd', {
29299        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
29300            '_'
29301        ),
29302        monthsShort:
29303            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
29304                '_'
29305            ),
29306        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
29307            '_'
29308        ),
29309        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
29310        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
29311        longDateFormat: {
29312            LT: 'A h:mm সময়',
29313            LTS: 'A h:mm:ss সময়',
29314            L: 'DD/MM/YYYY',
29315            LL: 'D MMMM YYYY',
29316            LLL: 'D MMMM YYYY, A h:mm সময়',
29317            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
29318        },
29319        calendar: {
29320            sameDay: '[আজ] LT',
29321            nextDay: '[আগামীকাল] LT',
29322            nextWeek: 'dddd, LT',
29323            lastDay: '[গতকাল] LT',
29324            lastWeek: '[গত] dddd, LT',
29325            sameElse: 'L',
29326        },
29327        relativeTime: {
29328            future: '%s পরে',
29329            past: '%s আগে',
29330            s: 'কয়েক সেকেন্ড',
29331            ss: '%d সেকেন্ড',
29332            m: 'এক মিনিট',
29333            mm: '%d মিনিট',
29334            h: 'এক ঘন্টা',
29335            hh: '%d ঘন্টা',
29336            d: 'এক দিন',
29337            dd: '%d দিন',
29338            M: 'এক মাস',
29339            MM: '%d মাস',
29340            y: 'এক বছর',
29341            yy: '%d বছর',
29342        },
29343        preparse: function (string) {
29344            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
29345                return numberMap[match];
29346            });
29347        },
29348        postformat: function (string) {
29349            return string.replace(/\d/g, function (match) {
29350                return symbolMap[match];
29351            });
29352        },
29353
29354        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
29355        meridiemHour: function (hour, meridiem) {
29356            if (hour === 12) {
29357                hour = 0;
29358            }
29359            if (meridiem === 'রাত') {
29360                return hour < 4 ? hour : hour + 12;
29361            } else if (meridiem === 'ভোর') {
29362                return hour;
29363            } else if (meridiem === 'সকাল') {
29364                return hour;
29365            } else if (meridiem === 'দুপুর') {
29366                return hour >= 3 ? hour : hour + 12;
29367            } else if (meridiem === 'বিকাল') {
29368                return hour + 12;
29369            } else if (meridiem === 'সন্ধ্যা') {
29370                return hour + 12;
29371            }
29372        },
29373
29374        meridiem: function (hour, minute, isLower) {
29375            if (hour < 4) {
29376                return 'রাত';
29377            } else if (hour < 6) {
29378                return 'ভোর';
29379            } else if (hour < 12) {
29380                return 'সকাল';
29381            } else if (hour < 15) {
29382                return 'দুপুর';
29383            } else if (hour < 18) {
29384                return 'বিকাল';
29385            } else if (hour < 20) {
29386                return 'সন্ধ্যা';
29387            } else {
29388                return 'রাত';
29389            }
29390        },
29391        week: {
29392            dow: 0, // Sunday is the first day of the week.
29393            doy: 6, // The week that contains Jan 6th is the first week of the year.
29394        },
29395    });
29396
29397    return bnBd;
29398
29399})));
29400
29401
29402/***/ }),
29403
29404/***/ 7538:
29405/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29406
29407//! moment.js locale configuration
29408//! locale : Sinhalese [si]
29409//! author : Sampath Sitinamaluwa : https://github.com/sampathsris
29410
29411;(function (global, factory) {
29412    true ? factory(__webpack_require__(5093)) :
29413   0
29414}(this, (function (moment) { 'use strict';
29415
29416    //! moment.js locale configuration
29417
vendor: 20,186 bytes, lines 29418-30006
29418    /*jshint -W100*/
29419    var si = moment.defineLocale('si', {
29420        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
29421            '_'
29422        ),
29423        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
29424            '_'
29425        ),
29426        weekdays:
29427            'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
29428                '_'
29429            ),
29430        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
29431        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
29432        weekdaysParseExact: true,
29433        longDateFormat: {
29434            LT: 'a h:mm',
29435            LTS: 'a h:mm:ss',
29436            L: 'YYYY/MM/DD',
29437            LL: 'YYYY MMMM D',
29438            LLL: 'YYYY MMMM D, a h:mm',
29439            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
29440        },
29441        calendar: {
29442            sameDay: '[අද] LT[ට]',
29443            nextDay: '[හෙට] LT[ට]',
29444            nextWeek: 'dddd LT[à¶§]',
29445            lastDay: '[ඊයේ] LT[ට]',
29446            lastWeek: '[පසුගිය] dddd LT[ට]',
29447            sameElse: 'L',
29448        },
29449        relativeTime: {
29450            future: '%sකින්',
29451            past: '%sකට පෙර',
29452            s: 'තත්පර කිහිපය',
29453            ss: 'තත්පර %d',
29454            m: 'මිනිත්තුව',
29455            mm: 'මිනිත්තු %d',
29456            h: 'පැය',
29457            hh: 'පැය %d',
29458            d: 'දිනය',
29459            dd: 'දින %d',
29460            M: 'මාසය',
29461            MM: 'මාස %d',
29462            y: 'වසර',
29463            yy: 'වසර %d',
29464        },
29465        dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
29466        ordinal: function (number) {
29467            return number + ' වැනි';
29468        },
29469        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
29470        isPM: function (input) {
29471            return input === 'ප.ව.' || input === 'පස් වරු';
29472        },
29473        meridiem: function (hours, minutes, isLower) {
29474            if (hours > 11) {
29475                return isLower ? 'ප.ව.' : 'පස් වරු';
29476            } else {
29477                return isLower ? 'පෙ.ව.' : 'පෙර වරු';
29478            }
29479        },
29480    });
29481
29482    return si;
29483
29484})));
29485
29486
29487/***/ }),
29488
29489/***/ 7609:
29490/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29491
29492//! moment.js locale configuration
29493//! locale : Uzbek [uz]
29494//! author : Sardor Muminov : https://github.com/muminoff
29495
29496;(function (global, factory) {
29497    true ? factory(__webpack_require__(5093)) :
29498   0
29499}(this, (function (moment) { 'use strict';
29500
29501    //! moment.js locale configuration
29502
29503    var uz = moment.defineLocale('uz', {
29504        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
29505            '_'
29506        ),
29507        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
29508        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
29509        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
29510        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
29511        longDateFormat: {
29512            LT: 'HH:mm',
29513            LTS: 'HH:mm:ss',
29514            L: 'DD/MM/YYYY',
29515            LL: 'D MMMM YYYY',
29516            LLL: 'D MMMM YYYY HH:mm',
29517            LLLL: 'D MMMM YYYY, dddd HH:mm',
29518        },
29519        calendar: {
29520            sameDay: '[Бугун соат] LT [да]',
29521            nextDay: '[Эртага] LT [да]',
29522            nextWeek: 'dddd [куни соат] LT [да]',
29523            lastDay: '[Кеча соат] LT [да]',
29524            lastWeek: '[Утган] dddd [куни соат] LT [да]',
29525            sameElse: 'L',
29526        },
29527        relativeTime: {
29528            future: 'Якин %s ичида',
29529            past: 'Бир неча %s олдин',
29530            s: 'фурсат',
29531            ss: '%d фурсат',
29532            m: 'бир дакика',
29533            mm: '%d дакика',
29534            h: 'бир соат',
29535            hh: '%d соат',
29536            d: 'бир кун',
29537            dd: '%d кун',
29538            M: 'бир ой',
29539            MM: '%d ой',
29540            y: 'бир йил',
29541            yy: '%d йил',
29542        },
29543        week: {
29544            dow: 1, // Monday is the first day of the week.
29545            doy: 7, // The week that contains Jan 4th is the first week of the year.
29546        },
29547    });
29548
29549    return uz;
29550
29551})));
29552
29553
29554/***/ }),
29555
29556/***/ 7650:
29557/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29558
29559//! moment.js locale configuration
29560//! locale : Spanish [es]
29561//! author : Julio Napurí : https://github.com/julionc
29562
29563;(function (global, factory) {
29564    true ? factory(__webpack_require__(5093)) :
29565   0
29566}(this, (function (moment) { 'use strict';
29567
29568    //! moment.js locale configuration
29569
29570    var monthsShortDot =
29571            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
29572                '_'
29573            ),
29574        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
29575        monthsParse = [
29576            /^ene/i,
29577            /^feb/i,
29578            /^mar/i,
29579            /^abr/i,
29580            /^may/i,
29581            /^jun/i,
29582            /^jul/i,
29583            /^ago/i,
29584            /^sep/i,
29585            /^oct/i,
29586            /^nov/i,
29587            /^dic/i,
29588        ],
29589        monthsRegex =
29590            /^(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;
29591
29592    var es = moment.defineLocale('es', {
29593        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
29594            '_'
29595        ),
29596        monthsShort: function (m, format) {
29597            if (!m) {
29598                return monthsShortDot;
29599            } else if (/-MMM-/.test(format)) {
29600                return monthsShort[m.month()];
29601            } else {
29602                return monthsShortDot[m.month()];
29603            }
29604        },
29605        monthsRegex: monthsRegex,
29606        monthsShortRegex: monthsRegex,
29607        monthsStrictRegex:
29608            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
29609        monthsShortStrictRegex:
29610            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
29611        monthsParse: monthsParse,
29612        longMonthsParse: monthsParse,
29613        shortMonthsParse: monthsParse,
29614        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
29615        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
29616        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
29617        weekdaysParseExact: true,
29618        longDateFormat: {
29619            LT: 'H:mm',
29620            LTS: 'H:mm:ss',
29621            L: 'DD/MM/YYYY',
29622            LL: 'D [de] MMMM [de] YYYY',
29623            LLL: 'D [de] MMMM [de] YYYY H:mm',
29624            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
29625        },
29626        calendar: {
29627            sameDay: function () {
29628                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29629            },
29630            nextDay: function () {
29631                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29632            },
29633            nextWeek: function () {
29634                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29635            },
29636            lastDay: function () {
29637                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29638            },
29639            lastWeek: function () {
29640                return (
29641                    '[el] dddd [pasado a la' +
29642                    (this.hours() !== 1 ? 's' : '') +
29643                    '] LT'
29644                );
29645            },
29646            sameElse: 'L',
29647        },
29648        relativeTime: {
29649            future: 'en %s',
29650            past: 'hace %s',
29651            s: 'unos segundos',
29652            ss: '%d segundos',
29653            m: 'un minuto',
29654            mm: '%d minutos',
29655            h: 'una hora',
29656            hh: '%d horas',
29657            d: 'un día',
29658            dd: '%d días',
29659            w: 'una semana',
29660            ww: '%d semanas',
29661            M: 'un mes',
29662            MM: '%d meses',
29663            y: 'un año',
29664            yy: '%d años',
29665        },
29666        dayOfMonthOrdinalParse: /\d{1,2}º/,
29667        ordinal: '%dº',
29668        week: {
29669            dow: 1, // Monday is the first day of the week.
29670            doy: 4, // The week that contains Jan 4th is the first week of the year.
29671        },
29672        invalidDate: 'Fecha inválida',
29673    });
29674
29675    return es;
29676
29677})));
29678
29679
29680/***/ }),
29681
29682/***/ 7711:
29683/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29684
29685//! moment.js locale configuration
29686//! locale : Central Atlas Tamazight Latin [tzm-latn]
29687//! author : Abdel Said : https://github.com/abdelsaid
29688
29689;(function (global, factory) {
29690    true ? factory(__webpack_require__(5093)) :
29691   0
29692}(this, (function (moment) { 'use strict';
29693
29694    //! moment.js locale configuration
29695
29696    var tzmLatn = moment.defineLocale('tzm-latn', {
29697        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
29698            '_'
29699        ),
29700        monthsShort:
29701            'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
29702                '_'
29703            ),
29704        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
29705        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
29706        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
29707        longDateFormat: {
29708            LT: 'HH:mm',
29709            LTS: 'HH:mm:ss',
29710            L: 'DD/MM/YYYY',
29711            LL: 'D MMMM YYYY',
29712            LLL: 'D MMMM YYYY HH:mm',
29713            LLLL: 'dddd D MMMM YYYY HH:mm',
29714        },
29715        calendar: {
29716            sameDay: '[asdkh g] LT',
29717            nextDay: '[aska g] LT',
29718            nextWeek: 'dddd [g] LT',
29719            lastDay: '[assant g] LT',
29720            lastWeek: 'dddd [g] LT',
29721            sameElse: 'L',
29722        },
29723        relativeTime: {
29724            future: 'dadkh s yan %s',
29725            past: 'yan %s',
29726            s: 'imik',
29727            ss: '%d imik',
29728            m: 'minuḍ',
29729            mm: '%d minuḍ',
29730            h: 'saɛa',
29731            hh: '%d tassaɛin',
29732            d: 'ass',
29733            dd: '%d ossan',
29734            M: 'ayowr',
29735            MM: '%d iyyirn',
29736            y: 'asgas',
29737            yy: '%d isgasn',
29738        },
29739        week: {
29740            dow: 6, // Saturday is the first day of the week.
29741            doy: 12, // The week that contains Jan 12th is the first week of the year.
29742        },
29743    });
29744
29745    return tzmLatn;
29746
29747})));
29748
29749
29750/***/ }),
29751
29752/***/ 7730:
29753/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29754
29755//! moment.js locale configuration
29756//! locale : Spanish (Mexico) [es-mx]
29757//! author : JC Franco : https://github.com/jcfranco
29758
29759;(function (global, factory) {
29760    true ? factory(__webpack_require__(5093)) :
29761   0
29762}(this, (function (moment) { 'use strict';
29763
29764    //! moment.js locale configuration
29765
29766    var monthsShortDot =
29767            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
29768                '_'
29769            ),
29770        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
29771        monthsParse = [
29772            /^ene/i,
29773            /^feb/i,
29774            /^mar/i,
29775            /^abr/i,
29776            /^may/i,
29777            /^jun/i,
29778            /^jul/i,
29779            /^ago/i,
29780            /^sep/i,
29781            /^oct/i,
29782            /^nov/i,
29783            /^dic/i,
29784        ],
29785        monthsRegex =
29786            /^(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;
29787
29788    var esMx = moment.defineLocale('es-mx', {
29789        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
29790            '_'
29791        ),
29792        monthsShort: function (m, format) {
29793            if (!m) {
29794                return monthsShortDot;
29795            } else if (/-MMM-/.test(format)) {
29796                return monthsShort[m.month()];
29797            } else {
29798                return monthsShortDot[m.month()];
29799            }
29800        },
29801        monthsRegex: monthsRegex,
29802        monthsShortRegex: monthsRegex,
29803        monthsStrictRegex:
29804            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
29805        monthsShortStrictRegex:
29806            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
29807        monthsParse: monthsParse,
29808        longMonthsParse: monthsParse,
29809        shortMonthsParse: monthsParse,
29810        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
29811        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
29812        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
29813        weekdaysParseExact: true,
29814        longDateFormat: {
29815            LT: 'H:mm',
29816            LTS: 'H:mm:ss',
29817            L: 'DD/MM/YYYY',
29818            LL: 'D [de] MMMM [de] YYYY',
29819            LLL: 'D [de] MMMM [de] YYYY H:mm',
29820            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
29821        },
29822        calendar: {
29823            sameDay: function () {
29824                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29825            },
29826            nextDay: function () {
29827                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29828            },
29829            nextWeek: function () {
29830                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29831            },
29832            lastDay: function () {
29833                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
29834            },
29835            lastWeek: function () {
29836                return (
29837                    '[el] dddd [pasado a la' +
29838                    (this.hours() !== 1 ? 's' : '') +
29839                    '] LT'
29840                );
29841            },
29842            sameElse: 'L',
29843        },
29844        relativeTime: {
29845            future: 'en %s',
29846            past: 'hace %s',
29847            s: 'unos segundos',
29848            ss: '%d segundos',
29849            m: 'un minuto',
29850            mm: '%d minutos',
29851            h: 'una hora',
29852            hh: '%d horas',
29853            d: 'un día',
29854            dd: '%d días',
29855            w: 'una semana',
29856            ww: '%d semanas',
29857            M: 'un mes',
29858            MM: '%d meses',
29859            y: 'un año',
29860            yy: '%d años',
29861        },
29862        dayOfMonthOrdinalParse: /\d{1,2}º/,
29863        ordinal: '%dº',
29864        week: {
29865            dow: 0, // Sunday is the first day of the week.
29866            doy: 4, // The week that contains Jan 4th is the first week of the year.
29867        },
29868        invalidDate: 'Fecha inválida',
29869    });
29870
29871    return esMx;
29872
29873})));
29874
29875
29876/***/ }),
29877
29878/***/ 7777:
29879/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29880
29881//! moment.js locale configuration
29882//! locale : Bulgarian [bg]
29883//! author : Krasen Borisov : https://github.com/kraz
29884
29885;(function (global, factory) {
29886    true ? factory(__webpack_require__(5093)) :
29887   0
29888}(this, (function (moment) { 'use strict';
29889
29890    //! moment.js locale configuration
29891
29892    var bg = moment.defineLocale('bg', {
29893        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
29894            '_'
29895        ),
29896        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
29897        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
29898            '_'
29899        ),
29900        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
29901        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
29902        longDateFormat: {
29903            LT: 'H:mm',
29904            LTS: 'H:mm:ss',
29905            L: 'D.MM.YYYY',
29906            LL: 'D MMMM YYYY',
29907            LLL: 'D MMMM YYYY H:mm',
29908            LLLL: 'dddd, D MMMM YYYY H:mm',
29909        },
29910        calendar: {
29911            sameDay: '[Днес в] LT',
29912            nextDay: '[Утре в] LT',
29913            nextWeek: 'dddd [в] LT',
29914            lastDay: '[Вчера в] LT',
29915            lastWeek: function () {
29916                switch (this.day()) {
29917                    case 0:
29918                    case 3:
29919                    case 6:
29920                        return '[Миналата] dddd [в] LT';
29921                    case 1:
29922                    case 2:
29923                    case 4:
29924                    case 5:
29925                        return '[Миналия] dddd [в] LT';
29926                }
29927            },
29928            sameElse: 'L',
29929        },
29930        relativeTime: {
29931            future: 'след %s',
29932            past: 'преди %s',
29933            s: 'няколко секунди',
29934            ss: '%d секунди',
29935            m: 'минута',
29936            mm: '%d минути',
29937            h: 'час',
29938            hh: '%d часа',
29939            d: 'ден',
29940            dd: '%d дена',
29941            w: 'седмица',
29942            ww: '%d седмици',
29943            M: 'месец',
29944            MM: '%d месеца',
29945            y: 'година',
29946            yy: '%d години',
29947        },
29948        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
29949        ordinal: function (number) {
29950            var lastDigit = number % 10,
29951                last2Digits = number % 100;
29952            if (number === 0) {
29953                return number + '-ев';
29954            } else if (last2Digits === 0) {
29955                return number + '-ен';
29956            } else if (last2Digits > 10 && last2Digits < 20) {
29957                return number + '-ти';
29958            } else if (lastDigit === 1) {
29959                return number + '-ви';
29960            } else if (lastDigit === 2) {
29961                return number + '-ри';
29962            } else if (lastDigit === 7 || lastDigit === 8) {
29963                return number + '-ми';
29964            } else {
29965                return number + '-ти';
29966            }
29967        },
29968        week: {
29969            dow: 1, // Monday is the first day of the week.
29970            doy: 7, // The week that contains Jan 7th is the first week of the year.
29971        },
29972    });
29973
29974    return bg;
29975
29976})));
29977
29978
29979/***/ }),
29980
29981/***/ 7853:
29982/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
29983
29984//! moment.js locale configuration
29985//! locale : German [de]
29986//! author : lluchs : https://github.com/lluchs
29987//! author: Menelion Elensúle: https://github.com/Oire
29988//! author : Mikolaj Dadela : https://github.com/mik01aj
29989
29990;(function (global, factory) {
29991    true ? factory(__webpack_require__(5093)) :
29992   0
29993}(this, (function (moment) { 'use strict';
29994
29995    //! moment.js locale configuration
29996
29997    function processRelativeTime(number, withoutSuffix, key, isFuture) {
29998        var format = {
29999            m: ['eine Minute', 'einer Minute'],
30000            h: ['eine Stunde', 'einer Stunde'],
30001            d: ['ein Tag', 'einem Tag'],
30002            dd: [number + ' Tage', number + ' Tagen'],
30003            w: ['eine Woche', 'einer Woche'],
30004            M: ['ein Monat', 'einem Monat'],
30005            MM: [number + ' Monate', number + ' Monaten'],
30006            y: ['ein Jahr', 'einem Jahr'],
vendor: 15,971 bytes, lines 30007-30503
30007            yy: [number + ' Jahre', number + ' Jahren'],
30008        };
30009        return withoutSuffix ? format[key][0] : format[key][1];
30010    }
30011
30012    var de = moment.defineLocale('de', {
30013        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
30014            '_'
30015        ),
30016        monthsShort:
30017            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
30018        monthsParseExact: true,
30019        weekdays:
30020            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
30021                '_'
30022            ),
30023        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
30024        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
30025        weekdaysParseExact: true,
30026        longDateFormat: {
30027            LT: 'HH:mm',
30028            LTS: 'HH:mm:ss',
30029            L: 'DD.MM.YYYY',
30030            LL: 'D. MMMM YYYY',
30031            LLL: 'D. MMMM YYYY HH:mm',
30032            LLLL: 'dddd, D. MMMM YYYY HH:mm',
30033        },
30034        calendar: {
30035            sameDay: '[heute um] LT [Uhr]',
30036            sameElse: 'L',
30037            nextDay: '[morgen um] LT [Uhr]',
30038            nextWeek: 'dddd [um] LT [Uhr]',
30039            lastDay: '[gestern um] LT [Uhr]',
30040            lastWeek: '[letzten] dddd [um] LT [Uhr]',
30041        },
30042        relativeTime: {
30043            future: 'in %s',
30044            past: 'vor %s',
30045            s: 'ein paar Sekunden',
30046            ss: '%d Sekunden',
30047            m: processRelativeTime,
30048            mm: '%d Minuten',
30049            h: processRelativeTime,
30050            hh: '%d Stunden',
30051            d: processRelativeTime,
30052            dd: processRelativeTime,
30053            w: processRelativeTime,
30054            ww: '%d Wochen',
30055            M: processRelativeTime,
30056            MM: processRelativeTime,
30057            y: processRelativeTime,
30058            yy: processRelativeTime,
30059        },
30060        dayOfMonthOrdinalParse: /\d{1,2}\./,
30061        ordinal: '%d.',
30062        week: {
30063            dow: 1, // Monday is the first day of the week.
30064            doy: 4, // The week that contains Jan 4th is the first week of the year.
30065        },
30066    });
30067
30068    return de;
30069
30070})));
30071
30072
30073/***/ }),
30074
30075/***/ 7892:
30076/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30077
30078//! moment.js locale configuration
30079//! locale : French (Switzerland) [fr-ch]
30080//! author : Gaspard Bucher : https://github.com/gaspard
30081
30082;(function (global, factory) {
30083    true ? factory(__webpack_require__(5093)) :
30084   0
30085}(this, (function (moment) { 'use strict';
30086
30087    //! moment.js locale configuration
30088
30089    var frCh = moment.defineLocale('fr-ch', {
30090        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
30091            '_'
30092        ),
30093        monthsShort:
30094            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
30095                '_'
30096            ),
30097        monthsParseExact: true,
30098        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
30099        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
30100        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
30101        weekdaysParseExact: true,
30102        longDateFormat: {
30103            LT: 'HH:mm',
30104            LTS: 'HH:mm:ss',
30105            L: 'DD.MM.YYYY',
30106            LL: 'D MMMM YYYY',
30107            LLL: 'D MMMM YYYY HH:mm',
30108            LLLL: 'dddd D MMMM YYYY HH:mm',
30109        },
30110        calendar: {
30111            sameDay: '[Aujourd’hui à] LT',
30112            nextDay: '[Demain à] LT',
30113            nextWeek: 'dddd [à] LT',
30114            lastDay: '[Hier à] LT',
30115            lastWeek: 'dddd [dernier à] LT',
30116            sameElse: 'L',
30117        },
30118        relativeTime: {
30119            future: 'dans %s',
30120            past: 'il y a %s',
30121            s: 'quelques secondes',
30122            ss: '%d secondes',
30123            m: 'une minute',
30124            mm: '%d minutes',
30125            h: 'une heure',
30126            hh: '%d heures',
30127            d: 'un jour',
30128            dd: '%d jours',
30129            M: 'un mois',
30130            MM: '%d mois',
30131            y: 'un an',
30132            yy: '%d ans',
30133        },
30134        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
30135        ordinal: function (number, period) {
30136            switch (period) {
30137                // Words with masculine grammatical gender: mois, trimestre, jour
30138                default:
30139                case 'M':
30140                case 'Q':
30141                case 'D':
30142                case 'DDD':
30143                case 'd':
30144                    return number + (number === 1 ? 'er' : 'e');
30145
30146                // Words with feminine grammatical gender: semaine
30147                case 'w':
30148                case 'W':
30149                    return number + (number === 1 ? 're' : 'e');
30150            }
30151        },
30152        week: {
30153            dow: 1, // Monday is the first day of the week.
30154            doy: 4, // The week that contains Jan 4th is the first week of the year.
30155        },
30156    });
30157
30158    return frCh;
30159
30160})));
30161
30162
30163/***/ }),
30164
30165/***/ 8076:
30166/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30167
30168//! moment.js locale configuration
30169//! locale : Montenegrin [me]
30170//! author : Miodrag Nikač <[email protected]> : https://github.com/miodragnikac
30171
30172;(function (global, factory) {
30173    true ? factory(__webpack_require__(5093)) :
30174   0
30175}(this, (function (moment) { 'use strict';
30176
30177    //! moment.js locale configuration
30178
30179    var translator = {
30180        words: {
30181            //Different grammatical cases
30182            ss: ['sekund', 'sekunda', 'sekundi'],
30183            m: ['jedan minut', 'jednog minuta'],
30184            mm: ['minut', 'minuta', 'minuta'],
30185            h: ['jedan sat', 'jednog sata'],
30186            hh: ['sat', 'sata', 'sati'],
30187            dd: ['dan', 'dana', 'dana'],
30188            MM: ['mjesec', 'mjeseca', 'mjeseci'],
30189            yy: ['godina', 'godine', 'godina'],
30190        },
30191        correctGrammaticalCase: function (number, wordKey) {
30192            return number === 1
30193                ? wordKey[0]
30194                : number >= 2 && number <= 4
30195                  ? wordKey[1]
30196                  : wordKey[2];
30197        },
30198        translate: function (number, withoutSuffix, key) {
30199            var wordKey = translator.words[key];
30200            if (key.length === 1) {
30201                return withoutSuffix ? wordKey[0] : wordKey[1];
30202            } else {
30203                return (
30204                    number +
30205                    ' ' +
30206                    translator.correctGrammaticalCase(number, wordKey)
30207                );
30208            }
30209        },
30210    };
30211
30212    var me = moment.defineLocale('me', {
30213        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
30214            '_'
30215        ),
30216        monthsShort:
30217            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
30218        monthsParseExact: true,
30219        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
30220            '_'
30221        ),
30222        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
30223        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
30224        weekdaysParseExact: true,
30225        longDateFormat: {
30226            LT: 'H:mm',
30227            LTS: 'H:mm:ss',
30228            L: 'DD.MM.YYYY',
30229            LL: 'D. MMMM YYYY',
30230            LLL: 'D. MMMM YYYY H:mm',
30231            LLLL: 'dddd, D. MMMM YYYY H:mm',
30232        },
30233        calendar: {
30234            sameDay: '[danas u] LT',
30235            nextDay: '[sjutra u] LT',
30236
30237            nextWeek: function () {
30238                switch (this.day()) {
30239                    case 0:
30240                        return '[u] [nedjelju] [u] LT';
30241                    case 3:
30242                        return '[u] [srijedu] [u] LT';
30243                    case 6:
30244                        return '[u] [subotu] [u] LT';
30245                    case 1:
30246                    case 2:
30247                    case 4:
30248                    case 5:
30249                        return '[u] dddd [u] LT';
30250                }
30251            },
30252            lastDay: '[juče u] LT',
30253            lastWeek: function () {
30254                var lastWeekDays = [
30255                    '[prošle] [nedjelje] [u] LT',
30256                    '[prošlog] [ponedjeljka] [u] LT',
30257                    '[prošlog] [utorka] [u] LT',
30258                    '[prošle] [srijede] [u] LT',
30259                    '[prošlog] [četvrtka] [u] LT',
30260                    '[prošlog] [petka] [u] LT',
30261                    '[prošle] [subote] [u] LT',
30262                ];
30263                return lastWeekDays[this.day()];
30264            },
30265            sameElse: 'L',
30266        },
30267        relativeTime: {
30268            future: 'za %s',
30269            past: 'prije %s',
30270            s: 'nekoliko sekundi',
30271            ss: translator.translate,
30272            m: translator.translate,
30273            mm: translator.translate,
30274            h: translator.translate,
30275            hh: translator.translate,
30276            d: 'dan',
30277            dd: translator.translate,
30278            M: 'mjesec',
30279            MM: translator.translate,
30280            y: 'godinu',
30281            yy: translator.translate,
30282        },
30283        dayOfMonthOrdinalParse: /\d{1,2}\./,
30284        ordinal: '%d.',
30285        week: {
30286            dow: 1, // Monday is the first day of the week.
30287            doy: 7, // The week that contains Jan 7th is the first week of the year.
30288        },
30289    });
30290
30291    return me;
30292
30293})));
30294
30295
30296/***/ }),
30297
30298/***/ 8174:
30299/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30300
30301//! moment.js locale configuration
30302//! locale : Kurdish [ku]
30303//! author : Shahram Mebashar : https://github.com/ShahramMebashar
30304
30305;(function (global, factory) {
30306    true ? factory(__webpack_require__(5093)) :
30307   0
30308}(this, (function (moment) { 'use strict';
30309
30310    //! moment.js locale configuration
30311
30312    var symbolMap = {
30313            1: 'Ù¡',
30314            2: 'Ù¢',
30315            3: 'Ù£',
30316            4: 'Ù¤',
30317            5: 'Ù¥',
30318            6: 'Ù¦',
30319            7: 'Ù§',
30320            8: 'Ù¨',
30321            9: 'Ù©',
30322            0: 'Ù ',
30323        },
30324        numberMap = {
30325            'Ù¡': '1',
30326            'Ù¢': '2',
30327            'Ù£': '3',
30328            'Ù¤': '4',
30329            'Ù¥': '5',
30330            'Ù¦': '6',
30331            'Ù§': '7',
30332            'Ù¨': '8',
30333            'Ù©': '9',
30334            'Ù ': '0',
30335        },
30336        months = [
30337            'کانونی دووەم',
30338            'شوبات',
30339            'ئازار',
30340            'نیسان',
30341            'ئایار',
30342            'حوزەیران',
30343            'تەمموز',
30344            'ئاب',
30345            'ئەیلوول',
30346            'تشرینی یەكەم',
30347            'تشرینی دووەم',
30348            'كانونی یەکەم',
30349        ];
30350
30351    var ku = moment.defineLocale('ku', {
30352        months: months,
30353        monthsShort: months,
30354        weekdays:
30355            'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
30356                '_'
30357            ),
30358        weekdaysShort:
30359            'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),
30360        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
30361        weekdaysParseExact: true,
30362        longDateFormat: {
30363            LT: 'HH:mm',
30364            LTS: 'HH:mm:ss',
30365            L: 'DD/MM/YYYY',
30366            LL: 'D MMMM YYYY',
30367            LLL: 'D MMMM YYYY HH:mm',
30368            LLLL: 'dddd, D MMMM YYYY HH:mm',
30369        },
30370        meridiemParse: /ئێواره‌|به‌یانی/,
30371        isPM: function (input) {
30372            return /ئێواره‌/.test(input);
30373        },
30374        meridiem: function (hour, minute, isLower) {
30375            if (hour < 12) {
30376                return 'به‌یانی';
30377            } else {
30378                return 'ئێواره‌';
30379            }
30380        },
30381        calendar: {
30382            sameDay: '[ئه‌مرۆ كاتژمێر] LT',
30383            nextDay: '[به‌یانی كاتژمێر] LT',
30384            nextWeek: 'dddd [كاتژمێر] LT',
30385            lastDay: '[دوێنێ كاتژمێر] LT',
30386            lastWeek: 'dddd [كاتژمێر] LT',
30387            sameElse: 'L',
30388        },
30389        relativeTime: {
30390            future: 'له‌ %s',
30391            past: '%s',
30392            s: 'چه‌ند چركه‌یه‌ك',
30393            ss: 'چركه‌ %d',
30394            m: 'یه‌ك خوله‌ك',
30395            mm: '%d خوله‌ك',
30396            h: 'یه‌ك كاتژمێر',
30397            hh: '%d كاتژمێر',
30398            d: 'یه‌ك ڕۆژ',
30399            dd: '%d ڕۆژ',
30400            M: 'یه‌ك مانگ',
30401            MM: '%d مانگ',
30402            y: 'یه‌ك ساڵ',
30403            yy: '%d ساڵ',
30404        },
30405        preparse: function (string) {
30406            return string
30407                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
30408                    return numberMap[match];
30409                })
30410                .replace(/،/g, ',');
30411        },
30412        postformat: function (string) {
30413            return string
30414                .replace(/\d/g, function (match) {
30415                    return symbolMap[match];
30416                })
30417                .replace(/,/g, '،');
30418        },
30419        week: {
30420            dow: 6, // Saturday is the first day of the week.
30421            doy: 12, // The week that contains Jan 12th is the first week of the year.
30422        },
30423    });
30424
30425    return ku;
30426
30427})));
30428
30429
30430/***/ }),
30431
30432/***/ 8235:
30433/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30434
30435//! moment.js locale configuration
30436//! locale : Nepalese [ne]
30437//! author : suvash : https://github.com/suvash
30438
30439;(function (global, factory) {
30440    true ? factory(__webpack_require__(5093)) :
30441   0
30442}(this, (function (moment) { 'use strict';
30443
30444    //! moment.js locale configuration
30445
30446    var symbolMap = {
30447            1: '१',
30448            2: '२',
30449            3: '३',
30450            4: '४',
30451            5: '५',
30452            6: '६',
30453            7: '७',
30454            8: '८',
30455            9: '९',
30456            0: '०',
30457        },
30458        numberMap = {
30459            '१': '1',
30460            '२': '2',
30461            '३': '3',
30462            '४': '4',
30463            '५': '5',
30464            '६': '6',
30465            '७': '7',
30466            '८': '8',
30467            '९': '9',
30468            '०': '0',
30469        };
30470
30471    var ne = moment.defineLocale('ne', {
30472        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
30473            '_'
30474        ),
30475        monthsShort:
30476            'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
30477                '_'
30478            ),
30479        monthsParseExact: true,
30480        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
30481            '_'
30482        ),
30483        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
30484        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
30485        weekdaysParseExact: true,
30486        longDateFormat: {
30487            LT: 'Aको h:mm बजे',
30488            LTS: 'Aको h:mm:ss बजे',
30489            L: 'DD/MM/YYYY',
30490            LL: 'D MMMM YYYY',
30491            LLL: 'D MMMM YYYY, Aको h:mm बजे',
30492            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
30493        },
30494        preparse: function (string) {
30495            return string.replace(/[१२३४५६७८९०]/g, function (match) {
30496                return numberMap[match];
30497            });
30498        },
30499        postformat: function (string) {
30500            return string.replace(/\d/g, function (match) {
30501                return symbolMap[match];
30502            });
30503        },
30504        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
30505        meridiemHour: function (hour, meridiem) {
30506            if (hour === 12) {
30507                hour = 0;
30508            }
30509            if (meridiem === 'राति') {
30510                return hour < 4 ? hour : hour + 12;
30511            } else if (meridiem === 'बिहान') {
30512                return hour;
30513            } else if (meridiem === 'दिउँसो') {
30514                return hour >= 10 ? hour : hour + 12;
30515            } else if (meridiem === 'साँझ') {
30516                return hour + 12;
30517            }
30518        },
30519        meridiem: function (hour, minute, isLower) {
30520            if (hour < 3) {
30521                return 'राति';
30522            } else if (hour < 12) {
30523                return 'बिहान';
30524            } else if (hour < 16) {
30525                return 'दिउँसो';
30526            } else if (hour < 20) {
30527                return 'साँझ';
30528            } else {
30529                return 'राति';
30530            }
30531        },
30532        calendar: {
30533            sameDay: '[आज] LT',
30534            nextDay: '[भोलि] LT',
30535            nextWeek: '[आउँदो] dddd[,] LT',
30536            lastDay: '[हिजो] LT',
30537            lastWeek: '[गएको] dddd[,] LT',
30538            sameElse: 'L',
30539        },
30540        relativeTime: {
30541            future: '%sमा',
30542            past: '%s अगाडि',
30543            s: 'केही क्षण',
30544            ss: '%d सेकेण्ड',
30545            m: 'एक मिनेट',
30546            mm: '%d मिनेट',
30547            h: 'एक घण्टा',
30548            hh: '%d घण्टा',
30549            d: 'एक दिन',
30550            dd: '%d दिन',
30551            M: 'एक महिना',
30552            MM: '%d महिना',
30553            y: 'एक बर्ष',
30554            yy: '%d बर्ष',
30555        },
30556        week: {
30557            dow: 0, // Sunday is the first day of the week.
30558            doy: 6, // The week that contains Jan 6th is the first week of the year.
30559        },
30560    });
30561
30562    return ne;
30563
30564})));
30565
30566
30567/***/ }),
30568
30569/***/ 8298:
30570/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30571
30572//! moment.js locale configuration
30573//! locale : English (Canada) [en-ca]
30574//! author : Jonathan Abourbih : https://github.com/jonbca
30575
30576;(function (global, factory) {
30577    true ? factory(__webpack_require__(5093)) :
30578   0
30579}(this, (function (moment) { 'use strict';
30580
30581    //! moment.js locale configuration
30582
30583    var enCa = moment.defineLocale('en-ca', {
30584        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
30585            '_'
30586        ),
30587        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
30588        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
30589            '_'
30590        ),
30591        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
30592        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
30593        longDateFormat: {
30594            LT: 'h:mm A',
30595            LTS: 'h:mm:ss A',
30596            L: 'YYYY-MM-DD',
30597            LL: 'MMMM D, YYYY',
30598            LLL: 'MMMM D, YYYY h:mm A',
30599            LLLL: 'dddd, MMMM D, YYYY h:mm A',
30600        },
30601        calendar: {
30602            sameDay: '[Today at] LT',
30603            nextDay: '[Tomorrow at] LT',
30604            nextWeek: 'dddd [at] LT',
30605            lastDay: '[Yesterday at] LT',
30606            lastWeek: '[Last] dddd [at] LT',
30607            sameElse: 'L',
30608        },
30609        relativeTime: {
30610            future: 'in %s',
30611            past: '%s ago',
30612            s: 'a few seconds',
30613            ss: '%d seconds',
30614            m: 'a minute',
30615            mm: '%d minutes',
30616            h: 'an hour',
30617            hh: '%d hours',
30618            d: 'a day',
30619            dd: '%d days',
30620            M: 'a month',
30621            MM: '%d months',
30622            y: 'a year',
30623            yy: '%d years',
30624        },
30625        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
30626        ordinal: function (number) {
30627            var b = number % 10,
30628                output =
30629                    ~~((number % 100) / 10) === 1
30630                        ? 'th'
30631                        : b === 1
30632                          ? 'st'
30633                          : b === 2
30634                            ? 'nd'
30635                            : b === 3
30636                              ? 'rd'
30637                              : 'th';
30638            return number + output;
30639        },
30640    });
30641
30642    return enCa;
30643
30644})));
30645
30646
30647/***/ }),
30648
30649/***/ 8303:
30650/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30651
30652//! moment.js locale configuration
30653//! locale : Portuguese (Brazil) [pt-br]
30654//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
30655
30656;(function (global, factory) {
30657    true ? factory(__webpack_require__(5093)) :
30658   0
30659}(this, (function (moment) { 'use strict';
30660
30661    //! moment.js locale configuration
30662
30663    var ptBr = moment.defineLocale('pt-br', {
30664        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
30665            '_'
30666        ),
30667        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
30668        weekdays:
30669            'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
30670                '_'
30671            ),
30672        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
30673        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
30674        weekdaysParseExact: true,
30675        longDateFormat: {
30676            LT: 'HH:mm',
30677            LTS: 'HH:mm:ss',
30678            L: 'DD/MM/YYYY',
30679            LL: 'D [de] MMMM [de] YYYY',
30680            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
30681            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
30682        },
30683        calendar: {
30684            sameDay: '[Hoje às] LT',
30685            nextDay: '[Amanhã às] LT',
30686            nextWeek: 'dddd [às] LT',
30687            lastDay: '[Ontem às] LT',
30688            lastWeek: function () {
30689                return this.day() === 0 || this.day() === 6
30690                    ? '[Último] dddd [às] LT' // Saturday + Sunday
30691                    : '[Última] dddd [às] LT'; // Monday - Friday
30692            },
30693            sameElse: 'L',
30694        },
30695        relativeTime: {
30696            future: 'em %s',
30697            past: 'há %s',
30698            s: 'poucos segundos',
30699            ss: '%d segundos',
30700            m: 'um minuto',
30701            mm: '%d minutos',
30702            h: 'uma hora',
30703            hh: '%d horas',
30704            d: 'um dia',
30705            dd: '%d dias',
30706            M: 'um mês',
30707            MM: '%d meses',
30708            y: 'um ano',
30709            yy: '%d anos',
30710        },
30711        dayOfMonthOrdinalParse: /\d{1,2}º/,
30712        ordinal: '%dº',
30713        invalidDate: 'Data inválida',
30714    });
30715
30716    return ptBr;
30717
30718})));
30719
30720
30721/***/ }),
30722
30723/***/ 8383:
30724/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30725
30726//! moment.js locale configuration
30727//! locale : Italian [it]
vendor: 5,095 bytes, lines 30728-30876
30728//! author : Lorenzo : https://github.com/aliem
30729//! author: Mattia Larentis: https://github.com/nostalgiaz
30730//! author: Marco : https://github.com/Manfre98
30731
30732;(function (global, factory) {
30733    true ? factory(__webpack_require__(5093)) :
30734   0
30735}(this, (function (moment) { 'use strict';
30736
30737    //! moment.js locale configuration
30738
30739    var it = moment.defineLocale('it', {
30740        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
30741            '_'
30742        ),
30743        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
30744        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
30745            '_'
30746        ),
30747        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
30748        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
30749        longDateFormat: {
30750            LT: 'HH:mm',
30751            LTS: 'HH:mm:ss',
30752            L: 'DD/MM/YYYY',
30753            LL: 'D MMMM YYYY',
30754            LLL: 'D MMMM YYYY HH:mm',
30755            LLLL: 'dddd D MMMM YYYY HH:mm',
30756        },
30757        calendar: {
30758            sameDay: function () {
30759                return (
30760                    '[Oggi a' +
30761                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
30762                    ']LT'
30763                );
30764            },
30765            nextDay: function () {
30766                return (
30767                    '[Domani a' +
30768                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
30769                    ']LT'
30770                );
30771            },
30772            nextWeek: function () {
30773                return (
30774                    'dddd [a' +
30775                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
30776                    ']LT'
30777                );
30778            },
30779            lastDay: function () {
30780                return (
30781                    '[Ieri a' +
30782                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
30783                    ']LT'
30784                );
30785            },
30786            lastWeek: function () {
30787                switch (this.day()) {
30788                    case 0:
30789                        return (
30790                            '[La scorsa] dddd [a' +
30791                            (this.hours() > 1
30792                                ? 'lle '
30793                                : this.hours() === 0
30794                                  ? ' '
30795                                  : "ll'") +
30796                            ']LT'
30797                        );
30798                    default:
30799                        return (
30800                            '[Lo scorso] dddd [a' +
30801                            (this.hours() > 1
30802                                ? 'lle '
30803                                : this.hours() === 0
30804                                  ? ' '
30805                                  : "ll'") +
30806                            ']LT'
30807                        );
30808                }
30809            },
30810            sameElse: 'L',
30811        },
30812        relativeTime: {
30813            future: 'tra %s',
30814            past: '%s fa',
30815            s: 'alcuni secondi',
30816            ss: '%d secondi',
30817            m: 'un minuto',
30818            mm: '%d minuti',
30819            h: "un'ora",
30820            hh: '%d ore',
30821            d: 'un giorno',
30822            dd: '%d giorni',
30823            w: 'una settimana',
30824            ww: '%d settimane',
30825            M: 'un mese',
30826            MM: '%d mesi',
30827            y: 'un anno',
30828            yy: '%d anni',
30829        },
30830        dayOfMonthOrdinalParse: /\d{1,2}º/,
30831        ordinal: '%dº',
30832        week: {
30833            dow: 1, // Monday is the first day of the week.
30834            doy: 4, // The week that contains Jan 4th is the first week of the year.
30835        },
30836    });
30837
30838    return it;
30839
30840})));
30841
30842
30843/***/ }),
30844
30845/***/ 8414:
30846/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30847
30848//! moment.js locale configuration
30849//! locale : Uyghur (China) [ug-cn]
30850//! author: boyaq : https://github.com/boyaq
30851
30852;(function (global, factory) {
30853    true ? factory(__webpack_require__(5093)) :
30854   0
30855}(this, (function (moment) { 'use strict';
30856
30857    //! moment.js locale configuration
30858
30859    var ugCn = moment.defineLocale('ug-cn', {
30860        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
30861            '_'
30862        ),
30863        monthsShort:
30864            'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
30865                '_'
30866            ),
30867        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
30868            '_'
30869        ),
30870        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
30871        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
30872        longDateFormat: {
30873            LT: 'HH:mm',
30874            LTS: 'HH:mm:ss',
30875            L: 'YYYY-MM-DD',
30876            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
vendor: 22,971 bytes, lines 30877-31542
30877            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
30878            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
30879        },
30880        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
30881        meridiemHour: function (hour, meridiem) {
30882            if (hour === 12) {
30883                hour = 0;
30884            }
30885            if (
30886                meridiem === 'يېرىم كېچە' ||
30887                meridiem === 'سەھەر' ||
30888                meridiem === 'چۈشتىن بۇرۇن'
30889            ) {
30890                return hour;
30891            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
30892                return hour + 12;
30893            } else {
30894                return hour >= 11 ? hour : hour + 12;
30895            }
30896        },
30897        meridiem: function (hour, minute, isLower) {
30898            var hm = hour * 100 + minute;
30899            if (hm < 600) {
30900                return 'يېرىم كېچە';
30901            } else if (hm < 900) {
30902                return 'سەھەر';
30903            } else if (hm < 1130) {
30904                return 'چۈشتىن بۇرۇن';
30905            } else if (hm < 1230) {
30906                return 'چۈش';
30907            } else if (hm < 1800) {
30908                return 'چۈشتىن كېيىن';
30909            } else {
30910                return 'كەچ';
30911            }
30912        },
30913        calendar: {
30914            sameDay: '[بۈگۈن سائەت] LT',
30915            nextDay: '[ئەتە سائەت] LT',
30916            nextWeek: '[كېلەركى] dddd [سائەت] LT',
30917            lastDay: '[تۆنۈگۈن] LT',
30918            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
30919            sameElse: 'L',
30920        },
30921        relativeTime: {
30922            future: '%s كېيىن',
30923            past: '%s بۇرۇن',
30924            s: 'نەچچە سېكونت',
30925            ss: '%d سېكونت',
30926            m: 'بىر مىنۇت',
30927            mm: '%d مىنۇت',
30928            h: 'بىر سائەت',
30929            hh: '%d سائەت',
30930            d: 'بىر كۈن',
30931            dd: '%d كۈن',
30932            M: 'بىر ئاي',
30933            MM: '%d ئاي',
30934            y: 'بىر يىل',
30935            yy: '%d يىل',
30936        },
30937
30938        dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
30939        ordinal: function (number, period) {
30940            switch (period) {
30941                case 'd':
30942                case 'D':
30943                case 'DDD':
30944                    return number + '-كۈنى';
30945                case 'w':
30946                case 'W':
30947                    return number + '-ھەپتە';
30948                default:
30949                    return number;
30950            }
30951        },
30952        preparse: function (string) {
30953            return string.replace(/،/g, ',');
30954        },
30955        postformat: function (string) {
30956            return string.replace(/,/g, '،');
30957        },
30958        week: {
30959            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
30960            dow: 1, // Monday is the first day of the week.
30961            doy: 7, // The week that contains Jan 1st is the first week of the year.
30962        },
30963    });
30964
30965    return ugCn;
30966
30967})));
30968
30969
30970/***/ }),
30971
30972/***/ 8474:
30973/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
30974
30975//! moment.js locale configuration
30976//! locale : Kyrgyz [ky]
30977//! author : Chyngyz Arystan uulu : https://github.com/chyngyz
30978
30979;(function (global, factory) {
30980    true ? factory(__webpack_require__(5093)) :
30981   0
30982}(this, (function (moment) { 'use strict';
30983
30984    //! moment.js locale configuration
30985
30986    var suffixes = {
30987        0: '-чү',
30988        1: '-чи',
30989        2: '-чи',
30990        3: '-чү',
30991        4: '-чү',
30992        5: '-чи',
30993        6: '-чы',
30994        7: '-чи',
30995        8: '-чи',
30996        9: '-чу',
30997        10: '-чу',
30998        20: '-чы',
30999        30: '-чу',
31000        40: '-чы',
31001        50: '-чү',
31002        60: '-чы',
31003        70: '-чи',
31004        80: '-чи',
31005        90: '-чу',
31006        100: '-чү',
31007    };
31008
31009    var ky = moment.defineLocale('ky', {
31010        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
31011            '_'
31012        ),
31013        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
31014            '_'
31015        ),
31016        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
31017            '_'
31018        ),
31019        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
31020        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
31021        longDateFormat: {
31022            LT: 'HH:mm',
31023            LTS: 'HH:mm:ss',
31024            L: 'DD.MM.YYYY',
31025            LL: 'D MMMM YYYY',
31026            LLL: 'D MMMM YYYY HH:mm',
31027            LLLL: 'dddd, D MMMM YYYY HH:mm',
31028        },
31029        calendar: {
31030            sameDay: '[Бүгүн саат] LT',
31031            nextDay: '[Эртең саат] LT',
31032            nextWeek: 'dddd [саат] LT',
31033            lastDay: '[Кечээ саат] LT',
31034            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
31035            sameElse: 'L',
31036        },
31037        relativeTime: {
31038            future: '%s ичинде',
31039            past: '%s мурун',
31040            s: 'бирнече секунд',
31041            ss: '%d секунд',
31042            m: 'бир мүнөт',
31043            mm: '%d мүнөт',
31044            h: 'бир саат',
31045            hh: '%d саат',
31046            d: 'бир күн',
31047            dd: '%d күн',
31048            M: 'бир ай',
31049            MM: '%d ай',
31050            y: 'бир жыл',
31051            yy: '%d жыл',
31052        },
31053        dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
31054        ordinal: function (number) {
31055            var a = number % 10,
31056                b = number >= 100 ? 100 : null;
31057            return number + (suffixes[number] || suffixes[a] || suffixes[b]);
31058        },
31059        week: {
31060            dow: 1, // Monday is the first day of the week.
31061            doy: 7, // The week that contains Jan 7th is the first week of the year.
31062        },
31063    });
31064
31065    return ky;
31066
31067})));
31068
31069
31070/***/ }),
31071
31072/***/ 8676:
31073/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31074
31075//! moment.js locale configuration
31076//! locale : Arabic (Kuwait) [ar-kw]
31077//! author : Nusret Parlak: https://github.com/nusretparlak
31078
31079;(function (global, factory) {
31080    true ? factory(__webpack_require__(5093)) :
31081   0
31082}(this, (function (moment) { 'use strict';
31083
31084    //! moment.js locale configuration
31085
31086    var arKw = moment.defineLocale('ar-kw', {
31087        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
31088            '_'
31089        ),
31090        monthsShort:
31091            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
31092                '_'
31093            ),
31094        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
31095        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
31096        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
31097        weekdaysParseExact: true,
31098        longDateFormat: {
31099            LT: 'HH:mm',
31100            LTS: 'HH:mm:ss',
31101            L: 'DD/MM/YYYY',
31102            LL: 'D MMMM YYYY',
31103            LLL: 'D MMMM YYYY HH:mm',
31104            LLLL: 'dddd D MMMM YYYY HH:mm',
31105        },
31106        calendar: {
31107            sameDay: '[اليوم على الساعة] LT',
31108            nextDay: '[غدا على الساعة] LT',
31109            nextWeek: 'dddd [على الساعة] LT',
31110            lastDay: '[أمس على الساعة] LT',
31111            lastWeek: 'dddd [على الساعة] LT',
31112            sameElse: 'L',
31113        },
31114        relativeTime: {
31115            future: 'في %s',
31116            past: 'منذ %s',
31117            s: 'ثوان',
31118            ss: '%d ثانية',
31119            m: 'دقيقة',
31120            mm: '%d دقائق',
31121            h: 'ساعة',
31122            hh: '%d ساعات',
31123            d: 'يوم',
31124            dd: '%d أيام',
31125            M: 'شهر',
31126            MM: '%d أشهر',
31127            y: 'سنة',
31128            yy: '%d سنوات',
31129        },
31130        week: {
31131            dow: 0, // Sunday is the first day of the week.
31132            doy: 12, // The week that contains Jan 12th is the first week of the year.
31133        },
31134    });
31135
31136    return arKw;
31137
31138})));
31139
31140
31141/***/ }),
31142
31143/***/ 8861:
31144/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31145
31146//! moment.js locale configuration
31147//! locale : Tetun Dili (East Timor) [tet]
31148//! author : Joshua Brooks : https://github.com/joshbrooks
31149//! author : Onorio De J. Afonso : https://github.com/marobo
31150//! author : Sonia Simoes : https://github.com/soniasimoes
31151
31152;(function (global, factory) {
31153    true ? factory(__webpack_require__(5093)) :
31154   0
31155}(this, (function (moment) { 'use strict';
31156
31157    //! moment.js locale configuration
31158
31159    var tet = moment.defineLocale('tet', {
31160        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
31161            '_'
31162        ),
31163        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
31164        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
31165        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
31166        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
31167        longDateFormat: {
31168            LT: 'HH:mm',
31169            LTS: 'HH:mm:ss',
31170            L: 'DD/MM/YYYY',
31171            LL: 'D MMMM YYYY',
31172            LLL: 'D MMMM YYYY HH:mm',
31173            LLLL: 'dddd, D MMMM YYYY HH:mm',
31174        },
31175        calendar: {
31176            sameDay: '[Ohin iha] LT',
31177            nextDay: '[Aban iha] LT',
31178            nextWeek: 'dddd [iha] LT',
31179            lastDay: '[Horiseik iha] LT',
31180            lastWeek: 'dddd [semana kotuk] [iha] LT',
31181            sameElse: 'L',
31182        },
31183        relativeTime: {
31184            future: 'iha %s',
31185            past: '%s liuba',
31186            s: 'segundu balun',
31187            ss: 'segundu %d',
31188            m: 'minutu ida',
31189            mm: 'minutu %d',
31190            h: 'oras ida',
31191            hh: 'oras %d',
31192            d: 'loron ida',
31193            dd: 'loron %d',
31194            M: 'fulan ida',
31195            MM: 'fulan %d',
31196            y: 'tinan ida',
31197            yy: 'tinan %d',
31198        },
31199        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
31200        ordinal: function (number) {
31201            var b = number % 10,
31202                output =
31203                    ~~((number % 100) / 10) === 1
31204                        ? 'th'
31205                        : b === 1
31206                          ? 'st'
31207                          : b === 2
31208                            ? 'nd'
31209                            : b === 3
31210                              ? 'rd'
31211                              : 'th';
31212            return number + output;
31213        },
31214        week: {
31215            dow: 1, // Monday is the first day of the week.
31216            doy: 4, // The week that contains Jan 4th is the first week of the year.
31217        },
31218    });
31219
31220    return tet;
31221
31222})));
31223
31224
31225/***/ }),
31226
31227/***/ 8959:
31228/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31229
31230//! moment.js locale configuration
31231//! locale : Belarusian [be]
31232//! author : Dmitry Demidov : https://github.com/demidov91
31233//! author: Praleska: http://praleska.pro/
31234//! Author : Menelion Elensúle : https://github.com/Oire
31235
31236;(function (global, factory) {
31237    true ? factory(__webpack_require__(5093)) :
31238   0
31239}(this, (function (moment) { 'use strict';
31240
31241    //! moment.js locale configuration
31242
31243    function plural(word, num) {
31244        var forms = word.split('_');
31245        return num % 10 === 1 && num % 100 !== 11
31246            ? forms[0]
31247            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
31248              ? forms[1]
31249              : forms[2];
31250    }
31251    function relativeTimeWithPlural(number, withoutSuffix, key) {
31252        var format = {
31253            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
31254            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
31255            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
31256            dd: 'дзень_дні_дзён',
31257            MM: 'месяц_месяцы_месяцаў',
31258            yy: 'год_гады_гадоў',
31259        };
31260        if (key === 'm') {
31261            return withoutSuffix ? 'хвіліна' : 'хвіліну';
31262        } else if (key === 'h') {
31263            return withoutSuffix ? 'гадзіна' : 'гадзіну';
31264        } else {
31265            return number + ' ' + plural(format[key], +number);
31266        }
31267    }
31268
31269    var be = moment.defineLocale('be', {
31270        months: {
31271            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
31272                '_'
31273            ),
31274            standalone:
31275                'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
31276                    '_'
31277                ),
31278        },
31279        monthsShort:
31280            'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
31281        weekdays: {
31282            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
31283                '_'
31284            ),
31285            standalone:
31286                'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
31287                    '_'
31288                ),
31289            isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
31290        },
31291        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
31292        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
31293        longDateFormat: {
31294            LT: 'HH:mm',
31295            LTS: 'HH:mm:ss',
31296            L: 'DD.MM.YYYY',
31297            LL: 'D MMMM YYYY г.',
31298            LLL: 'D MMMM YYYY г., HH:mm',
31299            LLLL: 'dddd, D MMMM YYYY г., HH:mm',
31300        },
31301        calendar: {
31302            sameDay: '[Сёння ў] LT',
31303            nextDay: '[Заўтра ў] LT',
31304            lastDay: '[Учора ў] LT',
31305            nextWeek: function () {
31306                return '[У] dddd [ў] LT';
31307            },
31308            lastWeek: function () {
31309                switch (this.day()) {
31310                    case 0:
31311                    case 3:
31312                    case 5:
31313                    case 6:
31314                        return '[У мінулую] dddd [ў] LT';
31315                    case 1:
31316                    case 2:
31317                    case 4:
31318                        return '[У мінулы] dddd [ў] LT';
31319                }
31320            },
31321            sameElse: 'L',
31322        },
31323        relativeTime: {
31324            future: 'праз %s',
31325            past: '%s таму',
31326            s: 'некалькі секунд',
31327            m: relativeTimeWithPlural,
31328            mm: relativeTimeWithPlural,
31329            h: relativeTimeWithPlural,
31330            hh: relativeTimeWithPlural,
31331            d: 'дзень',
31332            dd: relativeTimeWithPlural,
31333            M: 'месяц',
31334            MM: relativeTimeWithPlural,
31335            y: 'год',
31336            yy: relativeTimeWithPlural,
31337        },
31338        meridiemParse: /ночы|раніцы|дня|вечара/,
31339        isPM: function (input) {
31340            return /^(дня|вечара)$/.test(input);
31341        },
31342        meridiem: function (hour, minute, isLower) {
31343            if (hour < 4) {
31344                return 'ночы';
31345            } else if (hour < 12) {
31346                return 'раніцы';
31347            } else if (hour < 17) {
31348                return 'дня';
31349            } else {
31350                return 'вечара';
31351            }
31352        },
31353        dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
31354        ordinal: function (number, period) {
31355            switch (period) {
31356                case 'M':
31357                case 'd':
31358                case 'DDD':
31359                case 'w':
31360                case 'W':
31361                    return (number % 10 === 2 || number % 10 === 3) &&
31362                        number % 100 !== 12 &&
31363                        number % 100 !== 13
31364                        ? number + '-і'
31365                        : number + '-ы';
31366                case 'D':
31367                    return number + '-га';
31368                default:
31369                    return number;
31370            }
31371        },
31372        week: {
31373            dow: 1, // Monday is the first day of the week.
31374            doy: 7, // The week that contains Jan 7th is the first week of the year.
31375        },
31376    });
31377
31378    return be;
31379
31380})));
31381
31382
31383/***/ }),
31384
31385/***/ 9033:
31386/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31387
31388//! moment.js locale configuration
31389//! locale : English (India) [en-in]
31390//! author : Jatin Agrawal : https://github.com/jatinag22
31391
31392;(function (global, factory) {
31393    true ? factory(__webpack_require__(5093)) :
31394   0
31395}(this, (function (moment) { 'use strict';
31396
31397    //! moment.js locale configuration
31398
31399    var enIn = moment.defineLocale('en-in', {
31400        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
31401            '_'
31402        ),
31403        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
31404        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
31405            '_'
31406        ),
31407        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
31408        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
31409        longDateFormat: {
31410            LT: 'h:mm A',
31411            LTS: 'h:mm:ss A',
31412            L: 'DD/MM/YYYY',
31413            LL: 'D MMMM YYYY',
31414            LLL: 'D MMMM YYYY h:mm A',
31415            LLLL: 'dddd, D MMMM YYYY h:mm A',
31416        },
31417        calendar: {
31418            sameDay: '[Today at] LT',
31419            nextDay: '[Tomorrow at] LT',
31420            nextWeek: 'dddd [at] LT',
31421            lastDay: '[Yesterday at] LT',
31422            lastWeek: '[Last] dddd [at] LT',
31423            sameElse: 'L',
31424        },
31425        relativeTime: {
31426            future: 'in %s',
31427            past: '%s ago',
31428            s: 'a few seconds',
31429            ss: '%d seconds',
31430            m: 'a minute',
31431            mm: '%d minutes',
31432            h: 'an hour',
31433            hh: '%d hours',
31434            d: 'a day',
31435            dd: '%d days',
31436            M: 'a month',
31437            MM: '%d months',
31438            y: 'a year',
31439            yy: '%d years',
31440        },
31441        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
31442        ordinal: function (number) {
31443            var b = number % 10,
31444                output =
31445                    ~~((number % 100) / 10) === 1
31446                        ? 'th'
31447                        : b === 1
31448                          ? 'st'
31449                          : b === 2
31450                            ? 'nd'
31451                            : b === 3
31452                              ? 'rd'
31453                              : 'th';
31454            return number + output;
31455        },
31456        week: {
31457            dow: 0, // Sunday is the first day of the week.
31458            doy: 6, // The week that contains Jan 1st is the first week of the year.
31459        },
31460    });
31461
31462    return enIn;
31463
31464})));
31465
31466
31467/***/ }),
31468
31469/***/ 9053:
31470/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31471
31472//! moment.js locale configuration
31473//! locale : Mongolian [mn]
31474//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7
31475
31476;(function (global, factory) {
31477    true ? factory(__webpack_require__(5093)) :
31478   0
31479}(this, (function (moment) { 'use strict';
31480
31481    //! moment.js locale configuration
31482
31483    function translate(number, withoutSuffix, key, isFuture) {
31484        switch (key) {
31485            case 's':
31486                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
31487            case 'ss':
31488                return number + (withoutSuffix ? ' секунд' : ' секундын');
31489            case 'm':
31490            case 'mm':
31491                return number + (withoutSuffix ? ' минут' : ' минутын');
31492            case 'h':
31493            case 'hh':
31494                return number + (withoutSuffix ? ' цаг' : ' цагийн');
31495            case 'd':
31496            case 'dd':
31497                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
31498            case 'M':
31499            case 'MM':
31500                return number + (withoutSuffix ? ' сар' : ' сарын');
31501            case 'y':
31502            case 'yy':
31503                return number + (withoutSuffix ? ' жил' : ' жилийн');
31504            default:
31505                return number;
31506        }
31507    }
31508
31509    var mn = moment.defineLocale('mn', {
31510        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
31511            '_'
31512        ),
31513        monthsShort:
31514            '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
31515                '_'
31516            ),
31517        monthsParseExact: true,
31518        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
31519        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
31520        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
31521        weekdaysParseExact: true,
31522        longDateFormat: {
31523            LT: 'HH:mm',
31524            LTS: 'HH:mm:ss',
31525            L: 'YYYY-MM-DD',
31526            LL: 'YYYY оны MMMMын D',
31527            LLL: 'YYYY оны MMMMын D HH:mm',
31528            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
31529        },
31530        meridiemParse: /ҮӨ|ҮХ/i,
31531        isPM: function (input) {
31532            return input === 'ҮХ';
31533        },
31534        meridiem: function (hour, minute, isLower) {
31535            if (hour < 12) {
31536                return 'Ò®Ó¨';
31537            } else {
31538                return 'ҮХ';
31539            }
31540        },
31541        calendar: {
31542            sameDay: '[Өнөөдөр] LT',
31543            nextDay: '[Маргааш] LT',
31544            nextWeek: '[Ирэх] dddd LT',
31545            lastDay: '[Өчигдөр] LT',
31546            lastWeek: '[Өнгөрсөн] dddd LT',
31547            sameElse: 'L',
31548        },
31549        relativeTime: {
31550            future: '%s дараа',
31551            past: '%s өмнө',
31552            s: translate,
31553            ss: translate,
31554            m: translate,
31555            mm: translate,
31556            h: translate,
31557            hh: translate,
31558            d: translate,
31559            dd: translate,
31560            M: translate,
31561            MM: translate,
31562            y: translate,
31563            yy: translate,
31564        },
31565        dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
31566        ordinal: function (number, period) {
31567            switch (period) {
31568                case 'd':
31569                case 'D':
31570                case 'DDD':
31571                    return number + ' өдөр';
31572                default:
31573                    return number;
31574            }
31575        },
31576    });
31577
31578    return mn;
31579
31580})));
31581
31582
31583/***/ }),
31584
31585/***/ 9231:
31586/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31587
31588//! moment.js locale configuration
31589//! locale : Tagalog (Philippines) [tl-ph]
31590//! author : Dan Hagman : https://github.com/hagmandan
31591
31592;(function (global, factory) {
31593    true ? factory(__webpack_require__(5093)) :
31594   0
31595}(this, (function (moment) { 'use strict';
31596
31597    //! moment.js locale configuration
31598
31599    var tlPh = moment.defineLocale('tl-ph', {
31600        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
31601            '_'
31602        ),
31603        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
31604        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
31605            '_'
31606        ),
31607        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
31608        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
31609        longDateFormat: {
31610            LT: 'HH:mm',
31611            LTS: 'HH:mm:ss',
31612            L: 'MM/D/YYYY',
31613            LL: 'MMMM D, YYYY',
31614            LLL: 'MMMM D, YYYY HH:mm',
31615            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
31616        },
31617        calendar: {
31618            sameDay: 'LT [ngayong araw]',
31619            nextDay: '[Bukas ng] LT',
31620            nextWeek: 'LT [sa susunod na] dddd',
31621            lastDay: 'LT [kahapon]',
31622            lastWeek: 'LT [noong nakaraang] dddd',
31623            sameElse: 'L',
31624        },
31625        relativeTime: {
31626            future: 'sa loob ng %s',
31627            past: '%s ang nakalipas',
31628            s: 'ilang segundo',
31629            ss: '%d segundo',
31630            m: 'isang minuto',
31631            mm: '%d minuto',
31632            h: 'isang oras',
31633            hh: '%d oras',
31634            d: 'isang araw',
31635            dd: '%d araw',
31636            M: 'isang buwan',
31637            MM: '%d buwan',
31638            y: 'isang taon',
31639            yy: '%d taon',
31640        },
31641        dayOfMonthOrdinalParse: /\d{1,2}/,
31642        ordinal: function (number) {
31643            return number;
31644        },
31645        week: {
31646            dow: 1, // Monday is the first day of the week.
31647            doy: 4, // The week that contains Jan 4th is the first week of the year.
31648        },
31649    });
31650
31651    return tlPh;
31652
31653})));
31654
31655
31656/***/ }),
31657
31658/***/ 9330:
31659/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31660
31661//! moment.js locale configuration
31662//! locale : Occitan, lengadocian dialecte [oc-lnc]
31663//! author : Quentin PAGÈS : https://github.com/Quenty31
31664
31665;(function (global, factory) {
31666    true ? factory(__webpack_require__(5093)) :
31667   0
31668}(this, (function (moment) { 'use strict';
31669
31670    //! moment.js locale configuration
31671
31672    var ocLnc = moment.defineLocale('oc-lnc', {
31673        months: {
31674            standalone:
31675                'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
31676                    '_'
31677                ),
31678            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(
31679                '_'
31680            ),
31681            isFormat: /D[oD]?(\s)+MMMM/,
31682        },
31683        monthsShort:
31684            'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
31685                '_'
31686            ),
31687        monthsParseExact: true,
31688        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
31689            '_'
31690        ),
31691        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
31692        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
31693        weekdaysParseExact: true,
31694        longDateFormat: {
31695            LT: 'H:mm',
31696            LTS: 'H:mm:ss',
31697            L: 'DD/MM/YYYY',
31698            LL: 'D MMMM [de] YYYY',
31699            ll: 'D MMM YYYY',
31700            LLL: 'D MMMM [de] YYYY [a] H:mm',
31701            lll: 'D MMM YYYY, H:mm',
31702            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
31703            llll: 'ddd D MMM YYYY, H:mm',
31704        },
31705        calendar: {
31706            sameDay: '[uèi a] LT',
31707            nextDay: '[deman a] LT',
31708            nextWeek: 'dddd [a] LT',
31709            lastDay: '[ièr a] LT',
31710            lastWeek: 'dddd [passat a] LT',
31711            sameElse: 'L',
31712        },
31713        relativeTime: {
31714            future: "d'aquí %s",
31715            past: 'fa %s',
31716            s: 'unas segondas',
31717            ss: '%d segondas',
31718            m: 'una minuta',
31719            mm: '%d minutas',
31720            h: 'una ora',
31721            hh: '%d oras',
31722            d: 'un jorn',
31723            dd: '%d jorns',
31724            M: 'un mes',
31725            MM: '%d meses',
31726            y: 'un an',
31727            yy: '%d ans',
31728        },
31729        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
31730        ordinal: function (number, period) {
31731            var output =
31732                number === 1
31733                    ? 'r'
31734                    : number === 2
31735                      ? 'n'
31736                      : number === 3
31737                        ? 'r'
31738                        : number === 4
31739                          ? 't'
31740                          : 'è';
31741            if (period === 'w' || period === 'W') {
31742                output = 'a';
31743            }
31744            return number + output;
31745        },
31746        week: {
31747            dow: 1, // Monday is the first day of the week.
31748            doy: 4,
31749        },
31750    });
31751
31752    return ocLnc;
31753
31754})));
31755
31756
31757/***/ }),
31758
31759/***/ 9374:
31760/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31761
31762//! moment.js locale configuration
31763//! locale : Icelandic [is]
31764//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
31765
31766;(function (global, factory) {
31767    true ? factory(__webpack_require__(5093)) :
31768   0
31769}(this, (function (moment) { 'use strict';
31770
31771    //! moment.js locale configuration
31772
31773    function plural(n) {
31774        if (n % 100 === 11) {
31775            return true;
31776        } else if (n % 10 === 1) {
31777            return false;
vendor: 29,053 bytes, lines 31778-32655
31778        }
31779        return true;
31780    }
31781    function translate(number, withoutSuffix, key, isFuture) {
31782        var result = number + ' ';
31783        switch (key) {
31784            case 's':
31785                return withoutSuffix || isFuture
31786                    ? 'nokkrar sekúndur'
31787                    : 'nokkrum sekúndum';
31788            case 'ss':
31789                if (plural(number)) {
31790                    return (
31791                        result +
31792                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
31793                    );
31794                }
31795                return result + 'sekúnda';
31796            case 'm':
31797                return withoutSuffix ? 'mínúta' : 'mínútu';
31798            case 'mm':
31799                if (plural(number)) {
31800                    return (
31801                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
31802                    );
31803                } else if (withoutSuffix) {
31804                    return result + 'mínúta';
31805                }
31806                return result + 'mínútu';
31807            case 'hh':
31808                if (plural(number)) {
31809                    return (
31810                        result +
31811                        (withoutSuffix || isFuture
31812                            ? 'klukkustundir'
31813                            : 'klukkustundum')
31814                    );
31815                }
31816                return result + 'klukkustund';
31817            case 'd':
31818                if (withoutSuffix) {
31819                    return 'dagur';
31820                }
31821                return isFuture ? 'dag' : 'degi';
31822            case 'dd':
31823                if (plural(number)) {
31824                    if (withoutSuffix) {
31825                        return result + 'dagar';
31826                    }
31827                    return result + (isFuture ? 'daga' : 'dögum');
31828                } else if (withoutSuffix) {
31829                    return result + 'dagur';
31830                }
31831                return result + (isFuture ? 'dag' : 'degi');
31832            case 'M':
31833                if (withoutSuffix) {
31834                    return 'mánuður';
31835                }
31836                return isFuture ? 'mánuð' : 'mánuði';
31837            case 'MM':
31838                if (plural(number)) {
31839                    if (withoutSuffix) {
31840                        return result + 'mánuðir';
31841                    }
31842                    return result + (isFuture ? 'mánuði' : 'mánuðum');
31843                } else if (withoutSuffix) {
31844                    return result + 'mánuður';
31845                }
31846                return result + (isFuture ? 'mánuð' : 'mánuði');
31847            case 'y':
31848                return withoutSuffix || isFuture ? 'ár' : 'ári';
31849            case 'yy':
31850                if (plural(number)) {
31851                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
31852                }
31853                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
31854        }
31855    }
31856
31857    var is = moment.defineLocale('is', {
31858        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
31859            '_'
31860        ),
31861        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
31862        weekdays:
31863            'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
31864                '_'
31865            ),
31866        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
31867        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
31868        longDateFormat: {
31869            LT: 'H:mm',
31870            LTS: 'H:mm:ss',
31871            L: 'DD.MM.YYYY',
31872            LL: 'D. MMMM YYYY',
31873            LLL: 'D. MMMM YYYY [kl.] H:mm',
31874            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
31875        },
31876        calendar: {
31877            sameDay: '[í dag kl.] LT',
31878            nextDay: '[á morgun kl.] LT',
31879            nextWeek: 'dddd [kl.] LT',
31880            lastDay: '[í gær kl.] LT',
31881            lastWeek: '[síðasta] dddd [kl.] LT',
31882            sameElse: 'L',
31883        },
31884        relativeTime: {
31885            future: 'eftir %s',
31886            past: 'fyrir %s síðan',
31887            s: translate,
31888            ss: translate,
31889            m: translate,
31890            mm: translate,
31891            h: 'klukkustund',
31892            hh: translate,
31893            d: translate,
31894            dd: translate,
31895            M: translate,
31896            MM: translate,
31897            y: translate,
31898            yy: translate,
31899        },
31900        dayOfMonthOrdinalParse: /\d{1,2}\./,
31901        ordinal: '%d.',
31902        week: {
31903            dow: 1, // Monday is the first day of the week.
31904            doy: 4, // The week that contains Jan 4th is the first week of the year.
31905        },
31906    });
31907
31908    return is;
31909
31910})));
31911
31912
31913/***/ }),
31914
31915/***/ 9402:
31916/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
31917
31918//! moment.js locale configuration
31919//! locale : English (New Zealand) [en-nz]
31920//! author : Luke McGregor : https://github.com/lukemcgregor
31921
31922;(function (global, factory) {
31923    true ? factory(__webpack_require__(5093)) :
31924   0
31925}(this, (function (moment) { 'use strict';
31926
31927    //! moment.js locale configuration
31928
31929    var enNz = moment.defineLocale('en-nz', {
31930        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
31931            '_'
31932        ),
31933        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
31934        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
31935            '_'
31936        ),
31937        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
31938        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
31939        longDateFormat: {
31940            LT: 'h:mm A',
31941            LTS: 'h:mm:ss A',
31942            L: 'DD/MM/YYYY',
31943            LL: 'D MMMM YYYY',
31944            LLL: 'D MMMM YYYY h:mm A',
31945            LLLL: 'dddd, D MMMM YYYY h:mm A',
31946        },
31947        calendar: {
31948            sameDay: '[Today at] LT',
31949            nextDay: '[Tomorrow at] LT',
31950            nextWeek: 'dddd [at] LT',
31951            lastDay: '[Yesterday at] LT',
31952            lastWeek: '[Last] dddd [at] LT',
31953            sameElse: 'L',
31954        },
31955        relativeTime: {
31956            future: 'in %s',
31957            past: '%s ago',
31958            s: 'a few seconds',
31959            ss: '%d seconds',
31960            m: 'a minute',
31961            mm: '%d minutes',
31962            h: 'an hour',
31963            hh: '%d hours',
31964            d: 'a day',
31965            dd: '%d days',
31966            M: 'a month',
31967            MM: '%d months',
31968            y: 'a year',
31969            yy: '%d years',
31970        },
31971        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
31972        ordinal: function (number) {
31973            var b = number % 10,
31974                output =
31975                    ~~((number % 100) / 10) === 1
31976                        ? 'th'
31977                        : b === 1
31978                          ? 'st'
31979                          : b === 2
31980                            ? 'nd'
31981                            : b === 3
31982                              ? 'rd'
31983                              : 'th';
31984            return number + output;
31985        },
31986        week: {
31987            dow: 1, // Monday is the first day of the week.
31988            doy: 4, // The week that contains Jan 4th is the first week of the year.
31989        },
31990    });
31991
31992    return enNz;
31993
31994})));
31995
31996
31997/***/ }),
31998
31999/***/ 9527:
32000/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32001
32002//! moment.js locale configuration
32003//! locale : Turkmen [tk]
32004//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy
32005
32006;(function (global, factory) {
32007    true ? factory(__webpack_require__(5093)) :
32008   0
32009}(this, (function (moment) { 'use strict';
32010
32011    //! moment.js locale configuration
32012
32013    var suffixes = {
32014        1: "'inji",
32015        5: "'inji",
32016        8: "'inji",
32017        70: "'inji",
32018        80: "'inji",
32019        2: "'nji",
32020        7: "'nji",
32021        20: "'nji",
32022        50: "'nji",
32023        3: "'ünji",
32024        4: "'ünji",
32025        100: "'ünji",
32026        6: "'njy",
32027        9: "'unjy",
32028        10: "'unjy",
32029        30: "'unjy",
32030        60: "'ynjy",
32031        90: "'ynjy",
32032    };
32033
32034    var tk = moment.defineLocale('tk', {
32035        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
32036            '_'
32037        ),
32038        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
32039        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
32040            '_'
32041        ),
32042        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
32043        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
32044        longDateFormat: {
32045            LT: 'HH:mm',
32046            LTS: 'HH:mm:ss',
32047            L: 'DD.MM.YYYY',
32048            LL: 'D MMMM YYYY',
32049            LLL: 'D MMMM YYYY HH:mm',
32050            LLLL: 'dddd, D MMMM YYYY HH:mm',
32051        },
32052        calendar: {
32053            sameDay: '[bugün sagat] LT',
32054            nextDay: '[ertir sagat] LT',
32055            nextWeek: '[indiki] dddd [sagat] LT',
32056            lastDay: '[düýn] LT',
32057            lastWeek: '[geçen] dddd [sagat] LT',
32058            sameElse: 'L',
32059        },
32060        relativeTime: {
32061            future: '%s soň',
32062            past: '%s öň',
32063            s: 'birnäçe sekunt',
32064            m: 'bir minut',
32065            mm: '%d minut',
32066            h: 'bir sagat',
32067            hh: '%d sagat',
32068            d: 'bir gün',
32069            dd: '%d gün',
32070            M: 'bir aý',
32071            MM: '%d aý',
32072            y: 'bir ýyl',
32073            yy: '%d ýyl',
32074        },
32075        ordinal: function (number, period) {
32076            switch (period) {
32077                case 'd':
32078                case 'D':
32079                case 'Do':
32080                case 'DD':
32081                    return number;
32082                default:
32083                    if (number === 0) {
32084                        // special case for zero
32085                        return number + "'unjy";
32086                    }
32087                    var a = number % 10,
32088                        b = (number % 100) - a,
32089                        c = number >= 100 ? 100 : null;
32090                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);
32091            }
32092        },
32093        week: {
32094            dow: 1, // Monday is the first day of the week.
32095            doy: 7, // The week that contains Jan 7th is the first week of the year.
32096        },
32097    });
32098
32099    return tk;
32100
32101})));
32102
32103
32104/***/ }),
32105
32106/***/ 9532:
32107/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32108
32109//! moment.js locale configuration
32110//! locale : Latvian [lv]
32111//! author : Kristaps Karlsons : https://github.com/skakri
32112//! author : Jānis Elmeris : https://github.com/JanisE
32113
32114;(function (global, factory) {
32115    true ? factory(__webpack_require__(5093)) :
32116   0
32117}(this, (function (moment) { 'use strict';
32118
32119    //! moment.js locale configuration
32120
32121    var units = {
32122        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
32123        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
32124        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
32125        h: 'stundas_stundām_stunda_stundas'.split('_'),
32126        hh: 'stundas_stundām_stunda_stundas'.split('_'),
32127        d: 'dienas_dienām_diena_dienas'.split('_'),
32128        dd: 'dienas_dienām_diena_dienas'.split('_'),
32129        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
32130        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
32131        y: 'gada_gadiem_gads_gadi'.split('_'),
32132        yy: 'gada_gadiem_gads_gadi'.split('_'),
32133    };
32134    /**
32135     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
32136     */
32137    function format(forms, number, withoutSuffix) {
32138        if (withoutSuffix) {
32139            // E.g. "21 minūte", "3 minūtes".
32140            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
32141        } else {
32142            // E.g. "21 minūtes" as in "pēc 21 minūtes".
32143            // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
32144            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
32145        }
32146    }
32147    function relativeTimeWithPlural(number, withoutSuffix, key) {
32148        return number + ' ' + format(units[key], number, withoutSuffix);
32149    }
32150    function relativeTimeWithSingular(number, withoutSuffix, key) {
32151        return format(units[key], number, withoutSuffix);
32152    }
32153    function relativeSeconds(number, withoutSuffix) {
32154        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
32155    }
32156
32157    var lv = moment.defineLocale('lv', {
32158        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
32159            '_'
32160        ),
32161        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
32162        weekdays:
32163            'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
32164                '_'
32165            ),
32166        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
32167        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
32168        weekdaysParseExact: true,
32169        longDateFormat: {
32170            LT: 'HH:mm',
32171            LTS: 'HH:mm:ss',
32172            L: 'DD.MM.YYYY.',
32173            LL: 'YYYY. [gada] D. MMMM',
32174            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
32175            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
32176        },
32177        calendar: {
32178            sameDay: '[Å odien pulksten] LT',
32179            nextDay: '[Rīt pulksten] LT',
32180            nextWeek: 'dddd [pulksten] LT',
32181            lastDay: '[Vakar pulksten] LT',
32182            lastWeek: '[Pagājušā] dddd [pulksten] LT',
32183            sameElse: 'L',
32184        },
32185        relativeTime: {
32186            future: 'pēc %s',
32187            past: 'pirms %s',
32188            s: relativeSeconds,
32189            ss: relativeTimeWithPlural,
32190            m: relativeTimeWithSingular,
32191            mm: relativeTimeWithPlural,
32192            h: relativeTimeWithSingular,
32193            hh: relativeTimeWithPlural,
32194            d: relativeTimeWithSingular,
32195            dd: relativeTimeWithPlural,
32196            M: relativeTimeWithSingular,
32197            MM: relativeTimeWithPlural,
32198            y: relativeTimeWithSingular,
32199            yy: relativeTimeWithPlural,
32200        },
32201        dayOfMonthOrdinalParse: /\d{1,2}\./,
32202        ordinal: '%d.',
32203        week: {
32204            dow: 1, // Monday is the first day of the week.
32205            doy: 4, // The week that contains Jan 4th is the first week of the year.
32206        },
32207    });
32208
32209    return lv;
32210
32211})));
32212
32213
32214/***/ }),
32215
32216/***/ 9680:
32217/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32218
32219//! moment.js locale configuration
32220//! locale : Luxembourgish [lb]
32221//! author : mweimerskirch : https://github.com/mweimerskirch
32222//! author : David Raison : https://github.com/kwisatz
32223
32224;(function (global, factory) {
32225    true ? factory(__webpack_require__(5093)) :
32226   0
32227}(this, (function (moment) { 'use strict';
32228
32229    //! moment.js locale configuration
32230
32231    function processRelativeTime(number, withoutSuffix, key, isFuture) {
32232        var format = {
32233            m: ['eng Minutt', 'enger Minutt'],
32234            h: ['eng Stonn', 'enger Stonn'],
32235            d: ['een Dag', 'engem Dag'],
32236            M: ['ee Mount', 'engem Mount'],
32237            y: ['ee Joer', 'engem Joer'],
32238        };
32239        return withoutSuffix ? format[key][0] : format[key][1];
32240    }
32241    function processFutureTime(string) {
32242        var number = string.substr(0, string.indexOf(' '));
32243        if (eifelerRegelAppliesToNumber(number)) {
32244            return 'a ' + string;
32245        }
32246        return 'an ' + string;
32247    }
32248    function processPastTime(string) {
32249        var number = string.substr(0, string.indexOf(' '));
32250        if (eifelerRegelAppliesToNumber(number)) {
32251            return 'viru ' + string;
32252        }
32253        return 'virun ' + string;
32254    }
32255    /**
32256     * Returns true if the word before the given number loses the '-n' ending.
32257     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
32258     *
32259     * @param number {integer}
32260     * @returns {boolean}
32261     */
32262    function eifelerRegelAppliesToNumber(number) {
32263        number = parseInt(number, 10);
32264        if (isNaN(number)) {
32265            return false;
32266        }
32267        if (number < 0) {
32268            // Negative Number --> always true
32269            return true;
32270        } else if (number < 10) {
32271            // Only 1 digit
32272            if (4 <= number && number <= 7) {
32273                return true;
32274            }
32275            return false;
32276        } else if (number < 100) {
32277            // 2 digits
32278            var lastDigit = number % 10,
32279                firstDigit = number / 10;
32280            if (lastDigit === 0) {
32281                return eifelerRegelAppliesToNumber(firstDigit);
32282            }
32283            return eifelerRegelAppliesToNumber(lastDigit);
32284        } else if (number < 10000) {
32285            // 3 or 4 digits --> recursively check first digit
32286            while (number >= 10) {
32287                number = number / 10;
32288            }
32289            return eifelerRegelAppliesToNumber(number);
32290        } else {
32291            // Anything larger than 4 digits: recursively check first n-3 digits
32292            number = number / 1000;
32293            return eifelerRegelAppliesToNumber(number);
32294        }
32295    }
32296
32297    var lb = moment.defineLocale('lb', {
32298        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
32299            '_'
32300        ),
32301        monthsShort:
32302            'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
32303                '_'
32304            ),
32305        monthsParseExact: true,
32306        weekdays:
32307            'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
32308                '_'
32309            ),
32310        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
32311        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
32312        weekdaysParseExact: true,
32313        longDateFormat: {
32314            LT: 'H:mm [Auer]',
32315            LTS: 'H:mm:ss [Auer]',
32316            L: 'DD.MM.YYYY',
32317            LL: 'D. MMMM YYYY',
32318            LLL: 'D. MMMM YYYY H:mm [Auer]',
32319            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
32320        },
32321        calendar: {
32322            sameDay: '[Haut um] LT',
32323            sameElse: 'L',
32324            nextDay: '[Muer um] LT',
32325            nextWeek: 'dddd [um] LT',
32326            lastDay: '[Gëschter um] LT',
32327            lastWeek: function () {
32328                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
32329                switch (this.day()) {
32330                    case 2:
32331                    case 4:
32332                        return '[Leschten] dddd [um] LT';
32333                    default:
32334                        return '[Leschte] dddd [um] LT';
32335                }
32336            },
32337        },
32338        relativeTime: {
32339            future: processFutureTime,
32340            past: processPastTime,
32341            s: 'e puer Sekonnen',
32342            ss: '%d Sekonnen',
32343            m: processRelativeTime,
32344            mm: '%d Minutten',
32345            h: processRelativeTime,
32346            hh: '%d Stonnen',
32347            d: processRelativeTime,
32348            dd: '%d Deeg',
32349            M: processRelativeTime,
32350            MM: '%d Méint',
32351            y: processRelativeTime,
32352            yy: '%d Joer',
32353        },
32354        dayOfMonthOrdinalParse: /\d{1,2}\./,
32355        ordinal: '%d.',
32356        week: {
32357            dow: 1, // Monday is the first day of the week.
32358            doy: 4, // The week that contains Jan 4th is the first week of the year.
32359        },
32360    });
32361
32362    return lb;
32363
32364})));
32365
32366
32367/***/ }),
32368
32369/***/ 9722:
32370/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32371
32372//! moment.js locale configuration
32373//! locale : Javanese [jv]
32374//! author : Rony Lantip : https://github.com/lantip
32375//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
32376
32377;(function (global, factory) {
32378    true ? factory(__webpack_require__(5093)) :
32379   0
32380}(this, (function (moment) { 'use strict';
32381
32382    //! moment.js locale configuration
32383
32384    var jv = moment.defineLocale('jv', {
32385        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
32386            '_'
32387        ),
32388        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
32389        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
32390        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
32391        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
32392        longDateFormat: {
32393            LT: 'HH.mm',
32394            LTS: 'HH.mm.ss',
32395            L: 'DD/MM/YYYY',
32396            LL: 'D MMMM YYYY',
32397            LLL: 'D MMMM YYYY [pukul] HH.mm',
32398            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
32399        },
32400        meridiemParse: /enjing|siyang|sonten|ndalu/,
32401        meridiemHour: function (hour, meridiem) {
32402            if (hour === 12) {
32403                hour = 0;
32404            }
32405            if (meridiem === 'enjing') {
32406                return hour;
32407            } else if (meridiem === 'siyang') {
32408                return hour >= 11 ? hour : hour + 12;
32409            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
32410                return hour + 12;
32411            }
32412        },
32413        meridiem: function (hours, minutes, isLower) {
32414            if (hours < 11) {
32415                return 'enjing';
32416            } else if (hours < 15) {
32417                return 'siyang';
32418            } else if (hours < 19) {
32419                return 'sonten';
32420            } else {
32421                return 'ndalu';
32422            }
32423        },
32424        calendar: {
32425            sameDay: '[Dinten puniko pukul] LT',
32426            nextDay: '[Mbenjang pukul] LT',
32427            nextWeek: 'dddd [pukul] LT',
32428            lastDay: '[Kala wingi pukul] LT',
32429            lastWeek: 'dddd [kepengker pukul] LT',
32430            sameElse: 'L',
32431        },
32432        relativeTime: {
32433            future: 'wonten ing %s',
32434            past: '%s ingkang kepengker',
32435            s: 'sawetawis detik',
32436            ss: '%d detik',
32437            m: 'setunggal menit',
32438            mm: '%d menit',
32439            h: 'setunggal jam',
32440            hh: '%d jam',
32441            d: 'sedinten',
32442            dd: '%d dinten',
32443            M: 'sewulan',
32444            MM: '%d wulan',
32445            y: 'setaun',
32446            yy: '%d taun',
32447        },
32448        week: {
32449            dow: 1, // Monday is the first day of the week.
32450            doy: 7, // The week that contains Jan 7th is the first week of the year.
32451        },
32452    });
32453
32454    return jv;
32455
32456})));
32457
32458
32459/***/ }),
32460
32461/***/ 9756:
32462/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32463
32464//! moment.js locale configuration
32465//! locale  :  Arabic (Tunisia) [ar-tn]
32466//! author : Nader Toukabri : https://github.com/naderio
32467
32468;(function (global, factory) {
32469    true ? factory(__webpack_require__(5093)) :
32470   0
32471}(this, (function (moment) { 'use strict';
32472
32473    //! moment.js locale configuration
32474
32475    var arTn = moment.defineLocale('ar-tn', {
32476        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
32477            '_'
32478        ),
32479        monthsShort:
32480            'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
32481                '_'
32482            ),
32483        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
32484        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
32485        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
32486        weekdaysParseExact: true,
32487        longDateFormat: {
32488            LT: 'HH:mm',
32489            LTS: 'HH:mm:ss',
32490            L: 'DD/MM/YYYY',
32491            LL: 'D MMMM YYYY',
32492            LLL: 'D MMMM YYYY HH:mm',
32493            LLLL: 'dddd D MMMM YYYY HH:mm',
32494        },
32495        calendar: {
32496            sameDay: '[اليوم على الساعة] LT',
32497            nextDay: '[غدا على الساعة] LT',
32498            nextWeek: 'dddd [على الساعة] LT',
32499            lastDay: '[أمس على الساعة] LT',
32500            lastWeek: 'dddd [على الساعة] LT',
32501            sameElse: 'L',
32502        },
32503        relativeTime: {
32504            future: 'في %s',
32505            past: 'منذ %s',
32506            s: 'ثوان',
32507            ss: '%d ثانية',
32508            m: 'دقيقة',
32509            mm: '%d دقائق',
32510            h: 'ساعة',
32511            hh: '%d ساعات',
32512            d: 'يوم',
32513            dd: '%d أيام',
32514            M: 'شهر',
32515            MM: '%d أشهر',
32516            y: 'سنة',
32517            yy: '%d سنوات',
32518        },
32519        week: {
32520            dow: 1, // Monday is the first day of the week.
32521            doy: 4, // The week that contains Jan 4th is the first week of the year.
32522        },
32523    });
32524
32525    return arTn;
32526
32527})));
32528
32529
32530/***/ }),
32531
32532/***/ 9834:
32533/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32534
32535//! moment.js locale configuration
32536//! locale : Portuguese [pt]
32537//! author : Jefferson : https://github.com/jalex79
32538
32539;(function (global, factory) {
32540    true ? factory(__webpack_require__(5093)) :
32541   0
32542}(this, (function (moment) { 'use strict';
32543
32544    //! moment.js locale configuration
32545
32546    var pt = moment.defineLocale('pt', {
32547        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
32548            '_'
32549        ),
32550        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
32551        weekdays:
32552            'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
32553                '_'
32554            ),
32555        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
32556        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
32557        weekdaysParseExact: true,
32558        longDateFormat: {
32559            LT: 'HH:mm',
32560            LTS: 'HH:mm:ss',
32561            L: 'DD/MM/YYYY',
32562            LL: 'D [de] MMMM [de] YYYY',
32563            LLL: 'D [de] MMMM [de] YYYY HH:mm',
32564            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
32565        },
32566        calendar: {
32567            sameDay: '[Hoje às] LT',
32568            nextDay: '[Amanhã às] LT',
32569            nextWeek: 'dddd [às] LT',
32570            lastDay: '[Ontem às] LT',
32571            lastWeek: function () {
32572                return this.day() === 0 || this.day() === 6
32573                    ? '[Último] dddd [às] LT' // Saturday + Sunday
32574                    : '[Última] dddd [às] LT'; // Monday - Friday
32575            },
32576            sameElse: 'L',
32577        },
32578        relativeTime: {
32579            future: 'em %s',
32580            past: 'há %s',
32581            s: 'segundos',
32582            ss: '%d segundos',
32583            m: 'um minuto',
32584            mm: '%d minutos',
32585            h: 'uma hora',
32586            hh: '%d horas',
32587            d: 'um dia',
32588            dd: '%d dias',
32589            w: 'uma semana',
32590            ww: '%d semanas',
32591            M: 'um mês',
32592            MM: '%d meses',
32593            y: 'um ano',
32594            yy: '%d anos',
32595        },
32596        dayOfMonthOrdinalParse: /\d{1,2}º/,
32597        ordinal: '%dº',
32598        week: {
32599            dow: 1, // Monday is the first day of the week.
32600            doy: 4, // The week that contains Jan 4th is the first week of the year.
32601        },
32602    });
32603
32604    return pt;
32605
32606})));
32607
32608
32609/***/ }),
32610
32611/***/ 9846:
32612/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32613
32614//! moment.js locale configuration
32615//! locale : Talossan [tzl]
32616//! author : Robin van der Vliet : https://github.com/robin0van0der0v
32617//! author : Iustì Canun
32618
32619;(function (global, factory) {
32620    true ? factory(__webpack_require__(5093)) :
32621   0
32622}(this, (function (moment) { 'use strict';
32623
32624    //! moment.js locale configuration
32625
32626    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
32627    // This is currently too difficult (maybe even impossible) to add.
32628    var tzl = moment.defineLocale('tzl', {
32629        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
32630            '_'
32631        ),
32632        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
32633        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
32634        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
32635        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
32636        longDateFormat: {
32637            LT: 'HH.mm',
32638            LTS: 'HH.mm.ss',
32639            L: 'DD.MM.YYYY',
32640            LL: 'D. MMMM [dallas] YYYY',
32641            LLL: 'D. MMMM [dallas] YYYY HH.mm',
32642            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
32643        },
32644        meridiemParse: /d\'o|d\'a/i,
32645        isPM: function (input) {
32646            return "d'o" === input.toLowerCase();
32647        },
32648        meridiem: function (hours, minutes, isLower) {
32649            if (hours > 11) {
32650                return isLower ? "d'o" : "D'O";
32651            } else {
32652                return isLower ? "d'a" : "D'A";
32653            }
32654        },
32655        calendar: {
32656            sameDay: '[oxhi à] LT',
32657            nextDay: '[demà à] LT',
32658            nextWeek: 'dddd [à] LT',
32659            lastDay: '[ieiri à] LT',
32660            lastWeek: '[sür el] dddd [lasteu à] LT',
32661            sameElse: 'L',
32662        },
32663        relativeTime: {
32664            future: 'osprei %s',
32665            past: 'ja%s',
32666            s: processRelativeTime,
32667            ss: processRelativeTime,
32668            m: processRelativeTime,
32669            mm: processRelativeTime,
32670            h: processRelativeTime,
32671            hh: processRelativeTime,
32672            d: processRelativeTime,
32673            dd: processRelativeTime,
32674            M: processRelativeTime,
32675            MM: processRelativeTime,
32676            y: processRelativeTime,
32677            yy: processRelativeTime,
32678        },
32679        dayOfMonthOrdinalParse: /\d{1,2}\./,
32680        ordinal: '%d.',
32681        week: {
32682            dow: 1, // Monday is the first day of the week.
32683            doy: 4, // The week that contains Jan 4th is the first week of the year.
32684        },
32685    });
32686
32687    function processRelativeTime(number, withoutSuffix, key, isFuture) {
32688        var format = {
32689            s: ['viensas secunds', "'iensas secunds"],
32690            ss: [number + ' secunds', '' + number + ' secunds'],
32691            m: ["'n míut", "'iens míut"],
32692            mm: [number + ' míuts', '' + number + ' míuts'],
32693            h: ["'n þora", "'iensa þora"],
32694            hh: [number + ' þoras', '' + number + ' þoras'],
32695            d: ["'n ziua", "'iensa ziua"],
32696            dd: [number + ' ziuas', '' + number + ' ziuas'],
32697            M: ["'n mes", "'iens mes"],
32698            MM: [number + ' mesen', '' + number + ' mesen'],
32699            y: ["'n ar", "'iens ar"],
32700            yy: [number + ' ars', '' + number + ' ars'],
32701        };
32702        return isFuture
32703            ? format[key][0]
32704            : withoutSuffix
32705              ? format[key][0]
32706              : format[key][1];
32707    }
32708
32709    return tzl;
32710
32711})));
32712
32713
32714/***/ }),
32715
32716/***/ 9849:
32717/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
32718
32719//! moment.js locale configuration
32720//! locale : Punjabi (India) [pa-in]
32721//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
32722
32723;(function (global, factory) {
32724    true ? factory(__webpack_require__(5093)) :
32725   0
32726}(this, (function (moment) { 'use strict';
32727
32728    //! moment.js locale configuration
32729
32730    var symbolMap = {
32731            1: 'à©§',
32732            2: '੨',
32733            3: 'à©©',
32734            4: '੪',
32735            5: 'à©«',
32736            6: '੬',
32737            7: 'à©­',
32738            8: 'à©®',
32739            9: '੯',
32740            0: '੦',
32741        },
32742        numberMap = {
32743            'à©§': '1',
32744            '੨': '2',
32745            'à©©': '3',
32746            '੪': '4',
32747            'à©«': '5',
32748            '੬': '6',
32749            'à©­': '7',
32750            'à©®': '8',
32751            '੯': '9',
32752            '੦': '0',
32753        };
32754
32755    var paIn = moment.defineLocale('pa-in', {
32756        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
32757        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
32758            '_'
32759        ),
32760        monthsShort:
32761            'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
32762                '_'
32763            ),
32764        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
32765            '_'
32766        ),
32767        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
32768        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
32769        longDateFormat: {
32770            LT: 'A h:mm ਵਜੇ',
32771            LTS: 'A h:mm:ss ਵਜੇ',
32772            L: 'DD/MM/YYYY',
32773            LL: 'D MMMM YYYY',
32774            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
32775            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
32776        },
32777        calendar: {
32778            sameDay: '[ਅਜ] LT',
32779            nextDay: '[ਕਲ] LT',
32780            nextWeek: '[ਅਗਲਾ] dddd, LT',
32781            lastDay: '[ਕਲ] LT',
32782            lastWeek: '[ਪਿਛਲੇ] dddd, LT',
32783            sameElse: 'L',
32784        },
32785        relativeTime: {
32786            future: '%s ਵਿੱਚ',
32787            past: '%s ਪਿਛਲੇ',
32788            s: 'ਕੁਝ ਸਕਿੰਟ',
32789            ss: '%d ਸਕਿੰਟ',
32790            m: 'ਇਕ ਮਿੰਟ',
32791            mm: '%d ਮਿੰਟ',
32792            h: 'ਇੱਕ ਘੰਟਾ',
32793            hh: '%d ਘੰਟੇ',
32794            d: 'ਇੱਕ ਦਿਨ',
32795            dd: '%d ਦਿਨ',
32796            M: 'ਇੱਕ ਮਹੀਨਾ',
32797            MM: '%d ਮਹੀਨੇ',
32798            y: 'ਇੱਕ ਸਾਲ',
32799            yy: '%d ਸਾਲ',
32800        },
32801        preparse: function (string) {
32802            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
32803                return numberMap[match];
32804            });
32805        },
32806        postformat: function (string) {
32807            return string.replace(/\d/g, function (match) {
32808                return symbolMap[match];
32809            });
32810        },
32811        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
32812        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
32813        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
32814        meridiemHour: function (hour, meridiem) {
32815            if (hour === 12) {
32816                hour = 0;
32817            }
32818            if (meridiem === 'ਰਾਤ') {
32819                return hour < 4 ? hour : hour + 12;
32820            } else if (meridiem === 'ਸਵੇਰ') {
32821                return hour;
32822            } else if (meridiem === 'ਦੁਪਹਿਰ') {
32823                return hour >= 10 ? hour : hour + 12;
32824            } else if (meridiem === 'ਸ਼ਾਮ') {
32825                return hour + 12;
32826            }
32827        },
32828        meridiem: function (hour, minute, isLower) {
32829            if (hour < 4) {
32830                return 'ਰਾਤ';
32831            } else if (hour < 10) {
32832                return 'ਸਵੇਰ';
32833            } else if (hour < 17) {
32834                return 'ਦੁਪਹਿਰ';
32835            } else if (hour < 20) {
32836                return 'ਸ਼ਾਮ';
32837            } else {
32838                return 'ਰਾਤ';
32839            }
32840        },
32841        week: {
32842            dow: 0, // Sunday is the first day of the week.
32843            doy: 6, // The week that contains Jan 6th is the first week of the year.
32844        },
32845    });
32846
32847    return paIn;
32848
32849})));
32850
32851
32852/***/ })
32853
32854/******/ 	});
32855/************************************************************************/
32856/******/ 	// The module cache
32857/******/ 	var __webpack_module_cache__ = {};
32858/******/ 	
32859/******/ 	// The require function
32860/******/ 	function __webpack_require__(moduleId) {
32861/******/ 		// Check if module is in cache
32862/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
32863/******/ 		if (cachedModule !== undefined) {
32864/******/ 			return cachedModule.exports;
32865/******/ 		}
32866/******/ 		// Create a new module (and put it into the cache)
32867/******/ 		var module = __webpack_module_cache__[moduleId] = {
32868/******/ 			id: moduleId,
32869/******/ 			loaded: false,
32870/******/ 			exports: {}
32871/******/ 		};
32872/******/ 	
32873/******/ 		// Execute the module function
32874/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
32875/******/ 	
32876/******/ 		// Flag the module as loaded
32877/******/ 		module.loaded = true;
32878/******/ 	
32879/******/ 		// Return the exports of the module
32880/******/ 		return module.exports;
32881/******/ 	}
32882/******/ 	
32883/************************************************************************/
32884/******/ 	/* webpack/runtime/compat get default export */
32885/******/ 	!function() {
32886/******/ 		// getDefaultExport function for compatibility with non-harmony modules
32887/******/ 		__webpack_require__.n = function(module) {
32888/******/ 			var getter = module && module.__esModule ?
32889/******/ 				function() { return module['default']; } :
32890/******/ 				function() { return module; };
32891/******/ 			__webpack_require__.d(getter, { a: getter });
32892/******/ 			return getter;
32893/******/ 		};
32894/******/ 	}();
32895/******/ 	
32896/******/ 	/* webpack/runtime/define property getters */
32897/******/ 	!function() {
32898/******/ 		// define getter functions for harmony exports
32899/******/ 		__webpack_require__.d = function(exports, definition) {
32900/******/ 			for(var key in definition) {
32901/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
32902/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
32903/******/ 				}
32904/******/ 			}
32905/******/ 		};
32906/******/ 	}();
32907/******/ 	
32908/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
32909/******/ 	!function() {
32910/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
32911/******/ 	}();
32912/******/ 	
32913/******/ 	/* webpack/runtime/node module decorator */
32914/******/ 	!function() {
32915/******/ 		__webpack_require__.nmd = function(module) {
32916/******/ 			module.paths = [];
32917/******/ 			if (!module.children) module.children = [];
32918/******/ 			return module;
32919/******/ 		};
32920/******/ 	}();
32921/******/ 	
32922/************************************************************************/
32923var __webpack_exports__ = {};
32924// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
32925!function() {
32926"use strict";
32927/* harmony import */ var _components_jquery_eventCalendar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3124);
32928/* harmony import */ var _components_jquery_eventCalendar__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_components_jquery_eventCalendar__WEBPACK_IMPORTED_MODULE_0__);
32929/* provided dependency */ var $ = __webpack_require__(4692);
32930
32931
32932// window.moment = require('moment');
32933
32934if ($('.events-calendar').length > 0) {
32935    $(".events-calendar").each(function () {
32936        var calendarCategory = 'all';
32937        
32938        if($(this).data('category')) {
32939            calendarCategory = $(this).data('category');
32940        } 
32941        
32942        $(this).eventCalendar({
32943            eventsjson: options.ajax_url + '?action=get_events&category=' + calendarCategory,
32944            locales: {
32945                locale: "pl",
32946                monthNames: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Pażdziernik", "Listopad", "Grudzień"],
32947                dayNames: ['Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela'],
32948                dayNamesShort: ['Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob', 'Nie'],
32949                txt_noEvents: "Brak wydarzeń",
32950                txt_SpecificEvents_prev: "",
32951                txt_SpecificEvents_after: "wydarzenia:",
32952                txt_next: ">",
32953                txt_prev: "<",
32954                txt_NextEvents: "Nadchodzące wydarzenia:",
32955                txt_GoToEventUrl: "Czytaj więcej",
32956                txt_loading: 'Ładowanie...',
32957            }
32958        });
32959    });
32960}
32961}();
32962// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
32963!function() {
32964"use strict";
32965// extracted by mini-css-extract-plugin
32966
32967}();
32968/******/ })()
32969;

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.