UNPKG

1.04 MBJavaScriptView Raw
1/******/ (function(modules) { // webpackBootstrap
2/******/ // The module cache
3/******/ var installedModules = {};
4/******/
5/******/ // The require function
6/******/ function __webpack_require__(moduleId) {
7/******/
8/******/ // Check if module is in cache
9/******/ if(installedModules[moduleId]) {
10/******/ return installedModules[moduleId].exports;
11/******/ }
12/******/ // Create a new module (and put it into the cache)
13/******/ var module = installedModules[moduleId] = {
14/******/ i: moduleId,
15/******/ l: false,
16/******/ exports: {}
17/******/ };
18/******/
19/******/ // Execute the module function
20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ // Flag the module as loaded
23/******/ module.l = true;
24/******/
25/******/ // Return the exports of the module
26/******/ return module.exports;
27/******/ }
28/******/
29/******/
30/******/ // expose the modules object (__webpack_modules__)
31/******/ __webpack_require__.m = modules;
32/******/
33/******/ // expose the module cache
34/******/ __webpack_require__.c = installedModules;
35/******/
36/******/ // identity function for calling harmony imports with the correct context
37/******/ __webpack_require__.i = function(value) { return value; };
38/******/
39/******/ // define getter function for harmony exports
40/******/ __webpack_require__.d = function(exports, name, getter) {
41/******/ if(!__webpack_require__.o(exports, name)) {
42/******/ Object.defineProperty(exports, name, {
43/******/ configurable: false,
44/******/ enumerable: true,
45/******/ get: getter
46/******/ });
47/******/ }
48/******/ };
49/******/
50/******/ // getDefaultExport function for compatibility with non-harmony modules
51/******/ __webpack_require__.n = function(module) {
52/******/ var getter = module && module.__esModule ?
53/******/ function getDefault() { return module['default']; } :
54/******/ function getModuleExports() { return module; };
55/******/ __webpack_require__.d(getter, 'a', getter);
56/******/ return getter;
57/******/ };
58/******/
59/******/ // Object.prototype.hasOwnProperty.call
60/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
61/******/
62/******/ // __webpack_public_path__
63/******/ __webpack_require__.p = "";
64/******/
65/******/ // Load entry module and return exports
66/******/ return __webpack_require__(__webpack_require__.s = 195);
67/******/ })
68/************************************************************************/
69/******/ ([
70/* 0 */
71/***/ (function(module, exports, __webpack_require__) {
72
73/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
74
75;(function (global, factory) {
76 true ? module.exports = factory() :
77 typeof define === 'function' && define.amd ? define(factory) :
78 global.moment = factory()
79}(this, (function () { 'use strict';
80
81 var hookCallback;
82
83 function hooks () {
84 return hookCallback.apply(null, arguments);
85 }
86
87 // This is done to register the method called with moment()
88 // without creating circular dependencies.
89 function setHookCallback (callback) {
90 hookCallback = callback;
91 }
92
93 function isArray(input) {
94 return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
95 }
96
97 function isObject(input) {
98 // IE8 will treat undefined and null as object if it wasn't for
99 // input != null
100 return input != null && Object.prototype.toString.call(input) === '[object Object]';
101 }
102
103 function isObjectEmpty(obj) {
104 if (Object.getOwnPropertyNames) {
105 return (Object.getOwnPropertyNames(obj).length === 0);
106 } else {
107 var k;
108 for (k in obj) {
109 if (obj.hasOwnProperty(k)) {
110 return false;
111 }
112 }
113 return true;
114 }
115 }
116
117 function isUndefined(input) {
118 return input === void 0;
119 }
120
121 function isNumber(input) {
122 return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
123 }
124
125 function isDate(input) {
126 return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
127 }
128
129 function map(arr, fn) {
130 var res = [], i;
131 for (i = 0; i < arr.length; ++i) {
132 res.push(fn(arr[i], i));
133 }
134 return res;
135 }
136
137 function hasOwnProp(a, b) {
138 return Object.prototype.hasOwnProperty.call(a, b);
139 }
140
141 function extend(a, b) {
142 for (var i in b) {
143 if (hasOwnProp(b, i)) {
144 a[i] = b[i];
145 }
146 }
147
148 if (hasOwnProp(b, 'toString')) {
149 a.toString = b.toString;
150 }
151
152 if (hasOwnProp(b, 'valueOf')) {
153 a.valueOf = b.valueOf;
154 }
155
156 return a;
157 }
158
159 function createUTC (input, format, locale, strict) {
160 return createLocalOrUTC(input, format, locale, strict, true).utc();
161 }
162
163 function defaultParsingFlags() {
164 // We need to deep clone this object.
165 return {
166 empty : false,
167 unusedTokens : [],
168 unusedInput : [],
169 overflow : -2,
170 charsLeftOver : 0,
171 nullInput : false,
172 invalidMonth : null,
173 invalidFormat : false,
174 userInvalidated : false,
175 iso : false,
176 parsedDateParts : [],
177 meridiem : null,
178 rfc2822 : false,
179 weekdayMismatch : false
180 };
181 }
182
183 function getParsingFlags(m) {
184 if (m._pf == null) {
185 m._pf = defaultParsingFlags();
186 }
187 return m._pf;
188 }
189
190 var some;
191 if (Array.prototype.some) {
192 some = Array.prototype.some;
193 } else {
194 some = function (fun) {
195 var t = Object(this);
196 var len = t.length >>> 0;
197
198 for (var i = 0; i < len; i++) {
199 if (i in t && fun.call(this, t[i], i, t)) {
200 return true;
201 }
202 }
203
204 return false;
205 };
206 }
207
208 function isValid(m) {
209 if (m._isValid == null) {
210 var flags = getParsingFlags(m);
211 var parsedParts = some.call(flags.parsedDateParts, function (i) {
212 return i != null;
213 });
214 var isNowValid = !isNaN(m._d.getTime()) &&
215 flags.overflow < 0 &&
216 !flags.empty &&
217 !flags.invalidMonth &&
218 !flags.invalidWeekday &&
219 !flags.weekdayMismatch &&
220 !flags.nullInput &&
221 !flags.invalidFormat &&
222 !flags.userInvalidated &&
223 (!flags.meridiem || (flags.meridiem && parsedParts));
224
225 if (m._strict) {
226 isNowValid = isNowValid &&
227 flags.charsLeftOver === 0 &&
228 flags.unusedTokens.length === 0 &&
229 flags.bigHour === undefined;
230 }
231
232 if (Object.isFrozen == null || !Object.isFrozen(m)) {
233 m._isValid = isNowValid;
234 }
235 else {
236 return isNowValid;
237 }
238 }
239 return m._isValid;
240 }
241
242 function createInvalid (flags) {
243 var m = createUTC(NaN);
244 if (flags != null) {
245 extend(getParsingFlags(m), flags);
246 }
247 else {
248 getParsingFlags(m).userInvalidated = true;
249 }
250
251 return m;
252 }
253
254 // Plugins that add properties should also add the key here (null value),
255 // so we can properly clone ourselves.
256 var momentProperties = hooks.momentProperties = [];
257
258 function copyConfig(to, from) {
259 var i, prop, val;
260
261 if (!isUndefined(from._isAMomentObject)) {
262 to._isAMomentObject = from._isAMomentObject;
263 }
264 if (!isUndefined(from._i)) {
265 to._i = from._i;
266 }
267 if (!isUndefined(from._f)) {
268 to._f = from._f;
269 }
270 if (!isUndefined(from._l)) {
271 to._l = from._l;
272 }
273 if (!isUndefined(from._strict)) {
274 to._strict = from._strict;
275 }
276 if (!isUndefined(from._tzm)) {
277 to._tzm = from._tzm;
278 }
279 if (!isUndefined(from._isUTC)) {
280 to._isUTC = from._isUTC;
281 }
282 if (!isUndefined(from._offset)) {
283 to._offset = from._offset;
284 }
285 if (!isUndefined(from._pf)) {
286 to._pf = getParsingFlags(from);
287 }
288 if (!isUndefined(from._locale)) {
289 to._locale = from._locale;
290 }
291
292 if (momentProperties.length > 0) {
293 for (i = 0; i < momentProperties.length; i++) {
294 prop = momentProperties[i];
295 val = from[prop];
296 if (!isUndefined(val)) {
297 to[prop] = val;
298 }
299 }
300 }
301
302 return to;
303 }
304
305 var updateInProgress = false;
306
307 // Moment prototype object
308 function Moment(config) {
309 copyConfig(this, config);
310 this._d = new Date(config._d != null ? config._d.getTime() : NaN);
311 if (!this.isValid()) {
312 this._d = new Date(NaN);
313 }
314 // Prevent infinite loop in case updateOffset creates new moment
315 // objects.
316 if (updateInProgress === false) {
317 updateInProgress = true;
318 hooks.updateOffset(this);
319 updateInProgress = false;
320 }
321 }
322
323 function isMoment (obj) {
324 return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
325 }
326
327 function absFloor (number) {
328 if (number < 0) {
329 // -0 -> 0
330 return Math.ceil(number) || 0;
331 } else {
332 return Math.floor(number);
333 }
334 }
335
336 function toInt(argumentForCoercion) {
337 var coercedNumber = +argumentForCoercion,
338 value = 0;
339
340 if (coercedNumber !== 0 && isFinite(coercedNumber)) {
341 value = absFloor(coercedNumber);
342 }
343
344 return value;
345 }
346
347 // compare two arrays, return the number of differences
348 function compareArrays(array1, array2, dontConvert) {
349 var len = Math.min(array1.length, array2.length),
350 lengthDiff = Math.abs(array1.length - array2.length),
351 diffs = 0,
352 i;
353 for (i = 0; i < len; i++) {
354 if ((dontConvert && array1[i] !== array2[i]) ||
355 (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
356 diffs++;
357 }
358 }
359 return diffs + lengthDiff;
360 }
361
362 function warn(msg) {
363 if (hooks.suppressDeprecationWarnings === false &&
364 (typeof console !== 'undefined') && console.warn) {
365 console.warn('Deprecation warning: ' + msg);
366 }
367 }
368
369 function deprecate(msg, fn) {
370 var firstTime = true;
371
372 return extend(function () {
373 if (hooks.deprecationHandler != null) {
374 hooks.deprecationHandler(null, msg);
375 }
376 if (firstTime) {
377 var args = [];
378 var arg;
379 for (var i = 0; i < arguments.length; i++) {
380 arg = '';
381 if (typeof arguments[i] === 'object') {
382 arg += '\n[' + i + '] ';
383 for (var key in arguments[0]) {
384 arg += key + ': ' + arguments[0][key] + ', ';
385 }
386 arg = arg.slice(0, -2); // Remove trailing comma and space
387 } else {
388 arg = arguments[i];
389 }
390 args.push(arg);
391 }
392 warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
393 firstTime = false;
394 }
395 return fn.apply(this, arguments);
396 }, fn);
397 }
398
399 var deprecations = {};
400
401 function deprecateSimple(name, msg) {
402 if (hooks.deprecationHandler != null) {
403 hooks.deprecationHandler(name, msg);
404 }
405 if (!deprecations[name]) {
406 warn(msg);
407 deprecations[name] = true;
408 }
409 }
410
411 hooks.suppressDeprecationWarnings = false;
412 hooks.deprecationHandler = null;
413
414 function isFunction(input) {
415 return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
416 }
417
418 function set (config) {
419 var prop, i;
420 for (i in config) {
421 prop = config[i];
422 if (isFunction(prop)) {
423 this[i] = prop;
424 } else {
425 this['_' + i] = prop;
426 }
427 }
428 this._config = config;
429 // Lenient ordinal parsing accepts just a number in addition to
430 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
431 // TODO: Remove "ordinalParse" fallback in next major release.
432 this._dayOfMonthOrdinalParseLenient = new RegExp(
433 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
434 '|' + (/\d{1,2}/).source);
435 }
436
437 function mergeConfigs(parentConfig, childConfig) {
438 var res = extend({}, parentConfig), prop;
439 for (prop in childConfig) {
440 if (hasOwnProp(childConfig, prop)) {
441 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
442 res[prop] = {};
443 extend(res[prop], parentConfig[prop]);
444 extend(res[prop], childConfig[prop]);
445 } else if (childConfig[prop] != null) {
446 res[prop] = childConfig[prop];
447 } else {
448 delete res[prop];
449 }
450 }
451 }
452 for (prop in parentConfig) {
453 if (hasOwnProp(parentConfig, prop) &&
454 !hasOwnProp(childConfig, prop) &&
455 isObject(parentConfig[prop])) {
456 // make sure changes to properties don't modify parent config
457 res[prop] = extend({}, res[prop]);
458 }
459 }
460 return res;
461 }
462
463 function Locale(config) {
464 if (config != null) {
465 this.set(config);
466 }
467 }
468
469 var keys;
470
471 if (Object.keys) {
472 keys = Object.keys;
473 } else {
474 keys = function (obj) {
475 var i, res = [];
476 for (i in obj) {
477 if (hasOwnProp(obj, i)) {
478 res.push(i);
479 }
480 }
481 return res;
482 };
483 }
484
485 var defaultCalendar = {
486 sameDay : '[Today at] LT',
487 nextDay : '[Tomorrow at] LT',
488 nextWeek : 'dddd [at] LT',
489 lastDay : '[Yesterday at] LT',
490 lastWeek : '[Last] dddd [at] LT',
491 sameElse : 'L'
492 };
493
494 function calendar (key, mom, now) {
495 var output = this._calendar[key] || this._calendar['sameElse'];
496 return isFunction(output) ? output.call(mom, now) : output;
497 }
498
499 var defaultLongDateFormat = {
500 LTS : 'h:mm:ss A',
501 LT : 'h:mm A',
502 L : 'MM/DD/YYYY',
503 LL : 'MMMM D, YYYY',
504 LLL : 'MMMM D, YYYY h:mm A',
505 LLLL : 'dddd, MMMM D, YYYY h:mm A'
506 };
507
508 function longDateFormat (key) {
509 var format = this._longDateFormat[key],
510 formatUpper = this._longDateFormat[key.toUpperCase()];
511
512 if (format || !formatUpper) {
513 return format;
514 }
515
516 this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
517 return val.slice(1);
518 });
519
520 return this._longDateFormat[key];
521 }
522
523 var defaultInvalidDate = 'Invalid date';
524
525 function invalidDate () {
526 return this._invalidDate;
527 }
528
529 var defaultOrdinal = '%d';
530 var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
531
532 function ordinal (number) {
533 return this._ordinal.replace('%d', number);
534 }
535
536 var defaultRelativeTime = {
537 future : 'in %s',
538 past : '%s ago',
539 s : 'a few seconds',
540 ss : '%d seconds',
541 m : 'a minute',
542 mm : '%d minutes',
543 h : 'an hour',
544 hh : '%d hours',
545 d : 'a day',
546 dd : '%d days',
547 M : 'a month',
548 MM : '%d months',
549 y : 'a year',
550 yy : '%d years'
551 };
552
553 function relativeTime (number, withoutSuffix, string, isFuture) {
554 var output = this._relativeTime[string];
555 return (isFunction(output)) ?
556 output(number, withoutSuffix, string, isFuture) :
557 output.replace(/%d/i, number);
558 }
559
560 function pastFuture (diff, output) {
561 var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
562 return isFunction(format) ? format(output) : format.replace(/%s/i, output);
563 }
564
565 var aliases = {};
566
567 function addUnitAlias (unit, shorthand) {
568 var lowerCase = unit.toLowerCase();
569 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
570 }
571
572 function normalizeUnits(units) {
573 return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
574 }
575
576 function normalizeObjectUnits(inputObject) {
577 var normalizedInput = {},
578 normalizedProp,
579 prop;
580
581 for (prop in inputObject) {
582 if (hasOwnProp(inputObject, prop)) {
583 normalizedProp = normalizeUnits(prop);
584 if (normalizedProp) {
585 normalizedInput[normalizedProp] = inputObject[prop];
586 }
587 }
588 }
589
590 return normalizedInput;
591 }
592
593 var priorities = {};
594
595 function addUnitPriority(unit, priority) {
596 priorities[unit] = priority;
597 }
598
599 function getPrioritizedUnits(unitsObj) {
600 var units = [];
601 for (var u in unitsObj) {
602 units.push({unit: u, priority: priorities[u]});
603 }
604 units.sort(function (a, b) {
605 return a.priority - b.priority;
606 });
607 return units;
608 }
609
610 function zeroFill(number, targetLength, forceSign) {
611 var absNumber = '' + Math.abs(number),
612 zerosToFill = targetLength - absNumber.length,
613 sign = number >= 0;
614 return (sign ? (forceSign ? '+' : '') : '-') +
615 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
616 }
617
618 var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
619
620 var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
621
622 var formatFunctions = {};
623
624 var formatTokenFunctions = {};
625
626 // token: 'M'
627 // padded: ['MM', 2]
628 // ordinal: 'Mo'
629 // callback: function () { this.month() + 1 }
630 function addFormatToken (token, padded, ordinal, callback) {
631 var func = callback;
632 if (typeof callback === 'string') {
633 func = function () {
634 return this[callback]();
635 };
636 }
637 if (token) {
638 formatTokenFunctions[token] = func;
639 }
640 if (padded) {
641 formatTokenFunctions[padded[0]] = function () {
642 return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
643 };
644 }
645 if (ordinal) {
646 formatTokenFunctions[ordinal] = function () {
647 return this.localeData().ordinal(func.apply(this, arguments), token);
648 };
649 }
650 }
651
652 function removeFormattingTokens(input) {
653 if (input.match(/\[[\s\S]/)) {
654 return input.replace(/^\[|\]$/g, '');
655 }
656 return input.replace(/\\/g, '');
657 }
658
659 function makeFormatFunction(format) {
660 var array = format.match(formattingTokens), i, length;
661
662 for (i = 0, length = array.length; i < length; i++) {
663 if (formatTokenFunctions[array[i]]) {
664 array[i] = formatTokenFunctions[array[i]];
665 } else {
666 array[i] = removeFormattingTokens(array[i]);
667 }
668 }
669
670 return function (mom) {
671 var output = '', i;
672 for (i = 0; i < length; i++) {
673 output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
674 }
675 return output;
676 };
677 }
678
679 // format date using native date object
680 function formatMoment(m, format) {
681 if (!m.isValid()) {
682 return m.localeData().invalidDate();
683 }
684
685 format = expandFormat(format, m.localeData());
686 formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
687
688 return formatFunctions[format](m);
689 }
690
691 function expandFormat(format, locale) {
692 var i = 5;
693
694 function replaceLongDateFormatTokens(input) {
695 return locale.longDateFormat(input) || input;
696 }
697
698 localFormattingTokens.lastIndex = 0;
699 while (i >= 0 && localFormattingTokens.test(format)) {
700 format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
701 localFormattingTokens.lastIndex = 0;
702 i -= 1;
703 }
704
705 return format;
706 }
707
708 var match1 = /\d/; // 0 - 9
709 var match2 = /\d\d/; // 00 - 99
710 var match3 = /\d{3}/; // 000 - 999
711 var match4 = /\d{4}/; // 0000 - 9999
712 var match6 = /[+-]?\d{6}/; // -999999 - 999999
713 var match1to2 = /\d\d?/; // 0 - 99
714 var match3to4 = /\d\d\d\d?/; // 999 - 9999
715 var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
716 var match1to3 = /\d{1,3}/; // 0 - 999
717 var match1to4 = /\d{1,4}/; // 0 - 9999
718 var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
719
720 var matchUnsigned = /\d+/; // 0 - inf
721 var matchSigned = /[+-]?\d+/; // -inf - inf
722
723 var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
724 var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
725
726 var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
727
728 // any word (or two) characters or numbers including two/three word month in arabic.
729 // includes scottish gaelic two word and hyphenated months
730 var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
731
732 var regexes = {};
733
734 function addRegexToken (token, regex, strictRegex) {
735 regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
736 return (isStrict && strictRegex) ? strictRegex : regex;
737 };
738 }
739
740 function getParseRegexForToken (token, config) {
741 if (!hasOwnProp(regexes, token)) {
742 return new RegExp(unescapeFormat(token));
743 }
744
745 return regexes[token](config._strict, config._locale);
746 }
747
748 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
749 function unescapeFormat(s) {
750 return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
751 return p1 || p2 || p3 || p4;
752 }));
753 }
754
755 function regexEscape(s) {
756 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
757 }
758
759 var tokens = {};
760
761 function addParseToken (token, callback) {
762 var i, func = callback;
763 if (typeof token === 'string') {
764 token = [token];
765 }
766 if (isNumber(callback)) {
767 func = function (input, array) {
768 array[callback] = toInt(input);
769 };
770 }
771 for (i = 0; i < token.length; i++) {
772 tokens[token[i]] = func;
773 }
774 }
775
776 function addWeekParseToken (token, callback) {
777 addParseToken(token, function (input, array, config, token) {
778 config._w = config._w || {};
779 callback(input, config._w, config, token);
780 });
781 }
782
783 function addTimeToArrayFromToken(token, input, config) {
784 if (input != null && hasOwnProp(tokens, token)) {
785 tokens[token](input, config._a, config, token);
786 }
787 }
788
789 var YEAR = 0;
790 var MONTH = 1;
791 var DATE = 2;
792 var HOUR = 3;
793 var MINUTE = 4;
794 var SECOND = 5;
795 var MILLISECOND = 6;
796 var WEEK = 7;
797 var WEEKDAY = 8;
798
799 // FORMATTING
800
801 addFormatToken('Y', 0, 0, function () {
802 var y = this.year();
803 return y <= 9999 ? '' + y : '+' + y;
804 });
805
806 addFormatToken(0, ['YY', 2], 0, function () {
807 return this.year() % 100;
808 });
809
810 addFormatToken(0, ['YYYY', 4], 0, 'year');
811 addFormatToken(0, ['YYYYY', 5], 0, 'year');
812 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
813
814 // ALIASES
815
816 addUnitAlias('year', 'y');
817
818 // PRIORITIES
819
820 addUnitPriority('year', 1);
821
822 // PARSING
823
824 addRegexToken('Y', matchSigned);
825 addRegexToken('YY', match1to2, match2);
826 addRegexToken('YYYY', match1to4, match4);
827 addRegexToken('YYYYY', match1to6, match6);
828 addRegexToken('YYYYYY', match1to6, match6);
829
830 addParseToken(['YYYYY', 'YYYYYY'], YEAR);
831 addParseToken('YYYY', function (input, array) {
832 array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
833 });
834 addParseToken('YY', function (input, array) {
835 array[YEAR] = hooks.parseTwoDigitYear(input);
836 });
837 addParseToken('Y', function (input, array) {
838 array[YEAR] = parseInt(input, 10);
839 });
840
841 // HELPERS
842
843 function daysInYear(year) {
844 return isLeapYear(year) ? 366 : 365;
845 }
846
847 function isLeapYear(year) {
848 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
849 }
850
851 // HOOKS
852
853 hooks.parseTwoDigitYear = function (input) {
854 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
855 };
856
857 // MOMENTS
858
859 var getSetYear = makeGetSet('FullYear', true);
860
861 function getIsLeapYear () {
862 return isLeapYear(this.year());
863 }
864
865 function makeGetSet (unit, keepTime) {
866 return function (value) {
867 if (value != null) {
868 set$1(this, unit, value);
869 hooks.updateOffset(this, keepTime);
870 return this;
871 } else {
872 return get(this, unit);
873 }
874 };
875 }
876
877 function get (mom, unit) {
878 return mom.isValid() ?
879 mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
880 }
881
882 function set$1 (mom, unit, value) {
883 if (mom.isValid() && !isNaN(value)) {
884 if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
885 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
886 }
887 else {
888 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
889 }
890 }
891 }
892
893 // MOMENTS
894
895 function stringGet (units) {
896 units = normalizeUnits(units);
897 if (isFunction(this[units])) {
898 return this[units]();
899 }
900 return this;
901 }
902
903
904 function stringSet (units, value) {
905 if (typeof units === 'object') {
906 units = normalizeObjectUnits(units);
907 var prioritized = getPrioritizedUnits(units);
908 for (var i = 0; i < prioritized.length; i++) {
909 this[prioritized[i].unit](units[prioritized[i].unit]);
910 }
911 } else {
912 units = normalizeUnits(units);
913 if (isFunction(this[units])) {
914 return this[units](value);
915 }
916 }
917 return this;
918 }
919
920 function mod(n, x) {
921 return ((n % x) + x) % x;
922 }
923
924 var indexOf;
925
926 if (Array.prototype.indexOf) {
927 indexOf = Array.prototype.indexOf;
928 } else {
929 indexOf = function (o) {
930 // I know
931 var i;
932 for (i = 0; i < this.length; ++i) {
933 if (this[i] === o) {
934 return i;
935 }
936 }
937 return -1;
938 };
939 }
940
941 function daysInMonth(year, month) {
942 if (isNaN(year) || isNaN(month)) {
943 return NaN;
944 }
945 var modMonth = mod(month, 12);
946 year += (month - modMonth) / 12;
947 return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
948 }
949
950 // FORMATTING
951
952 addFormatToken('M', ['MM', 2], 'Mo', function () {
953 return this.month() + 1;
954 });
955
956 addFormatToken('MMM', 0, 0, function (format) {
957 return this.localeData().monthsShort(this, format);
958 });
959
960 addFormatToken('MMMM', 0, 0, function (format) {
961 return this.localeData().months(this, format);
962 });
963
964 // ALIASES
965
966 addUnitAlias('month', 'M');
967
968 // PRIORITY
969
970 addUnitPriority('month', 8);
971
972 // PARSING
973
974 addRegexToken('M', match1to2);
975 addRegexToken('MM', match1to2, match2);
976 addRegexToken('MMM', function (isStrict, locale) {
977 return locale.monthsShortRegex(isStrict);
978 });
979 addRegexToken('MMMM', function (isStrict, locale) {
980 return locale.monthsRegex(isStrict);
981 });
982
983 addParseToken(['M', 'MM'], function (input, array) {
984 array[MONTH] = toInt(input) - 1;
985 });
986
987 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
988 var month = config._locale.monthsParse(input, token, config._strict);
989 // if we didn't find a month name, mark the date as invalid.
990 if (month != null) {
991 array[MONTH] = month;
992 } else {
993 getParsingFlags(config).invalidMonth = input;
994 }
995 });
996
997 // LOCALES
998
999 var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
1000 var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
1001 function localeMonths (m, format) {
1002 if (!m) {
1003 return isArray(this._months) ? this._months :
1004 this._months['standalone'];
1005 }
1006 return isArray(this._months) ? this._months[m.month()] :
1007 this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
1008 }
1009
1010 var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
1011 function localeMonthsShort (m, format) {
1012 if (!m) {
1013 return isArray(this._monthsShort) ? this._monthsShort :
1014 this._monthsShort['standalone'];
1015 }
1016 return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
1017 this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
1018 }
1019
1020 function handleStrictParse(monthName, format, strict) {
1021 var i, ii, mom, llc = monthName.toLocaleLowerCase();
1022 if (!this._monthsParse) {
1023 // this is not used
1024 this._monthsParse = [];
1025 this._longMonthsParse = [];
1026 this._shortMonthsParse = [];
1027 for (i = 0; i < 12; ++i) {
1028 mom = createUTC([2000, i]);
1029 this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
1030 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
1031 }
1032 }
1033
1034 if (strict) {
1035 if (format === 'MMM') {
1036 ii = indexOf.call(this._shortMonthsParse, llc);
1037 return ii !== -1 ? ii : null;
1038 } else {
1039 ii = indexOf.call(this._longMonthsParse, llc);
1040 return ii !== -1 ? ii : null;
1041 }
1042 } else {
1043 if (format === 'MMM') {
1044 ii = indexOf.call(this._shortMonthsParse, llc);
1045 if (ii !== -1) {
1046 return ii;
1047 }
1048 ii = indexOf.call(this._longMonthsParse, llc);
1049 return ii !== -1 ? ii : null;
1050 } else {
1051 ii = indexOf.call(this._longMonthsParse, llc);
1052 if (ii !== -1) {
1053 return ii;
1054 }
1055 ii = indexOf.call(this._shortMonthsParse, llc);
1056 return ii !== -1 ? ii : null;
1057 }
1058 }
1059 }
1060
1061 function localeMonthsParse (monthName, format, strict) {
1062 var i, mom, regex;
1063
1064 if (this._monthsParseExact) {
1065 return handleStrictParse.call(this, monthName, format, strict);
1066 }
1067
1068 if (!this._monthsParse) {
1069 this._monthsParse = [];
1070 this._longMonthsParse = [];
1071 this._shortMonthsParse = [];
1072 }
1073
1074 // TODO: add sorting
1075 // Sorting makes sure if one month (or abbr) is a prefix of another
1076 // see sorting in computeMonthsParse
1077 for (i = 0; i < 12; i++) {
1078 // make the regex if we don't have it already
1079 mom = createUTC([2000, i]);
1080 if (strict && !this._longMonthsParse[i]) {
1081 this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
1082 this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
1083 }
1084 if (!strict && !this._monthsParse[i]) {
1085 regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1086 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1087 }
1088 // test the regex
1089 if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
1090 return i;
1091 } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
1092 return i;
1093 } else if (!strict && this._monthsParse[i].test(monthName)) {
1094 return i;
1095 }
1096 }
1097 }
1098
1099 // MOMENTS
1100
1101 function setMonth (mom, value) {
1102 var dayOfMonth;
1103
1104 if (!mom.isValid()) {
1105 // No op
1106 return mom;
1107 }
1108
1109 if (typeof value === 'string') {
1110 if (/^\d+$/.test(value)) {
1111 value = toInt(value);
1112 } else {
1113 value = mom.localeData().monthsParse(value);
1114 // TODO: Another silent failure?
1115 if (!isNumber(value)) {
1116 return mom;
1117 }
1118 }
1119 }
1120
1121 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1122 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1123 return mom;
1124 }
1125
1126 function getSetMonth (value) {
1127 if (value != null) {
1128 setMonth(this, value);
1129 hooks.updateOffset(this, true);
1130 return this;
1131 } else {
1132 return get(this, 'Month');
1133 }
1134 }
1135
1136 function getDaysInMonth () {
1137 return daysInMonth(this.year(), this.month());
1138 }
1139
1140 var defaultMonthsShortRegex = matchWord;
1141 function monthsShortRegex (isStrict) {
1142 if (this._monthsParseExact) {
1143 if (!hasOwnProp(this, '_monthsRegex')) {
1144 computeMonthsParse.call(this);
1145 }
1146 if (isStrict) {
1147 return this._monthsShortStrictRegex;
1148 } else {
1149 return this._monthsShortRegex;
1150 }
1151 } else {
1152 if (!hasOwnProp(this, '_monthsShortRegex')) {
1153 this._monthsShortRegex = defaultMonthsShortRegex;
1154 }
1155 return this._monthsShortStrictRegex && isStrict ?
1156 this._monthsShortStrictRegex : this._monthsShortRegex;
1157 }
1158 }
1159
1160 var defaultMonthsRegex = matchWord;
1161 function monthsRegex (isStrict) {
1162 if (this._monthsParseExact) {
1163 if (!hasOwnProp(this, '_monthsRegex')) {
1164 computeMonthsParse.call(this);
1165 }
1166 if (isStrict) {
1167 return this._monthsStrictRegex;
1168 } else {
1169 return this._monthsRegex;
1170 }
1171 } else {
1172 if (!hasOwnProp(this, '_monthsRegex')) {
1173 this._monthsRegex = defaultMonthsRegex;
1174 }
1175 return this._monthsStrictRegex && isStrict ?
1176 this._monthsStrictRegex : this._monthsRegex;
1177 }
1178 }
1179
1180 function computeMonthsParse () {
1181 function cmpLenRev(a, b) {
1182 return b.length - a.length;
1183 }
1184
1185 var shortPieces = [], longPieces = [], mixedPieces = [],
1186 i, mom;
1187 for (i = 0; i < 12; i++) {
1188 // make the regex if we don't have it already
1189 mom = createUTC([2000, i]);
1190 shortPieces.push(this.monthsShort(mom, ''));
1191 longPieces.push(this.months(mom, ''));
1192 mixedPieces.push(this.months(mom, ''));
1193 mixedPieces.push(this.monthsShort(mom, ''));
1194 }
1195 // Sorting makes sure if one month (or abbr) is a prefix of another it
1196 // will match the longer piece.
1197 shortPieces.sort(cmpLenRev);
1198 longPieces.sort(cmpLenRev);
1199 mixedPieces.sort(cmpLenRev);
1200 for (i = 0; i < 12; i++) {
1201 shortPieces[i] = regexEscape(shortPieces[i]);
1202 longPieces[i] = regexEscape(longPieces[i]);
1203 }
1204 for (i = 0; i < 24; i++) {
1205 mixedPieces[i] = regexEscape(mixedPieces[i]);
1206 }
1207
1208 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1209 this._monthsShortRegex = this._monthsRegex;
1210 this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1211 this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1212 }
1213
1214 function createDate (y, m, d, h, M, s, ms) {
1215 // can't just apply() to create a date:
1216 // https://stackoverflow.com/q/181348
1217 var date = new Date(y, m, d, h, M, s, ms);
1218
1219 // the date constructor remaps years 0-99 to 1900-1999
1220 if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
1221 date.setFullYear(y);
1222 }
1223 return date;
1224 }
1225
1226 function createUTCDate (y) {
1227 var date = new Date(Date.UTC.apply(null, arguments));
1228
1229 // the Date.UTC function remaps years 0-99 to 1900-1999
1230 if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
1231 date.setUTCFullYear(y);
1232 }
1233 return date;
1234 }
1235
1236 // start-of-first-week - start-of-year
1237 function firstWeekOffset(year, dow, doy) {
1238 var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1239 fwd = 7 + dow - doy,
1240 // first-week day local weekday -- which local weekday is fwd
1241 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1242
1243 return -fwdlw + fwd - 1;
1244 }
1245
1246 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1247 function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1248 var localWeekday = (7 + weekday - dow) % 7,
1249 weekOffset = firstWeekOffset(year, dow, doy),
1250 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1251 resYear, resDayOfYear;
1252
1253 if (dayOfYear <= 0) {
1254 resYear = year - 1;
1255 resDayOfYear = daysInYear(resYear) + dayOfYear;
1256 } else if (dayOfYear > daysInYear(year)) {
1257 resYear = year + 1;
1258 resDayOfYear = dayOfYear - daysInYear(year);
1259 } else {
1260 resYear = year;
1261 resDayOfYear = dayOfYear;
1262 }
1263
1264 return {
1265 year: resYear,
1266 dayOfYear: resDayOfYear
1267 };
1268 }
1269
1270 function weekOfYear(mom, dow, doy) {
1271 var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1272 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1273 resWeek, resYear;
1274
1275 if (week < 1) {
1276 resYear = mom.year() - 1;
1277 resWeek = week + weeksInYear(resYear, dow, doy);
1278 } else if (week > weeksInYear(mom.year(), dow, doy)) {
1279 resWeek = week - weeksInYear(mom.year(), dow, doy);
1280 resYear = mom.year() + 1;
1281 } else {
1282 resYear = mom.year();
1283 resWeek = week;
1284 }
1285
1286 return {
1287 week: resWeek,
1288 year: resYear
1289 };
1290 }
1291
1292 function weeksInYear(year, dow, doy) {
1293 var weekOffset = firstWeekOffset(year, dow, doy),
1294 weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1295 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1296 }
1297
1298 // FORMATTING
1299
1300 addFormatToken('w', ['ww', 2], 'wo', 'week');
1301 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1302
1303 // ALIASES
1304
1305 addUnitAlias('week', 'w');
1306 addUnitAlias('isoWeek', 'W');
1307
1308 // PRIORITIES
1309
1310 addUnitPriority('week', 5);
1311 addUnitPriority('isoWeek', 5);
1312
1313 // PARSING
1314
1315 addRegexToken('w', match1to2);
1316 addRegexToken('ww', match1to2, match2);
1317 addRegexToken('W', match1to2);
1318 addRegexToken('WW', match1to2, match2);
1319
1320 addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
1321 week[token.substr(0, 1)] = toInt(input);
1322 });
1323
1324 // HELPERS
1325
1326 // LOCALES
1327
1328 function localeWeek (mom) {
1329 return weekOfYear(mom, this._week.dow, this._week.doy).week;
1330 }
1331
1332 var defaultLocaleWeek = {
1333 dow : 0, // Sunday is the first day of the week.
1334 doy : 6 // The week that contains Jan 1st is the first week of the year.
1335 };
1336
1337 function localeFirstDayOfWeek () {
1338 return this._week.dow;
1339 }
1340
1341 function localeFirstDayOfYear () {
1342 return this._week.doy;
1343 }
1344
1345 // MOMENTS
1346
1347 function getSetWeek (input) {
1348 var week = this.localeData().week(this);
1349 return input == null ? week : this.add((input - week) * 7, 'd');
1350 }
1351
1352 function getSetISOWeek (input) {
1353 var week = weekOfYear(this, 1, 4).week;
1354 return input == null ? week : this.add((input - week) * 7, 'd');
1355 }
1356
1357 // FORMATTING
1358
1359 addFormatToken('d', 0, 'do', 'day');
1360
1361 addFormatToken('dd', 0, 0, function (format) {
1362 return this.localeData().weekdaysMin(this, format);
1363 });
1364
1365 addFormatToken('ddd', 0, 0, function (format) {
1366 return this.localeData().weekdaysShort(this, format);
1367 });
1368
1369 addFormatToken('dddd', 0, 0, function (format) {
1370 return this.localeData().weekdays(this, format);
1371 });
1372
1373 addFormatToken('e', 0, 0, 'weekday');
1374 addFormatToken('E', 0, 0, 'isoWeekday');
1375
1376 // ALIASES
1377
1378 addUnitAlias('day', 'd');
1379 addUnitAlias('weekday', 'e');
1380 addUnitAlias('isoWeekday', 'E');
1381
1382 // PRIORITY
1383 addUnitPriority('day', 11);
1384 addUnitPriority('weekday', 11);
1385 addUnitPriority('isoWeekday', 11);
1386
1387 // PARSING
1388
1389 addRegexToken('d', match1to2);
1390 addRegexToken('e', match1to2);
1391 addRegexToken('E', match1to2);
1392 addRegexToken('dd', function (isStrict, locale) {
1393 return locale.weekdaysMinRegex(isStrict);
1394 });
1395 addRegexToken('ddd', function (isStrict, locale) {
1396 return locale.weekdaysShortRegex(isStrict);
1397 });
1398 addRegexToken('dddd', function (isStrict, locale) {
1399 return locale.weekdaysRegex(isStrict);
1400 });
1401
1402 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1403 var weekday = config._locale.weekdaysParse(input, token, config._strict);
1404 // if we didn't get a weekday name, mark the date as invalid
1405 if (weekday != null) {
1406 week.d = weekday;
1407 } else {
1408 getParsingFlags(config).invalidWeekday = input;
1409 }
1410 });
1411
1412 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1413 week[token] = toInt(input);
1414 });
1415
1416 // HELPERS
1417
1418 function parseWeekday(input, locale) {
1419 if (typeof input !== 'string') {
1420 return input;
1421 }
1422
1423 if (!isNaN(input)) {
1424 return parseInt(input, 10);
1425 }
1426
1427 input = locale.weekdaysParse(input);
1428 if (typeof input === 'number') {
1429 return input;
1430 }
1431
1432 return null;
1433 }
1434
1435 function parseIsoWeekday(input, locale) {
1436 if (typeof input === 'string') {
1437 return locale.weekdaysParse(input) % 7 || 7;
1438 }
1439 return isNaN(input) ? null : input;
1440 }
1441
1442 // LOCALES
1443
1444 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
1445 function localeWeekdays (m, format) {
1446 if (!m) {
1447 return isArray(this._weekdays) ? this._weekdays :
1448 this._weekdays['standalone'];
1449 }
1450 return isArray(this._weekdays) ? this._weekdays[m.day()] :
1451 this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
1452 }
1453
1454 var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
1455 function localeWeekdaysShort (m) {
1456 return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
1457 }
1458
1459 var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
1460 function localeWeekdaysMin (m) {
1461 return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
1462 }
1463
1464 function handleStrictParse$1(weekdayName, format, strict) {
1465 var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
1466 if (!this._weekdaysParse) {
1467 this._weekdaysParse = [];
1468 this._shortWeekdaysParse = [];
1469 this._minWeekdaysParse = [];
1470
1471 for (i = 0; i < 7; ++i) {
1472 mom = createUTC([2000, 1]).day(i);
1473 this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
1474 this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
1475 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1476 }
1477 }
1478
1479 if (strict) {
1480 if (format === 'dddd') {
1481 ii = indexOf.call(this._weekdaysParse, llc);
1482 return ii !== -1 ? ii : null;
1483 } else if (format === 'ddd') {
1484 ii = indexOf.call(this._shortWeekdaysParse, llc);
1485 return ii !== -1 ? ii : null;
1486 } else {
1487 ii = indexOf.call(this._minWeekdaysParse, llc);
1488 return ii !== -1 ? ii : null;
1489 }
1490 } else {
1491 if (format === 'dddd') {
1492 ii = indexOf.call(this._weekdaysParse, llc);
1493 if (ii !== -1) {
1494 return ii;
1495 }
1496 ii = indexOf.call(this._shortWeekdaysParse, llc);
1497 if (ii !== -1) {
1498 return ii;
1499 }
1500 ii = indexOf.call(this._minWeekdaysParse, llc);
1501 return ii !== -1 ? ii : null;
1502 } else if (format === 'ddd') {
1503 ii = indexOf.call(this._shortWeekdaysParse, llc);
1504 if (ii !== -1) {
1505 return ii;
1506 }
1507 ii = indexOf.call(this._weekdaysParse, llc);
1508 if (ii !== -1) {
1509 return ii;
1510 }
1511 ii = indexOf.call(this._minWeekdaysParse, llc);
1512 return ii !== -1 ? ii : null;
1513 } else {
1514 ii = indexOf.call(this._minWeekdaysParse, llc);
1515 if (ii !== -1) {
1516 return ii;
1517 }
1518 ii = indexOf.call(this._weekdaysParse, llc);
1519 if (ii !== -1) {
1520 return ii;
1521 }
1522 ii = indexOf.call(this._shortWeekdaysParse, llc);
1523 return ii !== -1 ? ii : null;
1524 }
1525 }
1526 }
1527
1528 function localeWeekdaysParse (weekdayName, format, strict) {
1529 var i, mom, regex;
1530
1531 if (this._weekdaysParseExact) {
1532 return handleStrictParse$1.call(this, weekdayName, format, strict);
1533 }
1534
1535 if (!this._weekdaysParse) {
1536 this._weekdaysParse = [];
1537 this._minWeekdaysParse = [];
1538 this._shortWeekdaysParse = [];
1539 this._fullWeekdaysParse = [];
1540 }
1541
1542 for (i = 0; i < 7; i++) {
1543 // make the regex if we don't have it already
1544
1545 mom = createUTC([2000, 1]).day(i);
1546 if (strict && !this._fullWeekdaysParse[i]) {
1547 this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
1548 this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
1549 this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
1550 }
1551 if (!this._weekdaysParse[i]) {
1552 regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
1553 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1554 }
1555 // test the regex
1556 if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
1557 return i;
1558 } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
1559 return i;
1560 } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
1561 return i;
1562 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1563 return i;
1564 }
1565 }
1566 }
1567
1568 // MOMENTS
1569
1570 function getSetDayOfWeek (input) {
1571 if (!this.isValid()) {
1572 return input != null ? this : NaN;
1573 }
1574 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1575 if (input != null) {
1576 input = parseWeekday(input, this.localeData());
1577 return this.add(input - day, 'd');
1578 } else {
1579 return day;
1580 }
1581 }
1582
1583 function getSetLocaleDayOfWeek (input) {
1584 if (!this.isValid()) {
1585 return input != null ? this : NaN;
1586 }
1587 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1588 return input == null ? weekday : this.add(input - weekday, 'd');
1589 }
1590
1591 function getSetISODayOfWeek (input) {
1592 if (!this.isValid()) {
1593 return input != null ? this : NaN;
1594 }
1595
1596 // behaves the same as moment#day except
1597 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1598 // as a setter, sunday should belong to the previous week.
1599
1600 if (input != null) {
1601 var weekday = parseIsoWeekday(input, this.localeData());
1602 return this.day(this.day() % 7 ? weekday : weekday - 7);
1603 } else {
1604 return this.day() || 7;
1605 }
1606 }
1607
1608 var defaultWeekdaysRegex = matchWord;
1609 function weekdaysRegex (isStrict) {
1610 if (this._weekdaysParseExact) {
1611 if (!hasOwnProp(this, '_weekdaysRegex')) {
1612 computeWeekdaysParse.call(this);
1613 }
1614 if (isStrict) {
1615 return this._weekdaysStrictRegex;
1616 } else {
1617 return this._weekdaysRegex;
1618 }
1619 } else {
1620 if (!hasOwnProp(this, '_weekdaysRegex')) {
1621 this._weekdaysRegex = defaultWeekdaysRegex;
1622 }
1623 return this._weekdaysStrictRegex && isStrict ?
1624 this._weekdaysStrictRegex : this._weekdaysRegex;
1625 }
1626 }
1627
1628 var defaultWeekdaysShortRegex = matchWord;
1629 function weekdaysShortRegex (isStrict) {
1630 if (this._weekdaysParseExact) {
1631 if (!hasOwnProp(this, '_weekdaysRegex')) {
1632 computeWeekdaysParse.call(this);
1633 }
1634 if (isStrict) {
1635 return this._weekdaysShortStrictRegex;
1636 } else {
1637 return this._weekdaysShortRegex;
1638 }
1639 } else {
1640 if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1641 this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1642 }
1643 return this._weekdaysShortStrictRegex && isStrict ?
1644 this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
1645 }
1646 }
1647
1648 var defaultWeekdaysMinRegex = matchWord;
1649 function weekdaysMinRegex (isStrict) {
1650 if (this._weekdaysParseExact) {
1651 if (!hasOwnProp(this, '_weekdaysRegex')) {
1652 computeWeekdaysParse.call(this);
1653 }
1654 if (isStrict) {
1655 return this._weekdaysMinStrictRegex;
1656 } else {
1657 return this._weekdaysMinRegex;
1658 }
1659 } else {
1660 if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1661 this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1662 }
1663 return this._weekdaysMinStrictRegex && isStrict ?
1664 this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
1665 }
1666 }
1667
1668
1669 function computeWeekdaysParse () {
1670 function cmpLenRev(a, b) {
1671 return b.length - a.length;
1672 }
1673
1674 var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
1675 i, mom, minp, shortp, longp;
1676 for (i = 0; i < 7; i++) {
1677 // make the regex if we don't have it already
1678 mom = createUTC([2000, 1]).day(i);
1679 minp = this.weekdaysMin(mom, '');
1680 shortp = this.weekdaysShort(mom, '');
1681 longp = this.weekdays(mom, '');
1682 minPieces.push(minp);
1683 shortPieces.push(shortp);
1684 longPieces.push(longp);
1685 mixedPieces.push(minp);
1686 mixedPieces.push(shortp);
1687 mixedPieces.push(longp);
1688 }
1689 // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1690 // will match the longer piece.
1691 minPieces.sort(cmpLenRev);
1692 shortPieces.sort(cmpLenRev);
1693 longPieces.sort(cmpLenRev);
1694 mixedPieces.sort(cmpLenRev);
1695 for (i = 0; i < 7; i++) {
1696 shortPieces[i] = regexEscape(shortPieces[i]);
1697 longPieces[i] = regexEscape(longPieces[i]);
1698 mixedPieces[i] = regexEscape(mixedPieces[i]);
1699 }
1700
1701 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1702 this._weekdaysShortRegex = this._weekdaysRegex;
1703 this._weekdaysMinRegex = this._weekdaysRegex;
1704
1705 this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1706 this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1707 this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
1708 }
1709
1710 // FORMATTING
1711
1712 function hFormat() {
1713 return this.hours() % 12 || 12;
1714 }
1715
1716 function kFormat() {
1717 return this.hours() || 24;
1718 }
1719
1720 addFormatToken('H', ['HH', 2], 0, 'hour');
1721 addFormatToken('h', ['hh', 2], 0, hFormat);
1722 addFormatToken('k', ['kk', 2], 0, kFormat);
1723
1724 addFormatToken('hmm', 0, 0, function () {
1725 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1726 });
1727
1728 addFormatToken('hmmss', 0, 0, function () {
1729 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
1730 zeroFill(this.seconds(), 2);
1731 });
1732
1733 addFormatToken('Hmm', 0, 0, function () {
1734 return '' + this.hours() + zeroFill(this.minutes(), 2);
1735 });
1736
1737 addFormatToken('Hmmss', 0, 0, function () {
1738 return '' + this.hours() + zeroFill(this.minutes(), 2) +
1739 zeroFill(this.seconds(), 2);
1740 });
1741
1742 function meridiem (token, lowercase) {
1743 addFormatToken(token, 0, 0, function () {
1744 return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
1745 });
1746 }
1747
1748 meridiem('a', true);
1749 meridiem('A', false);
1750
1751 // ALIASES
1752
1753 addUnitAlias('hour', 'h');
1754
1755 // PRIORITY
1756 addUnitPriority('hour', 13);
1757
1758 // PARSING
1759
1760 function matchMeridiem (isStrict, locale) {
1761 return locale._meridiemParse;
1762 }
1763
1764 addRegexToken('a', matchMeridiem);
1765 addRegexToken('A', matchMeridiem);
1766 addRegexToken('H', match1to2);
1767 addRegexToken('h', match1to2);
1768 addRegexToken('k', match1to2);
1769 addRegexToken('HH', match1to2, match2);
1770 addRegexToken('hh', match1to2, match2);
1771 addRegexToken('kk', match1to2, match2);
1772
1773 addRegexToken('hmm', match3to4);
1774 addRegexToken('hmmss', match5to6);
1775 addRegexToken('Hmm', match3to4);
1776 addRegexToken('Hmmss', match5to6);
1777
1778 addParseToken(['H', 'HH'], HOUR);
1779 addParseToken(['k', 'kk'], function (input, array, config) {
1780 var kInput = toInt(input);
1781 array[HOUR] = kInput === 24 ? 0 : kInput;
1782 });
1783 addParseToken(['a', 'A'], function (input, array, config) {
1784 config._isPm = config._locale.isPM(input);
1785 config._meridiem = input;
1786 });
1787 addParseToken(['h', 'hh'], function (input, array, config) {
1788 array[HOUR] = toInt(input);
1789 getParsingFlags(config).bigHour = true;
1790 });
1791 addParseToken('hmm', function (input, array, config) {
1792 var pos = input.length - 2;
1793 array[HOUR] = toInt(input.substr(0, pos));
1794 array[MINUTE] = toInt(input.substr(pos));
1795 getParsingFlags(config).bigHour = true;
1796 });
1797 addParseToken('hmmss', function (input, array, config) {
1798 var pos1 = input.length - 4;
1799 var pos2 = input.length - 2;
1800 array[HOUR] = toInt(input.substr(0, pos1));
1801 array[MINUTE] = toInt(input.substr(pos1, 2));
1802 array[SECOND] = toInt(input.substr(pos2));
1803 getParsingFlags(config).bigHour = true;
1804 });
1805 addParseToken('Hmm', function (input, array, config) {
1806 var pos = input.length - 2;
1807 array[HOUR] = toInt(input.substr(0, pos));
1808 array[MINUTE] = toInt(input.substr(pos));
1809 });
1810 addParseToken('Hmmss', function (input, array, config) {
1811 var pos1 = input.length - 4;
1812 var pos2 = input.length - 2;
1813 array[HOUR] = toInt(input.substr(0, pos1));
1814 array[MINUTE] = toInt(input.substr(pos1, 2));
1815 array[SECOND] = toInt(input.substr(pos2));
1816 });
1817
1818 // LOCALES
1819
1820 function localeIsPM (input) {
1821 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1822 // Using charAt should be more compatible.
1823 return ((input + '').toLowerCase().charAt(0) === 'p');
1824 }
1825
1826 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
1827 function localeMeridiem (hours, minutes, isLower) {
1828 if (hours > 11) {
1829 return isLower ? 'pm' : 'PM';
1830 } else {
1831 return isLower ? 'am' : 'AM';
1832 }
1833 }
1834
1835
1836 // MOMENTS
1837
1838 // Setting the hour should keep the time, because the user explicitly
1839 // specified which hour they want. So trying to maintain the same hour (in
1840 // a new timezone) makes sense. Adding/subtracting hours does not follow
1841 // this rule.
1842 var getSetHour = makeGetSet('Hours', true);
1843
1844 var baseConfig = {
1845 calendar: defaultCalendar,
1846 longDateFormat: defaultLongDateFormat,
1847 invalidDate: defaultInvalidDate,
1848 ordinal: defaultOrdinal,
1849 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
1850 relativeTime: defaultRelativeTime,
1851
1852 months: defaultLocaleMonths,
1853 monthsShort: defaultLocaleMonthsShort,
1854
1855 week: defaultLocaleWeek,
1856
1857 weekdays: defaultLocaleWeekdays,
1858 weekdaysMin: defaultLocaleWeekdaysMin,
1859 weekdaysShort: defaultLocaleWeekdaysShort,
1860
1861 meridiemParse: defaultLocaleMeridiemParse
1862 };
1863
1864 // internal storage for locale config files
1865 var locales = {};
1866 var localeFamilies = {};
1867 var globalLocale;
1868
1869 function normalizeLocale(key) {
1870 return key ? key.toLowerCase().replace('_', '-') : key;
1871 }
1872
1873 // pick the locale from the array
1874 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
1875 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
1876 function chooseLocale(names) {
1877 var i = 0, j, next, locale, split;
1878
1879 while (i < names.length) {
1880 split = normalizeLocale(names[i]).split('-');
1881 j = split.length;
1882 next = normalizeLocale(names[i + 1]);
1883 next = next ? next.split('-') : null;
1884 while (j > 0) {
1885 locale = loadLocale(split.slice(0, j).join('-'));
1886 if (locale) {
1887 return locale;
1888 }
1889 if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
1890 //the next array item is better than a shallower substring of this one
1891 break;
1892 }
1893 j--;
1894 }
1895 i++;
1896 }
1897 return globalLocale;
1898 }
1899
1900 function loadLocale(name) {
1901 var oldLocale = null;
1902 // TODO: Find a better way to register and load all the locales in Node
1903 if (!locales[name] && (typeof module !== 'undefined') &&
1904 module && module.exports) {
1905 try {
1906 oldLocale = globalLocale._abbr;
1907 var aliasedRequire = require;
1908 __webpack_require__(173)("./" + name);
1909 getSetGlobalLocale(oldLocale);
1910 } catch (e) {}
1911 }
1912 return locales[name];
1913 }
1914
1915 // This function will load locale and then set the global locale. If
1916 // no arguments are passed in, it will simply return the current global
1917 // locale key.
1918 function getSetGlobalLocale (key, values) {
1919 var data;
1920 if (key) {
1921 if (isUndefined(values)) {
1922 data = getLocale(key);
1923 }
1924 else {
1925 data = defineLocale(key, values);
1926 }
1927
1928 if (data) {
1929 // moment.duration._locale = moment._locale = data;
1930 globalLocale = data;
1931 }
1932 else {
1933 if ((typeof console !== 'undefined') && console.warn) {
1934 //warn user if arguments are passed but the locale could not be set
1935 console.warn('Locale ' + key + ' not found. Did you forget to load it?');
1936 }
1937 }
1938 }
1939
1940 return globalLocale._abbr;
1941 }
1942
1943 function defineLocale (name, config) {
1944 if (config !== null) {
1945 var locale, parentConfig = baseConfig;
1946 config.abbr = name;
1947 if (locales[name] != null) {
1948 deprecateSimple('defineLocaleOverride',
1949 'use moment.updateLocale(localeName, config) to change ' +
1950 'an existing locale. moment.defineLocale(localeName, ' +
1951 'config) should only be used for creating a new locale ' +
1952 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
1953 parentConfig = locales[name]._config;
1954 } else if (config.parentLocale != null) {
1955 if (locales[config.parentLocale] != null) {
1956 parentConfig = locales[config.parentLocale]._config;
1957 } else {
1958 locale = loadLocale(config.parentLocale);
1959 if (locale != null) {
1960 parentConfig = locale._config;
1961 } else {
1962 if (!localeFamilies[config.parentLocale]) {
1963 localeFamilies[config.parentLocale] = [];
1964 }
1965 localeFamilies[config.parentLocale].push({
1966 name: name,
1967 config: config
1968 });
1969 return null;
1970 }
1971 }
1972 }
1973 locales[name] = new Locale(mergeConfigs(parentConfig, config));
1974
1975 if (localeFamilies[name]) {
1976 localeFamilies[name].forEach(function (x) {
1977 defineLocale(x.name, x.config);
1978 });
1979 }
1980
1981 // backwards compat for now: also set the locale
1982 // make sure we set the locale AFTER all child locales have been
1983 // created, so we won't end up with the child locale set.
1984 getSetGlobalLocale(name);
1985
1986
1987 return locales[name];
1988 } else {
1989 // useful for testing
1990 delete locales[name];
1991 return null;
1992 }
1993 }
1994
1995 function updateLocale(name, config) {
1996 if (config != null) {
1997 var locale, tmpLocale, parentConfig = baseConfig;
1998 // MERGE
1999 tmpLocale = loadLocale(name);
2000 if (tmpLocale != null) {
2001 parentConfig = tmpLocale._config;
2002 }
2003 config = mergeConfigs(parentConfig, config);
2004 locale = new Locale(config);
2005 locale.parentLocale = locales[name];
2006 locales[name] = locale;
2007
2008 // backwards compat for now: also set the locale
2009 getSetGlobalLocale(name);
2010 } else {
2011 // pass null for config to unupdate, useful for tests
2012 if (locales[name] != null) {
2013 if (locales[name].parentLocale != null) {
2014 locales[name] = locales[name].parentLocale;
2015 } else if (locales[name] != null) {
2016 delete locales[name];
2017 }
2018 }
2019 }
2020 return locales[name];
2021 }
2022
2023 // returns locale data
2024 function getLocale (key) {
2025 var locale;
2026
2027 if (key && key._locale && key._locale._abbr) {
2028 key = key._locale._abbr;
2029 }
2030
2031 if (!key) {
2032 return globalLocale;
2033 }
2034
2035 if (!isArray(key)) {
2036 //short-circuit everything else
2037 locale = loadLocale(key);
2038 if (locale) {
2039 return locale;
2040 }
2041 key = [key];
2042 }
2043
2044 return chooseLocale(key);
2045 }
2046
2047 function listLocales() {
2048 return keys(locales);
2049 }
2050
2051 function checkOverflow (m) {
2052 var overflow;
2053 var a = m._a;
2054
2055 if (a && getParsingFlags(m).overflow === -2) {
2056 overflow =
2057 a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
2058 a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
2059 a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
2060 a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
2061 a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
2062 a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
2063 -1;
2064
2065 if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
2066 overflow = DATE;
2067 }
2068 if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2069 overflow = WEEK;
2070 }
2071 if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2072 overflow = WEEKDAY;
2073 }
2074
2075 getParsingFlags(m).overflow = overflow;
2076 }
2077
2078 return m;
2079 }
2080
2081 // Pick the first defined of two or three arguments.
2082 function defaults(a, b, c) {
2083 if (a != null) {
2084 return a;
2085 }
2086 if (b != null) {
2087 return b;
2088 }
2089 return c;
2090 }
2091
2092 function currentDateArray(config) {
2093 // hooks is actually the exported moment object
2094 var nowValue = new Date(hooks.now());
2095 if (config._useUTC) {
2096 return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
2097 }
2098 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2099 }
2100
2101 // convert an array to a date.
2102 // the array should mirror the parameters below
2103 // note: all values past the year are optional and will default to the lowest possible value.
2104 // [year, month, day , hour, minute, second, millisecond]
2105 function configFromArray (config) {
2106 var i, date, input = [], currentDate, expectedWeekday, yearToUse;
2107
2108 if (config._d) {
2109 return;
2110 }
2111
2112 currentDate = currentDateArray(config);
2113
2114 //compute day of the year from weeks and weekdays
2115 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2116 dayOfYearFromWeekInfo(config);
2117 }
2118
2119 //if the day of the year is set, figure out what it is
2120 if (config._dayOfYear != null) {
2121 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2122
2123 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
2124 getParsingFlags(config)._overflowDayOfYear = true;
2125 }
2126
2127 date = createUTCDate(yearToUse, 0, config._dayOfYear);
2128 config._a[MONTH] = date.getUTCMonth();
2129 config._a[DATE] = date.getUTCDate();
2130 }
2131
2132 // Default to current date.
2133 // * if no year, month, day of month are given, default to today
2134 // * if day of month is given, default month and year
2135 // * if month is given, default only year
2136 // * if year is given, don't default anything
2137 for (i = 0; i < 3 && config._a[i] == null; ++i) {
2138 config._a[i] = input[i] = currentDate[i];
2139 }
2140
2141 // Zero out whatever was not defaulted, including time
2142 for (; i < 7; i++) {
2143 config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
2144 }
2145
2146 // Check for 24:00:00.000
2147 if (config._a[HOUR] === 24 &&
2148 config._a[MINUTE] === 0 &&
2149 config._a[SECOND] === 0 &&
2150 config._a[MILLISECOND] === 0) {
2151 config._nextDay = true;
2152 config._a[HOUR] = 0;
2153 }
2154
2155 config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
2156 expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
2157
2158 // Apply timezone offset from input. The actual utcOffset can be changed
2159 // with parseZone.
2160 if (config._tzm != null) {
2161 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2162 }
2163
2164 if (config._nextDay) {
2165 config._a[HOUR] = 24;
2166 }
2167
2168 // check for mismatching day of week
2169 if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
2170 getParsingFlags(config).weekdayMismatch = true;
2171 }
2172 }
2173
2174 function dayOfYearFromWeekInfo(config) {
2175 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
2176
2177 w = config._w;
2178 if (w.GG != null || w.W != null || w.E != null) {
2179 dow = 1;
2180 doy = 4;
2181
2182 // TODO: We need to take the current isoWeekYear, but that depends on
2183 // how we interpret now (local, utc, fixed offset). So create
2184 // a now version of current config (take local/utc/offset flags, and
2185 // create now).
2186 weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
2187 week = defaults(w.W, 1);
2188 weekday = defaults(w.E, 1);
2189 if (weekday < 1 || weekday > 7) {
2190 weekdayOverflow = true;
2191 }
2192 } else {
2193 dow = config._locale._week.dow;
2194 doy = config._locale._week.doy;
2195
2196 var curWeek = weekOfYear(createLocal(), dow, doy);
2197
2198 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2199
2200 // Default to current week.
2201 week = defaults(w.w, curWeek.week);
2202
2203 if (w.d != null) {
2204 // weekday -- low day numbers are considered next week
2205 weekday = w.d;
2206 if (weekday < 0 || weekday > 6) {
2207 weekdayOverflow = true;
2208 }
2209 } else if (w.e != null) {
2210 // local weekday -- counting starts from begining of week
2211 weekday = w.e + dow;
2212 if (w.e < 0 || w.e > 6) {
2213 weekdayOverflow = true;
2214 }
2215 } else {
2216 // default to begining of week
2217 weekday = dow;
2218 }
2219 }
2220 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2221 getParsingFlags(config)._overflowWeeks = true;
2222 } else if (weekdayOverflow != null) {
2223 getParsingFlags(config)._overflowWeekday = true;
2224 } else {
2225 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2226 config._a[YEAR] = temp.year;
2227 config._dayOfYear = temp.dayOfYear;
2228 }
2229 }
2230
2231 // iso 8601 regex
2232 // 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)
2233 var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2234 var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2235
2236 var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
2237
2238 var isoDates = [
2239 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2240 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2241 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2242 ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2243 ['YYYY-DDD', /\d{4}-\d{3}/],
2244 ['YYYY-MM', /\d{4}-\d\d/, false],
2245 ['YYYYYYMMDD', /[+-]\d{10}/],
2246 ['YYYYMMDD', /\d{8}/],
2247 // YYYYMM is NOT allowed by the standard
2248 ['GGGG[W]WWE', /\d{4}W\d{3}/],
2249 ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2250 ['YYYYDDD', /\d{7}/]
2251 ];
2252
2253 // iso time formats and regexes
2254 var isoTimes = [
2255 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2256 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2257 ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2258 ['HH:mm', /\d\d:\d\d/],
2259 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2260 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2261 ['HHmmss', /\d\d\d\d\d\d/],
2262 ['HHmm', /\d\d\d\d/],
2263 ['HH', /\d\d/]
2264 ];
2265
2266 var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
2267
2268 // date from iso format
2269 function configFromISO(config) {
2270 var i, l,
2271 string = config._i,
2272 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2273 allowTime, dateFormat, timeFormat, tzFormat;
2274
2275 if (match) {
2276 getParsingFlags(config).iso = true;
2277
2278 for (i = 0, l = isoDates.length; i < l; i++) {
2279 if (isoDates[i][1].exec(match[1])) {
2280 dateFormat = isoDates[i][0];
2281 allowTime = isoDates[i][2] !== false;
2282 break;
2283 }
2284 }
2285 if (dateFormat == null) {
2286 config._isValid = false;
2287 return;
2288 }
2289 if (match[3]) {
2290 for (i = 0, l = isoTimes.length; i < l; i++) {
2291 if (isoTimes[i][1].exec(match[3])) {
2292 // match[2] should be 'T' or space
2293 timeFormat = (match[2] || ' ') + isoTimes[i][0];
2294 break;
2295 }
2296 }
2297 if (timeFormat == null) {
2298 config._isValid = false;
2299 return;
2300 }
2301 }
2302 if (!allowTime && timeFormat != null) {
2303 config._isValid = false;
2304 return;
2305 }
2306 if (match[4]) {
2307 if (tzRegex.exec(match[4])) {
2308 tzFormat = 'Z';
2309 } else {
2310 config._isValid = false;
2311 return;
2312 }
2313 }
2314 config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2315 configFromStringAndFormat(config);
2316 } else {
2317 config._isValid = false;
2318 }
2319 }
2320
2321 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2322 var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
2323
2324 function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
2325 var result = [
2326 untruncateYear(yearStr),
2327 defaultLocaleMonthsShort.indexOf(monthStr),
2328 parseInt(dayStr, 10),
2329 parseInt(hourStr, 10),
2330 parseInt(minuteStr, 10)
2331 ];
2332
2333 if (secondStr) {
2334 result.push(parseInt(secondStr, 10));
2335 }
2336
2337 return result;
2338 }
2339
2340 function untruncateYear(yearStr) {
2341 var year = parseInt(yearStr, 10);
2342 if (year <= 49) {
2343 return 2000 + year;
2344 } else if (year <= 999) {
2345 return 1900 + year;
2346 }
2347 return year;
2348 }
2349
2350 function preprocessRFC2822(s) {
2351 // Remove comments and folding whitespace and replace multiple-spaces with a single space
2352 return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
2353 }
2354
2355 function checkWeekday(weekdayStr, parsedInput, config) {
2356 if (weekdayStr) {
2357 // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
2358 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2359 weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
2360 if (weekdayProvided !== weekdayActual) {
2361 getParsingFlags(config).weekdayMismatch = true;
2362 config._isValid = false;
2363 return false;
2364 }
2365 }
2366 return true;
2367 }
2368
2369 var obsOffsets = {
2370 UT: 0,
2371 GMT: 0,
2372 EDT: -4 * 60,
2373 EST: -5 * 60,
2374 CDT: -5 * 60,
2375 CST: -6 * 60,
2376 MDT: -6 * 60,
2377 MST: -7 * 60,
2378 PDT: -7 * 60,
2379 PST: -8 * 60
2380 };
2381
2382 function calculateOffset(obsOffset, militaryOffset, numOffset) {
2383 if (obsOffset) {
2384 return obsOffsets[obsOffset];
2385 } else if (militaryOffset) {
2386 // the only allowed military tz is Z
2387 return 0;
2388 } else {
2389 var hm = parseInt(numOffset, 10);
2390 var m = hm % 100, h = (hm - m) / 100;
2391 return h * 60 + m;
2392 }
2393 }
2394
2395 // date and time from ref 2822 format
2396 function configFromRFC2822(config) {
2397 var match = rfc2822.exec(preprocessRFC2822(config._i));
2398 if (match) {
2399 var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
2400 if (!checkWeekday(match[1], parsedArray, config)) {
2401 return;
2402 }
2403
2404 config._a = parsedArray;
2405 config._tzm = calculateOffset(match[8], match[9], match[10]);
2406
2407 config._d = createUTCDate.apply(null, config._a);
2408 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2409
2410 getParsingFlags(config).rfc2822 = true;
2411 } else {
2412 config._isValid = false;
2413 }
2414 }
2415
2416 // date from iso format or fallback
2417 function configFromString(config) {
2418 var matched = aspNetJsonRegex.exec(config._i);
2419
2420 if (matched !== null) {
2421 config._d = new Date(+matched[1]);
2422 return;
2423 }
2424
2425 configFromISO(config);
2426 if (config._isValid === false) {
2427 delete config._isValid;
2428 } else {
2429 return;
2430 }
2431
2432 configFromRFC2822(config);
2433 if (config._isValid === false) {
2434 delete config._isValid;
2435 } else {
2436 return;
2437 }
2438
2439 // Final attempt, use Input Fallback
2440 hooks.createFromInputFallback(config);
2441 }
2442
2443 hooks.createFromInputFallback = deprecate(
2444 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2445 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2446 'discouraged and will be removed in an upcoming major release. Please refer to ' +
2447 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2448 function (config) {
2449 config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2450 }
2451 );
2452
2453 // constant that refers to the ISO standard
2454 hooks.ISO_8601 = function () {};
2455
2456 // constant that refers to the RFC 2822 form
2457 hooks.RFC_2822 = function () {};
2458
2459 // date from string and format string
2460 function configFromStringAndFormat(config) {
2461 // TODO: Move this to another part of the creation flow to prevent circular deps
2462 if (config._f === hooks.ISO_8601) {
2463 configFromISO(config);
2464 return;
2465 }
2466 if (config._f === hooks.RFC_2822) {
2467 configFromRFC2822(config);
2468 return;
2469 }
2470 config._a = [];
2471 getParsingFlags(config).empty = true;
2472
2473 // This array is used to make a Date, either with `new Date` or `Date.UTC`
2474 var string = '' + config._i,
2475 i, parsedInput, tokens, token, skipped,
2476 stringLength = string.length,
2477 totalParsedInputLength = 0;
2478
2479 tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
2480
2481 for (i = 0; i < tokens.length; i++) {
2482 token = tokens[i];
2483 parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
2484 // console.log('token', token, 'parsedInput', parsedInput,
2485 // 'regex', getParseRegexForToken(token, config));
2486 if (parsedInput) {
2487 skipped = string.substr(0, string.indexOf(parsedInput));
2488 if (skipped.length > 0) {
2489 getParsingFlags(config).unusedInput.push(skipped);
2490 }
2491 string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
2492 totalParsedInputLength += parsedInput.length;
2493 }
2494 // don't parse if it's not a known token
2495 if (formatTokenFunctions[token]) {
2496 if (parsedInput) {
2497 getParsingFlags(config).empty = false;
2498 }
2499 else {
2500 getParsingFlags(config).unusedTokens.push(token);
2501 }
2502 addTimeToArrayFromToken(token, parsedInput, config);
2503 }
2504 else if (config._strict && !parsedInput) {
2505 getParsingFlags(config).unusedTokens.push(token);
2506 }
2507 }
2508
2509 // add remaining unparsed input length to the string
2510 getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
2511 if (string.length > 0) {
2512 getParsingFlags(config).unusedInput.push(string);
2513 }
2514
2515 // clear _12h flag if hour is <= 12
2516 if (config._a[HOUR] <= 12 &&
2517 getParsingFlags(config).bigHour === true &&
2518 config._a[HOUR] > 0) {
2519 getParsingFlags(config).bigHour = undefined;
2520 }
2521
2522 getParsingFlags(config).parsedDateParts = config._a.slice(0);
2523 getParsingFlags(config).meridiem = config._meridiem;
2524 // handle meridiem
2525 config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
2526
2527 configFromArray(config);
2528 checkOverflow(config);
2529 }
2530
2531
2532 function meridiemFixWrap (locale, hour, meridiem) {
2533 var isPm;
2534
2535 if (meridiem == null) {
2536 // nothing to do
2537 return hour;
2538 }
2539 if (locale.meridiemHour != null) {
2540 return locale.meridiemHour(hour, meridiem);
2541 } else if (locale.isPM != null) {
2542 // Fallback
2543 isPm = locale.isPM(meridiem);
2544 if (isPm && hour < 12) {
2545 hour += 12;
2546 }
2547 if (!isPm && hour === 12) {
2548 hour = 0;
2549 }
2550 return hour;
2551 } else {
2552 // this is not supposed to happen
2553 return hour;
2554 }
2555 }
2556
2557 // date from string and array of format strings
2558 function configFromStringAndArray(config) {
2559 var tempConfig,
2560 bestMoment,
2561
2562 scoreToBeat,
2563 i,
2564 currentScore;
2565
2566 if (config._f.length === 0) {
2567 getParsingFlags(config).invalidFormat = true;
2568 config._d = new Date(NaN);
2569 return;
2570 }
2571
2572 for (i = 0; i < config._f.length; i++) {
2573 currentScore = 0;
2574 tempConfig = copyConfig({}, config);
2575 if (config._useUTC != null) {
2576 tempConfig._useUTC = config._useUTC;
2577 }
2578 tempConfig._f = config._f[i];
2579 configFromStringAndFormat(tempConfig);
2580
2581 if (!isValid(tempConfig)) {
2582 continue;
2583 }
2584
2585 // if there is any input that was not parsed add a penalty for that format
2586 currentScore += getParsingFlags(tempConfig).charsLeftOver;
2587
2588 //or tokens
2589 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2590
2591 getParsingFlags(tempConfig).score = currentScore;
2592
2593 if (scoreToBeat == null || currentScore < scoreToBeat) {
2594 scoreToBeat = currentScore;
2595 bestMoment = tempConfig;
2596 }
2597 }
2598
2599 extend(config, bestMoment || tempConfig);
2600 }
2601
2602 function configFromObject(config) {
2603 if (config._d) {
2604 return;
2605 }
2606
2607 var i = normalizeObjectUnits(config._i);
2608 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
2609 return obj && parseInt(obj, 10);
2610 });
2611
2612 configFromArray(config);
2613 }
2614
2615 function createFromConfig (config) {
2616 var res = new Moment(checkOverflow(prepareConfig(config)));
2617 if (res._nextDay) {
2618 // Adding is smart enough around DST
2619 res.add(1, 'd');
2620 res._nextDay = undefined;
2621 }
2622
2623 return res;
2624 }
2625
2626 function prepareConfig (config) {
2627 var input = config._i,
2628 format = config._f;
2629
2630 config._locale = config._locale || getLocale(config._l);
2631
2632 if (input === null || (format === undefined && input === '')) {
2633 return createInvalid({nullInput: true});
2634 }
2635
2636 if (typeof input === 'string') {
2637 config._i = input = config._locale.preparse(input);
2638 }
2639
2640 if (isMoment(input)) {
2641 return new Moment(checkOverflow(input));
2642 } else if (isDate(input)) {
2643 config._d = input;
2644 } else if (isArray(format)) {
2645 configFromStringAndArray(config);
2646 } else if (format) {
2647 configFromStringAndFormat(config);
2648 } else {
2649 configFromInput(config);
2650 }
2651
2652 if (!isValid(config)) {
2653 config._d = null;
2654 }
2655
2656 return config;
2657 }
2658
2659 function configFromInput(config) {
2660 var input = config._i;
2661 if (isUndefined(input)) {
2662 config._d = new Date(hooks.now());
2663 } else if (isDate(input)) {
2664 config._d = new Date(input.valueOf());
2665 } else if (typeof input === 'string') {
2666 configFromString(config);
2667 } else if (isArray(input)) {
2668 config._a = map(input.slice(0), function (obj) {
2669 return parseInt(obj, 10);
2670 });
2671 configFromArray(config);
2672 } else if (isObject(input)) {
2673 configFromObject(config);
2674 } else if (isNumber(input)) {
2675 // from milliseconds
2676 config._d = new Date(input);
2677 } else {
2678 hooks.createFromInputFallback(config);
2679 }
2680 }
2681
2682 function createLocalOrUTC (input, format, locale, strict, isUTC) {
2683 var c = {};
2684
2685 if (locale === true || locale === false) {
2686 strict = locale;
2687 locale = undefined;
2688 }
2689
2690 if ((isObject(input) && isObjectEmpty(input)) ||
2691 (isArray(input) && input.length === 0)) {
2692 input = undefined;
2693 }
2694 // object construction must be done this way.
2695 // https://github.com/moment/moment/issues/1423
2696 c._isAMomentObject = true;
2697 c._useUTC = c._isUTC = isUTC;
2698 c._l = locale;
2699 c._i = input;
2700 c._f = format;
2701 c._strict = strict;
2702
2703 return createFromConfig(c);
2704 }
2705
2706 function createLocal (input, format, locale, strict) {
2707 return createLocalOrUTC(input, format, locale, strict, false);
2708 }
2709
2710 var prototypeMin = deprecate(
2711 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
2712 function () {
2713 var other = createLocal.apply(null, arguments);
2714 if (this.isValid() && other.isValid()) {
2715 return other < this ? this : other;
2716 } else {
2717 return createInvalid();
2718 }
2719 }
2720 );
2721
2722 var prototypeMax = deprecate(
2723 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
2724 function () {
2725 var other = createLocal.apply(null, arguments);
2726 if (this.isValid() && other.isValid()) {
2727 return other > this ? this : other;
2728 } else {
2729 return createInvalid();
2730 }
2731 }
2732 );
2733
2734 // Pick a moment m from moments so that m[fn](other) is true for all
2735 // other. This relies on the function fn to be transitive.
2736 //
2737 // moments should either be an array of moment objects or an array, whose
2738 // first element is an array of moment objects.
2739 function pickBy(fn, moments) {
2740 var res, i;
2741 if (moments.length === 1 && isArray(moments[0])) {
2742 moments = moments[0];
2743 }
2744 if (!moments.length) {
2745 return createLocal();
2746 }
2747 res = moments[0];
2748 for (i = 1; i < moments.length; ++i) {
2749 if (!moments[i].isValid() || moments[i][fn](res)) {
2750 res = moments[i];
2751 }
2752 }
2753 return res;
2754 }
2755
2756 // TODO: Use [].sort instead?
2757 function min () {
2758 var args = [].slice.call(arguments, 0);
2759
2760 return pickBy('isBefore', args);
2761 }
2762
2763 function max () {
2764 var args = [].slice.call(arguments, 0);
2765
2766 return pickBy('isAfter', args);
2767 }
2768
2769 var now = function () {
2770 return Date.now ? Date.now() : +(new Date());
2771 };
2772
2773 var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
2774
2775 function isDurationValid(m) {
2776 for (var key in m) {
2777 if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
2778 return false;
2779 }
2780 }
2781
2782 var unitHasDecimal = false;
2783 for (var i = 0; i < ordering.length; ++i) {
2784 if (m[ordering[i]]) {
2785 if (unitHasDecimal) {
2786 return false; // only allow non-integers for smallest unit
2787 }
2788 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
2789 unitHasDecimal = true;
2790 }
2791 }
2792 }
2793
2794 return true;
2795 }
2796
2797 function isValid$1() {
2798 return this._isValid;
2799 }
2800
2801 function createInvalid$1() {
2802 return createDuration(NaN);
2803 }
2804
2805 function Duration (duration) {
2806 var normalizedInput = normalizeObjectUnits(duration),
2807 years = normalizedInput.year || 0,
2808 quarters = normalizedInput.quarter || 0,
2809 months = normalizedInput.month || 0,
2810 weeks = normalizedInput.week || 0,
2811 days = normalizedInput.day || 0,
2812 hours = normalizedInput.hour || 0,
2813 minutes = normalizedInput.minute || 0,
2814 seconds = normalizedInput.second || 0,
2815 milliseconds = normalizedInput.millisecond || 0;
2816
2817 this._isValid = isDurationValid(normalizedInput);
2818
2819 // representation for dateAddRemove
2820 this._milliseconds = +milliseconds +
2821 seconds * 1e3 + // 1000
2822 minutes * 6e4 + // 1000 * 60
2823 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
2824 // Because of dateAddRemove treats 24 hours as different from a
2825 // day when working around DST, we need to store them separately
2826 this._days = +days +
2827 weeks * 7;
2828 // It is impossible to translate months into days without knowing
2829 // which months you are are talking about, so we have to store
2830 // it separately.
2831 this._months = +months +
2832 quarters * 3 +
2833 years * 12;
2834
2835 this._data = {};
2836
2837 this._locale = getLocale();
2838
2839 this._bubble();
2840 }
2841
2842 function isDuration (obj) {
2843 return obj instanceof Duration;
2844 }
2845
2846 function absRound (number) {
2847 if (number < 0) {
2848 return Math.round(-1 * number) * -1;
2849 } else {
2850 return Math.round(number);
2851 }
2852 }
2853
2854 // FORMATTING
2855
2856 function offset (token, separator) {
2857 addFormatToken(token, 0, 0, function () {
2858 var offset = this.utcOffset();
2859 var sign = '+';
2860 if (offset < 0) {
2861 offset = -offset;
2862 sign = '-';
2863 }
2864 return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
2865 });
2866 }
2867
2868 offset('Z', ':');
2869 offset('ZZ', '');
2870
2871 // PARSING
2872
2873 addRegexToken('Z', matchShortOffset);
2874 addRegexToken('ZZ', matchShortOffset);
2875 addParseToken(['Z', 'ZZ'], function (input, array, config) {
2876 config._useUTC = true;
2877 config._tzm = offsetFromString(matchShortOffset, input);
2878 });
2879
2880 // HELPERS
2881
2882 // timezone chunker
2883 // '+10:00' > ['10', '00']
2884 // '-1530' > ['-15', '30']
2885 var chunkOffset = /([\+\-]|\d\d)/gi;
2886
2887 function offsetFromString(matcher, string) {
2888 var matches = (string || '').match(matcher);
2889
2890 if (matches === null) {
2891 return null;
2892 }
2893
2894 var chunk = matches[matches.length - 1] || [];
2895 var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
2896 var minutes = +(parts[1] * 60) + toInt(parts[2]);
2897
2898 return minutes === 0 ?
2899 0 :
2900 parts[0] === '+' ? minutes : -minutes;
2901 }
2902
2903 // Return a moment from input, that is local/utc/zone equivalent to model.
2904 function cloneWithOffset(input, model) {
2905 var res, diff;
2906 if (model._isUTC) {
2907 res = model.clone();
2908 diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
2909 // Use low-level api, because this fn is low-level api.
2910 res._d.setTime(res._d.valueOf() + diff);
2911 hooks.updateOffset(res, false);
2912 return res;
2913 } else {
2914 return createLocal(input).local();
2915 }
2916 }
2917
2918 function getDateOffset (m) {
2919 // On Firefox.24 Date#getTimezoneOffset returns a floating point.
2920 // https://github.com/moment/moment/pull/1871
2921 return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
2922 }
2923
2924 // HOOKS
2925
2926 // This function will be called whenever a moment is mutated.
2927 // It is intended to keep the offset in sync with the timezone.
2928 hooks.updateOffset = function () {};
2929
2930 // MOMENTS
2931
2932 // keepLocalTime = true means only change the timezone, without
2933 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
2934 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
2935 // +0200, so we adjust the time as needed, to be valid.
2936 //
2937 // Keeping the time actually adds/subtracts (one hour)
2938 // from the actual represented time. That is why we call updateOffset
2939 // a second time. In case it wants us to change the offset again
2940 // _changeInProgress == true case, then we have to adjust, because
2941 // there is no such time in the given timezone.
2942 function getSetOffset (input, keepLocalTime, keepMinutes) {
2943 var offset = this._offset || 0,
2944 localAdjust;
2945 if (!this.isValid()) {
2946 return input != null ? this : NaN;
2947 }
2948 if (input != null) {
2949 if (typeof input === 'string') {
2950 input = offsetFromString(matchShortOffset, input);
2951 if (input === null) {
2952 return this;
2953 }
2954 } else if (Math.abs(input) < 16 && !keepMinutes) {
2955 input = input * 60;
2956 }
2957 if (!this._isUTC && keepLocalTime) {
2958 localAdjust = getDateOffset(this);
2959 }
2960 this._offset = input;
2961 this._isUTC = true;
2962 if (localAdjust != null) {
2963 this.add(localAdjust, 'm');
2964 }
2965 if (offset !== input) {
2966 if (!keepLocalTime || this._changeInProgress) {
2967 addSubtract(this, createDuration(input - offset, 'm'), 1, false);
2968 } else if (!this._changeInProgress) {
2969 this._changeInProgress = true;
2970 hooks.updateOffset(this, true);
2971 this._changeInProgress = null;
2972 }
2973 }
2974 return this;
2975 } else {
2976 return this._isUTC ? offset : getDateOffset(this);
2977 }
2978 }
2979
2980 function getSetZone (input, keepLocalTime) {
2981 if (input != null) {
2982 if (typeof input !== 'string') {
2983 input = -input;
2984 }
2985
2986 this.utcOffset(input, keepLocalTime);
2987
2988 return this;
2989 } else {
2990 return -this.utcOffset();
2991 }
2992 }
2993
2994 function setOffsetToUTC (keepLocalTime) {
2995 return this.utcOffset(0, keepLocalTime);
2996 }
2997
2998 function setOffsetToLocal (keepLocalTime) {
2999 if (this._isUTC) {
3000 this.utcOffset(0, keepLocalTime);
3001 this._isUTC = false;
3002
3003 if (keepLocalTime) {
3004 this.subtract(getDateOffset(this), 'm');
3005 }
3006 }
3007 return this;
3008 }
3009
3010 function setOffsetToParsedOffset () {
3011 if (this._tzm != null) {
3012 this.utcOffset(this._tzm, false, true);
3013 } else if (typeof this._i === 'string') {
3014 var tZone = offsetFromString(matchOffset, this._i);
3015 if (tZone != null) {
3016 this.utcOffset(tZone);
3017 }
3018 else {
3019 this.utcOffset(0, true);
3020 }
3021 }
3022 return this;
3023 }
3024
3025 function hasAlignedHourOffset (input) {
3026 if (!this.isValid()) {
3027 return false;
3028 }
3029 input = input ? createLocal(input).utcOffset() : 0;
3030
3031 return (this.utcOffset() - input) % 60 === 0;
3032 }
3033
3034 function isDaylightSavingTime () {
3035 return (
3036 this.utcOffset() > this.clone().month(0).utcOffset() ||
3037 this.utcOffset() > this.clone().month(5).utcOffset()
3038 );
3039 }
3040
3041 function isDaylightSavingTimeShifted () {
3042 if (!isUndefined(this._isDSTShifted)) {
3043 return this._isDSTShifted;
3044 }
3045
3046 var c = {};
3047
3048 copyConfig(c, this);
3049 c = prepareConfig(c);
3050
3051 if (c._a) {
3052 var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3053 this._isDSTShifted = this.isValid() &&
3054 compareArrays(c._a, other.toArray()) > 0;
3055 } else {
3056 this._isDSTShifted = false;
3057 }
3058
3059 return this._isDSTShifted;
3060 }
3061
3062 function isLocal () {
3063 return this.isValid() ? !this._isUTC : false;
3064 }
3065
3066 function isUtcOffset () {
3067 return this.isValid() ? this._isUTC : false;
3068 }
3069
3070 function isUtc () {
3071 return this.isValid() ? this._isUTC && this._offset === 0 : false;
3072 }
3073
3074 // ASP.NET json date format regex
3075 var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
3076
3077 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3078 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3079 // and further modified to allow for strings containing both week and day
3080 var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3081
3082 function createDuration (input, key) {
3083 var duration = input,
3084 // matching against regexp is expensive, do it on demand
3085 match = null,
3086 sign,
3087 ret,
3088 diffRes;
3089
3090 if (isDuration(input)) {
3091 duration = {
3092 ms : input._milliseconds,
3093 d : input._days,
3094 M : input._months
3095 };
3096 } else if (isNumber(input)) {
3097 duration = {};
3098 if (key) {
3099 duration[key] = input;
3100 } else {
3101 duration.milliseconds = input;
3102 }
3103 } else if (!!(match = aspNetRegex.exec(input))) {
3104 sign = (match[1] === '-') ? -1 : 1;
3105 duration = {
3106 y : 0,
3107 d : toInt(match[DATE]) * sign,
3108 h : toInt(match[HOUR]) * sign,
3109 m : toInt(match[MINUTE]) * sign,
3110 s : toInt(match[SECOND]) * sign,
3111 ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
3112 };
3113 } else if (!!(match = isoRegex.exec(input))) {
3114 sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
3115 duration = {
3116 y : parseIso(match[2], sign),
3117 M : parseIso(match[3], sign),
3118 w : parseIso(match[4], sign),
3119 d : parseIso(match[5], sign),
3120 h : parseIso(match[6], sign),
3121 m : parseIso(match[7], sign),
3122 s : parseIso(match[8], sign)
3123 };
3124 } else if (duration == null) {// checks for null or undefined
3125 duration = {};
3126 } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
3127 diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
3128
3129 duration = {};
3130 duration.ms = diffRes.milliseconds;
3131 duration.M = diffRes.months;
3132 }
3133
3134 ret = new Duration(duration);
3135
3136 if (isDuration(input) && hasOwnProp(input, '_locale')) {
3137 ret._locale = input._locale;
3138 }
3139
3140 return ret;
3141 }
3142
3143 createDuration.fn = Duration.prototype;
3144 createDuration.invalid = createInvalid$1;
3145
3146 function parseIso (inp, sign) {
3147 // We'd normally use ~~inp for this, but unfortunately it also
3148 // converts floats to ints.
3149 // inp may be undefined, so careful calling replace on it.
3150 var res = inp && parseFloat(inp.replace(',', '.'));
3151 // apply sign while we're at it
3152 return (isNaN(res) ? 0 : res) * sign;
3153 }
3154
3155 function positiveMomentsDifference(base, other) {
3156 var res = {milliseconds: 0, months: 0};
3157
3158 res.months = other.month() - base.month() +
3159 (other.year() - base.year()) * 12;
3160 if (base.clone().add(res.months, 'M').isAfter(other)) {
3161 --res.months;
3162 }
3163
3164 res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
3165
3166 return res;
3167 }
3168
3169 function momentsDifference(base, other) {
3170 var res;
3171 if (!(base.isValid() && other.isValid())) {
3172 return {milliseconds: 0, months: 0};
3173 }
3174
3175 other = cloneWithOffset(other, base);
3176 if (base.isBefore(other)) {
3177 res = positiveMomentsDifference(base, other);
3178 } else {
3179 res = positiveMomentsDifference(other, base);
3180 res.milliseconds = -res.milliseconds;
3181 res.months = -res.months;
3182 }
3183
3184 return res;
3185 }
3186
3187 // TODO: remove 'name' arg after deprecation is removed
3188 function createAdder(direction, name) {
3189 return function (val, period) {
3190 var dur, tmp;
3191 //invert the arguments, but complain about it
3192 if (period !== null && !isNaN(+period)) {
3193 deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
3194 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
3195 tmp = val; val = period; period = tmp;
3196 }
3197
3198 val = typeof val === 'string' ? +val : val;
3199 dur = createDuration(val, period);
3200 addSubtract(this, dur, direction);
3201 return this;
3202 };
3203 }
3204
3205 function addSubtract (mom, duration, isAdding, updateOffset) {
3206 var milliseconds = duration._milliseconds,
3207 days = absRound(duration._days),
3208 months = absRound(duration._months);
3209
3210 if (!mom.isValid()) {
3211 // No op
3212 return;
3213 }
3214
3215 updateOffset = updateOffset == null ? true : updateOffset;
3216
3217 if (months) {
3218 setMonth(mom, get(mom, 'Month') + months * isAdding);
3219 }
3220 if (days) {
3221 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3222 }
3223 if (milliseconds) {
3224 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3225 }
3226 if (updateOffset) {
3227 hooks.updateOffset(mom, days || months);
3228 }
3229 }
3230
3231 var add = createAdder(1, 'add');
3232 var subtract = createAdder(-1, 'subtract');
3233
3234 function getCalendarFormat(myMoment, now) {
3235 var diff = myMoment.diff(now, 'days', true);
3236 return diff < -6 ? 'sameElse' :
3237 diff < -1 ? 'lastWeek' :
3238 diff < 0 ? 'lastDay' :
3239 diff < 1 ? 'sameDay' :
3240 diff < 2 ? 'nextDay' :
3241 diff < 7 ? 'nextWeek' : 'sameElse';
3242 }
3243
3244 function calendar$1 (time, formats) {
3245 // We want to compare the start of today, vs this.
3246 // Getting start-of-today depends on whether we're local/utc/offset or not.
3247 var now = time || createLocal(),
3248 sod = cloneWithOffset(now, this).startOf('day'),
3249 format = hooks.calendarFormat(this, sod) || 'sameElse';
3250
3251 var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
3252
3253 return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
3254 }
3255
3256 function clone () {
3257 return new Moment(this);
3258 }
3259
3260 function isAfter (input, units) {
3261 var localInput = isMoment(input) ? input : createLocal(input);
3262 if (!(this.isValid() && localInput.isValid())) {
3263 return false;
3264 }
3265 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3266 if (units === 'millisecond') {
3267 return this.valueOf() > localInput.valueOf();
3268 } else {
3269 return localInput.valueOf() < this.clone().startOf(units).valueOf();
3270 }
3271 }
3272
3273 function isBefore (input, units) {
3274 var localInput = isMoment(input) ? input : createLocal(input);
3275 if (!(this.isValid() && localInput.isValid())) {
3276 return false;
3277 }
3278 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3279 if (units === 'millisecond') {
3280 return this.valueOf() < localInput.valueOf();
3281 } else {
3282 return this.clone().endOf(units).valueOf() < localInput.valueOf();
3283 }
3284 }
3285
3286 function isBetween (from, to, units, inclusivity) {
3287 inclusivity = inclusivity || '()';
3288 return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
3289 (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
3290 }
3291
3292 function isSame (input, units) {
3293 var localInput = isMoment(input) ? input : createLocal(input),
3294 inputMs;
3295 if (!(this.isValid() && localInput.isValid())) {
3296 return false;
3297 }
3298 units = normalizeUnits(units || 'millisecond');
3299 if (units === 'millisecond') {
3300 return this.valueOf() === localInput.valueOf();
3301 } else {
3302 inputMs = localInput.valueOf();
3303 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
3304 }
3305 }
3306
3307 function isSameOrAfter (input, units) {
3308 return this.isSame(input, units) || this.isAfter(input,units);
3309 }
3310
3311 function isSameOrBefore (input, units) {
3312 return this.isSame(input, units) || this.isBefore(input,units);
3313 }
3314
3315 function diff (input, units, asFloat) {
3316 var that,
3317 zoneDelta,
3318 output;
3319
3320 if (!this.isValid()) {
3321 return NaN;
3322 }
3323
3324 that = cloneWithOffset(input, this);
3325
3326 if (!that.isValid()) {
3327 return NaN;
3328 }
3329
3330 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3331
3332 units = normalizeUnits(units);
3333
3334 switch (units) {
3335 case 'year': output = monthDiff(this, that) / 12; break;
3336 case 'month': output = monthDiff(this, that); break;
3337 case 'quarter': output = monthDiff(this, that) / 3; break;
3338 case 'second': output = (this - that) / 1e3; break; // 1000
3339 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
3340 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
3341 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
3342 case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
3343 default: output = this - that;
3344 }
3345
3346 return asFloat ? output : absFloor(output);
3347 }
3348
3349 function monthDiff (a, b) {
3350 // difference in months
3351 var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
3352 // b is in (anchor - 1 month, anchor + 1 month)
3353 anchor = a.clone().add(wholeMonthDiff, 'months'),
3354 anchor2, adjust;
3355
3356 if (b - anchor < 0) {
3357 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3358 // linear across the month
3359 adjust = (b - anchor) / (anchor - anchor2);
3360 } else {
3361 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3362 // linear across the month
3363 adjust = (b - anchor) / (anchor2 - anchor);
3364 }
3365
3366 //check for negative zero, return zero if negative zero
3367 return -(wholeMonthDiff + adjust) || 0;
3368 }
3369
3370 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3371 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3372
3373 function toString () {
3374 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3375 }
3376
3377 function toISOString(keepOffset) {
3378 if (!this.isValid()) {
3379 return null;
3380 }
3381 var utc = keepOffset !== true;
3382 var m = utc ? this.clone().utc() : this;
3383 if (m.year() < 0 || m.year() > 9999) {
3384 return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
3385 }
3386 if (isFunction(Date.prototype.toISOString)) {
3387 // native implementation is ~50x faster, use it when we can
3388 if (utc) {
3389 return this.toDate().toISOString();
3390 } else {
3391 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
3392 }
3393 }
3394 return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
3395 }
3396
3397 /**
3398 * Return a human readable representation of a moment that can
3399 * also be evaluated to get a new moment which is the same
3400 *
3401 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3402 */
3403 function inspect () {
3404 if (!this.isValid()) {
3405 return 'moment.invalid(/* ' + this._i + ' */)';
3406 }
3407 var func = 'moment';
3408 var zone = '';
3409 if (!this.isLocal()) {
3410 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3411 zone = 'Z';
3412 }
3413 var prefix = '[' + func + '("]';
3414 var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
3415 var datetime = '-MM-DD[T]HH:mm:ss.SSS';
3416 var suffix = zone + '[")]';
3417
3418 return this.format(prefix + year + datetime + suffix);
3419 }
3420
3421 function format (inputString) {
3422 if (!inputString) {
3423 inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
3424 }
3425 var output = formatMoment(this, inputString);
3426 return this.localeData().postformat(output);
3427 }
3428
3429 function from (time, withoutSuffix) {
3430 if (this.isValid() &&
3431 ((isMoment(time) && time.isValid()) ||
3432 createLocal(time).isValid())) {
3433 return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
3434 } else {
3435 return this.localeData().invalidDate();
3436 }
3437 }
3438
3439 function fromNow (withoutSuffix) {
3440 return this.from(createLocal(), withoutSuffix);
3441 }
3442
3443 function to (time, withoutSuffix) {
3444 if (this.isValid() &&
3445 ((isMoment(time) && time.isValid()) ||
3446 createLocal(time).isValid())) {
3447 return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
3448 } else {
3449 return this.localeData().invalidDate();
3450 }
3451 }
3452
3453 function toNow (withoutSuffix) {
3454 return this.to(createLocal(), withoutSuffix);
3455 }
3456
3457 // If passed a locale key, it will set the locale for this
3458 // instance. Otherwise, it will return the locale configuration
3459 // variables for this instance.
3460 function locale (key) {
3461 var newLocaleData;
3462
3463 if (key === undefined) {
3464 return this._locale._abbr;
3465 } else {
3466 newLocaleData = getLocale(key);
3467 if (newLocaleData != null) {
3468 this._locale = newLocaleData;
3469 }
3470 return this;
3471 }
3472 }
3473
3474 var lang = deprecate(
3475 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
3476 function (key) {
3477 if (key === undefined) {
3478 return this.localeData();
3479 } else {
3480 return this.locale(key);
3481 }
3482 }
3483 );
3484
3485 function localeData () {
3486 return this._locale;
3487 }
3488
3489 function startOf (units) {
3490 units = normalizeUnits(units);
3491 // the following switch intentionally omits break keywords
3492 // to utilize falling through the cases.
3493 switch (units) {
3494 case 'year':
3495 this.month(0);
3496 /* falls through */
3497 case 'quarter':
3498 case 'month':
3499 this.date(1);
3500 /* falls through */
3501 case 'week':
3502 case 'isoWeek':
3503 case 'day':
3504 case 'date':
3505 this.hours(0);
3506 /* falls through */
3507 case 'hour':
3508 this.minutes(0);
3509 /* falls through */
3510 case 'minute':
3511 this.seconds(0);
3512 /* falls through */
3513 case 'second':
3514 this.milliseconds(0);
3515 }
3516
3517 // weeks are a special case
3518 if (units === 'week') {
3519 this.weekday(0);
3520 }
3521 if (units === 'isoWeek') {
3522 this.isoWeekday(1);
3523 }
3524
3525 // quarters are also special
3526 if (units === 'quarter') {
3527 this.month(Math.floor(this.month() / 3) * 3);
3528 }
3529
3530 return this;
3531 }
3532
3533 function endOf (units) {
3534 units = normalizeUnits(units);
3535 if (units === undefined || units === 'millisecond') {
3536 return this;
3537 }
3538
3539 // 'date' is an alias for 'day', so it should be considered as such.
3540 if (units === 'date') {
3541 units = 'day';
3542 }
3543
3544 return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
3545 }
3546
3547 function valueOf () {
3548 return this._d.valueOf() - ((this._offset || 0) * 60000);
3549 }
3550
3551 function unix () {
3552 return Math.floor(this.valueOf() / 1000);
3553 }
3554
3555 function toDate () {
3556 return new Date(this.valueOf());
3557 }
3558
3559 function toArray () {
3560 var m = this;
3561 return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
3562 }
3563
3564 function toObject () {
3565 var m = this;
3566 return {
3567 years: m.year(),
3568 months: m.month(),
3569 date: m.date(),
3570 hours: m.hours(),
3571 minutes: m.minutes(),
3572 seconds: m.seconds(),
3573 milliseconds: m.milliseconds()
3574 };
3575 }
3576
3577 function toJSON () {
3578 // new Date(NaN).toJSON() === null
3579 return this.isValid() ? this.toISOString() : null;
3580 }
3581
3582 function isValid$2 () {
3583 return isValid(this);
3584 }
3585
3586 function parsingFlags () {
3587 return extend({}, getParsingFlags(this));
3588 }
3589
3590 function invalidAt () {
3591 return getParsingFlags(this).overflow;
3592 }
3593
3594 function creationData() {
3595 return {
3596 input: this._i,
3597 format: this._f,
3598 locale: this._locale,
3599 isUTC: this._isUTC,
3600 strict: this._strict
3601 };
3602 }
3603
3604 // FORMATTING
3605
3606 addFormatToken(0, ['gg', 2], 0, function () {
3607 return this.weekYear() % 100;
3608 });
3609
3610 addFormatToken(0, ['GG', 2], 0, function () {
3611 return this.isoWeekYear() % 100;
3612 });
3613
3614 function addWeekYearFormatToken (token, getter) {
3615 addFormatToken(0, [token, token.length], 0, getter);
3616 }
3617
3618 addWeekYearFormatToken('gggg', 'weekYear');
3619 addWeekYearFormatToken('ggggg', 'weekYear');
3620 addWeekYearFormatToken('GGGG', 'isoWeekYear');
3621 addWeekYearFormatToken('GGGGG', 'isoWeekYear');
3622
3623 // ALIASES
3624
3625 addUnitAlias('weekYear', 'gg');
3626 addUnitAlias('isoWeekYear', 'GG');
3627
3628 // PRIORITY
3629
3630 addUnitPriority('weekYear', 1);
3631 addUnitPriority('isoWeekYear', 1);
3632
3633
3634 // PARSING
3635
3636 addRegexToken('G', matchSigned);
3637 addRegexToken('g', matchSigned);
3638 addRegexToken('GG', match1to2, match2);
3639 addRegexToken('gg', match1to2, match2);
3640 addRegexToken('GGGG', match1to4, match4);
3641 addRegexToken('gggg', match1to4, match4);
3642 addRegexToken('GGGGG', match1to6, match6);
3643 addRegexToken('ggggg', match1to6, match6);
3644
3645 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
3646 week[token.substr(0, 2)] = toInt(input);
3647 });
3648
3649 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
3650 week[token] = hooks.parseTwoDigitYear(input);
3651 });
3652
3653 // MOMENTS
3654
3655 function getSetWeekYear (input) {
3656 return getSetWeekYearHelper.call(this,
3657 input,
3658 this.week(),
3659 this.weekday(),
3660 this.localeData()._week.dow,
3661 this.localeData()._week.doy);
3662 }
3663
3664 function getSetISOWeekYear (input) {
3665 return getSetWeekYearHelper.call(this,
3666 input, this.isoWeek(), this.isoWeekday(), 1, 4);
3667 }
3668
3669 function getISOWeeksInYear () {
3670 return weeksInYear(this.year(), 1, 4);
3671 }
3672
3673 function getWeeksInYear () {
3674 var weekInfo = this.localeData()._week;
3675 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
3676 }
3677
3678 function getSetWeekYearHelper(input, week, weekday, dow, doy) {
3679 var weeksTarget;
3680 if (input == null) {
3681 return weekOfYear(this, dow, doy).year;
3682 } else {
3683 weeksTarget = weeksInYear(input, dow, doy);
3684 if (week > weeksTarget) {
3685 week = weeksTarget;
3686 }
3687 return setWeekAll.call(this, input, week, weekday, dow, doy);
3688 }
3689 }
3690
3691 function setWeekAll(weekYear, week, weekday, dow, doy) {
3692 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
3693 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
3694
3695 this.year(date.getUTCFullYear());
3696 this.month(date.getUTCMonth());
3697 this.date(date.getUTCDate());
3698 return this;
3699 }
3700
3701 // FORMATTING
3702
3703 addFormatToken('Q', 0, 'Qo', 'quarter');
3704
3705 // ALIASES
3706
3707 addUnitAlias('quarter', 'Q');
3708
3709 // PRIORITY
3710
3711 addUnitPriority('quarter', 7);
3712
3713 // PARSING
3714
3715 addRegexToken('Q', match1);
3716 addParseToken('Q', function (input, array) {
3717 array[MONTH] = (toInt(input) - 1) * 3;
3718 });
3719
3720 // MOMENTS
3721
3722 function getSetQuarter (input) {
3723 return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
3724 }
3725
3726 // FORMATTING
3727
3728 addFormatToken('D', ['DD', 2], 'Do', 'date');
3729
3730 // ALIASES
3731
3732 addUnitAlias('date', 'D');
3733
3734 // PRIORITY
3735 addUnitPriority('date', 9);
3736
3737 // PARSING
3738
3739 addRegexToken('D', match1to2);
3740 addRegexToken('DD', match1to2, match2);
3741 addRegexToken('Do', function (isStrict, locale) {
3742 // TODO: Remove "ordinalParse" fallback in next major release.
3743 return isStrict ?
3744 (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
3745 locale._dayOfMonthOrdinalParseLenient;
3746 });
3747
3748 addParseToken(['D', 'DD'], DATE);
3749 addParseToken('Do', function (input, array) {
3750 array[DATE] = toInt(input.match(match1to2)[0]);
3751 });
3752
3753 // MOMENTS
3754
3755 var getSetDayOfMonth = makeGetSet('Date', true);
3756
3757 // FORMATTING
3758
3759 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
3760
3761 // ALIASES
3762
3763 addUnitAlias('dayOfYear', 'DDD');
3764
3765 // PRIORITY
3766 addUnitPriority('dayOfYear', 4);
3767
3768 // PARSING
3769
3770 addRegexToken('DDD', match1to3);
3771 addRegexToken('DDDD', match3);
3772 addParseToken(['DDD', 'DDDD'], function (input, array, config) {
3773 config._dayOfYear = toInt(input);
3774 });
3775
3776 // HELPERS
3777
3778 // MOMENTS
3779
3780 function getSetDayOfYear (input) {
3781 var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
3782 return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
3783 }
3784
3785 // FORMATTING
3786
3787 addFormatToken('m', ['mm', 2], 0, 'minute');
3788
3789 // ALIASES
3790
3791 addUnitAlias('minute', 'm');
3792
3793 // PRIORITY
3794
3795 addUnitPriority('minute', 14);
3796
3797 // PARSING
3798
3799 addRegexToken('m', match1to2);
3800 addRegexToken('mm', match1to2, match2);
3801 addParseToken(['m', 'mm'], MINUTE);
3802
3803 // MOMENTS
3804
3805 var getSetMinute = makeGetSet('Minutes', false);
3806
3807 // FORMATTING
3808
3809 addFormatToken('s', ['ss', 2], 0, 'second');
3810
3811 // ALIASES
3812
3813 addUnitAlias('second', 's');
3814
3815 // PRIORITY
3816
3817 addUnitPriority('second', 15);
3818
3819 // PARSING
3820
3821 addRegexToken('s', match1to2);
3822 addRegexToken('ss', match1to2, match2);
3823 addParseToken(['s', 'ss'], SECOND);
3824
3825 // MOMENTS
3826
3827 var getSetSecond = makeGetSet('Seconds', false);
3828
3829 // FORMATTING
3830
3831 addFormatToken('S', 0, 0, function () {
3832 return ~~(this.millisecond() / 100);
3833 });
3834
3835 addFormatToken(0, ['SS', 2], 0, function () {
3836 return ~~(this.millisecond() / 10);
3837 });
3838
3839 addFormatToken(0, ['SSS', 3], 0, 'millisecond');
3840 addFormatToken(0, ['SSSS', 4], 0, function () {
3841 return this.millisecond() * 10;
3842 });
3843 addFormatToken(0, ['SSSSS', 5], 0, function () {
3844 return this.millisecond() * 100;
3845 });
3846 addFormatToken(0, ['SSSSSS', 6], 0, function () {
3847 return this.millisecond() * 1000;
3848 });
3849 addFormatToken(0, ['SSSSSSS', 7], 0, function () {
3850 return this.millisecond() * 10000;
3851 });
3852 addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
3853 return this.millisecond() * 100000;
3854 });
3855 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
3856 return this.millisecond() * 1000000;
3857 });
3858
3859
3860 // ALIASES
3861
3862 addUnitAlias('millisecond', 'ms');
3863
3864 // PRIORITY
3865
3866 addUnitPriority('millisecond', 16);
3867
3868 // PARSING
3869
3870 addRegexToken('S', match1to3, match1);
3871 addRegexToken('SS', match1to3, match2);
3872 addRegexToken('SSS', match1to3, match3);
3873
3874 var token;
3875 for (token = 'SSSS'; token.length <= 9; token += 'S') {
3876 addRegexToken(token, matchUnsigned);
3877 }
3878
3879 function parseMs(input, array) {
3880 array[MILLISECOND] = toInt(('0.' + input) * 1000);
3881 }
3882
3883 for (token = 'S'; token.length <= 9; token += 'S') {
3884 addParseToken(token, parseMs);
3885 }
3886 // MOMENTS
3887
3888 var getSetMillisecond = makeGetSet('Milliseconds', false);
3889
3890 // FORMATTING
3891
3892 addFormatToken('z', 0, 0, 'zoneAbbr');
3893 addFormatToken('zz', 0, 0, 'zoneName');
3894
3895 // MOMENTS
3896
3897 function getZoneAbbr () {
3898 return this._isUTC ? 'UTC' : '';
3899 }
3900
3901 function getZoneName () {
3902 return this._isUTC ? 'Coordinated Universal Time' : '';
3903 }
3904
3905 var proto = Moment.prototype;
3906
3907 proto.add = add;
3908 proto.calendar = calendar$1;
3909 proto.clone = clone;
3910 proto.diff = diff;
3911 proto.endOf = endOf;
3912 proto.format = format;
3913 proto.from = from;
3914 proto.fromNow = fromNow;
3915 proto.to = to;
3916 proto.toNow = toNow;
3917 proto.get = stringGet;
3918 proto.invalidAt = invalidAt;
3919 proto.isAfter = isAfter;
3920 proto.isBefore = isBefore;
3921 proto.isBetween = isBetween;
3922 proto.isSame = isSame;
3923 proto.isSameOrAfter = isSameOrAfter;
3924 proto.isSameOrBefore = isSameOrBefore;
3925 proto.isValid = isValid$2;
3926 proto.lang = lang;
3927 proto.locale = locale;
3928 proto.localeData = localeData;
3929 proto.max = prototypeMax;
3930 proto.min = prototypeMin;
3931 proto.parsingFlags = parsingFlags;
3932 proto.set = stringSet;
3933 proto.startOf = startOf;
3934 proto.subtract = subtract;
3935 proto.toArray = toArray;
3936 proto.toObject = toObject;
3937 proto.toDate = toDate;
3938 proto.toISOString = toISOString;
3939 proto.inspect = inspect;
3940 proto.toJSON = toJSON;
3941 proto.toString = toString;
3942 proto.unix = unix;
3943 proto.valueOf = valueOf;
3944 proto.creationData = creationData;
3945 proto.year = getSetYear;
3946 proto.isLeapYear = getIsLeapYear;
3947 proto.weekYear = getSetWeekYear;
3948 proto.isoWeekYear = getSetISOWeekYear;
3949 proto.quarter = proto.quarters = getSetQuarter;
3950 proto.month = getSetMonth;
3951 proto.daysInMonth = getDaysInMonth;
3952 proto.week = proto.weeks = getSetWeek;
3953 proto.isoWeek = proto.isoWeeks = getSetISOWeek;
3954 proto.weeksInYear = getWeeksInYear;
3955 proto.isoWeeksInYear = getISOWeeksInYear;
3956 proto.date = getSetDayOfMonth;
3957 proto.day = proto.days = getSetDayOfWeek;
3958 proto.weekday = getSetLocaleDayOfWeek;
3959 proto.isoWeekday = getSetISODayOfWeek;
3960 proto.dayOfYear = getSetDayOfYear;
3961 proto.hour = proto.hours = getSetHour;
3962 proto.minute = proto.minutes = getSetMinute;
3963 proto.second = proto.seconds = getSetSecond;
3964 proto.millisecond = proto.milliseconds = getSetMillisecond;
3965 proto.utcOffset = getSetOffset;
3966 proto.utc = setOffsetToUTC;
3967 proto.local = setOffsetToLocal;
3968 proto.parseZone = setOffsetToParsedOffset;
3969 proto.hasAlignedHourOffset = hasAlignedHourOffset;
3970 proto.isDST = isDaylightSavingTime;
3971 proto.isLocal = isLocal;
3972 proto.isUtcOffset = isUtcOffset;
3973 proto.isUtc = isUtc;
3974 proto.isUTC = isUtc;
3975 proto.zoneAbbr = getZoneAbbr;
3976 proto.zoneName = getZoneName;
3977 proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
3978 proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
3979 proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
3980 proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
3981 proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
3982
3983 function createUnix (input) {
3984 return createLocal(input * 1000);
3985 }
3986
3987 function createInZone () {
3988 return createLocal.apply(null, arguments).parseZone();
3989 }
3990
3991 function preParsePostFormat (string) {
3992 return string;
3993 }
3994
3995 var proto$1 = Locale.prototype;
3996
3997 proto$1.calendar = calendar;
3998 proto$1.longDateFormat = longDateFormat;
3999 proto$1.invalidDate = invalidDate;
4000 proto$1.ordinal = ordinal;
4001 proto$1.preparse = preParsePostFormat;
4002 proto$1.postformat = preParsePostFormat;
4003 proto$1.relativeTime = relativeTime;
4004 proto$1.pastFuture = pastFuture;
4005 proto$1.set = set;
4006
4007 proto$1.months = localeMonths;
4008 proto$1.monthsShort = localeMonthsShort;
4009 proto$1.monthsParse = localeMonthsParse;
4010 proto$1.monthsRegex = monthsRegex;
4011 proto$1.monthsShortRegex = monthsShortRegex;
4012 proto$1.week = localeWeek;
4013 proto$1.firstDayOfYear = localeFirstDayOfYear;
4014 proto$1.firstDayOfWeek = localeFirstDayOfWeek;
4015
4016 proto$1.weekdays = localeWeekdays;
4017 proto$1.weekdaysMin = localeWeekdaysMin;
4018 proto$1.weekdaysShort = localeWeekdaysShort;
4019 proto$1.weekdaysParse = localeWeekdaysParse;
4020
4021 proto$1.weekdaysRegex = weekdaysRegex;
4022 proto$1.weekdaysShortRegex = weekdaysShortRegex;
4023 proto$1.weekdaysMinRegex = weekdaysMinRegex;
4024
4025 proto$1.isPM = localeIsPM;
4026 proto$1.meridiem = localeMeridiem;
4027
4028 function get$1 (format, index, field, setter) {
4029 var locale = getLocale();
4030 var utc = createUTC().set(setter, index);
4031 return locale[field](utc, format);
4032 }
4033
4034 function listMonthsImpl (format, index, field) {
4035 if (isNumber(format)) {
4036 index = format;
4037 format = undefined;
4038 }
4039
4040 format = format || '';
4041
4042 if (index != null) {
4043 return get$1(format, index, field, 'month');
4044 }
4045
4046 var i;
4047 var out = [];
4048 for (i = 0; i < 12; i++) {
4049 out[i] = get$1(format, i, field, 'month');
4050 }
4051 return out;
4052 }
4053
4054 // ()
4055 // (5)
4056 // (fmt, 5)
4057 // (fmt)
4058 // (true)
4059 // (true, 5)
4060 // (true, fmt, 5)
4061 // (true, fmt)
4062 function listWeekdaysImpl (localeSorted, format, index, field) {
4063 if (typeof localeSorted === 'boolean') {
4064 if (isNumber(format)) {
4065 index = format;
4066 format = undefined;
4067 }
4068
4069 format = format || '';
4070 } else {
4071 format = localeSorted;
4072 index = format;
4073 localeSorted = false;
4074
4075 if (isNumber(format)) {
4076 index = format;
4077 format = undefined;
4078 }
4079
4080 format = format || '';
4081 }
4082
4083 var locale = getLocale(),
4084 shift = localeSorted ? locale._week.dow : 0;
4085
4086 if (index != null) {
4087 return get$1(format, (index + shift) % 7, field, 'day');
4088 }
4089
4090 var i;
4091 var out = [];
4092 for (i = 0; i < 7; i++) {
4093 out[i] = get$1(format, (i + shift) % 7, field, 'day');
4094 }
4095 return out;
4096 }
4097
4098 function listMonths (format, index) {
4099 return listMonthsImpl(format, index, 'months');
4100 }
4101
4102 function listMonthsShort (format, index) {
4103 return listMonthsImpl(format, index, 'monthsShort');
4104 }
4105
4106 function listWeekdays (localeSorted, format, index) {
4107 return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
4108 }
4109
4110 function listWeekdaysShort (localeSorted, format, index) {
4111 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
4112 }
4113
4114 function listWeekdaysMin (localeSorted, format, index) {
4115 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
4116 }
4117
4118 getSetGlobalLocale('en', {
4119 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
4120 ordinal : function (number) {
4121 var b = number % 10,
4122 output = (toInt(number % 100 / 10) === 1) ? 'th' :
4123 (b === 1) ? 'st' :
4124 (b === 2) ? 'nd' :
4125 (b === 3) ? 'rd' : 'th';
4126 return number + output;
4127 }
4128 });
4129
4130 // Side effect imports
4131
4132 hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
4133 hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
4134
4135 var mathAbs = Math.abs;
4136
4137 function abs () {
4138 var data = this._data;
4139
4140 this._milliseconds = mathAbs(this._milliseconds);
4141 this._days = mathAbs(this._days);
4142 this._months = mathAbs(this._months);
4143
4144 data.milliseconds = mathAbs(data.milliseconds);
4145 data.seconds = mathAbs(data.seconds);
4146 data.minutes = mathAbs(data.minutes);
4147 data.hours = mathAbs(data.hours);
4148 data.months = mathAbs(data.months);
4149 data.years = mathAbs(data.years);
4150
4151 return this;
4152 }
4153
4154 function addSubtract$1 (duration, input, value, direction) {
4155 var other = createDuration(input, value);
4156
4157 duration._milliseconds += direction * other._milliseconds;
4158 duration._days += direction * other._days;
4159 duration._months += direction * other._months;
4160
4161 return duration._bubble();
4162 }
4163
4164 // supports only 2.0-style add(1, 's') or add(duration)
4165 function add$1 (input, value) {
4166 return addSubtract$1(this, input, value, 1);
4167 }
4168
4169 // supports only 2.0-style subtract(1, 's') or subtract(duration)
4170 function subtract$1 (input, value) {
4171 return addSubtract$1(this, input, value, -1);
4172 }
4173
4174 function absCeil (number) {
4175 if (number < 0) {
4176 return Math.floor(number);
4177 } else {
4178 return Math.ceil(number);
4179 }
4180 }
4181
4182 function bubble () {
4183 var milliseconds = this._milliseconds;
4184 var days = this._days;
4185 var months = this._months;
4186 var data = this._data;
4187 var seconds, minutes, hours, years, monthsFromDays;
4188
4189 // if we have a mix of positive and negative values, bubble down first
4190 // check: https://github.com/moment/moment/issues/2166
4191 if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
4192 (milliseconds <= 0 && days <= 0 && months <= 0))) {
4193 milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
4194 days = 0;
4195 months = 0;
4196 }
4197
4198 // The following code bubbles up values, see the tests for
4199 // examples of what that means.
4200 data.milliseconds = milliseconds % 1000;
4201
4202 seconds = absFloor(milliseconds / 1000);
4203 data.seconds = seconds % 60;
4204
4205 minutes = absFloor(seconds / 60);
4206 data.minutes = minutes % 60;
4207
4208 hours = absFloor(minutes / 60);
4209 data.hours = hours % 24;
4210
4211 days += absFloor(hours / 24);
4212
4213 // convert days to months
4214 monthsFromDays = absFloor(daysToMonths(days));
4215 months += monthsFromDays;
4216 days -= absCeil(monthsToDays(monthsFromDays));
4217
4218 // 12 months -> 1 year
4219 years = absFloor(months / 12);
4220 months %= 12;
4221
4222 data.days = days;
4223 data.months = months;
4224 data.years = years;
4225
4226 return this;
4227 }
4228
4229 function daysToMonths (days) {
4230 // 400 years have 146097 days (taking into account leap year rules)
4231 // 400 years have 12 months === 4800
4232 return days * 4800 / 146097;
4233 }
4234
4235 function monthsToDays (months) {
4236 // the reverse of daysToMonths
4237 return months * 146097 / 4800;
4238 }
4239
4240 function as (units) {
4241 if (!this.isValid()) {
4242 return NaN;
4243 }
4244 var days;
4245 var months;
4246 var milliseconds = this._milliseconds;
4247
4248 units = normalizeUnits(units);
4249
4250 if (units === 'month' || units === 'year') {
4251 days = this._days + milliseconds / 864e5;
4252 months = this._months + daysToMonths(days);
4253 return units === 'month' ? months : months / 12;
4254 } else {
4255 // handle milliseconds separately because of floating point math errors (issue #1867)
4256 days = this._days + Math.round(monthsToDays(this._months));
4257 switch (units) {
4258 case 'week' : return days / 7 + milliseconds / 6048e5;
4259 case 'day' : return days + milliseconds / 864e5;
4260 case 'hour' : return days * 24 + milliseconds / 36e5;
4261 case 'minute' : return days * 1440 + milliseconds / 6e4;
4262 case 'second' : return days * 86400 + milliseconds / 1000;
4263 // Math.floor prevents floating point math errors here
4264 case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
4265 default: throw new Error('Unknown unit ' + units);
4266 }
4267 }
4268 }
4269
4270 // TODO: Use this.as('ms')?
4271 function valueOf$1 () {
4272 if (!this.isValid()) {
4273 return NaN;
4274 }
4275 return (
4276 this._milliseconds +
4277 this._days * 864e5 +
4278 (this._months % 12) * 2592e6 +
4279 toInt(this._months / 12) * 31536e6
4280 );
4281 }
4282
4283 function makeAs (alias) {
4284 return function () {
4285 return this.as(alias);
4286 };
4287 }
4288
4289 var asMilliseconds = makeAs('ms');
4290 var asSeconds = makeAs('s');
4291 var asMinutes = makeAs('m');
4292 var asHours = makeAs('h');
4293 var asDays = makeAs('d');
4294 var asWeeks = makeAs('w');
4295 var asMonths = makeAs('M');
4296 var asYears = makeAs('y');
4297
4298 function clone$1 () {
4299 return createDuration(this);
4300 }
4301
4302 function get$2 (units) {
4303 units = normalizeUnits(units);
4304 return this.isValid() ? this[units + 's']() : NaN;
4305 }
4306
4307 function makeGetter(name) {
4308 return function () {
4309 return this.isValid() ? this._data[name] : NaN;
4310 };
4311 }
4312
4313 var milliseconds = makeGetter('milliseconds');
4314 var seconds = makeGetter('seconds');
4315 var minutes = makeGetter('minutes');
4316 var hours = makeGetter('hours');
4317 var days = makeGetter('days');
4318 var months = makeGetter('months');
4319 var years = makeGetter('years');
4320
4321 function weeks () {
4322 return absFloor(this.days() / 7);
4323 }
4324
4325 var round = Math.round;
4326 var thresholds = {
4327 ss: 44, // a few seconds to seconds
4328 s : 45, // seconds to minute
4329 m : 45, // minutes to hour
4330 h : 22, // hours to day
4331 d : 26, // days to month
4332 M : 11 // months to year
4333 };
4334
4335 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
4336 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
4337 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
4338 }
4339
4340 function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
4341 var duration = createDuration(posNegDuration).abs();
4342 var seconds = round(duration.as('s'));
4343 var minutes = round(duration.as('m'));
4344 var hours = round(duration.as('h'));
4345 var days = round(duration.as('d'));
4346 var months = round(duration.as('M'));
4347 var years = round(duration.as('y'));
4348
4349 var a = seconds <= thresholds.ss && ['s', seconds] ||
4350 seconds < thresholds.s && ['ss', seconds] ||
4351 minutes <= 1 && ['m'] ||
4352 minutes < thresholds.m && ['mm', minutes] ||
4353 hours <= 1 && ['h'] ||
4354 hours < thresholds.h && ['hh', hours] ||
4355 days <= 1 && ['d'] ||
4356 days < thresholds.d && ['dd', days] ||
4357 months <= 1 && ['M'] ||
4358 months < thresholds.M && ['MM', months] ||
4359 years <= 1 && ['y'] || ['yy', years];
4360
4361 a[2] = withoutSuffix;
4362 a[3] = +posNegDuration > 0;
4363 a[4] = locale;
4364 return substituteTimeAgo.apply(null, a);
4365 }
4366
4367 // This function allows you to set the rounding function for relative time strings
4368 function getSetRelativeTimeRounding (roundingFunction) {
4369 if (roundingFunction === undefined) {
4370 return round;
4371 }
4372 if (typeof(roundingFunction) === 'function') {
4373 round = roundingFunction;
4374 return true;
4375 }
4376 return false;
4377 }
4378
4379 // This function allows you to set a threshold for relative time strings
4380 function getSetRelativeTimeThreshold (threshold, limit) {
4381 if (thresholds[threshold] === undefined) {
4382 return false;
4383 }
4384 if (limit === undefined) {
4385 return thresholds[threshold];
4386 }
4387 thresholds[threshold] = limit;
4388 if (threshold === 's') {
4389 thresholds.ss = limit - 1;
4390 }
4391 return true;
4392 }
4393
4394 function humanize (withSuffix) {
4395 if (!this.isValid()) {
4396 return this.localeData().invalidDate();
4397 }
4398
4399 var locale = this.localeData();
4400 var output = relativeTime$1(this, !withSuffix, locale);
4401
4402 if (withSuffix) {
4403 output = locale.pastFuture(+this, output);
4404 }
4405
4406 return locale.postformat(output);
4407 }
4408
4409 var abs$1 = Math.abs;
4410
4411 function sign(x) {
4412 return ((x > 0) - (x < 0)) || +x;
4413 }
4414
4415 function toISOString$1() {
4416 // for ISO strings we do not use the normal bubbling rules:
4417 // * milliseconds bubble up until they become hours
4418 // * days do not bubble at all
4419 // * months bubble up until they become years
4420 // This is because there is no context-free conversion between hours and days
4421 // (think of clock changes)
4422 // and also not between days and months (28-31 days per month)
4423 if (!this.isValid()) {
4424 return this.localeData().invalidDate();
4425 }
4426
4427 var seconds = abs$1(this._milliseconds) / 1000;
4428 var days = abs$1(this._days);
4429 var months = abs$1(this._months);
4430 var minutes, hours, years;
4431
4432 // 3600 seconds -> 60 minutes -> 1 hour
4433 minutes = absFloor(seconds / 60);
4434 hours = absFloor(minutes / 60);
4435 seconds %= 60;
4436 minutes %= 60;
4437
4438 // 12 months -> 1 year
4439 years = absFloor(months / 12);
4440 months %= 12;
4441
4442
4443 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
4444 var Y = years;
4445 var M = months;
4446 var D = days;
4447 var h = hours;
4448 var m = minutes;
4449 var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
4450 var total = this.asSeconds();
4451
4452 if (!total) {
4453 // this is the same as C#'s (Noda) and python (isodate)...
4454 // but not other JS (goog.date)
4455 return 'P0D';
4456 }
4457
4458 var totalSign = total < 0 ? '-' : '';
4459 var ymSign = sign(this._months) !== sign(total) ? '-' : '';
4460 var daysSign = sign(this._days) !== sign(total) ? '-' : '';
4461 var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
4462
4463 return totalSign + 'P' +
4464 (Y ? ymSign + Y + 'Y' : '') +
4465 (M ? ymSign + M + 'M' : '') +
4466 (D ? daysSign + D + 'D' : '') +
4467 ((h || m || s) ? 'T' : '') +
4468 (h ? hmsSign + h + 'H' : '') +
4469 (m ? hmsSign + m + 'M' : '') +
4470 (s ? hmsSign + s + 'S' : '');
4471 }
4472
4473 var proto$2 = Duration.prototype;
4474
4475 proto$2.isValid = isValid$1;
4476 proto$2.abs = abs;
4477 proto$2.add = add$1;
4478 proto$2.subtract = subtract$1;
4479 proto$2.as = as;
4480 proto$2.asMilliseconds = asMilliseconds;
4481 proto$2.asSeconds = asSeconds;
4482 proto$2.asMinutes = asMinutes;
4483 proto$2.asHours = asHours;
4484 proto$2.asDays = asDays;
4485 proto$2.asWeeks = asWeeks;
4486 proto$2.asMonths = asMonths;
4487 proto$2.asYears = asYears;
4488 proto$2.valueOf = valueOf$1;
4489 proto$2._bubble = bubble;
4490 proto$2.clone = clone$1;
4491 proto$2.get = get$2;
4492 proto$2.milliseconds = milliseconds;
4493 proto$2.seconds = seconds;
4494 proto$2.minutes = minutes;
4495 proto$2.hours = hours;
4496 proto$2.days = days;
4497 proto$2.weeks = weeks;
4498 proto$2.months = months;
4499 proto$2.years = years;
4500 proto$2.humanize = humanize;
4501 proto$2.toISOString = toISOString$1;
4502 proto$2.toString = toISOString$1;
4503 proto$2.toJSON = toISOString$1;
4504 proto$2.locale = locale;
4505 proto$2.localeData = localeData;
4506
4507 proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
4508 proto$2.lang = lang;
4509
4510 // Side effect imports
4511
4512 // FORMATTING
4513
4514 addFormatToken('X', 0, 0, 'unix');
4515 addFormatToken('x', 0, 0, 'valueOf');
4516
4517 // PARSING
4518
4519 addRegexToken('x', matchSigned);
4520 addRegexToken('X', matchTimestamp);
4521 addParseToken('X', function (input, array, config) {
4522 config._d = new Date(parseFloat(input, 10) * 1000);
4523 });
4524 addParseToken('x', function (input, array, config) {
4525 config._d = new Date(toInt(input));
4526 });
4527
4528 // Side effect imports
4529
4530
4531 hooks.version = '2.22.2';
4532
4533 setHookCallback(createLocal);
4534
4535 hooks.fn = proto;
4536 hooks.min = min;
4537 hooks.max = max;
4538 hooks.now = now;
4539 hooks.utc = createUTC;
4540 hooks.unix = createUnix;
4541 hooks.months = listMonths;
4542 hooks.isDate = isDate;
4543 hooks.locale = getSetGlobalLocale;
4544 hooks.invalid = createInvalid;
4545 hooks.duration = createDuration;
4546 hooks.isMoment = isMoment;
4547 hooks.weekdays = listWeekdays;
4548 hooks.parseZone = createInZone;
4549 hooks.localeData = getLocale;
4550 hooks.isDuration = isDuration;
4551 hooks.monthsShort = listMonthsShort;
4552 hooks.weekdaysMin = listWeekdaysMin;
4553 hooks.defineLocale = defineLocale;
4554 hooks.updateLocale = updateLocale;
4555 hooks.locales = listLocales;
4556 hooks.weekdaysShort = listWeekdaysShort;
4557 hooks.normalizeUnits = normalizeUnits;
4558 hooks.relativeTimeRounding = getSetRelativeTimeRounding;
4559 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
4560 hooks.calendarFormat = getCalendarFormat;
4561 hooks.prototype = proto;
4562
4563 // currently HTML5 input type only supports 24-hour formats
4564 hooks.HTML5_FMT = {
4565 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
4566 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
4567 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
4568 DATE: 'YYYY-MM-DD', // <input type="date" />
4569 TIME: 'HH:mm', // <input type="time" />
4570 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
4571 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
4572 WEEK: 'YYYY-[W]WW', // <input type="week" />
4573 MONTH: 'YYYY-MM' // <input type="month" />
4574 };
4575
4576 return hooks;
4577
4578})));
4579
4580/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module)))
4581
4582/***/ }),
4583/* 1 */
4584/***/ (function(module, exports, __webpack_require__) {
4585
4586/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/**
4587 * @license
4588 * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
4589 */
4590;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function r(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function e(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n););return n}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;
4591return true}function i(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function o(n,t){return!(null==n||!n.length)&&-1<v(n,t,0)}function f(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function c(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function a(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function l(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);
4592return r}function s(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function h(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function p(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function _(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function v(n,t,r){if(t===t)n:{--r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=_(n,d,r);return n}function g(n,t,r,e){
4593--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function d(n){return n!==n}function y(n,t){var r=null==n?0:n.length;return r?m(n,t)/r:F}function b(n){return function(t){return null==t?T:t[n]}}function x(n){return function(t){return null==n?T:n[t]}}function j(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function w(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function m(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==T&&(r=r===T?i:r+i)}return r;
4594}function A(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function E(n,t){return c(t,function(t){return[t,n[t]]})}function k(n){return function(t){return n(t)}}function S(n,t){return c(t,function(t){return n[t]})}function O(n,t){return n.has(t)}function I(n,t){for(var r=-1,e=n.length;++r<e&&-1<v(t,n[r],0););return r}function R(n,t){for(var r=n.length;r--&&-1<v(t,n[r],0););return r}function z(n){return"\\"+Un[n]}function W(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n];
4595}),r}function B(n,t){return function(r){return n(t(r))}}function L(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&"__lodash_placeholder__"!==o||(n[r]="__lodash_placeholder__",i[u++]=r)}return i}function U(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function C(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function D(n){if(Rn.test(n)){for(var t=On.lastIndex=0;On.test(n);)++t;n=t}else n=Qn(n);return n}function M(n){return Rn.test(n)?n.match(On)||[]:n.split("");
4596}var T,$=1/0,F=NaN,N=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],P=/\b__p\+='';/g,Z=/\b(__p\+=)''\+/g,q=/(__e\(.*?\)|\b__t\))\+'';/g,V=/&(?:amp|lt|gt|quot|#39);/g,K=/[&<>"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={};
4597Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false;
4598var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true,
4599Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,Dn=parseInt,Mn=typeof global=="object"&&global&&global.Object===Object&&global,Tn=typeof self=="object"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function("return this")(),Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){
4600try{var n=Nn&&Nn.f&&Nn.f("util").types;return n?n:Zn&&Zn.binding&&Zn.binding("util")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I",
4601"\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C",
4602"\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i",
4603"\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r",
4604"\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij",
4605"\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),nt=x({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),tt=x({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,"__wrapped__"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,
4606this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Fn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Nn(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new Fn;++t<r;)this.add(n[t]);
4607}function Zn(n){this.size=(this.__data__=new Tn(n)).size}function qn(n,t){var r,e=of(n),u=!e&&uf(n),i=!e&&!u&&cf(n),o=!e&&!u&&!i&&pf(n),u=(e=e||u||i||o)?A(n.length,Xu):[],f=u.length;for(r in n)!t&&!ii.call(n,r)||e&&("length"==r||i&&("offset"==r||"parent"==r)||o&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||Se(r,f))||u.push(r);return u}function Qn(n){var t=n.length;return t?n[ir(0,t-1)]:T}function et(n,t){return Ce(Ur(n),pt(t,0,n.length))}function ut(n){return Ce(Ur(n))}function it(n,t,r){(r===T||au(n[t],r))&&(r!==T||t in n)||st(n,t,r);
4608}function ot(n,t,r){var e=n[t];ii.call(n,t)&&au(e,r)&&(r!==T||t in n)||st(n,t,r)}function ft(n,t){for(var r=n.length;r--;)if(au(n[r][0],t))return r;return-1}function ct(n,t,r,e){return eo(n,function(n,u,i){t(e,n,r(n),i)}),e}function at(n,t){return n&&Cr(t,zu(t),n)}function lt(n,t){return n&&Cr(t,Wu(t),n)}function st(n,t,r){"__proto__"==t&&mi?mi(n,t,{configurable:true,enumerable:true,value:r,writable:true}):n[t]=r}function ht(n,t){for(var r=-1,e=t.length,u=Vu(e),i=null==n;++r<e;)u[r]=i?T:Iu(n,t[r]);return u;
4609}function pt(n,t,r){return n===n&&(r!==T&&(n=n<=r?n:r),t!==T&&(n=n>=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(cf(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),
4610i=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ni("Expected a function");
4611return yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++u<l;){var p=n[u],_=null==r?p:r(p),p=e||0!==p?p:0;if(a&&_===_){for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else i(t,_,e)||s.push(p)}return s}function bt(n,t){var r=true;return eo(n,function(n,e,u){return r=!!t(n,e,u)}),r}function xt(n,t,r){for(var e=-1,u=n.length;++e<u;){var i=n[e],o=t(i);if(null!=o&&(f===T?o===o&&!ju(o):r(o,f)))var f=o,c=i;
4612}return c}function jt(n,t){var r=[];return eo(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function wt(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=ke),u||(u=[]);++i<o;){var f=n[i];0<t&&r(f)?1<t?wt(f,t-1,r,e,u):a(u,f):e||(u[u.length]=f)}return u}function mt(n,t){return n&&io(n,t,zu)}function At(n,t){return n&&oo(n,t,zu)}function Et(n,t){return i(t,function(t){return pu(n[t])})}function kt(n,t){t=Sr(t,n);for(var r=0,e=t.length;null!=n&&r<e;)n=n[De(t[r++])];return r&&r==e?n:T}function St(n,t,r){return t=t(n),
4613of(n)?t:a(t,r(n))}function Ot(n){if(null==n)n=n===T?"[object Undefined]":"[object Null]";else if(wi&&wi in Yu(n)){var t=ii.call(n,wi),r=n[wi];try{n[wi]=T;var e=true}catch(n){}var u=ci.call(n);e&&(t?n[wi]=r:delete n[wi]),n=u}else n=ci.call(n);return n}function It(n,t){return n>t}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),
4614l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_<u&&h.length<s;){var g=p[_],d=t?t(g):g,g=r||0!==g?g:0;if(v?!O(v,d):!e(h,d,r)){for(a=i;--a;){var y=l[a];if(y?!O(y,d):!e(n[a],d,r))continue n}v&&v.push(d),h.push(g)}}return h}function Bt(n,t,r){var e={};return mt(n,function(n,u,i){t(e,r(n),u,i)}),e}function Lt(t,r,e){return r=Sr(r,t),t=2>r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&"[object Arguments]"==Ot(n)}function Ct(n){
4615return du(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return du(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?"[object Array]":_o(n),c=o?"[object Array]":_o(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{
4616if(!(1&r)&&(i=a&&ii.call(n,"__wrapped__"),f=o&&ii.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++a<o;){var l=f[a],h=n[l],p=t[l];if(e)var _=i?e(p,h,l,t,n,u):e(h,p,l,n,t,u);if(_===T?h!==p&&!Mt(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l);
4617}c&&!s&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),u.delete(n),u.delete(t),t=c}}else t=false;else t=false}}return t}function Tt(n){return du(n)&&"[object Map]"==_o(n)}function $t(n,t,r,e){var u=r.length,i=u,o=!e;if(null==n)return!i;for(n=Yu(n);u--;){var f=r[u];if(o&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<i;){var f=r[u],c=f[0],a=n[c],l=f[1];if(o&&f[2]){if(a===T&&!(c in n))return false;
4618}else{if(f=new Zn,e)var s=e(a,l,c,n,t,f);if(s===T?!Mt(l,a,3,e,f):!s)return false}}return true}function Ft(n){return!(!gu(n)||fi&&fi in n)&&(pu(n)?si:dn).test(Me(n))}function Nt(n){return du(n)&&"[object RegExp]"==Ot(n)}function Pt(n){return du(n)&&"[object Set]"==_o(n)}function Zt(n){return du(n)&&vu(n.length)&&!!Bn[Ot(n)]}function qt(n){return typeof n=="function"?n:null==n?Tu:typeof n=="object"?of(n)?Jt(n[0],n[1]):Ht(n):Pu(n)}function Vt(n){if(!ze(n))return Bi(n);var t,r=[];for(t in Yu(n))ii.call(n,t)&&"constructor"!=t&&r.push(t);
4619return r}function Kt(n,t){return n<t}function Gt(n,t){var r=-1,e=lu(n)?Vu(n.length):[];return eo(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function Ht(n){var t=xe(n);return 1==t.length&&t[0][2]?We(t[0][0],t[0][1]):function(r){return r===n||$t(r,n,t)}}function Jt(n,t){return Ie(n)&&t===t&&!gu(t)?We(De(n),t):function(r){var e=Iu(r,n);return e===T&&e===t?Ru(r,n):Mt(t,e,3)}}function Yt(n,t,r,e,u){n!==t&&io(t,function(i,o){if(gu(i)){u||(u=new Zn);var f=u,c="__proto__"==o?T:n[o],a="__proto__"==o?T:t[o],l=f.get(a);
4620if(l)it(n,o,l);else{var l=e?e(c,a,o+"",n,t,f):T,s=l===T;if(s){var h=of(a),p=!h&&cf(a),_=!h&&!p&&pf(a),l=a;h||p||_?of(c)?l=c:su(c)?l=Ur(c):p?(s=false,l=Ir(a,true)):_?(s=false,l=zr(a,true)):l=[]:bu(a)||uf(a)?(l=c,uf(c)?l=Su(c):(!gu(c)||r&&pu(c))&&(l=Ae(a))):s=false}s&&(f.set(a,l),Yt(l,a,r,e,f),f.delete(a)),it(n,o,l)}}else f=e?e("__proto__"==o?T:n[o],i,o+"",n,t,u):T,f===T&&(f=i),it(n,o,f)},Wu)}function Qt(n,t){var r=n.length;if(r)return t+=0>t?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),
4621n=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e<o;){var c=Wr(u[e],i[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=kt(n,o);r(f,o)&&lr(i,Sr(o,n),f)}return i}function rr(n){return function(t){return kt(t,n)}}function er(n,t,r,e){var u=e?g:v,i=-1,o=t.length,f=n;
4622for(n===t&&(t=Ur(t)),r&&(f=c(n,k(r)));++i<o;)for(var a=0,l=t[i],l=r?r(l):l;-1<(a=u(f,l,a,e));)f!==n&&bi.call(f,a,1),bi.call(n,a,1);return n}function ur(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;Se(u)?bi.call(n,u,1):xr(n,u)}}}function ir(n,t){return n+Oi(Mi()*(t-n+1))}function or(n,t){var r="";if(!n||1>t||9007199254740991<t)return r;do t%2&&(r+=n),(t=Oi(t/2))&&(n+=n);while(t);return r}function fr(n,t){return bo(Be(n,t,Tu),n+"")}function cr(n){return Qn(Lu(n))}function ar(n,t){
4623var r=Lu(n);return Ce(r,pt(t,0,r.length))}function lr(n,t,r,e){if(!gu(n))return n;t=Sr(t,n);for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++u<i;){var c=De(t[u]),a=r;if(u!=o){var l=f[c],a=e?e(l,c,f):T;a===T&&(a=gu(l)?l:Se(t[u+1])?[]:{})}ot(f,c,a),f=f[c]}return n}function sr(n){return Ce(Lu(n))}function hr(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e<u;)r[e]=n[e+t];return r}function pr(n,t){var r;return eo(n,function(n,e,u){return r=t(n,e,u),
4624!r}),!!r}function _r(n,t,r){var e=0,u=null==n?e:n.length;if(typeof t=="number"&&t===t&&2147483647>=u){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:o<t)?e=i+1:u=i}return u}return vr(n,t,Tu,r)}function vr(n,t,r,e){t=r(t);for(var u=0,i=null==n?0:n.length,o=t!==t,f=null===t,c=ju(t),a=t===T;u<i;){var l=Oi((u+i)/2),s=r(n[l]),h=s!==T,p=null===s,_=s===s,v=ju(s);(o?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?s<=t:s<t)?u=l+1:i=l}return Ui(i,4294967294)}function gr(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){
4625var o=n[r],f=t?t(o):o;if(!r||!au(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function dr(n){return typeof n=="number"?n:ju(n)?F:+n}function yr(n){if(typeof n=="string")return n;if(of(n))return c(n,yr)+"";if(ju(n))return to?to.call(n):"";var t=n+"";return"0"==t&&1/n==-$?"-0":t}function br(n,t,r){var e=-1,u=o,i=n.length,c=true,a=[],l=a;if(r)c=false,u=f;else if(200<=i){if(u=t?null:lo(n))return U(u);c=false,u=O,l=new Nn}else l=t?[]:a;n:for(;++e<i;){var s=n[e],h=t?t(s):s,s=r||0!==s?s:0;if(c&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;
4626t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function xr(n,t){return t=Sr(t,n),n=2>t.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););return r?hr(n,e?0:i,e?i+1:u):hr(n,e?i+1:0,e?u:i)}function wr(n,t){var r=n;return r instanceof Un&&(r=r.value()),l(t,function(n,t){return t.func.apply(t.thisArg,a([n],t.args))},r)}function mr(n,t,r){var e=n.length;if(2>e)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u<e;)for(var o=n[u],f=-1;++f<e;)f!=u&&(i[u]=yt(i[u]||o,n[f],t,r));
4627return br(wt(i,1),t,r)}function Ar(n,t,r){for(var e=-1,u=n.length,i=t.length,o={};++e<u;)r(o,n[e],e<i?t[e]:T);return o}function Er(n){return su(n)?n:[]}function kr(n){return typeof n=="function"?n:Tu}function Sr(n,t){return of(n)?n:Ie(n,t)?[n]:xo(Ou(n))}function Or(n,t,r){var e=n.length;return r=r===T?e:r,!t&&r>=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),
4628t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n<t||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Br(n,t,r,e){var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Li(i-o,0),l=Vu(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<o;)(e||u<i)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];
4629return l}function Lr(n,t,r,e){var u=-1,i=n.length,o=-1,f=r.length,c=-1,a=t.length,l=Li(i-f,0),s=Vu(l+a);for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++o<f;)(e||u<i)&&(s[l+r[o]]=n[u++]);return s}function Ur(n,t){var r=-1,e=n.length;for(t||(t=Vu(e));++r<e;)t[r]=n[r];return t}function Cr(n,t,r,e){var u=!r;r||(r={});for(var i=-1,o=t.length;++i<o;){var f=t[i],c=e?e(r[f],n[f],f,r,n):T;c===T&&(c=n[f]),u?st(r,f,c):ot(r,f,c)}return r}function Dr(n,t){return Cr(n,ho(n),t)}function Mr(n,t){return Cr(n,po(n),t);
4630}function Tr(n,r){return function(e,u){var i=of(e)?t:ct,o=r?r():{};return i(e,n,ye(u,2),o)}}function $r(n){return fr(function(t,r){var e=-1,u=r.length,i=1<u?r[u-1]:T,o=2<u?r[2]:T,i=3<n.length&&typeof i=="function"?(u--,i):T;for(o&&Oe(r[0],r[1],o)&&(i=3>u?T:i,u=1),t=Yu(t);++e<u;)(o=r[e])&&n(t,o,e,i);return t})}function Fr(n,t){return function(r,e){if(null==r)return r;if(!lu(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=Yu(r);(t?i--:++i<u)&&false!==e(o[i],i,o););return r}}function Nr(n){return function(t,r,e){
4631var u=-1,i=Yu(t);e=e(t);for(var o=e.length;o--;){var f=e[n?o:++u];if(false===r(i[f],f,i))break}return t}}function Pr(n,t,r){function e(){return(this&&this!==$n&&this instanceof e?i:n).apply(u?r:this,arguments)}var u=1&t,i=Vr(n);return e}function Zr(n){return function(t){t=Ou(t);var r=Rn.test(t)?M(t):T,e=r?r[0]:t.charAt(0);return t=r?Or(r,1).join(""):t.slice(1),e[n]()+t}}function qr(n){return function(t){return l(Du(Cu(t).replace(kn,"")),n,"")}}function Vr(n){return function(){var t=arguments;switch(t.length){
4632case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=ro(n.prototype),t=n.apply(r,t);return gu(t)?t:r}}function Kr(t,r,e){function u(){for(var o=arguments.length,f=Vu(o),c=o,a=de(u);c--;)f[c]=arguments[c];return c=3>o&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),
4633o-=c.length,o<e?ue(t,r,Jr,u.placeholder,T,f,c,T,T,e-o):n(this&&this!==$n&&this instanceof u?i:t,this,f)}var i=Vr(t);return u}function Gr(n){return function(t,r,e){var u=Yu(t);if(!lu(t)){var i=ye(r,3);t=zu(t),r=function(n){return i(u[n],n,u)}}return r=n(t,r,e),-1<r?u[i?t[r]:r]:T}}function Hr(n){return pe(function(t){var r=t.length,e=r,u=On.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if(typeof i!="function")throw new ni("Expected a function");if(u&&!o&&"wrapper"==ge(i))var o=new On([],true)}for(e=o?e:r;++e<r;)var i=t[e],u=ge(i),f="wrapper"==u?so(i):T,o=f&&Re(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?o[ge(f[0])].apply(o,f[3]):1==i.length&&Re(i)?o[u]():o.thru(i);
4634return function(){var n=arguments,e=n[0];if(o&&1==n.length&&of(e))return o.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function Jr(n,t,r,e,u,i,o,f,c,a){function l(){for(var d=arguments.length,y=Vu(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=de(l),b=y.length;for(x=0;b--;)y[b]===j&&++x}if(e&&(y=Br(y,e,u,_)),i&&(y=Lr(y,i,o,_)),d-=x,_&&d<a)return j=L(y,j),ue(n,t,Jr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[n]:n,d=y.length,f){x=y.length;for(var w=Ui(f.length,x),m=Ur(y);w--;){
4635var A=f[w];y[w]=Se(A,x)?m[A]:T}}else v&&1<d&&y.reverse();return s&&c<d&&(y.length=c),this&&this!==$n&&this instanceof l&&(b=g||Vr(b)),b.apply(j,y)}var s=128&t,h=1&t,p=2&t,_=24&t,v=512&t,g=p?T:Vr(n);return l}function Yr(n,t){return function(r,e){return Bt(r,n,t(e))}}function Qr(n,t){return function(r,e){var u;if(r===T&&e===T)return t;if(r!==T&&(u=r),e!==T){if(u===T)return e;typeof r=="string"||typeof e=="string"?(r=yr(r),e=yr(e)):(r=dr(r),e=dr(e)),u=n(r,e)}return u}}function Xr(t){return pe(function(r){
4636return r=c(r,k(ye())),fr(function(e){var u=this;return t(r,function(t){return n(t,u,e)})})})}function ne(n,t){t=t===T?" ":yr(t);var r=t.length;return 2>r?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++r];return n(h,o?e:this,s)}var o=1&r,f=Vr(t);return i}function re(n){return function(t,r,e){
4637e&&typeof e!="number"&&Oe(t,r,e)&&(r=e=T),t=mu(t),r===T?(r=t,t=0):r=mu(r),e=e===T?t<r?1:-1:mu(e);var u=-1;r=Li(Si((r-t)/(e||1)),0);for(var i=Vu(r);r--;)i[n?r:++u]=t,t+=e;return i}}function ee(n){return function(t,r){return typeof t=="string"&&typeof r=="string"||(t=ku(t),r=ku(r)),n(t,r)}}function ue(n,t,r,e,u,i,o,f,c,a){var l=8&t,s=l?o:T;o=l?T:o;var h=l?i:T;return i=l?T:i,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),u=[n,t,u,h,s,i,o,f,c,a],r=r.apply(T,u),Re(n)&&go(r,u),r.placeholder=e,Le(r,n,t)}function ie(n){
4638var t=Ju[n];return function(n,r){if(n=ku(n),r=null==r?0:Ui(Au(r),292)){var e=(Ou(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Ou(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function oe(n){return function(t){var r=_o(t);return"[object Map]"==r?W(t):"[object Set]"==r?C(t):E(t,n(t))}}function fe(n,t,r,e,u,i,o,f){var c=2&t;if(!c&&typeof n!="function")throw new ni("Expected a function");var a=e?e.length:0;if(a||(t&=-97,e=u=T),o=o===T?o:Li(Au(o),0),f=f===T?f:Au(f),a-=u?u.length:0,64&t){
4639var l=e,s=u;e=u=T}var h=c?T:so(n);return i=[n,t,r,e,u,l,s,i,o,f],h&&(r=i[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&i[7].length<=h[8]||384==n&&h[7].length<=h[8]&&8==r,131>t||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],
4640r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;
4641for(i.set(n,t),i.set(t,n);++c<f;){var s=n[c],p=t[c];if(e)var _=o?e(p,s,c,t,n,i):e(s,p,c,n,t,i);if(_!==T){if(_)continue;a=false;break}if(l){if(!h(t,function(n,t){if(!O(l,t)&&(s===n||u(s,n,r,e,i)))return l.push(t)})){a=false;break}}else if(s!==p&&!u(s,p,r,e,i)){a=false;break}}return i.delete(n),i.delete(t),a}function he(n,t,r,e,u,i,o){switch(r){case"[object DataView]":if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!i(new _i(n),new _i(t)))break;
4642return true;case"[object Boolean]":case"[object Date]":case"[object Number]":return au(+n,+t);case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var f=W;case"[object Set]":if(f||(f=U),n.size!=t.size&&!(1&e))break;return(r=o.get(n))?r==t:(e|=2,o.set(n,t),t=se(f(n),f(t),e,u,i,o),o.delete(n),t);case"[object Symbol]":if(no)return no.call(n)==no.call(t)}return false}function pe(n){return bo(Be(n,T,Pe),n+"")}function _e(n){
4643return St(n,zu,ho)}function ve(n){return St(n,Wu,po)}function ge(n){for(var t=n.name+"",r=Ki[t],e=ii.call(Ki,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function de(n){return(ii.call(An,"placeholder")?An:n).placeholder}function ye(){var n=An.iteratee||$u,n=n===$u?qt:n;return arguments.length?n(arguments[0],arguments[1]):n}function be(n,t){var r=n.__data__,e=typeof t;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t)?r[typeof t=="string"?"string":"hash"]:r.map;
4644}function xe(n){for(var t=zu(n),r=t.length;r--;){var e=t[r],u=n[e];t[r]=[e,u,u===u&&!gu(u)]}return t}function je(n,t){var r=null==n?T:n[t];return Ft(r)?r:T}function we(n,t,r){t=Sr(t,n);for(var e=-1,u=t.length,i=false;++e<u;){var o=De(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:(u=null==n?0:n.length,!!u&&vu(u)&&Se(o,u)&&(of(n)||uf(n)))}function me(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&&ii.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function Ae(n){
4645return typeof n.constructor!="function"||ze(n)?{}:ro(gi(n))}function Ee(n,t,r){var e=n.constructor;switch(t){case"[object ArrayBuffer]":return Rr(n);case"[object Boolean]":case"[object Date]":return new e(+n);case"[object DataView]":return t=r?Rr(n.buffer):n.buffer,new n.constructor(t,n.byteOffset,n.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":
4646case"[object Uint16Array]":case"[object Uint32Array]":return zr(n,r);case"[object Map]":return new e;case"[object Number]":case"[object String]":return new e(n);case"[object RegExp]":return t=new n.constructor(n.source,_n.exec(n)),t.lastIndex=n.lastIndex,t;case"[object Set]":return new e;case"[object Symbol]":return no?Yu(no.call(n)):{}}}function ke(n){return of(n)||uf(n)||!!(xi&&n&&n[xi])}function Se(n,t){var r=typeof n;return t=null==t?9007199254740991:t,!!t&&("number"==r||"symbol"!=r&&bn.test(n))&&-1<n&&0==n%1&&n<t;
4647}function Oe(n,t,r){if(!gu(r))return false;var e=typeof t;return!!("number"==e?lu(r)&&Se(t,r.length):"string"==e&&t in r)&&au(r[t],n)}function Ie(n,t){if(of(n))return false;var r=typeof n;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=n&&!ju(n))||(nn.test(n)||!X.test(n)||null!=t&&n in Yu(t))}function Re(n){var t=ge(n),r=An[t];return typeof r=="function"&&t in Un.prototype&&(n===r||(t=so(r),!!t&&n===t[0]))}function ze(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||ri)}function We(n,t){
4648return function(r){return null!=r&&(r[n]===t&&(t!==T||n in Yu(r)))}}function Be(t,r,e){return r=Li(r===T?t.length-1:r,0),function(){for(var u=arguments,i=-1,o=Li(u.length-r,0),f=Vu(o);++i<o;)f[i]=u[r+i];for(i=-1,o=Vu(r+1);++i<r;)o[i]=u[i];return o[r]=e(f),n(t,this,o)}}function Le(n,t,r){var e=t+"";t=bo;var u,i=Te;return u=(u=e.match(an))?u[1].split(ln):[],r=i(u,r),(i=r.length)&&(u=i-1,r[u]=(1<i?"& ":"")+r[u],r=r.join(2<i?", ":" "),e=e.replace(cn,"{\n/* [wrapped with "+r+"] */\n")),t(n,e)}function Ue(n){
4649var t=0,r=0;return function(){var e=Ci(),u=16-(e-r);if(r=e,0<u){if(800<=++t)return arguments[0]}else t=0;return n.apply(T,arguments)}}function Ce(n,t){var r=-1,e=n.length,u=e-1;for(t=t===T?e:t;++r<t;){var e=ir(r,u),i=n[e];n[e]=n[r],n[r]=i}return n.length=t,n}function De(n){if(typeof n=="string"||ju(n))return n;var t=n+"";return"0"==t&&1/n==-$?"-0":t}function Me(n){if(null!=n){try{return ui.call(n)}catch(n){}return n+""}return""}function Te(n,t){return r(N,function(r){var e="_."+r[0];t&r[1]&&!o(n,e)&&n.push(e);
4650}),n.sort()}function $e(n){if(n instanceof Un)return n.clone();var t=new On(n.__wrapped__,n.__chain__);return t.__actions__=Ur(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Fe(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Au(r),0>r&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){
4651return n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){
4652return t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!="function")throw new ni("Expected a function");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,
4653n}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),
4654s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ni("Expected a function");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Li(ku(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ni("Expected a function");
4655return r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!="function")throw new ni("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!bu(n);
4656}function pu(n){return!!gu(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function _u(n){return typeof n=="number"&&n==Au(n)}function vu(n){return typeof n=="number"&&-1<n&&0==n%1&&9007199254740991>=n}function gu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function du(n){return null!=n&&typeof n=="object"}function yu(n){return typeof n=="number"||du(n)&&"[object Number]"==Ot(n)}function bu(n){return!(!du(n)||"[object Object]"!=Ot(n))&&(n=gi(n),
4657null===n||(n=ii.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n=="string"||!of(n)&&du(n)&&"[object String]"==Ot(n)}function ju(n){return typeof n=="symbol"||du(n)&&"[object Symbol]"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),("[object Map]"==t?W:"[object Set]"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),
4658n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n=="number")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=gu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?"":yr(n);
4659}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));
4660}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,"")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n=="function"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&"chain"in e&&!e.chain),f=pu(n);return r(i,function(r){
4661var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn["__core-js_shared__"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){
4662var n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu("^"+ui.call(ii).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,"defineProperty");
4663return n({},"",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,"DataView"),Fi=je(mn,"Map"),Ni=je(mn,"Promise"),Pi=je(mn,"Set"),Zi=je(mn,"WeakMap"),qi=je(Yu,"create"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){
4664function n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],
4665this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),
4666--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1<ft(this.__data__,n)},Tn.prototype.set=function(n,t){var r=this.__data__,e=ft(r,n);return 0>e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);
4667},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){
4668return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,"toString",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){
4669return $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&"[object DataView]"!=_o(new $i(new ArrayBuffer(1)))||Fi&&"[object Map]"!=_o(new Fi)||Ni&&"[object Promise]"!=_o(Ni.resolve())||Pi&&"[object Set]"!=_o(new Pi)||Zi&&"[object WeakMap]"!=_o(new Zi))&&(_o=function(n){
4670var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Me(n):"")switch(n){case Gi:return"[object DataView]";case Hi:return"[object Map]";case Ji:return"[object Promise]";case Yi:return"[object Set]";case Qi:return"[object WeakMap]"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){
4671t.push(e?u.replace(hn,"$1"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(),
4672r.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),
4673mr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1<t?n[t-1]:T,t=typeof t=="function"?(n.pop(),t):T;return He(n,t)}),Mo=pe(function(n){function t(t){return ht(t,n)}var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return!(1<r||this.__actions__.length)&&u instanceof Un&&Se(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:Ye,args:[t],thisArg:T}),new On(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(T),
4674n})):this.thru(t)}),To=Tr(function(n,t,r){ii.call(n,r)?++n[r]:st(n,r,1)}),$o=Gr(Fe),Fo=Gr(Ne),No=Tr(function(n,t,r){ii.call(n,r)?n[r].push(t):st(n,r,[t])}),Po=fr(function(t,r,e){var u=-1,i=typeof r=="function",o=lu(t)?Vu(t.length):[];return eo(t,function(t){o[++u]=i?n(r,t,e):Lt(t,r,e)}),o}),Zo=Tr(function(n,t,r){st(n,r,t)}),qo=Tr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Vo=fr(function(n,t){if(null==n)return[];var r=t.length;return 1<r&&Oe(n,t[0],t[1])?t=[]:2<r&&Oe(t[0],t[1],t[2])&&(t=[t[0]]),
4675Xt(n,wt(t,1),[])}),Ko=Ei||function(){return $n.Date.now()},Go=fr(function(n,t,r){var e=1;if(r.length)var u=L(r,de(Go)),e=32|e;return fe(n,e,t,r,u)}),Ho=fr(function(n,t,r){var e=3;if(r.length)var u=L(r,de(Ho)),e=32|e;return fe(t,e,n,r,u)}),Jo=fr(function(n,t){return dt(n,1,t)}),Yo=fr(function(n,t,r){return dt(n,ku(t)||0,r)});fu.Cache=Fn;var Qo=fr(function(t,r){r=1==r.length&&of(r[0])?c(r[0],k(ye())):c(wt(r,1),k(ye()));var e=r.length;return fr(function(u){for(var i=-1,o=Ui(u.length,e);++i<o;)u[i]=r[i].call(this,u[i]);
4676return n(t,this,u)})}),Xo=fr(function(n,t){return fe(n,32,T,t,L(t,de(Xo)))}),nf=fr(function(n,t){return fe(n,64,T,t,L(t,de(nf)))}),tf=pe(function(n,t){return fe(n,256,T,T,T,t)}),rf=ee(It),ef=ee(function(n,t){return n>=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,"callee")&&!yi.call(n,"callee")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){
4677if(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2<e?t[2]:T;for(u&&Oe(t[0],t[1],u)&&(e=1);++r<e;)for(var u=t[r],i=Wu(u),o=-1,f=i.length;++o<f;){var c=i[o],a=n[c];(a===T||au(a,ri[c])&&!ii.call(n,c))&&(n[c]=u[c])}return n}),wf=fr(function(t){return t.push(T,ae),n(Sf,T,t)}),mf=Yr(function(n,t,r){
4678null!=t&&typeof t.toString!="function"&&(t=ci.call(t)),n[t]=r},Mu(Tu)),Af=Yr(function(n,t,r){null!=t&&typeof t.toString!="function"&&(t=ci.call(t)),ii.call(n,t)?n[t].push(r):n[t]=[r]},ye),Ef=fr(Lt),kf=$r(function(n,t,r){Yt(n,t,r)}),Sf=$r(function(n,t,r,e){Yt(n,t,r,e)}),Of=pe(function(n,t){var r={};if(null==n)return r;var e=false;t=c(t,function(t){return t=Sr(t,n),e||(e=1<t.length),t}),Cr(n,ve(n),r),e&&(r=_t(r,7,le));for(var u=t.length;u--;)xr(r,t[u]);return r}),If=pe(function(n,t){return null==n?{}:nr(n,t);
4679}),Rf=oe(zu),zf=oe(Wu),Wf=qr(function(n,t,r){return t=t.toLowerCase(),n+(r?Uu(t):t)}),Bf=qr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Lf=qr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Uf=Zr("toLowerCase"),Cf=qr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),Df=qr(function(n,t,r){return n+(r?" ":"")+Tf(t)}),Mf=qr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Tf=Zr("toUpperCase"),$f=fr(function(t,r){try{return n(t,T,r)}catch(n){return hu(n)?n:new Gu(n)}}),Ff=pe(function(n,t){
4680return r(t,function(t){t=De(t),st(n,t,Go(n[t],n))}),n}),Nf=Hr(),Pf=Hr(true),Zf=fr(function(n,t){return function(r){return Lt(r,n,t)}}),qf=fr(function(n,t){return function(r){return Lt(n,r,t)}}),Vf=Xr(c),Kf=Xr(u),Gf=Xr(h),Hf=re(),Jf=re(true),Yf=Qr(function(n,t){return n+t},0),Qf=ie("ceil"),Xf=Qr(function(n,t){return n/t},1),nc=ie("floor"),tc=Qr(function(n,t){return n*t},1),rc=ie("round"),ec=Qr(function(n,t){return n-t},0);return An.after=function(n,t){if(typeof t!="function")throw new ni("Expected a function");
4681return n=Au(n),function(){if(1>--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));e<r;)i[u++]=hr(n,e,e+=t);return i},An.compact=function(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){
4682var i=n[t];i&&(u[e++]=i)}return u},An.concat=function(){var n=arguments.length;if(!n)return[];for(var t=Vu(n-1),r=arguments[0];n--;)t[n-1]=arguments[n];return a(of(r)?Ur(r):[r],wt(t,1))},An.cond=function(t){var r=null==t?0:t.length,e=ye();return t=r?c(t,function(n){if("function"!=typeof n[1])throw new ni("Expected a function");return[e(n[0]),n[1]]}):[],fr(function(e){for(var u=-1;++u<r;){var i=t[u];if(n(i[0],this,e))return n(i[1],this,e)}})},An.conforms=function(n){return vt(_t(n,1))},An.constant=Mu,
4683An.countBy=To,An.create=function(n,t){var r=ro(n);return null==t?r:at(r,t)},An.curry=uu,An.curryRight=iu,An.debounce=ou,An.defaults=jf,An.defaultsDeep=wf,An.defer=Jo,An.delay=Yo,An.difference=jo,An.differenceBy=wo,An.differenceWith=mo,An.drop=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),hr(n,0>t?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];
4684},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r<e;)n[r++]=t;return n},An.filter=function(n,t){return(of(n)?i:jt)(n,ye(t,3))},An.flatMap=function(n,t){return wt(tu(n,t),1)},An.flatMapDeep=function(n,t){return wt(tu(n,t),$)},An.flatMapDepth=function(n,t,r){return r=r===T?1:Au(r),
4685wt(tu(n,t),r)},An.flatten=Pe,An.flattenDeep=function(n){return(null==n?0:n.length)?wt(n,$):[]},An.flattenDepth=function(n,t){return null!=n&&n.length?(t=t===T?1:Au(t),wt(n,t)):[]},An.flip=function(n){return fe(n,512)},An.flow=Nf,An.flowRight=Pf,An.fromPairs=function(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},An.functions=function(n){return null==n?[]:Et(n,zu(n))},An.functionsIn=function(n){return null==n?[]:Et(n,Wu(n))},An.groupBy=No,An.initial=function(n){
4686return(null==n?0:n.length)?hr(n,0,-1):[]},An.intersection=Ao,An.intersectionBy=Eo,An.intersectionWith=ko,An.invert=mf,An.invertBy=Af,An.invokeMap=Po,An.iteratee=$u,An.keyBy=Zo,An.keys=zu,An.keysIn=Wu,An.map=tu,An.mapKeys=function(n,t){var r={};return t=ye(t,3),mt(n,function(n,e,u){st(r,t(n,e,u),n)}),r},An.mapValues=function(n,t){var r={};return t=ye(t,3),mt(n,function(n,e,u){st(r,e,t(n,e,u))}),r},An.matches=function(n){return Ht(_t(n,1))},An.matchesProperty=function(n,t){return Jt(n,_t(t,1))},An.memoize=fu,
4687An.merge=kf,An.mergeWith=Sf,An.method=Zf,An.methodOf=qf,An.mixin=Fu,An.negate=cu,An.nthArg=function(n){return n=Au(n),fr(function(t){return Qt(t,n)})},An.omit=Of,An.omitBy=function(n,t){return Bu(n,cu(ye(t)))},An.once=function(n){return eu(2,n)},An.orderBy=function(n,t,r,e){return null==n?[]:(of(t)||(t=null==t?[]:[t]),r=e?T:r,of(r)||(r=null==r?[]:[r]),Xt(n,t,r))},An.over=Vf,An.overArgs=Qo,An.overEvery=Kf,An.overSome=Gf,An.partial=Xo,An.partialRight=nf,An.partition=qo,An.pick=If,An.pickBy=Bu,An.property=Pu,
4688An.propertyOf=function(n){return function(t){return null==n?T:kt(n,t)}},An.pull=So,An.pullAll=Ve,An.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?er(n,t,ye(r,2)):n},An.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?er(n,t,T,r):n},An.pullAt=Oo,An.range=Hf,An.rangeRight=Jf,An.rearg=tf,An.reject=function(n,t){return(of(n)?i:jt)(n,cu(ye(t,3)))},An.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=ye(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),
4689u.push(e))}return ur(n,u),r},An.rest=function(n,t){if(typeof n!="function")throw new ni("Expected a function");return t=t===T?t:Au(t),fr(n,t)},An.reverse=Ke,An.sampleSize=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),(of(n)?et:ar)(n,t)},An.set=function(n,t,r){return null==n?n:lr(n,t,r)},An.setWith=function(n,t,r,e){return e=typeof e=="function"?e:T,null==n?n:lr(n,t,r,e)},An.shuffle=function(n){return(of(n)?ut:sr)(n)},An.slice=function(n,t,r){var e=null==n?0:n.length;return e?(r&&typeof r!="number"&&Oe(n,t,r)?(t=0,
4690r=e):(t=null==t?0:Au(t),r=r===T?e:Au(r)),hr(n,t,r)):[]},An.sortBy=Vo,An.sortedUniq=function(n){return n&&n.length?gr(n):[]},An.sortedUniqBy=function(n,t){return n&&n.length?gr(n,ye(t,2)):[]},An.split=function(n,t,r){return r&&typeof r!="number"&&Oe(n,t,r)&&(t=r=T),r=r===T?4294967295:r>>>0,r?(n=Ou(n))&&(typeof t=="string"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ni("Expected a function");return r=null==r?0:Li(Au(r),0),
4691fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),
4692n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ni("Expected a function");return gu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};
4693}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){
4694return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,
4695An.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){
4696n=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);
4697},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1<n.indexOf(t,r):!!e&&-1<v(n,t,r);
4698},An.indexOf=function(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Au(r),0>r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n<Li(t,r)},An.invoke=Ef,An.isArguments=uf,An.isArray=of,An.isArrayBuffer=ff,An.isArrayLike=lu,An.isArrayLikeObject=su,An.isBoolean=function(n){return true===n||false===n||du(n)&&"[object Boolean]"==Ot(n)},An.isBuffer=cf,An.isDate=af,An.isElement=function(n){return du(n)&&1===n.nodeType&&!bu(n)},An.isEmpty=function(n){
4699if(null==n)return true;if(lu(n)&&(of(n)||typeof n=="string"||typeof n.splice=="function"||cf(n)||pf(n)||uf(n)))return!n.length;var t=_o(n);if("[object Map]"==t||"[object Set]"==t)return!n.size;if(ze(n))return!Vt(n).length;for(var r in n)if(ii.call(n,r))return false;return true},An.isEqual=function(n,t){return Mt(n,t)},An.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:T)?r(n,t):T;return e===T?Mt(n,t,T,r):!!e},An.isError=hu,An.isFinite=function(n){return typeof n=="number"&&zi(n)},An.isFunction=pu,
4700An.isInteger=_u,An.isLength=vu,An.isMap=lf,An.isMatch=function(n,t){return n===t||$t(n,t,xe(t))},An.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:T,$t(n,t,xe(t),r)},An.isNaN=function(n){return yu(n)&&n!=+n},An.isNative=function(n){if(vo(n))throw new Gu("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ft(n)},An.isNil=function(n){return null==n},An.isNull=function(n){return null===n},An.isNumber=yu,An.isObject=gu,An.isObjectLike=du,An.isPlainObject=bu,An.isRegExp=sf,
4701An.isSafeInteger=function(n){return _u(n)&&-9007199254740991<=n&&9007199254740991>=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&"[object WeakMap]"==_o(n)},An.isWeakSet=function(n){return du(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),
4702t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){
4703return""},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&e<t?n+ne(t-e,r):n},An.padStart=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&e<t?ne(t-e,r)+n:n},An.parseInt=function(n,t,r){
4704return r||null==t?t=0:t&&(t=+t),Di(Ou(n).replace(on,""),t||0)},An.random=function(n,t,r){if(r&&typeof r!="boolean"&&Oe(n,t,r)&&(t=r=T),r===T&&(typeof t=="boolean"?(r=t,t=T):typeof n=="boolean"&&(r=n,n=T)),n===T&&t===T?(n=0,t=1):(n=mu(n),t===T?(t=n,n=0):t=mu(t)),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;
4705return e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++e<u;){var i=null==n?T:n[De(t[e])];i===T&&(e=u,i=r),n=pu(i)?i.call(n):i}return n},An.round=rc,An.runInContext=x,An.sample=function(n){return(of(n)?Qn:cr)(n)},An.size=function(n){if(null==n)return 0;if(lu(n))return xu(n)?D(n):n.length;
4706var t=_o(n);return"[object Map]"==t||"[object Set]"==t?n.size:Vt(n).length},An.snakeCase=Cf,An.some=function(n,t,r){var e=of(n)?h:pr;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.sortedIndex=function(n,t){return _r(n,t)},An.sortedIndexBy=function(n,t,r){return vr(n,t,ye(r,2))},An.sortedIndexOf=function(n,t){var r=null==n?0:n.length;if(r){var e=_r(n,t);if(e<r&&au(n[e],t))return e}return-1},An.sortedLastIndex=function(n,t){return _r(n,t,true)},An.sortedLastIndexBy=function(n,t,r){return vr(n,t,ye(r,2),true);
4707},An.sortedLastIndexOf=function(n,t){if(null==n?0:n.length){var r=_r(n,t,true)-1;if(au(n[r],t))return r}return-1},An.startCase=Df,An.startsWith=function(n,t,r){return n=Ou(n),r=null==r?0:pt(Au(r),0,n.length),t=yr(t),n.slice(r,r+t.length)==t},An.subtract=ec,An.sum=function(n){return n&&n.length?m(n,Tu):0},An.sumBy=function(n,t){return n&&n.length?m(n,ye(t,2)):0},An.template=function(n,t,r){var e=An.templateSettings;r&&Oe(n,t,r)&&(t=T),n=Ou(n),t=yf({},t,e,ce),r=yf({},t.imports,e.imports,ce);var u,i,o=zu(r),f=S(r,o),c=0;
4708r=t.interpolate||jn;var a="__p+='";r=Qu((t.escape||jn).source+"|"+r.source+"|"+(r===Q?pn:jn).source+"|"+(t.evaluate||jn).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,o,f,l){return e||(e=o),a+=n.slice(c,l).replace(wn,z),r&&(u=true,a+="'+__e("+r+")+'"),f&&(i=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(i?a.replace(P,""):a).replace(Z,"$1").replace(q,"$1;"),
4709a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=$f(function(){return Hu(o,l+"return "+a).apply(T,f)}),t.source=a,hu(t))throw t;return t},An.times=function(n,t){if(n=Au(n),1>n||9007199254740991<n)return[];var r=4294967295,e=Ui(n,4294967295);for(t=ye(t),n-=4294967295,e=A(e,t);++r<n;)t(r);return e},An.toFinite=mu,An.toInteger=Au,An.toLength=Eu,An.toLower=function(n){
4710return Ou(n).toLowerCase()},An.toNumber=ku,An.toSafeInteger=function(n){return n?pt(Au(n),-9007199254740991,9007199254740991):0===n?n:0},An.toString=Ou,An.toUpper=function(n){return Ou(n).toUpperCase()},An.trim=function(n,t,r){return(n=Ou(n))&&(r||t===T)?n.replace(un,""):n&&(t=yr(t))?(n=M(n),r=M(t),t=I(n,r),r=R(n,r)+1,Or(n,t,r).join("")):n},An.trimEnd=function(n,t,r){return(n=Ou(n))&&(r||t===T)?n.replace(fn,""):n&&(t=yr(t))?(n=M(n),t=R(n,M(t))+1,Or(n,0,t).join("")):n},An.trimStart=function(n,t,r){
4711return(n=Ou(n))&&(r||t===T)?n.replace(on,""):n&&(t=yr(t))?(n=M(n),t=I(n,M(t)),Or(n,t).join("")):n},An.truncate=function(n,t){var r=30,e="...";if(gu(t))var u="separator"in t?t.separator:u,r="length"in t?Au(t.length):r,e="omission"in t?yr(t.omission):e;n=Ou(n);var i=n.length;if(Rn.test(n))var o=M(n),i=o.length;if(r>=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+"g")),
4712u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},An.unescape=function(n){return(n=Ou(n))&&G.test(n)?n.replace(V,tt):n},An.uniqueId=function(n){var t=++oi;return Ou(n)+t},An.upperCase=Mf,An.upperFirst=Tf,An.each=Xe,An.eachRight=nu,An.first=Ze,Fu(An,function(){var n={};return mt(An,function(t,r){ii.call(An.prototype,r)||(n[r]=t)}),n}(),{chain:false}),An.VERSION="4.17.10",r("bind bindKey curry curryRight partial partialRight".split(" "),function(n){
4713An[n].placeholder=An}),r(["drop","take"],function(n,t){Un.prototype[n]=function(r){r=r===T?1:Li(Au(r),0);var e=this.__filtered__&&!t?new Un(this):this.clone();return e.__filtered__?e.__takeCount__=Ui(r,e.__takeCount__):e.__views__.push({size:Ui(r,4294967295),type:n+(0>e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({
4714iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);
4715},Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0<n||0>t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);
4716},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({
4717func:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+"";
4718(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;
4719},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c<a;){var l=o[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=Ui(n,f+s);break;case"takeRight":f=Li(f,n-s)}}if(n={start:f,end:n},o=n.start,f=n.end,n=f-o,o=u?f:o-1,f=this.__iteratees__,c=f.length,a=0,l=Ui(n,this.__takeCount__),!e||!u&&i==n&&l==n)return wr(t,this.__actions__);e=[];n:for(;n--&&a<l;){for(o+=r,
4720u=-1,i=t[o];++u<c;){var h=f[u],s=h.type,h=(0,h.iteratee)(i);if(2==s)i=h;else if(!h){if(1==s)continue n;break n}}e[a++]=i}return e},An.prototype.at=Mo,An.prototype.chain=function(){return Je(this)},An.prototype.commit=function(){return new On(this.value(),this.__chain__)},An.prototype.next=function(){this.__values__===T&&(this.__values__=wu(this.value()));var n=this.__index__>=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){
4721var e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),
4722An}(); true?($n._=rt, !(__WEBPACK_AMD_DEFINE_RESULT__ = function(){return rt}.call(exports, __webpack_require__, exports, module),
4723 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);
4724
4725/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(16)(module)))
4726
4727/***/ }),
4728/* 2 */
4729/***/ (function(module, exports) {
4730
4731var g;
4732
4733// This works in non-strict mode
4734g = (function() {
4735 return this;
4736})();
4737
4738try {
4739 // This works if eval is allowed (see CSP)
4740 g = g || Function("return this")() || (1,eval)("this");
4741} catch(e) {
4742 // This works if the window reference is available
4743 if(typeof window === "object")
4744 g = window;
4745}
4746
4747// g can still be undefined, but nothing to do about it...
4748// We return undefined, instead of nothing here, so it's
4749// easier to handle this case. if(!global) { ...}
4750
4751module.exports = g;
4752
4753
4754/***/ }),
4755/* 3 */
4756/***/ (function(module, exports) {
4757
4758// shim for using process in browser
4759var process = module.exports = {};
4760
4761// cached from whatever global is present so that test runners that stub it
4762// don't break things. But we need to wrap it in a try catch in case it is
4763// wrapped in strict mode code which doesn't define any globals. It's inside a
4764// function because try/catches deoptimize in certain engines.
4765
4766var cachedSetTimeout;
4767var cachedClearTimeout;
4768
4769function defaultSetTimout() {
4770 throw new Error('setTimeout has not been defined');
4771}
4772function defaultClearTimeout () {
4773 throw new Error('clearTimeout has not been defined');
4774}
4775(function () {
4776 try {
4777 if (typeof setTimeout === 'function') {
4778 cachedSetTimeout = setTimeout;
4779 } else {
4780 cachedSetTimeout = defaultSetTimout;
4781 }
4782 } catch (e) {
4783 cachedSetTimeout = defaultSetTimout;
4784 }
4785 try {
4786 if (typeof clearTimeout === 'function') {
4787 cachedClearTimeout = clearTimeout;
4788 } else {
4789 cachedClearTimeout = defaultClearTimeout;
4790 }
4791 } catch (e) {
4792 cachedClearTimeout = defaultClearTimeout;
4793 }
4794} ())
4795function runTimeout(fun) {
4796 if (cachedSetTimeout === setTimeout) {
4797 //normal enviroments in sane situations
4798 return setTimeout(fun, 0);
4799 }
4800 // if setTimeout wasn't available but was latter defined
4801 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
4802 cachedSetTimeout = setTimeout;
4803 return setTimeout(fun, 0);
4804 }
4805 try {
4806 // when when somebody has screwed with setTimeout but no I.E. maddness
4807 return cachedSetTimeout(fun, 0);
4808 } catch(e){
4809 try {
4810 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
4811 return cachedSetTimeout.call(null, fun, 0);
4812 } catch(e){
4813 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
4814 return cachedSetTimeout.call(this, fun, 0);
4815 }
4816 }
4817
4818
4819}
4820function runClearTimeout(marker) {
4821 if (cachedClearTimeout === clearTimeout) {
4822 //normal enviroments in sane situations
4823 return clearTimeout(marker);
4824 }
4825 // if clearTimeout wasn't available but was latter defined
4826 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
4827 cachedClearTimeout = clearTimeout;
4828 return clearTimeout(marker);
4829 }
4830 try {
4831 // when when somebody has screwed with setTimeout but no I.E. maddness
4832 return cachedClearTimeout(marker);
4833 } catch (e){
4834 try {
4835 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
4836 return cachedClearTimeout.call(null, marker);
4837 } catch (e){
4838 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
4839 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
4840 return cachedClearTimeout.call(this, marker);
4841 }
4842 }
4843
4844
4845
4846}
4847var queue = [];
4848var draining = false;
4849var currentQueue;
4850var queueIndex = -1;
4851
4852function cleanUpNextTick() {
4853 if (!draining || !currentQueue) {
4854 return;
4855 }
4856 draining = false;
4857 if (currentQueue.length) {
4858 queue = currentQueue.concat(queue);
4859 } else {
4860 queueIndex = -1;
4861 }
4862 if (queue.length) {
4863 drainQueue();
4864 }
4865}
4866
4867function drainQueue() {
4868 if (draining) {
4869 return;
4870 }
4871 var timeout = runTimeout(cleanUpNextTick);
4872 draining = true;
4873
4874 var len = queue.length;
4875 while(len) {
4876 currentQueue = queue;
4877 queue = [];
4878 while (++queueIndex < len) {
4879 if (currentQueue) {
4880 currentQueue[queueIndex].run();
4881 }
4882 }
4883 queueIndex = -1;
4884 len = queue.length;
4885 }
4886 currentQueue = null;
4887 draining = false;
4888 runClearTimeout(timeout);
4889}
4890
4891process.nextTick = function (fun) {
4892 var args = new Array(arguments.length - 1);
4893 if (arguments.length > 1) {
4894 for (var i = 1; i < arguments.length; i++) {
4895 args[i - 1] = arguments[i];
4896 }
4897 }
4898 queue.push(new Item(fun, args));
4899 if (queue.length === 1 && !draining) {
4900 runTimeout(drainQueue);
4901 }
4902};
4903
4904// v8 likes predictible objects
4905function Item(fun, array) {
4906 this.fun = fun;
4907 this.array = array;
4908}
4909Item.prototype.run = function () {
4910 this.fun.apply(null, this.array);
4911};
4912process.title = 'browser';
4913process.browser = true;
4914process.env = {};
4915process.argv = [];
4916process.version = ''; // empty string to avoid regexp issues
4917process.versions = {};
4918
4919function noop() {}
4920
4921process.on = noop;
4922process.addListener = noop;
4923process.once = noop;
4924process.off = noop;
4925process.removeListener = noop;
4926process.removeAllListeners = noop;
4927process.emit = noop;
4928process.prependListener = noop;
4929process.prependOnceListener = noop;
4930
4931process.listeners = function (name) { return [] }
4932
4933process.binding = function (name) {
4934 throw new Error('process.binding is not supported');
4935};
4936
4937process.cwd = function () { return '/' };
4938process.chdir = function (dir) {
4939 throw new Error('process.chdir is not supported');
4940};
4941process.umask = function() { return 0; };
4942
4943
4944/***/ }),
4945/* 4 */
4946/***/ (function(module, exports, __webpack_require__) {
4947
4948"use strict";
4949
4950
4951Object.defineProperty(exports, "__esModule", {
4952 value: true
4953});
4954exports.CraftAiUnknownError = exports.CraftAiLongRequestTimeOutError = exports.CraftAiTimeError = exports.CraftAiNullDecisionError = exports.CraftAiNetworkError = exports.CraftAiInternalError = exports.CraftAiError = exports.CraftAiDecisionError = exports.CraftAiCredentialsError = exports.CraftAiBadRequestError = undefined;
4955
4956var _lodash = __webpack_require__(1);
4957
4958var _lodash2 = _interopRequireDefault(_lodash);
4959
4960var _inherits = __webpack_require__(5);
4961
4962var _inherits2 = _interopRequireDefault(_inherits);
4963
4964function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4965
4966function CraftAiError(message, extraProperties) {
4967 var _this = this;
4968
4969 if (typeof Error.captureStackTrace === 'function') {
4970 Error.captureStackTrace(this, this.constructor);
4971 } else {
4972 this.stack = new Error().stack || 'Cannot get a stacktrace, browser is too old';
4973 }
4974
4975 this.name = this.constructor.name;
4976 this.message = message || 'Unknown error';
4977
4978 if (extraProperties) {
4979 _lodash2.default.forEach(extraProperties, function (value, key) {
4980 _this[key] = value;
4981 });
4982 }
4983}
4984
4985(0, _inherits2.default)(CraftAiError, Error);
4986
4987function createCustomError(name, message) {
4988 function CraftAiCustomError() {
4989 var args = Array.prototype.slice.call(arguments, 0);
4990
4991 // custom message not set, use default
4992 if (typeof args[0] !== 'string') {
4993 args.unshift(message);
4994 }
4995
4996 CraftAiError.apply(this, args);
4997 this.name = name;
4998 }
4999
5000 (0, _inherits2.default)(CraftAiCustomError, CraftAiError);
5001
5002 return CraftAiCustomError;
5003}
5004
5005var CraftAiUnknownError = createCustomError('CraftAiUnknownError', 'Unknown error occured');
5006
5007var CraftAiNetworkError = createCustomError('CraftAiNetworkError', 'Network issue, see err.more for details');
5008
5009var CraftAiCredentialsError = createCustomError('CraftAiCredentialsError', 'Credentials error, make sure the given token is valid');
5010
5011var CraftAiInternalError = createCustomError('CraftAiInternalError', 'Internal Error, see err.more for details');
5012
5013var CraftAiBadRequestError = createCustomError('CraftAiBadRequestError', 'Bad Request, see err.more for details');
5014
5015var CraftAiDecisionError = createCustomError('CraftAiDecisionError', 'Error while taking a decision, see err.metadata for details');
5016
5017var CraftAiNullDecisionError = createCustomError('CraftAiNullDecisionError', 'Taken decision is null, see err.metadata for details');
5018
5019var CraftAiTimeError = createCustomError('CraftAiTimeError', 'Time error, see err.more for details');
5020
5021var CraftAiLongRequestTimeOutError = createCustomError('CraftAiLongRequestTimeOutError', 'Request timed out because the computation is not finished, please try again');
5022
5023exports.CraftAiBadRequestError = CraftAiBadRequestError;
5024exports.CraftAiCredentialsError = CraftAiCredentialsError;
5025exports.CraftAiDecisionError = CraftAiDecisionError;
5026exports.CraftAiError = CraftAiError;
5027exports.CraftAiInternalError = CraftAiInternalError;
5028exports.CraftAiNetworkError = CraftAiNetworkError;
5029exports.CraftAiNullDecisionError = CraftAiNullDecisionError;
5030exports.CraftAiTimeError = CraftAiTimeError;
5031exports.CraftAiLongRequestTimeOutError = CraftAiLongRequestTimeOutError;
5032exports.CraftAiUnknownError = CraftAiUnknownError;
5033
5034/***/ }),
5035/* 5 */
5036/***/ (function(module, exports) {
5037
5038if (typeof Object.create === 'function') {
5039 // implementation from standard node.js 'util' module
5040 module.exports = function inherits(ctor, superCtor) {
5041 ctor.super_ = superCtor
5042 ctor.prototype = Object.create(superCtor.prototype, {
5043 constructor: {
5044 value: ctor,
5045 enumerable: false,
5046 writable: true,
5047 configurable: true
5048 }
5049 });
5050 };
5051} else {
5052 // old school shim for old browsers
5053 module.exports = function inherits(ctor, superCtor) {
5054 ctor.super_ = superCtor
5055 var TempCtor = function () {}
5056 TempCtor.prototype = superCtor.prototype
5057 ctor.prototype = new TempCtor()
5058 ctor.prototype.constructor = ctor
5059 }
5060}
5061
5062
5063/***/ }),
5064/* 6 */
5065/***/ (function(module, exports, __webpack_require__) {
5066
5067"use strict";
5068
5069
5070Object.defineProperty(exports, "__esModule", {
5071 value: true
5072});
5073exports.deprecation = exports.OPERATORS = exports.GENERATED_TIME_TYPES = exports.TYPE_ANY = exports.TYPES = exports.AGENT_ID_ALLOWED_REGEXP = exports.AGENT_ID_MAX_LENGTH = exports.IN_BROWSER = exports.DEFAULT_DECISION_TREE_VERSION = undefined;
5074
5075var _lodash = __webpack_require__(1);
5076
5077var _lodash2 = _interopRequireDefault(_lodash);
5078
5079function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5080
5081var DEFAULT_DECISION_TREE_VERSION = exports.DEFAULT_DECISION_TREE_VERSION = '1';
5082
5083var IN_BROWSER = exports.IN_BROWSER = typeof window !== 'undefined';
5084
5085var AGENT_ID_MAX_LENGTH = exports.AGENT_ID_MAX_LENGTH = 36;
5086var AGENT_ID_ALLOWED_REGEXP = exports.AGENT_ID_ALLOWED_REGEXP = /^([a-z0-9_-]){1,36}$/i;
5087
5088var TYPES = exports.TYPES = {
5089 continuous: 'continuous',
5090 enum: 'enum',
5091 timezone: 'timezone',
5092 time_of_day: 'time_of_day',
5093 day_of_week: 'day_of_week',
5094 day_of_month: 'day_of_month',
5095 month_of_year: 'month_of_year'
5096};
5097
5098var TYPE_ANY = exports.TYPE_ANY = 'any';
5099
5100var GENERATED_TIME_TYPES = exports.GENERATED_TIME_TYPES = [TYPES.time_of_day, TYPES.day_of_week, TYPES.day_of_month, TYPES.month_of_year];
5101
5102var OPERATORS = exports.OPERATORS = {
5103 IS: 'is',
5104 IN: '[in[',
5105 GTE: '>=',
5106 LT: '<'
5107};
5108
5109var deprecation = exports.deprecation = _lodash2.default.memoize(function (oldFunction, newFunction) {
5110 return console.warn('DEPRECATION WARNING: the \'' + oldFunction + '\' function of the craft ai client is deprecated. It will be removed in the future, \'' + newFunction + '\' should be used instead.');
5111});
5112
5113/***/ }),
5114/* 7 */
5115/***/ (function(module, exports, __webpack_require__) {
5116
5117"use strict";
5118
5119
5120Object.defineProperty(exports, "__esModule", {
5121 value: true
5122});
5123exports.tzFromOffset = tzFromOffset;
5124exports.default = Time;
5125
5126var _lodash = __webpack_require__(1);
5127
5128var _lodash2 = _interopRequireDefault(_lodash);
5129
5130var _errors = __webpack_require__(4);
5131
5132var _moment = __webpack_require__(0);
5133
5134var _moment2 = _interopRequireDefault(_moment);
5135
5136var _timezones = __webpack_require__(15);
5137
5138var _timezones2 = _interopRequireDefault(_timezones);
5139
5140function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5141
5142// From 'moment/src/lib/parse/regex.js'
5143var OFFSET_REGEX = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
5144
5145function tzFromOffset(offset) {
5146 if (_lodash2.default.isInteger(offset)) {
5147 var sign = offset >= 0 ? '+' : '-';
5148 var abs = Math.abs(offset);
5149 // If the offset belongs to [-15, 15] it is considered to represent hours
5150 // This reproduces Moment's utcOffset behaviour.
5151 if (abs < 16) return '' + sign + _lodash2.default.padStart(abs, 2, '0') + ':00';
5152 return '' + sign + _lodash2.default.padStart(Math.floor(abs / 60), 2, '0') + ':' + _lodash2.default.padStart(abs % 60, 2, '0');
5153 } else {
5154 return offset;
5155 }
5156}
5157
5158function Time() {
5159 var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
5160 var tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
5161
5162 // Make sure it works with or without new.
5163 if (!(this instanceof Time)) {
5164 return new Time(t, tz);
5165 }
5166
5167 var m = void 0;
5168 if (t instanceof Time) {
5169 // t is an instance of Time
5170 m = _moment2.default.unix(t.timestamp);
5171 m.utcOffset(t.timezone);
5172 } else if (t instanceof _moment2.default) {
5173 // t is an instance of moment
5174 m = t;
5175 } else if (_lodash2.default.isDate(t)) {
5176 // t is a js Date
5177 m = (0, _moment2.default)(t);
5178 } else if (_lodash2.default.isNumber(t)) {
5179 // t is a posix timestamp
5180 // it might be a float as retrieved by Date.now() / 1000
5181 m = _moment2.default.unix(t);
5182 } else if (_lodash2.default.isString(t)) {
5183 // To make it consistent everywhere we only handle ISO 8601 format
5184 if (t.match(OFFSET_REGEX)) {
5185 // String with a explicit offset
5186 m = _moment2.default.parseZone(t, _moment2.default.ISO_8601);
5187 } else {
5188 // No explicit offset
5189 m = (0, _moment2.default)(t, _moment2.default.ISO_8601);
5190 }
5191 } else if (_lodash2.default.isUndefined(t)) {
5192 m = (0, _moment2.default)();
5193 }
5194
5195 if (m === undefined || !m.isValid()) {
5196 throw new _errors.CraftAiTimeError('Time error, given "' + t + '" is invalid.');
5197 }
5198
5199 if (tz) {
5200 // tz formats should be parseable by moment
5201 if (!(0, _timezones2.default)(tz)) {
5202 throw new _errors.CraftAiTimeError('Time error, the given timezone "' + tz + '" is invalid.\n Please refer to the client\'s documentation to see accepted formats:\n https://beta.craft.ai/doc/http#context-properties-types.');
5203 }
5204 m.utcOffset(_timezones.timezones[tz] || tz);
5205 }
5206
5207 var minuteOffset = m.utcOffset();
5208
5209 return _lodash2.default.extend(this, {
5210 timestamp: m.unix(),
5211 timezone: tzFromOffset(minuteOffset),
5212 time_of_day: m.hour() + m.minute() / 60 + m.second() / 3600,
5213 day_of_month: m.date(), // we want day to be in [1;31]
5214 month_of_year: m.month() + 1, // we want months to be in [1;12]
5215 day_of_week: m.isoWeekday() - 1, // we want week day to be in [0;6]
5216 utc: m.toISOString()
5217 });
5218}
5219
5220/***/ }),
5221/* 8 */
5222/***/ (function(module, exports, __webpack_require__) {
5223
5224"use strict";
5225// Copyright Joyent, Inc. and other Node contributors.
5226//
5227// Permission is hereby granted, free of charge, to any person obtaining a
5228// copy of this software and associated documentation files (the
5229// "Software"), to deal in the Software without restriction, including
5230// without limitation the rights to use, copy, modify, merge, publish,
5231// distribute, sublicense, and/or sell copies of the Software, and to permit
5232// persons to whom the Software is furnished to do so, subject to the
5233// following conditions:
5234//
5235// The above copyright notice and this permission notice shall be included
5236// in all copies or substantial portions of the Software.
5237//
5238// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
5239// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5240// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
5241// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
5242// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
5243// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
5244// USE OR OTHER DEALINGS IN THE SOFTWARE.
5245
5246// a duplex stream is just a stream that is both readable and writable.
5247// Since JS doesn't have multiple prototypal inheritance, this class
5248// prototypally inherits from Readable, and then parasitically from
5249// Writable.
5250
5251
5252
5253/*<replacement>*/
5254
5255var pna = __webpack_require__(13);
5256/*</replacement>*/
5257
5258/*<replacement>*/
5259var objectKeys = Object.keys || function (obj) {
5260 var keys = [];
5261 for (var key in obj) {
5262 keys.push(key);
5263 }return keys;
5264};
5265/*</replacement>*/
5266
5267module.exports = Duplex;
5268
5269/*<replacement>*/
5270var util = __webpack_require__(10);
5271util.inherits = __webpack_require__(5);
5272/*</replacement>*/
5273
5274var Readable = __webpack_require__(145);
5275var Writable = __webpack_require__(147);
5276
5277util.inherits(Duplex, Readable);
5278
5279{
5280 // avoid scope creep, the keys array can then be collected
5281 var keys = objectKeys(Writable.prototype);
5282 for (var v = 0; v < keys.length; v++) {
5283 var method = keys[v];
5284 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
5285 }
5286}
5287
5288function Duplex(options) {
5289 if (!(this instanceof Duplex)) return new Duplex(options);
5290
5291 Readable.call(this, options);
5292 Writable.call(this, options);
5293
5294 if (options && options.readable === false) this.readable = false;
5295
5296 if (options && options.writable === false) this.writable = false;
5297
5298 this.allowHalfOpen = true;
5299 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
5300
5301 this.once('end', onend);
5302}
5303
5304Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
5305 // making it explicit this property is not enumerable
5306 // because otherwise some prototype manipulation in
5307 // userland will fail
5308 enumerable: false,
5309 get: function () {
5310 return this._writableState.highWaterMark;
5311 }
5312});
5313
5314// the no-half-open enforcer
5315function onend() {
5316 // if we allow half-open state, or if the writable side ended,
5317 // then we're ok.
5318 if (this.allowHalfOpen || this._writableState.ended) return;
5319
5320 // no more data can be written.
5321 // But allow more writes to happen in this tick.
5322 pna.nextTick(onEndNT, this);
5323}
5324
5325function onEndNT(self) {
5326 self.end();
5327}
5328
5329Object.defineProperty(Duplex.prototype, 'destroyed', {
5330 get: function () {
5331 if (this._readableState === undefined || this._writableState === undefined) {
5332 return false;
5333 }
5334 return this._readableState.destroyed && this._writableState.destroyed;
5335 },
5336 set: function (value) {
5337 // we ignore the value if the stream
5338 // has not been initialized yet
5339 if (this._readableState === undefined || this._writableState === undefined) {
5340 return;
5341 }
5342
5343 // backward compatibility, the user is explicitly
5344 // managing destroyed
5345 this._readableState.destroyed = value;
5346 this._writableState.destroyed = value;
5347 }
5348});
5349
5350Duplex.prototype._destroy = function (err, cb) {
5351 this.push(null);
5352 this.end();
5353
5354 pna.nextTick(cb, err);
5355};
5356
5357/***/ }),
5358/* 9 */
5359/***/ (function(module, exports, __webpack_require__) {
5360
5361"use strict";
5362
5363
5364Object.defineProperty(exports, "__esModule", {
5365 value: true
5366});
5367
5368var _PROPERTY_FORMATTER, _OPERATORS$IN, _FORMATTER_FROM_DECIS;
5369
5370exports.formatProperty = formatProperty;
5371exports.formatDecisionRules = formatDecisionRules;
5372
5373var _lodash = __webpack_require__(1);
5374
5375var _lodash2 = _interopRequireDefault(_lodash);
5376
5377var _time2 = __webpack_require__(7);
5378
5379var _time3 = _interopRequireDefault(_time2);
5380
5381var _constants = __webpack_require__(6);
5382
5383function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5384
5385function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5386
5387var DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
5388
5389var MONTH = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
5390
5391var PROPERTY_FORMATTER = (_PROPERTY_FORMATTER = {}, _defineProperty(_PROPERTY_FORMATTER, _constants.TYPE_ANY, function (value) {
5392 return value;
5393}), _defineProperty(_PROPERTY_FORMATTER, _constants.TYPES.continuous, function (number) {
5394 return '' + Math.round(number * 100) / 100;
5395}), _defineProperty(_PROPERTY_FORMATTER, _constants.TYPES.time_of_day, function (time) {
5396 var _time = time instanceof _time3.default ? time.time_of_day : time;
5397 var hours = Math.floor(_time);
5398 var hoursStr = _lodash2.default.padStart(hours, 2, '0');
5399 var decMinutes = Math.round((_time - hours) * 60 * 100) / 100;
5400 var minutes = Math.floor(decMinutes);
5401 var minutesStr = _lodash2.default.padStart(minutes, 2, '0');
5402 var seconds = Math.round((decMinutes - minutes) * 60);
5403 var secondsStr = _lodash2.default.padStart(seconds, 2, '0');
5404
5405 if (seconds > 0) {
5406 return hoursStr + ':' + minutesStr + ':' + secondsStr;
5407 } else {
5408 return hoursStr + ':' + minutesStr;
5409 }
5410}), _defineProperty(_PROPERTY_FORMATTER, _constants.TYPES.day_of_week, function (day) {
5411 var _day = day instanceof _time3.default ? day.day_of_week : day;
5412 return DAYS[_day];
5413}), _defineProperty(_PROPERTY_FORMATTER, _constants.TYPES.day_of_month, function (day) {
5414 var _day = day instanceof _time3.default ? day.day_of_month : day;
5415 return _lodash2.default.padStart(_day, 2, '0');
5416}), _defineProperty(_PROPERTY_FORMATTER, _constants.TYPES.month_of_year, function (month) {
5417 var _month = month instanceof _time3.default ? month.month_of_year : month;
5418 return MONTH[_month - 1];
5419}), _PROPERTY_FORMATTER);
5420
5421function formatProperty(type) {
5422 var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
5423
5424 var formatter = PROPERTY_FORMATTER[type] || PROPERTY_FORMATTER[_constants.TYPE_ANY];
5425 var extendedFormatter = function extendedFormatter(value) {
5426 // A `null` value corresponds to a null/MVs branch
5427 if (_lodash2.default.isNull(value)) {
5428 return 'null';
5429 }
5430 // The empty object `{}` corresponds to an optional branch
5431 else if (_lodash2.default.isPlainObject(value) && _lodash2.default.isEmpty(value)) {
5432 return 'N/A';
5433 }
5434 return formatter(value);
5435 };
5436 if (!_lodash2.default.isUndefined(value)) {
5437 return extendedFormatter(value);
5438 }
5439 return extendedFormatter;
5440}
5441
5442var FORMATTER_FROM_DECISION_RULE = (_FORMATTER_FROM_DECIS = {}, _defineProperty(_FORMATTER_FROM_DECIS, _constants.OPERATORS.IS, _defineProperty({}, _constants.TYPE_ANY, function (_ref) {
5443 var property = _ref.property,
5444 operand = _ref.operand,
5445 operandFormatter = _ref.operandFormatter;
5446
5447 if (property) {
5448 return '\'' + property + '\' is ' + operandFormatter(operand);
5449 }
5450 return 'is ' + operandFormatter(operand);
5451})), _defineProperty(_FORMATTER_FROM_DECIS, _constants.OPERATORS.IN, (_OPERATORS$IN = {}, _defineProperty(_OPERATORS$IN, _constants.TYPE_ANY, function (_ref2) {
5452 var property = _ref2.property,
5453 operand = _ref2.operand,
5454 operandFormatter = _ref2.operandFormatter;
5455
5456 if (property) {
5457 return '\'' + property + '\' in [' + operandFormatter(operand[0]) + ', ' + operandFormatter(operand[1]) + '[';
5458 }
5459 return '[' + operandFormatter(operand[0]) + ', ' + operandFormatter(operand[1]) + '[';
5460}), _defineProperty(_OPERATORS$IN, _constants.TYPES.day_of_week, function (_ref3) {
5461 var property = _ref3.property,
5462 operand = _ref3.operand,
5463 operandFormatter = _ref3.operandFormatter;
5464
5465 var day_from = Math.floor(operand[0]);
5466 var day_to = Math.floor(operand[1]);
5467 // If there is only one day in the interval
5468 if (day_to - day_from == 1 || day_from == 6 && day_to == 0) {
5469 if (property) {
5470 return '\'' + property + '\' is ' + operandFormatter(day_from);
5471 }
5472 return operandFormatter(day_from);
5473 } else {
5474 if (property) {
5475 return '\'' + property + '\' from ' + operandFormatter(day_from) + ' to ' + operandFormatter((7 + day_to - 1) % 7);
5476 }
5477 return operandFormatter(day_from) + ' to ' + operandFormatter((7 + day_to - 1) % 7);
5478 }
5479}), _defineProperty(_OPERATORS$IN, _constants.TYPES.month_of_year, function (_ref4) {
5480 var property = _ref4.property,
5481 operand = _ref4.operand,
5482 operandFormatter = _ref4.operandFormatter;
5483
5484 var month_from = Math.floor(operand[0]);
5485 var month_to = Math.floor(operand[1]);
5486 if (month_to - month_from == 1 || month_from == 12 && month_to == 1) {
5487 // One month in the interval
5488 if (property) {
5489 return '\'' + property + '\' is ' + operandFormatter(month_from);
5490 }
5491 return operandFormatter(month_from);
5492 } else if (month_to == 1) {
5493 // (Excluded) upper bound is january
5494 if (property) {
5495 return '\'' + property + '\' from ' + operandFormatter(month_from) + ' to ' + operandFormatter(12);
5496 }
5497 return operandFormatter(month_from) + ' to ' + operandFormatter(12);
5498 } else {
5499 if (property) {
5500 return '\'' + property + '\' from ' + operandFormatter(month_from) + ' to ' + operandFormatter(month_to - 1);
5501 }
5502 return operandFormatter(month_from) + ' to ' + operandFormatter(month_to - 1);
5503 }
5504}), _OPERATORS$IN)), _defineProperty(_FORMATTER_FROM_DECIS, _constants.OPERATORS.GTE, _defineProperty({}, _constants.TYPE_ANY, function (_ref5) {
5505 var property = _ref5.property,
5506 operand = _ref5.operand,
5507 operandFormatter = _ref5.operandFormatter;
5508
5509 if (property) {
5510 return '\'' + property + '\' >= ' + operandFormatter(operand);
5511 }
5512 return '>= ' + operandFormatter(operand);
5513})), _defineProperty(_FORMATTER_FROM_DECIS, _constants.OPERATORS.LT, _defineProperty({}, _constants.TYPE_ANY, function (_ref6) {
5514 var property = _ref6.property,
5515 operand = _ref6.operand,
5516 operandFormatter = _ref6.operandFormatter;
5517
5518 if (property) {
5519 return '\'' + property + '\' < ' + operandFormatter(operand);
5520 }
5521 return '< ' + operandFormatter(operand);
5522})), _FORMATTER_FROM_DECIS);
5523
5524function formatDecisionRules(decisionRules) {
5525 return decisionRules.map(function (_ref7) {
5526 var property = _ref7.property,
5527 type = _ref7.type,
5528 operand = _ref7.operand,
5529 operator = _ref7.operator;
5530
5531 var operatorFormatters = FORMATTER_FROM_DECISION_RULE[operator];
5532 if (!operatorFormatters) {
5533 throw new Error('Unable to format the given decision rule: unknown operator \'' + operator + '\'.');
5534 }
5535 var formatter = operatorFormatters[type] || operatorFormatters[_constants.TYPE_ANY];
5536 var operandFormatter = formatProperty(type || _constants.TYPE_ANY);
5537 return formatter({ property: property, type: type, operator: operator, operandFormatter: operandFormatter, operand: operand });
5538 }).join(' and ');
5539}
5540
5541/***/ }),
5542/* 10 */
5543/***/ (function(module, exports, __webpack_require__) {
5544
5545/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.
5546//
5547// Permission is hereby granted, free of charge, to any person obtaining a
5548// copy of this software and associated documentation files (the
5549// "Software"), to deal in the Software without restriction, including
5550// without limitation the rights to use, copy, modify, merge, publish,
5551// distribute, sublicense, and/or sell copies of the Software, and to permit
5552// persons to whom the Software is furnished to do so, subject to the
5553// following conditions:
5554//
5555// The above copyright notice and this permission notice shall be included
5556// in all copies or substantial portions of the Software.
5557//
5558// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
5559// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5560// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
5561// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
5562// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
5563// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
5564// USE OR OTHER DEALINGS IN THE SOFTWARE.
5565
5566// NOTE: These type checking functions intentionally don't use `instanceof`
5567// because it is fragile and can be easily faked with `Object.create()`.
5568
5569function isArray(arg) {
5570 if (Array.isArray) {
5571 return Array.isArray(arg);
5572 }
5573 return objectToString(arg) === '[object Array]';
5574}
5575exports.isArray = isArray;
5576
5577function isBoolean(arg) {
5578 return typeof arg === 'boolean';
5579}
5580exports.isBoolean = isBoolean;
5581
5582function isNull(arg) {
5583 return arg === null;
5584}
5585exports.isNull = isNull;
5586
5587function isNullOrUndefined(arg) {
5588 return arg == null;
5589}
5590exports.isNullOrUndefined = isNullOrUndefined;
5591
5592function isNumber(arg) {
5593 return typeof arg === 'number';
5594}
5595exports.isNumber = isNumber;
5596
5597function isString(arg) {
5598 return typeof arg === 'string';
5599}
5600exports.isString = isString;
5601
5602function isSymbol(arg) {
5603 return typeof arg === 'symbol';
5604}
5605exports.isSymbol = isSymbol;
5606
5607function isUndefined(arg) {
5608 return arg === void 0;
5609}
5610exports.isUndefined = isUndefined;
5611
5612function isRegExp(re) {
5613 return objectToString(re) === '[object RegExp]';
5614}
5615exports.isRegExp = isRegExp;
5616
5617function isObject(arg) {
5618 return typeof arg === 'object' && arg !== null;
5619}
5620exports.isObject = isObject;
5621
5622function isDate(d) {
5623 return objectToString(d) === '[object Date]';
5624}
5625exports.isDate = isDate;
5626
5627function isError(e) {
5628 return (objectToString(e) === '[object Error]' || e instanceof Error);
5629}
5630exports.isError = isError;
5631
5632function isFunction(arg) {
5633 return typeof arg === 'function';
5634}
5635exports.isFunction = isFunction;
5636
5637function isPrimitive(arg) {
5638 return arg === null ||
5639 typeof arg === 'boolean' ||
5640 typeof arg === 'number' ||
5641 typeof arg === 'string' ||
5642 typeof arg === 'symbol' || // ES6 symbol
5643 typeof arg === 'undefined';
5644}
5645exports.isPrimitive = isPrimitive;
5646
5647exports.isBuffer = Buffer.isBuffer;
5648
5649function objectToString(o) {
5650 return Object.prototype.toString.call(o);
5651}
5652
5653/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).Buffer))
5654
5655/***/ }),
5656/* 11 */
5657/***/ (function(module, exports, __webpack_require__) {
5658
5659"use strict";
5660/* WEBPACK VAR INJECTION */(function(global) {/*!
5661 * The buffer module from node.js, for the browser.
5662 *
5663 * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
5664 * @license MIT
5665 */
5666/* eslint-disable no-proto */
5667
5668
5669
5670var base64 = __webpack_require__(176)
5671var ieee754 = __webpack_require__(169)
5672var isArray = __webpack_require__(21)
5673
5674exports.Buffer = Buffer
5675exports.SlowBuffer = SlowBuffer
5676exports.INSPECT_MAX_BYTES = 50
5677
5678/**
5679 * If `Buffer.TYPED_ARRAY_SUPPORT`:
5680 * === true Use Uint8Array implementation (fastest)
5681 * === false Use Object implementation (most compatible, even IE6)
5682 *
5683 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
5684 * Opera 11.6+, iOS 4.2+.
5685 *
5686 * Due to various browser bugs, sometimes the Object implementation will be used even
5687 * when the browser supports typed arrays.
5688 *
5689 * Note:
5690 *
5691 * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
5692 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
5693 *
5694 * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
5695 *
5696 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
5697 * incorrect length in some situations.
5698
5699 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
5700 * get the Object implementation, which is slower but behaves correctly.
5701 */
5702Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
5703 ? global.TYPED_ARRAY_SUPPORT
5704 : typedArraySupport()
5705
5706/*
5707 * Export kMaxLength after typed array support is determined.
5708 */
5709exports.kMaxLength = kMaxLength()
5710
5711function typedArraySupport () {
5712 try {
5713 var arr = new Uint8Array(1)
5714 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
5715 return arr.foo() === 42 && // typed array instances can be augmented
5716 typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
5717 arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
5718 } catch (e) {
5719 return false
5720 }
5721}
5722
5723function kMaxLength () {
5724 return Buffer.TYPED_ARRAY_SUPPORT
5725 ? 0x7fffffff
5726 : 0x3fffffff
5727}
5728
5729function createBuffer (that, length) {
5730 if (kMaxLength() < length) {
5731 throw new RangeError('Invalid typed array length')
5732 }
5733 if (Buffer.TYPED_ARRAY_SUPPORT) {
5734 // Return an augmented `Uint8Array` instance, for best performance
5735 that = new Uint8Array(length)
5736 that.__proto__ = Buffer.prototype
5737 } else {
5738 // Fallback: Return an object instance of the Buffer class
5739 if (that === null) {
5740 that = new Buffer(length)
5741 }
5742 that.length = length
5743 }
5744
5745 return that
5746}
5747
5748/**
5749 * The Buffer constructor returns instances of `Uint8Array` that have their
5750 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
5751 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
5752 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
5753 * returns a single octet.
5754 *
5755 * The `Uint8Array` prototype remains unmodified.
5756 */
5757
5758function Buffer (arg, encodingOrOffset, length) {
5759 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
5760 return new Buffer(arg, encodingOrOffset, length)
5761 }
5762
5763 // Common case.
5764 if (typeof arg === 'number') {
5765 if (typeof encodingOrOffset === 'string') {
5766 throw new Error(
5767 'If encoding is specified then the first argument must be a string'
5768 )
5769 }
5770 return allocUnsafe(this, arg)
5771 }
5772 return from(this, arg, encodingOrOffset, length)
5773}
5774
5775Buffer.poolSize = 8192 // not used by this implementation
5776
5777// TODO: Legacy, not needed anymore. Remove in next major version.
5778Buffer._augment = function (arr) {
5779 arr.__proto__ = Buffer.prototype
5780 return arr
5781}
5782
5783function from (that, value, encodingOrOffset, length) {
5784 if (typeof value === 'number') {
5785 throw new TypeError('"value" argument must not be a number')
5786 }
5787
5788 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
5789 return fromArrayBuffer(that, value, encodingOrOffset, length)
5790 }
5791
5792 if (typeof value === 'string') {
5793 return fromString(that, value, encodingOrOffset)
5794 }
5795
5796 return fromObject(that, value)
5797}
5798
5799/**
5800 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
5801 * if value is a number.
5802 * Buffer.from(str[, encoding])
5803 * Buffer.from(array)
5804 * Buffer.from(buffer)
5805 * Buffer.from(arrayBuffer[, byteOffset[, length]])
5806 **/
5807Buffer.from = function (value, encodingOrOffset, length) {
5808 return from(null, value, encodingOrOffset, length)
5809}
5810
5811if (Buffer.TYPED_ARRAY_SUPPORT) {
5812 Buffer.prototype.__proto__ = Uint8Array.prototype
5813 Buffer.__proto__ = Uint8Array
5814 if (typeof Symbol !== 'undefined' && Symbol.species &&
5815 Buffer[Symbol.species] === Buffer) {
5816 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
5817 Object.defineProperty(Buffer, Symbol.species, {
5818 value: null,
5819 configurable: true
5820 })
5821 }
5822}
5823
5824function assertSize (size) {
5825 if (typeof size !== 'number') {
5826 throw new TypeError('"size" argument must be a number')
5827 } else if (size < 0) {
5828 throw new RangeError('"size" argument must not be negative')
5829 }
5830}
5831
5832function alloc (that, size, fill, encoding) {
5833 assertSize(size)
5834 if (size <= 0) {
5835 return createBuffer(that, size)
5836 }
5837 if (fill !== undefined) {
5838 // Only pay attention to encoding if it's a string. This
5839 // prevents accidentally sending in a number that would
5840 // be interpretted as a start offset.
5841 return typeof encoding === 'string'
5842 ? createBuffer(that, size).fill(fill, encoding)
5843 : createBuffer(that, size).fill(fill)
5844 }
5845 return createBuffer(that, size)
5846}
5847
5848/**
5849 * Creates a new filled Buffer instance.
5850 * alloc(size[, fill[, encoding]])
5851 **/
5852Buffer.alloc = function (size, fill, encoding) {
5853 return alloc(null, size, fill, encoding)
5854}
5855
5856function allocUnsafe (that, size) {
5857 assertSize(size)
5858 that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
5859 if (!Buffer.TYPED_ARRAY_SUPPORT) {
5860 for (var i = 0; i < size; ++i) {
5861 that[i] = 0
5862 }
5863 }
5864 return that
5865}
5866
5867/**
5868 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
5869 * */
5870Buffer.allocUnsafe = function (size) {
5871 return allocUnsafe(null, size)
5872}
5873/**
5874 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
5875 */
5876Buffer.allocUnsafeSlow = function (size) {
5877 return allocUnsafe(null, size)
5878}
5879
5880function fromString (that, string, encoding) {
5881 if (typeof encoding !== 'string' || encoding === '') {
5882 encoding = 'utf8'
5883 }
5884
5885 if (!Buffer.isEncoding(encoding)) {
5886 throw new TypeError('"encoding" must be a valid string encoding')
5887 }
5888
5889 var length = byteLength(string, encoding) | 0
5890 that = createBuffer(that, length)
5891
5892 var actual = that.write(string, encoding)
5893
5894 if (actual !== length) {
5895 // Writing a hex string, for example, that contains invalid characters will
5896 // cause everything after the first invalid character to be ignored. (e.g.
5897 // 'abxxcd' will be treated as 'ab')
5898 that = that.slice(0, actual)
5899 }
5900
5901 return that
5902}
5903
5904function fromArrayLike (that, array) {
5905 var length = array.length < 0 ? 0 : checked(array.length) | 0
5906 that = createBuffer(that, length)
5907 for (var i = 0; i < length; i += 1) {
5908 that[i] = array[i] & 255
5909 }
5910 return that
5911}
5912
5913function fromArrayBuffer (that, array, byteOffset, length) {
5914 array.byteLength // this throws if `array` is not a valid ArrayBuffer
5915
5916 if (byteOffset < 0 || array.byteLength < byteOffset) {
5917 throw new RangeError('\'offset\' is out of bounds')
5918 }
5919
5920 if (array.byteLength < byteOffset + (length || 0)) {
5921 throw new RangeError('\'length\' is out of bounds')
5922 }
5923
5924 if (byteOffset === undefined && length === undefined) {
5925 array = new Uint8Array(array)
5926 } else if (length === undefined) {
5927 array = new Uint8Array(array, byteOffset)
5928 } else {
5929 array = new Uint8Array(array, byteOffset, length)
5930 }
5931
5932 if (Buffer.TYPED_ARRAY_SUPPORT) {
5933 // Return an augmented `Uint8Array` instance, for best performance
5934 that = array
5935 that.__proto__ = Buffer.prototype
5936 } else {
5937 // Fallback: Return an object instance of the Buffer class
5938 that = fromArrayLike(that, array)
5939 }
5940 return that
5941}
5942
5943function fromObject (that, obj) {
5944 if (Buffer.isBuffer(obj)) {
5945 var len = checked(obj.length) | 0
5946 that = createBuffer(that, len)
5947
5948 if (that.length === 0) {
5949 return that
5950 }
5951
5952 obj.copy(that, 0, 0, len)
5953 return that
5954 }
5955
5956 if (obj) {
5957 if ((typeof ArrayBuffer !== 'undefined' &&
5958 obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
5959 if (typeof obj.length !== 'number' || isnan(obj.length)) {
5960 return createBuffer(that, 0)
5961 }
5962 return fromArrayLike(that, obj)
5963 }
5964
5965 if (obj.type === 'Buffer' && isArray(obj.data)) {
5966 return fromArrayLike(that, obj.data)
5967 }
5968 }
5969
5970 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
5971}
5972
5973function checked (length) {
5974 // Note: cannot use `length < kMaxLength()` here because that fails when
5975 // length is NaN (which is otherwise coerced to zero.)
5976 if (length >= kMaxLength()) {
5977 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
5978 'size: 0x' + kMaxLength().toString(16) + ' bytes')
5979 }
5980 return length | 0
5981}
5982
5983function SlowBuffer (length) {
5984 if (+length != length) { // eslint-disable-line eqeqeq
5985 length = 0
5986 }
5987 return Buffer.alloc(+length)
5988}
5989
5990Buffer.isBuffer = function isBuffer (b) {
5991 return !!(b != null && b._isBuffer)
5992}
5993
5994Buffer.compare = function compare (a, b) {
5995 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5996 throw new TypeError('Arguments must be Buffers')
5997 }
5998
5999 if (a === b) return 0
6000
6001 var x = a.length
6002 var y = b.length
6003
6004 for (var i = 0, len = Math.min(x, y); i < len; ++i) {
6005 if (a[i] !== b[i]) {
6006 x = a[i]
6007 y = b[i]
6008 break
6009 }
6010 }
6011
6012 if (x < y) return -1
6013 if (y < x) return 1
6014 return 0
6015}
6016
6017Buffer.isEncoding = function isEncoding (encoding) {
6018 switch (String(encoding).toLowerCase()) {
6019 case 'hex':
6020 case 'utf8':
6021 case 'utf-8':
6022 case 'ascii':
6023 case 'latin1':
6024 case 'binary':
6025 case 'base64':
6026 case 'ucs2':
6027 case 'ucs-2':
6028 case 'utf16le':
6029 case 'utf-16le':
6030 return true
6031 default:
6032 return false
6033 }
6034}
6035
6036Buffer.concat = function concat (list, length) {
6037 if (!isArray(list)) {
6038 throw new TypeError('"list" argument must be an Array of Buffers')
6039 }
6040
6041 if (list.length === 0) {
6042 return Buffer.alloc(0)
6043 }
6044
6045 var i
6046 if (length === undefined) {
6047 length = 0
6048 for (i = 0; i < list.length; ++i) {
6049 length += list[i].length
6050 }
6051 }
6052
6053 var buffer = Buffer.allocUnsafe(length)
6054 var pos = 0
6055 for (i = 0; i < list.length; ++i) {
6056 var buf = list[i]
6057 if (!Buffer.isBuffer(buf)) {
6058 throw new TypeError('"list" argument must be an Array of Buffers')
6059 }
6060 buf.copy(buffer, pos)
6061 pos += buf.length
6062 }
6063 return buffer
6064}
6065
6066function byteLength (string, encoding) {
6067 if (Buffer.isBuffer(string)) {
6068 return string.length
6069 }
6070 if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
6071 (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
6072 return string.byteLength
6073 }
6074 if (typeof string !== 'string') {
6075 string = '' + string
6076 }
6077
6078 var len = string.length
6079 if (len === 0) return 0
6080
6081 // Use a for loop to avoid recursion
6082 var loweredCase = false
6083 for (;;) {
6084 switch (encoding) {
6085 case 'ascii':
6086 case 'latin1':
6087 case 'binary':
6088 return len
6089 case 'utf8':
6090 case 'utf-8':
6091 case undefined:
6092 return utf8ToBytes(string).length
6093 case 'ucs2':
6094 case 'ucs-2':
6095 case 'utf16le':
6096 case 'utf-16le':
6097 return len * 2
6098 case 'hex':
6099 return len >>> 1
6100 case 'base64':
6101 return base64ToBytes(string).length
6102 default:
6103 if (loweredCase) return utf8ToBytes(string).length // assume utf8
6104 encoding = ('' + encoding).toLowerCase()
6105 loweredCase = true
6106 }
6107 }
6108}
6109Buffer.byteLength = byteLength
6110
6111function slowToString (encoding, start, end) {
6112 var loweredCase = false
6113
6114 // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
6115 // property of a typed array.
6116
6117 // This behaves neither like String nor Uint8Array in that we set start/end
6118 // to their upper/lower bounds if the value passed is out of range.
6119 // undefined is handled specially as per ECMA-262 6th Edition,
6120 // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
6121 if (start === undefined || start < 0) {
6122 start = 0
6123 }
6124 // Return early if start > this.length. Done here to prevent potential uint32
6125 // coercion fail below.
6126 if (start > this.length) {
6127 return ''
6128 }
6129
6130 if (end === undefined || end > this.length) {
6131 end = this.length
6132 }
6133
6134 if (end <= 0) {
6135 return ''
6136 }
6137
6138 // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
6139 end >>>= 0
6140 start >>>= 0
6141
6142 if (end <= start) {
6143 return ''
6144 }
6145
6146 if (!encoding) encoding = 'utf8'
6147
6148 while (true) {
6149 switch (encoding) {
6150 case 'hex':
6151 return hexSlice(this, start, end)
6152
6153 case 'utf8':
6154 case 'utf-8':
6155 return utf8Slice(this, start, end)
6156
6157 case 'ascii':
6158 return asciiSlice(this, start, end)
6159
6160 case 'latin1':
6161 case 'binary':
6162 return latin1Slice(this, start, end)
6163
6164 case 'base64':
6165 return base64Slice(this, start, end)
6166
6167 case 'ucs2':
6168 case 'ucs-2':
6169 case 'utf16le':
6170 case 'utf-16le':
6171 return utf16leSlice(this, start, end)
6172
6173 default:
6174 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
6175 encoding = (encoding + '').toLowerCase()
6176 loweredCase = true
6177 }
6178 }
6179}
6180
6181// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
6182// Buffer instances.
6183Buffer.prototype._isBuffer = true
6184
6185function swap (b, n, m) {
6186 var i = b[n]
6187 b[n] = b[m]
6188 b[m] = i
6189}
6190
6191Buffer.prototype.swap16 = function swap16 () {
6192 var len = this.length
6193 if (len % 2 !== 0) {
6194 throw new RangeError('Buffer size must be a multiple of 16-bits')
6195 }
6196 for (var i = 0; i < len; i += 2) {
6197 swap(this, i, i + 1)
6198 }
6199 return this
6200}
6201
6202Buffer.prototype.swap32 = function swap32 () {
6203 var len = this.length
6204 if (len % 4 !== 0) {
6205 throw new RangeError('Buffer size must be a multiple of 32-bits')
6206 }
6207 for (var i = 0; i < len; i += 4) {
6208 swap(this, i, i + 3)
6209 swap(this, i + 1, i + 2)
6210 }
6211 return this
6212}
6213
6214Buffer.prototype.swap64 = function swap64 () {
6215 var len = this.length
6216 if (len % 8 !== 0) {
6217 throw new RangeError('Buffer size must be a multiple of 64-bits')
6218 }
6219 for (var i = 0; i < len; i += 8) {
6220 swap(this, i, i + 7)
6221 swap(this, i + 1, i + 6)
6222 swap(this, i + 2, i + 5)
6223 swap(this, i + 3, i + 4)
6224 }
6225 return this
6226}
6227
6228Buffer.prototype.toString = function toString () {
6229 var length = this.length | 0
6230 if (length === 0) return ''
6231 if (arguments.length === 0) return utf8Slice(this, 0, length)
6232 return slowToString.apply(this, arguments)
6233}
6234
6235Buffer.prototype.equals = function equals (b) {
6236 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
6237 if (this === b) return true
6238 return Buffer.compare(this, b) === 0
6239}
6240
6241Buffer.prototype.inspect = function inspect () {
6242 var str = ''
6243 var max = exports.INSPECT_MAX_BYTES
6244 if (this.length > 0) {
6245 str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
6246 if (this.length > max) str += ' ... '
6247 }
6248 return '<Buffer ' + str + '>'
6249}
6250
6251Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
6252 if (!Buffer.isBuffer(target)) {
6253 throw new TypeError('Argument must be a Buffer')
6254 }
6255
6256 if (start === undefined) {
6257 start = 0
6258 }
6259 if (end === undefined) {
6260 end = target ? target.length : 0
6261 }
6262 if (thisStart === undefined) {
6263 thisStart = 0
6264 }
6265 if (thisEnd === undefined) {
6266 thisEnd = this.length
6267 }
6268
6269 if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
6270 throw new RangeError('out of range index')
6271 }
6272
6273 if (thisStart >= thisEnd && start >= end) {
6274 return 0
6275 }
6276 if (thisStart >= thisEnd) {
6277 return -1
6278 }
6279 if (start >= end) {
6280 return 1
6281 }
6282
6283 start >>>= 0
6284 end >>>= 0
6285 thisStart >>>= 0
6286 thisEnd >>>= 0
6287
6288 if (this === target) return 0
6289
6290 var x = thisEnd - thisStart
6291 var y = end - start
6292 var len = Math.min(x, y)
6293
6294 var thisCopy = this.slice(thisStart, thisEnd)
6295 var targetCopy = target.slice(start, end)
6296
6297 for (var i = 0; i < len; ++i) {
6298 if (thisCopy[i] !== targetCopy[i]) {
6299 x = thisCopy[i]
6300 y = targetCopy[i]
6301 break
6302 }
6303 }
6304
6305 if (x < y) return -1
6306 if (y < x) return 1
6307 return 0
6308}
6309
6310// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
6311// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
6312//
6313// Arguments:
6314// - buffer - a Buffer to search
6315// - val - a string, Buffer, or number
6316// - byteOffset - an index into `buffer`; will be clamped to an int32
6317// - encoding - an optional encoding, relevant is val is a string
6318// - dir - true for indexOf, false for lastIndexOf
6319function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
6320 // Empty buffer means no match
6321 if (buffer.length === 0) return -1
6322
6323 // Normalize byteOffset
6324 if (typeof byteOffset === 'string') {
6325 encoding = byteOffset
6326 byteOffset = 0
6327 } else if (byteOffset > 0x7fffffff) {
6328 byteOffset = 0x7fffffff
6329 } else if (byteOffset < -0x80000000) {
6330 byteOffset = -0x80000000
6331 }
6332 byteOffset = +byteOffset // Coerce to Number.
6333 if (isNaN(byteOffset)) {
6334 // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
6335 byteOffset = dir ? 0 : (buffer.length - 1)
6336 }
6337
6338 // Normalize byteOffset: negative offsets start from the end of the buffer
6339 if (byteOffset < 0) byteOffset = buffer.length + byteOffset
6340 if (byteOffset >= buffer.length) {
6341 if (dir) return -1
6342 else byteOffset = buffer.length - 1
6343 } else if (byteOffset < 0) {
6344 if (dir) byteOffset = 0
6345 else return -1
6346 }
6347
6348 // Normalize val
6349 if (typeof val === 'string') {
6350 val = Buffer.from(val, encoding)
6351 }
6352
6353 // Finally, search either indexOf (if dir is true) or lastIndexOf
6354 if (Buffer.isBuffer(val)) {
6355 // Special case: looking for empty string/buffer always fails
6356 if (val.length === 0) {
6357 return -1
6358 }
6359 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
6360 } else if (typeof val === 'number') {
6361 val = val & 0xFF // Search for a byte value [0-255]
6362 if (Buffer.TYPED_ARRAY_SUPPORT &&
6363 typeof Uint8Array.prototype.indexOf === 'function') {
6364 if (dir) {
6365 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
6366 } else {
6367 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
6368 }
6369 }
6370 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
6371 }
6372
6373 throw new TypeError('val must be string, number or Buffer')
6374}
6375
6376function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
6377 var indexSize = 1
6378 var arrLength = arr.length
6379 var valLength = val.length
6380
6381 if (encoding !== undefined) {
6382 encoding = String(encoding).toLowerCase()
6383 if (encoding === 'ucs2' || encoding === 'ucs-2' ||
6384 encoding === 'utf16le' || encoding === 'utf-16le') {
6385 if (arr.length < 2 || val.length < 2) {
6386 return -1
6387 }
6388 indexSize = 2
6389 arrLength /= 2
6390 valLength /= 2
6391 byteOffset /= 2
6392 }
6393 }
6394
6395 function read (buf, i) {
6396 if (indexSize === 1) {
6397 return buf[i]
6398 } else {
6399 return buf.readUInt16BE(i * indexSize)
6400 }
6401 }
6402
6403 var i
6404 if (dir) {
6405 var foundIndex = -1
6406 for (i = byteOffset; i < arrLength; i++) {
6407 if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
6408 if (foundIndex === -1) foundIndex = i
6409 if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
6410 } else {
6411 if (foundIndex !== -1) i -= i - foundIndex
6412 foundIndex = -1
6413 }
6414 }
6415 } else {
6416 if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
6417 for (i = byteOffset; i >= 0; i--) {
6418 var found = true
6419 for (var j = 0; j < valLength; j++) {
6420 if (read(arr, i + j) !== read(val, j)) {
6421 found = false
6422 break
6423 }
6424 }
6425 if (found) return i
6426 }
6427 }
6428
6429 return -1
6430}
6431
6432Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
6433 return this.indexOf(val, byteOffset, encoding) !== -1
6434}
6435
6436Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
6437 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
6438}
6439
6440Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
6441 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
6442}
6443
6444function hexWrite (buf, string, offset, length) {
6445 offset = Number(offset) || 0
6446 var remaining = buf.length - offset
6447 if (!length) {
6448 length = remaining
6449 } else {
6450 length = Number(length)
6451 if (length > remaining) {
6452 length = remaining
6453 }
6454 }
6455
6456 // must be an even number of digits
6457 var strLen = string.length
6458 if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
6459
6460 if (length > strLen / 2) {
6461 length = strLen / 2
6462 }
6463 for (var i = 0; i < length; ++i) {
6464 var parsed = parseInt(string.substr(i * 2, 2), 16)
6465 if (isNaN(parsed)) return i
6466 buf[offset + i] = parsed
6467 }
6468 return i
6469}
6470
6471function utf8Write (buf, string, offset, length) {
6472 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
6473}
6474
6475function asciiWrite (buf, string, offset, length) {
6476 return blitBuffer(asciiToBytes(string), buf, offset, length)
6477}
6478
6479function latin1Write (buf, string, offset, length) {
6480 return asciiWrite(buf, string, offset, length)
6481}
6482
6483function base64Write (buf, string, offset, length) {
6484 return blitBuffer(base64ToBytes(string), buf, offset, length)
6485}
6486
6487function ucs2Write (buf, string, offset, length) {
6488 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
6489}
6490
6491Buffer.prototype.write = function write (string, offset, length, encoding) {
6492 // Buffer#write(string)
6493 if (offset === undefined) {
6494 encoding = 'utf8'
6495 length = this.length
6496 offset = 0
6497 // Buffer#write(string, encoding)
6498 } else if (length === undefined && typeof offset === 'string') {
6499 encoding = offset
6500 length = this.length
6501 offset = 0
6502 // Buffer#write(string, offset[, length][, encoding])
6503 } else if (isFinite(offset)) {
6504 offset = offset | 0
6505 if (isFinite(length)) {
6506 length = length | 0
6507 if (encoding === undefined) encoding = 'utf8'
6508 } else {
6509 encoding = length
6510 length = undefined
6511 }
6512 // legacy write(string, encoding, offset, length) - remove in v0.13
6513 } else {
6514 throw new Error(
6515 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
6516 )
6517 }
6518
6519 var remaining = this.length - offset
6520 if (length === undefined || length > remaining) length = remaining
6521
6522 if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
6523 throw new RangeError('Attempt to write outside buffer bounds')
6524 }
6525
6526 if (!encoding) encoding = 'utf8'
6527
6528 var loweredCase = false
6529 for (;;) {
6530 switch (encoding) {
6531 case 'hex':
6532 return hexWrite(this, string, offset, length)
6533
6534 case 'utf8':
6535 case 'utf-8':
6536 return utf8Write(this, string, offset, length)
6537
6538 case 'ascii':
6539 return asciiWrite(this, string, offset, length)
6540
6541 case 'latin1':
6542 case 'binary':
6543 return latin1Write(this, string, offset, length)
6544
6545 case 'base64':
6546 // Warning: maxLength not taken into account in base64Write
6547 return base64Write(this, string, offset, length)
6548
6549 case 'ucs2':
6550 case 'ucs-2':
6551 case 'utf16le':
6552 case 'utf-16le':
6553 return ucs2Write(this, string, offset, length)
6554
6555 default:
6556 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
6557 encoding = ('' + encoding).toLowerCase()
6558 loweredCase = true
6559 }
6560 }
6561}
6562
6563Buffer.prototype.toJSON = function toJSON () {
6564 return {
6565 type: 'Buffer',
6566 data: Array.prototype.slice.call(this._arr || this, 0)
6567 }
6568}
6569
6570function base64Slice (buf, start, end) {
6571 if (start === 0 && end === buf.length) {
6572 return base64.fromByteArray(buf)
6573 } else {
6574 return base64.fromByteArray(buf.slice(start, end))
6575 }
6576}
6577
6578function utf8Slice (buf, start, end) {
6579 end = Math.min(buf.length, end)
6580 var res = []
6581
6582 var i = start
6583 while (i < end) {
6584 var firstByte = buf[i]
6585 var codePoint = null
6586 var bytesPerSequence = (firstByte > 0xEF) ? 4
6587 : (firstByte > 0xDF) ? 3
6588 : (firstByte > 0xBF) ? 2
6589 : 1
6590
6591 if (i + bytesPerSequence <= end) {
6592 var secondByte, thirdByte, fourthByte, tempCodePoint
6593
6594 switch (bytesPerSequence) {
6595 case 1:
6596 if (firstByte < 0x80) {
6597 codePoint = firstByte
6598 }
6599 break
6600 case 2:
6601 secondByte = buf[i + 1]
6602 if ((secondByte & 0xC0) === 0x80) {
6603 tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
6604 if (tempCodePoint > 0x7F) {
6605 codePoint = tempCodePoint
6606 }
6607 }
6608 break
6609 case 3:
6610 secondByte = buf[i + 1]
6611 thirdByte = buf[i + 2]
6612 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
6613 tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
6614 if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
6615 codePoint = tempCodePoint
6616 }
6617 }
6618 break
6619 case 4:
6620 secondByte = buf[i + 1]
6621 thirdByte = buf[i + 2]
6622 fourthByte = buf[i + 3]
6623 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
6624 tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
6625 if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
6626 codePoint = tempCodePoint
6627 }
6628 }
6629 }
6630 }
6631
6632 if (codePoint === null) {
6633 // we did not generate a valid codePoint so insert a
6634 // replacement char (U+FFFD) and advance only 1 byte
6635 codePoint = 0xFFFD
6636 bytesPerSequence = 1
6637 } else if (codePoint > 0xFFFF) {
6638 // encode to utf16 (surrogate pair dance)
6639 codePoint -= 0x10000
6640 res.push(codePoint >>> 10 & 0x3FF | 0xD800)
6641 codePoint = 0xDC00 | codePoint & 0x3FF
6642 }
6643
6644 res.push(codePoint)
6645 i += bytesPerSequence
6646 }
6647
6648 return decodeCodePointsArray(res)
6649}
6650
6651// Based on http://stackoverflow.com/a/22747272/680742, the browser with
6652// the lowest limit is Chrome, with 0x10000 args.
6653// We go 1 magnitude less, for safety
6654var MAX_ARGUMENTS_LENGTH = 0x1000
6655
6656function decodeCodePointsArray (codePoints) {
6657 var len = codePoints.length
6658 if (len <= MAX_ARGUMENTS_LENGTH) {
6659 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
6660 }
6661
6662 // Decode in chunks to avoid "call stack size exceeded".
6663 var res = ''
6664 var i = 0
6665 while (i < len) {
6666 res += String.fromCharCode.apply(
6667 String,
6668 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
6669 )
6670 }
6671 return res
6672}
6673
6674function asciiSlice (buf, start, end) {
6675 var ret = ''
6676 end = Math.min(buf.length, end)
6677
6678 for (var i = start; i < end; ++i) {
6679 ret += String.fromCharCode(buf[i] & 0x7F)
6680 }
6681 return ret
6682}
6683
6684function latin1Slice (buf, start, end) {
6685 var ret = ''
6686 end = Math.min(buf.length, end)
6687
6688 for (var i = start; i < end; ++i) {
6689 ret += String.fromCharCode(buf[i])
6690 }
6691 return ret
6692}
6693
6694function hexSlice (buf, start, end) {
6695 var len = buf.length
6696
6697 if (!start || start < 0) start = 0
6698 if (!end || end < 0 || end > len) end = len
6699
6700 var out = ''
6701 for (var i = start; i < end; ++i) {
6702 out += toHex(buf[i])
6703 }
6704 return out
6705}
6706
6707function utf16leSlice (buf, start, end) {
6708 var bytes = buf.slice(start, end)
6709 var res = ''
6710 for (var i = 0; i < bytes.length; i += 2) {
6711 res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
6712 }
6713 return res
6714}
6715
6716Buffer.prototype.slice = function slice (start, end) {
6717 var len = this.length
6718 start = ~~start
6719 end = end === undefined ? len : ~~end
6720
6721 if (start < 0) {
6722 start += len
6723 if (start < 0) start = 0
6724 } else if (start > len) {
6725 start = len
6726 }
6727
6728 if (end < 0) {
6729 end += len
6730 if (end < 0) end = 0
6731 } else if (end > len) {
6732 end = len
6733 }
6734
6735 if (end < start) end = start
6736
6737 var newBuf
6738 if (Buffer.TYPED_ARRAY_SUPPORT) {
6739 newBuf = this.subarray(start, end)
6740 newBuf.__proto__ = Buffer.prototype
6741 } else {
6742 var sliceLen = end - start
6743 newBuf = new Buffer(sliceLen, undefined)
6744 for (var i = 0; i < sliceLen; ++i) {
6745 newBuf[i] = this[i + start]
6746 }
6747 }
6748
6749 return newBuf
6750}
6751
6752/*
6753 * Need to make sure that buffer isn't trying to write out of bounds.
6754 */
6755function checkOffset (offset, ext, length) {
6756 if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
6757 if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
6758}
6759
6760Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
6761 offset = offset | 0
6762 byteLength = byteLength | 0
6763 if (!noAssert) checkOffset(offset, byteLength, this.length)
6764
6765 var val = this[offset]
6766 var mul = 1
6767 var i = 0
6768 while (++i < byteLength && (mul *= 0x100)) {
6769 val += this[offset + i] * mul
6770 }
6771
6772 return val
6773}
6774
6775Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
6776 offset = offset | 0
6777 byteLength = byteLength | 0
6778 if (!noAssert) {
6779 checkOffset(offset, byteLength, this.length)
6780 }
6781
6782 var val = this[offset + --byteLength]
6783 var mul = 1
6784 while (byteLength > 0 && (mul *= 0x100)) {
6785 val += this[offset + --byteLength] * mul
6786 }
6787
6788 return val
6789}
6790
6791Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
6792 if (!noAssert) checkOffset(offset, 1, this.length)
6793 return this[offset]
6794}
6795
6796Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
6797 if (!noAssert) checkOffset(offset, 2, this.length)
6798 return this[offset] | (this[offset + 1] << 8)
6799}
6800
6801Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
6802 if (!noAssert) checkOffset(offset, 2, this.length)
6803 return (this[offset] << 8) | this[offset + 1]
6804}
6805
6806Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
6807 if (!noAssert) checkOffset(offset, 4, this.length)
6808
6809 return ((this[offset]) |
6810 (this[offset + 1] << 8) |
6811 (this[offset + 2] << 16)) +
6812 (this[offset + 3] * 0x1000000)
6813}
6814
6815Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
6816 if (!noAssert) checkOffset(offset, 4, this.length)
6817
6818 return (this[offset] * 0x1000000) +
6819 ((this[offset + 1] << 16) |
6820 (this[offset + 2] << 8) |
6821 this[offset + 3])
6822}
6823
6824Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
6825 offset = offset | 0
6826 byteLength = byteLength | 0
6827 if (!noAssert) checkOffset(offset, byteLength, this.length)
6828
6829 var val = this[offset]
6830 var mul = 1
6831 var i = 0
6832 while (++i < byteLength && (mul *= 0x100)) {
6833 val += this[offset + i] * mul
6834 }
6835 mul *= 0x80
6836
6837 if (val >= mul) val -= Math.pow(2, 8 * byteLength)
6838
6839 return val
6840}
6841
6842Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
6843 offset = offset | 0
6844 byteLength = byteLength | 0
6845 if (!noAssert) checkOffset(offset, byteLength, this.length)
6846
6847 var i = byteLength
6848 var mul = 1
6849 var val = this[offset + --i]
6850 while (i > 0 && (mul *= 0x100)) {
6851 val += this[offset + --i] * mul
6852 }
6853 mul *= 0x80
6854
6855 if (val >= mul) val -= Math.pow(2, 8 * byteLength)
6856
6857 return val
6858}
6859
6860Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
6861 if (!noAssert) checkOffset(offset, 1, this.length)
6862 if (!(this[offset] & 0x80)) return (this[offset])
6863 return ((0xff - this[offset] + 1) * -1)
6864}
6865
6866Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
6867 if (!noAssert) checkOffset(offset, 2, this.length)
6868 var val = this[offset] | (this[offset + 1] << 8)
6869 return (val & 0x8000) ? val | 0xFFFF0000 : val
6870}
6871
6872Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
6873 if (!noAssert) checkOffset(offset, 2, this.length)
6874 var val = this[offset + 1] | (this[offset] << 8)
6875 return (val & 0x8000) ? val | 0xFFFF0000 : val
6876}
6877
6878Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
6879 if (!noAssert) checkOffset(offset, 4, this.length)
6880
6881 return (this[offset]) |
6882 (this[offset + 1] << 8) |
6883 (this[offset + 2] << 16) |
6884 (this[offset + 3] << 24)
6885}
6886
6887Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
6888 if (!noAssert) checkOffset(offset, 4, this.length)
6889
6890 return (this[offset] << 24) |
6891 (this[offset + 1] << 16) |
6892 (this[offset + 2] << 8) |
6893 (this[offset + 3])
6894}
6895
6896Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
6897 if (!noAssert) checkOffset(offset, 4, this.length)
6898 return ieee754.read(this, offset, true, 23, 4)
6899}
6900
6901Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
6902 if (!noAssert) checkOffset(offset, 4, this.length)
6903 return ieee754.read(this, offset, false, 23, 4)
6904}
6905
6906Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
6907 if (!noAssert) checkOffset(offset, 8, this.length)
6908 return ieee754.read(this, offset, true, 52, 8)
6909}
6910
6911Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
6912 if (!noAssert) checkOffset(offset, 8, this.length)
6913 return ieee754.read(this, offset, false, 52, 8)
6914}
6915
6916function checkInt (buf, value, offset, ext, max, min) {
6917 if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
6918 if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
6919 if (offset + ext > buf.length) throw new RangeError('Index out of range')
6920}
6921
6922Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
6923 value = +value
6924 offset = offset | 0
6925 byteLength = byteLength | 0
6926 if (!noAssert) {
6927 var maxBytes = Math.pow(2, 8 * byteLength) - 1
6928 checkInt(this, value, offset, byteLength, maxBytes, 0)
6929 }
6930
6931 var mul = 1
6932 var i = 0
6933 this[offset] = value & 0xFF
6934 while (++i < byteLength && (mul *= 0x100)) {
6935 this[offset + i] = (value / mul) & 0xFF
6936 }
6937
6938 return offset + byteLength
6939}
6940
6941Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
6942 value = +value
6943 offset = offset | 0
6944 byteLength = byteLength | 0
6945 if (!noAssert) {
6946 var maxBytes = Math.pow(2, 8 * byteLength) - 1
6947 checkInt(this, value, offset, byteLength, maxBytes, 0)
6948 }
6949
6950 var i = byteLength - 1
6951 var mul = 1
6952 this[offset + i] = value & 0xFF
6953 while (--i >= 0 && (mul *= 0x100)) {
6954 this[offset + i] = (value / mul) & 0xFF
6955 }
6956
6957 return offset + byteLength
6958}
6959
6960Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
6961 value = +value
6962 offset = offset | 0
6963 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
6964 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
6965 this[offset] = (value & 0xff)
6966 return offset + 1
6967}
6968
6969function objectWriteUInt16 (buf, value, offset, littleEndian) {
6970 if (value < 0) value = 0xffff + value + 1
6971 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
6972 buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
6973 (littleEndian ? i : 1 - i) * 8
6974 }
6975}
6976
6977Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
6978 value = +value
6979 offset = offset | 0
6980 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
6981 if (Buffer.TYPED_ARRAY_SUPPORT) {
6982 this[offset] = (value & 0xff)
6983 this[offset + 1] = (value >>> 8)
6984 } else {
6985 objectWriteUInt16(this, value, offset, true)
6986 }
6987 return offset + 2
6988}
6989
6990Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
6991 value = +value
6992 offset = offset | 0
6993 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
6994 if (Buffer.TYPED_ARRAY_SUPPORT) {
6995 this[offset] = (value >>> 8)
6996 this[offset + 1] = (value & 0xff)
6997 } else {
6998 objectWriteUInt16(this, value, offset, false)
6999 }
7000 return offset + 2
7001}
7002
7003function objectWriteUInt32 (buf, value, offset, littleEndian) {
7004 if (value < 0) value = 0xffffffff + value + 1
7005 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
7006 buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
7007 }
7008}
7009
7010Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
7011 value = +value
7012 offset = offset | 0
7013 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
7014 if (Buffer.TYPED_ARRAY_SUPPORT) {
7015 this[offset + 3] = (value >>> 24)
7016 this[offset + 2] = (value >>> 16)
7017 this[offset + 1] = (value >>> 8)
7018 this[offset] = (value & 0xff)
7019 } else {
7020 objectWriteUInt32(this, value, offset, true)
7021 }
7022 return offset + 4
7023}
7024
7025Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
7026 value = +value
7027 offset = offset | 0
7028 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
7029 if (Buffer.TYPED_ARRAY_SUPPORT) {
7030 this[offset] = (value >>> 24)
7031 this[offset + 1] = (value >>> 16)
7032 this[offset + 2] = (value >>> 8)
7033 this[offset + 3] = (value & 0xff)
7034 } else {
7035 objectWriteUInt32(this, value, offset, false)
7036 }
7037 return offset + 4
7038}
7039
7040Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
7041 value = +value
7042 offset = offset | 0
7043 if (!noAssert) {
7044 var limit = Math.pow(2, 8 * byteLength - 1)
7045
7046 checkInt(this, value, offset, byteLength, limit - 1, -limit)
7047 }
7048
7049 var i = 0
7050 var mul = 1
7051 var sub = 0
7052 this[offset] = value & 0xFF
7053 while (++i < byteLength && (mul *= 0x100)) {
7054 if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
7055 sub = 1
7056 }
7057 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
7058 }
7059
7060 return offset + byteLength
7061}
7062
7063Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
7064 value = +value
7065 offset = offset | 0
7066 if (!noAssert) {
7067 var limit = Math.pow(2, 8 * byteLength - 1)
7068
7069 checkInt(this, value, offset, byteLength, limit - 1, -limit)
7070 }
7071
7072 var i = byteLength - 1
7073 var mul = 1
7074 var sub = 0
7075 this[offset + i] = value & 0xFF
7076 while (--i >= 0 && (mul *= 0x100)) {
7077 if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
7078 sub = 1
7079 }
7080 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
7081 }
7082
7083 return offset + byteLength
7084}
7085
7086Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
7087 value = +value
7088 offset = offset | 0
7089 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
7090 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7091 if (value < 0) value = 0xff + value + 1
7092 this[offset] = (value & 0xff)
7093 return offset + 1
7094}
7095
7096Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
7097 value = +value
7098 offset = offset | 0
7099 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
7100 if (Buffer.TYPED_ARRAY_SUPPORT) {
7101 this[offset] = (value & 0xff)
7102 this[offset + 1] = (value >>> 8)
7103 } else {
7104 objectWriteUInt16(this, value, offset, true)
7105 }
7106 return offset + 2
7107}
7108
7109Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
7110 value = +value
7111 offset = offset | 0
7112 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
7113 if (Buffer.TYPED_ARRAY_SUPPORT) {
7114 this[offset] = (value >>> 8)
7115 this[offset + 1] = (value & 0xff)
7116 } else {
7117 objectWriteUInt16(this, value, offset, false)
7118 }
7119 return offset + 2
7120}
7121
7122Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
7123 value = +value
7124 offset = offset | 0
7125 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
7126 if (Buffer.TYPED_ARRAY_SUPPORT) {
7127 this[offset] = (value & 0xff)
7128 this[offset + 1] = (value >>> 8)
7129 this[offset + 2] = (value >>> 16)
7130 this[offset + 3] = (value >>> 24)
7131 } else {
7132 objectWriteUInt32(this, value, offset, true)
7133 }
7134 return offset + 4
7135}
7136
7137Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
7138 value = +value
7139 offset = offset | 0
7140 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
7141 if (value < 0) value = 0xffffffff + value + 1
7142 if (Buffer.TYPED_ARRAY_SUPPORT) {
7143 this[offset] = (value >>> 24)
7144 this[offset + 1] = (value >>> 16)
7145 this[offset + 2] = (value >>> 8)
7146 this[offset + 3] = (value & 0xff)
7147 } else {
7148 objectWriteUInt32(this, value, offset, false)
7149 }
7150 return offset + 4
7151}
7152
7153function checkIEEE754 (buf, value, offset, ext, max, min) {
7154 if (offset + ext > buf.length) throw new RangeError('Index out of range')
7155 if (offset < 0) throw new RangeError('Index out of range')
7156}
7157
7158function writeFloat (buf, value, offset, littleEndian, noAssert) {
7159 if (!noAssert) {
7160 checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
7161 }
7162 ieee754.write(buf, value, offset, littleEndian, 23, 4)
7163 return offset + 4
7164}
7165
7166Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
7167 return writeFloat(this, value, offset, true, noAssert)
7168}
7169
7170Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
7171 return writeFloat(this, value, offset, false, noAssert)
7172}
7173
7174function writeDouble (buf, value, offset, littleEndian, noAssert) {
7175 if (!noAssert) {
7176 checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
7177 }
7178 ieee754.write(buf, value, offset, littleEndian, 52, 8)
7179 return offset + 8
7180}
7181
7182Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
7183 return writeDouble(this, value, offset, true, noAssert)
7184}
7185
7186Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
7187 return writeDouble(this, value, offset, false, noAssert)
7188}
7189
7190// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
7191Buffer.prototype.copy = function copy (target, targetStart, start, end) {
7192 if (!start) start = 0
7193 if (!end && end !== 0) end = this.length
7194 if (targetStart >= target.length) targetStart = target.length
7195 if (!targetStart) targetStart = 0
7196 if (end > 0 && end < start) end = start
7197
7198 // Copy 0 bytes; we're done
7199 if (end === start) return 0
7200 if (target.length === 0 || this.length === 0) return 0
7201
7202 // Fatal error conditions
7203 if (targetStart < 0) {
7204 throw new RangeError('targetStart out of bounds')
7205 }
7206 if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
7207 if (end < 0) throw new RangeError('sourceEnd out of bounds')
7208
7209 // Are we oob?
7210 if (end > this.length) end = this.length
7211 if (target.length - targetStart < end - start) {
7212 end = target.length - targetStart + start
7213 }
7214
7215 var len = end - start
7216 var i
7217
7218 if (this === target && start < targetStart && targetStart < end) {
7219 // descending copy from end
7220 for (i = len - 1; i >= 0; --i) {
7221 target[i + targetStart] = this[i + start]
7222 }
7223 } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
7224 // ascending copy from start
7225 for (i = 0; i < len; ++i) {
7226 target[i + targetStart] = this[i + start]
7227 }
7228 } else {
7229 Uint8Array.prototype.set.call(
7230 target,
7231 this.subarray(start, start + len),
7232 targetStart
7233 )
7234 }
7235
7236 return len
7237}
7238
7239// Usage:
7240// buffer.fill(number[, offset[, end]])
7241// buffer.fill(buffer[, offset[, end]])
7242// buffer.fill(string[, offset[, end]][, encoding])
7243Buffer.prototype.fill = function fill (val, start, end, encoding) {
7244 // Handle string cases:
7245 if (typeof val === 'string') {
7246 if (typeof start === 'string') {
7247 encoding = start
7248 start = 0
7249 end = this.length
7250 } else if (typeof end === 'string') {
7251 encoding = end
7252 end = this.length
7253 }
7254 if (val.length === 1) {
7255 var code = val.charCodeAt(0)
7256 if (code < 256) {
7257 val = code
7258 }
7259 }
7260 if (encoding !== undefined && typeof encoding !== 'string') {
7261 throw new TypeError('encoding must be a string')
7262 }
7263 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
7264 throw new TypeError('Unknown encoding: ' + encoding)
7265 }
7266 } else if (typeof val === 'number') {
7267 val = val & 255
7268 }
7269
7270 // Invalid ranges are not set to a default, so can range check early.
7271 if (start < 0 || this.length < start || this.length < end) {
7272 throw new RangeError('Out of range index')
7273 }
7274
7275 if (end <= start) {
7276 return this
7277 }
7278
7279 start = start >>> 0
7280 end = end === undefined ? this.length : end >>> 0
7281
7282 if (!val) val = 0
7283
7284 var i
7285 if (typeof val === 'number') {
7286 for (i = start; i < end; ++i) {
7287 this[i] = val
7288 }
7289 } else {
7290 var bytes = Buffer.isBuffer(val)
7291 ? val
7292 : utf8ToBytes(new Buffer(val, encoding).toString())
7293 var len = bytes.length
7294 for (i = 0; i < end - start; ++i) {
7295 this[i + start] = bytes[i % len]
7296 }
7297 }
7298
7299 return this
7300}
7301
7302// HELPER FUNCTIONS
7303// ================
7304
7305var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
7306
7307function base64clean (str) {
7308 // Node strips out invalid characters like \n and \t from the string, base64-js does not
7309 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
7310 // Node converts strings with length < 2 to ''
7311 if (str.length < 2) return ''
7312 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
7313 while (str.length % 4 !== 0) {
7314 str = str + '='
7315 }
7316 return str
7317}
7318
7319function stringtrim (str) {
7320 if (str.trim) return str.trim()
7321 return str.replace(/^\s+|\s+$/g, '')
7322}
7323
7324function toHex (n) {
7325 if (n < 16) return '0' + n.toString(16)
7326 return n.toString(16)
7327}
7328
7329function utf8ToBytes (string, units) {
7330 units = units || Infinity
7331 var codePoint
7332 var length = string.length
7333 var leadSurrogate = null
7334 var bytes = []
7335
7336 for (var i = 0; i < length; ++i) {
7337 codePoint = string.charCodeAt(i)
7338
7339 // is surrogate component
7340 if (codePoint > 0xD7FF && codePoint < 0xE000) {
7341 // last char was a lead
7342 if (!leadSurrogate) {
7343 // no lead yet
7344 if (codePoint > 0xDBFF) {
7345 // unexpected trail
7346 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7347 continue
7348 } else if (i + 1 === length) {
7349 // unpaired lead
7350 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7351 continue
7352 }
7353
7354 // valid lead
7355 leadSurrogate = codePoint
7356
7357 continue
7358 }
7359
7360 // 2 leads in a row
7361 if (codePoint < 0xDC00) {
7362 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7363 leadSurrogate = codePoint
7364 continue
7365 }
7366
7367 // valid surrogate pair
7368 codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
7369 } else if (leadSurrogate) {
7370 // valid bmp char, but last char was a lead
7371 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7372 }
7373
7374 leadSurrogate = null
7375
7376 // encode utf8
7377 if (codePoint < 0x80) {
7378 if ((units -= 1) < 0) break
7379 bytes.push(codePoint)
7380 } else if (codePoint < 0x800) {
7381 if ((units -= 2) < 0) break
7382 bytes.push(
7383 codePoint >> 0x6 | 0xC0,
7384 codePoint & 0x3F | 0x80
7385 )
7386 } else if (codePoint < 0x10000) {
7387 if ((units -= 3) < 0) break
7388 bytes.push(
7389 codePoint >> 0xC | 0xE0,
7390 codePoint >> 0x6 & 0x3F | 0x80,
7391 codePoint & 0x3F | 0x80
7392 )
7393 } else if (codePoint < 0x110000) {
7394 if ((units -= 4) < 0) break
7395 bytes.push(
7396 codePoint >> 0x12 | 0xF0,
7397 codePoint >> 0xC & 0x3F | 0x80,
7398 codePoint >> 0x6 & 0x3F | 0x80,
7399 codePoint & 0x3F | 0x80
7400 )
7401 } else {
7402 throw new Error('Invalid code point')
7403 }
7404 }
7405
7406 return bytes
7407}
7408
7409function asciiToBytes (str) {
7410 var byteArray = []
7411 for (var i = 0; i < str.length; ++i) {
7412 // Node's code seems to be doing this and not & 0x7F..
7413 byteArray.push(str.charCodeAt(i) & 0xFF)
7414 }
7415 return byteArray
7416}
7417
7418function utf16leToBytes (str, units) {
7419 var c, hi, lo
7420 var byteArray = []
7421 for (var i = 0; i < str.length; ++i) {
7422 if ((units -= 2) < 0) break
7423
7424 c = str.charCodeAt(i)
7425 hi = c >> 8
7426 lo = c % 256
7427 byteArray.push(lo)
7428 byteArray.push(hi)
7429 }
7430
7431 return byteArray
7432}
7433
7434function base64ToBytes (str) {
7435 return base64.toByteArray(base64clean(str))
7436}
7437
7438function blitBuffer (src, dst, offset, length) {
7439 for (var i = 0; i < length; ++i) {
7440 if ((i + offset >= dst.length) || (i >= src.length)) break
7441 dst[i + offset] = src[i]
7442 }
7443 return i
7444}
7445
7446function isnan (val) {
7447 return val !== val // eslint-disable-line no-self-compare
7448}
7449
7450/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
7451
7452/***/ }),
7453/* 12 */
7454/***/ (function(module, exports, __webpack_require__) {
7455
7456"use strict";
7457
7458
7459Object.defineProperty(exports, "__esModule", {
7460 value: true
7461});
7462
7463var _OPERATORS$IN, _OPERATORS$GTE, _OPERATORS$LT, _REDUCER_FROM_DECISIO;
7464
7465var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
7466
7467exports.reduceDecisionRules = reduceDecisionRules;
7468
7469var _lodash = __webpack_require__(1);
7470
7471var _lodash2 = _interopRequireDefault(_lodash);
7472
7473var _formatter = __webpack_require__(9);
7474
7475var _constants = __webpack_require__(6);
7476
7477function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7478
7479function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7480
7481var REDUCER_FROM_DECISION_RULE = (_REDUCER_FROM_DECISIO = {}, _defineProperty(_REDUCER_FROM_DECISIO, _constants.OPERATORS.IS, _defineProperty({}, _constants.OPERATORS.IS, function (decisionRule1, decisionRule2) {
7482 if (decisionRule1.operand && decisionRule1.operand != decisionRule2.operand) {
7483 throw new Error('Operator "' + _constants.OPERATORS.IS + '" can\'t have different value. Set to "' + decisionRule1.operand + '" and receive "' + decisionRule2.operand + '"');
7484 }
7485 return {
7486 property: decisionRule1.property,
7487 operator: _constants.OPERATORS.IS,
7488 operand: decisionRule2.operand
7489 };
7490})), _defineProperty(_REDUCER_FROM_DECISIO, _constants.OPERATORS.IN, (_OPERATORS$IN = {}, _defineProperty(_OPERATORS$IN, _constants.OPERATORS.IN, function (decisionRule1, decisionRule2) {
7491 var _decisionRule1$operan = _slicedToArray(decisionRule1.operand, 2),
7492 o1From = _decisionRule1$operan[0],
7493 o1To = _decisionRule1$operan[1];
7494
7495 var _decisionRule2$operan = _slicedToArray(decisionRule2.operand, 2),
7496 o2From = _decisionRule2$operan[0],
7497 o2To = _decisionRule2$operan[1];
7498
7499 var o1IsCyclic = o1From > o1To;
7500 var o2IsCyclic = o2From > o2To;
7501 var o2FromInO1 = o1IsCyclic ? o2From >= o1From || o2From <= o1To : o2From >= o1From && o2From <= o1To;
7502 var o2ToInO1 = o1IsCyclic ? o2To >= o1From || o2To <= o1To : o2To >= o1From && o2To <= o1To;
7503 var o1FromInO2 = o2IsCyclic ? o1From >= o2From || o1From <= o2To : o1From >= o2From && o1From <= o2To;
7504 var o1ToInO2 = o2IsCyclic ? o1To >= o2From || o1To <= o2To : o1To >= o2From && o1To <= o2To;
7505
7506 if (o1FromInO2 && o1ToInO2) {
7507 // o1 belongs to o2
7508 // | o1 |
7509 // | o2 |
7510 return decisionRule1;
7511 }
7512
7513 if (o2FromInO1 && o2ToInO1) {
7514 // o2 belongs to o1
7515 // | o1 |
7516 // | o2 |
7517 return decisionRule2;
7518 }
7519
7520 if (o2FromInO1 && o1ToInO2) {
7521 // overlap 1
7522 // | o1 |
7523 // | o2 |
7524 return {
7525 property: decisionRule1.property,
7526 operator: _constants.OPERATORS.IN,
7527 operand: [o2From, o1To]
7528 };
7529 }
7530
7531 if (o2ToInO1 && o1FromInO2) {
7532 // overlap 2
7533 // | o1 |
7534 // | o2 |
7535 return {
7536 property: decisionRule1.property,
7537 operator: _constants.OPERATORS.IN,
7538 operand: [o1From, o2To]
7539 };
7540 }
7541
7542 // disjointed
7543 // | o1 |
7544 // | o2 |
7545 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7546}), _defineProperty(_OPERATORS$IN, _constants.OPERATORS.GTE, function (decisionRule1, decisionRule2) {
7547 var _decisionRule1$operan2 = _slicedToArray(decisionRule1.operand, 2),
7548 o1From = _decisionRule1$operan2[0],
7549 o1To = _decisionRule1$operan2[1];
7550
7551 var o2 = decisionRule2.operand;
7552
7553 var o1IsCyclic = o1From > o1To;
7554
7555 if (o1IsCyclic) {
7556 // Cyclics makes no sense with single bound limits
7557 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7558 }
7559
7560 if (o2 >= o1To) {
7561 // o2 after o1, disjointed
7562 // | o1 |
7563 // |o2
7564 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7565 }
7566
7567 if (o2 >= o1From && o2 < o1To) {
7568 // o2 belongs to o1
7569 // | o1 |
7570 // |o2
7571 return {
7572 property: decisionRule1.property,
7573 operator: _constants.OPERATORS.IN,
7574 operand: [o2, o1To]
7575 };
7576 }
7577
7578 // o2 before o1
7579 // | o1 |
7580 // |o2
7581 return decisionRule1;
7582}), _defineProperty(_OPERATORS$IN, _constants.OPERATORS.LT, function (decisionRule1, decisionRule2) {
7583 var _decisionRule1$operan3 = _slicedToArray(decisionRule1.operand, 2),
7584 o1From = _decisionRule1$operan3[0],
7585 o1To = _decisionRule1$operan3[1];
7586
7587 var o2 = decisionRule2.operand;
7588
7589 var o1IsCyclic = o1From > o1To;
7590
7591 if (o1IsCyclic) {
7592 // Cyclics makes no sense with single bound limits
7593 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7594 }
7595
7596 if (o2 < o1From) {
7597 // o2 before o1, disjointed
7598 // | o1 |
7599 // o2|
7600 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7601 }
7602
7603 if (o2 >= o1From && o2 < o1To) {
7604 // o2 belongs to o1
7605 // | o1 |
7606 // o2|
7607 return {
7608 property: decisionRule1.property,
7609 operator: _constants.OPERATORS.IN,
7610 operand: [o1From, o2]
7611 };
7612 }
7613
7614 // o2 after o1
7615 // | o1 |
7616 // o2|
7617 return decisionRule1;
7618}), _OPERATORS$IN)), _defineProperty(_REDUCER_FROM_DECISIO, _constants.OPERATORS.GTE, (_OPERATORS$GTE = {}, _defineProperty(_OPERATORS$GTE, _constants.OPERATORS.IN, function (decisionRule1, decisionRule2) {
7619 return REDUCER_FROM_DECISION_RULE[_constants.OPERATORS.IN][_constants.OPERATORS.GTE](decisionRule2, decisionRule1);
7620}), _defineProperty(_OPERATORS$GTE, _constants.OPERATORS.GTE, function (decisionRule1, decisionRule2) {
7621 return {
7622 property: decisionRule1.property,
7623 operator: _constants.OPERATORS.GTE,
7624 operand: Math.max(decisionRule1.operand, decisionRule2.operand)
7625 };
7626}), _defineProperty(_OPERATORS$GTE, _constants.OPERATORS.LT, function (decisionRule1, decisionRule2) {
7627 var newLowerBound = decisionRule1.operand;
7628 var newUpperBound = decisionRule2.operand;
7629 if (newUpperBound < newLowerBound) {
7630 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': the resulting rule is not fulfillable.');
7631 }
7632 return {
7633 property: decisionRule1.property,
7634 operator: _constants.OPERATORS.IN,
7635 operand: [newLowerBound, newUpperBound]
7636 };
7637}), _OPERATORS$GTE)), _defineProperty(_REDUCER_FROM_DECISIO, _constants.OPERATORS.LT, (_OPERATORS$LT = {}, _defineProperty(_OPERATORS$LT, _constants.OPERATORS.IN, function (decisionRule1, decisionRule2) {
7638 return REDUCER_FROM_DECISION_RULE[_constants.OPERATORS.IN][_constants.OPERATORS.LT](decisionRule2, decisionRule1);
7639}), _defineProperty(_OPERATORS$LT, _constants.OPERATORS.GTE, function (decisionRule1, decisionRule2) {
7640 return REDUCER_FROM_DECISION_RULE[_constants.OPERATORS.GTE][_constants.OPERATORS.LT](decisionRule2, decisionRule1);
7641}), _defineProperty(_OPERATORS$LT, _constants.OPERATORS.LT, function (decisionRule1, decisionRule2) {
7642 return {
7643 property: decisionRule1.property,
7644 operator: _constants.OPERATORS.LT,
7645 operand: Math.min(decisionRule1.operand, decisionRule2.operand)
7646 };
7647}), _OPERATORS$LT)), _REDUCER_FROM_DECISIO);
7648
7649function decisionRuleReducer(decisionRule1, decisionRule2) {
7650 if (!decisionRule1 || !decisionRule2) {
7651 return decisionRule1 || decisionRule2;
7652 }
7653 var reducer = REDUCER_FROM_DECISION_RULE[decisionRule1.operator][decisionRule2.operator];
7654 if (!reducer) {
7655 throw new Error('Unable to reduce decision rules \'' + (0, _formatter.formatDecisionRules)([decisionRule1]) + '\' and \'' + (0, _formatter.formatDecisionRules)([decisionRule2]) + '\': incompatible operators.');
7656 }
7657 return reducer(decisionRule1, decisionRule2);
7658}
7659
7660function reduceDecisionRules(decisionRules) {
7661 var properties = _lodash2.default.uniq(_lodash2.default.map(decisionRules, function (_ref) {
7662 var property = _ref.property;
7663 return property;
7664 }));
7665 return _lodash2.default.map(properties, function (currentPropery) {
7666 return (0, _lodash2.default)(decisionRules).filter(function (_ref2) {
7667 var property = _ref2.property;
7668 return property == currentPropery;
7669 }).reduce(decisionRuleReducer, undefined);
7670 });
7671}
7672
7673/***/ }),
7674/* 13 */
7675/***/ (function(module, exports, __webpack_require__) {
7676
7677"use strict";
7678/* WEBPACK VAR INJECTION */(function(process) {
7679
7680if (!process.version ||
7681 process.version.indexOf('v0.') === 0 ||
7682 process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
7683 module.exports = { nextTick: nextTick };
7684} else {
7685 module.exports = process
7686}
7687
7688function nextTick(fn, arg1, arg2, arg3) {
7689 if (typeof fn !== 'function') {
7690 throw new TypeError('"callback" argument must be a function');
7691 }
7692 var len = arguments.length;
7693 var args, i;
7694 switch (len) {
7695 case 0:
7696 case 1:
7697 return process.nextTick(fn);
7698 case 2:
7699 return process.nextTick(function afterTickOne() {
7700 fn.call(null, arg1);
7701 });
7702 case 3:
7703 return process.nextTick(function afterTickTwo() {
7704 fn.call(null, arg1, arg2);
7705 });
7706 case 4:
7707 return process.nextTick(function afterTickThree() {
7708 fn.call(null, arg1, arg2, arg3);
7709 });
7710 default:
7711 args = new Array(len - 1);
7712 i = 0;
7713 while (i < args.length) {
7714 args[i++] = arguments[i];
7715 }
7716 return process.nextTick(function afterTick() {
7717 fn.apply(null, args);
7718 });
7719 }
7720}
7721
7722
7723/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
7724
7725/***/ }),
7726/* 14 */
7727/***/ (function(module, exports, __webpack_require__) {
7728
7729/* eslint-disable node/no-deprecated-api */
7730var buffer = __webpack_require__(11)
7731var Buffer = buffer.Buffer
7732
7733// alternative to using Object.keys for old browsers
7734function copyProps (src, dst) {
7735 for (var key in src) {
7736 dst[key] = src[key]
7737 }
7738}
7739if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
7740 module.exports = buffer
7741} else {
7742 // Copy properties from require('buffer')
7743 copyProps(buffer, exports)
7744 exports.Buffer = SafeBuffer
7745}
7746
7747function SafeBuffer (arg, encodingOrOffset, length) {
7748 return Buffer(arg, encodingOrOffset, length)
7749}
7750
7751// Copy static methods from Buffer
7752copyProps(Buffer, SafeBuffer)
7753
7754SafeBuffer.from = function (arg, encodingOrOffset, length) {
7755 if (typeof arg === 'number') {
7756 throw new TypeError('Argument must not be a number')
7757 }
7758 return Buffer(arg, encodingOrOffset, length)
7759}
7760
7761SafeBuffer.alloc = function (size, fill, encoding) {
7762 if (typeof size !== 'number') {
7763 throw new TypeError('Argument must be a number')
7764 }
7765 var buf = Buffer(size)
7766 if (fill !== undefined) {
7767 if (typeof encoding === 'string') {
7768 buf.fill(fill, encoding)
7769 } else {
7770 buf.fill(fill)
7771 }
7772 } else {
7773 buf.fill(0)
7774 }
7775 return buf
7776}
7777
7778SafeBuffer.allocUnsafe = function (size) {
7779 if (typeof size !== 'number') {
7780 throw new TypeError('Argument must be a number')
7781 }
7782 return Buffer(size)
7783}
7784
7785SafeBuffer.allocUnsafeSlow = function (size) {
7786 if (typeof size !== 'number') {
7787 throw new TypeError('Argument must be a number')
7788 }
7789 return buffer.SlowBuffer(size)
7790}
7791
7792
7793/***/ }),
7794/* 15 */
7795/***/ (function(module, exports, __webpack_require__) {
7796
7797"use strict";
7798
7799
7800Object.defineProperty(exports, "__esModule", {
7801 value: true
7802});
7803exports.timezones = undefined;
7804exports.getTimezoneKey = getTimezoneKey;
7805
7806var _lodash = __webpack_require__(1);
7807
7808var _lodash2 = _interopRequireDefault(_lodash);
7809
7810function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7811
7812var TIMEZONE_REGEX = /^([+-](2[0-3]|[01][0-9])(:?[0-5][0-9])?|Z)$/; // +/-00:00 -/+00 Z +/-0000
7813
7814var timezones = exports.timezones = {
7815 'UTC': '+00:00',
7816 'GMT': '+00:00',
7817 'BST': '+01:00',
7818 'IST': '+01:00',
7819 'WET': '+00:00',
7820 'WEST': '+01:00',
7821 'CET': '+01:00',
7822 'CEST': '+02:00',
7823 'EET': '+02:00',
7824 'EEST': '+03:00',
7825 'MSK': '+03:00',
7826 'MSD': '+04:00',
7827 'AST': '-04:00',
7828 'ADT': '-03:00',
7829 'EST': '-05:00',
7830 'EDT': '-04:00',
7831 'CST': '-06:00',
7832 'CDT': '-05:00',
7833 'MST': '-07:00',
7834 'MDT': '-06:00',
7835 'PST': '-08:00',
7836 'PDT': '-07:00',
7837 'HST': '-10:00',
7838 'AKST': '-09:00',
7839 'AKDT': '-08:00',
7840 'AEST': '+10:00',
7841 'AEDT': '+11:00',
7842 'ACST': '+09:30',
7843 'ACDT': '+10:30',
7844 'AWST': '+08:00'
7845};
7846
7847var isTimezone = function isTimezone(value) {
7848 return _lodash2.default.isInteger(value) ? value <= 840 && value >= -720 : _lodash2.default.isString(value) && (value in timezones || TIMEZONE_REGEX.test(value));
7849};
7850
7851function getTimezoneKey(configuration) {
7852 return _lodash2.default.findKey(configuration, { 'type': 'timezone' });
7853}
7854
7855exports.default = isTimezone;
7856
7857/***/ }),
7858/* 16 */
7859/***/ (function(module, exports) {
7860
7861module.exports = function(module) {
7862 if(!module.webpackPolyfill) {
7863 module.deprecate = function() {};
7864 module.paths = [];
7865 // module.parent = undefined by default
7866 if(!module.children) module.children = [];
7867 Object.defineProperty(module, "loaded", {
7868 enumerable: true,
7869 get: function() {
7870 return module.l;
7871 }
7872 });
7873 Object.defineProperty(module, "id", {
7874 enumerable: true,
7875 get: function() {
7876 return module.i;
7877 }
7878 });
7879 module.webpackPolyfill = 1;
7880 }
7881 return module;
7882};
7883
7884
7885/***/ }),
7886/* 17 */
7887/***/ (function(module, exports, __webpack_require__) {
7888
7889"use strict";
7890
7891
7892Object.defineProperty(exports, "__esModule", {
7893 value: true
7894});
7895var DEFAULTS = {
7896 token: undefined,
7897 operationsChunksSize: 500,
7898 decisionTreeRetrievalTimeout: 1000 * 60 * 10 // 10 minutes
7899};
7900
7901exports.default = DEFAULTS;
7902
7903/***/ }),
7904/* 18 */
7905/***/ (function(module, exports, __webpack_require__) {
7906
7907"use strict";
7908
7909
7910Object.defineProperty(exports, "__esModule", {
7911 value: true
7912});
7913exports.distribution = exports.reduceDecisionRules = exports.formatProperty = exports.formatDecisionRules = undefined;
7914exports.decide = decide;
7915exports.getDecisionRulesProperties = getDecisionRulesProperties;
7916exports.decideFromContextsArray = decideFromContextsArray;
7917
7918var _lodash = __webpack_require__(1);
7919
7920var _lodash2 = _interopRequireDefault(_lodash);
7921
7922var _context = __webpack_require__(159);
7923
7924var _context2 = _interopRequireDefault(_context);
7925
7926var _interpreter_v = __webpack_require__(161);
7927
7928var _parse4 = __webpack_require__(163);
7929
7930var _parse5 = _interopRequireDefault(_parse4);
7931
7932var _reducer = __webpack_require__(12);
7933
7934var _semver = __webpack_require__(151);
7935
7936var _semver2 = _interopRequireDefault(_semver);
7937
7938var _errors = __webpack_require__(4);
7939
7940var _interpreter_v2 = __webpack_require__(162);
7941
7942var _formatter = __webpack_require__(9);
7943
7944function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7945
7946function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
7947
7948var DECISION_FORMAT_VERSION = '1.1.0';
7949
7950function decide(tree) {
7951 var _parse = (0, _parse5.default)(tree),
7952 _version = _parse._version,
7953 configuration = _parse.configuration,
7954 trees = _parse.trees;
7955
7956 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7957 args[_key - 1] = arguments[_key];
7958 }
7959
7960 var ctx = configuration ? _context2.default.apply(undefined, [configuration].concat(args)) : _lodash2.default.extend.apply(_lodash2.default, [{}].concat(args));
7961 return _decide(configuration, trees, ctx, _version);
7962}
7963
7964function _decide(configuration, trees, ctx, _version) {
7965 if (_semver2.default.satisfies(_version, '>=1.0.0 <2.0.0')) {
7966 return (0, _interpreter_v.decide)(configuration, trees, ctx);
7967 }
7968 if (_semver2.default.satisfies(_version, '>=2.0.0 <3.0.0')) {
7969 return (0, _interpreter_v2.decide)(configuration, trees, ctx);
7970 }
7971 throw new _errors.CraftAiDecisionError('Invalid decision tree format, "' + _version + '" is not a valid version.');
7972}
7973
7974function reduceNodes(tree, fn, initialAccValue) {
7975 var nodes = [];
7976 nodes.push(tree);
7977 var recursiveNext = function recursiveNext(acc) {
7978 if (nodes.length == 0) {
7979 // No more nodes
7980 return acc;
7981 }
7982
7983 var node = nodes.pop();
7984 if (node.children) {
7985 nodes = node.children.concat(nodes);
7986 }
7987
7988 var updatedAcc = fn(acc, node);
7989 return recursiveNext(updatedAcc);
7990 };
7991 return recursiveNext(initialAccValue);
7992}
7993
7994function getDecisionRulesProperties(tree) {
7995 var _parse2 = (0, _parse5.default)(tree),
7996 configuration = _parse2.configuration,
7997 trees = _parse2.trees;
7998
7999 return (0, _lodash2.default)(trees).values().reduce(function (properties, tree) {
8000 return reduceNodes(tree, function (properties, node) {
8001 if (node.children) {
8002 // Skip leaves
8003 return properties.concat(node.children[0].decision_rule.property);
8004 }
8005 return properties;
8006 }, properties);
8007 }, (0, _lodash2.default)([])).uniq().map(function (property) {
8008 return _lodash2.default.extend(configuration.context[property], {
8009 property: property
8010 });
8011 }).value();
8012}
8013
8014function decideFromContextsArray(tree, contexts) {
8015 var _parse3 = (0, _parse5.default)(tree),
8016 _version = _parse3._version,
8017 configuration = _parse3.configuration,
8018 trees = _parse3.trees;
8019
8020 return _lodash2.default.map(contexts, function (contextsItem) {
8021 var ctx = void 0;
8022 if (_lodash2.default.isArray(contextsItem)) {
8023 ctx = _context2.default.apply(undefined, [configuration].concat(_toConsumableArray(contextsItem)));
8024 } else {
8025 ctx = (0, _context2.default)(configuration, contextsItem);
8026 }
8027 try {
8028 return _decide(configuration, trees, ctx, _version);
8029 } catch (error) {
8030 if (error instanceof _errors.CraftAiNullDecisionError) {
8031 var message = error.message,
8032 metadata = error.metadata;
8033
8034 return {
8035 _version: DECISION_FORMAT_VERSION,
8036 context: ctx,
8037 error: { message: message, metadata: metadata }
8038 };
8039 } else {
8040 throw error;
8041 }
8042 }
8043 });
8044}
8045
8046exports.formatDecisionRules = _formatter.formatDecisionRules;
8047exports.formatProperty = _formatter.formatProperty;
8048exports.reduceDecisionRules = _reducer.reduceDecisionRules;
8049exports.distribution = _interpreter_v2.distribution;
8050
8051/***/ }),
8052/* 19 */
8053/***/ (function(module, exports, __webpack_require__) {
8054
8055/* WEBPACK VAR INJECTION */(function(process) {/**
8056 * This is the web browser implementation of `debug()`.
8057 *
8058 * Expose `debug()` as the module.
8059 */
8060
8061exports = module.exports = __webpack_require__(167);
8062exports.log = log;
8063exports.formatArgs = formatArgs;
8064exports.save = save;
8065exports.load = load;
8066exports.useColors = useColors;
8067exports.storage = 'undefined' != typeof chrome
8068 && 'undefined' != typeof chrome.storage
8069 ? chrome.storage.local
8070 : localstorage();
8071
8072/**
8073 * Colors.
8074 */
8075
8076exports.colors = [
8077 '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',
8078 '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',
8079 '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',
8080 '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',
8081 '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',
8082 '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',
8083 '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',
8084 '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',
8085 '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',
8086 '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',
8087 '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'
8088];
8089
8090/**
8091 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
8092 * and the Firebug extension (any Firefox version) are known
8093 * to support "%c" CSS customizations.
8094 *
8095 * TODO: add a `localStorage` variable to explicitly enable/disable colors
8096 */
8097
8098function useColors() {
8099 // NB: In an Electron preload script, document will be defined but not fully
8100 // initialized. Since we know we're in Chrome, we'll just detect this case
8101 // explicitly
8102 if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
8103 return true;
8104 }
8105
8106 // Internet Explorer and Edge do not support colors.
8107 if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
8108 return false;
8109 }
8110
8111 // is webkit? http://stackoverflow.com/a/16459606/376773
8112 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
8113 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
8114 // is firebug? http://stackoverflow.com/a/398120/376773
8115 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
8116 // is firefox >= v31?
8117 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
8118 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
8119 // double check webkit in userAgent just in case we are in a worker
8120 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
8121}
8122
8123/**
8124 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
8125 */
8126
8127exports.formatters.j = function(v) {
8128 try {
8129 return JSON.stringify(v);
8130 } catch (err) {
8131 return '[UnexpectedJSONParseError]: ' + err.message;
8132 }
8133};
8134
8135
8136/**
8137 * Colorize log arguments if enabled.
8138 *
8139 * @api public
8140 */
8141
8142function formatArgs(args) {
8143 var useColors = this.useColors;
8144
8145 args[0] = (useColors ? '%c' : '')
8146 + this.namespace
8147 + (useColors ? ' %c' : ' ')
8148 + args[0]
8149 + (useColors ? '%c ' : ' ')
8150 + '+' + exports.humanize(this.diff);
8151
8152 if (!useColors) return;
8153
8154 var c = 'color: ' + this.color;
8155 args.splice(1, 0, c, 'color: inherit')
8156
8157 // the final "%c" is somewhat tricky, because there could be other
8158 // arguments passed either before or after the %c, so we need to
8159 // figure out the correct index to insert the CSS into
8160 var index = 0;
8161 var lastC = 0;
8162 args[0].replace(/%[a-zA-Z%]/g, function(match) {
8163 if ('%%' === match) return;
8164 index++;
8165 if ('%c' === match) {
8166 // we only are interested in the *last* %c
8167 // (the user may have provided their own)
8168 lastC = index;
8169 }
8170 });
8171
8172 args.splice(lastC, 0, c);
8173}
8174
8175/**
8176 * Invokes `console.log()` when available.
8177 * No-op when `console.log` is not a "function".
8178 *
8179 * @api public
8180 */
8181
8182function log() {
8183 // this hackery is required for IE8/9, where
8184 // the `console.log` function doesn't have 'apply'
8185 return 'object' === typeof console
8186 && console.log
8187 && Function.prototype.apply.call(console.log, console, arguments);
8188}
8189
8190/**
8191 * Save `namespaces`.
8192 *
8193 * @param {String} namespaces
8194 * @api private
8195 */
8196
8197function save(namespaces) {
8198 try {
8199 if (null == namespaces) {
8200 exports.storage.removeItem('debug');
8201 } else {
8202 exports.storage.debug = namespaces;
8203 }
8204 } catch(e) {}
8205}
8206
8207/**
8208 * Load `namespaces`.
8209 *
8210 * @return {String} returns the previously persisted debug modes
8211 * @api private
8212 */
8213
8214function load() {
8215 var r;
8216 try {
8217 r = exports.storage.debug;
8218 } catch(e) {}
8219
8220 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
8221 if (!r && typeof process !== 'undefined' && 'env' in process) {
8222 r = __webpack_require__.i({"NODE_ENV":"development","CRAFT_TOKEN":undefined,"CRAFT_URL":undefined}).DEBUG;
8223 }
8224
8225 return r;
8226}
8227
8228/**
8229 * Enable namespaces listed in `localStorage.debug` initially.
8230 */
8231
8232exports.enable(load());
8233
8234/**
8235 * Localstorage attempts to return the localstorage.
8236 *
8237 * This is necessary because safari throws
8238 * when a user disables cookies/localstorage
8239 * and you attempt to access it.
8240 *
8241 * @return {LocalStorage}
8242 * @api private
8243 */
8244
8245function localstorage() {
8246 try {
8247 return window.localStorage;
8248 } catch (e) {}
8249}
8250
8251/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
8252
8253/***/ }),
8254/* 20 */
8255/***/ (function(module, exports) {
8256
8257// Copyright Joyent, Inc. and other Node contributors.
8258//
8259// Permission is hereby granted, free of charge, to any person obtaining a
8260// copy of this software and associated documentation files (the
8261// "Software"), to deal in the Software without restriction, including
8262// without limitation the rights to use, copy, modify, merge, publish,
8263// distribute, sublicense, and/or sell copies of the Software, and to permit
8264// persons to whom the Software is furnished to do so, subject to the
8265// following conditions:
8266//
8267// The above copyright notice and this permission notice shall be included
8268// in all copies or substantial portions of the Software.
8269//
8270// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
8271// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
8272// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
8273// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
8274// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
8275// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
8276// USE OR OTHER DEALINGS IN THE SOFTWARE.
8277
8278function EventEmitter() {
8279 this._events = this._events || {};
8280 this._maxListeners = this._maxListeners || undefined;
8281}
8282module.exports = EventEmitter;
8283
8284// Backwards-compat with node 0.10.x
8285EventEmitter.EventEmitter = EventEmitter;
8286
8287EventEmitter.prototype._events = undefined;
8288EventEmitter.prototype._maxListeners = undefined;
8289
8290// By default EventEmitters will print a warning if more than 10 listeners are
8291// added to it. This is a useful default which helps finding memory leaks.
8292EventEmitter.defaultMaxListeners = 10;
8293
8294// Obviously not all Emitters should be limited to 10. This function allows
8295// that to be increased. Set to zero for unlimited.
8296EventEmitter.prototype.setMaxListeners = function(n) {
8297 if (!isNumber(n) || n < 0 || isNaN(n))
8298 throw TypeError('n must be a positive number');
8299 this._maxListeners = n;
8300 return this;
8301};
8302
8303EventEmitter.prototype.emit = function(type) {
8304 var er, handler, len, args, i, listeners;
8305
8306 if (!this._events)
8307 this._events = {};
8308
8309 // If there is no 'error' event listener then throw.
8310 if (type === 'error') {
8311 if (!this._events.error ||
8312 (isObject(this._events.error) && !this._events.error.length)) {
8313 er = arguments[1];
8314 if (er instanceof Error) {
8315 throw er; // Unhandled 'error' event
8316 } else {
8317 // At least give some kind of context to the user
8318 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
8319 err.context = er;
8320 throw err;
8321 }
8322 }
8323 }
8324
8325 handler = this._events[type];
8326
8327 if (isUndefined(handler))
8328 return false;
8329
8330 if (isFunction(handler)) {
8331 switch (arguments.length) {
8332 // fast cases
8333 case 1:
8334 handler.call(this);
8335 break;
8336 case 2:
8337 handler.call(this, arguments[1]);
8338 break;
8339 case 3:
8340 handler.call(this, arguments[1], arguments[2]);
8341 break;
8342 // slower
8343 default:
8344 args = Array.prototype.slice.call(arguments, 1);
8345 handler.apply(this, args);
8346 }
8347 } else if (isObject(handler)) {
8348 args = Array.prototype.slice.call(arguments, 1);
8349 listeners = handler.slice();
8350 len = listeners.length;
8351 for (i = 0; i < len; i++)
8352 listeners[i].apply(this, args);
8353 }
8354
8355 return true;
8356};
8357
8358EventEmitter.prototype.addListener = function(type, listener) {
8359 var m;
8360
8361 if (!isFunction(listener))
8362 throw TypeError('listener must be a function');
8363
8364 if (!this._events)
8365 this._events = {};
8366
8367 // To avoid recursion in the case that type === "newListener"! Before
8368 // adding it to the listeners, first emit "newListener".
8369 if (this._events.newListener)
8370 this.emit('newListener', type,
8371 isFunction(listener.listener) ?
8372 listener.listener : listener);
8373
8374 if (!this._events[type])
8375 // Optimize the case of one listener. Don't need the extra array object.
8376 this._events[type] = listener;
8377 else if (isObject(this._events[type]))
8378 // If we've already got an array, just append.
8379 this._events[type].push(listener);
8380 else
8381 // Adding the second element, need to change to array.
8382 this._events[type] = [this._events[type], listener];
8383
8384 // Check for listener leak
8385 if (isObject(this._events[type]) && !this._events[type].warned) {
8386 if (!isUndefined(this._maxListeners)) {
8387 m = this._maxListeners;
8388 } else {
8389 m = EventEmitter.defaultMaxListeners;
8390 }
8391
8392 if (m && m > 0 && this._events[type].length > m) {
8393 this._events[type].warned = true;
8394 console.error('(node) warning: possible EventEmitter memory ' +
8395 'leak detected. %d listeners added. ' +
8396 'Use emitter.setMaxListeners() to increase limit.',
8397 this._events[type].length);
8398 if (typeof console.trace === 'function') {
8399 // not supported in IE 10
8400 console.trace();
8401 }
8402 }
8403 }
8404
8405 return this;
8406};
8407
8408EventEmitter.prototype.on = EventEmitter.prototype.addListener;
8409
8410EventEmitter.prototype.once = function(type, listener) {
8411 if (!isFunction(listener))
8412 throw TypeError('listener must be a function');
8413
8414 var fired = false;
8415
8416 function g() {
8417 this.removeListener(type, g);
8418
8419 if (!fired) {
8420 fired = true;
8421 listener.apply(this, arguments);
8422 }
8423 }
8424
8425 g.listener = listener;
8426 this.on(type, g);
8427
8428 return this;
8429};
8430
8431// emits a 'removeListener' event iff the listener was removed
8432EventEmitter.prototype.removeListener = function(type, listener) {
8433 var list, position, length, i;
8434
8435 if (!isFunction(listener))
8436 throw TypeError('listener must be a function');
8437
8438 if (!this._events || !this._events[type])
8439 return this;
8440
8441 list = this._events[type];
8442 length = list.length;
8443 position = -1;
8444
8445 if (list === listener ||
8446 (isFunction(list.listener) && list.listener === listener)) {
8447 delete this._events[type];
8448 if (this._events.removeListener)
8449 this.emit('removeListener', type, listener);
8450
8451 } else if (isObject(list)) {
8452 for (i = length; i-- > 0;) {
8453 if (list[i] === listener ||
8454 (list[i].listener && list[i].listener === listener)) {
8455 position = i;
8456 break;
8457 }
8458 }
8459
8460 if (position < 0)
8461 return this;
8462
8463 if (list.length === 1) {
8464 list.length = 0;
8465 delete this._events[type];
8466 } else {
8467 list.splice(position, 1);
8468 }
8469
8470 if (this._events.removeListener)
8471 this.emit('removeListener', type, listener);
8472 }
8473
8474 return this;
8475};
8476
8477EventEmitter.prototype.removeAllListeners = function(type) {
8478 var key, listeners;
8479
8480 if (!this._events)
8481 return this;
8482
8483 // not listening for removeListener, no need to emit
8484 if (!this._events.removeListener) {
8485 if (arguments.length === 0)
8486 this._events = {};
8487 else if (this._events[type])
8488 delete this._events[type];
8489 return this;
8490 }
8491
8492 // emit removeListener for all listeners on all events
8493 if (arguments.length === 0) {
8494 for (key in this._events) {
8495 if (key === 'removeListener') continue;
8496 this.removeAllListeners(key);
8497 }
8498 this.removeAllListeners('removeListener');
8499 this._events = {};
8500 return this;
8501 }
8502
8503 listeners = this._events[type];
8504
8505 if (isFunction(listeners)) {
8506 this.removeListener(type, listeners);
8507 } else if (listeners) {
8508 // LIFO order
8509 while (listeners.length)
8510 this.removeListener(type, listeners[listeners.length - 1]);
8511 }
8512 delete this._events[type];
8513
8514 return this;
8515};
8516
8517EventEmitter.prototype.listeners = function(type) {
8518 var ret;
8519 if (!this._events || !this._events[type])
8520 ret = [];
8521 else if (isFunction(this._events[type]))
8522 ret = [this._events[type]];
8523 else
8524 ret = this._events[type].slice();
8525 return ret;
8526};
8527
8528EventEmitter.prototype.listenerCount = function(type) {
8529 if (this._events) {
8530 var evlistener = this._events[type];
8531
8532 if (isFunction(evlistener))
8533 return 1;
8534 else if (evlistener)
8535 return evlistener.length;
8536 }
8537 return 0;
8538};
8539
8540EventEmitter.listenerCount = function(emitter, type) {
8541 return emitter.listenerCount(type);
8542};
8543
8544function isFunction(arg) {
8545 return typeof arg === 'function';
8546}
8547
8548function isNumber(arg) {
8549 return typeof arg === 'number';
8550}
8551
8552function isObject(arg) {
8553 return typeof arg === 'object' && arg !== null;
8554}
8555
8556function isUndefined(arg) {
8557 return arg === void 0;
8558}
8559
8560
8561/***/ }),
8562/* 21 */
8563/***/ (function(module, exports) {
8564
8565var toString = {}.toString;
8566
8567module.exports = Array.isArray || function (arr) {
8568 return toString.call(arr) == '[object Array]';
8569};
8570
8571
8572/***/ }),
8573/* 22 */
8574/***/ (function(module, exports, __webpack_require__) {
8575
8576//! moment.js locale configuration
8577
8578;(function (global, factory) {
8579 true ? factory(__webpack_require__(0)) :
8580 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8581 factory(global.moment)
8582}(this, (function (moment) { 'use strict';
8583
8584
8585 var af = moment.defineLocale('af', {
8586 months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
8587 monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
8588 weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
8589 weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
8590 weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
8591 meridiemParse: /vm|nm/i,
8592 isPM : function (input) {
8593 return /^nm$/i.test(input);
8594 },
8595 meridiem : function (hours, minutes, isLower) {
8596 if (hours < 12) {
8597 return isLower ? 'vm' : 'VM';
8598 } else {
8599 return isLower ? 'nm' : 'NM';
8600 }
8601 },
8602 longDateFormat : {
8603 LT : 'HH:mm',
8604 LTS : 'HH:mm:ss',
8605 L : 'DD/MM/YYYY',
8606 LL : 'D MMMM YYYY',
8607 LLL : 'D MMMM YYYY HH:mm',
8608 LLLL : 'dddd, D MMMM YYYY HH:mm'
8609 },
8610 calendar : {
8611 sameDay : '[Vandag om] LT',
8612 nextDay : '[Môre om] LT',
8613 nextWeek : 'dddd [om] LT',
8614 lastDay : '[Gister om] LT',
8615 lastWeek : '[Laas] dddd [om] LT',
8616 sameElse : 'L'
8617 },
8618 relativeTime : {
8619 future : 'oor %s',
8620 past : '%s gelede',
8621 s : '\'n paar sekondes',
8622 ss : '%d sekondes',
8623 m : '\'n minuut',
8624 mm : '%d minute',
8625 h : '\'n uur',
8626 hh : '%d ure',
8627 d : '\'n dag',
8628 dd : '%d dae',
8629 M : '\'n maand',
8630 MM : '%d maande',
8631 y : '\'n jaar',
8632 yy : '%d jaar'
8633 },
8634 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
8635 ordinal : function (number) {
8636 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
8637 },
8638 week : {
8639 dow : 1, // Maandag is die eerste dag van die week.
8640 doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
8641 }
8642 });
8643
8644 return af;
8645
8646})));
8647
8648
8649/***/ }),
8650/* 23 */
8651/***/ (function(module, exports, __webpack_require__) {
8652
8653//! moment.js locale configuration
8654
8655;(function (global, factory) {
8656 true ? factory(__webpack_require__(0)) :
8657 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8658 factory(global.moment)
8659}(this, (function (moment) { 'use strict';
8660
8661
8662 var arDz = moment.defineLocale('ar-dz', {
8663 months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
8664 monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
8665 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
8666 weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
8667 weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
8668 weekdaysParseExact : true,
8669 longDateFormat : {
8670 LT : 'HH:mm',
8671 LTS : 'HH:mm:ss',
8672 L : 'DD/MM/YYYY',
8673 LL : 'D MMMM YYYY',
8674 LLL : 'D MMMM YYYY HH:mm',
8675 LLLL : 'dddd D MMMM YYYY HH:mm'
8676 },
8677 calendar : {
8678 sameDay: '[اليوم على الساعة] LT',
8679 nextDay: '[غدا على الساعة] LT',
8680 nextWeek: 'dddd [على الساعة] LT',
8681 lastDay: '[أمس على الساعة] LT',
8682 lastWeek: 'dddd [على الساعة] LT',
8683 sameElse: 'L'
8684 },
8685 relativeTime : {
8686 future : 'في %s',
8687 past : 'منذ %s',
8688 s : 'ثوان',
8689 ss : '%d ثانية',
8690 m : 'دقيقة',
8691 mm : '%d دقائق',
8692 h : 'ساعة',
8693 hh : '%d ساعات',
8694 d : 'يوم',
8695 dd : '%d أيام',
8696 M : 'شهر',
8697 MM : '%d أشهر',
8698 y : 'سنة',
8699 yy : '%d سنوات'
8700 },
8701 week : {
8702 dow : 0, // Sunday is the first day of the week.
8703 doy : 4 // The week that contains Jan 1st is the first week of the year.
8704 }
8705 });
8706
8707 return arDz;
8708
8709})));
8710
8711
8712/***/ }),
8713/* 24 */
8714/***/ (function(module, exports, __webpack_require__) {
8715
8716//! moment.js locale configuration
8717
8718;(function (global, factory) {
8719 true ? factory(__webpack_require__(0)) :
8720 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8721 factory(global.moment)
8722}(this, (function (moment) { 'use strict';
8723
8724
8725 var arKw = moment.defineLocale('ar-kw', {
8726 months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
8727 monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
8728 weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
8729 weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
8730 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
8731 weekdaysParseExact : true,
8732 longDateFormat : {
8733 LT : 'HH:mm',
8734 LTS : 'HH:mm:ss',
8735 L : 'DD/MM/YYYY',
8736 LL : 'D MMMM YYYY',
8737 LLL : 'D MMMM YYYY HH:mm',
8738 LLLL : 'dddd D MMMM YYYY HH:mm'
8739 },
8740 calendar : {
8741 sameDay: '[اليوم على الساعة] LT',
8742 nextDay: '[غدا على الساعة] LT',
8743 nextWeek: 'dddd [على الساعة] LT',
8744 lastDay: '[أمس على الساعة] LT',
8745 lastWeek: 'dddd [على الساعة] LT',
8746 sameElse: 'L'
8747 },
8748 relativeTime : {
8749 future : 'في %s',
8750 past : 'منذ %s',
8751 s : 'ثوان',
8752 ss : '%d ثانية',
8753 m : 'دقيقة',
8754 mm : '%d دقائق',
8755 h : 'ساعة',
8756 hh : '%d ساعات',
8757 d : 'يوم',
8758 dd : '%d أيام',
8759 M : 'شهر',
8760 MM : '%d أشهر',
8761 y : 'سنة',
8762 yy : '%d سنوات'
8763 },
8764 week : {
8765 dow : 0, // Sunday is the first day of the week.
8766 doy : 12 // The week that contains Jan 1st is the first week of the year.
8767 }
8768 });
8769
8770 return arKw;
8771
8772})));
8773
8774
8775/***/ }),
8776/* 25 */
8777/***/ (function(module, exports, __webpack_require__) {
8778
8779//! moment.js locale configuration
8780
8781;(function (global, factory) {
8782 true ? factory(__webpack_require__(0)) :
8783 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8784 factory(global.moment)
8785}(this, (function (moment) { 'use strict';
8786
8787
8788 var symbolMap = {
8789 '1': '1',
8790 '2': '2',
8791 '3': '3',
8792 '4': '4',
8793 '5': '5',
8794 '6': '6',
8795 '7': '7',
8796 '8': '8',
8797 '9': '9',
8798 '0': '0'
8799 }, pluralForm = function (n) {
8800 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
8801 }, plurals = {
8802 s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
8803 m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
8804 h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
8805 d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
8806 M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
8807 y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
8808 }, pluralize = function (u) {
8809 return function (number, withoutSuffix, string, isFuture) {
8810 var f = pluralForm(number),
8811 str = plurals[u][pluralForm(number)];
8812 if (f === 2) {
8813 str = str[withoutSuffix ? 0 : 1];
8814 }
8815 return str.replace(/%d/i, number);
8816 };
8817 }, months = [
8818 'يناير',
8819 'فبراير',
8820 'مارس',
8821 'أبريل',
8822 'مايو',
8823 'يونيو',
8824 'يوليو',
8825 'أغسطس',
8826 'سبتمبر',
8827 'أكتوبر',
8828 'نوفمبر',
8829 'ديسمبر'
8830 ];
8831
8832 var arLy = moment.defineLocale('ar-ly', {
8833 months : months,
8834 monthsShort : months,
8835 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
8836 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
8837 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
8838 weekdaysParseExact : true,
8839 longDateFormat : {
8840 LT : 'HH:mm',
8841 LTS : 'HH:mm:ss',
8842 L : 'D/\u200FM/\u200FYYYY',
8843 LL : 'D MMMM YYYY',
8844 LLL : 'D MMMM YYYY HH:mm',
8845 LLLL : 'dddd D MMMM YYYY HH:mm'
8846 },
8847 meridiemParse: /ص|م/,
8848 isPM : function (input) {
8849 return 'م' === input;
8850 },
8851 meridiem : function (hour, minute, isLower) {
8852 if (hour < 12) {
8853 return 'ص';
8854 } else {
8855 return 'م';
8856 }
8857 },
8858 calendar : {
8859 sameDay: '[اليوم عند الساعة] LT',
8860 nextDay: '[غدًا عند الساعة] LT',
8861 nextWeek: 'dddd [عند الساعة] LT',
8862 lastDay: '[أمس عند الساعة] LT',
8863 lastWeek: 'dddd [عند الساعة] LT',
8864 sameElse: 'L'
8865 },
8866 relativeTime : {
8867 future : 'بعد %s',
8868 past : 'منذ %s',
8869 s : pluralize('s'),
8870 ss : pluralize('s'),
8871 m : pluralize('m'),
8872 mm : pluralize('m'),
8873 h : pluralize('h'),
8874 hh : pluralize('h'),
8875 d : pluralize('d'),
8876 dd : pluralize('d'),
8877 M : pluralize('M'),
8878 MM : pluralize('M'),
8879 y : pluralize('y'),
8880 yy : pluralize('y')
8881 },
8882 preparse: function (string) {
8883 return string.replace(/،/g, ',');
8884 },
8885 postformat: function (string) {
8886 return string.replace(/\d/g, function (match) {
8887 return symbolMap[match];
8888 }).replace(/,/g, '،');
8889 },
8890 week : {
8891 dow : 6, // Saturday is the first day of the week.
8892 doy : 12 // The week that contains Jan 1st is the first week of the year.
8893 }
8894 });
8895
8896 return arLy;
8897
8898})));
8899
8900
8901/***/ }),
8902/* 26 */
8903/***/ (function(module, exports, __webpack_require__) {
8904
8905//! moment.js locale configuration
8906
8907;(function (global, factory) {
8908 true ? factory(__webpack_require__(0)) :
8909 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8910 factory(global.moment)
8911}(this, (function (moment) { 'use strict';
8912
8913
8914 var arMa = moment.defineLocale('ar-ma', {
8915 months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
8916 monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
8917 weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
8918 weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
8919 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
8920 weekdaysParseExact : true,
8921 longDateFormat : {
8922 LT : 'HH:mm',
8923 LTS : 'HH:mm:ss',
8924 L : 'DD/MM/YYYY',
8925 LL : 'D MMMM YYYY',
8926 LLL : 'D MMMM YYYY HH:mm',
8927 LLLL : 'dddd D MMMM YYYY HH:mm'
8928 },
8929 calendar : {
8930 sameDay: '[اليوم على الساعة] LT',
8931 nextDay: '[غدا على الساعة] LT',
8932 nextWeek: 'dddd [على الساعة] LT',
8933 lastDay: '[أمس على الساعة] LT',
8934 lastWeek: 'dddd [على الساعة] LT',
8935 sameElse: 'L'
8936 },
8937 relativeTime : {
8938 future : 'في %s',
8939 past : 'منذ %s',
8940 s : 'ثوان',
8941 ss : '%d ثانية',
8942 m : 'دقيقة',
8943 mm : '%d دقائق',
8944 h : 'ساعة',
8945 hh : '%d ساعات',
8946 d : 'يوم',
8947 dd : '%d أيام',
8948 M : 'شهر',
8949 MM : '%d أشهر',
8950 y : 'سنة',
8951 yy : '%d سنوات'
8952 },
8953 week : {
8954 dow : 6, // Saturday is the first day of the week.
8955 doy : 12 // The week that contains Jan 1st is the first week of the year.
8956 }
8957 });
8958
8959 return arMa;
8960
8961})));
8962
8963
8964/***/ }),
8965/* 27 */
8966/***/ (function(module, exports, __webpack_require__) {
8967
8968//! moment.js locale configuration
8969
8970;(function (global, factory) {
8971 true ? factory(__webpack_require__(0)) :
8972 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
8973 factory(global.moment)
8974}(this, (function (moment) { 'use strict';
8975
8976
8977 var symbolMap = {
8978 '1': '١',
8979 '2': '٢',
8980 '3': '٣',
8981 '4': '٤',
8982 '5': '٥',
8983 '6': '٦',
8984 '7': '٧',
8985 '8': '٨',
8986 '9': '٩',
8987 '0': '٠'
8988 }, numberMap = {
8989 '١': '1',
8990 '٢': '2',
8991 '٣': '3',
8992 '٤': '4',
8993 '٥': '5',
8994 '٦': '6',
8995 '٧': '7',
8996 '٨': '8',
8997 '٩': '9',
8998 '٠': '0'
8999 };
9000
9001 var arSa = moment.defineLocale('ar-sa', {
9002 months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
9003 monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
9004 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
9005 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
9006 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
9007 weekdaysParseExact : true,
9008 longDateFormat : {
9009 LT : 'HH:mm',
9010 LTS : 'HH:mm:ss',
9011 L : 'DD/MM/YYYY',
9012 LL : 'D MMMM YYYY',
9013 LLL : 'D MMMM YYYY HH:mm',
9014 LLLL : 'dddd D MMMM YYYY HH:mm'
9015 },
9016 meridiemParse: /ص|م/,
9017 isPM : function (input) {
9018 return 'م' === input;
9019 },
9020 meridiem : function (hour, minute, isLower) {
9021 if (hour < 12) {
9022 return 'ص';
9023 } else {
9024 return 'م';
9025 }
9026 },
9027 calendar : {
9028 sameDay: '[اليوم على الساعة] LT',
9029 nextDay: '[غدا على الساعة] LT',
9030 nextWeek: 'dddd [على الساعة] LT',
9031 lastDay: '[أمس على الساعة] LT',
9032 lastWeek: 'dddd [على الساعة] LT',
9033 sameElse: 'L'
9034 },
9035 relativeTime : {
9036 future : 'في %s',
9037 past : 'منذ %s',
9038 s : 'ثوان',
9039 ss : '%d ثانية',
9040 m : 'دقيقة',
9041 mm : '%d دقائق',
9042 h : 'ساعة',
9043 hh : '%d ساعات',
9044 d : 'يوم',
9045 dd : '%d أيام',
9046 M : 'شهر',
9047 MM : '%d أشهر',
9048 y : 'سنة',
9049 yy : '%d سنوات'
9050 },
9051 preparse: function (string) {
9052 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
9053 return numberMap[match];
9054 }).replace(/،/g, ',');
9055 },
9056 postformat: function (string) {
9057 return string.replace(/\d/g, function (match) {
9058 return symbolMap[match];
9059 }).replace(/,/g, '،');
9060 },
9061 week : {
9062 dow : 0, // Sunday is the first day of the week.
9063 doy : 6 // The week that contains Jan 1st is the first week of the year.
9064 }
9065 });
9066
9067 return arSa;
9068
9069})));
9070
9071
9072/***/ }),
9073/* 28 */
9074/***/ (function(module, exports, __webpack_require__) {
9075
9076//! moment.js locale configuration
9077
9078;(function (global, factory) {
9079 true ? factory(__webpack_require__(0)) :
9080 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9081 factory(global.moment)
9082}(this, (function (moment) { 'use strict';
9083
9084
9085 var arTn = moment.defineLocale('ar-tn', {
9086 months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
9087 monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
9088 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
9089 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
9090 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
9091 weekdaysParseExact : true,
9092 longDateFormat: {
9093 LT: 'HH:mm',
9094 LTS: 'HH:mm:ss',
9095 L: 'DD/MM/YYYY',
9096 LL: 'D MMMM YYYY',
9097 LLL: 'D MMMM YYYY HH:mm',
9098 LLLL: 'dddd D MMMM YYYY HH:mm'
9099 },
9100 calendar: {
9101 sameDay: '[اليوم على الساعة] LT',
9102 nextDay: '[غدا على الساعة] LT',
9103 nextWeek: 'dddd [على الساعة] LT',
9104 lastDay: '[أمس على الساعة] LT',
9105 lastWeek: 'dddd [على الساعة] LT',
9106 sameElse: 'L'
9107 },
9108 relativeTime: {
9109 future: 'في %s',
9110 past: 'منذ %s',
9111 s: 'ثوان',
9112 ss : '%d ثانية',
9113 m: 'دقيقة',
9114 mm: '%d دقائق',
9115 h: 'ساعة',
9116 hh: '%d ساعات',
9117 d: 'يوم',
9118 dd: '%d أيام',
9119 M: 'شهر',
9120 MM: '%d أشهر',
9121 y: 'سنة',
9122 yy: '%d سنوات'
9123 },
9124 week: {
9125 dow: 1, // Monday is the first day of the week.
9126 doy: 4 // The week that contains Jan 4th is the first week of the year.
9127 }
9128 });
9129
9130 return arTn;
9131
9132})));
9133
9134
9135/***/ }),
9136/* 29 */
9137/***/ (function(module, exports, __webpack_require__) {
9138
9139//! moment.js locale configuration
9140
9141;(function (global, factory) {
9142 true ? factory(__webpack_require__(0)) :
9143 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9144 factory(global.moment)
9145}(this, (function (moment) { 'use strict';
9146
9147
9148 var symbolMap = {
9149 '1': '١',
9150 '2': '٢',
9151 '3': '٣',
9152 '4': '٤',
9153 '5': '٥',
9154 '6': '٦',
9155 '7': '٧',
9156 '8': '٨',
9157 '9': '٩',
9158 '0': '٠'
9159 }, numberMap = {
9160 '١': '1',
9161 '٢': '2',
9162 '٣': '3',
9163 '٤': '4',
9164 '٥': '5',
9165 '٦': '6',
9166 '٧': '7',
9167 '٨': '8',
9168 '٩': '9',
9169 '٠': '0'
9170 }, pluralForm = function (n) {
9171 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
9172 }, plurals = {
9173 s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
9174 m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
9175 h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
9176 d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
9177 M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
9178 y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
9179 }, pluralize = function (u) {
9180 return function (number, withoutSuffix, string, isFuture) {
9181 var f = pluralForm(number),
9182 str = plurals[u][pluralForm(number)];
9183 if (f === 2) {
9184 str = str[withoutSuffix ? 0 : 1];
9185 }
9186 return str.replace(/%d/i, number);
9187 };
9188 }, months = [
9189 'يناير',
9190 'فبراير',
9191 'مارس',
9192 'أبريل',
9193 'مايو',
9194 'يونيو',
9195 'يوليو',
9196 'أغسطس',
9197 'سبتمبر',
9198 'أكتوبر',
9199 'نوفمبر',
9200 'ديسمبر'
9201 ];
9202
9203 var ar = moment.defineLocale('ar', {
9204 months : months,
9205 monthsShort : months,
9206 weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
9207 weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
9208 weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
9209 weekdaysParseExact : true,
9210 longDateFormat : {
9211 LT : 'HH:mm',
9212 LTS : 'HH:mm:ss',
9213 L : 'D/\u200FM/\u200FYYYY',
9214 LL : 'D MMMM YYYY',
9215 LLL : 'D MMMM YYYY HH:mm',
9216 LLLL : 'dddd D MMMM YYYY HH:mm'
9217 },
9218 meridiemParse: /ص|م/,
9219 isPM : function (input) {
9220 return 'م' === input;
9221 },
9222 meridiem : function (hour, minute, isLower) {
9223 if (hour < 12) {
9224 return 'ص';
9225 } else {
9226 return 'م';
9227 }
9228 },
9229 calendar : {
9230 sameDay: '[اليوم عند الساعة] LT',
9231 nextDay: '[غدًا عند الساعة] LT',
9232 nextWeek: 'dddd [عند الساعة] LT',
9233 lastDay: '[أمس عند الساعة] LT',
9234 lastWeek: 'dddd [عند الساعة] LT',
9235 sameElse: 'L'
9236 },
9237 relativeTime : {
9238 future : 'بعد %s',
9239 past : 'منذ %s',
9240 s : pluralize('s'),
9241 ss : pluralize('s'),
9242 m : pluralize('m'),
9243 mm : pluralize('m'),
9244 h : pluralize('h'),
9245 hh : pluralize('h'),
9246 d : pluralize('d'),
9247 dd : pluralize('d'),
9248 M : pluralize('M'),
9249 MM : pluralize('M'),
9250 y : pluralize('y'),
9251 yy : pluralize('y')
9252 },
9253 preparse: function (string) {
9254 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
9255 return numberMap[match];
9256 }).replace(/،/g, ',');
9257 },
9258 postformat: function (string) {
9259 return string.replace(/\d/g, function (match) {
9260 return symbolMap[match];
9261 }).replace(/,/g, '،');
9262 },
9263 week : {
9264 dow : 6, // Saturday is the first day of the week.
9265 doy : 12 // The week that contains Jan 1st is the first week of the year.
9266 }
9267 });
9268
9269 return ar;
9270
9271})));
9272
9273
9274/***/ }),
9275/* 30 */
9276/***/ (function(module, exports, __webpack_require__) {
9277
9278//! moment.js locale configuration
9279
9280;(function (global, factory) {
9281 true ? factory(__webpack_require__(0)) :
9282 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9283 factory(global.moment)
9284}(this, (function (moment) { 'use strict';
9285
9286
9287 var suffixes = {
9288 1: '-inci',
9289 5: '-inci',
9290 8: '-inci',
9291 70: '-inci',
9292 80: '-inci',
9293 2: '-nci',
9294 7: '-nci',
9295 20: '-nci',
9296 50: '-nci',
9297 3: '-üncü',
9298 4: '-üncü',
9299 100: '-üncü',
9300 6: '-ncı',
9301 9: '-uncu',
9302 10: '-uncu',
9303 30: '-uncu',
9304 60: '-ıncı',
9305 90: '-ıncı'
9306 };
9307
9308 var az = moment.defineLocale('az', {
9309 months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
9310 monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
9311 weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
9312 weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
9313 weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
9314 weekdaysParseExact : true,
9315 longDateFormat : {
9316 LT : 'HH:mm',
9317 LTS : 'HH:mm:ss',
9318 L : 'DD.MM.YYYY',
9319 LL : 'D MMMM YYYY',
9320 LLL : 'D MMMM YYYY HH:mm',
9321 LLLL : 'dddd, D MMMM YYYY HH:mm'
9322 },
9323 calendar : {
9324 sameDay : '[bugün saat] LT',
9325 nextDay : '[sabah saat] LT',
9326 nextWeek : '[gələn həftə] dddd [saat] LT',
9327 lastDay : '[dünən] LT',
9328 lastWeek : '[keçən həftə] dddd [saat] LT',
9329 sameElse : 'L'
9330 },
9331 relativeTime : {
9332 future : '%s sonra',
9333 past : '%s əvvəl',
9334 s : 'birneçə saniyə',
9335 ss : '%d saniyə',
9336 m : 'bir dəqiqə',
9337 mm : '%d dəqiqə',
9338 h : 'bir saat',
9339 hh : '%d saat',
9340 d : 'bir gün',
9341 dd : '%d gün',
9342 M : 'bir ay',
9343 MM : '%d ay',
9344 y : 'bir il',
9345 yy : '%d il'
9346 },
9347 meridiemParse: /gecə|səhər|gündüz|axşam/,
9348 isPM : function (input) {
9349 return /^(gündüz|axşam)$/.test(input);
9350 },
9351 meridiem : function (hour, minute, isLower) {
9352 if (hour < 4) {
9353 return 'gecə';
9354 } else if (hour < 12) {
9355 return 'səhər';
9356 } else if (hour < 17) {
9357 return 'gündüz';
9358 } else {
9359 return 'axşam';
9360 }
9361 },
9362 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
9363 ordinal : function (number) {
9364 if (number === 0) { // special case for zero
9365 return number + '-ıncı';
9366 }
9367 var a = number % 10,
9368 b = number % 100 - a,
9369 c = number >= 100 ? 100 : null;
9370 return number + (suffixes[a] || suffixes[b] || suffixes[c]);
9371 },
9372 week : {
9373 dow : 1, // Monday is the first day of the week.
9374 doy : 7 // The week that contains Jan 1st is the first week of the year.
9375 }
9376 });
9377
9378 return az;
9379
9380})));
9381
9382
9383/***/ }),
9384/* 31 */
9385/***/ (function(module, exports, __webpack_require__) {
9386
9387//! moment.js locale configuration
9388
9389;(function (global, factory) {
9390 true ? factory(__webpack_require__(0)) :
9391 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9392 factory(global.moment)
9393}(this, (function (moment) { 'use strict';
9394
9395
9396 function plural(word, num) {
9397 var forms = word.split('_');
9398 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
9399 }
9400 function relativeTimeWithPlural(number, withoutSuffix, key) {
9401 var format = {
9402 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
9403 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
9404 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
9405 'dd': 'дзень_дні_дзён',
9406 'MM': 'месяц_месяцы_месяцаў',
9407 'yy': 'год_гады_гадоў'
9408 };
9409 if (key === 'm') {
9410 return withoutSuffix ? 'хвіліна' : 'хвіліну';
9411 }
9412 else if (key === 'h') {
9413 return withoutSuffix ? 'гадзіна' : 'гадзіну';
9414 }
9415 else {
9416 return number + ' ' + plural(format[key], +number);
9417 }
9418 }
9419
9420 var be = moment.defineLocale('be', {
9421 months : {
9422 format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
9423 standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
9424 },
9425 monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
9426 weekdays : {
9427 format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
9428 standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
9429 isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/
9430 },
9431 weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
9432 weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
9433 longDateFormat : {
9434 LT : 'HH:mm',
9435 LTS : 'HH:mm:ss',
9436 L : 'DD.MM.YYYY',
9437 LL : 'D MMMM YYYY г.',
9438 LLL : 'D MMMM YYYY г., HH:mm',
9439 LLLL : 'dddd, D MMMM YYYY г., HH:mm'
9440 },
9441 calendar : {
9442 sameDay: '[Сёння ў] LT',
9443 nextDay: '[Заўтра ў] LT',
9444 lastDay: '[Учора ў] LT',
9445 nextWeek: function () {
9446 return '[У] dddd [ў] LT';
9447 },
9448 lastWeek: function () {
9449 switch (this.day()) {
9450 case 0:
9451 case 3:
9452 case 5:
9453 case 6:
9454 return '[У мінулую] dddd [ў] LT';
9455 case 1:
9456 case 2:
9457 case 4:
9458 return '[У мінулы] dddd [ў] LT';
9459 }
9460 },
9461 sameElse: 'L'
9462 },
9463 relativeTime : {
9464 future : 'праз %s',
9465 past : '%s таму',
9466 s : 'некалькі секунд',
9467 m : relativeTimeWithPlural,
9468 mm : relativeTimeWithPlural,
9469 h : relativeTimeWithPlural,
9470 hh : relativeTimeWithPlural,
9471 d : 'дзень',
9472 dd : relativeTimeWithPlural,
9473 M : 'месяц',
9474 MM : relativeTimeWithPlural,
9475 y : 'год',
9476 yy : relativeTimeWithPlural
9477 },
9478 meridiemParse: /ночы|раніцы|дня|вечара/,
9479 isPM : function (input) {
9480 return /^(дня|вечара)$/.test(input);
9481 },
9482 meridiem : function (hour, minute, isLower) {
9483 if (hour < 4) {
9484 return 'ночы';
9485 } else if (hour < 12) {
9486 return 'раніцы';
9487 } else if (hour < 17) {
9488 return 'дня';
9489 } else {
9490 return 'вечара';
9491 }
9492 },
9493 dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
9494 ordinal: function (number, period) {
9495 switch (period) {
9496 case 'M':
9497 case 'd':
9498 case 'DDD':
9499 case 'w':
9500 case 'W':
9501 return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
9502 case 'D':
9503 return number + '-га';
9504 default:
9505 return number;
9506 }
9507 },
9508 week : {
9509 dow : 1, // Monday is the first day of the week.
9510 doy : 7 // The week that contains Jan 1st is the first week of the year.
9511 }
9512 });
9513
9514 return be;
9515
9516})));
9517
9518
9519/***/ }),
9520/* 32 */
9521/***/ (function(module, exports, __webpack_require__) {
9522
9523//! moment.js locale configuration
9524
9525;(function (global, factory) {
9526 true ? factory(__webpack_require__(0)) :
9527 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9528 factory(global.moment)
9529}(this, (function (moment) { 'use strict';
9530
9531
9532 var bg = moment.defineLocale('bg', {
9533 months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
9534 monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
9535 weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
9536 weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
9537 weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
9538 longDateFormat : {
9539 LT : 'H:mm',
9540 LTS : 'H:mm:ss',
9541 L : 'D.MM.YYYY',
9542 LL : 'D MMMM YYYY',
9543 LLL : 'D MMMM YYYY H:mm',
9544 LLLL : 'dddd, D MMMM YYYY H:mm'
9545 },
9546 calendar : {
9547 sameDay : '[Днес в] LT',
9548 nextDay : '[Утре в] LT',
9549 nextWeek : 'dddd [в] LT',
9550 lastDay : '[Вчера в] LT',
9551 lastWeek : function () {
9552 switch (this.day()) {
9553 case 0:
9554 case 3:
9555 case 6:
9556 return '[В изминалата] dddd [в] LT';
9557 case 1:
9558 case 2:
9559 case 4:
9560 case 5:
9561 return '[В изминалия] dddd [в] LT';
9562 }
9563 },
9564 sameElse : 'L'
9565 },
9566 relativeTime : {
9567 future : 'след %s',
9568 past : 'преди %s',
9569 s : 'няколко секунди',
9570 ss : '%d секунди',
9571 m : 'минута',
9572 mm : '%d минути',
9573 h : 'час',
9574 hh : '%d часа',
9575 d : 'ден',
9576 dd : '%d дни',
9577 M : 'месец',
9578 MM : '%d месеца',
9579 y : 'година',
9580 yy : '%d години'
9581 },
9582 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
9583 ordinal : function (number) {
9584 var lastDigit = number % 10,
9585 last2Digits = number % 100;
9586 if (number === 0) {
9587 return number + '-ев';
9588 } else if (last2Digits === 0) {
9589 return number + '-ен';
9590 } else if (last2Digits > 10 && last2Digits < 20) {
9591 return number + '-ти';
9592 } else if (lastDigit === 1) {
9593 return number + '-ви';
9594 } else if (lastDigit === 2) {
9595 return number + '-ри';
9596 } else if (lastDigit === 7 || lastDigit === 8) {
9597 return number + '-ми';
9598 } else {
9599 return number + '-ти';
9600 }
9601 },
9602 week : {
9603 dow : 1, // Monday is the first day of the week.
9604 doy : 7 // The week that contains Jan 1st is the first week of the year.
9605 }
9606 });
9607
9608 return bg;
9609
9610})));
9611
9612
9613/***/ }),
9614/* 33 */
9615/***/ (function(module, exports, __webpack_require__) {
9616
9617//! moment.js locale configuration
9618
9619;(function (global, factory) {
9620 true ? factory(__webpack_require__(0)) :
9621 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9622 factory(global.moment)
9623}(this, (function (moment) { 'use strict';
9624
9625
9626 var bm = moment.defineLocale('bm', {
9627 months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
9628 monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
9629 weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
9630 weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
9631 weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
9632 longDateFormat : {
9633 LT : 'HH:mm',
9634 LTS : 'HH:mm:ss',
9635 L : 'DD/MM/YYYY',
9636 LL : 'MMMM [tile] D [san] YYYY',
9637 LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
9638 LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
9639 },
9640 calendar : {
9641 sameDay : '[Bi lɛrɛ] LT',
9642 nextDay : '[Sini lɛrɛ] LT',
9643 nextWeek : 'dddd [don lɛrɛ] LT',
9644 lastDay : '[Kunu lɛrɛ] LT',
9645 lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
9646 sameElse : 'L'
9647 },
9648 relativeTime : {
9649 future : '%s kɔnɔ',
9650 past : 'a bɛ %s bɔ',
9651 s : 'sanga dama dama',
9652 ss : 'sekondi %d',
9653 m : 'miniti kelen',
9654 mm : 'miniti %d',
9655 h : 'lɛrɛ kelen',
9656 hh : 'lɛrɛ %d',
9657 d : 'tile kelen',
9658 dd : 'tile %d',
9659 M : 'kalo kelen',
9660 MM : 'kalo %d',
9661 y : 'san kelen',
9662 yy : 'san %d'
9663 },
9664 week : {
9665 dow : 1, // Monday is the first day of the week.
9666 doy : 4 // The week that contains Jan 4th is the first week of the year.
9667 }
9668 });
9669
9670 return bm;
9671
9672})));
9673
9674
9675/***/ }),
9676/* 34 */
9677/***/ (function(module, exports, __webpack_require__) {
9678
9679//! moment.js locale configuration
9680
9681;(function (global, factory) {
9682 true ? factory(__webpack_require__(0)) :
9683 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9684 factory(global.moment)
9685}(this, (function (moment) { 'use strict';
9686
9687
9688 var symbolMap = {
9689 '1': '১',
9690 '2': '২',
9691 '3': '৩',
9692 '4': '৪',
9693 '5': '৫',
9694 '6': '৬',
9695 '7': '৭',
9696 '8': '৮',
9697 '9': '৯',
9698 '0': '০'
9699 },
9700 numberMap = {
9701 '১': '1',
9702 '২': '2',
9703 '৩': '3',
9704 '৪': '4',
9705 '৫': '5',
9706 '৬': '6',
9707 '৭': '7',
9708 '৮': '8',
9709 '৯': '9',
9710 '০': '0'
9711 };
9712
9713 var bn = moment.defineLocale('bn', {
9714 months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
9715 monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
9716 weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
9717 weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
9718 weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
9719 longDateFormat : {
9720 LT : 'A h:mm সময়',
9721 LTS : 'A h:mm:ss সময়',
9722 L : 'DD/MM/YYYY',
9723 LL : 'D MMMM YYYY',
9724 LLL : 'D MMMM YYYY, A h:mm সময়',
9725 LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
9726 },
9727 calendar : {
9728 sameDay : '[আজ] LT',
9729 nextDay : '[আগামীকাল] LT',
9730 nextWeek : 'dddd, LT',
9731 lastDay : '[গতকাল] LT',
9732 lastWeek : '[গত] dddd, LT',
9733 sameElse : 'L'
9734 },
9735 relativeTime : {
9736 future : '%s পরে',
9737 past : '%s আগে',
9738 s : 'কয়েক সেকেন্ড',
9739 ss : '%d সেকেন্ড',
9740 m : 'এক মিনিট',
9741 mm : '%d মিনিট',
9742 h : 'এক ঘন্টা',
9743 hh : '%d ঘন্টা',
9744 d : 'এক দিন',
9745 dd : '%d দিন',
9746 M : 'এক মাস',
9747 MM : '%d মাস',
9748 y : 'এক বছর',
9749 yy : '%d বছর'
9750 },
9751 preparse: function (string) {
9752 return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
9753 return numberMap[match];
9754 });
9755 },
9756 postformat: function (string) {
9757 return string.replace(/\d/g, function (match) {
9758 return symbolMap[match];
9759 });
9760 },
9761 meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
9762 meridiemHour : function (hour, meridiem) {
9763 if (hour === 12) {
9764 hour = 0;
9765 }
9766 if ((meridiem === 'রাত' && hour >= 4) ||
9767 (meridiem === 'দুপুর' && hour < 5) ||
9768 meridiem === 'বিকাল') {
9769 return hour + 12;
9770 } else {
9771 return hour;
9772 }
9773 },
9774 meridiem : function (hour, minute, isLower) {
9775 if (hour < 4) {
9776 return 'রাত';
9777 } else if (hour < 10) {
9778 return 'সকাল';
9779 } else if (hour < 17) {
9780 return 'দুপুর';
9781 } else if (hour < 20) {
9782 return 'বিকাল';
9783 } else {
9784 return 'রাত';
9785 }
9786 },
9787 week : {
9788 dow : 0, // Sunday is the first day of the week.
9789 doy : 6 // The week that contains Jan 1st is the first week of the year.
9790 }
9791 });
9792
9793 return bn;
9794
9795})));
9796
9797
9798/***/ }),
9799/* 35 */
9800/***/ (function(module, exports, __webpack_require__) {
9801
9802//! moment.js locale configuration
9803
9804;(function (global, factory) {
9805 true ? factory(__webpack_require__(0)) :
9806 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9807 factory(global.moment)
9808}(this, (function (moment) { 'use strict';
9809
9810
9811 var symbolMap = {
9812 '1': '༡',
9813 '2': '༢',
9814 '3': '༣',
9815 '4': '༤',
9816 '5': '༥',
9817 '6': '༦',
9818 '7': '༧',
9819 '8': '༨',
9820 '9': '༩',
9821 '0': '༠'
9822 },
9823 numberMap = {
9824 '༡': '1',
9825 '༢': '2',
9826 '༣': '3',
9827 '༤': '4',
9828 '༥': '5',
9829 '༦': '6',
9830 '༧': '7',
9831 '༨': '8',
9832 '༩': '9',
9833 '༠': '0'
9834 };
9835
9836 var bo = moment.defineLocale('bo', {
9837 months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
9838 monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
9839 weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
9840 weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
9841 weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
9842 longDateFormat : {
9843 LT : 'A h:mm',
9844 LTS : 'A h:mm:ss',
9845 L : 'DD/MM/YYYY',
9846 LL : 'D MMMM YYYY',
9847 LLL : 'D MMMM YYYY, A h:mm',
9848 LLLL : 'dddd, D MMMM YYYY, A h:mm'
9849 },
9850 calendar : {
9851 sameDay : '[དི་རིང] LT',
9852 nextDay : '[སང་ཉིན] LT',
9853 nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
9854 lastDay : '[ཁ་སང] LT',
9855 lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
9856 sameElse : 'L'
9857 },
9858 relativeTime : {
9859 future : '%s ལ་',
9860 past : '%s སྔན་ལ',
9861 s : 'ལམ་སང',
9862 ss : '%d སྐར་ཆ།',
9863 m : 'སྐར་མ་གཅིག',
9864 mm : '%d སྐར་མ',
9865 h : 'ཆུ་ཚོད་གཅིག',
9866 hh : '%d ཆུ་ཚོད',
9867 d : 'ཉིན་གཅིག',
9868 dd : '%d ཉིན་',
9869 M : 'ཟླ་བ་གཅིག',
9870 MM : '%d ཟླ་བ',
9871 y : 'ལོ་གཅིག',
9872 yy : '%d ལོ'
9873 },
9874 preparse: function (string) {
9875 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
9876 return numberMap[match];
9877 });
9878 },
9879 postformat: function (string) {
9880 return string.replace(/\d/g, function (match) {
9881 return symbolMap[match];
9882 });
9883 },
9884 meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
9885 meridiemHour : function (hour, meridiem) {
9886 if (hour === 12) {
9887 hour = 0;
9888 }
9889 if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
9890 (meridiem === 'ཉིན་གུང' && hour < 5) ||
9891 meridiem === 'དགོང་དག') {
9892 return hour + 12;
9893 } else {
9894 return hour;
9895 }
9896 },
9897 meridiem : function (hour, minute, isLower) {
9898 if (hour < 4) {
9899 return 'མཚན་མོ';
9900 } else if (hour < 10) {
9901 return 'ཞོགས་ཀས';
9902 } else if (hour < 17) {
9903 return 'ཉིན་གུང';
9904 } else if (hour < 20) {
9905 return 'དགོང་དག';
9906 } else {
9907 return 'མཚན་མོ';
9908 }
9909 },
9910 week : {
9911 dow : 0, // Sunday is the first day of the week.
9912 doy : 6 // The week that contains Jan 1st is the first week of the year.
9913 }
9914 });
9915
9916 return bo;
9917
9918})));
9919
9920
9921/***/ }),
9922/* 36 */
9923/***/ (function(module, exports, __webpack_require__) {
9924
9925//! moment.js locale configuration
9926
9927;(function (global, factory) {
9928 true ? factory(__webpack_require__(0)) :
9929 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
9930 factory(global.moment)
9931}(this, (function (moment) { 'use strict';
9932
9933
9934 function relativeTimeWithMutation(number, withoutSuffix, key) {
9935 var format = {
9936 'mm': 'munutenn',
9937 'MM': 'miz',
9938 'dd': 'devezh'
9939 };
9940 return number + ' ' + mutation(format[key], number);
9941 }
9942 function specialMutationForYears(number) {
9943 switch (lastNumber(number)) {
9944 case 1:
9945 case 3:
9946 case 4:
9947 case 5:
9948 case 9:
9949 return number + ' bloaz';
9950 default:
9951 return number + ' vloaz';
9952 }
9953 }
9954 function lastNumber(number) {
9955 if (number > 9) {
9956 return lastNumber(number % 10);
9957 }
9958 return number;
9959 }
9960 function mutation(text, number) {
9961 if (number === 2) {
9962 return softMutation(text);
9963 }
9964 return text;
9965 }
9966 function softMutation(text) {
9967 var mutationTable = {
9968 'm': 'v',
9969 'b': 'v',
9970 'd': 'z'
9971 };
9972 if (mutationTable[text.charAt(0)] === undefined) {
9973 return text;
9974 }
9975 return mutationTable[text.charAt(0)] + text.substring(1);
9976 }
9977
9978 var br = moment.defineLocale('br', {
9979 months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
9980 monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
9981 weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
9982 weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
9983 weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
9984 weekdaysParseExact : true,
9985 longDateFormat : {
9986 LT : 'h[e]mm A',
9987 LTS : 'h[e]mm:ss A',
9988 L : 'DD/MM/YYYY',
9989 LL : 'D [a viz] MMMM YYYY',
9990 LLL : 'D [a viz] MMMM YYYY h[e]mm A',
9991 LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
9992 },
9993 calendar : {
9994 sameDay : '[Hiziv da] LT',
9995 nextDay : '[Warc\'hoazh da] LT',
9996 nextWeek : 'dddd [da] LT',
9997 lastDay : '[Dec\'h da] LT',
9998 lastWeek : 'dddd [paset da] LT',
9999 sameElse : 'L'
10000 },
10001 relativeTime : {
10002 future : 'a-benn %s',
10003 past : '%s \'zo',
10004 s : 'un nebeud segondennoù',
10005 ss : '%d eilenn',
10006 m : 'ur vunutenn',
10007 mm : relativeTimeWithMutation,
10008 h : 'un eur',
10009 hh : '%d eur',
10010 d : 'un devezh',
10011 dd : relativeTimeWithMutation,
10012 M : 'ur miz',
10013 MM : relativeTimeWithMutation,
10014 y : 'ur bloaz',
10015 yy : specialMutationForYears
10016 },
10017 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
10018 ordinal : function (number) {
10019 var output = (number === 1) ? 'añ' : 'vet';
10020 return number + output;
10021 },
10022 week : {
10023 dow : 1, // Monday is the first day of the week.
10024 doy : 4 // The week that contains Jan 4th is the first week of the year.
10025 }
10026 });
10027
10028 return br;
10029
10030})));
10031
10032
10033/***/ }),
10034/* 37 */
10035/***/ (function(module, exports, __webpack_require__) {
10036
10037//! moment.js locale configuration
10038
10039;(function (global, factory) {
10040 true ? factory(__webpack_require__(0)) :
10041 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10042 factory(global.moment)
10043}(this, (function (moment) { 'use strict';
10044
10045
10046 function translate(number, withoutSuffix, key) {
10047 var result = number + ' ';
10048 switch (key) {
10049 case 'ss':
10050 if (number === 1) {
10051 result += 'sekunda';
10052 } else if (number === 2 || number === 3 || number === 4) {
10053 result += 'sekunde';
10054 } else {
10055 result += 'sekundi';
10056 }
10057 return result;
10058 case 'm':
10059 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
10060 case 'mm':
10061 if (number === 1) {
10062 result += 'minuta';
10063 } else if (number === 2 || number === 3 || number === 4) {
10064 result += 'minute';
10065 } else {
10066 result += 'minuta';
10067 }
10068 return result;
10069 case 'h':
10070 return withoutSuffix ? 'jedan sat' : 'jednog sata';
10071 case 'hh':
10072 if (number === 1) {
10073 result += 'sat';
10074 } else if (number === 2 || number === 3 || number === 4) {
10075 result += 'sata';
10076 } else {
10077 result += 'sati';
10078 }
10079 return result;
10080 case 'dd':
10081 if (number === 1) {
10082 result += 'dan';
10083 } else {
10084 result += 'dana';
10085 }
10086 return result;
10087 case 'MM':
10088 if (number === 1) {
10089 result += 'mjesec';
10090 } else if (number === 2 || number === 3 || number === 4) {
10091 result += 'mjeseca';
10092 } else {
10093 result += 'mjeseci';
10094 }
10095 return result;
10096 case 'yy':
10097 if (number === 1) {
10098 result += 'godina';
10099 } else if (number === 2 || number === 3 || number === 4) {
10100 result += 'godine';
10101 } else {
10102 result += 'godina';
10103 }
10104 return result;
10105 }
10106 }
10107
10108 var bs = moment.defineLocale('bs', {
10109 months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
10110 monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
10111 monthsParseExact: true,
10112 weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
10113 weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
10114 weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
10115 weekdaysParseExact : true,
10116 longDateFormat : {
10117 LT : 'H:mm',
10118 LTS : 'H:mm:ss',
10119 L : 'DD.MM.YYYY',
10120 LL : 'D. MMMM YYYY',
10121 LLL : 'D. MMMM YYYY H:mm',
10122 LLLL : 'dddd, D. MMMM YYYY H:mm'
10123 },
10124 calendar : {
10125 sameDay : '[danas u] LT',
10126 nextDay : '[sutra u] LT',
10127 nextWeek : function () {
10128 switch (this.day()) {
10129 case 0:
10130 return '[u] [nedjelju] [u] LT';
10131 case 3:
10132 return '[u] [srijedu] [u] LT';
10133 case 6:
10134 return '[u] [subotu] [u] LT';
10135 case 1:
10136 case 2:
10137 case 4:
10138 case 5:
10139 return '[u] dddd [u] LT';
10140 }
10141 },
10142 lastDay : '[jučer u] LT',
10143 lastWeek : function () {
10144 switch (this.day()) {
10145 case 0:
10146 case 3:
10147 return '[prošlu] dddd [u] LT';
10148 case 6:
10149 return '[prošle] [subote] [u] LT';
10150 case 1:
10151 case 2:
10152 case 4:
10153 case 5:
10154 return '[prošli] dddd [u] LT';
10155 }
10156 },
10157 sameElse : 'L'
10158 },
10159 relativeTime : {
10160 future : 'za %s',
10161 past : 'prije %s',
10162 s : 'par sekundi',
10163 ss : translate,
10164 m : translate,
10165 mm : translate,
10166 h : translate,
10167 hh : translate,
10168 d : 'dan',
10169 dd : translate,
10170 M : 'mjesec',
10171 MM : translate,
10172 y : 'godinu',
10173 yy : translate
10174 },
10175 dayOfMonthOrdinalParse: /\d{1,2}\./,
10176 ordinal : '%d.',
10177 week : {
10178 dow : 1, // Monday is the first day of the week.
10179 doy : 7 // The week that contains Jan 1st is the first week of the year.
10180 }
10181 });
10182
10183 return bs;
10184
10185})));
10186
10187
10188/***/ }),
10189/* 38 */
10190/***/ (function(module, exports, __webpack_require__) {
10191
10192//! moment.js locale configuration
10193
10194;(function (global, factory) {
10195 true ? factory(__webpack_require__(0)) :
10196 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10197 factory(global.moment)
10198}(this, (function (moment) { 'use strict';
10199
10200
10201 var ca = moment.defineLocale('ca', {
10202 months : {
10203 standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
10204 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('_'),
10205 isFormat: /D[oD]?(\s)+MMMM/
10206 },
10207 monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
10208 monthsParseExact : true,
10209 weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
10210 weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
10211 weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
10212 weekdaysParseExact : true,
10213 longDateFormat : {
10214 LT : 'H:mm',
10215 LTS : 'H:mm:ss',
10216 L : 'DD/MM/YYYY',
10217 LL : 'D MMMM [de] YYYY',
10218 ll : 'D MMM YYYY',
10219 LLL : 'D MMMM [de] YYYY [a les] H:mm',
10220 lll : 'D MMM YYYY, H:mm',
10221 LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
10222 llll : 'ddd D MMM YYYY, H:mm'
10223 },
10224 calendar : {
10225 sameDay : function () {
10226 return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
10227 },
10228 nextDay : function () {
10229 return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
10230 },
10231 nextWeek : function () {
10232 return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
10233 },
10234 lastDay : function () {
10235 return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
10236 },
10237 lastWeek : function () {
10238 return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
10239 },
10240 sameElse : 'L'
10241 },
10242 relativeTime : {
10243 future : 'd\'aquí %s',
10244 past : 'fa %s',
10245 s : 'uns segons',
10246 ss : '%d segons',
10247 m : 'un minut',
10248 mm : '%d minuts',
10249 h : 'una hora',
10250 hh : '%d hores',
10251 d : 'un dia',
10252 dd : '%d dies',
10253 M : 'un mes',
10254 MM : '%d mesos',
10255 y : 'un any',
10256 yy : '%d anys'
10257 },
10258 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
10259 ordinal : function (number, period) {
10260 var output = (number === 1) ? 'r' :
10261 (number === 2) ? 'n' :
10262 (number === 3) ? 'r' :
10263 (number === 4) ? 't' : 'è';
10264 if (period === 'w' || period === 'W') {
10265 output = 'a';
10266 }
10267 return number + output;
10268 },
10269 week : {
10270 dow : 1, // Monday is the first day of the week.
10271 doy : 4 // The week that contains Jan 4th is the first week of the year.
10272 }
10273 });
10274
10275 return ca;
10276
10277})));
10278
10279
10280/***/ }),
10281/* 39 */
10282/***/ (function(module, exports, __webpack_require__) {
10283
10284//! moment.js locale configuration
10285
10286;(function (global, factory) {
10287 true ? factory(__webpack_require__(0)) :
10288 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10289 factory(global.moment)
10290}(this, (function (moment) { 'use strict';
10291
10292
10293 var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
10294 monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
10295 function plural(n) {
10296 return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
10297 }
10298 function translate(number, withoutSuffix, key, isFuture) {
10299 var result = number + ' ';
10300 switch (key) {
10301 case 's': // a few seconds / in a few seconds / a few seconds ago
10302 return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
10303 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
10304 if (withoutSuffix || isFuture) {
10305 return result + (plural(number) ? 'sekundy' : 'sekund');
10306 } else {
10307 return result + 'sekundami';
10308 }
10309 break;
10310 case 'm': // a minute / in a minute / a minute ago
10311 return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
10312 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
10313 if (withoutSuffix || isFuture) {
10314 return result + (plural(number) ? 'minuty' : 'minut');
10315 } else {
10316 return result + 'minutami';
10317 }
10318 break;
10319 case 'h': // an hour / in an hour / an hour ago
10320 return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
10321 case 'hh': // 9 hours / in 9 hours / 9 hours ago
10322 if (withoutSuffix || isFuture) {
10323 return result + (plural(number) ? 'hodiny' : 'hodin');
10324 } else {
10325 return result + 'hodinami';
10326 }
10327 break;
10328 case 'd': // a day / in a day / a day ago
10329 return (withoutSuffix || isFuture) ? 'den' : 'dnem';
10330 case 'dd': // 9 days / in 9 days / 9 days ago
10331 if (withoutSuffix || isFuture) {
10332 return result + (plural(number) ? 'dny' : 'dní');
10333 } else {
10334 return result + 'dny';
10335 }
10336 break;
10337 case 'M': // a month / in a month / a month ago
10338 return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
10339 case 'MM': // 9 months / in 9 months / 9 months ago
10340 if (withoutSuffix || isFuture) {
10341 return result + (plural(number) ? 'měsíce' : 'měsíců');
10342 } else {
10343 return result + 'měsíci';
10344 }
10345 break;
10346 case 'y': // a year / in a year / a year ago
10347 return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
10348 case 'yy': // 9 years / in 9 years / 9 years ago
10349 if (withoutSuffix || isFuture) {
10350 return result + (plural(number) ? 'roky' : 'let');
10351 } else {
10352 return result + 'lety';
10353 }
10354 break;
10355 }
10356 }
10357
10358 var cs = moment.defineLocale('cs', {
10359 months : months,
10360 monthsShort : monthsShort,
10361 monthsParse : (function (months, monthsShort) {
10362 var i, _monthsParse = [];
10363 for (i = 0; i < 12; i++) {
10364 // use custom parser to solve problem with July (červenec)
10365 _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
10366 }
10367 return _monthsParse;
10368 }(months, monthsShort)),
10369 shortMonthsParse : (function (monthsShort) {
10370 var i, _shortMonthsParse = [];
10371 for (i = 0; i < 12; i++) {
10372 _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
10373 }
10374 return _shortMonthsParse;
10375 }(monthsShort)),
10376 longMonthsParse : (function (months) {
10377 var i, _longMonthsParse = [];
10378 for (i = 0; i < 12; i++) {
10379 _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
10380 }
10381 return _longMonthsParse;
10382 }(months)),
10383 weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
10384 weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
10385 weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
10386 longDateFormat : {
10387 LT: 'H:mm',
10388 LTS : 'H:mm:ss',
10389 L : 'DD.MM.YYYY',
10390 LL : 'D. MMMM YYYY',
10391 LLL : 'D. MMMM YYYY H:mm',
10392 LLLL : 'dddd D. MMMM YYYY H:mm',
10393 l : 'D. M. YYYY'
10394 },
10395 calendar : {
10396 sameDay: '[dnes v] LT',
10397 nextDay: '[zítra v] LT',
10398 nextWeek: function () {
10399 switch (this.day()) {
10400 case 0:
10401 return '[v neděli v] LT';
10402 case 1:
10403 case 2:
10404 return '[v] dddd [v] LT';
10405 case 3:
10406 return '[ve středu v] LT';
10407 case 4:
10408 return '[ve čtvrtek v] LT';
10409 case 5:
10410 return '[v pátek v] LT';
10411 case 6:
10412 return '[v sobotu v] LT';
10413 }
10414 },
10415 lastDay: '[včera v] LT',
10416 lastWeek: function () {
10417 switch (this.day()) {
10418 case 0:
10419 return '[minulou neděli v] LT';
10420 case 1:
10421 case 2:
10422 return '[minulé] dddd [v] LT';
10423 case 3:
10424 return '[minulou středu v] LT';
10425 case 4:
10426 case 5:
10427 return '[minulý] dddd [v] LT';
10428 case 6:
10429 return '[minulou sobotu v] LT';
10430 }
10431 },
10432 sameElse: 'L'
10433 },
10434 relativeTime : {
10435 future : 'za %s',
10436 past : 'před %s',
10437 s : translate,
10438 ss : translate,
10439 m : translate,
10440 mm : translate,
10441 h : translate,
10442 hh : translate,
10443 d : translate,
10444 dd : translate,
10445 M : translate,
10446 MM : translate,
10447 y : translate,
10448 yy : translate
10449 },
10450 dayOfMonthOrdinalParse : /\d{1,2}\./,
10451 ordinal : '%d.',
10452 week : {
10453 dow : 1, // Monday is the first day of the week.
10454 doy : 4 // The week that contains Jan 4th is the first week of the year.
10455 }
10456 });
10457
10458 return cs;
10459
10460})));
10461
10462
10463/***/ }),
10464/* 40 */
10465/***/ (function(module, exports, __webpack_require__) {
10466
10467//! moment.js locale configuration
10468
10469;(function (global, factory) {
10470 true ? factory(__webpack_require__(0)) :
10471 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10472 factory(global.moment)
10473}(this, (function (moment) { 'use strict';
10474
10475
10476 var cv = moment.defineLocale('cv', {
10477 months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
10478 monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
10479 weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
10480 weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
10481 weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
10482 longDateFormat : {
10483 LT : 'HH:mm',
10484 LTS : 'HH:mm:ss',
10485 L : 'DD-MM-YYYY',
10486 LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
10487 LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
10488 LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
10489 },
10490 calendar : {
10491 sameDay: '[Паян] LT [сехетре]',
10492 nextDay: '[Ыран] LT [сехетре]',
10493 lastDay: '[Ӗнер] LT [сехетре]',
10494 nextWeek: '[Ҫитес] dddd LT [сехетре]',
10495 lastWeek: '[Иртнӗ] dddd LT [сехетре]',
10496 sameElse: 'L'
10497 },
10498 relativeTime : {
10499 future : function (output) {
10500 var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
10501 return output + affix;
10502 },
10503 past : '%s каялла',
10504 s : 'пӗр-ик ҫеккунт',
10505 ss : '%d ҫеккунт',
10506 m : 'пӗр минут',
10507 mm : '%d минут',
10508 h : 'пӗр сехет',
10509 hh : '%d сехет',
10510 d : 'пӗр кун',
10511 dd : '%d кун',
10512 M : 'пӗр уйӑх',
10513 MM : '%d уйӑх',
10514 y : 'пӗр ҫул',
10515 yy : '%d ҫул'
10516 },
10517 dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
10518 ordinal : '%d-мӗш',
10519 week : {
10520 dow : 1, // Monday is the first day of the week.
10521 doy : 7 // The week that contains Jan 1st is the first week of the year.
10522 }
10523 });
10524
10525 return cv;
10526
10527})));
10528
10529
10530/***/ }),
10531/* 41 */
10532/***/ (function(module, exports, __webpack_require__) {
10533
10534//! moment.js locale configuration
10535
10536;(function (global, factory) {
10537 true ? factory(__webpack_require__(0)) :
10538 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10539 factory(global.moment)
10540}(this, (function (moment) { 'use strict';
10541
10542
10543 var cy = moment.defineLocale('cy', {
10544 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
10545 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
10546 weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
10547 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
10548 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
10549 weekdaysParseExact : true,
10550 // time formats are the same as en-gb
10551 longDateFormat: {
10552 LT: 'HH:mm',
10553 LTS : 'HH:mm:ss',
10554 L: 'DD/MM/YYYY',
10555 LL: 'D MMMM YYYY',
10556 LLL: 'D MMMM YYYY HH:mm',
10557 LLLL: 'dddd, D MMMM YYYY HH:mm'
10558 },
10559 calendar: {
10560 sameDay: '[Heddiw am] LT',
10561 nextDay: '[Yfory am] LT',
10562 nextWeek: 'dddd [am] LT',
10563 lastDay: '[Ddoe am] LT',
10564 lastWeek: 'dddd [diwethaf am] LT',
10565 sameElse: 'L'
10566 },
10567 relativeTime: {
10568 future: 'mewn %s',
10569 past: '%s yn ôl',
10570 s: 'ychydig eiliadau',
10571 ss: '%d eiliad',
10572 m: 'munud',
10573 mm: '%d munud',
10574 h: 'awr',
10575 hh: '%d awr',
10576 d: 'diwrnod',
10577 dd: '%d diwrnod',
10578 M: 'mis',
10579 MM: '%d mis',
10580 y: 'blwyddyn',
10581 yy: '%d flynedd'
10582 },
10583 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
10584 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
10585 ordinal: function (number) {
10586 var b = number,
10587 output = '',
10588 lookup = [
10589 '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
10590 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
10591 ];
10592 if (b > 20) {
10593 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
10594 output = 'fed'; // not 30ain, 70ain or 90ain
10595 } else {
10596 output = 'ain';
10597 }
10598 } else if (b > 0) {
10599 output = lookup[b];
10600 }
10601 return number + output;
10602 },
10603 week : {
10604 dow : 1, // Monday is the first day of the week.
10605 doy : 4 // The week that contains Jan 4th is the first week of the year.
10606 }
10607 });
10608
10609 return cy;
10610
10611})));
10612
10613
10614/***/ }),
10615/* 42 */
10616/***/ (function(module, exports, __webpack_require__) {
10617
10618//! moment.js locale configuration
10619
10620;(function (global, factory) {
10621 true ? factory(__webpack_require__(0)) :
10622 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10623 factory(global.moment)
10624}(this, (function (moment) { 'use strict';
10625
10626
10627 var da = moment.defineLocale('da', {
10628 months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
10629 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
10630 weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
10631 weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
10632 weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
10633 longDateFormat : {
10634 LT : 'HH:mm',
10635 LTS : 'HH:mm:ss',
10636 L : 'DD.MM.YYYY',
10637 LL : 'D. MMMM YYYY',
10638 LLL : 'D. MMMM YYYY HH:mm',
10639 LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
10640 },
10641 calendar : {
10642 sameDay : '[i dag kl.] LT',
10643 nextDay : '[i morgen kl.] LT',
10644 nextWeek : 'på dddd [kl.] LT',
10645 lastDay : '[i går kl.] LT',
10646 lastWeek : '[i] dddd[s kl.] LT',
10647 sameElse : 'L'
10648 },
10649 relativeTime : {
10650 future : 'om %s',
10651 past : '%s siden',
10652 s : 'få sekunder',
10653 ss : '%d sekunder',
10654 m : 'et minut',
10655 mm : '%d minutter',
10656 h : 'en time',
10657 hh : '%d timer',
10658 d : 'en dag',
10659 dd : '%d dage',
10660 M : 'en måned',
10661 MM : '%d måneder',
10662 y : 'et år',
10663 yy : '%d år'
10664 },
10665 dayOfMonthOrdinalParse: /\d{1,2}\./,
10666 ordinal : '%d.',
10667 week : {
10668 dow : 1, // Monday is the first day of the week.
10669 doy : 4 // The week that contains Jan 4th is the first week of the year.
10670 }
10671 });
10672
10673 return da;
10674
10675})));
10676
10677
10678/***/ }),
10679/* 43 */
10680/***/ (function(module, exports, __webpack_require__) {
10681
10682//! moment.js locale configuration
10683
10684;(function (global, factory) {
10685 true ? factory(__webpack_require__(0)) :
10686 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10687 factory(global.moment)
10688}(this, (function (moment) { 'use strict';
10689
10690
10691 function processRelativeTime(number, withoutSuffix, key, isFuture) {
10692 var format = {
10693 'm': ['eine Minute', 'einer Minute'],
10694 'h': ['eine Stunde', 'einer Stunde'],
10695 'd': ['ein Tag', 'einem Tag'],
10696 'dd': [number + ' Tage', number + ' Tagen'],
10697 'M': ['ein Monat', 'einem Monat'],
10698 'MM': [number + ' Monate', number + ' Monaten'],
10699 'y': ['ein Jahr', 'einem Jahr'],
10700 'yy': [number + ' Jahre', number + ' Jahren']
10701 };
10702 return withoutSuffix ? format[key][0] : format[key][1];
10703 }
10704
10705 var deAt = moment.defineLocale('de-at', {
10706 months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
10707 monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
10708 monthsParseExact : true,
10709 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
10710 weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
10711 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
10712 weekdaysParseExact : true,
10713 longDateFormat : {
10714 LT: 'HH:mm',
10715 LTS: 'HH:mm:ss',
10716 L : 'DD.MM.YYYY',
10717 LL : 'D. MMMM YYYY',
10718 LLL : 'D. MMMM YYYY HH:mm',
10719 LLLL : 'dddd, D. MMMM YYYY HH:mm'
10720 },
10721 calendar : {
10722 sameDay: '[heute um] LT [Uhr]',
10723 sameElse: 'L',
10724 nextDay: '[morgen um] LT [Uhr]',
10725 nextWeek: 'dddd [um] LT [Uhr]',
10726 lastDay: '[gestern um] LT [Uhr]',
10727 lastWeek: '[letzten] dddd [um] LT [Uhr]'
10728 },
10729 relativeTime : {
10730 future : 'in %s',
10731 past : 'vor %s',
10732 s : 'ein paar Sekunden',
10733 ss : '%d Sekunden',
10734 m : processRelativeTime,
10735 mm : '%d Minuten',
10736 h : processRelativeTime,
10737 hh : '%d Stunden',
10738 d : processRelativeTime,
10739 dd : processRelativeTime,
10740 M : processRelativeTime,
10741 MM : processRelativeTime,
10742 y : processRelativeTime,
10743 yy : processRelativeTime
10744 },
10745 dayOfMonthOrdinalParse: /\d{1,2}\./,
10746 ordinal : '%d.',
10747 week : {
10748 dow : 1, // Monday is the first day of the week.
10749 doy : 4 // The week that contains Jan 4th is the first week of the year.
10750 }
10751 });
10752
10753 return deAt;
10754
10755})));
10756
10757
10758/***/ }),
10759/* 44 */
10760/***/ (function(module, exports, __webpack_require__) {
10761
10762//! moment.js locale configuration
10763
10764;(function (global, factory) {
10765 true ? factory(__webpack_require__(0)) :
10766 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10767 factory(global.moment)
10768}(this, (function (moment) { 'use strict';
10769
10770
10771 function processRelativeTime(number, withoutSuffix, key, isFuture) {
10772 var format = {
10773 'm': ['eine Minute', 'einer Minute'],
10774 'h': ['eine Stunde', 'einer Stunde'],
10775 'd': ['ein Tag', 'einem Tag'],
10776 'dd': [number + ' Tage', number + ' Tagen'],
10777 'M': ['ein Monat', 'einem Monat'],
10778 'MM': [number + ' Monate', number + ' Monaten'],
10779 'y': ['ein Jahr', 'einem Jahr'],
10780 'yy': [number + ' Jahre', number + ' Jahren']
10781 };
10782 return withoutSuffix ? format[key][0] : format[key][1];
10783 }
10784
10785 var deCh = moment.defineLocale('de-ch', {
10786 months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
10787 monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
10788 monthsParseExact : true,
10789 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
10790 weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
10791 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
10792 weekdaysParseExact : true,
10793 longDateFormat : {
10794 LT: 'HH:mm',
10795 LTS: 'HH:mm:ss',
10796 L : 'DD.MM.YYYY',
10797 LL : 'D. MMMM YYYY',
10798 LLL : 'D. MMMM YYYY HH:mm',
10799 LLLL : 'dddd, D. MMMM YYYY HH:mm'
10800 },
10801 calendar : {
10802 sameDay: '[heute um] LT [Uhr]',
10803 sameElse: 'L',
10804 nextDay: '[morgen um] LT [Uhr]',
10805 nextWeek: 'dddd [um] LT [Uhr]',
10806 lastDay: '[gestern um] LT [Uhr]',
10807 lastWeek: '[letzten] dddd [um] LT [Uhr]'
10808 },
10809 relativeTime : {
10810 future : 'in %s',
10811 past : 'vor %s',
10812 s : 'ein paar Sekunden',
10813 ss : '%d Sekunden',
10814 m : processRelativeTime,
10815 mm : '%d Minuten',
10816 h : processRelativeTime,
10817 hh : '%d Stunden',
10818 d : processRelativeTime,
10819 dd : processRelativeTime,
10820 M : processRelativeTime,
10821 MM : processRelativeTime,
10822 y : processRelativeTime,
10823 yy : processRelativeTime
10824 },
10825 dayOfMonthOrdinalParse: /\d{1,2}\./,
10826 ordinal : '%d.',
10827 week : {
10828 dow : 1, // Monday is the first day of the week.
10829 doy : 4 // The week that contains Jan 4th is the first week of the year.
10830 }
10831 });
10832
10833 return deCh;
10834
10835})));
10836
10837
10838/***/ }),
10839/* 45 */
10840/***/ (function(module, exports, __webpack_require__) {
10841
10842//! moment.js locale configuration
10843
10844;(function (global, factory) {
10845 true ? factory(__webpack_require__(0)) :
10846 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10847 factory(global.moment)
10848}(this, (function (moment) { 'use strict';
10849
10850
10851 function processRelativeTime(number, withoutSuffix, key, isFuture) {
10852 var format = {
10853 'm': ['eine Minute', 'einer Minute'],
10854 'h': ['eine Stunde', 'einer Stunde'],
10855 'd': ['ein Tag', 'einem Tag'],
10856 'dd': [number + ' Tage', number + ' Tagen'],
10857 'M': ['ein Monat', 'einem Monat'],
10858 'MM': [number + ' Monate', number + ' Monaten'],
10859 'y': ['ein Jahr', 'einem Jahr'],
10860 'yy': [number + ' Jahre', number + ' Jahren']
10861 };
10862 return withoutSuffix ? format[key][0] : format[key][1];
10863 }
10864
10865 var de = moment.defineLocale('de', {
10866 months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
10867 monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
10868 monthsParseExact : true,
10869 weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
10870 weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
10871 weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
10872 weekdaysParseExact : true,
10873 longDateFormat : {
10874 LT: 'HH:mm',
10875 LTS: 'HH:mm:ss',
10876 L : 'DD.MM.YYYY',
10877 LL : 'D. MMMM YYYY',
10878 LLL : 'D. MMMM YYYY HH:mm',
10879 LLLL : 'dddd, D. MMMM YYYY HH:mm'
10880 },
10881 calendar : {
10882 sameDay: '[heute um] LT [Uhr]',
10883 sameElse: 'L',
10884 nextDay: '[morgen um] LT [Uhr]',
10885 nextWeek: 'dddd [um] LT [Uhr]',
10886 lastDay: '[gestern um] LT [Uhr]',
10887 lastWeek: '[letzten] dddd [um] LT [Uhr]'
10888 },
10889 relativeTime : {
10890 future : 'in %s',
10891 past : 'vor %s',
10892 s : 'ein paar Sekunden',
10893 ss : '%d Sekunden',
10894 m : processRelativeTime,
10895 mm : '%d Minuten',
10896 h : processRelativeTime,
10897 hh : '%d Stunden',
10898 d : processRelativeTime,
10899 dd : processRelativeTime,
10900 M : processRelativeTime,
10901 MM : processRelativeTime,
10902 y : processRelativeTime,
10903 yy : processRelativeTime
10904 },
10905 dayOfMonthOrdinalParse: /\d{1,2}\./,
10906 ordinal : '%d.',
10907 week : {
10908 dow : 1, // Monday is the first day of the week.
10909 doy : 4 // The week that contains Jan 4th is the first week of the year.
10910 }
10911 });
10912
10913 return de;
10914
10915})));
10916
10917
10918/***/ }),
10919/* 46 */
10920/***/ (function(module, exports, __webpack_require__) {
10921
10922//! moment.js locale configuration
10923
10924;(function (global, factory) {
10925 true ? factory(__webpack_require__(0)) :
10926 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
10927 factory(global.moment)
10928}(this, (function (moment) { 'use strict';
10929
10930
10931 var months = [
10932 'ޖެނުއަރީ',
10933 'ފެބްރުއަރީ',
10934 'މާރިޗު',
10935 'އޭޕްރީލު',
10936 'މޭ',
10937 'ޖޫން',
10938 'ޖުލައި',
10939 'އޯގަސްޓު',
10940 'ސެޕްޓެމްބަރު',
10941 'އޮކްޓޯބަރު',
10942 'ނޮވެމްބަރު',
10943 'ޑިސެމްބަރު'
10944 ], weekdays = [
10945 'އާދިއްތަ',
10946 'ހޯމަ',
10947 'އަންގާރަ',
10948 'ބުދަ',
10949 'ބުރާސްފަތި',
10950 'ހުކުރު',
10951 'ހޮނިހިރު'
10952 ];
10953
10954 var dv = moment.defineLocale('dv', {
10955 months : months,
10956 monthsShort : months,
10957 weekdays : weekdays,
10958 weekdaysShort : weekdays,
10959 weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
10960 longDateFormat : {
10961
10962 LT : 'HH:mm',
10963 LTS : 'HH:mm:ss',
10964 L : 'D/M/YYYY',
10965 LL : 'D MMMM YYYY',
10966 LLL : 'D MMMM YYYY HH:mm',
10967 LLLL : 'dddd D MMMM YYYY HH:mm'
10968 },
10969 meridiemParse: /މކ|މފ/,
10970 isPM : function (input) {
10971 return 'މފ' === input;
10972 },
10973 meridiem : function (hour, minute, isLower) {
10974 if (hour < 12) {
10975 return 'މކ';
10976 } else {
10977 return 'މފ';
10978 }
10979 },
10980 calendar : {
10981 sameDay : '[މިއަދު] LT',
10982 nextDay : '[މާދަމާ] LT',
10983 nextWeek : 'dddd LT',
10984 lastDay : '[އިއްޔެ] LT',
10985 lastWeek : '[ފާއިތުވި] dddd LT',
10986 sameElse : 'L'
10987 },
10988 relativeTime : {
10989 future : 'ތެރޭގައި %s',
10990 past : 'ކުރިން %s',
10991 s : 'ސިކުންތުކޮޅެއް',
10992 ss : 'd% ސިކުންތު',
10993 m : 'މިނިޓެއް',
10994 mm : 'މިނިޓު %d',
10995 h : 'ގަޑިއިރެއް',
10996 hh : 'ގަޑިއިރު %d',
10997 d : 'ދުވަހެއް',
10998 dd : 'ދުވަސް %d',
10999 M : 'މަހެއް',
11000 MM : 'މަސް %d',
11001 y : 'އަހަރެއް',
11002 yy : 'އަހަރު %d'
11003 },
11004 preparse: function (string) {
11005 return string.replace(/،/g, ',');
11006 },
11007 postformat: function (string) {
11008 return string.replace(/,/g, '،');
11009 },
11010 week : {
11011 dow : 7, // Sunday is the first day of the week.
11012 doy : 12 // The week that contains Jan 1st is the first week of the year.
11013 }
11014 });
11015
11016 return dv;
11017
11018})));
11019
11020
11021/***/ }),
11022/* 47 */
11023/***/ (function(module, exports, __webpack_require__) {
11024
11025//! moment.js locale configuration
11026
11027;(function (global, factory) {
11028 true ? factory(__webpack_require__(0)) :
11029 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11030 factory(global.moment)
11031}(this, (function (moment) { 'use strict';
11032
11033 function isFunction(input) {
11034 return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
11035 }
11036
11037
11038 var el = moment.defineLocale('el', {
11039 monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
11040 monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
11041 months : function (momentToFormat, format) {
11042 if (!momentToFormat) {
11043 return this._monthsNominativeEl;
11044 } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
11045 return this._monthsGenitiveEl[momentToFormat.month()];
11046 } else {
11047 return this._monthsNominativeEl[momentToFormat.month()];
11048 }
11049 },
11050 monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
11051 weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
11052 weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
11053 weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
11054 meridiem : function (hours, minutes, isLower) {
11055 if (hours > 11) {
11056 return isLower ? 'μμ' : 'ΜΜ';
11057 } else {
11058 return isLower ? 'πμ' : 'ΠΜ';
11059 }
11060 },
11061 isPM : function (input) {
11062 return ((input + '').toLowerCase()[0] === 'μ');
11063 },
11064 meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
11065 longDateFormat : {
11066 LT : 'h:mm A',
11067 LTS : 'h:mm:ss A',
11068 L : 'DD/MM/YYYY',
11069 LL : 'D MMMM YYYY',
11070 LLL : 'D MMMM YYYY h:mm A',
11071 LLLL : 'dddd, D MMMM YYYY h:mm A'
11072 },
11073 calendarEl : {
11074 sameDay : '[Σήμερα {}] LT',
11075 nextDay : '[Αύριο {}] LT',
11076 nextWeek : 'dddd [{}] LT',
11077 lastDay : '[Χθες {}] LT',
11078 lastWeek : function () {
11079 switch (this.day()) {
11080 case 6:
11081 return '[το προηγούμενο] dddd [{}] LT';
11082 default:
11083 return '[την προηγούμενη] dddd [{}] LT';
11084 }
11085 },
11086 sameElse : 'L'
11087 },
11088 calendar : function (key, mom) {
11089 var output = this._calendarEl[key],
11090 hours = mom && mom.hours();
11091 if (isFunction(output)) {
11092 output = output.apply(mom);
11093 }
11094 return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
11095 },
11096 relativeTime : {
11097 future : 'σε %s',
11098 past : '%s πριν',
11099 s : 'λίγα δευτερόλεπτα',
11100 ss : '%d δευτερόλεπτα',
11101 m : 'ένα λεπτό',
11102 mm : '%d λεπτά',
11103 h : 'μία ώρα',
11104 hh : '%d ώρες',
11105 d : 'μία μέρα',
11106 dd : '%d μέρες',
11107 M : 'ένας μήνας',
11108 MM : '%d μήνες',
11109 y : 'ένας χρόνος',
11110 yy : '%d χρόνια'
11111 },
11112 dayOfMonthOrdinalParse: /\d{1,2}η/,
11113 ordinal: '%dη',
11114 week : {
11115 dow : 1, // Monday is the first day of the week.
11116 doy : 4 // The week that contains Jan 4st is the first week of the year.
11117 }
11118 });
11119
11120 return el;
11121
11122})));
11123
11124
11125/***/ }),
11126/* 48 */
11127/***/ (function(module, exports, __webpack_require__) {
11128
11129//! moment.js locale configuration
11130
11131;(function (global, factory) {
11132 true ? factory(__webpack_require__(0)) :
11133 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11134 factory(global.moment)
11135}(this, (function (moment) { 'use strict';
11136
11137
11138 var enAu = moment.defineLocale('en-au', {
11139 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11140 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11141 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11142 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11143 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11144 longDateFormat : {
11145 LT : 'h:mm A',
11146 LTS : 'h:mm:ss A',
11147 L : 'DD/MM/YYYY',
11148 LL : 'D MMMM YYYY',
11149 LLL : 'D MMMM YYYY h:mm A',
11150 LLLL : 'dddd, D MMMM YYYY h:mm A'
11151 },
11152 calendar : {
11153 sameDay : '[Today at] LT',
11154 nextDay : '[Tomorrow at] LT',
11155 nextWeek : 'dddd [at] LT',
11156 lastDay : '[Yesterday at] LT',
11157 lastWeek : '[Last] dddd [at] LT',
11158 sameElse : 'L'
11159 },
11160 relativeTime : {
11161 future : 'in %s',
11162 past : '%s ago',
11163 s : 'a few seconds',
11164 ss : '%d seconds',
11165 m : 'a minute',
11166 mm : '%d minutes',
11167 h : 'an hour',
11168 hh : '%d hours',
11169 d : 'a day',
11170 dd : '%d days',
11171 M : 'a month',
11172 MM : '%d months',
11173 y : 'a year',
11174 yy : '%d years'
11175 },
11176 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11177 ordinal : function (number) {
11178 var b = number % 10,
11179 output = (~~(number % 100 / 10) === 1) ? 'th' :
11180 (b === 1) ? 'st' :
11181 (b === 2) ? 'nd' :
11182 (b === 3) ? 'rd' : 'th';
11183 return number + output;
11184 },
11185 week : {
11186 dow : 1, // Monday is the first day of the week.
11187 doy : 4 // The week that contains Jan 4th is the first week of the year.
11188 }
11189 });
11190
11191 return enAu;
11192
11193})));
11194
11195
11196/***/ }),
11197/* 49 */
11198/***/ (function(module, exports, __webpack_require__) {
11199
11200//! moment.js locale configuration
11201
11202;(function (global, factory) {
11203 true ? factory(__webpack_require__(0)) :
11204 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11205 factory(global.moment)
11206}(this, (function (moment) { 'use strict';
11207
11208
11209 var enCa = moment.defineLocale('en-ca', {
11210 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11211 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11212 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11213 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11214 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11215 longDateFormat : {
11216 LT : 'h:mm A',
11217 LTS : 'h:mm:ss A',
11218 L : 'YYYY-MM-DD',
11219 LL : 'MMMM D, YYYY',
11220 LLL : 'MMMM D, YYYY h:mm A',
11221 LLLL : 'dddd, MMMM D, YYYY h:mm A'
11222 },
11223 calendar : {
11224 sameDay : '[Today at] LT',
11225 nextDay : '[Tomorrow at] LT',
11226 nextWeek : 'dddd [at] LT',
11227 lastDay : '[Yesterday at] LT',
11228 lastWeek : '[Last] dddd [at] LT',
11229 sameElse : 'L'
11230 },
11231 relativeTime : {
11232 future : 'in %s',
11233 past : '%s ago',
11234 s : 'a few seconds',
11235 ss : '%d seconds',
11236 m : 'a minute',
11237 mm : '%d minutes',
11238 h : 'an hour',
11239 hh : '%d hours',
11240 d : 'a day',
11241 dd : '%d days',
11242 M : 'a month',
11243 MM : '%d months',
11244 y : 'a year',
11245 yy : '%d years'
11246 },
11247 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11248 ordinal : function (number) {
11249 var b = number % 10,
11250 output = (~~(number % 100 / 10) === 1) ? 'th' :
11251 (b === 1) ? 'st' :
11252 (b === 2) ? 'nd' :
11253 (b === 3) ? 'rd' : 'th';
11254 return number + output;
11255 }
11256 });
11257
11258 return enCa;
11259
11260})));
11261
11262
11263/***/ }),
11264/* 50 */
11265/***/ (function(module, exports, __webpack_require__) {
11266
11267//! moment.js locale configuration
11268
11269;(function (global, factory) {
11270 true ? factory(__webpack_require__(0)) :
11271 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11272 factory(global.moment)
11273}(this, (function (moment) { 'use strict';
11274
11275
11276 var enGb = moment.defineLocale('en-gb', {
11277 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11278 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11279 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11280 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11281 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11282 longDateFormat : {
11283 LT : 'HH:mm',
11284 LTS : 'HH:mm:ss',
11285 L : 'DD/MM/YYYY',
11286 LL : 'D MMMM YYYY',
11287 LLL : 'D MMMM YYYY HH:mm',
11288 LLLL : 'dddd, D MMMM YYYY HH:mm'
11289 },
11290 calendar : {
11291 sameDay : '[Today at] LT',
11292 nextDay : '[Tomorrow at] LT',
11293 nextWeek : 'dddd [at] LT',
11294 lastDay : '[Yesterday at] LT',
11295 lastWeek : '[Last] dddd [at] LT',
11296 sameElse : 'L'
11297 },
11298 relativeTime : {
11299 future : 'in %s',
11300 past : '%s ago',
11301 s : 'a few seconds',
11302 ss : '%d seconds',
11303 m : 'a minute',
11304 mm : '%d minutes',
11305 h : 'an hour',
11306 hh : '%d hours',
11307 d : 'a day',
11308 dd : '%d days',
11309 M : 'a month',
11310 MM : '%d months',
11311 y : 'a year',
11312 yy : '%d years'
11313 },
11314 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11315 ordinal : function (number) {
11316 var b = number % 10,
11317 output = (~~(number % 100 / 10) === 1) ? 'th' :
11318 (b === 1) ? 'st' :
11319 (b === 2) ? 'nd' :
11320 (b === 3) ? 'rd' : 'th';
11321 return number + output;
11322 },
11323 week : {
11324 dow : 1, // Monday is the first day of the week.
11325 doy : 4 // The week that contains Jan 4th is the first week of the year.
11326 }
11327 });
11328
11329 return enGb;
11330
11331})));
11332
11333
11334/***/ }),
11335/* 51 */
11336/***/ (function(module, exports, __webpack_require__) {
11337
11338//! moment.js locale configuration
11339
11340;(function (global, factory) {
11341 true ? factory(__webpack_require__(0)) :
11342 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11343 factory(global.moment)
11344}(this, (function (moment) { 'use strict';
11345
11346
11347 var enIe = moment.defineLocale('en-ie', {
11348 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11349 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11350 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11351 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11352 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11353 longDateFormat : {
11354 LT : 'HH:mm',
11355 LTS : 'HH:mm:ss',
11356 L : 'DD-MM-YYYY',
11357 LL : 'D MMMM YYYY',
11358 LLL : 'D MMMM YYYY HH:mm',
11359 LLLL : 'dddd D MMMM YYYY HH:mm'
11360 },
11361 calendar : {
11362 sameDay : '[Today at] LT',
11363 nextDay : '[Tomorrow at] LT',
11364 nextWeek : 'dddd [at] LT',
11365 lastDay : '[Yesterday at] LT',
11366 lastWeek : '[Last] dddd [at] LT',
11367 sameElse : 'L'
11368 },
11369 relativeTime : {
11370 future : 'in %s',
11371 past : '%s ago',
11372 s : 'a few seconds',
11373 ss : '%d seconds',
11374 m : 'a minute',
11375 mm : '%d minutes',
11376 h : 'an hour',
11377 hh : '%d hours',
11378 d : 'a day',
11379 dd : '%d days',
11380 M : 'a month',
11381 MM : '%d months',
11382 y : 'a year',
11383 yy : '%d years'
11384 },
11385 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11386 ordinal : function (number) {
11387 var b = number % 10,
11388 output = (~~(number % 100 / 10) === 1) ? 'th' :
11389 (b === 1) ? 'st' :
11390 (b === 2) ? 'nd' :
11391 (b === 3) ? 'rd' : 'th';
11392 return number + output;
11393 },
11394 week : {
11395 dow : 1, // Monday is the first day of the week.
11396 doy : 4 // The week that contains Jan 4th is the first week of the year.
11397 }
11398 });
11399
11400 return enIe;
11401
11402})));
11403
11404
11405/***/ }),
11406/* 52 */
11407/***/ (function(module, exports, __webpack_require__) {
11408
11409//! moment.js locale configuration
11410
11411;(function (global, factory) {
11412 true ? factory(__webpack_require__(0)) :
11413 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11414 factory(global.moment)
11415}(this, (function (moment) { 'use strict';
11416
11417
11418 var enIl = moment.defineLocale('en-il', {
11419 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11420 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11421 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11422 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11423 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11424 longDateFormat : {
11425 LT : 'HH:mm',
11426 LTS : 'HH:mm:ss',
11427 L : 'DD/MM/YYYY',
11428 LL : 'D MMMM YYYY',
11429 LLL : 'D MMMM YYYY HH:mm',
11430 LLLL : 'dddd, D MMMM YYYY HH:mm'
11431 },
11432 calendar : {
11433 sameDay : '[Today at] LT',
11434 nextDay : '[Tomorrow at] LT',
11435 nextWeek : 'dddd [at] LT',
11436 lastDay : '[Yesterday at] LT',
11437 lastWeek : '[Last] dddd [at] LT',
11438 sameElse : 'L'
11439 },
11440 relativeTime : {
11441 future : 'in %s',
11442 past : '%s ago',
11443 s : 'a few seconds',
11444 m : 'a minute',
11445 mm : '%d minutes',
11446 h : 'an hour',
11447 hh : '%d hours',
11448 d : 'a day',
11449 dd : '%d days',
11450 M : 'a month',
11451 MM : '%d months',
11452 y : 'a year',
11453 yy : '%d years'
11454 },
11455 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11456 ordinal : function (number) {
11457 var b = number % 10,
11458 output = (~~(number % 100 / 10) === 1) ? 'th' :
11459 (b === 1) ? 'st' :
11460 (b === 2) ? 'nd' :
11461 (b === 3) ? 'rd' : 'th';
11462 return number + output;
11463 }
11464 });
11465
11466 return enIl;
11467
11468})));
11469
11470
11471/***/ }),
11472/* 53 */
11473/***/ (function(module, exports, __webpack_require__) {
11474
11475//! moment.js locale configuration
11476
11477;(function (global, factory) {
11478 true ? factory(__webpack_require__(0)) :
11479 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11480 factory(global.moment)
11481}(this, (function (moment) { 'use strict';
11482
11483
11484 var enNz = moment.defineLocale('en-nz', {
11485 months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
11486 monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
11487 weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
11488 weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
11489 weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
11490 longDateFormat : {
11491 LT : 'h:mm A',
11492 LTS : 'h:mm:ss A',
11493 L : 'DD/MM/YYYY',
11494 LL : 'D MMMM YYYY',
11495 LLL : 'D MMMM YYYY h:mm A',
11496 LLLL : 'dddd, D MMMM YYYY h:mm A'
11497 },
11498 calendar : {
11499 sameDay : '[Today at] LT',
11500 nextDay : '[Tomorrow at] LT',
11501 nextWeek : 'dddd [at] LT',
11502 lastDay : '[Yesterday at] LT',
11503 lastWeek : '[Last] dddd [at] LT',
11504 sameElse : 'L'
11505 },
11506 relativeTime : {
11507 future : 'in %s',
11508 past : '%s ago',
11509 s : 'a few seconds',
11510 ss : '%d seconds',
11511 m : 'a minute',
11512 mm : '%d minutes',
11513 h : 'an hour',
11514 hh : '%d hours',
11515 d : 'a day',
11516 dd : '%d days',
11517 M : 'a month',
11518 MM : '%d months',
11519 y : 'a year',
11520 yy : '%d years'
11521 },
11522 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
11523 ordinal : function (number) {
11524 var b = number % 10,
11525 output = (~~(number % 100 / 10) === 1) ? 'th' :
11526 (b === 1) ? 'st' :
11527 (b === 2) ? 'nd' :
11528 (b === 3) ? 'rd' : 'th';
11529 return number + output;
11530 },
11531 week : {
11532 dow : 1, // Monday is the first day of the week.
11533 doy : 4 // The week that contains Jan 4th is the first week of the year.
11534 }
11535 });
11536
11537 return enNz;
11538
11539})));
11540
11541
11542/***/ }),
11543/* 54 */
11544/***/ (function(module, exports, __webpack_require__) {
11545
11546//! moment.js locale configuration
11547
11548;(function (global, factory) {
11549 true ? factory(__webpack_require__(0)) :
11550 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11551 factory(global.moment)
11552}(this, (function (moment) { 'use strict';
11553
11554
11555 var eo = moment.defineLocale('eo', {
11556 months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
11557 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
11558 weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
11559 weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
11560 weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
11561 longDateFormat : {
11562 LT : 'HH:mm',
11563 LTS : 'HH:mm:ss',
11564 L : 'YYYY-MM-DD',
11565 LL : 'D[-a de] MMMM, YYYY',
11566 LLL : 'D[-a de] MMMM, YYYY HH:mm',
11567 LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
11568 },
11569 meridiemParse: /[ap]\.t\.m/i,
11570 isPM: function (input) {
11571 return input.charAt(0).toLowerCase() === 'p';
11572 },
11573 meridiem : function (hours, minutes, isLower) {
11574 if (hours > 11) {
11575 return isLower ? 'p.t.m.' : 'P.T.M.';
11576 } else {
11577 return isLower ? 'a.t.m.' : 'A.T.M.';
11578 }
11579 },
11580 calendar : {
11581 sameDay : '[Hodiaŭ je] LT',
11582 nextDay : '[Morgaŭ je] LT',
11583 nextWeek : 'dddd [je] LT',
11584 lastDay : '[Hieraŭ je] LT',
11585 lastWeek : '[pasinta] dddd [je] LT',
11586 sameElse : 'L'
11587 },
11588 relativeTime : {
11589 future : 'post %s',
11590 past : 'antaŭ %s',
11591 s : 'sekundoj',
11592 ss : '%d sekundoj',
11593 m : 'minuto',
11594 mm : '%d minutoj',
11595 h : 'horo',
11596 hh : '%d horoj',
11597 d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
11598 dd : '%d tagoj',
11599 M : 'monato',
11600 MM : '%d monatoj',
11601 y : 'jaro',
11602 yy : '%d jaroj'
11603 },
11604 dayOfMonthOrdinalParse: /\d{1,2}a/,
11605 ordinal : '%da',
11606 week : {
11607 dow : 1, // Monday is the first day of the week.
11608 doy : 7 // The week that contains Jan 1st is the first week of the year.
11609 }
11610 });
11611
11612 return eo;
11613
11614})));
11615
11616
11617/***/ }),
11618/* 55 */
11619/***/ (function(module, exports, __webpack_require__) {
11620
11621//! moment.js locale configuration
11622
11623;(function (global, factory) {
11624 true ? factory(__webpack_require__(0)) :
11625 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11626 factory(global.moment)
11627}(this, (function (moment) { 'use strict';
11628
11629
11630 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
11631 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
11632
11633 var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
11634 var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
11635
11636 var esDo = moment.defineLocale('es-do', {
11637 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
11638 monthsShort : function (m, format) {
11639 if (!m) {
11640 return monthsShortDot;
11641 } else if (/-MMM-/.test(format)) {
11642 return monthsShort[m.month()];
11643 } else {
11644 return monthsShortDot[m.month()];
11645 }
11646 },
11647 monthsRegex: monthsRegex,
11648 monthsShortRegex: monthsRegex,
11649 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
11650 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
11651 monthsParse: monthsParse,
11652 longMonthsParse: monthsParse,
11653 shortMonthsParse: monthsParse,
11654 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
11655 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
11656 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
11657 weekdaysParseExact : true,
11658 longDateFormat : {
11659 LT : 'h:mm A',
11660 LTS : 'h:mm:ss A',
11661 L : 'DD/MM/YYYY',
11662 LL : 'D [de] MMMM [de] YYYY',
11663 LLL : 'D [de] MMMM [de] YYYY h:mm A',
11664 LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
11665 },
11666 calendar : {
11667 sameDay : function () {
11668 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11669 },
11670 nextDay : function () {
11671 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11672 },
11673 nextWeek : function () {
11674 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11675 },
11676 lastDay : function () {
11677 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11678 },
11679 lastWeek : function () {
11680 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11681 },
11682 sameElse : 'L'
11683 },
11684 relativeTime : {
11685 future : 'en %s',
11686 past : 'hace %s',
11687 s : 'unos segundos',
11688 ss : '%d segundos',
11689 m : 'un minuto',
11690 mm : '%d minutos',
11691 h : 'una hora',
11692 hh : '%d horas',
11693 d : 'un día',
11694 dd : '%d días',
11695 M : 'un mes',
11696 MM : '%d meses',
11697 y : 'un año',
11698 yy : '%d años'
11699 },
11700 dayOfMonthOrdinalParse : /\d{1,2}º/,
11701 ordinal : '%dº',
11702 week : {
11703 dow : 1, // Monday is the first day of the week.
11704 doy : 4 // The week that contains Jan 4th is the first week of the year.
11705 }
11706 });
11707
11708 return esDo;
11709
11710})));
11711
11712
11713/***/ }),
11714/* 56 */
11715/***/ (function(module, exports, __webpack_require__) {
11716
11717//! moment.js locale configuration
11718
11719;(function (global, factory) {
11720 true ? factory(__webpack_require__(0)) :
11721 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11722 factory(global.moment)
11723}(this, (function (moment) { 'use strict';
11724
11725
11726 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
11727 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
11728
11729 var esUs = moment.defineLocale('es-us', {
11730 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
11731 monthsShort : function (m, format) {
11732 if (!m) {
11733 return monthsShortDot;
11734 } else if (/-MMM-/.test(format)) {
11735 return monthsShort[m.month()];
11736 } else {
11737 return monthsShortDot[m.month()];
11738 }
11739 },
11740 monthsParseExact : true,
11741 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
11742 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
11743 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
11744 weekdaysParseExact : true,
11745 longDateFormat : {
11746 LT : 'h:mm A',
11747 LTS : 'h:mm:ss A',
11748 L : 'MM/DD/YYYY',
11749 LL : 'MMMM [de] D [de] YYYY',
11750 LLL : 'MMMM [de] D [de] YYYY h:mm A',
11751 LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
11752 },
11753 calendar : {
11754 sameDay : function () {
11755 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11756 },
11757 nextDay : function () {
11758 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11759 },
11760 nextWeek : function () {
11761 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11762 },
11763 lastDay : function () {
11764 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11765 },
11766 lastWeek : function () {
11767 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11768 },
11769 sameElse : 'L'
11770 },
11771 relativeTime : {
11772 future : 'en %s',
11773 past : 'hace %s',
11774 s : 'unos segundos',
11775 ss : '%d segundos',
11776 m : 'un minuto',
11777 mm : '%d minutos',
11778 h : 'una hora',
11779 hh : '%d horas',
11780 d : 'un día',
11781 dd : '%d días',
11782 M : 'un mes',
11783 MM : '%d meses',
11784 y : 'un año',
11785 yy : '%d años'
11786 },
11787 dayOfMonthOrdinalParse : /\d{1,2}º/,
11788 ordinal : '%dº',
11789 week : {
11790 dow : 0, // Sunday is the first day of the week.
11791 doy : 6 // The week that contains Jan 1st is the first week of the year.
11792 }
11793 });
11794
11795 return esUs;
11796
11797})));
11798
11799
11800/***/ }),
11801/* 57 */
11802/***/ (function(module, exports, __webpack_require__) {
11803
11804//! moment.js locale configuration
11805
11806;(function (global, factory) {
11807 true ? factory(__webpack_require__(0)) :
11808 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11809 factory(global.moment)
11810}(this, (function (moment) { 'use strict';
11811
11812
11813 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
11814 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
11815
11816 var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
11817 var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
11818
11819 var es = moment.defineLocale('es', {
11820 months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
11821 monthsShort : function (m, format) {
11822 if (!m) {
11823 return monthsShortDot;
11824 } else if (/-MMM-/.test(format)) {
11825 return monthsShort[m.month()];
11826 } else {
11827 return monthsShortDot[m.month()];
11828 }
11829 },
11830 monthsRegex : monthsRegex,
11831 monthsShortRegex : monthsRegex,
11832 monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
11833 monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
11834 monthsParse : monthsParse,
11835 longMonthsParse : monthsParse,
11836 shortMonthsParse : monthsParse,
11837 weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
11838 weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
11839 weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
11840 weekdaysParseExact : true,
11841 longDateFormat : {
11842 LT : 'H:mm',
11843 LTS : 'H:mm:ss',
11844 L : 'DD/MM/YYYY',
11845 LL : 'D [de] MMMM [de] YYYY',
11846 LLL : 'D [de] MMMM [de] YYYY H:mm',
11847 LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
11848 },
11849 calendar : {
11850 sameDay : function () {
11851 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11852 },
11853 nextDay : function () {
11854 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11855 },
11856 nextWeek : function () {
11857 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11858 },
11859 lastDay : function () {
11860 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11861 },
11862 lastWeek : function () {
11863 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
11864 },
11865 sameElse : 'L'
11866 },
11867 relativeTime : {
11868 future : 'en %s',
11869 past : 'hace %s',
11870 s : 'unos segundos',
11871 ss : '%d segundos',
11872 m : 'un minuto',
11873 mm : '%d minutos',
11874 h : 'una hora',
11875 hh : '%d horas',
11876 d : 'un día',
11877 dd : '%d días',
11878 M : 'un mes',
11879 MM : '%d meses',
11880 y : 'un año',
11881 yy : '%d años'
11882 },
11883 dayOfMonthOrdinalParse : /\d{1,2}º/,
11884 ordinal : '%dº',
11885 week : {
11886 dow : 1, // Monday is the first day of the week.
11887 doy : 4 // The week that contains Jan 4th is the first week of the year.
11888 }
11889 });
11890
11891 return es;
11892
11893})));
11894
11895
11896/***/ }),
11897/* 58 */
11898/***/ (function(module, exports, __webpack_require__) {
11899
11900//! moment.js locale configuration
11901
11902;(function (global, factory) {
11903 true ? factory(__webpack_require__(0)) :
11904 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11905 factory(global.moment)
11906}(this, (function (moment) { 'use strict';
11907
11908
11909 function processRelativeTime(number, withoutSuffix, key, isFuture) {
11910 var format = {
11911 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
11912 'ss': [number + 'sekundi', number + 'sekundit'],
11913 'm' : ['ühe minuti', 'üks minut'],
11914 'mm': [number + ' minuti', number + ' minutit'],
11915 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
11916 'hh': [number + ' tunni', number + ' tundi'],
11917 'd' : ['ühe päeva', 'üks päev'],
11918 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
11919 'MM': [number + ' kuu', number + ' kuud'],
11920 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
11921 'yy': [number + ' aasta', number + ' aastat']
11922 };
11923 if (withoutSuffix) {
11924 return format[key][2] ? format[key][2] : format[key][1];
11925 }
11926 return isFuture ? format[key][0] : format[key][1];
11927 }
11928
11929 var et = moment.defineLocale('et', {
11930 months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
11931 monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
11932 weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
11933 weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
11934 weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
11935 longDateFormat : {
11936 LT : 'H:mm',
11937 LTS : 'H:mm:ss',
11938 L : 'DD.MM.YYYY',
11939 LL : 'D. MMMM YYYY',
11940 LLL : 'D. MMMM YYYY H:mm',
11941 LLLL : 'dddd, D. MMMM YYYY H:mm'
11942 },
11943 calendar : {
11944 sameDay : '[Täna,] LT',
11945 nextDay : '[Homme,] LT',
11946 nextWeek : '[Järgmine] dddd LT',
11947 lastDay : '[Eile,] LT',
11948 lastWeek : '[Eelmine] dddd LT',
11949 sameElse : 'L'
11950 },
11951 relativeTime : {
11952 future : '%s pärast',
11953 past : '%s tagasi',
11954 s : processRelativeTime,
11955 ss : processRelativeTime,
11956 m : processRelativeTime,
11957 mm : processRelativeTime,
11958 h : processRelativeTime,
11959 hh : processRelativeTime,
11960 d : processRelativeTime,
11961 dd : '%d päeva',
11962 M : processRelativeTime,
11963 MM : processRelativeTime,
11964 y : processRelativeTime,
11965 yy : processRelativeTime
11966 },
11967 dayOfMonthOrdinalParse: /\d{1,2}\./,
11968 ordinal : '%d.',
11969 week : {
11970 dow : 1, // Monday is the first day of the week.
11971 doy : 4 // The week that contains Jan 4th is the first week of the year.
11972 }
11973 });
11974
11975 return et;
11976
11977})));
11978
11979
11980/***/ }),
11981/* 59 */
11982/***/ (function(module, exports, __webpack_require__) {
11983
11984//! moment.js locale configuration
11985
11986;(function (global, factory) {
11987 true ? factory(__webpack_require__(0)) :
11988 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
11989 factory(global.moment)
11990}(this, (function (moment) { 'use strict';
11991
11992
11993 var eu = moment.defineLocale('eu', {
11994 months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
11995 monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
11996 monthsParseExact : true,
11997 weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
11998 weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
11999 weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
12000 weekdaysParseExact : true,
12001 longDateFormat : {
12002 LT : 'HH:mm',
12003 LTS : 'HH:mm:ss',
12004 L : 'YYYY-MM-DD',
12005 LL : 'YYYY[ko] MMMM[ren] D[a]',
12006 LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
12007 LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
12008 l : 'YYYY-M-D',
12009 ll : 'YYYY[ko] MMM D[a]',
12010 lll : 'YYYY[ko] MMM D[a] HH:mm',
12011 llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
12012 },
12013 calendar : {
12014 sameDay : '[gaur] LT[etan]',
12015 nextDay : '[bihar] LT[etan]',
12016 nextWeek : 'dddd LT[etan]',
12017 lastDay : '[atzo] LT[etan]',
12018 lastWeek : '[aurreko] dddd LT[etan]',
12019 sameElse : 'L'
12020 },
12021 relativeTime : {
12022 future : '%s barru',
12023 past : 'duela %s',
12024 s : 'segundo batzuk',
12025 ss : '%d segundo',
12026 m : 'minutu bat',
12027 mm : '%d minutu',
12028 h : 'ordu bat',
12029 hh : '%d ordu',
12030 d : 'egun bat',
12031 dd : '%d egun',
12032 M : 'hilabete bat',
12033 MM : '%d hilabete',
12034 y : 'urte bat',
12035 yy : '%d urte'
12036 },
12037 dayOfMonthOrdinalParse: /\d{1,2}\./,
12038 ordinal : '%d.',
12039 week : {
12040 dow : 1, // Monday is the first day of the week.
12041 doy : 7 // The week that contains Jan 1st is the first week of the year.
12042 }
12043 });
12044
12045 return eu;
12046
12047})));
12048
12049
12050/***/ }),
12051/* 60 */
12052/***/ (function(module, exports, __webpack_require__) {
12053
12054//! moment.js locale configuration
12055
12056;(function (global, factory) {
12057 true ? factory(__webpack_require__(0)) :
12058 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12059 factory(global.moment)
12060}(this, (function (moment) { 'use strict';
12061
12062
12063 var symbolMap = {
12064 '1': '۱',
12065 '2': '۲',
12066 '3': '۳',
12067 '4': '۴',
12068 '5': '۵',
12069 '6': '۶',
12070 '7': '۷',
12071 '8': '۸',
12072 '9': '۹',
12073 '0': '۰'
12074 }, numberMap = {
12075 '۱': '1',
12076 '۲': '2',
12077 '۳': '3',
12078 '۴': '4',
12079 '۵': '5',
12080 '۶': '6',
12081 '۷': '7',
12082 '۸': '8',
12083 '۹': '9',
12084 '۰': '0'
12085 };
12086
12087 var fa = moment.defineLocale('fa', {
12088 months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
12089 monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
12090 weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
12091 weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
12092 weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
12093 weekdaysParseExact : true,
12094 longDateFormat : {
12095 LT : 'HH:mm',
12096 LTS : 'HH:mm:ss',
12097 L : 'DD/MM/YYYY',
12098 LL : 'D MMMM YYYY',
12099 LLL : 'D MMMM YYYY HH:mm',
12100 LLLL : 'dddd, D MMMM YYYY HH:mm'
12101 },
12102 meridiemParse: /قبل از ظهر|بعد از ظهر/,
12103 isPM: function (input) {
12104 return /بعد از ظهر/.test(input);
12105 },
12106 meridiem : function (hour, minute, isLower) {
12107 if (hour < 12) {
12108 return 'قبل از ظهر';
12109 } else {
12110 return 'بعد از ظهر';
12111 }
12112 },
12113 calendar : {
12114 sameDay : '[امروز ساعت] LT',
12115 nextDay : '[فردا ساعت] LT',
12116 nextWeek : 'dddd [ساعت] LT',
12117 lastDay : '[دیروز ساعت] LT',
12118 lastWeek : 'dddd [پیش] [ساعت] LT',
12119 sameElse : 'L'
12120 },
12121 relativeTime : {
12122 future : 'در %s',
12123 past : '%s پیش',
12124 s : 'چند ثانیه',
12125 ss : 'ثانیه d%',
12126 m : 'یک دقیقه',
12127 mm : '%d دقیقه',
12128 h : 'یک ساعت',
12129 hh : '%d ساعت',
12130 d : 'یک روز',
12131 dd : '%d روز',
12132 M : 'یک ماه',
12133 MM : '%d ماه',
12134 y : 'یک سال',
12135 yy : '%d سال'
12136 },
12137 preparse: function (string) {
12138 return string.replace(/[۰-۹]/g, function (match) {
12139 return numberMap[match];
12140 }).replace(/،/g, ',');
12141 },
12142 postformat: function (string) {
12143 return string.replace(/\d/g, function (match) {
12144 return symbolMap[match];
12145 }).replace(/,/g, '،');
12146 },
12147 dayOfMonthOrdinalParse: /\d{1,2}م/,
12148 ordinal : '%dم',
12149 week : {
12150 dow : 6, // Saturday is the first day of the week.
12151 doy : 12 // The week that contains Jan 1st is the first week of the year.
12152 }
12153 });
12154
12155 return fa;
12156
12157})));
12158
12159
12160/***/ }),
12161/* 61 */
12162/***/ (function(module, exports, __webpack_require__) {
12163
12164//! moment.js locale configuration
12165
12166;(function (global, factory) {
12167 true ? factory(__webpack_require__(0)) :
12168 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12169 factory(global.moment)
12170}(this, (function (moment) { 'use strict';
12171
12172
12173 var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
12174 numbersFuture = [
12175 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
12176 numbersPast[7], numbersPast[8], numbersPast[9]
12177 ];
12178 function translate(number, withoutSuffix, key, isFuture) {
12179 var result = '';
12180 switch (key) {
12181 case 's':
12182 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
12183 case 'ss':
12184 return isFuture ? 'sekunnin' : 'sekuntia';
12185 case 'm':
12186 return isFuture ? 'minuutin' : 'minuutti';
12187 case 'mm':
12188 result = isFuture ? 'minuutin' : 'minuuttia';
12189 break;
12190 case 'h':
12191 return isFuture ? 'tunnin' : 'tunti';
12192 case 'hh':
12193 result = isFuture ? 'tunnin' : 'tuntia';
12194 break;
12195 case 'd':
12196 return isFuture ? 'päivän' : 'päivä';
12197 case 'dd':
12198 result = isFuture ? 'päivän' : 'päivää';
12199 break;
12200 case 'M':
12201 return isFuture ? 'kuukauden' : 'kuukausi';
12202 case 'MM':
12203 result = isFuture ? 'kuukauden' : 'kuukautta';
12204 break;
12205 case 'y':
12206 return isFuture ? 'vuoden' : 'vuosi';
12207 case 'yy':
12208 result = isFuture ? 'vuoden' : 'vuotta';
12209 break;
12210 }
12211 result = verbalNumber(number, isFuture) + ' ' + result;
12212 return result;
12213 }
12214 function verbalNumber(number, isFuture) {
12215 return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
12216 }
12217
12218 var fi = moment.defineLocale('fi', {
12219 months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
12220 monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
12221 weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
12222 weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
12223 weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
12224 longDateFormat : {
12225 LT : 'HH.mm',
12226 LTS : 'HH.mm.ss',
12227 L : 'DD.MM.YYYY',
12228 LL : 'Do MMMM[ta] YYYY',
12229 LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
12230 LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
12231 l : 'D.M.YYYY',
12232 ll : 'Do MMM YYYY',
12233 lll : 'Do MMM YYYY, [klo] HH.mm',
12234 llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
12235 },
12236 calendar : {
12237 sameDay : '[tänään] [klo] LT',
12238 nextDay : '[huomenna] [klo] LT',
12239 nextWeek : 'dddd [klo] LT',
12240 lastDay : '[eilen] [klo] LT',
12241 lastWeek : '[viime] dddd[na] [klo] LT',
12242 sameElse : 'L'
12243 },
12244 relativeTime : {
12245 future : '%s päästä',
12246 past : '%s sitten',
12247 s : translate,
12248 ss : translate,
12249 m : translate,
12250 mm : translate,
12251 h : translate,
12252 hh : translate,
12253 d : translate,
12254 dd : translate,
12255 M : translate,
12256 MM : translate,
12257 y : translate,
12258 yy : translate
12259 },
12260 dayOfMonthOrdinalParse: /\d{1,2}\./,
12261 ordinal : '%d.',
12262 week : {
12263 dow : 1, // Monday is the first day of the week.
12264 doy : 4 // The week that contains Jan 4th is the first week of the year.
12265 }
12266 });
12267
12268 return fi;
12269
12270})));
12271
12272
12273/***/ }),
12274/* 62 */
12275/***/ (function(module, exports, __webpack_require__) {
12276
12277//! moment.js locale configuration
12278
12279;(function (global, factory) {
12280 true ? factory(__webpack_require__(0)) :
12281 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12282 factory(global.moment)
12283}(this, (function (moment) { 'use strict';
12284
12285
12286 var fo = moment.defineLocale('fo', {
12287 months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
12288 monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
12289 weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
12290 weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
12291 weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
12292 longDateFormat : {
12293 LT : 'HH:mm',
12294 LTS : 'HH:mm:ss',
12295 L : 'DD/MM/YYYY',
12296 LL : 'D MMMM YYYY',
12297 LLL : 'D MMMM YYYY HH:mm',
12298 LLLL : 'dddd D. MMMM, YYYY HH:mm'
12299 },
12300 calendar : {
12301 sameDay : '[Í dag kl.] LT',
12302 nextDay : '[Í morgin kl.] LT',
12303 nextWeek : 'dddd [kl.] LT',
12304 lastDay : '[Í gjár kl.] LT',
12305 lastWeek : '[síðstu] dddd [kl] LT',
12306 sameElse : 'L'
12307 },
12308 relativeTime : {
12309 future : 'um %s',
12310 past : '%s síðani',
12311 s : 'fá sekund',
12312 ss : '%d sekundir',
12313 m : 'ein minutt',
12314 mm : '%d minuttir',
12315 h : 'ein tími',
12316 hh : '%d tímar',
12317 d : 'ein dagur',
12318 dd : '%d dagar',
12319 M : 'ein mánaði',
12320 MM : '%d mánaðir',
12321 y : 'eitt ár',
12322 yy : '%d ár'
12323 },
12324 dayOfMonthOrdinalParse: /\d{1,2}\./,
12325 ordinal : '%d.',
12326 week : {
12327 dow : 1, // Monday is the first day of the week.
12328 doy : 4 // The week that contains Jan 4th is the first week of the year.
12329 }
12330 });
12331
12332 return fo;
12333
12334})));
12335
12336
12337/***/ }),
12338/* 63 */
12339/***/ (function(module, exports, __webpack_require__) {
12340
12341//! moment.js locale configuration
12342
12343;(function (global, factory) {
12344 true ? factory(__webpack_require__(0)) :
12345 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12346 factory(global.moment)
12347}(this, (function (moment) { 'use strict';
12348
12349
12350 var frCa = moment.defineLocale('fr-ca', {
12351 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
12352 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
12353 monthsParseExact : true,
12354 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
12355 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
12356 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
12357 weekdaysParseExact : true,
12358 longDateFormat : {
12359 LT : 'HH:mm',
12360 LTS : 'HH:mm:ss',
12361 L : 'YYYY-MM-DD',
12362 LL : 'D MMMM YYYY',
12363 LLL : 'D MMMM YYYY HH:mm',
12364 LLLL : 'dddd D MMMM YYYY HH:mm'
12365 },
12366 calendar : {
12367 sameDay : '[Aujourd’hui à] LT',
12368 nextDay : '[Demain à] LT',
12369 nextWeek : 'dddd [à] LT',
12370 lastDay : '[Hier à] LT',
12371 lastWeek : 'dddd [dernier à] LT',
12372 sameElse : 'L'
12373 },
12374 relativeTime : {
12375 future : 'dans %s',
12376 past : 'il y a %s',
12377 s : 'quelques secondes',
12378 ss : '%d secondes',
12379 m : 'une minute',
12380 mm : '%d minutes',
12381 h : 'une heure',
12382 hh : '%d heures',
12383 d : 'un jour',
12384 dd : '%d jours',
12385 M : 'un mois',
12386 MM : '%d mois',
12387 y : 'un an',
12388 yy : '%d ans'
12389 },
12390 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
12391 ordinal : function (number, period) {
12392 switch (period) {
12393 // Words with masculine grammatical gender: mois, trimestre, jour
12394 default:
12395 case 'M':
12396 case 'Q':
12397 case 'D':
12398 case 'DDD':
12399 case 'd':
12400 return number + (number === 1 ? 'er' : 'e');
12401
12402 // Words with feminine grammatical gender: semaine
12403 case 'w':
12404 case 'W':
12405 return number + (number === 1 ? 're' : 'e');
12406 }
12407 }
12408 });
12409
12410 return frCa;
12411
12412})));
12413
12414
12415/***/ }),
12416/* 64 */
12417/***/ (function(module, exports, __webpack_require__) {
12418
12419//! moment.js locale configuration
12420
12421;(function (global, factory) {
12422 true ? factory(__webpack_require__(0)) :
12423 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12424 factory(global.moment)
12425}(this, (function (moment) { 'use strict';
12426
12427
12428 var frCh = moment.defineLocale('fr-ch', {
12429 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
12430 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
12431 monthsParseExact : true,
12432 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
12433 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
12434 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
12435 weekdaysParseExact : true,
12436 longDateFormat : {
12437 LT : 'HH:mm',
12438 LTS : 'HH:mm:ss',
12439 L : 'DD.MM.YYYY',
12440 LL : 'D MMMM YYYY',
12441 LLL : 'D MMMM YYYY HH:mm',
12442 LLLL : 'dddd D MMMM YYYY HH:mm'
12443 },
12444 calendar : {
12445 sameDay : '[Aujourd’hui à] LT',
12446 nextDay : '[Demain à] LT',
12447 nextWeek : 'dddd [à] LT',
12448 lastDay : '[Hier à] LT',
12449 lastWeek : 'dddd [dernier à] LT',
12450 sameElse : 'L'
12451 },
12452 relativeTime : {
12453 future : 'dans %s',
12454 past : 'il y a %s',
12455 s : 'quelques secondes',
12456 ss : '%d secondes',
12457 m : 'une minute',
12458 mm : '%d minutes',
12459 h : 'une heure',
12460 hh : '%d heures',
12461 d : 'un jour',
12462 dd : '%d jours',
12463 M : 'un mois',
12464 MM : '%d mois',
12465 y : 'un an',
12466 yy : '%d ans'
12467 },
12468 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
12469 ordinal : function (number, period) {
12470 switch (period) {
12471 // Words with masculine grammatical gender: mois, trimestre, jour
12472 default:
12473 case 'M':
12474 case 'Q':
12475 case 'D':
12476 case 'DDD':
12477 case 'd':
12478 return number + (number === 1 ? 'er' : 'e');
12479
12480 // Words with feminine grammatical gender: semaine
12481 case 'w':
12482 case 'W':
12483 return number + (number === 1 ? 're' : 'e');
12484 }
12485 },
12486 week : {
12487 dow : 1, // Monday is the first day of the week.
12488 doy : 4 // The week that contains Jan 4th is the first week of the year.
12489 }
12490 });
12491
12492 return frCh;
12493
12494})));
12495
12496
12497/***/ }),
12498/* 65 */
12499/***/ (function(module, exports, __webpack_require__) {
12500
12501//! moment.js locale configuration
12502
12503;(function (global, factory) {
12504 true ? factory(__webpack_require__(0)) :
12505 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12506 factory(global.moment)
12507}(this, (function (moment) { 'use strict';
12508
12509
12510 var fr = moment.defineLocale('fr', {
12511 months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
12512 monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
12513 monthsParseExact : true,
12514 weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
12515 weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
12516 weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
12517 weekdaysParseExact : true,
12518 longDateFormat : {
12519 LT : 'HH:mm',
12520 LTS : 'HH:mm:ss',
12521 L : 'DD/MM/YYYY',
12522 LL : 'D MMMM YYYY',
12523 LLL : 'D MMMM YYYY HH:mm',
12524 LLLL : 'dddd D MMMM YYYY HH:mm'
12525 },
12526 calendar : {
12527 sameDay : '[Aujourd’hui à] LT',
12528 nextDay : '[Demain à] LT',
12529 nextWeek : 'dddd [à] LT',
12530 lastDay : '[Hier à] LT',
12531 lastWeek : 'dddd [dernier à] LT',
12532 sameElse : 'L'
12533 },
12534 relativeTime : {
12535 future : 'dans %s',
12536 past : 'il y a %s',
12537 s : 'quelques secondes',
12538 ss : '%d secondes',
12539 m : 'une minute',
12540 mm : '%d minutes',
12541 h : 'une heure',
12542 hh : '%d heures',
12543 d : 'un jour',
12544 dd : '%d jours',
12545 M : 'un mois',
12546 MM : '%d mois',
12547 y : 'un an',
12548 yy : '%d ans'
12549 },
12550 dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
12551 ordinal : function (number, period) {
12552 switch (period) {
12553 // TODO: Return 'e' when day of month > 1. Move this case inside
12554 // block for masculine words below.
12555 // See https://github.com/moment/moment/issues/3375
12556 case 'D':
12557 return number + (number === 1 ? 'er' : '');
12558
12559 // Words with masculine grammatical gender: mois, trimestre, jour
12560 default:
12561 case 'M':
12562 case 'Q':
12563 case 'DDD':
12564 case 'd':
12565 return number + (number === 1 ? 'er' : 'e');
12566
12567 // Words with feminine grammatical gender: semaine
12568 case 'w':
12569 case 'W':
12570 return number + (number === 1 ? 're' : 'e');
12571 }
12572 },
12573 week : {
12574 dow : 1, // Monday is the first day of the week.
12575 doy : 4 // The week that contains Jan 4th is the first week of the year.
12576 }
12577 });
12578
12579 return fr;
12580
12581})));
12582
12583
12584/***/ }),
12585/* 66 */
12586/***/ (function(module, exports, __webpack_require__) {
12587
12588//! moment.js locale configuration
12589
12590;(function (global, factory) {
12591 true ? factory(__webpack_require__(0)) :
12592 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12593 factory(global.moment)
12594}(this, (function (moment) { 'use strict';
12595
12596
12597 var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
12598 monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
12599
12600 var fy = moment.defineLocale('fy', {
12601 months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
12602 monthsShort : function (m, format) {
12603 if (!m) {
12604 return monthsShortWithDots;
12605 } else if (/-MMM-/.test(format)) {
12606 return monthsShortWithoutDots[m.month()];
12607 } else {
12608 return monthsShortWithDots[m.month()];
12609 }
12610 },
12611 monthsParseExact : true,
12612 weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
12613 weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
12614 weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
12615 weekdaysParseExact : true,
12616 longDateFormat : {
12617 LT : 'HH:mm',
12618 LTS : 'HH:mm:ss',
12619 L : 'DD-MM-YYYY',
12620 LL : 'D MMMM YYYY',
12621 LLL : 'D MMMM YYYY HH:mm',
12622 LLLL : 'dddd D MMMM YYYY HH:mm'
12623 },
12624 calendar : {
12625 sameDay: '[hjoed om] LT',
12626 nextDay: '[moarn om] LT',
12627 nextWeek: 'dddd [om] LT',
12628 lastDay: '[juster om] LT',
12629 lastWeek: '[ôfrûne] dddd [om] LT',
12630 sameElse: 'L'
12631 },
12632 relativeTime : {
12633 future : 'oer %s',
12634 past : '%s lyn',
12635 s : 'in pear sekonden',
12636 ss : '%d sekonden',
12637 m : 'ien minút',
12638 mm : '%d minuten',
12639 h : 'ien oere',
12640 hh : '%d oeren',
12641 d : 'ien dei',
12642 dd : '%d dagen',
12643 M : 'ien moanne',
12644 MM : '%d moannen',
12645 y : 'ien jier',
12646 yy : '%d jierren'
12647 },
12648 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
12649 ordinal : function (number) {
12650 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
12651 },
12652 week : {
12653 dow : 1, // Monday is the first day of the week.
12654 doy : 4 // The week that contains Jan 4th is the first week of the year.
12655 }
12656 });
12657
12658 return fy;
12659
12660})));
12661
12662
12663/***/ }),
12664/* 67 */
12665/***/ (function(module, exports, __webpack_require__) {
12666
12667//! moment.js locale configuration
12668
12669;(function (global, factory) {
12670 true ? factory(__webpack_require__(0)) :
12671 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12672 factory(global.moment)
12673}(this, (function (moment) { 'use strict';
12674
12675
12676 var months = [
12677 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
12678 ];
12679
12680 var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
12681
12682 var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
12683
12684 var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
12685
12686 var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
12687
12688 var gd = moment.defineLocale('gd', {
12689 months : months,
12690 monthsShort : monthsShort,
12691 monthsParseExact : true,
12692 weekdays : weekdays,
12693 weekdaysShort : weekdaysShort,
12694 weekdaysMin : weekdaysMin,
12695 longDateFormat : {
12696 LT : 'HH:mm',
12697 LTS : 'HH:mm:ss',
12698 L : 'DD/MM/YYYY',
12699 LL : 'D MMMM YYYY',
12700 LLL : 'D MMMM YYYY HH:mm',
12701 LLLL : 'dddd, D MMMM YYYY HH:mm'
12702 },
12703 calendar : {
12704 sameDay : '[An-diugh aig] LT',
12705 nextDay : '[A-màireach aig] LT',
12706 nextWeek : 'dddd [aig] LT',
12707 lastDay : '[An-dè aig] LT',
12708 lastWeek : 'dddd [seo chaidh] [aig] LT',
12709 sameElse : 'L'
12710 },
12711 relativeTime : {
12712 future : 'ann an %s',
12713 past : 'bho chionn %s',
12714 s : 'beagan diogan',
12715 ss : '%d diogan',
12716 m : 'mionaid',
12717 mm : '%d mionaidean',
12718 h : 'uair',
12719 hh : '%d uairean',
12720 d : 'latha',
12721 dd : '%d latha',
12722 M : 'mìos',
12723 MM : '%d mìosan',
12724 y : 'bliadhna',
12725 yy : '%d bliadhna'
12726 },
12727 dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
12728 ordinal : function (number) {
12729 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
12730 return number + output;
12731 },
12732 week : {
12733 dow : 1, // Monday is the first day of the week.
12734 doy : 4 // The week that contains Jan 4th is the first week of the year.
12735 }
12736 });
12737
12738 return gd;
12739
12740})));
12741
12742
12743/***/ }),
12744/* 68 */
12745/***/ (function(module, exports, __webpack_require__) {
12746
12747//! moment.js locale configuration
12748
12749;(function (global, factory) {
12750 true ? factory(__webpack_require__(0)) :
12751 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12752 factory(global.moment)
12753}(this, (function (moment) { 'use strict';
12754
12755
12756 var gl = moment.defineLocale('gl', {
12757 months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
12758 monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
12759 monthsParseExact: true,
12760 weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
12761 weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
12762 weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
12763 weekdaysParseExact : true,
12764 longDateFormat : {
12765 LT : 'H:mm',
12766 LTS : 'H:mm:ss',
12767 L : 'DD/MM/YYYY',
12768 LL : 'D [de] MMMM [de] YYYY',
12769 LLL : 'D [de] MMMM [de] YYYY H:mm',
12770 LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
12771 },
12772 calendar : {
12773 sameDay : function () {
12774 return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
12775 },
12776 nextDay : function () {
12777 return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
12778 },
12779 nextWeek : function () {
12780 return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
12781 },
12782 lastDay : function () {
12783 return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
12784 },
12785 lastWeek : function () {
12786 return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
12787 },
12788 sameElse : 'L'
12789 },
12790 relativeTime : {
12791 future : function (str) {
12792 if (str.indexOf('un') === 0) {
12793 return 'n' + str;
12794 }
12795 return 'en ' + str;
12796 },
12797 past : 'hai %s',
12798 s : 'uns segundos',
12799 ss : '%d segundos',
12800 m : 'un minuto',
12801 mm : '%d minutos',
12802 h : 'unha hora',
12803 hh : '%d horas',
12804 d : 'un día',
12805 dd : '%d días',
12806 M : 'un mes',
12807 MM : '%d meses',
12808 y : 'un ano',
12809 yy : '%d anos'
12810 },
12811 dayOfMonthOrdinalParse : /\d{1,2}º/,
12812 ordinal : '%dº',
12813 week : {
12814 dow : 1, // Monday is the first day of the week.
12815 doy : 4 // The week that contains Jan 4th is the first week of the year.
12816 }
12817 });
12818
12819 return gl;
12820
12821})));
12822
12823
12824/***/ }),
12825/* 69 */
12826/***/ (function(module, exports, __webpack_require__) {
12827
12828//! moment.js locale configuration
12829
12830;(function (global, factory) {
12831 true ? factory(__webpack_require__(0)) :
12832 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12833 factory(global.moment)
12834}(this, (function (moment) { 'use strict';
12835
12836
12837 function processRelativeTime(number, withoutSuffix, key, isFuture) {
12838 var format = {
12839 's': ['thodde secondanim', 'thodde second'],
12840 'ss': [number + ' secondanim', number + ' second'],
12841 'm': ['eka mintan', 'ek minute'],
12842 'mm': [number + ' mintanim', number + ' mintam'],
12843 'h': ['eka horan', 'ek hor'],
12844 'hh': [number + ' horanim', number + ' horam'],
12845 'd': ['eka disan', 'ek dis'],
12846 'dd': [number + ' disanim', number + ' dis'],
12847 'M': ['eka mhoinean', 'ek mhoino'],
12848 'MM': [number + ' mhoineanim', number + ' mhoine'],
12849 'y': ['eka vorsan', 'ek voros'],
12850 'yy': [number + ' vorsanim', number + ' vorsam']
12851 };
12852 return withoutSuffix ? format[key][0] : format[key][1];
12853 }
12854
12855 var gomLatn = moment.defineLocale('gom-latn', {
12856 months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
12857 monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
12858 monthsParseExact : true,
12859 weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
12860 weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
12861 weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
12862 weekdaysParseExact : true,
12863 longDateFormat : {
12864 LT : 'A h:mm [vazta]',
12865 LTS : 'A h:mm:ss [vazta]',
12866 L : 'DD-MM-YYYY',
12867 LL : 'D MMMM YYYY',
12868 LLL : 'D MMMM YYYY A h:mm [vazta]',
12869 LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
12870 llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
12871 },
12872 calendar : {
12873 sameDay: '[Aiz] LT',
12874 nextDay: '[Faleam] LT',
12875 nextWeek: '[Ieta to] dddd[,] LT',
12876 lastDay: '[Kal] LT',
12877 lastWeek: '[Fatlo] dddd[,] LT',
12878 sameElse: 'L'
12879 },
12880 relativeTime : {
12881 future : '%s',
12882 past : '%s adim',
12883 s : processRelativeTime,
12884 ss : processRelativeTime,
12885 m : processRelativeTime,
12886 mm : processRelativeTime,
12887 h : processRelativeTime,
12888 hh : processRelativeTime,
12889 d : processRelativeTime,
12890 dd : processRelativeTime,
12891 M : processRelativeTime,
12892 MM : processRelativeTime,
12893 y : processRelativeTime,
12894 yy : processRelativeTime
12895 },
12896 dayOfMonthOrdinalParse : /\d{1,2}(er)/,
12897 ordinal : function (number, period) {
12898 switch (period) {
12899 // the ordinal 'er' only applies to day of the month
12900 case 'D':
12901 return number + 'er';
12902 default:
12903 case 'M':
12904 case 'Q':
12905 case 'DDD':
12906 case 'd':
12907 case 'w':
12908 case 'W':
12909 return number;
12910 }
12911 },
12912 week : {
12913 dow : 1, // Monday is the first day of the week.
12914 doy : 4 // The week that contains Jan 4th is the first week of the year.
12915 },
12916 meridiemParse: /rati|sokalli|donparam|sanje/,
12917 meridiemHour : function (hour, meridiem) {
12918 if (hour === 12) {
12919 hour = 0;
12920 }
12921 if (meridiem === 'rati') {
12922 return hour < 4 ? hour : hour + 12;
12923 } else if (meridiem === 'sokalli') {
12924 return hour;
12925 } else if (meridiem === 'donparam') {
12926 return hour > 12 ? hour : hour + 12;
12927 } else if (meridiem === 'sanje') {
12928 return hour + 12;
12929 }
12930 },
12931 meridiem : function (hour, minute, isLower) {
12932 if (hour < 4) {
12933 return 'rati';
12934 } else if (hour < 12) {
12935 return 'sokalli';
12936 } else if (hour < 16) {
12937 return 'donparam';
12938 } else if (hour < 20) {
12939 return 'sanje';
12940 } else {
12941 return 'rati';
12942 }
12943 }
12944 });
12945
12946 return gomLatn;
12947
12948})));
12949
12950
12951/***/ }),
12952/* 70 */
12953/***/ (function(module, exports, __webpack_require__) {
12954
12955//! moment.js locale configuration
12956
12957;(function (global, factory) {
12958 true ? factory(__webpack_require__(0)) :
12959 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
12960 factory(global.moment)
12961}(this, (function (moment) { 'use strict';
12962
12963
12964 var symbolMap = {
12965 '1': '૧',
12966 '2': '૨',
12967 '3': '૩',
12968 '4': '૪',
12969 '5': '૫',
12970 '6': '૬',
12971 '7': '૭',
12972 '8': '૮',
12973 '9': '૯',
12974 '0': '૦'
12975 },
12976 numberMap = {
12977 '૧': '1',
12978 '૨': '2',
12979 '૩': '3',
12980 '૪': '4',
12981 '૫': '5',
12982 '૬': '6',
12983 '૭': '7',
12984 '૮': '8',
12985 '૯': '9',
12986 '૦': '0'
12987 };
12988
12989 var gu = moment.defineLocale('gu', {
12990 months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
12991 monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),
12992 monthsParseExact: true,
12993 weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
12994 weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
12995 weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
12996 longDateFormat: {
12997 LT: 'A h:mm વાગ્યે',
12998 LTS: 'A h:mm:ss વાગ્યે',
12999 L: 'DD/MM/YYYY',
13000 LL: 'D MMMM YYYY',
13001 LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
13002 LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
13003 },
13004 calendar: {
13005 sameDay: '[આજ] LT',
13006 nextDay: '[કાલે] LT',
13007 nextWeek: 'dddd, LT',
13008 lastDay: '[ગઇકાલે] LT',
13009 lastWeek: '[પાછલા] dddd, LT',
13010 sameElse: 'L'
13011 },
13012 relativeTime: {
13013 future: '%s મા',
13014 past: '%s પેહલા',
13015 s: 'અમુક પળો',
13016 ss: '%d સેકંડ',
13017 m: 'એક મિનિટ',
13018 mm: '%d મિનિટ',
13019 h: 'એક કલાક',
13020 hh: '%d કલાક',
13021 d: 'એક દિવસ',
13022 dd: '%d દિવસ',
13023 M: 'એક મહિનો',
13024 MM: '%d મહિનો',
13025 y: 'એક વર્ષ',
13026 yy: '%d વર્ષ'
13027 },
13028 preparse: function (string) {
13029 return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
13030 return numberMap[match];
13031 });
13032 },
13033 postformat: function (string) {
13034 return string.replace(/\d/g, function (match) {
13035 return symbolMap[match];
13036 });
13037 },
13038 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
13039 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
13040 meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
13041 meridiemHour: function (hour, meridiem) {
13042 if (hour === 12) {
13043 hour = 0;
13044 }
13045 if (meridiem === 'રાત') {
13046 return hour < 4 ? hour : hour + 12;
13047 } else if (meridiem === 'સવાર') {
13048 return hour;
13049 } else if (meridiem === 'બપોર') {
13050 return hour >= 10 ? hour : hour + 12;
13051 } else if (meridiem === 'સાંજ') {
13052 return hour + 12;
13053 }
13054 },
13055 meridiem: function (hour, minute, isLower) {
13056 if (hour < 4) {
13057 return 'રાત';
13058 } else if (hour < 10) {
13059 return 'સવાર';
13060 } else if (hour < 17) {
13061 return 'બપોર';
13062 } else if (hour < 20) {
13063 return 'સાંજ';
13064 } else {
13065 return 'રાત';
13066 }
13067 },
13068 week: {
13069 dow: 0, // Sunday is the first day of the week.
13070 doy: 6 // The week that contains Jan 1st is the first week of the year.
13071 }
13072 });
13073
13074 return gu;
13075
13076})));
13077
13078
13079/***/ }),
13080/* 71 */
13081/***/ (function(module, exports, __webpack_require__) {
13082
13083//! moment.js locale configuration
13084
13085;(function (global, factory) {
13086 true ? factory(__webpack_require__(0)) :
13087 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13088 factory(global.moment)
13089}(this, (function (moment) { 'use strict';
13090
13091
13092 var he = moment.defineLocale('he', {
13093 months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
13094 monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
13095 weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
13096 weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
13097 weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
13098 longDateFormat : {
13099 LT : 'HH:mm',
13100 LTS : 'HH:mm:ss',
13101 L : 'DD/MM/YYYY',
13102 LL : 'D [ב]MMMM YYYY',
13103 LLL : 'D [ב]MMMM YYYY HH:mm',
13104 LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
13105 l : 'D/M/YYYY',
13106 ll : 'D MMM YYYY',
13107 lll : 'D MMM YYYY HH:mm',
13108 llll : 'ddd, D MMM YYYY HH:mm'
13109 },
13110 calendar : {
13111 sameDay : '[היום ב־]LT',
13112 nextDay : '[מחר ב־]LT',
13113 nextWeek : 'dddd [בשעה] LT',
13114 lastDay : '[אתמול ב־]LT',
13115 lastWeek : '[ביום] dddd [האחרון בשעה] LT',
13116 sameElse : 'L'
13117 },
13118 relativeTime : {
13119 future : 'בעוד %s',
13120 past : 'לפני %s',
13121 s : 'מספר שניות',
13122 ss : '%d שניות',
13123 m : 'דקה',
13124 mm : '%d דקות',
13125 h : 'שעה',
13126 hh : function (number) {
13127 if (number === 2) {
13128 return 'שעתיים';
13129 }
13130 return number + ' שעות';
13131 },
13132 d : 'יום',
13133 dd : function (number) {
13134 if (number === 2) {
13135 return 'יומיים';
13136 }
13137 return number + ' ימים';
13138 },
13139 M : 'חודש',
13140 MM : function (number) {
13141 if (number === 2) {
13142 return 'חודשיים';
13143 }
13144 return number + ' חודשים';
13145 },
13146 y : 'שנה',
13147 yy : function (number) {
13148 if (number === 2) {
13149 return 'שנתיים';
13150 } else if (number % 10 === 0 && number !== 10) {
13151 return number + ' שנה';
13152 }
13153 return number + ' שנים';
13154 }
13155 },
13156 meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
13157 isPM : function (input) {
13158 return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
13159 },
13160 meridiem : function (hour, minute, isLower) {
13161 if (hour < 5) {
13162 return 'לפנות בוקר';
13163 } else if (hour < 10) {
13164 return 'בבוקר';
13165 } else if (hour < 12) {
13166 return isLower ? 'לפנה"צ' : 'לפני הצהריים';
13167 } else if (hour < 18) {
13168 return isLower ? 'אחה"צ' : 'אחרי הצהריים';
13169 } else {
13170 return 'בערב';
13171 }
13172 }
13173 });
13174
13175 return he;
13176
13177})));
13178
13179
13180/***/ }),
13181/* 72 */
13182/***/ (function(module, exports, __webpack_require__) {
13183
13184//! moment.js locale configuration
13185
13186;(function (global, factory) {
13187 true ? factory(__webpack_require__(0)) :
13188 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13189 factory(global.moment)
13190}(this, (function (moment) { 'use strict';
13191
13192
13193 var symbolMap = {
13194 '1': '१',
13195 '2': '२',
13196 '3': '३',
13197 '4': '४',
13198 '5': '५',
13199 '6': '६',
13200 '7': '७',
13201 '8': '८',
13202 '9': '९',
13203 '0': '०'
13204 },
13205 numberMap = {
13206 '१': '1',
13207 '२': '2',
13208 '३': '3',
13209 '४': '4',
13210 '५': '5',
13211 '६': '6',
13212 '७': '7',
13213 '८': '8',
13214 '९': '9',
13215 '०': '0'
13216 };
13217
13218 var hi = moment.defineLocale('hi', {
13219 months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
13220 monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
13221 monthsParseExact: true,
13222 weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
13223 weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
13224 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
13225 longDateFormat : {
13226 LT : 'A h:mm बजे',
13227 LTS : 'A h:mm:ss बजे',
13228 L : 'DD/MM/YYYY',
13229 LL : 'D MMMM YYYY',
13230 LLL : 'D MMMM YYYY, A h:mm बजे',
13231 LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
13232 },
13233 calendar : {
13234 sameDay : '[आज] LT',
13235 nextDay : '[कल] LT',
13236 nextWeek : 'dddd, LT',
13237 lastDay : '[कल] LT',
13238 lastWeek : '[पिछले] dddd, LT',
13239 sameElse : 'L'
13240 },
13241 relativeTime : {
13242 future : '%s में',
13243 past : '%s पहले',
13244 s : 'कुछ ही क्षण',
13245 ss : '%d सेकंड',
13246 m : 'एक मिनट',
13247 mm : '%d मिनट',
13248 h : 'एक घंटा',
13249 hh : '%d घंटे',
13250 d : 'एक दिन',
13251 dd : '%d दिन',
13252 M : 'एक महीने',
13253 MM : '%d महीने',
13254 y : 'एक वर्ष',
13255 yy : '%d वर्ष'
13256 },
13257 preparse: function (string) {
13258 return string.replace(/[१२३४५६७८९०]/g, function (match) {
13259 return numberMap[match];
13260 });
13261 },
13262 postformat: function (string) {
13263 return string.replace(/\d/g, function (match) {
13264 return symbolMap[match];
13265 });
13266 },
13267 // Hindi notation for meridiems are quite fuzzy in practice. While there exists
13268 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
13269 meridiemParse: /रात|सुबह|दोपहर|शाम/,
13270 meridiemHour : function (hour, meridiem) {
13271 if (hour === 12) {
13272 hour = 0;
13273 }
13274 if (meridiem === 'रात') {
13275 return hour < 4 ? hour : hour + 12;
13276 } else if (meridiem === 'सुबह') {
13277 return hour;
13278 } else if (meridiem === 'दोपहर') {
13279 return hour >= 10 ? hour : hour + 12;
13280 } else if (meridiem === 'शाम') {
13281 return hour + 12;
13282 }
13283 },
13284 meridiem : function (hour, minute, isLower) {
13285 if (hour < 4) {
13286 return 'रात';
13287 } else if (hour < 10) {
13288 return 'सुबह';
13289 } else if (hour < 17) {
13290 return 'दोपहर';
13291 } else if (hour < 20) {
13292 return 'शाम';
13293 } else {
13294 return 'रात';
13295 }
13296 },
13297 week : {
13298 dow : 0, // Sunday is the first day of the week.
13299 doy : 6 // The week that contains Jan 1st is the first week of the year.
13300 }
13301 });
13302
13303 return hi;
13304
13305})));
13306
13307
13308/***/ }),
13309/* 73 */
13310/***/ (function(module, exports, __webpack_require__) {
13311
13312//! moment.js locale configuration
13313
13314;(function (global, factory) {
13315 true ? factory(__webpack_require__(0)) :
13316 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13317 factory(global.moment)
13318}(this, (function (moment) { 'use strict';
13319
13320
13321 function translate(number, withoutSuffix, key) {
13322 var result = number + ' ';
13323 switch (key) {
13324 case 'ss':
13325 if (number === 1) {
13326 result += 'sekunda';
13327 } else if (number === 2 || number === 3 || number === 4) {
13328 result += 'sekunde';
13329 } else {
13330 result += 'sekundi';
13331 }
13332 return result;
13333 case 'm':
13334 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
13335 case 'mm':
13336 if (number === 1) {
13337 result += 'minuta';
13338 } else if (number === 2 || number === 3 || number === 4) {
13339 result += 'minute';
13340 } else {
13341 result += 'minuta';
13342 }
13343 return result;
13344 case 'h':
13345 return withoutSuffix ? 'jedan sat' : 'jednog sata';
13346 case 'hh':
13347 if (number === 1) {
13348 result += 'sat';
13349 } else if (number === 2 || number === 3 || number === 4) {
13350 result += 'sata';
13351 } else {
13352 result += 'sati';
13353 }
13354 return result;
13355 case 'dd':
13356 if (number === 1) {
13357 result += 'dan';
13358 } else {
13359 result += 'dana';
13360 }
13361 return result;
13362 case 'MM':
13363 if (number === 1) {
13364 result += 'mjesec';
13365 } else if (number === 2 || number === 3 || number === 4) {
13366 result += 'mjeseca';
13367 } else {
13368 result += 'mjeseci';
13369 }
13370 return result;
13371 case 'yy':
13372 if (number === 1) {
13373 result += 'godina';
13374 } else if (number === 2 || number === 3 || number === 4) {
13375 result += 'godine';
13376 } else {
13377 result += 'godina';
13378 }
13379 return result;
13380 }
13381 }
13382
13383 var hr = moment.defineLocale('hr', {
13384 months : {
13385 format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
13386 standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
13387 },
13388 monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
13389 monthsParseExact: true,
13390 weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
13391 weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
13392 weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
13393 weekdaysParseExact : true,
13394 longDateFormat : {
13395 LT : 'H:mm',
13396 LTS : 'H:mm:ss',
13397 L : 'DD.MM.YYYY',
13398 LL : 'D. MMMM YYYY',
13399 LLL : 'D. MMMM YYYY H:mm',
13400 LLLL : 'dddd, D. MMMM YYYY H:mm'
13401 },
13402 calendar : {
13403 sameDay : '[danas u] LT',
13404 nextDay : '[sutra u] LT',
13405 nextWeek : function () {
13406 switch (this.day()) {
13407 case 0:
13408 return '[u] [nedjelju] [u] LT';
13409 case 3:
13410 return '[u] [srijedu] [u] LT';
13411 case 6:
13412 return '[u] [subotu] [u] LT';
13413 case 1:
13414 case 2:
13415 case 4:
13416 case 5:
13417 return '[u] dddd [u] LT';
13418 }
13419 },
13420 lastDay : '[jučer u] LT',
13421 lastWeek : function () {
13422 switch (this.day()) {
13423 case 0:
13424 case 3:
13425 return '[prošlu] dddd [u] LT';
13426 case 6:
13427 return '[prošle] [subote] [u] LT';
13428 case 1:
13429 case 2:
13430 case 4:
13431 case 5:
13432 return '[prošli] dddd [u] LT';
13433 }
13434 },
13435 sameElse : 'L'
13436 },
13437 relativeTime : {
13438 future : 'za %s',
13439 past : 'prije %s',
13440 s : 'par sekundi',
13441 ss : translate,
13442 m : translate,
13443 mm : translate,
13444 h : translate,
13445 hh : translate,
13446 d : 'dan',
13447 dd : translate,
13448 M : 'mjesec',
13449 MM : translate,
13450 y : 'godinu',
13451 yy : translate
13452 },
13453 dayOfMonthOrdinalParse: /\d{1,2}\./,
13454 ordinal : '%d.',
13455 week : {
13456 dow : 1, // Monday is the first day of the week.
13457 doy : 7 // The week that contains Jan 1st is the first week of the year.
13458 }
13459 });
13460
13461 return hr;
13462
13463})));
13464
13465
13466/***/ }),
13467/* 74 */
13468/***/ (function(module, exports, __webpack_require__) {
13469
13470//! moment.js locale configuration
13471
13472;(function (global, factory) {
13473 true ? factory(__webpack_require__(0)) :
13474 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13475 factory(global.moment)
13476}(this, (function (moment) { 'use strict';
13477
13478
13479 var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
13480 function translate(number, withoutSuffix, key, isFuture) {
13481 var num = number;
13482 switch (key) {
13483 case 's':
13484 return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
13485 case 'ss':
13486 return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
13487 case 'm':
13488 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
13489 case 'mm':
13490 return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
13491 case 'h':
13492 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
13493 case 'hh':
13494 return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
13495 case 'd':
13496 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
13497 case 'dd':
13498 return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
13499 case 'M':
13500 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
13501 case 'MM':
13502 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
13503 case 'y':
13504 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
13505 case 'yy':
13506 return num + (isFuture || withoutSuffix ? ' év' : ' éve');
13507 }
13508 return '';
13509 }
13510 function week(isFuture) {
13511 return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
13512 }
13513
13514 var hu = moment.defineLocale('hu', {
13515 months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
13516 monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
13517 weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
13518 weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
13519 weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
13520 longDateFormat : {
13521 LT : 'H:mm',
13522 LTS : 'H:mm:ss',
13523 L : 'YYYY.MM.DD.',
13524 LL : 'YYYY. MMMM D.',
13525 LLL : 'YYYY. MMMM D. H:mm',
13526 LLLL : 'YYYY. MMMM D., dddd H:mm'
13527 },
13528 meridiemParse: /de|du/i,
13529 isPM: function (input) {
13530 return input.charAt(1).toLowerCase() === 'u';
13531 },
13532 meridiem : function (hours, minutes, isLower) {
13533 if (hours < 12) {
13534 return isLower === true ? 'de' : 'DE';
13535 } else {
13536 return isLower === true ? 'du' : 'DU';
13537 }
13538 },
13539 calendar : {
13540 sameDay : '[ma] LT[-kor]',
13541 nextDay : '[holnap] LT[-kor]',
13542 nextWeek : function () {
13543 return week.call(this, true);
13544 },
13545 lastDay : '[tegnap] LT[-kor]',
13546 lastWeek : function () {
13547 return week.call(this, false);
13548 },
13549 sameElse : 'L'
13550 },
13551 relativeTime : {
13552 future : '%s múlva',
13553 past : '%s',
13554 s : translate,
13555 ss : translate,
13556 m : translate,
13557 mm : translate,
13558 h : translate,
13559 hh : translate,
13560 d : translate,
13561 dd : translate,
13562 M : translate,
13563 MM : translate,
13564 y : translate,
13565 yy : translate
13566 },
13567 dayOfMonthOrdinalParse: /\d{1,2}\./,
13568 ordinal : '%d.',
13569 week : {
13570 dow : 1, // Monday is the first day of the week.
13571 doy : 4 // The week that contains Jan 4th is the first week of the year.
13572 }
13573 });
13574
13575 return hu;
13576
13577})));
13578
13579
13580/***/ }),
13581/* 75 */
13582/***/ (function(module, exports, __webpack_require__) {
13583
13584//! moment.js locale configuration
13585
13586;(function (global, factory) {
13587 true ? factory(__webpack_require__(0)) :
13588 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13589 factory(global.moment)
13590}(this, (function (moment) { 'use strict';
13591
13592
13593 var hyAm = moment.defineLocale('hy-am', {
13594 months : {
13595 format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
13596 standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
13597 },
13598 monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
13599 weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
13600 weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
13601 weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
13602 longDateFormat : {
13603 LT : 'HH:mm',
13604 LTS : 'HH:mm:ss',
13605 L : 'DD.MM.YYYY',
13606 LL : 'D MMMM YYYY թ.',
13607 LLL : 'D MMMM YYYY թ., HH:mm',
13608 LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
13609 },
13610 calendar : {
13611 sameDay: '[այսօր] LT',
13612 nextDay: '[վաղը] LT',
13613 lastDay: '[երեկ] LT',
13614 nextWeek: function () {
13615 return 'dddd [օրը ժամը] LT';
13616 },
13617 lastWeek: function () {
13618 return '[անցած] dddd [օրը ժամը] LT';
13619 },
13620 sameElse: 'L'
13621 },
13622 relativeTime : {
13623 future : '%s հետո',
13624 past : '%s առաջ',
13625 s : 'մի քանի վայրկյան',
13626 ss : '%d վայրկյան',
13627 m : 'րոպե',
13628 mm : '%d րոպե',
13629 h : 'ժամ',
13630 hh : '%d ժամ',
13631 d : 'օր',
13632 dd : '%d օր',
13633 M : 'ամիս',
13634 MM : '%d ամիս',
13635 y : 'տարի',
13636 yy : '%d տարի'
13637 },
13638 meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
13639 isPM: function (input) {
13640 return /^(ցերեկվա|երեկոյան)$/.test(input);
13641 },
13642 meridiem : function (hour) {
13643 if (hour < 4) {
13644 return 'գիշերվա';
13645 } else if (hour < 12) {
13646 return 'առավոտվա';
13647 } else if (hour < 17) {
13648 return 'ցերեկվա';
13649 } else {
13650 return 'երեկոյան';
13651 }
13652 },
13653 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
13654 ordinal: function (number, period) {
13655 switch (period) {
13656 case 'DDD':
13657 case 'w':
13658 case 'W':
13659 case 'DDDo':
13660 if (number === 1) {
13661 return number + '-ին';
13662 }
13663 return number + '-րդ';
13664 default:
13665 return number;
13666 }
13667 },
13668 week : {
13669 dow : 1, // Monday is the first day of the week.
13670 doy : 7 // The week that contains Jan 1st is the first week of the year.
13671 }
13672 });
13673
13674 return hyAm;
13675
13676})));
13677
13678
13679/***/ }),
13680/* 76 */
13681/***/ (function(module, exports, __webpack_require__) {
13682
13683//! moment.js locale configuration
13684
13685;(function (global, factory) {
13686 true ? factory(__webpack_require__(0)) :
13687 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13688 factory(global.moment)
13689}(this, (function (moment) { 'use strict';
13690
13691
13692 var id = moment.defineLocale('id', {
13693 months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
13694 monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
13695 weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
13696 weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
13697 weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
13698 longDateFormat : {
13699 LT : 'HH.mm',
13700 LTS : 'HH.mm.ss',
13701 L : 'DD/MM/YYYY',
13702 LL : 'D MMMM YYYY',
13703 LLL : 'D MMMM YYYY [pukul] HH.mm',
13704 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
13705 },
13706 meridiemParse: /pagi|siang|sore|malam/,
13707 meridiemHour : function (hour, meridiem) {
13708 if (hour === 12) {
13709 hour = 0;
13710 }
13711 if (meridiem === 'pagi') {
13712 return hour;
13713 } else if (meridiem === 'siang') {
13714 return hour >= 11 ? hour : hour + 12;
13715 } else if (meridiem === 'sore' || meridiem === 'malam') {
13716 return hour + 12;
13717 }
13718 },
13719 meridiem : function (hours, minutes, isLower) {
13720 if (hours < 11) {
13721 return 'pagi';
13722 } else if (hours < 15) {
13723 return 'siang';
13724 } else if (hours < 19) {
13725 return 'sore';
13726 } else {
13727 return 'malam';
13728 }
13729 },
13730 calendar : {
13731 sameDay : '[Hari ini pukul] LT',
13732 nextDay : '[Besok pukul] LT',
13733 nextWeek : 'dddd [pukul] LT',
13734 lastDay : '[Kemarin pukul] LT',
13735 lastWeek : 'dddd [lalu pukul] LT',
13736 sameElse : 'L'
13737 },
13738 relativeTime : {
13739 future : 'dalam %s',
13740 past : '%s yang lalu',
13741 s : 'beberapa detik',
13742 ss : '%d detik',
13743 m : 'semenit',
13744 mm : '%d menit',
13745 h : 'sejam',
13746 hh : '%d jam',
13747 d : 'sehari',
13748 dd : '%d hari',
13749 M : 'sebulan',
13750 MM : '%d bulan',
13751 y : 'setahun',
13752 yy : '%d tahun'
13753 },
13754 week : {
13755 dow : 1, // Monday is the first day of the week.
13756 doy : 7 // The week that contains Jan 1st is the first week of the year.
13757 }
13758 });
13759
13760 return id;
13761
13762})));
13763
13764
13765/***/ }),
13766/* 77 */
13767/***/ (function(module, exports, __webpack_require__) {
13768
13769//! moment.js locale configuration
13770
13771;(function (global, factory) {
13772 true ? factory(__webpack_require__(0)) :
13773 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13774 factory(global.moment)
13775}(this, (function (moment) { 'use strict';
13776
13777
13778 function plural(n) {
13779 if (n % 100 === 11) {
13780 return true;
13781 } else if (n % 10 === 1) {
13782 return false;
13783 }
13784 return true;
13785 }
13786 function translate(number, withoutSuffix, key, isFuture) {
13787 var result = number + ' ';
13788 switch (key) {
13789 case 's':
13790 return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
13791 case 'ss':
13792 if (plural(number)) {
13793 return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
13794 }
13795 return result + 'sekúnda';
13796 case 'm':
13797 return withoutSuffix ? 'mínúta' : 'mínútu';
13798 case 'mm':
13799 if (plural(number)) {
13800 return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
13801 } else if (withoutSuffix) {
13802 return result + 'mínúta';
13803 }
13804 return result + 'mínútu';
13805 case 'hh':
13806 if (plural(number)) {
13807 return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
13808 }
13809 return result + 'klukkustund';
13810 case 'd':
13811 if (withoutSuffix) {
13812 return 'dagur';
13813 }
13814 return isFuture ? 'dag' : 'degi';
13815 case 'dd':
13816 if (plural(number)) {
13817 if (withoutSuffix) {
13818 return result + 'dagar';
13819 }
13820 return result + (isFuture ? 'daga' : 'dögum');
13821 } else if (withoutSuffix) {
13822 return result + 'dagur';
13823 }
13824 return result + (isFuture ? 'dag' : 'degi');
13825 case 'M':
13826 if (withoutSuffix) {
13827 return 'mánuður';
13828 }
13829 return isFuture ? 'mánuð' : 'mánuði';
13830 case 'MM':
13831 if (plural(number)) {
13832 if (withoutSuffix) {
13833 return result + 'mánuðir';
13834 }
13835 return result + (isFuture ? 'mánuði' : 'mánuðum');
13836 } else if (withoutSuffix) {
13837 return result + 'mánuður';
13838 }
13839 return result + (isFuture ? 'mánuð' : 'mánuði');
13840 case 'y':
13841 return withoutSuffix || isFuture ? 'ár' : 'ári';
13842 case 'yy':
13843 if (plural(number)) {
13844 return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
13845 }
13846 return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
13847 }
13848 }
13849
13850 var is = moment.defineLocale('is', {
13851 months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
13852 monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
13853 weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
13854 weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
13855 weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
13856 longDateFormat : {
13857 LT : 'H:mm',
13858 LTS : 'H:mm:ss',
13859 L : 'DD.MM.YYYY',
13860 LL : 'D. MMMM YYYY',
13861 LLL : 'D. MMMM YYYY [kl.] H:mm',
13862 LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
13863 },
13864 calendar : {
13865 sameDay : '[í dag kl.] LT',
13866 nextDay : '[á morgun kl.] LT',
13867 nextWeek : 'dddd [kl.] LT',
13868 lastDay : '[í gær kl.] LT',
13869 lastWeek : '[síðasta] dddd [kl.] LT',
13870 sameElse : 'L'
13871 },
13872 relativeTime : {
13873 future : 'eftir %s',
13874 past : 'fyrir %s síðan',
13875 s : translate,
13876 ss : translate,
13877 m : translate,
13878 mm : translate,
13879 h : 'klukkustund',
13880 hh : translate,
13881 d : translate,
13882 dd : translate,
13883 M : translate,
13884 MM : translate,
13885 y : translate,
13886 yy : translate
13887 },
13888 dayOfMonthOrdinalParse: /\d{1,2}\./,
13889 ordinal : '%d.',
13890 week : {
13891 dow : 1, // Monday is the first day of the week.
13892 doy : 4 // The week that contains Jan 4th is the first week of the year.
13893 }
13894 });
13895
13896 return is;
13897
13898})));
13899
13900
13901/***/ }),
13902/* 78 */
13903/***/ (function(module, exports, __webpack_require__) {
13904
13905//! moment.js locale configuration
13906
13907;(function (global, factory) {
13908 true ? factory(__webpack_require__(0)) :
13909 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13910 factory(global.moment)
13911}(this, (function (moment) { 'use strict';
13912
13913
13914 var it = moment.defineLocale('it', {
13915 months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
13916 monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
13917 weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
13918 weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
13919 weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
13920 longDateFormat : {
13921 LT : 'HH:mm',
13922 LTS : 'HH:mm:ss',
13923 L : 'DD/MM/YYYY',
13924 LL : 'D MMMM YYYY',
13925 LLL : 'D MMMM YYYY HH:mm',
13926 LLLL : 'dddd D MMMM YYYY HH:mm'
13927 },
13928 calendar : {
13929 sameDay: '[Oggi alle] LT',
13930 nextDay: '[Domani alle] LT',
13931 nextWeek: 'dddd [alle] LT',
13932 lastDay: '[Ieri alle] LT',
13933 lastWeek: function () {
13934 switch (this.day()) {
13935 case 0:
13936 return '[la scorsa] dddd [alle] LT';
13937 default:
13938 return '[lo scorso] dddd [alle] LT';
13939 }
13940 },
13941 sameElse: 'L'
13942 },
13943 relativeTime : {
13944 future : function (s) {
13945 return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
13946 },
13947 past : '%s fa',
13948 s : 'alcuni secondi',
13949 ss : '%d secondi',
13950 m : 'un minuto',
13951 mm : '%d minuti',
13952 h : 'un\'ora',
13953 hh : '%d ore',
13954 d : 'un giorno',
13955 dd : '%d giorni',
13956 M : 'un mese',
13957 MM : '%d mesi',
13958 y : 'un anno',
13959 yy : '%d anni'
13960 },
13961 dayOfMonthOrdinalParse : /\d{1,2}º/,
13962 ordinal: '%dº',
13963 week : {
13964 dow : 1, // Monday is the first day of the week.
13965 doy : 4 // The week that contains Jan 4th is the first week of the year.
13966 }
13967 });
13968
13969 return it;
13970
13971})));
13972
13973
13974/***/ }),
13975/* 79 */
13976/***/ (function(module, exports, __webpack_require__) {
13977
13978//! moment.js locale configuration
13979
13980;(function (global, factory) {
13981 true ? factory(__webpack_require__(0)) :
13982 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
13983 factory(global.moment)
13984}(this, (function (moment) { 'use strict';
13985
13986
13987 var ja = moment.defineLocale('ja', {
13988 months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
13989 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
13990 weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
13991 weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
13992 weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
13993 longDateFormat : {
13994 LT : 'HH:mm',
13995 LTS : 'HH:mm:ss',
13996 L : 'YYYY/MM/DD',
13997 LL : 'YYYY年M月D日',
13998 LLL : 'YYYY年M月D日 HH:mm',
13999 LLLL : 'YYYY年M月D日 dddd HH:mm',
14000 l : 'YYYY/MM/DD',
14001 ll : 'YYYY年M月D日',
14002 lll : 'YYYY年M月D日 HH:mm',
14003 llll : 'YYYY年M月D日(ddd) HH:mm'
14004 },
14005 meridiemParse: /午前|午後/i,
14006 isPM : function (input) {
14007 return input === '午後';
14008 },
14009 meridiem : function (hour, minute, isLower) {
14010 if (hour < 12) {
14011 return '午前';
14012 } else {
14013 return '午後';
14014 }
14015 },
14016 calendar : {
14017 sameDay : '[今日] LT',
14018 nextDay : '[明日] LT',
14019 nextWeek : function (now) {
14020 if (now.week() < this.week()) {
14021 return '[来週]dddd LT';
14022 } else {
14023 return 'dddd LT';
14024 }
14025 },
14026 lastDay : '[昨日] LT',
14027 lastWeek : function (now) {
14028 if (this.week() < now.week()) {
14029 return '[先週]dddd LT';
14030 } else {
14031 return 'dddd LT';
14032 }
14033 },
14034 sameElse : 'L'
14035 },
14036 dayOfMonthOrdinalParse : /\d{1,2}日/,
14037 ordinal : function (number, period) {
14038 switch (period) {
14039 case 'd':
14040 case 'D':
14041 case 'DDD':
14042 return number + '日';
14043 default:
14044 return number;
14045 }
14046 },
14047 relativeTime : {
14048 future : '%s後',
14049 past : '%s前',
14050 s : '数秒',
14051 ss : '%d秒',
14052 m : '1分',
14053 mm : '%d分',
14054 h : '1時間',
14055 hh : '%d時間',
14056 d : '1日',
14057 dd : '%d日',
14058 M : '1ヶ月',
14059 MM : '%dヶ月',
14060 y : '1年',
14061 yy : '%d年'
14062 }
14063 });
14064
14065 return ja;
14066
14067})));
14068
14069
14070/***/ }),
14071/* 80 */
14072/***/ (function(module, exports, __webpack_require__) {
14073
14074//! moment.js locale configuration
14075
14076;(function (global, factory) {
14077 true ? factory(__webpack_require__(0)) :
14078 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14079 factory(global.moment)
14080}(this, (function (moment) { 'use strict';
14081
14082
14083 var jv = moment.defineLocale('jv', {
14084 months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
14085 monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
14086 weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
14087 weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
14088 weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
14089 longDateFormat : {
14090 LT : 'HH.mm',
14091 LTS : 'HH.mm.ss',
14092 L : 'DD/MM/YYYY',
14093 LL : 'D MMMM YYYY',
14094 LLL : 'D MMMM YYYY [pukul] HH.mm',
14095 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
14096 },
14097 meridiemParse: /enjing|siyang|sonten|ndalu/,
14098 meridiemHour : function (hour, meridiem) {
14099 if (hour === 12) {
14100 hour = 0;
14101 }
14102 if (meridiem === 'enjing') {
14103 return hour;
14104 } else if (meridiem === 'siyang') {
14105 return hour >= 11 ? hour : hour + 12;
14106 } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
14107 return hour + 12;
14108 }
14109 },
14110 meridiem : function (hours, minutes, isLower) {
14111 if (hours < 11) {
14112 return 'enjing';
14113 } else if (hours < 15) {
14114 return 'siyang';
14115 } else if (hours < 19) {
14116 return 'sonten';
14117 } else {
14118 return 'ndalu';
14119 }
14120 },
14121 calendar : {
14122 sameDay : '[Dinten puniko pukul] LT',
14123 nextDay : '[Mbenjang pukul] LT',
14124 nextWeek : 'dddd [pukul] LT',
14125 lastDay : '[Kala wingi pukul] LT',
14126 lastWeek : 'dddd [kepengker pukul] LT',
14127 sameElse : 'L'
14128 },
14129 relativeTime : {
14130 future : 'wonten ing %s',
14131 past : '%s ingkang kepengker',
14132 s : 'sawetawis detik',
14133 ss : '%d detik',
14134 m : 'setunggal menit',
14135 mm : '%d menit',
14136 h : 'setunggal jam',
14137 hh : '%d jam',
14138 d : 'sedinten',
14139 dd : '%d dinten',
14140 M : 'sewulan',
14141 MM : '%d wulan',
14142 y : 'setaun',
14143 yy : '%d taun'
14144 },
14145 week : {
14146 dow : 1, // Monday is the first day of the week.
14147 doy : 7 // The week that contains Jan 1st is the first week of the year.
14148 }
14149 });
14150
14151 return jv;
14152
14153})));
14154
14155
14156/***/ }),
14157/* 81 */
14158/***/ (function(module, exports, __webpack_require__) {
14159
14160//! moment.js locale configuration
14161
14162;(function (global, factory) {
14163 true ? factory(__webpack_require__(0)) :
14164 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14165 factory(global.moment)
14166}(this, (function (moment) { 'use strict';
14167
14168
14169 var ka = moment.defineLocale('ka', {
14170 months : {
14171 standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
14172 format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
14173 },
14174 monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
14175 weekdays : {
14176 standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
14177 format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
14178 isFormat: /(წინა|შემდეგ)/
14179 },
14180 weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
14181 weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
14182 longDateFormat : {
14183 LT : 'h:mm A',
14184 LTS : 'h:mm:ss A',
14185 L : 'DD/MM/YYYY',
14186 LL : 'D MMMM YYYY',
14187 LLL : 'D MMMM YYYY h:mm A',
14188 LLLL : 'dddd, D MMMM YYYY h:mm A'
14189 },
14190 calendar : {
14191 sameDay : '[დღეს] LT[-ზე]',
14192 nextDay : '[ხვალ] LT[-ზე]',
14193 lastDay : '[გუშინ] LT[-ზე]',
14194 nextWeek : '[შემდეგ] dddd LT[-ზე]',
14195 lastWeek : '[წინა] dddd LT-ზე',
14196 sameElse : 'L'
14197 },
14198 relativeTime : {
14199 future : function (s) {
14200 return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
14201 s.replace(/ი$/, 'ში') :
14202 s + 'ში';
14203 },
14204 past : function (s) {
14205 if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
14206 return s.replace(/(ი|ე)$/, 'ის წინ');
14207 }
14208 if ((/წელი/).test(s)) {
14209 return s.replace(/წელი$/, 'წლის წინ');
14210 }
14211 },
14212 s : 'რამდენიმე წამი',
14213 ss : '%d წამი',
14214 m : 'წუთი',
14215 mm : '%d წუთი',
14216 h : 'საათი',
14217 hh : '%d საათი',
14218 d : 'დღე',
14219 dd : '%d დღე',
14220 M : 'თვე',
14221 MM : '%d თვე',
14222 y : 'წელი',
14223 yy : '%d წელი'
14224 },
14225 dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
14226 ordinal : function (number) {
14227 if (number === 0) {
14228 return number;
14229 }
14230 if (number === 1) {
14231 return number + '-ლი';
14232 }
14233 if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
14234 return 'მე-' + number;
14235 }
14236 return number + '-ე';
14237 },
14238 week : {
14239 dow : 1,
14240 doy : 7
14241 }
14242 });
14243
14244 return ka;
14245
14246})));
14247
14248
14249/***/ }),
14250/* 82 */
14251/***/ (function(module, exports, __webpack_require__) {
14252
14253//! moment.js locale configuration
14254
14255;(function (global, factory) {
14256 true ? factory(__webpack_require__(0)) :
14257 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14258 factory(global.moment)
14259}(this, (function (moment) { 'use strict';
14260
14261
14262 var suffixes = {
14263 0: '-ші',
14264 1: '-ші',
14265 2: '-ші',
14266 3: '-ші',
14267 4: '-ші',
14268 5: '-ші',
14269 6: '-шы',
14270 7: '-ші',
14271 8: '-ші',
14272 9: '-шы',
14273 10: '-шы',
14274 20: '-шы',
14275 30: '-шы',
14276 40: '-шы',
14277 50: '-ші',
14278 60: '-шы',
14279 70: '-ші',
14280 80: '-ші',
14281 90: '-шы',
14282 100: '-ші'
14283 };
14284
14285 var kk = moment.defineLocale('kk', {
14286 months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
14287 monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
14288 weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
14289 weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
14290 weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
14291 longDateFormat : {
14292 LT : 'HH:mm',
14293 LTS : 'HH:mm:ss',
14294 L : 'DD.MM.YYYY',
14295 LL : 'D MMMM YYYY',
14296 LLL : 'D MMMM YYYY HH:mm',
14297 LLLL : 'dddd, D MMMM YYYY HH:mm'
14298 },
14299 calendar : {
14300 sameDay : '[Бүгін сағат] LT',
14301 nextDay : '[Ертең сағат] LT',
14302 nextWeek : 'dddd [сағат] LT',
14303 lastDay : '[Кеше сағат] LT',
14304 lastWeek : '[Өткен аптаның] dddd [сағат] LT',
14305 sameElse : 'L'
14306 },
14307 relativeTime : {
14308 future : '%s ішінде',
14309 past : '%s бұрын',
14310 s : 'бірнеше секунд',
14311 ss : '%d секунд',
14312 m : 'бір минут',
14313 mm : '%d минут',
14314 h : 'бір сағат',
14315 hh : '%d сағат',
14316 d : 'бір күн',
14317 dd : '%d күн',
14318 M : 'бір ай',
14319 MM : '%d ай',
14320 y : 'бір жыл',
14321 yy : '%d жыл'
14322 },
14323 dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
14324 ordinal : function (number) {
14325 var a = number % 10,
14326 b = number >= 100 ? 100 : null;
14327 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
14328 },
14329 week : {
14330 dow : 1, // Monday is the first day of the week.
14331 doy : 7 // The week that contains Jan 1st is the first week of the year.
14332 }
14333 });
14334
14335 return kk;
14336
14337})));
14338
14339
14340/***/ }),
14341/* 83 */
14342/***/ (function(module, exports, __webpack_require__) {
14343
14344//! moment.js locale configuration
14345
14346;(function (global, factory) {
14347 true ? factory(__webpack_require__(0)) :
14348 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14349 factory(global.moment)
14350}(this, (function (moment) { 'use strict';
14351
14352
14353 var symbolMap = {
14354 '1': '១',
14355 '2': '២',
14356 '3': '៣',
14357 '4': '៤',
14358 '5': '៥',
14359 '6': '៦',
14360 '7': '៧',
14361 '8': '៨',
14362 '9': '៩',
14363 '0': '០'
14364 }, numberMap = {
14365 '១': '1',
14366 '២': '2',
14367 '៣': '3',
14368 '៤': '4',
14369 '៥': '5',
14370 '៦': '6',
14371 '៧': '7',
14372 '៨': '8',
14373 '៩': '9',
14374 '០': '0'
14375 };
14376
14377 var km = moment.defineLocale('km', {
14378 months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
14379 '_'
14380 ),
14381 monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
14382 '_'
14383 ),
14384 weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
14385 weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
14386 weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
14387 weekdaysParseExact: true,
14388 longDateFormat: {
14389 LT: 'HH:mm',
14390 LTS: 'HH:mm:ss',
14391 L: 'DD/MM/YYYY',
14392 LL: 'D MMMM YYYY',
14393 LLL: 'D MMMM YYYY HH:mm',
14394 LLLL: 'dddd, D MMMM YYYY HH:mm'
14395 },
14396 meridiemParse: /ព្រឹក|ល្ងាច/,
14397 isPM: function (input) {
14398 return input === 'ល្ងាច';
14399 },
14400 meridiem: function (hour, minute, isLower) {
14401 if (hour < 12) {
14402 return 'ព្រឹក';
14403 } else {
14404 return 'ល្ងាច';
14405 }
14406 },
14407 calendar: {
14408 sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
14409 nextDay: '[ស្អែក ម៉ោង] LT',
14410 nextWeek: 'dddd [ម៉ោង] LT',
14411 lastDay: '[ម្សិលមិញ ម៉ោង] LT',
14412 lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
14413 sameElse: 'L'
14414 },
14415 relativeTime: {
14416 future: '%sទៀត',
14417 past: '%sមុន',
14418 s: 'ប៉ុន្មានវិនាទី',
14419 ss: '%d វិនាទី',
14420 m: 'មួយនាទី',
14421 mm: '%d នាទី',
14422 h: 'មួយម៉ោង',
14423 hh: '%d ម៉ោង',
14424 d: 'មួយថ្ងៃ',
14425 dd: '%d ថ្ងៃ',
14426 M: 'មួយខែ',
14427 MM: '%d ខែ',
14428 y: 'មួយឆ្នាំ',
14429 yy: '%d ឆ្នាំ'
14430 },
14431 dayOfMonthOrdinalParse : /ទី\d{1,2}/,
14432 ordinal : 'ទី%d',
14433 preparse: function (string) {
14434 return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
14435 return numberMap[match];
14436 });
14437 },
14438 postformat: function (string) {
14439 return string.replace(/\d/g, function (match) {
14440 return symbolMap[match];
14441 });
14442 },
14443 week: {
14444 dow: 1, // Monday is the first day of the week.
14445 doy: 4 // The week that contains Jan 4th is the first week of the year.
14446 }
14447 });
14448
14449 return km;
14450
14451})));
14452
14453
14454/***/ }),
14455/* 84 */
14456/***/ (function(module, exports, __webpack_require__) {
14457
14458//! moment.js locale configuration
14459
14460;(function (global, factory) {
14461 true ? factory(__webpack_require__(0)) :
14462 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14463 factory(global.moment)
14464}(this, (function (moment) { 'use strict';
14465
14466
14467 var symbolMap = {
14468 '1': '೧',
14469 '2': '೨',
14470 '3': '೩',
14471 '4': '೪',
14472 '5': '೫',
14473 '6': '೬',
14474 '7': '೭',
14475 '8': '೮',
14476 '9': '೯',
14477 '0': '೦'
14478 },
14479 numberMap = {
14480 '೧': '1',
14481 '೨': '2',
14482 '೩': '3',
14483 '೪': '4',
14484 '೫': '5',
14485 '೬': '6',
14486 '೭': '7',
14487 '೮': '8',
14488 '೯': '9',
14489 '೦': '0'
14490 };
14491
14492 var kn = moment.defineLocale('kn', {
14493 months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
14494 monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),
14495 monthsParseExact: true,
14496 weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
14497 weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
14498 weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
14499 longDateFormat : {
14500 LT : 'A h:mm',
14501 LTS : 'A h:mm:ss',
14502 L : 'DD/MM/YYYY',
14503 LL : 'D MMMM YYYY',
14504 LLL : 'D MMMM YYYY, A h:mm',
14505 LLLL : 'dddd, D MMMM YYYY, A h:mm'
14506 },
14507 calendar : {
14508 sameDay : '[ಇಂದು] LT',
14509 nextDay : '[ನಾಳೆ] LT',
14510 nextWeek : 'dddd, LT',
14511 lastDay : '[ನಿನ್ನೆ] LT',
14512 lastWeek : '[ಕೊನೆಯ] dddd, LT',
14513 sameElse : 'L'
14514 },
14515 relativeTime : {
14516 future : '%s ನಂತರ',
14517 past : '%s ಹಿಂದೆ',
14518 s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
14519 ss : '%d ಸೆಕೆಂಡುಗಳು',
14520 m : 'ಒಂದು ನಿಮಿಷ',
14521 mm : '%d ನಿಮಿಷ',
14522 h : 'ಒಂದು ಗಂಟೆ',
14523 hh : '%d ಗಂಟೆ',
14524 d : 'ಒಂದು ದಿನ',
14525 dd : '%d ದಿನ',
14526 M : 'ಒಂದು ತಿಂಗಳು',
14527 MM : '%d ತಿಂಗಳು',
14528 y : 'ಒಂದು ವರ್ಷ',
14529 yy : '%d ವರ್ಷ'
14530 },
14531 preparse: function (string) {
14532 return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
14533 return numberMap[match];
14534 });
14535 },
14536 postformat: function (string) {
14537 return string.replace(/\d/g, function (match) {
14538 return symbolMap[match];
14539 });
14540 },
14541 meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
14542 meridiemHour : function (hour, meridiem) {
14543 if (hour === 12) {
14544 hour = 0;
14545 }
14546 if (meridiem === 'ರಾತ್ರಿ') {
14547 return hour < 4 ? hour : hour + 12;
14548 } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
14549 return hour;
14550 } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
14551 return hour >= 10 ? hour : hour + 12;
14552 } else if (meridiem === 'ಸಂಜೆ') {
14553 return hour + 12;
14554 }
14555 },
14556 meridiem : function (hour, minute, isLower) {
14557 if (hour < 4) {
14558 return 'ರಾತ್ರಿ';
14559 } else if (hour < 10) {
14560 return 'ಬೆಳಿಗ್ಗೆ';
14561 } else if (hour < 17) {
14562 return 'ಮಧ್ಯಾಹ್ನ';
14563 } else if (hour < 20) {
14564 return 'ಸಂಜೆ';
14565 } else {
14566 return 'ರಾತ್ರಿ';
14567 }
14568 },
14569 dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
14570 ordinal : function (number) {
14571 return number + 'ನೇ';
14572 },
14573 week : {
14574 dow : 0, // Sunday is the first day of the week.
14575 doy : 6 // The week that contains Jan 1st is the first week of the year.
14576 }
14577 });
14578
14579 return kn;
14580
14581})));
14582
14583
14584/***/ }),
14585/* 85 */
14586/***/ (function(module, exports, __webpack_require__) {
14587
14588//! moment.js locale configuration
14589
14590;(function (global, factory) {
14591 true ? factory(__webpack_require__(0)) :
14592 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14593 factory(global.moment)
14594}(this, (function (moment) { 'use strict';
14595
14596
14597 var ko = moment.defineLocale('ko', {
14598 months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
14599 monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
14600 weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
14601 weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
14602 weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
14603 longDateFormat : {
14604 LT : 'A h:mm',
14605 LTS : 'A h:mm:ss',
14606 L : 'YYYY.MM.DD.',
14607 LL : 'YYYY년 MMMM D일',
14608 LLL : 'YYYY년 MMMM D일 A h:mm',
14609 LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
14610 l : 'YYYY.MM.DD.',
14611 ll : 'YYYY년 MMMM D일',
14612 lll : 'YYYY년 MMMM D일 A h:mm',
14613 llll : 'YYYY년 MMMM D일 dddd A h:mm'
14614 },
14615 calendar : {
14616 sameDay : '오늘 LT',
14617 nextDay : '내일 LT',
14618 nextWeek : 'dddd LT',
14619 lastDay : '어제 LT',
14620 lastWeek : '지난주 dddd LT',
14621 sameElse : 'L'
14622 },
14623 relativeTime : {
14624 future : '%s 후',
14625 past : '%s 전',
14626 s : '몇 초',
14627 ss : '%d초',
14628 m : '1분',
14629 mm : '%d분',
14630 h : '한 시간',
14631 hh : '%d시간',
14632 d : '하루',
14633 dd : '%d일',
14634 M : '한 달',
14635 MM : '%d달',
14636 y : '일 년',
14637 yy : '%d년'
14638 },
14639 dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
14640 ordinal : function (number, period) {
14641 switch (period) {
14642 case 'd':
14643 case 'D':
14644 case 'DDD':
14645 return number + '일';
14646 case 'M':
14647 return number + '월';
14648 case 'w':
14649 case 'W':
14650 return number + '주';
14651 default:
14652 return number;
14653 }
14654 },
14655 meridiemParse : /오전|오후/,
14656 isPM : function (token) {
14657 return token === '오후';
14658 },
14659 meridiem : function (hour, minute, isUpper) {
14660 return hour < 12 ? '오전' : '오후';
14661 }
14662 });
14663
14664 return ko;
14665
14666})));
14667
14668
14669/***/ }),
14670/* 86 */
14671/***/ (function(module, exports, __webpack_require__) {
14672
14673//! moment.js locale configuration
14674
14675;(function (global, factory) {
14676 true ? factory(__webpack_require__(0)) :
14677 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14678 factory(global.moment)
14679}(this, (function (moment) { 'use strict';
14680
14681
14682 var suffixes = {
14683 0: '-чү',
14684 1: '-чи',
14685 2: '-чи',
14686 3: '-чү',
14687 4: '-чү',
14688 5: '-чи',
14689 6: '-чы',
14690 7: '-чи',
14691 8: '-чи',
14692 9: '-чу',
14693 10: '-чу',
14694 20: '-чы',
14695 30: '-чу',
14696 40: '-чы',
14697 50: '-чү',
14698 60: '-чы',
14699 70: '-чи',
14700 80: '-чи',
14701 90: '-чу',
14702 100: '-чү'
14703 };
14704
14705 var ky = moment.defineLocale('ky', {
14706 months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
14707 monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
14708 weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
14709 weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
14710 weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
14711 longDateFormat : {
14712 LT : 'HH:mm',
14713 LTS : 'HH:mm:ss',
14714 L : 'DD.MM.YYYY',
14715 LL : 'D MMMM YYYY',
14716 LLL : 'D MMMM YYYY HH:mm',
14717 LLLL : 'dddd, D MMMM YYYY HH:mm'
14718 },
14719 calendar : {
14720 sameDay : '[Бүгүн саат] LT',
14721 nextDay : '[Эртең саат] LT',
14722 nextWeek : 'dddd [саат] LT',
14723 lastDay : '[Кече саат] LT',
14724 lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
14725 sameElse : 'L'
14726 },
14727 relativeTime : {
14728 future : '%s ичинде',
14729 past : '%s мурун',
14730 s : 'бирнече секунд',
14731 ss : '%d секунд',
14732 m : 'бир мүнөт',
14733 mm : '%d мүнөт',
14734 h : 'бир саат',
14735 hh : '%d саат',
14736 d : 'бир күн',
14737 dd : '%d күн',
14738 M : 'бир ай',
14739 MM : '%d ай',
14740 y : 'бир жыл',
14741 yy : '%d жыл'
14742 },
14743 dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
14744 ordinal : function (number) {
14745 var a = number % 10,
14746 b = number >= 100 ? 100 : null;
14747 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
14748 },
14749 week : {
14750 dow : 1, // Monday is the first day of the week.
14751 doy : 7 // The week that contains Jan 1st is the first week of the year.
14752 }
14753 });
14754
14755 return ky;
14756
14757})));
14758
14759
14760/***/ }),
14761/* 87 */
14762/***/ (function(module, exports, __webpack_require__) {
14763
14764//! moment.js locale configuration
14765
14766;(function (global, factory) {
14767 true ? factory(__webpack_require__(0)) :
14768 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14769 factory(global.moment)
14770}(this, (function (moment) { 'use strict';
14771
14772
14773 function processRelativeTime(number, withoutSuffix, key, isFuture) {
14774 var format = {
14775 'm': ['eng Minutt', 'enger Minutt'],
14776 'h': ['eng Stonn', 'enger Stonn'],
14777 'd': ['een Dag', 'engem Dag'],
14778 'M': ['ee Mount', 'engem Mount'],
14779 'y': ['ee Joer', 'engem Joer']
14780 };
14781 return withoutSuffix ? format[key][0] : format[key][1];
14782 }
14783 function processFutureTime(string) {
14784 var number = string.substr(0, string.indexOf(' '));
14785 if (eifelerRegelAppliesToNumber(number)) {
14786 return 'a ' + string;
14787 }
14788 return 'an ' + string;
14789 }
14790 function processPastTime(string) {
14791 var number = string.substr(0, string.indexOf(' '));
14792 if (eifelerRegelAppliesToNumber(number)) {
14793 return 'viru ' + string;
14794 }
14795 return 'virun ' + string;
14796 }
14797 /**
14798 * Returns true if the word before the given number loses the '-n' ending.
14799 * e.g. 'an 10 Deeg' but 'a 5 Deeg'
14800 *
14801 * @param number {integer}
14802 * @returns {boolean}
14803 */
14804 function eifelerRegelAppliesToNumber(number) {
14805 number = parseInt(number, 10);
14806 if (isNaN(number)) {
14807 return false;
14808 }
14809 if (number < 0) {
14810 // Negative Number --> always true
14811 return true;
14812 } else if (number < 10) {
14813 // Only 1 digit
14814 if (4 <= number && number <= 7) {
14815 return true;
14816 }
14817 return false;
14818 } else if (number < 100) {
14819 // 2 digits
14820 var lastDigit = number % 10, firstDigit = number / 10;
14821 if (lastDigit === 0) {
14822 return eifelerRegelAppliesToNumber(firstDigit);
14823 }
14824 return eifelerRegelAppliesToNumber(lastDigit);
14825 } else if (number < 10000) {
14826 // 3 or 4 digits --> recursively check first digit
14827 while (number >= 10) {
14828 number = number / 10;
14829 }
14830 return eifelerRegelAppliesToNumber(number);
14831 } else {
14832 // Anything larger than 4 digits: recursively check first n-3 digits
14833 number = number / 1000;
14834 return eifelerRegelAppliesToNumber(number);
14835 }
14836 }
14837
14838 var lb = moment.defineLocale('lb', {
14839 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
14840 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
14841 monthsParseExact : true,
14842 weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
14843 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
14844 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
14845 weekdaysParseExact : true,
14846 longDateFormat: {
14847 LT: 'H:mm [Auer]',
14848 LTS: 'H:mm:ss [Auer]',
14849 L: 'DD.MM.YYYY',
14850 LL: 'D. MMMM YYYY',
14851 LLL: 'D. MMMM YYYY H:mm [Auer]',
14852 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
14853 },
14854 calendar: {
14855 sameDay: '[Haut um] LT',
14856 sameElse: 'L',
14857 nextDay: '[Muer um] LT',
14858 nextWeek: 'dddd [um] LT',
14859 lastDay: '[Gëschter um] LT',
14860 lastWeek: function () {
14861 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
14862 switch (this.day()) {
14863 case 2:
14864 case 4:
14865 return '[Leschten] dddd [um] LT';
14866 default:
14867 return '[Leschte] dddd [um] LT';
14868 }
14869 }
14870 },
14871 relativeTime : {
14872 future : processFutureTime,
14873 past : processPastTime,
14874 s : 'e puer Sekonnen',
14875 ss : '%d Sekonnen',
14876 m : processRelativeTime,
14877 mm : '%d Minutten',
14878 h : processRelativeTime,
14879 hh : '%d Stonnen',
14880 d : processRelativeTime,
14881 dd : '%d Deeg',
14882 M : processRelativeTime,
14883 MM : '%d Méint',
14884 y : processRelativeTime,
14885 yy : '%d Joer'
14886 },
14887 dayOfMonthOrdinalParse: /\d{1,2}\./,
14888 ordinal: '%d.',
14889 week: {
14890 dow: 1, // Monday is the first day of the week.
14891 doy: 4 // The week that contains Jan 4th is the first week of the year.
14892 }
14893 });
14894
14895 return lb;
14896
14897})));
14898
14899
14900/***/ }),
14901/* 88 */
14902/***/ (function(module, exports, __webpack_require__) {
14903
14904//! moment.js locale configuration
14905
14906;(function (global, factory) {
14907 true ? factory(__webpack_require__(0)) :
14908 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14909 factory(global.moment)
14910}(this, (function (moment) { 'use strict';
14911
14912
14913 var lo = moment.defineLocale('lo', {
14914 months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
14915 monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
14916 weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
14917 weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
14918 weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
14919 weekdaysParseExact : true,
14920 longDateFormat : {
14921 LT : 'HH:mm',
14922 LTS : 'HH:mm:ss',
14923 L : 'DD/MM/YYYY',
14924 LL : 'D MMMM YYYY',
14925 LLL : 'D MMMM YYYY HH:mm',
14926 LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
14927 },
14928 meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
14929 isPM: function (input) {
14930 return input === 'ຕອນແລງ';
14931 },
14932 meridiem : function (hour, minute, isLower) {
14933 if (hour < 12) {
14934 return 'ຕອນເຊົ້າ';
14935 } else {
14936 return 'ຕອນແລງ';
14937 }
14938 },
14939 calendar : {
14940 sameDay : '[ມື້ນີ້ເວລາ] LT',
14941 nextDay : '[ມື້ອື່ນເວລາ] LT',
14942 nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
14943 lastDay : '[ມື້ວານນີ້ເວລາ] LT',
14944 lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
14945 sameElse : 'L'
14946 },
14947 relativeTime : {
14948 future : 'ອີກ %s',
14949 past : '%sຜ່ານມາ',
14950 s : 'ບໍ່ເທົ່າໃດວິນາທີ',
14951 ss : '%d ວິນາທີ' ,
14952 m : '1 ນາທີ',
14953 mm : '%d ນາທີ',
14954 h : '1 ຊົ່ວໂມງ',
14955 hh : '%d ຊົ່ວໂມງ',
14956 d : '1 ມື້',
14957 dd : '%d ມື້',
14958 M : '1 ເດືອນ',
14959 MM : '%d ເດືອນ',
14960 y : '1 ປີ',
14961 yy : '%d ປີ'
14962 },
14963 dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
14964 ordinal : function (number) {
14965 return 'ທີ່' + number;
14966 }
14967 });
14968
14969 return lo;
14970
14971})));
14972
14973
14974/***/ }),
14975/* 89 */
14976/***/ (function(module, exports, __webpack_require__) {
14977
14978//! moment.js locale configuration
14979
14980;(function (global, factory) {
14981 true ? factory(__webpack_require__(0)) :
14982 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
14983 factory(global.moment)
14984}(this, (function (moment) { 'use strict';
14985
14986
14987 var units = {
14988 'ss' : 'sekundė_sekundžių_sekundes',
14989 'm' : 'minutė_minutės_minutę',
14990 'mm': 'minutės_minučių_minutes',
14991 'h' : 'valanda_valandos_valandą',
14992 'hh': 'valandos_valandų_valandas',
14993 'd' : 'diena_dienos_dieną',
14994 'dd': 'dienos_dienų_dienas',
14995 'M' : 'mėnuo_mėnesio_mėnesį',
14996 'MM': 'mėnesiai_mėnesių_mėnesius',
14997 'y' : 'metai_metų_metus',
14998 'yy': 'metai_metų_metus'
14999 };
15000 function translateSeconds(number, withoutSuffix, key, isFuture) {
15001 if (withoutSuffix) {
15002 return 'kelios sekundės';
15003 } else {
15004 return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
15005 }
15006 }
15007 function translateSingular(number, withoutSuffix, key, isFuture) {
15008 return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
15009 }
15010 function special(number) {
15011 return number % 10 === 0 || (number > 10 && number < 20);
15012 }
15013 function forms(key) {
15014 return units[key].split('_');
15015 }
15016 function translate(number, withoutSuffix, key, isFuture) {
15017 var result = number + ' ';
15018 if (number === 1) {
15019 return result + translateSingular(number, withoutSuffix, key[0], isFuture);
15020 } else if (withoutSuffix) {
15021 return result + (special(number) ? forms(key)[1] : forms(key)[0]);
15022 } else {
15023 if (isFuture) {
15024 return result + forms(key)[1];
15025 } else {
15026 return result + (special(number) ? forms(key)[1] : forms(key)[2]);
15027 }
15028 }
15029 }
15030 var lt = moment.defineLocale('lt', {
15031 months : {
15032 format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
15033 standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
15034 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
15035 },
15036 monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
15037 weekdays : {
15038 format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
15039 standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
15040 isFormat: /dddd HH:mm/
15041 },
15042 weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
15043 weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
15044 weekdaysParseExact : true,
15045 longDateFormat : {
15046 LT : 'HH:mm',
15047 LTS : 'HH:mm:ss',
15048 L : 'YYYY-MM-DD',
15049 LL : 'YYYY [m.] MMMM D [d.]',
15050 LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
15051 LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
15052 l : 'YYYY-MM-DD',
15053 ll : 'YYYY [m.] MMMM D [d.]',
15054 lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
15055 llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
15056 },
15057 calendar : {
15058 sameDay : '[Šiandien] LT',
15059 nextDay : '[Rytoj] LT',
15060 nextWeek : 'dddd LT',
15061 lastDay : '[Vakar] LT',
15062 lastWeek : '[Praėjusį] dddd LT',
15063 sameElse : 'L'
15064 },
15065 relativeTime : {
15066 future : 'po %s',
15067 past : 'prieš %s',
15068 s : translateSeconds,
15069 ss : translate,
15070 m : translateSingular,
15071 mm : translate,
15072 h : translateSingular,
15073 hh : translate,
15074 d : translateSingular,
15075 dd : translate,
15076 M : translateSingular,
15077 MM : translate,
15078 y : translateSingular,
15079 yy : translate
15080 },
15081 dayOfMonthOrdinalParse: /\d{1,2}-oji/,
15082 ordinal : function (number) {
15083 return number + '-oji';
15084 },
15085 week : {
15086 dow : 1, // Monday is the first day of the week.
15087 doy : 4 // The week that contains Jan 4th is the first week of the year.
15088 }
15089 });
15090
15091 return lt;
15092
15093})));
15094
15095
15096/***/ }),
15097/* 90 */
15098/***/ (function(module, exports, __webpack_require__) {
15099
15100//! moment.js locale configuration
15101
15102;(function (global, factory) {
15103 true ? factory(__webpack_require__(0)) :
15104 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15105 factory(global.moment)
15106}(this, (function (moment) { 'use strict';
15107
15108
15109 var units = {
15110 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
15111 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
15112 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
15113 'h': 'stundas_stundām_stunda_stundas'.split('_'),
15114 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
15115 'd': 'dienas_dienām_diena_dienas'.split('_'),
15116 'dd': 'dienas_dienām_diena_dienas'.split('_'),
15117 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
15118 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
15119 'y': 'gada_gadiem_gads_gadi'.split('_'),
15120 'yy': 'gada_gadiem_gads_gadi'.split('_')
15121 };
15122 /**
15123 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
15124 */
15125 function format(forms, number, withoutSuffix) {
15126 if (withoutSuffix) {
15127 // E.g. "21 minūte", "3 minūtes".
15128 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
15129 } else {
15130 // E.g. "21 minūtes" as in "pēc 21 minūtes".
15131 // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
15132 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
15133 }
15134 }
15135 function relativeTimeWithPlural(number, withoutSuffix, key) {
15136 return number + ' ' + format(units[key], number, withoutSuffix);
15137 }
15138 function relativeTimeWithSingular(number, withoutSuffix, key) {
15139 return format(units[key], number, withoutSuffix);
15140 }
15141 function relativeSeconds(number, withoutSuffix) {
15142 return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
15143 }
15144
15145 var lv = moment.defineLocale('lv', {
15146 months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
15147 monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
15148 weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
15149 weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
15150 weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
15151 weekdaysParseExact : true,
15152 longDateFormat : {
15153 LT : 'HH:mm',
15154 LTS : 'HH:mm:ss',
15155 L : 'DD.MM.YYYY.',
15156 LL : 'YYYY. [gada] D. MMMM',
15157 LLL : 'YYYY. [gada] D. MMMM, HH:mm',
15158 LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
15159 },
15160 calendar : {
15161 sameDay : '[Šodien pulksten] LT',
15162 nextDay : '[Rīt pulksten] LT',
15163 nextWeek : 'dddd [pulksten] LT',
15164 lastDay : '[Vakar pulksten] LT',
15165 lastWeek : '[Pagājušā] dddd [pulksten] LT',
15166 sameElse : 'L'
15167 },
15168 relativeTime : {
15169 future : 'pēc %s',
15170 past : 'pirms %s',
15171 s : relativeSeconds,
15172 ss : relativeTimeWithPlural,
15173 m : relativeTimeWithSingular,
15174 mm : relativeTimeWithPlural,
15175 h : relativeTimeWithSingular,
15176 hh : relativeTimeWithPlural,
15177 d : relativeTimeWithSingular,
15178 dd : relativeTimeWithPlural,
15179 M : relativeTimeWithSingular,
15180 MM : relativeTimeWithPlural,
15181 y : relativeTimeWithSingular,
15182 yy : relativeTimeWithPlural
15183 },
15184 dayOfMonthOrdinalParse: /\d{1,2}\./,
15185 ordinal : '%d.',
15186 week : {
15187 dow : 1, // Monday is the first day of the week.
15188 doy : 4 // The week that contains Jan 4th is the first week of the year.
15189 }
15190 });
15191
15192 return lv;
15193
15194})));
15195
15196
15197/***/ }),
15198/* 91 */
15199/***/ (function(module, exports, __webpack_require__) {
15200
15201//! moment.js locale configuration
15202
15203;(function (global, factory) {
15204 true ? factory(__webpack_require__(0)) :
15205 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15206 factory(global.moment)
15207}(this, (function (moment) { 'use strict';
15208
15209
15210 var translator = {
15211 words: { //Different grammatical cases
15212 ss: ['sekund', 'sekunda', 'sekundi'],
15213 m: ['jedan minut', 'jednog minuta'],
15214 mm: ['minut', 'minuta', 'minuta'],
15215 h: ['jedan sat', 'jednog sata'],
15216 hh: ['sat', 'sata', 'sati'],
15217 dd: ['dan', 'dana', 'dana'],
15218 MM: ['mjesec', 'mjeseca', 'mjeseci'],
15219 yy: ['godina', 'godine', 'godina']
15220 },
15221 correctGrammaticalCase: function (number, wordKey) {
15222 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
15223 },
15224 translate: function (number, withoutSuffix, key) {
15225 var wordKey = translator.words[key];
15226 if (key.length === 1) {
15227 return withoutSuffix ? wordKey[0] : wordKey[1];
15228 } else {
15229 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
15230 }
15231 }
15232 };
15233
15234 var me = moment.defineLocale('me', {
15235 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
15236 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
15237 monthsParseExact : true,
15238 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
15239 weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
15240 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
15241 weekdaysParseExact : true,
15242 longDateFormat: {
15243 LT: 'H:mm',
15244 LTS : 'H:mm:ss',
15245 L: 'DD.MM.YYYY',
15246 LL: 'D. MMMM YYYY',
15247 LLL: 'D. MMMM YYYY H:mm',
15248 LLLL: 'dddd, D. MMMM YYYY H:mm'
15249 },
15250 calendar: {
15251 sameDay: '[danas u] LT',
15252 nextDay: '[sjutra u] LT',
15253
15254 nextWeek: function () {
15255 switch (this.day()) {
15256 case 0:
15257 return '[u] [nedjelju] [u] LT';
15258 case 3:
15259 return '[u] [srijedu] [u] LT';
15260 case 6:
15261 return '[u] [subotu] [u] LT';
15262 case 1:
15263 case 2:
15264 case 4:
15265 case 5:
15266 return '[u] dddd [u] LT';
15267 }
15268 },
15269 lastDay : '[juče u] LT',
15270 lastWeek : function () {
15271 var lastWeekDays = [
15272 '[prošle] [nedjelje] [u] LT',
15273 '[prošlog] [ponedjeljka] [u] LT',
15274 '[prošlog] [utorka] [u] LT',
15275 '[prošle] [srijede] [u] LT',
15276 '[prošlog] [četvrtka] [u] LT',
15277 '[prošlog] [petka] [u] LT',
15278 '[prošle] [subote] [u] LT'
15279 ];
15280 return lastWeekDays[this.day()];
15281 },
15282 sameElse : 'L'
15283 },
15284 relativeTime : {
15285 future : 'za %s',
15286 past : 'prije %s',
15287 s : 'nekoliko sekundi',
15288 ss : translator.translate,
15289 m : translator.translate,
15290 mm : translator.translate,
15291 h : translator.translate,
15292 hh : translator.translate,
15293 d : 'dan',
15294 dd : translator.translate,
15295 M : 'mjesec',
15296 MM : translator.translate,
15297 y : 'godinu',
15298 yy : translator.translate
15299 },
15300 dayOfMonthOrdinalParse: /\d{1,2}\./,
15301 ordinal : '%d.',
15302 week : {
15303 dow : 1, // Monday is the first day of the week.
15304 doy : 7 // The week that contains Jan 1st is the first week of the year.
15305 }
15306 });
15307
15308 return me;
15309
15310})));
15311
15312
15313/***/ }),
15314/* 92 */
15315/***/ (function(module, exports, __webpack_require__) {
15316
15317//! moment.js locale configuration
15318
15319;(function (global, factory) {
15320 true ? factory(__webpack_require__(0)) :
15321 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15322 factory(global.moment)
15323}(this, (function (moment) { 'use strict';
15324
15325
15326 var mi = moment.defineLocale('mi', {
15327 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('_'),
15328 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
15329 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
15330 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
15331 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
15332 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
15333 weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
15334 weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
15335 weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
15336 longDateFormat: {
15337 LT: 'HH:mm',
15338 LTS: 'HH:mm:ss',
15339 L: 'DD/MM/YYYY',
15340 LL: 'D MMMM YYYY',
15341 LLL: 'D MMMM YYYY [i] HH:mm',
15342 LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
15343 },
15344 calendar: {
15345 sameDay: '[i teie mahana, i] LT',
15346 nextDay: '[apopo i] LT',
15347 nextWeek: 'dddd [i] LT',
15348 lastDay: '[inanahi i] LT',
15349 lastWeek: 'dddd [whakamutunga i] LT',
15350 sameElse: 'L'
15351 },
15352 relativeTime: {
15353 future: 'i roto i %s',
15354 past: '%s i mua',
15355 s: 'te hēkona ruarua',
15356 ss: '%d hēkona',
15357 m: 'he meneti',
15358 mm: '%d meneti',
15359 h: 'te haora',
15360 hh: '%d haora',
15361 d: 'he ra',
15362 dd: '%d ra',
15363 M: 'he marama',
15364 MM: '%d marama',
15365 y: 'he tau',
15366 yy: '%d tau'
15367 },
15368 dayOfMonthOrdinalParse: /\d{1,2}º/,
15369 ordinal: '%dº',
15370 week : {
15371 dow : 1, // Monday is the first day of the week.
15372 doy : 4 // The week that contains Jan 4th is the first week of the year.
15373 }
15374 });
15375
15376 return mi;
15377
15378})));
15379
15380
15381/***/ }),
15382/* 93 */
15383/***/ (function(module, exports, __webpack_require__) {
15384
15385//! moment.js locale configuration
15386
15387;(function (global, factory) {
15388 true ? factory(__webpack_require__(0)) :
15389 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15390 factory(global.moment)
15391}(this, (function (moment) { 'use strict';
15392
15393
15394 var mk = moment.defineLocale('mk', {
15395 months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
15396 monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
15397 weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
15398 weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
15399 weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
15400 longDateFormat : {
15401 LT : 'H:mm',
15402 LTS : 'H:mm:ss',
15403 L : 'D.MM.YYYY',
15404 LL : 'D MMMM YYYY',
15405 LLL : 'D MMMM YYYY H:mm',
15406 LLLL : 'dddd, D MMMM YYYY H:mm'
15407 },
15408 calendar : {
15409 sameDay : '[Денес во] LT',
15410 nextDay : '[Утре во] LT',
15411 nextWeek : '[Во] dddd [во] LT',
15412 lastDay : '[Вчера во] LT',
15413 lastWeek : function () {
15414 switch (this.day()) {
15415 case 0:
15416 case 3:
15417 case 6:
15418 return '[Изминатата] dddd [во] LT';
15419 case 1:
15420 case 2:
15421 case 4:
15422 case 5:
15423 return '[Изминатиот] dddd [во] LT';
15424 }
15425 },
15426 sameElse : 'L'
15427 },
15428 relativeTime : {
15429 future : 'после %s',
15430 past : 'пред %s',
15431 s : 'неколку секунди',
15432 ss : '%d секунди',
15433 m : 'минута',
15434 mm : '%d минути',
15435 h : 'час',
15436 hh : '%d часа',
15437 d : 'ден',
15438 dd : '%d дена',
15439 M : 'месец',
15440 MM : '%d месеци',
15441 y : 'година',
15442 yy : '%d години'
15443 },
15444 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
15445 ordinal : function (number) {
15446 var lastDigit = number % 10,
15447 last2Digits = number % 100;
15448 if (number === 0) {
15449 return number + '-ев';
15450 } else if (last2Digits === 0) {
15451 return number + '-ен';
15452 } else if (last2Digits > 10 && last2Digits < 20) {
15453 return number + '-ти';
15454 } else if (lastDigit === 1) {
15455 return number + '-ви';
15456 } else if (lastDigit === 2) {
15457 return number + '-ри';
15458 } else if (lastDigit === 7 || lastDigit === 8) {
15459 return number + '-ми';
15460 } else {
15461 return number + '-ти';
15462 }
15463 },
15464 week : {
15465 dow : 1, // Monday is the first day of the week.
15466 doy : 7 // The week that contains Jan 1st is the first week of the year.
15467 }
15468 });
15469
15470 return mk;
15471
15472})));
15473
15474
15475/***/ }),
15476/* 94 */
15477/***/ (function(module, exports, __webpack_require__) {
15478
15479//! moment.js locale configuration
15480
15481;(function (global, factory) {
15482 true ? factory(__webpack_require__(0)) :
15483 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15484 factory(global.moment)
15485}(this, (function (moment) { 'use strict';
15486
15487
15488 var ml = moment.defineLocale('ml', {
15489 months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
15490 monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
15491 monthsParseExact : true,
15492 weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
15493 weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
15494 weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
15495 longDateFormat : {
15496 LT : 'A h:mm -നു',
15497 LTS : 'A h:mm:ss -നു',
15498 L : 'DD/MM/YYYY',
15499 LL : 'D MMMM YYYY',
15500 LLL : 'D MMMM YYYY, A h:mm -നു',
15501 LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
15502 },
15503 calendar : {
15504 sameDay : '[ഇന്ന്] LT',
15505 nextDay : '[നാളെ] LT',
15506 nextWeek : 'dddd, LT',
15507 lastDay : '[ഇന്നലെ] LT',
15508 lastWeek : '[കഴിഞ്ഞ] dddd, LT',
15509 sameElse : 'L'
15510 },
15511 relativeTime : {
15512 future : '%s കഴിഞ്ഞ്',
15513 past : '%s മുൻപ്',
15514 s : 'അൽപ നിമിഷങ്ങൾ',
15515 ss : '%d സെക്കൻഡ്',
15516 m : 'ഒരു മിനിറ്റ്',
15517 mm : '%d മിനിറ്റ്',
15518 h : 'ഒരു മണിക്കൂർ',
15519 hh : '%d മണിക്കൂർ',
15520 d : 'ഒരു ദിവസം',
15521 dd : '%d ദിവസം',
15522 M : 'ഒരു മാസം',
15523 MM : '%d മാസം',
15524 y : 'ഒരു വർഷം',
15525 yy : '%d വർഷം'
15526 },
15527 meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
15528 meridiemHour : function (hour, meridiem) {
15529 if (hour === 12) {
15530 hour = 0;
15531 }
15532 if ((meridiem === 'രാത്രി' && hour >= 4) ||
15533 meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
15534 meridiem === 'വൈകുന്നേരം') {
15535 return hour + 12;
15536 } else {
15537 return hour;
15538 }
15539 },
15540 meridiem : function (hour, minute, isLower) {
15541 if (hour < 4) {
15542 return 'രാത്രി';
15543 } else if (hour < 12) {
15544 return 'രാവിലെ';
15545 } else if (hour < 17) {
15546 return 'ഉച്ച കഴിഞ്ഞ്';
15547 } else if (hour < 20) {
15548 return 'വൈകുന്നേരം';
15549 } else {
15550 return 'രാത്രി';
15551 }
15552 }
15553 });
15554
15555 return ml;
15556
15557})));
15558
15559
15560/***/ }),
15561/* 95 */
15562/***/ (function(module, exports, __webpack_require__) {
15563
15564//! moment.js locale configuration
15565
15566;(function (global, factory) {
15567 true ? factory(__webpack_require__(0)) :
15568 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15569 factory(global.moment)
15570}(this, (function (moment) { 'use strict';
15571
15572
15573 function translate(number, withoutSuffix, key, isFuture) {
15574 switch (key) {
15575 case 's':
15576 return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
15577 case 'ss':
15578 return number + (withoutSuffix ? ' секунд' : ' секундын');
15579 case 'm':
15580 case 'mm':
15581 return number + (withoutSuffix ? ' минут' : ' минутын');
15582 case 'h':
15583 case 'hh':
15584 return number + (withoutSuffix ? ' цаг' : ' цагийн');
15585 case 'd':
15586 case 'dd':
15587 return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
15588 case 'M':
15589 case 'MM':
15590 return number + (withoutSuffix ? ' сар' : ' сарын');
15591 case 'y':
15592 case 'yy':
15593 return number + (withoutSuffix ? ' жил' : ' жилийн');
15594 default:
15595 return number;
15596 }
15597 }
15598
15599 var mn = moment.defineLocale('mn', {
15600 months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),
15601 monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),
15602 monthsParseExact : true,
15603 weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
15604 weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
15605 weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
15606 weekdaysParseExact : true,
15607 longDateFormat : {
15608 LT : 'HH:mm',
15609 LTS : 'HH:mm:ss',
15610 L : 'YYYY-MM-DD',
15611 LL : 'YYYY оны MMMMын D',
15612 LLL : 'YYYY оны MMMMын D HH:mm',
15613 LLLL : 'dddd, YYYY оны MMMMын D HH:mm'
15614 },
15615 meridiemParse: /ҮӨ|ҮХ/i,
15616 isPM : function (input) {
15617 return input === 'ҮХ';
15618 },
15619 meridiem : function (hour, minute, isLower) {
15620 if (hour < 12) {
15621 return 'ҮӨ';
15622 } else {
15623 return 'ҮХ';
15624 }
15625 },
15626 calendar : {
15627 sameDay : '[Өнөөдөр] LT',
15628 nextDay : '[Маргааш] LT',
15629 nextWeek : '[Ирэх] dddd LT',
15630 lastDay : '[Өчигдөр] LT',
15631 lastWeek : '[Өнгөрсөн] dddd LT',
15632 sameElse : 'L'
15633 },
15634 relativeTime : {
15635 future : '%s дараа',
15636 past : '%s өмнө',
15637 s : translate,
15638 ss : translate,
15639 m : translate,
15640 mm : translate,
15641 h : translate,
15642 hh : translate,
15643 d : translate,
15644 dd : translate,
15645 M : translate,
15646 MM : translate,
15647 y : translate,
15648 yy : translate
15649 },
15650 dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
15651 ordinal : function (number, period) {
15652 switch (period) {
15653 case 'd':
15654 case 'D':
15655 case 'DDD':
15656 return number + ' өдөр';
15657 default:
15658 return number;
15659 }
15660 }
15661 });
15662
15663 return mn;
15664
15665})));
15666
15667
15668/***/ }),
15669/* 96 */
15670/***/ (function(module, exports, __webpack_require__) {
15671
15672//! moment.js locale configuration
15673
15674;(function (global, factory) {
15675 true ? factory(__webpack_require__(0)) :
15676 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15677 factory(global.moment)
15678}(this, (function (moment) { 'use strict';
15679
15680
15681 var symbolMap = {
15682 '1': '१',
15683 '2': '२',
15684 '3': '३',
15685 '4': '४',
15686 '5': '५',
15687 '6': '६',
15688 '7': '७',
15689 '8': '८',
15690 '9': '९',
15691 '0': '०'
15692 },
15693 numberMap = {
15694 '१': '1',
15695 '२': '2',
15696 '३': '3',
15697 '४': '4',
15698 '५': '5',
15699 '६': '6',
15700 '७': '7',
15701 '८': '8',
15702 '९': '9',
15703 '०': '0'
15704 };
15705
15706 function relativeTimeMr(number, withoutSuffix, string, isFuture)
15707 {
15708 var output = '';
15709 if (withoutSuffix) {
15710 switch (string) {
15711 case 's': output = 'काही सेकंद'; break;
15712 case 'ss': output = '%d सेकंद'; break;
15713 case 'm': output = 'एक मिनिट'; break;
15714 case 'mm': output = '%d मिनिटे'; break;
15715 case 'h': output = 'एक तास'; break;
15716 case 'hh': output = '%d तास'; break;
15717 case 'd': output = 'एक दिवस'; break;
15718 case 'dd': output = '%d दिवस'; break;
15719 case 'M': output = 'एक महिना'; break;
15720 case 'MM': output = '%d महिने'; break;
15721 case 'y': output = 'एक वर्ष'; break;
15722 case 'yy': output = '%d वर्षे'; break;
15723 }
15724 }
15725 else {
15726 switch (string) {
15727 case 's': output = 'काही सेकंदां'; break;
15728 case 'ss': output = '%d सेकंदां'; break;
15729 case 'm': output = 'एका मिनिटा'; break;
15730 case 'mm': output = '%d मिनिटां'; break;
15731 case 'h': output = 'एका तासा'; break;
15732 case 'hh': output = '%d तासां'; break;
15733 case 'd': output = 'एका दिवसा'; break;
15734 case 'dd': output = '%d दिवसां'; break;
15735 case 'M': output = 'एका महिन्या'; break;
15736 case 'MM': output = '%d महिन्यां'; break;
15737 case 'y': output = 'एका वर्षा'; break;
15738 case 'yy': output = '%d वर्षां'; break;
15739 }
15740 }
15741 return output.replace(/%d/i, number);
15742 }
15743
15744 var mr = moment.defineLocale('mr', {
15745 months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
15746 monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
15747 monthsParseExact : true,
15748 weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
15749 weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
15750 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
15751 longDateFormat : {
15752 LT : 'A h:mm वाजता',
15753 LTS : 'A h:mm:ss वाजता',
15754 L : 'DD/MM/YYYY',
15755 LL : 'D MMMM YYYY',
15756 LLL : 'D MMMM YYYY, A h:mm वाजता',
15757 LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
15758 },
15759 calendar : {
15760 sameDay : '[आज] LT',
15761 nextDay : '[उद्या] LT',
15762 nextWeek : 'dddd, LT',
15763 lastDay : '[काल] LT',
15764 lastWeek: '[मागील] dddd, LT',
15765 sameElse : 'L'
15766 },
15767 relativeTime : {
15768 future: '%sमध्ये',
15769 past: '%sपूर्वी',
15770 s: relativeTimeMr,
15771 ss: relativeTimeMr,
15772 m: relativeTimeMr,
15773 mm: relativeTimeMr,
15774 h: relativeTimeMr,
15775 hh: relativeTimeMr,
15776 d: relativeTimeMr,
15777 dd: relativeTimeMr,
15778 M: relativeTimeMr,
15779 MM: relativeTimeMr,
15780 y: relativeTimeMr,
15781 yy: relativeTimeMr
15782 },
15783 preparse: function (string) {
15784 return string.replace(/[१२३४५६७८९०]/g, function (match) {
15785 return numberMap[match];
15786 });
15787 },
15788 postformat: function (string) {
15789 return string.replace(/\d/g, function (match) {
15790 return symbolMap[match];
15791 });
15792 },
15793 meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
15794 meridiemHour : function (hour, meridiem) {
15795 if (hour === 12) {
15796 hour = 0;
15797 }
15798 if (meridiem === 'रात्री') {
15799 return hour < 4 ? hour : hour + 12;
15800 } else if (meridiem === 'सकाळी') {
15801 return hour;
15802 } else if (meridiem === 'दुपारी') {
15803 return hour >= 10 ? hour : hour + 12;
15804 } else if (meridiem === 'सायंकाळी') {
15805 return hour + 12;
15806 }
15807 },
15808 meridiem: function (hour, minute, isLower) {
15809 if (hour < 4) {
15810 return 'रात्री';
15811 } else if (hour < 10) {
15812 return 'सकाळी';
15813 } else if (hour < 17) {
15814 return 'दुपारी';
15815 } else if (hour < 20) {
15816 return 'सायंकाळी';
15817 } else {
15818 return 'रात्री';
15819 }
15820 },
15821 week : {
15822 dow : 0, // Sunday is the first day of the week.
15823 doy : 6 // The week that contains Jan 1st is the first week of the year.
15824 }
15825 });
15826
15827 return mr;
15828
15829})));
15830
15831
15832/***/ }),
15833/* 97 */
15834/***/ (function(module, exports, __webpack_require__) {
15835
15836//! moment.js locale configuration
15837
15838;(function (global, factory) {
15839 true ? factory(__webpack_require__(0)) :
15840 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15841 factory(global.moment)
15842}(this, (function (moment) { 'use strict';
15843
15844
15845 var msMy = moment.defineLocale('ms-my', {
15846 months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
15847 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
15848 weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
15849 weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
15850 weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
15851 longDateFormat : {
15852 LT : 'HH.mm',
15853 LTS : 'HH.mm.ss',
15854 L : 'DD/MM/YYYY',
15855 LL : 'D MMMM YYYY',
15856 LLL : 'D MMMM YYYY [pukul] HH.mm',
15857 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
15858 },
15859 meridiemParse: /pagi|tengahari|petang|malam/,
15860 meridiemHour: function (hour, meridiem) {
15861 if (hour === 12) {
15862 hour = 0;
15863 }
15864 if (meridiem === 'pagi') {
15865 return hour;
15866 } else if (meridiem === 'tengahari') {
15867 return hour >= 11 ? hour : hour + 12;
15868 } else if (meridiem === 'petang' || meridiem === 'malam') {
15869 return hour + 12;
15870 }
15871 },
15872 meridiem : function (hours, minutes, isLower) {
15873 if (hours < 11) {
15874 return 'pagi';
15875 } else if (hours < 15) {
15876 return 'tengahari';
15877 } else if (hours < 19) {
15878 return 'petang';
15879 } else {
15880 return 'malam';
15881 }
15882 },
15883 calendar : {
15884 sameDay : '[Hari ini pukul] LT',
15885 nextDay : '[Esok pukul] LT',
15886 nextWeek : 'dddd [pukul] LT',
15887 lastDay : '[Kelmarin pukul] LT',
15888 lastWeek : 'dddd [lepas pukul] LT',
15889 sameElse : 'L'
15890 },
15891 relativeTime : {
15892 future : 'dalam %s',
15893 past : '%s yang lepas',
15894 s : 'beberapa saat',
15895 ss : '%d saat',
15896 m : 'seminit',
15897 mm : '%d minit',
15898 h : 'sejam',
15899 hh : '%d jam',
15900 d : 'sehari',
15901 dd : '%d hari',
15902 M : 'sebulan',
15903 MM : '%d bulan',
15904 y : 'setahun',
15905 yy : '%d tahun'
15906 },
15907 week : {
15908 dow : 1, // Monday is the first day of the week.
15909 doy : 7 // The week that contains Jan 1st is the first week of the year.
15910 }
15911 });
15912
15913 return msMy;
15914
15915})));
15916
15917
15918/***/ }),
15919/* 98 */
15920/***/ (function(module, exports, __webpack_require__) {
15921
15922//! moment.js locale configuration
15923
15924;(function (global, factory) {
15925 true ? factory(__webpack_require__(0)) :
15926 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
15927 factory(global.moment)
15928}(this, (function (moment) { 'use strict';
15929
15930
15931 var ms = moment.defineLocale('ms', {
15932 months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
15933 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
15934 weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
15935 weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
15936 weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
15937 longDateFormat : {
15938 LT : 'HH.mm',
15939 LTS : 'HH.mm.ss',
15940 L : 'DD/MM/YYYY',
15941 LL : 'D MMMM YYYY',
15942 LLL : 'D MMMM YYYY [pukul] HH.mm',
15943 LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
15944 },
15945 meridiemParse: /pagi|tengahari|petang|malam/,
15946 meridiemHour: function (hour, meridiem) {
15947 if (hour === 12) {
15948 hour = 0;
15949 }
15950 if (meridiem === 'pagi') {
15951 return hour;
15952 } else if (meridiem === 'tengahari') {
15953 return hour >= 11 ? hour : hour + 12;
15954 } else if (meridiem === 'petang' || meridiem === 'malam') {
15955 return hour + 12;
15956 }
15957 },
15958 meridiem : function (hours, minutes, isLower) {
15959 if (hours < 11) {
15960 return 'pagi';
15961 } else if (hours < 15) {
15962 return 'tengahari';
15963 } else if (hours < 19) {
15964 return 'petang';
15965 } else {
15966 return 'malam';
15967 }
15968 },
15969 calendar : {
15970 sameDay : '[Hari ini pukul] LT',
15971 nextDay : '[Esok pukul] LT',
15972 nextWeek : 'dddd [pukul] LT',
15973 lastDay : '[Kelmarin pukul] LT',
15974 lastWeek : 'dddd [lepas pukul] LT',
15975 sameElse : 'L'
15976 },
15977 relativeTime : {
15978 future : 'dalam %s',
15979 past : '%s yang lepas',
15980 s : 'beberapa saat',
15981 ss : '%d saat',
15982 m : 'seminit',
15983 mm : '%d minit',
15984 h : 'sejam',
15985 hh : '%d jam',
15986 d : 'sehari',
15987 dd : '%d hari',
15988 M : 'sebulan',
15989 MM : '%d bulan',
15990 y : 'setahun',
15991 yy : '%d tahun'
15992 },
15993 week : {
15994 dow : 1, // Monday is the first day of the week.
15995 doy : 7 // The week that contains Jan 1st is the first week of the year.
15996 }
15997 });
15998
15999 return ms;
16000
16001})));
16002
16003
16004/***/ }),
16005/* 99 */
16006/***/ (function(module, exports, __webpack_require__) {
16007
16008//! moment.js locale configuration
16009
16010;(function (global, factory) {
16011 true ? factory(__webpack_require__(0)) :
16012 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16013 factory(global.moment)
16014}(this, (function (moment) { 'use strict';
16015
16016
16017 var mt = moment.defineLocale('mt', {
16018 months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
16019 monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
16020 weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
16021 weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
16022 weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
16023 longDateFormat : {
16024 LT : 'HH:mm',
16025 LTS : 'HH:mm:ss',
16026 L : 'DD/MM/YYYY',
16027 LL : 'D MMMM YYYY',
16028 LLL : 'D MMMM YYYY HH:mm',
16029 LLLL : 'dddd, D MMMM YYYY HH:mm'
16030 },
16031 calendar : {
16032 sameDay : '[Illum fil-]LT',
16033 nextDay : '[Għada fil-]LT',
16034 nextWeek : 'dddd [fil-]LT',
16035 lastDay : '[Il-bieraħ fil-]LT',
16036 lastWeek : 'dddd [li għadda] [fil-]LT',
16037 sameElse : 'L'
16038 },
16039 relativeTime : {
16040 future : 'f’ %s',
16041 past : '%s ilu',
16042 s : 'ftit sekondi',
16043 ss : '%d sekondi',
16044 m : 'minuta',
16045 mm : '%d minuti',
16046 h : 'siegħa',
16047 hh : '%d siegħat',
16048 d : 'ġurnata',
16049 dd : '%d ġranet',
16050 M : 'xahar',
16051 MM : '%d xhur',
16052 y : 'sena',
16053 yy : '%d sni'
16054 },
16055 dayOfMonthOrdinalParse : /\d{1,2}º/,
16056 ordinal: '%dº',
16057 week : {
16058 dow : 1, // Monday is the first day of the week.
16059 doy : 4 // The week that contains Jan 4th is the first week of the year.
16060 }
16061 });
16062
16063 return mt;
16064
16065})));
16066
16067
16068/***/ }),
16069/* 100 */
16070/***/ (function(module, exports, __webpack_require__) {
16071
16072//! moment.js locale configuration
16073
16074;(function (global, factory) {
16075 true ? factory(__webpack_require__(0)) :
16076 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16077 factory(global.moment)
16078}(this, (function (moment) { 'use strict';
16079
16080
16081 var symbolMap = {
16082 '1': '၁',
16083 '2': '၂',
16084 '3': '၃',
16085 '4': '၄',
16086 '5': '၅',
16087 '6': '၆',
16088 '7': '၇',
16089 '8': '၈',
16090 '9': '၉',
16091 '0': '၀'
16092 }, numberMap = {
16093 '၁': '1',
16094 '၂': '2',
16095 '၃': '3',
16096 '၄': '4',
16097 '၅': '5',
16098 '၆': '6',
16099 '၇': '7',
16100 '၈': '8',
16101 '၉': '9',
16102 '၀': '0'
16103 };
16104
16105 var my = moment.defineLocale('my', {
16106 months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
16107 monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
16108 weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
16109 weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
16110 weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
16111
16112 longDateFormat: {
16113 LT: 'HH:mm',
16114 LTS: 'HH:mm:ss',
16115 L: 'DD/MM/YYYY',
16116 LL: 'D MMMM YYYY',
16117 LLL: 'D MMMM YYYY HH:mm',
16118 LLLL: 'dddd D MMMM YYYY HH:mm'
16119 },
16120 calendar: {
16121 sameDay: '[ယနေ.] LT [မှာ]',
16122 nextDay: '[မနက်ဖြန်] LT [မှာ]',
16123 nextWeek: 'dddd LT [မှာ]',
16124 lastDay: '[မနေ.က] LT [မှာ]',
16125 lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
16126 sameElse: 'L'
16127 },
16128 relativeTime: {
16129 future: 'လာမည့် %s မှာ',
16130 past: 'လွန်ခဲ့သော %s က',
16131 s: 'စက္ကန်.အနည်းငယ်',
16132 ss : '%d စက္ကန့်',
16133 m: 'တစ်မိနစ်',
16134 mm: '%d မိနစ်',
16135 h: 'တစ်နာရီ',
16136 hh: '%d နာရီ',
16137 d: 'တစ်ရက်',
16138 dd: '%d ရက်',
16139 M: 'တစ်လ',
16140 MM: '%d လ',
16141 y: 'တစ်နှစ်',
16142 yy: '%d နှစ်'
16143 },
16144 preparse: function (string) {
16145 return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
16146 return numberMap[match];
16147 });
16148 },
16149 postformat: function (string) {
16150 return string.replace(/\d/g, function (match) {
16151 return symbolMap[match];
16152 });
16153 },
16154 week: {
16155 dow: 1, // Monday is the first day of the week.
16156 doy: 4 // The week that contains Jan 1st is the first week of the year.
16157 }
16158 });
16159
16160 return my;
16161
16162})));
16163
16164
16165/***/ }),
16166/* 101 */
16167/***/ (function(module, exports, __webpack_require__) {
16168
16169//! moment.js locale configuration
16170
16171;(function (global, factory) {
16172 true ? factory(__webpack_require__(0)) :
16173 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16174 factory(global.moment)
16175}(this, (function (moment) { 'use strict';
16176
16177
16178 var nb = moment.defineLocale('nb', {
16179 months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
16180 monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
16181 monthsParseExact : true,
16182 weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
16183 weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
16184 weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
16185 weekdaysParseExact : true,
16186 longDateFormat : {
16187 LT : 'HH:mm',
16188 LTS : 'HH:mm:ss',
16189 L : 'DD.MM.YYYY',
16190 LL : 'D. MMMM YYYY',
16191 LLL : 'D. MMMM YYYY [kl.] HH:mm',
16192 LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
16193 },
16194 calendar : {
16195 sameDay: '[i dag kl.] LT',
16196 nextDay: '[i morgen kl.] LT',
16197 nextWeek: 'dddd [kl.] LT',
16198 lastDay: '[i går kl.] LT',
16199 lastWeek: '[forrige] dddd [kl.] LT',
16200 sameElse: 'L'
16201 },
16202 relativeTime : {
16203 future : 'om %s',
16204 past : '%s siden',
16205 s : 'noen sekunder',
16206 ss : '%d sekunder',
16207 m : 'ett minutt',
16208 mm : '%d minutter',
16209 h : 'en time',
16210 hh : '%d timer',
16211 d : 'en dag',
16212 dd : '%d dager',
16213 M : 'en måned',
16214 MM : '%d måneder',
16215 y : 'ett år',
16216 yy : '%d år'
16217 },
16218 dayOfMonthOrdinalParse: /\d{1,2}\./,
16219 ordinal : '%d.',
16220 week : {
16221 dow : 1, // Monday is the first day of the week.
16222 doy : 4 // The week that contains Jan 4th is the first week of the year.
16223 }
16224 });
16225
16226 return nb;
16227
16228})));
16229
16230
16231/***/ }),
16232/* 102 */
16233/***/ (function(module, exports, __webpack_require__) {
16234
16235//! moment.js locale configuration
16236
16237;(function (global, factory) {
16238 true ? factory(__webpack_require__(0)) :
16239 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16240 factory(global.moment)
16241}(this, (function (moment) { 'use strict';
16242
16243
16244 var symbolMap = {
16245 '1': '१',
16246 '2': '२',
16247 '3': '३',
16248 '4': '४',
16249 '5': '५',
16250 '6': '६',
16251 '7': '७',
16252 '8': '८',
16253 '9': '९',
16254 '0': '०'
16255 },
16256 numberMap = {
16257 '१': '1',
16258 '२': '2',
16259 '३': '3',
16260 '४': '4',
16261 '५': '5',
16262 '६': '6',
16263 '७': '7',
16264 '८': '8',
16265 '९': '9',
16266 '०': '0'
16267 };
16268
16269 var ne = moment.defineLocale('ne', {
16270 months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
16271 monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
16272 monthsParseExact : true,
16273 weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
16274 weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
16275 weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
16276 weekdaysParseExact : true,
16277 longDateFormat : {
16278 LT : 'Aको h:mm बजे',
16279 LTS : 'Aको h:mm:ss बजे',
16280 L : 'DD/MM/YYYY',
16281 LL : 'D MMMM YYYY',
16282 LLL : 'D MMMM YYYY, Aको h:mm बजे',
16283 LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
16284 },
16285 preparse: function (string) {
16286 return string.replace(/[१२३४५६७८९०]/g, function (match) {
16287 return numberMap[match];
16288 });
16289 },
16290 postformat: function (string) {
16291 return string.replace(/\d/g, function (match) {
16292 return symbolMap[match];
16293 });
16294 },
16295 meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
16296 meridiemHour : function (hour, meridiem) {
16297 if (hour === 12) {
16298 hour = 0;
16299 }
16300 if (meridiem === 'राति') {
16301 return hour < 4 ? hour : hour + 12;
16302 } else if (meridiem === 'बिहान') {
16303 return hour;
16304 } else if (meridiem === 'दिउँसो') {
16305 return hour >= 10 ? hour : hour + 12;
16306 } else if (meridiem === 'साँझ') {
16307 return hour + 12;
16308 }
16309 },
16310 meridiem : function (hour, minute, isLower) {
16311 if (hour < 3) {
16312 return 'राति';
16313 } else if (hour < 12) {
16314 return 'बिहान';
16315 } else if (hour < 16) {
16316 return 'दिउँसो';
16317 } else if (hour < 20) {
16318 return 'साँझ';
16319 } else {
16320 return 'राति';
16321 }
16322 },
16323 calendar : {
16324 sameDay : '[आज] LT',
16325 nextDay : '[भोलि] LT',
16326 nextWeek : '[आउँदो] dddd[,] LT',
16327 lastDay : '[हिजो] LT',
16328 lastWeek : '[गएको] dddd[,] LT',
16329 sameElse : 'L'
16330 },
16331 relativeTime : {
16332 future : '%sमा',
16333 past : '%s अगाडि',
16334 s : 'केही क्षण',
16335 ss : '%d सेकेण्ड',
16336 m : 'एक मिनेट',
16337 mm : '%d मिनेट',
16338 h : 'एक घण्टा',
16339 hh : '%d घण्टा',
16340 d : 'एक दिन',
16341 dd : '%d दिन',
16342 M : 'एक महिना',
16343 MM : '%d महिना',
16344 y : 'एक बर्ष',
16345 yy : '%d बर्ष'
16346 },
16347 week : {
16348 dow : 0, // Sunday is the first day of the week.
16349 doy : 6 // The week that contains Jan 1st is the first week of the year.
16350 }
16351 });
16352
16353 return ne;
16354
16355})));
16356
16357
16358/***/ }),
16359/* 103 */
16360/***/ (function(module, exports, __webpack_require__) {
16361
16362//! moment.js locale configuration
16363
16364;(function (global, factory) {
16365 true ? factory(__webpack_require__(0)) :
16366 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16367 factory(global.moment)
16368}(this, (function (moment) { 'use strict';
16369
16370
16371 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
16372 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
16373
16374 var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
16375 var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
16376
16377 var nlBe = moment.defineLocale('nl-be', {
16378 months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
16379 monthsShort : function (m, format) {
16380 if (!m) {
16381 return monthsShortWithDots;
16382 } else if (/-MMM-/.test(format)) {
16383 return monthsShortWithoutDots[m.month()];
16384 } else {
16385 return monthsShortWithDots[m.month()];
16386 }
16387 },
16388
16389 monthsRegex: monthsRegex,
16390 monthsShortRegex: monthsRegex,
16391 monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
16392 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
16393
16394 monthsParse : monthsParse,
16395 longMonthsParse : monthsParse,
16396 shortMonthsParse : monthsParse,
16397
16398 weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
16399 weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
16400 weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
16401 weekdaysParseExact : true,
16402 longDateFormat : {
16403 LT : 'HH:mm',
16404 LTS : 'HH:mm:ss',
16405 L : 'DD/MM/YYYY',
16406 LL : 'D MMMM YYYY',
16407 LLL : 'D MMMM YYYY HH:mm',
16408 LLLL : 'dddd D MMMM YYYY HH:mm'
16409 },
16410 calendar : {
16411 sameDay: '[vandaag om] LT',
16412 nextDay: '[morgen om] LT',
16413 nextWeek: 'dddd [om] LT',
16414 lastDay: '[gisteren om] LT',
16415 lastWeek: '[afgelopen] dddd [om] LT',
16416 sameElse: 'L'
16417 },
16418 relativeTime : {
16419 future : 'over %s',
16420 past : '%s geleden',
16421 s : 'een paar seconden',
16422 ss : '%d seconden',
16423 m : 'één minuut',
16424 mm : '%d minuten',
16425 h : 'één uur',
16426 hh : '%d uur',
16427 d : 'één dag',
16428 dd : '%d dagen',
16429 M : 'één maand',
16430 MM : '%d maanden',
16431 y : 'één jaar',
16432 yy : '%d jaar'
16433 },
16434 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
16435 ordinal : function (number) {
16436 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
16437 },
16438 week : {
16439 dow : 1, // Monday is the first day of the week.
16440 doy : 4 // The week that contains Jan 4th is the first week of the year.
16441 }
16442 });
16443
16444 return nlBe;
16445
16446})));
16447
16448
16449/***/ }),
16450/* 104 */
16451/***/ (function(module, exports, __webpack_require__) {
16452
16453//! moment.js locale configuration
16454
16455;(function (global, factory) {
16456 true ? factory(__webpack_require__(0)) :
16457 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16458 factory(global.moment)
16459}(this, (function (moment) { 'use strict';
16460
16461
16462 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
16463 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
16464
16465 var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
16466 var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
16467
16468 var nl = moment.defineLocale('nl', {
16469 months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
16470 monthsShort : function (m, format) {
16471 if (!m) {
16472 return monthsShortWithDots;
16473 } else if (/-MMM-/.test(format)) {
16474 return monthsShortWithoutDots[m.month()];
16475 } else {
16476 return monthsShortWithDots[m.month()];
16477 }
16478 },
16479
16480 monthsRegex: monthsRegex,
16481 monthsShortRegex: monthsRegex,
16482 monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
16483 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
16484
16485 monthsParse : monthsParse,
16486 longMonthsParse : monthsParse,
16487 shortMonthsParse : monthsParse,
16488
16489 weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
16490 weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
16491 weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
16492 weekdaysParseExact : true,
16493 longDateFormat : {
16494 LT : 'HH:mm',
16495 LTS : 'HH:mm:ss',
16496 L : 'DD-MM-YYYY',
16497 LL : 'D MMMM YYYY',
16498 LLL : 'D MMMM YYYY HH:mm',
16499 LLLL : 'dddd D MMMM YYYY HH:mm'
16500 },
16501 calendar : {
16502 sameDay: '[vandaag om] LT',
16503 nextDay: '[morgen om] LT',
16504 nextWeek: 'dddd [om] LT',
16505 lastDay: '[gisteren om] LT',
16506 lastWeek: '[afgelopen] dddd [om] LT',
16507 sameElse: 'L'
16508 },
16509 relativeTime : {
16510 future : 'over %s',
16511 past : '%s geleden',
16512 s : 'een paar seconden',
16513 ss : '%d seconden',
16514 m : 'één minuut',
16515 mm : '%d minuten',
16516 h : 'één uur',
16517 hh : '%d uur',
16518 d : 'één dag',
16519 dd : '%d dagen',
16520 M : 'één maand',
16521 MM : '%d maanden',
16522 y : 'één jaar',
16523 yy : '%d jaar'
16524 },
16525 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
16526 ordinal : function (number) {
16527 return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
16528 },
16529 week : {
16530 dow : 1, // Monday is the first day of the week.
16531 doy : 4 // The week that contains Jan 4th is the first week of the year.
16532 }
16533 });
16534
16535 return nl;
16536
16537})));
16538
16539
16540/***/ }),
16541/* 105 */
16542/***/ (function(module, exports, __webpack_require__) {
16543
16544//! moment.js locale configuration
16545
16546;(function (global, factory) {
16547 true ? factory(__webpack_require__(0)) :
16548 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16549 factory(global.moment)
16550}(this, (function (moment) { 'use strict';
16551
16552
16553 var nn = moment.defineLocale('nn', {
16554 months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
16555 monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
16556 weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
16557 weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
16558 weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
16559 longDateFormat : {
16560 LT : 'HH:mm',
16561 LTS : 'HH:mm:ss',
16562 L : 'DD.MM.YYYY',
16563 LL : 'D. MMMM YYYY',
16564 LLL : 'D. MMMM YYYY [kl.] H:mm',
16565 LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
16566 },
16567 calendar : {
16568 sameDay: '[I dag klokka] LT',
16569 nextDay: '[I morgon klokka] LT',
16570 nextWeek: 'dddd [klokka] LT',
16571 lastDay: '[I går klokka] LT',
16572 lastWeek: '[Føregåande] dddd [klokka] LT',
16573 sameElse: 'L'
16574 },
16575 relativeTime : {
16576 future : 'om %s',
16577 past : '%s sidan',
16578 s : 'nokre sekund',
16579 ss : '%d sekund',
16580 m : 'eit minutt',
16581 mm : '%d minutt',
16582 h : 'ein time',
16583 hh : '%d timar',
16584 d : 'ein dag',
16585 dd : '%d dagar',
16586 M : 'ein månad',
16587 MM : '%d månader',
16588 y : 'eit år',
16589 yy : '%d år'
16590 },
16591 dayOfMonthOrdinalParse: /\d{1,2}\./,
16592 ordinal : '%d.',
16593 week : {
16594 dow : 1, // Monday is the first day of the week.
16595 doy : 4 // The week that contains Jan 4th is the first week of the year.
16596 }
16597 });
16598
16599 return nn;
16600
16601})));
16602
16603
16604/***/ }),
16605/* 106 */
16606/***/ (function(module, exports, __webpack_require__) {
16607
16608//! moment.js locale configuration
16609
16610;(function (global, factory) {
16611 true ? factory(__webpack_require__(0)) :
16612 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16613 factory(global.moment)
16614}(this, (function (moment) { 'use strict';
16615
16616
16617 var symbolMap = {
16618 '1': '੧',
16619 '2': '੨',
16620 '3': '੩',
16621 '4': '੪',
16622 '5': '੫',
16623 '6': '੬',
16624 '7': '੭',
16625 '8': '੮',
16626 '9': '੯',
16627 '0': '੦'
16628 },
16629 numberMap = {
16630 '੧': '1',
16631 '੨': '2',
16632 '੩': '3',
16633 '੪': '4',
16634 '੫': '5',
16635 '੬': '6',
16636 '੭': '7',
16637 '੮': '8',
16638 '੯': '9',
16639 '੦': '0'
16640 };
16641
16642 var paIn = moment.defineLocale('pa-in', {
16643 // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
16644 months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
16645 monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
16646 weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
16647 weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
16648 weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
16649 longDateFormat : {
16650 LT : 'A h:mm ਵਜੇ',
16651 LTS : 'A h:mm:ss ਵਜੇ',
16652 L : 'DD/MM/YYYY',
16653 LL : 'D MMMM YYYY',
16654 LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
16655 LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
16656 },
16657 calendar : {
16658 sameDay : '[ਅਜ] LT',
16659 nextDay : '[ਕਲ] LT',
16660 nextWeek : '[ਅਗਲਾ] dddd, LT',
16661 lastDay : '[ਕਲ] LT',
16662 lastWeek : '[ਪਿਛਲੇ] dddd, LT',
16663 sameElse : 'L'
16664 },
16665 relativeTime : {
16666 future : '%s ਵਿੱਚ',
16667 past : '%s ਪਿਛਲੇ',
16668 s : 'ਕੁਝ ਸਕਿੰਟ',
16669 ss : '%d ਸਕਿੰਟ',
16670 m : 'ਇਕ ਮਿੰਟ',
16671 mm : '%d ਮਿੰਟ',
16672 h : 'ਇੱਕ ਘੰਟਾ',
16673 hh : '%d ਘੰਟੇ',
16674 d : 'ਇੱਕ ਦਿਨ',
16675 dd : '%d ਦਿਨ',
16676 M : 'ਇੱਕ ਮਹੀਨਾ',
16677 MM : '%d ਮਹੀਨੇ',
16678 y : 'ਇੱਕ ਸਾਲ',
16679 yy : '%d ਸਾਲ'
16680 },
16681 preparse: function (string) {
16682 return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
16683 return numberMap[match];
16684 });
16685 },
16686 postformat: function (string) {
16687 return string.replace(/\d/g, function (match) {
16688 return symbolMap[match];
16689 });
16690 },
16691 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
16692 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
16693 meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
16694 meridiemHour : function (hour, meridiem) {
16695 if (hour === 12) {
16696 hour = 0;
16697 }
16698 if (meridiem === 'ਰਾਤ') {
16699 return hour < 4 ? hour : hour + 12;
16700 } else if (meridiem === 'ਸਵੇਰ') {
16701 return hour;
16702 } else if (meridiem === 'ਦੁਪਹਿਰ') {
16703 return hour >= 10 ? hour : hour + 12;
16704 } else if (meridiem === 'ਸ਼ਾਮ') {
16705 return hour + 12;
16706 }
16707 },
16708 meridiem : function (hour, minute, isLower) {
16709 if (hour < 4) {
16710 return 'ਰਾਤ';
16711 } else if (hour < 10) {
16712 return 'ਸਵੇਰ';
16713 } else if (hour < 17) {
16714 return 'ਦੁਪਹਿਰ';
16715 } else if (hour < 20) {
16716 return 'ਸ਼ਾਮ';
16717 } else {
16718 return 'ਰਾਤ';
16719 }
16720 },
16721 week : {
16722 dow : 0, // Sunday is the first day of the week.
16723 doy : 6 // The week that contains Jan 1st is the first week of the year.
16724 }
16725 });
16726
16727 return paIn;
16728
16729})));
16730
16731
16732/***/ }),
16733/* 107 */
16734/***/ (function(module, exports, __webpack_require__) {
16735
16736//! moment.js locale configuration
16737
16738;(function (global, factory) {
16739 true ? factory(__webpack_require__(0)) :
16740 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16741 factory(global.moment)
16742}(this, (function (moment) { 'use strict';
16743
16744
16745 var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
16746 monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
16747 function plural(n) {
16748 return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
16749 }
16750 function translate(number, withoutSuffix, key) {
16751 var result = number + ' ';
16752 switch (key) {
16753 case 'ss':
16754 return result + (plural(number) ? 'sekundy' : 'sekund');
16755 case 'm':
16756 return withoutSuffix ? 'minuta' : 'minutę';
16757 case 'mm':
16758 return result + (plural(number) ? 'minuty' : 'minut');
16759 case 'h':
16760 return withoutSuffix ? 'godzina' : 'godzinę';
16761 case 'hh':
16762 return result + (plural(number) ? 'godziny' : 'godzin');
16763 case 'MM':
16764 return result + (plural(number) ? 'miesiące' : 'miesięcy');
16765 case 'yy':
16766 return result + (plural(number) ? 'lata' : 'lat');
16767 }
16768 }
16769
16770 var pl = moment.defineLocale('pl', {
16771 months : function (momentToFormat, format) {
16772 if (!momentToFormat) {
16773 return monthsNominative;
16774 } else if (format === '') {
16775 // Hack: if format empty we know this is used to generate
16776 // RegExp by moment. Give then back both valid forms of months
16777 // in RegExp ready format.
16778 return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
16779 } else if (/D MMMM/.test(format)) {
16780 return monthsSubjective[momentToFormat.month()];
16781 } else {
16782 return monthsNominative[momentToFormat.month()];
16783 }
16784 },
16785 monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
16786 weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
16787 weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
16788 weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
16789 longDateFormat : {
16790 LT : 'HH:mm',
16791 LTS : 'HH:mm:ss',
16792 L : 'DD.MM.YYYY',
16793 LL : 'D MMMM YYYY',
16794 LLL : 'D MMMM YYYY HH:mm',
16795 LLLL : 'dddd, D MMMM YYYY HH:mm'
16796 },
16797 calendar : {
16798 sameDay: '[Dziś o] LT',
16799 nextDay: '[Jutro o] LT',
16800 nextWeek: function () {
16801 switch (this.day()) {
16802 case 0:
16803 return '[W niedzielę o] LT';
16804
16805 case 2:
16806 return '[We wtorek o] LT';
16807
16808 case 3:
16809 return '[W środę o] LT';
16810
16811 case 6:
16812 return '[W sobotę o] LT';
16813
16814 default:
16815 return '[W] dddd [o] LT';
16816 }
16817 },
16818 lastDay: '[Wczoraj o] LT',
16819 lastWeek: function () {
16820 switch (this.day()) {
16821 case 0:
16822 return '[W zeszłą niedzielę o] LT';
16823 case 3:
16824 return '[W zeszłą środę o] LT';
16825 case 6:
16826 return '[W zeszłą sobotę o] LT';
16827 default:
16828 return '[W zeszły] dddd [o] LT';
16829 }
16830 },
16831 sameElse: 'L'
16832 },
16833 relativeTime : {
16834 future : 'za %s',
16835 past : '%s temu',
16836 s : 'kilka sekund',
16837 ss : translate,
16838 m : translate,
16839 mm : translate,
16840 h : translate,
16841 hh : translate,
16842 d : '1 dzień',
16843 dd : '%d dni',
16844 M : 'miesiąc',
16845 MM : translate,
16846 y : 'rok',
16847 yy : translate
16848 },
16849 dayOfMonthOrdinalParse: /\d{1,2}\./,
16850 ordinal : '%d.',
16851 week : {
16852 dow : 1, // Monday is the first day of the week.
16853 doy : 4 // The week that contains Jan 4th is the first week of the year.
16854 }
16855 });
16856
16857 return pl;
16858
16859})));
16860
16861
16862/***/ }),
16863/* 108 */
16864/***/ (function(module, exports, __webpack_require__) {
16865
16866//! moment.js locale configuration
16867
16868;(function (global, factory) {
16869 true ? factory(__webpack_require__(0)) :
16870 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16871 factory(global.moment)
16872}(this, (function (moment) { 'use strict';
16873
16874
16875 var ptBr = moment.defineLocale('pt-br', {
16876 months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
16877 monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
16878 weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
16879 weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
16880 weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
16881 weekdaysParseExact : true,
16882 longDateFormat : {
16883 LT : 'HH:mm',
16884 LTS : 'HH:mm:ss',
16885 L : 'DD/MM/YYYY',
16886 LL : 'D [de] MMMM [de] YYYY',
16887 LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
16888 LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
16889 },
16890 calendar : {
16891 sameDay: '[Hoje às] LT',
16892 nextDay: '[Amanhã às] LT',
16893 nextWeek: 'dddd [às] LT',
16894 lastDay: '[Ontem às] LT',
16895 lastWeek: function () {
16896 return (this.day() === 0 || this.day() === 6) ?
16897 '[Último] dddd [às] LT' : // Saturday + Sunday
16898 '[Última] dddd [às] LT'; // Monday - Friday
16899 },
16900 sameElse: 'L'
16901 },
16902 relativeTime : {
16903 future : 'em %s',
16904 past : 'há %s',
16905 s : 'poucos segundos',
16906 ss : '%d segundos',
16907 m : 'um minuto',
16908 mm : '%d minutos',
16909 h : 'uma hora',
16910 hh : '%d horas',
16911 d : 'um dia',
16912 dd : '%d dias',
16913 M : 'um mês',
16914 MM : '%d meses',
16915 y : 'um ano',
16916 yy : '%d anos'
16917 },
16918 dayOfMonthOrdinalParse: /\d{1,2}º/,
16919 ordinal : '%dº'
16920 });
16921
16922 return ptBr;
16923
16924})));
16925
16926
16927/***/ }),
16928/* 109 */
16929/***/ (function(module, exports, __webpack_require__) {
16930
16931//! moment.js locale configuration
16932
16933;(function (global, factory) {
16934 true ? factory(__webpack_require__(0)) :
16935 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
16936 factory(global.moment)
16937}(this, (function (moment) { 'use strict';
16938
16939
16940 var pt = moment.defineLocale('pt', {
16941 months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
16942 monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
16943 weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
16944 weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
16945 weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
16946 weekdaysParseExact : true,
16947 longDateFormat : {
16948 LT : 'HH:mm',
16949 LTS : 'HH:mm:ss',
16950 L : 'DD/MM/YYYY',
16951 LL : 'D [de] MMMM [de] YYYY',
16952 LLL : 'D [de] MMMM [de] YYYY HH:mm',
16953 LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
16954 },
16955 calendar : {
16956 sameDay: '[Hoje às] LT',
16957 nextDay: '[Amanhã às] LT',
16958 nextWeek: 'dddd [às] LT',
16959 lastDay: '[Ontem às] LT',
16960 lastWeek: function () {
16961 return (this.day() === 0 || this.day() === 6) ?
16962 '[Último] dddd [às] LT' : // Saturday + Sunday
16963 '[Última] dddd [às] LT'; // Monday - Friday
16964 },
16965 sameElse: 'L'
16966 },
16967 relativeTime : {
16968 future : 'em %s',
16969 past : 'há %s',
16970 s : 'segundos',
16971 ss : '%d segundos',
16972 m : 'um minuto',
16973 mm : '%d minutos',
16974 h : 'uma hora',
16975 hh : '%d horas',
16976 d : 'um dia',
16977 dd : '%d dias',
16978 M : 'um mês',
16979 MM : '%d meses',
16980 y : 'um ano',
16981 yy : '%d anos'
16982 },
16983 dayOfMonthOrdinalParse: /\d{1,2}º/,
16984 ordinal : '%dº',
16985 week : {
16986 dow : 1, // Monday is the first day of the week.
16987 doy : 4 // The week that contains Jan 4th is the first week of the year.
16988 }
16989 });
16990
16991 return pt;
16992
16993})));
16994
16995
16996/***/ }),
16997/* 110 */
16998/***/ (function(module, exports, __webpack_require__) {
16999
17000//! moment.js locale configuration
17001
17002;(function (global, factory) {
17003 true ? factory(__webpack_require__(0)) :
17004 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17005 factory(global.moment)
17006}(this, (function (moment) { 'use strict';
17007
17008
17009 function relativeTimeWithPlural(number, withoutSuffix, key) {
17010 var format = {
17011 'ss': 'secunde',
17012 'mm': 'minute',
17013 'hh': 'ore',
17014 'dd': 'zile',
17015 'MM': 'luni',
17016 'yy': 'ani'
17017 },
17018 separator = ' ';
17019 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
17020 separator = ' de ';
17021 }
17022 return number + separator + format[key];
17023 }
17024
17025 var ro = moment.defineLocale('ro', {
17026 months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
17027 monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
17028 monthsParseExact: true,
17029 weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
17030 weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
17031 weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
17032 longDateFormat : {
17033 LT : 'H:mm',
17034 LTS : 'H:mm:ss',
17035 L : 'DD.MM.YYYY',
17036 LL : 'D MMMM YYYY',
17037 LLL : 'D MMMM YYYY H:mm',
17038 LLLL : 'dddd, D MMMM YYYY H:mm'
17039 },
17040 calendar : {
17041 sameDay: '[azi la] LT',
17042 nextDay: '[mâine la] LT',
17043 nextWeek: 'dddd [la] LT',
17044 lastDay: '[ieri la] LT',
17045 lastWeek: '[fosta] dddd [la] LT',
17046 sameElse: 'L'
17047 },
17048 relativeTime : {
17049 future : 'peste %s',
17050 past : '%s în urmă',
17051 s : 'câteva secunde',
17052 ss : relativeTimeWithPlural,
17053 m : 'un minut',
17054 mm : relativeTimeWithPlural,
17055 h : 'o oră',
17056 hh : relativeTimeWithPlural,
17057 d : 'o zi',
17058 dd : relativeTimeWithPlural,
17059 M : 'o lună',
17060 MM : relativeTimeWithPlural,
17061 y : 'un an',
17062 yy : relativeTimeWithPlural
17063 },
17064 week : {
17065 dow : 1, // Monday is the first day of the week.
17066 doy : 7 // The week that contains Jan 1st is the first week of the year.
17067 }
17068 });
17069
17070 return ro;
17071
17072})));
17073
17074
17075/***/ }),
17076/* 111 */
17077/***/ (function(module, exports, __webpack_require__) {
17078
17079//! moment.js locale configuration
17080
17081;(function (global, factory) {
17082 true ? factory(__webpack_require__(0)) :
17083 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17084 factory(global.moment)
17085}(this, (function (moment) { 'use strict';
17086
17087
17088 function plural(word, num) {
17089 var forms = word.split('_');
17090 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
17091 }
17092 function relativeTimeWithPlural(number, withoutSuffix, key) {
17093 var format = {
17094 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
17095 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
17096 'hh': 'час_часа_часов',
17097 'dd': 'день_дня_дней',
17098 'MM': 'месяц_месяца_месяцев',
17099 'yy': 'год_года_лет'
17100 };
17101 if (key === 'm') {
17102 return withoutSuffix ? 'минута' : 'минуту';
17103 }
17104 else {
17105 return number + ' ' + plural(format[key], +number);
17106 }
17107 }
17108 var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
17109
17110 // http://new.gramota.ru/spravka/rules/139-prop : § 103
17111 // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
17112 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
17113 var ru = moment.defineLocale('ru', {
17114 months : {
17115 format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
17116 standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
17117 },
17118 monthsShort : {
17119 // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
17120 format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
17121 standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
17122 },
17123 weekdays : {
17124 standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
17125 format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
17126 isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
17127 },
17128 weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
17129 weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
17130 monthsParse : monthsParse,
17131 longMonthsParse : monthsParse,
17132 shortMonthsParse : monthsParse,
17133
17134 // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
17135 monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
17136
17137 // копия предыдущего
17138 monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
17139
17140 // полные названия с падежами
17141 monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
17142
17143 // Выражение, которое соотвествует только сокращённым формам
17144 monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
17145 longDateFormat : {
17146 LT : 'H:mm',
17147 LTS : 'H:mm:ss',
17148 L : 'DD.MM.YYYY',
17149 LL : 'D MMMM YYYY г.',
17150 LLL : 'D MMMM YYYY г., H:mm',
17151 LLLL : 'dddd, D MMMM YYYY г., H:mm'
17152 },
17153 calendar : {
17154 sameDay: '[Сегодня, в] LT',
17155 nextDay: '[Завтра, в] LT',
17156 lastDay: '[Вчера, в] LT',
17157 nextWeek: function (now) {
17158 if (now.week() !== this.week()) {
17159 switch (this.day()) {
17160 case 0:
17161 return '[В следующее] dddd, [в] LT';
17162 case 1:
17163 case 2:
17164 case 4:
17165 return '[В следующий] dddd, [в] LT';
17166 case 3:
17167 case 5:
17168 case 6:
17169 return '[В следующую] dddd, [в] LT';
17170 }
17171 } else {
17172 if (this.day() === 2) {
17173 return '[Во] dddd, [в] LT';
17174 } else {
17175 return '[В] dddd, [в] LT';
17176 }
17177 }
17178 },
17179 lastWeek: function (now) {
17180 if (now.week() !== this.week()) {
17181 switch (this.day()) {
17182 case 0:
17183 return '[В прошлое] dddd, [в] LT';
17184 case 1:
17185 case 2:
17186 case 4:
17187 return '[В прошлый] dddd, [в] LT';
17188 case 3:
17189 case 5:
17190 case 6:
17191 return '[В прошлую] dddd, [в] LT';
17192 }
17193 } else {
17194 if (this.day() === 2) {
17195 return '[Во] dddd, [в] LT';
17196 } else {
17197 return '[В] dddd, [в] LT';
17198 }
17199 }
17200 },
17201 sameElse: 'L'
17202 },
17203 relativeTime : {
17204 future : 'через %s',
17205 past : '%s назад',
17206 s : 'несколько секунд',
17207 ss : relativeTimeWithPlural,
17208 m : relativeTimeWithPlural,
17209 mm : relativeTimeWithPlural,
17210 h : 'час',
17211 hh : relativeTimeWithPlural,
17212 d : 'день',
17213 dd : relativeTimeWithPlural,
17214 M : 'месяц',
17215 MM : relativeTimeWithPlural,
17216 y : 'год',
17217 yy : relativeTimeWithPlural
17218 },
17219 meridiemParse: /ночи|утра|дня|вечера/i,
17220 isPM : function (input) {
17221 return /^(дня|вечера)$/.test(input);
17222 },
17223 meridiem : function (hour, minute, isLower) {
17224 if (hour < 4) {
17225 return 'ночи';
17226 } else if (hour < 12) {
17227 return 'утра';
17228 } else if (hour < 17) {
17229 return 'дня';
17230 } else {
17231 return 'вечера';
17232 }
17233 },
17234 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
17235 ordinal: function (number, period) {
17236 switch (period) {
17237 case 'M':
17238 case 'd':
17239 case 'DDD':
17240 return number + '-й';
17241 case 'D':
17242 return number + '-го';
17243 case 'w':
17244 case 'W':
17245 return number + '-я';
17246 default:
17247 return number;
17248 }
17249 },
17250 week : {
17251 dow : 1, // Monday is the first day of the week.
17252 doy : 4 // The week that contains Jan 4th is the first week of the year.
17253 }
17254 });
17255
17256 return ru;
17257
17258})));
17259
17260
17261/***/ }),
17262/* 112 */
17263/***/ (function(module, exports, __webpack_require__) {
17264
17265//! moment.js locale configuration
17266
17267;(function (global, factory) {
17268 true ? factory(__webpack_require__(0)) :
17269 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17270 factory(global.moment)
17271}(this, (function (moment) { 'use strict';
17272
17273
17274 var months = [
17275 'جنوري',
17276 'فيبروري',
17277 'مارچ',
17278 'اپريل',
17279 'مئي',
17280 'جون',
17281 'جولاءِ',
17282 'آگسٽ',
17283 'سيپٽمبر',
17284 'آڪٽوبر',
17285 'نومبر',
17286 'ڊسمبر'
17287 ];
17288 var days = [
17289 'آچر',
17290 'سومر',
17291 'اڱارو',
17292 'اربع',
17293 'خميس',
17294 'جمع',
17295 'ڇنڇر'
17296 ];
17297
17298 var sd = moment.defineLocale('sd', {
17299 months : months,
17300 monthsShort : months,
17301 weekdays : days,
17302 weekdaysShort : days,
17303 weekdaysMin : days,
17304 longDateFormat : {
17305 LT : 'HH:mm',
17306 LTS : 'HH:mm:ss',
17307 L : 'DD/MM/YYYY',
17308 LL : 'D MMMM YYYY',
17309 LLL : 'D MMMM YYYY HH:mm',
17310 LLLL : 'dddd، D MMMM YYYY HH:mm'
17311 },
17312 meridiemParse: /صبح|شام/,
17313 isPM : function (input) {
17314 return 'شام' === input;
17315 },
17316 meridiem : function (hour, minute, isLower) {
17317 if (hour < 12) {
17318 return 'صبح';
17319 }
17320 return 'شام';
17321 },
17322 calendar : {
17323 sameDay : '[اڄ] LT',
17324 nextDay : '[سڀاڻي] LT',
17325 nextWeek : 'dddd [اڳين هفتي تي] LT',
17326 lastDay : '[ڪالهه] LT',
17327 lastWeek : '[گزريل هفتي] dddd [تي] LT',
17328 sameElse : 'L'
17329 },
17330 relativeTime : {
17331 future : '%s پوء',
17332 past : '%s اڳ',
17333 s : 'چند سيڪنڊ',
17334 ss : '%d سيڪنڊ',
17335 m : 'هڪ منٽ',
17336 mm : '%d منٽ',
17337 h : 'هڪ ڪلاڪ',
17338 hh : '%d ڪلاڪ',
17339 d : 'هڪ ڏينهن',
17340 dd : '%d ڏينهن',
17341 M : 'هڪ مهينو',
17342 MM : '%d مهينا',
17343 y : 'هڪ سال',
17344 yy : '%d سال'
17345 },
17346 preparse: function (string) {
17347 return string.replace(/،/g, ',');
17348 },
17349 postformat: function (string) {
17350 return string.replace(/,/g, '،');
17351 },
17352 week : {
17353 dow : 1, // Monday is the first day of the week.
17354 doy : 4 // The week that contains Jan 4th is the first week of the year.
17355 }
17356 });
17357
17358 return sd;
17359
17360})));
17361
17362
17363/***/ }),
17364/* 113 */
17365/***/ (function(module, exports, __webpack_require__) {
17366
17367//! moment.js locale configuration
17368
17369;(function (global, factory) {
17370 true ? factory(__webpack_require__(0)) :
17371 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17372 factory(global.moment)
17373}(this, (function (moment) { 'use strict';
17374
17375
17376 var se = moment.defineLocale('se', {
17377 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('_'),
17378 monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
17379 weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
17380 weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
17381 weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
17382 longDateFormat : {
17383 LT : 'HH:mm',
17384 LTS : 'HH:mm:ss',
17385 L : 'DD.MM.YYYY',
17386 LL : 'MMMM D. [b.] YYYY',
17387 LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
17388 LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
17389 },
17390 calendar : {
17391 sameDay: '[otne ti] LT',
17392 nextDay: '[ihttin ti] LT',
17393 nextWeek: 'dddd [ti] LT',
17394 lastDay: '[ikte ti] LT',
17395 lastWeek: '[ovddit] dddd [ti] LT',
17396 sameElse: 'L'
17397 },
17398 relativeTime : {
17399 future : '%s geažes',
17400 past : 'maŋit %s',
17401 s : 'moadde sekunddat',
17402 ss: '%d sekunddat',
17403 m : 'okta minuhta',
17404 mm : '%d minuhtat',
17405 h : 'okta diimmu',
17406 hh : '%d diimmut',
17407 d : 'okta beaivi',
17408 dd : '%d beaivvit',
17409 M : 'okta mánnu',
17410 MM : '%d mánut',
17411 y : 'okta jahki',
17412 yy : '%d jagit'
17413 },
17414 dayOfMonthOrdinalParse: /\d{1,2}\./,
17415 ordinal : '%d.',
17416 week : {
17417 dow : 1, // Monday is the first day of the week.
17418 doy : 4 // The week that contains Jan 4th is the first week of the year.
17419 }
17420 });
17421
17422 return se;
17423
17424})));
17425
17426
17427/***/ }),
17428/* 114 */
17429/***/ (function(module, exports, __webpack_require__) {
17430
17431//! moment.js locale configuration
17432
17433;(function (global, factory) {
17434 true ? factory(__webpack_require__(0)) :
17435 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17436 factory(global.moment)
17437}(this, (function (moment) { 'use strict';
17438
17439
17440 /*jshint -W100*/
17441 var si = moment.defineLocale('si', {
17442 months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
17443 monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
17444 weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
17445 weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
17446 weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
17447 weekdaysParseExact : true,
17448 longDateFormat : {
17449 LT : 'a h:mm',
17450 LTS : 'a h:mm:ss',
17451 L : 'YYYY/MM/DD',
17452 LL : 'YYYY MMMM D',
17453 LLL : 'YYYY MMMM D, a h:mm',
17454 LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
17455 },
17456 calendar : {
17457 sameDay : '[අද] LT[ට]',
17458 nextDay : '[හෙට] LT[ට]',
17459 nextWeek : 'dddd LT[ට]',
17460 lastDay : '[ඊයේ] LT[ට]',
17461 lastWeek : '[පසුගිය] dddd LT[ට]',
17462 sameElse : 'L'
17463 },
17464 relativeTime : {
17465 future : '%sකින්',
17466 past : '%sකට පෙර',
17467 s : 'තත්පර කිහිපය',
17468 ss : 'තත්පර %d',
17469 m : 'මිනිත්තුව',
17470 mm : 'මිනිත්තු %d',
17471 h : 'පැය',
17472 hh : 'පැය %d',
17473 d : 'දිනය',
17474 dd : 'දින %d',
17475 M : 'මාසය',
17476 MM : 'මාස %d',
17477 y : 'වසර',
17478 yy : 'වසර %d'
17479 },
17480 dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
17481 ordinal : function (number) {
17482 return number + ' වැනි';
17483 },
17484 meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
17485 isPM : function (input) {
17486 return input === 'ප.ව.' || input === 'පස් වරු';
17487 },
17488 meridiem : function (hours, minutes, isLower) {
17489 if (hours > 11) {
17490 return isLower ? 'ප.ව.' : 'පස් වරු';
17491 } else {
17492 return isLower ? 'පෙ.ව.' : 'පෙර වරු';
17493 }
17494 }
17495 });
17496
17497 return si;
17498
17499})));
17500
17501
17502/***/ }),
17503/* 115 */
17504/***/ (function(module, exports, __webpack_require__) {
17505
17506//! moment.js locale configuration
17507
17508;(function (global, factory) {
17509 true ? factory(__webpack_require__(0)) :
17510 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17511 factory(global.moment)
17512}(this, (function (moment) { 'use strict';
17513
17514
17515 var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
17516 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
17517 function plural(n) {
17518 return (n > 1) && (n < 5);
17519 }
17520 function translate(number, withoutSuffix, key, isFuture) {
17521 var result = number + ' ';
17522 switch (key) {
17523 case 's': // a few seconds / in a few seconds / a few seconds ago
17524 return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
17525 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
17526 if (withoutSuffix || isFuture) {
17527 return result + (plural(number) ? 'sekundy' : 'sekúnd');
17528 } else {
17529 return result + 'sekundami';
17530 }
17531 break;
17532 case 'm': // a minute / in a minute / a minute ago
17533 return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
17534 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
17535 if (withoutSuffix || isFuture) {
17536 return result + (plural(number) ? 'minúty' : 'minút');
17537 } else {
17538 return result + 'minútami';
17539 }
17540 break;
17541 case 'h': // an hour / in an hour / an hour ago
17542 return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
17543 case 'hh': // 9 hours / in 9 hours / 9 hours ago
17544 if (withoutSuffix || isFuture) {
17545 return result + (plural(number) ? 'hodiny' : 'hodín');
17546 } else {
17547 return result + 'hodinami';
17548 }
17549 break;
17550 case 'd': // a day / in a day / a day ago
17551 return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
17552 case 'dd': // 9 days / in 9 days / 9 days ago
17553 if (withoutSuffix || isFuture) {
17554 return result + (plural(number) ? 'dni' : 'dní');
17555 } else {
17556 return result + 'dňami';
17557 }
17558 break;
17559 case 'M': // a month / in a month / a month ago
17560 return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
17561 case 'MM': // 9 months / in 9 months / 9 months ago
17562 if (withoutSuffix || isFuture) {
17563 return result + (plural(number) ? 'mesiace' : 'mesiacov');
17564 } else {
17565 return result + 'mesiacmi';
17566 }
17567 break;
17568 case 'y': // a year / in a year / a year ago
17569 return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
17570 case 'yy': // 9 years / in 9 years / 9 years ago
17571 if (withoutSuffix || isFuture) {
17572 return result + (plural(number) ? 'roky' : 'rokov');
17573 } else {
17574 return result + 'rokmi';
17575 }
17576 break;
17577 }
17578 }
17579
17580 var sk = moment.defineLocale('sk', {
17581 months : months,
17582 monthsShort : monthsShort,
17583 weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
17584 weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
17585 weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
17586 longDateFormat : {
17587 LT: 'H:mm',
17588 LTS : 'H:mm:ss',
17589 L : 'DD.MM.YYYY',
17590 LL : 'D. MMMM YYYY',
17591 LLL : 'D. MMMM YYYY H:mm',
17592 LLLL : 'dddd D. MMMM YYYY H:mm'
17593 },
17594 calendar : {
17595 sameDay: '[dnes o] LT',
17596 nextDay: '[zajtra o] LT',
17597 nextWeek: function () {
17598 switch (this.day()) {
17599 case 0:
17600 return '[v nedeľu o] LT';
17601 case 1:
17602 case 2:
17603 return '[v] dddd [o] LT';
17604 case 3:
17605 return '[v stredu o] LT';
17606 case 4:
17607 return '[vo štvrtok o] LT';
17608 case 5:
17609 return '[v piatok o] LT';
17610 case 6:
17611 return '[v sobotu o] LT';
17612 }
17613 },
17614 lastDay: '[včera o] LT',
17615 lastWeek: function () {
17616 switch (this.day()) {
17617 case 0:
17618 return '[minulú nedeľu o] LT';
17619 case 1:
17620 case 2:
17621 return '[minulý] dddd [o] LT';
17622 case 3:
17623 return '[minulú stredu o] LT';
17624 case 4:
17625 case 5:
17626 return '[minulý] dddd [o] LT';
17627 case 6:
17628 return '[minulú sobotu o] LT';
17629 }
17630 },
17631 sameElse: 'L'
17632 },
17633 relativeTime : {
17634 future : 'za %s',
17635 past : 'pred %s',
17636 s : translate,
17637 ss : translate,
17638 m : translate,
17639 mm : translate,
17640 h : translate,
17641 hh : translate,
17642 d : translate,
17643 dd : translate,
17644 M : translate,
17645 MM : translate,
17646 y : translate,
17647 yy : translate
17648 },
17649 dayOfMonthOrdinalParse: /\d{1,2}\./,
17650 ordinal : '%d.',
17651 week : {
17652 dow : 1, // Monday is the first day of the week.
17653 doy : 4 // The week that contains Jan 4th is the first week of the year.
17654 }
17655 });
17656
17657 return sk;
17658
17659})));
17660
17661
17662/***/ }),
17663/* 116 */
17664/***/ (function(module, exports, __webpack_require__) {
17665
17666//! moment.js locale configuration
17667
17668;(function (global, factory) {
17669 true ? factory(__webpack_require__(0)) :
17670 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17671 factory(global.moment)
17672}(this, (function (moment) { 'use strict';
17673
17674
17675 function processRelativeTime(number, withoutSuffix, key, isFuture) {
17676 var result = number + ' ';
17677 switch (key) {
17678 case 's':
17679 return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
17680 case 'ss':
17681 if (number === 1) {
17682 result += withoutSuffix ? 'sekundo' : 'sekundi';
17683 } else if (number === 2) {
17684 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
17685 } else if (number < 5) {
17686 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
17687 } else {
17688 result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
17689 }
17690 return result;
17691 case 'm':
17692 return withoutSuffix ? 'ena minuta' : 'eno minuto';
17693 case 'mm':
17694 if (number === 1) {
17695 result += withoutSuffix ? 'minuta' : 'minuto';
17696 } else if (number === 2) {
17697 result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
17698 } else if (number < 5) {
17699 result += withoutSuffix || isFuture ? 'minute' : 'minutami';
17700 } else {
17701 result += withoutSuffix || isFuture ? 'minut' : 'minutami';
17702 }
17703 return result;
17704 case 'h':
17705 return withoutSuffix ? 'ena ura' : 'eno uro';
17706 case 'hh':
17707 if (number === 1) {
17708 result += withoutSuffix ? 'ura' : 'uro';
17709 } else if (number === 2) {
17710 result += withoutSuffix || isFuture ? 'uri' : 'urama';
17711 } else if (number < 5) {
17712 result += withoutSuffix || isFuture ? 'ure' : 'urami';
17713 } else {
17714 result += withoutSuffix || isFuture ? 'ur' : 'urami';
17715 }
17716 return result;
17717 case 'd':
17718 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
17719 case 'dd':
17720 if (number === 1) {
17721 result += withoutSuffix || isFuture ? 'dan' : 'dnem';
17722 } else if (number === 2) {
17723 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
17724 } else {
17725 result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
17726 }
17727 return result;
17728 case 'M':
17729 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
17730 case 'MM':
17731 if (number === 1) {
17732 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
17733 } else if (number === 2) {
17734 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
17735 } else if (number < 5) {
17736 result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
17737 } else {
17738 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
17739 }
17740 return result;
17741 case 'y':
17742 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
17743 case 'yy':
17744 if (number === 1) {
17745 result += withoutSuffix || isFuture ? 'leto' : 'letom';
17746 } else if (number === 2) {
17747 result += withoutSuffix || isFuture ? 'leti' : 'letoma';
17748 } else if (number < 5) {
17749 result += withoutSuffix || isFuture ? 'leta' : 'leti';
17750 } else {
17751 result += withoutSuffix || isFuture ? 'let' : 'leti';
17752 }
17753 return result;
17754 }
17755 }
17756
17757 var sl = moment.defineLocale('sl', {
17758 months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
17759 monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
17760 monthsParseExact: true,
17761 weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
17762 weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
17763 weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
17764 weekdaysParseExact : true,
17765 longDateFormat : {
17766 LT : 'H:mm',
17767 LTS : 'H:mm:ss',
17768 L : 'DD.MM.YYYY',
17769 LL : 'D. MMMM YYYY',
17770 LLL : 'D. MMMM YYYY H:mm',
17771 LLLL : 'dddd, D. MMMM YYYY H:mm'
17772 },
17773 calendar : {
17774 sameDay : '[danes ob] LT',
17775 nextDay : '[jutri ob] LT',
17776
17777 nextWeek : function () {
17778 switch (this.day()) {
17779 case 0:
17780 return '[v] [nedeljo] [ob] LT';
17781 case 3:
17782 return '[v] [sredo] [ob] LT';
17783 case 6:
17784 return '[v] [soboto] [ob] LT';
17785 case 1:
17786 case 2:
17787 case 4:
17788 case 5:
17789 return '[v] dddd [ob] LT';
17790 }
17791 },
17792 lastDay : '[včeraj ob] LT',
17793 lastWeek : function () {
17794 switch (this.day()) {
17795 case 0:
17796 return '[prejšnjo] [nedeljo] [ob] LT';
17797 case 3:
17798 return '[prejšnjo] [sredo] [ob] LT';
17799 case 6:
17800 return '[prejšnjo] [soboto] [ob] LT';
17801 case 1:
17802 case 2:
17803 case 4:
17804 case 5:
17805 return '[prejšnji] dddd [ob] LT';
17806 }
17807 },
17808 sameElse : 'L'
17809 },
17810 relativeTime : {
17811 future : 'čez %s',
17812 past : 'pred %s',
17813 s : processRelativeTime,
17814 ss : processRelativeTime,
17815 m : processRelativeTime,
17816 mm : processRelativeTime,
17817 h : processRelativeTime,
17818 hh : processRelativeTime,
17819 d : processRelativeTime,
17820 dd : processRelativeTime,
17821 M : processRelativeTime,
17822 MM : processRelativeTime,
17823 y : processRelativeTime,
17824 yy : processRelativeTime
17825 },
17826 dayOfMonthOrdinalParse: /\d{1,2}\./,
17827 ordinal : '%d.',
17828 week : {
17829 dow : 1, // Monday is the first day of the week.
17830 doy : 7 // The week that contains Jan 1st is the first week of the year.
17831 }
17832 });
17833
17834 return sl;
17835
17836})));
17837
17838
17839/***/ }),
17840/* 117 */
17841/***/ (function(module, exports, __webpack_require__) {
17842
17843//! moment.js locale configuration
17844
17845;(function (global, factory) {
17846 true ? factory(__webpack_require__(0)) :
17847 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17848 factory(global.moment)
17849}(this, (function (moment) { 'use strict';
17850
17851
17852 var sq = moment.defineLocale('sq', {
17853 months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
17854 monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
17855 weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
17856 weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
17857 weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
17858 weekdaysParseExact : true,
17859 meridiemParse: /PD|MD/,
17860 isPM: function (input) {
17861 return input.charAt(0) === 'M';
17862 },
17863 meridiem : function (hours, minutes, isLower) {
17864 return hours < 12 ? 'PD' : 'MD';
17865 },
17866 longDateFormat : {
17867 LT : 'HH:mm',
17868 LTS : 'HH:mm:ss',
17869 L : 'DD/MM/YYYY',
17870 LL : 'D MMMM YYYY',
17871 LLL : 'D MMMM YYYY HH:mm',
17872 LLLL : 'dddd, D MMMM YYYY HH:mm'
17873 },
17874 calendar : {
17875 sameDay : '[Sot në] LT',
17876 nextDay : '[Nesër në] LT',
17877 nextWeek : 'dddd [në] LT',
17878 lastDay : '[Dje në] LT',
17879 lastWeek : 'dddd [e kaluar në] LT',
17880 sameElse : 'L'
17881 },
17882 relativeTime : {
17883 future : 'në %s',
17884 past : '%s më parë',
17885 s : 'disa sekonda',
17886 ss : '%d sekonda',
17887 m : 'një minutë',
17888 mm : '%d minuta',
17889 h : 'një orë',
17890 hh : '%d orë',
17891 d : 'një ditë',
17892 dd : '%d ditë',
17893 M : 'një muaj',
17894 MM : '%d muaj',
17895 y : 'një vit',
17896 yy : '%d vite'
17897 },
17898 dayOfMonthOrdinalParse: /\d{1,2}\./,
17899 ordinal : '%d.',
17900 week : {
17901 dow : 1, // Monday is the first day of the week.
17902 doy : 4 // The week that contains Jan 4th is the first week of the year.
17903 }
17904 });
17905
17906 return sq;
17907
17908})));
17909
17910
17911/***/ }),
17912/* 118 */
17913/***/ (function(module, exports, __webpack_require__) {
17914
17915//! moment.js locale configuration
17916
17917;(function (global, factory) {
17918 true ? factory(__webpack_require__(0)) :
17919 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
17920 factory(global.moment)
17921}(this, (function (moment) { 'use strict';
17922
17923
17924 var translator = {
17925 words: { //Different grammatical cases
17926 ss: ['секунда', 'секунде', 'секунди'],
17927 m: ['један минут', 'једне минуте'],
17928 mm: ['минут', 'минуте', 'минута'],
17929 h: ['један сат', 'једног сата'],
17930 hh: ['сат', 'сата', 'сати'],
17931 dd: ['дан', 'дана', 'дана'],
17932 MM: ['месец', 'месеца', 'месеци'],
17933 yy: ['година', 'године', 'година']
17934 },
17935 correctGrammaticalCase: function (number, wordKey) {
17936 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
17937 },
17938 translate: function (number, withoutSuffix, key) {
17939 var wordKey = translator.words[key];
17940 if (key.length === 1) {
17941 return withoutSuffix ? wordKey[0] : wordKey[1];
17942 } else {
17943 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
17944 }
17945 }
17946 };
17947
17948 var srCyrl = moment.defineLocale('sr-cyrl', {
17949 months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
17950 monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
17951 monthsParseExact: true,
17952 weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
17953 weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
17954 weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
17955 weekdaysParseExact : true,
17956 longDateFormat: {
17957 LT: 'H:mm',
17958 LTS : 'H:mm:ss',
17959 L: 'DD.MM.YYYY',
17960 LL: 'D. MMMM YYYY',
17961 LLL: 'D. MMMM YYYY H:mm',
17962 LLLL: 'dddd, D. MMMM YYYY H:mm'
17963 },
17964 calendar: {
17965 sameDay: '[данас у] LT',
17966 nextDay: '[сутра у] LT',
17967 nextWeek: function () {
17968 switch (this.day()) {
17969 case 0:
17970 return '[у] [недељу] [у] LT';
17971 case 3:
17972 return '[у] [среду] [у] LT';
17973 case 6:
17974 return '[у] [суботу] [у] LT';
17975 case 1:
17976 case 2:
17977 case 4:
17978 case 5:
17979 return '[у] dddd [у] LT';
17980 }
17981 },
17982 lastDay : '[јуче у] LT',
17983 lastWeek : function () {
17984 var lastWeekDays = [
17985 '[прошле] [недеље] [у] LT',
17986 '[прошлог] [понедељка] [у] LT',
17987 '[прошлог] [уторка] [у] LT',
17988 '[прошле] [среде] [у] LT',
17989 '[прошлог] [четвртка] [у] LT',
17990 '[прошлог] [петка] [у] LT',
17991 '[прошле] [суботе] [у] LT'
17992 ];
17993 return lastWeekDays[this.day()];
17994 },
17995 sameElse : 'L'
17996 },
17997 relativeTime : {
17998 future : 'за %s',
17999 past : 'пре %s',
18000 s : 'неколико секунди',
18001 ss : translator.translate,
18002 m : translator.translate,
18003 mm : translator.translate,
18004 h : translator.translate,
18005 hh : translator.translate,
18006 d : 'дан',
18007 dd : translator.translate,
18008 M : 'месец',
18009 MM : translator.translate,
18010 y : 'годину',
18011 yy : translator.translate
18012 },
18013 dayOfMonthOrdinalParse: /\d{1,2}\./,
18014 ordinal : '%d.',
18015 week : {
18016 dow : 1, // Monday is the first day of the week.
18017 doy : 7 // The week that contains Jan 1st is the first week of the year.
18018 }
18019 });
18020
18021 return srCyrl;
18022
18023})));
18024
18025
18026/***/ }),
18027/* 119 */
18028/***/ (function(module, exports, __webpack_require__) {
18029
18030//! moment.js locale configuration
18031
18032;(function (global, factory) {
18033 true ? factory(__webpack_require__(0)) :
18034 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18035 factory(global.moment)
18036}(this, (function (moment) { 'use strict';
18037
18038
18039 var translator = {
18040 words: { //Different grammatical cases
18041 ss: ['sekunda', 'sekunde', 'sekundi'],
18042 m: ['jedan minut', 'jedne minute'],
18043 mm: ['minut', 'minute', 'minuta'],
18044 h: ['jedan sat', 'jednog sata'],
18045 hh: ['sat', 'sata', 'sati'],
18046 dd: ['dan', 'dana', 'dana'],
18047 MM: ['mesec', 'meseca', 'meseci'],
18048 yy: ['godina', 'godine', 'godina']
18049 },
18050 correctGrammaticalCase: function (number, wordKey) {
18051 return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
18052 },
18053 translate: function (number, withoutSuffix, key) {
18054 var wordKey = translator.words[key];
18055 if (key.length === 1) {
18056 return withoutSuffix ? wordKey[0] : wordKey[1];
18057 } else {
18058 return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
18059 }
18060 }
18061 };
18062
18063 var sr = moment.defineLocale('sr', {
18064 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
18065 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
18066 monthsParseExact: true,
18067 weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
18068 weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
18069 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
18070 weekdaysParseExact : true,
18071 longDateFormat: {
18072 LT: 'H:mm',
18073 LTS : 'H:mm:ss',
18074 L: 'DD.MM.YYYY',
18075 LL: 'D. MMMM YYYY',
18076 LLL: 'D. MMMM YYYY H:mm',
18077 LLLL: 'dddd, D. MMMM YYYY H:mm'
18078 },
18079 calendar: {
18080 sameDay: '[danas u] LT',
18081 nextDay: '[sutra u] LT',
18082 nextWeek: function () {
18083 switch (this.day()) {
18084 case 0:
18085 return '[u] [nedelju] [u] LT';
18086 case 3:
18087 return '[u] [sredu] [u] LT';
18088 case 6:
18089 return '[u] [subotu] [u] LT';
18090 case 1:
18091 case 2:
18092 case 4:
18093 case 5:
18094 return '[u] dddd [u] LT';
18095 }
18096 },
18097 lastDay : '[juče u] LT',
18098 lastWeek : function () {
18099 var lastWeekDays = [
18100 '[prošle] [nedelje] [u] LT',
18101 '[prošlog] [ponedeljka] [u] LT',
18102 '[prošlog] [utorka] [u] LT',
18103 '[prošle] [srede] [u] LT',
18104 '[prošlog] [četvrtka] [u] LT',
18105 '[prošlog] [petka] [u] LT',
18106 '[prošle] [subote] [u] LT'
18107 ];
18108 return lastWeekDays[this.day()];
18109 },
18110 sameElse : 'L'
18111 },
18112 relativeTime : {
18113 future : 'za %s',
18114 past : 'pre %s',
18115 s : 'nekoliko sekundi',
18116 ss : translator.translate,
18117 m : translator.translate,
18118 mm : translator.translate,
18119 h : translator.translate,
18120 hh : translator.translate,
18121 d : 'dan',
18122 dd : translator.translate,
18123 M : 'mesec',
18124 MM : translator.translate,
18125 y : 'godinu',
18126 yy : translator.translate
18127 },
18128 dayOfMonthOrdinalParse: /\d{1,2}\./,
18129 ordinal : '%d.',
18130 week : {
18131 dow : 1, // Monday is the first day of the week.
18132 doy : 7 // The week that contains Jan 1st is the first week of the year.
18133 }
18134 });
18135
18136 return sr;
18137
18138})));
18139
18140
18141/***/ }),
18142/* 120 */
18143/***/ (function(module, exports, __webpack_require__) {
18144
18145//! moment.js locale configuration
18146
18147;(function (global, factory) {
18148 true ? factory(__webpack_require__(0)) :
18149 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18150 factory(global.moment)
18151}(this, (function (moment) { 'use strict';
18152
18153
18154 var ss = moment.defineLocale('ss', {
18155 months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
18156 monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
18157 weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
18158 weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
18159 weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
18160 weekdaysParseExact : true,
18161 longDateFormat : {
18162 LT : 'h:mm A',
18163 LTS : 'h:mm:ss A',
18164 L : 'DD/MM/YYYY',
18165 LL : 'D MMMM YYYY',
18166 LLL : 'D MMMM YYYY h:mm A',
18167 LLLL : 'dddd, D MMMM YYYY h:mm A'
18168 },
18169 calendar : {
18170 sameDay : '[Namuhla nga] LT',
18171 nextDay : '[Kusasa nga] LT',
18172 nextWeek : 'dddd [nga] LT',
18173 lastDay : '[Itolo nga] LT',
18174 lastWeek : 'dddd [leliphelile] [nga] LT',
18175 sameElse : 'L'
18176 },
18177 relativeTime : {
18178 future : 'nga %s',
18179 past : 'wenteka nga %s',
18180 s : 'emizuzwana lomcane',
18181 ss : '%d mzuzwana',
18182 m : 'umzuzu',
18183 mm : '%d emizuzu',
18184 h : 'lihora',
18185 hh : '%d emahora',
18186 d : 'lilanga',
18187 dd : '%d emalanga',
18188 M : 'inyanga',
18189 MM : '%d tinyanga',
18190 y : 'umnyaka',
18191 yy : '%d iminyaka'
18192 },
18193 meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
18194 meridiem : function (hours, minutes, isLower) {
18195 if (hours < 11) {
18196 return 'ekuseni';
18197 } else if (hours < 15) {
18198 return 'emini';
18199 } else if (hours < 19) {
18200 return 'entsambama';
18201 } else {
18202 return 'ebusuku';
18203 }
18204 },
18205 meridiemHour : function (hour, meridiem) {
18206 if (hour === 12) {
18207 hour = 0;
18208 }
18209 if (meridiem === 'ekuseni') {
18210 return hour;
18211 } else if (meridiem === 'emini') {
18212 return hour >= 11 ? hour : hour + 12;
18213 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
18214 if (hour === 0) {
18215 return 0;
18216 }
18217 return hour + 12;
18218 }
18219 },
18220 dayOfMonthOrdinalParse: /\d{1,2}/,
18221 ordinal : '%d',
18222 week : {
18223 dow : 1, // Monday is the first day of the week.
18224 doy : 4 // The week that contains Jan 4th is the first week of the year.
18225 }
18226 });
18227
18228 return ss;
18229
18230})));
18231
18232
18233/***/ }),
18234/* 121 */
18235/***/ (function(module, exports, __webpack_require__) {
18236
18237//! moment.js locale configuration
18238
18239;(function (global, factory) {
18240 true ? factory(__webpack_require__(0)) :
18241 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18242 factory(global.moment)
18243}(this, (function (moment) { 'use strict';
18244
18245
18246 var sv = moment.defineLocale('sv', {
18247 months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
18248 monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
18249 weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
18250 weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
18251 weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
18252 longDateFormat : {
18253 LT : 'HH:mm',
18254 LTS : 'HH:mm:ss',
18255 L : 'YYYY-MM-DD',
18256 LL : 'D MMMM YYYY',
18257 LLL : 'D MMMM YYYY [kl.] HH:mm',
18258 LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
18259 lll : 'D MMM YYYY HH:mm',
18260 llll : 'ddd D MMM YYYY HH:mm'
18261 },
18262 calendar : {
18263 sameDay: '[Idag] LT',
18264 nextDay: '[Imorgon] LT',
18265 lastDay: '[Igår] LT',
18266 nextWeek: '[På] dddd LT',
18267 lastWeek: '[I] dddd[s] LT',
18268 sameElse: 'L'
18269 },
18270 relativeTime : {
18271 future : 'om %s',
18272 past : 'för %s sedan',
18273 s : 'några sekunder',
18274 ss : '%d sekunder',
18275 m : 'en minut',
18276 mm : '%d minuter',
18277 h : 'en timme',
18278 hh : '%d timmar',
18279 d : 'en dag',
18280 dd : '%d dagar',
18281 M : 'en månad',
18282 MM : '%d månader',
18283 y : 'ett år',
18284 yy : '%d år'
18285 },
18286 dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
18287 ordinal : function (number) {
18288 var b = number % 10,
18289 output = (~~(number % 100 / 10) === 1) ? 'e' :
18290 (b === 1) ? 'a' :
18291 (b === 2) ? 'a' :
18292 (b === 3) ? 'e' : 'e';
18293 return number + output;
18294 },
18295 week : {
18296 dow : 1, // Monday is the first day of the week.
18297 doy : 4 // The week that contains Jan 4th is the first week of the year.
18298 }
18299 });
18300
18301 return sv;
18302
18303})));
18304
18305
18306/***/ }),
18307/* 122 */
18308/***/ (function(module, exports, __webpack_require__) {
18309
18310//! moment.js locale configuration
18311
18312;(function (global, factory) {
18313 true ? factory(__webpack_require__(0)) :
18314 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18315 factory(global.moment)
18316}(this, (function (moment) { 'use strict';
18317
18318
18319 var sw = moment.defineLocale('sw', {
18320 months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
18321 monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
18322 weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
18323 weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
18324 weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
18325 weekdaysParseExact : true,
18326 longDateFormat : {
18327 LT : 'HH:mm',
18328 LTS : 'HH:mm:ss',
18329 L : 'DD.MM.YYYY',
18330 LL : 'D MMMM YYYY',
18331 LLL : 'D MMMM YYYY HH:mm',
18332 LLLL : 'dddd, D MMMM YYYY HH:mm'
18333 },
18334 calendar : {
18335 sameDay : '[leo saa] LT',
18336 nextDay : '[kesho saa] LT',
18337 nextWeek : '[wiki ijayo] dddd [saat] LT',
18338 lastDay : '[jana] LT',
18339 lastWeek : '[wiki iliyopita] dddd [saat] LT',
18340 sameElse : 'L'
18341 },
18342 relativeTime : {
18343 future : '%s baadaye',
18344 past : 'tokea %s',
18345 s : 'hivi punde',
18346 ss : 'sekunde %d',
18347 m : 'dakika moja',
18348 mm : 'dakika %d',
18349 h : 'saa limoja',
18350 hh : 'masaa %d',
18351 d : 'siku moja',
18352 dd : 'masiku %d',
18353 M : 'mwezi mmoja',
18354 MM : 'miezi %d',
18355 y : 'mwaka mmoja',
18356 yy : 'miaka %d'
18357 },
18358 week : {
18359 dow : 1, // Monday is the first day of the week.
18360 doy : 7 // The week that contains Jan 1st is the first week of the year.
18361 }
18362 });
18363
18364 return sw;
18365
18366})));
18367
18368
18369/***/ }),
18370/* 123 */
18371/***/ (function(module, exports, __webpack_require__) {
18372
18373//! moment.js locale configuration
18374
18375;(function (global, factory) {
18376 true ? factory(__webpack_require__(0)) :
18377 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18378 factory(global.moment)
18379}(this, (function (moment) { 'use strict';
18380
18381
18382 var symbolMap = {
18383 '1': '௧',
18384 '2': '௨',
18385 '3': '௩',
18386 '4': '௪',
18387 '5': '௫',
18388 '6': '௬',
18389 '7': '௭',
18390 '8': '௮',
18391 '9': '௯',
18392 '0': '௦'
18393 }, numberMap = {
18394 '௧': '1',
18395 '௨': '2',
18396 '௩': '3',
18397 '௪': '4',
18398 '௫': '5',
18399 '௬': '6',
18400 '௭': '7',
18401 '௮': '8',
18402 '௯': '9',
18403 '௦': '0'
18404 };
18405
18406 var ta = moment.defineLocale('ta', {
18407 months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
18408 monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
18409 weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
18410 weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
18411 weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
18412 longDateFormat : {
18413 LT : 'HH:mm',
18414 LTS : 'HH:mm:ss',
18415 L : 'DD/MM/YYYY',
18416 LL : 'D MMMM YYYY',
18417 LLL : 'D MMMM YYYY, HH:mm',
18418 LLLL : 'dddd, D MMMM YYYY, HH:mm'
18419 },
18420 calendar : {
18421 sameDay : '[இன்று] LT',
18422 nextDay : '[நாளை] LT',
18423 nextWeek : 'dddd, LT',
18424 lastDay : '[நேற்று] LT',
18425 lastWeek : '[கடந்த வாரம்] dddd, LT',
18426 sameElse : 'L'
18427 },
18428 relativeTime : {
18429 future : '%s இல்',
18430 past : '%s முன்',
18431 s : 'ஒரு சில விநாடிகள்',
18432 ss : '%d விநாடிகள்',
18433 m : 'ஒரு நிமிடம்',
18434 mm : '%d நிமிடங்கள்',
18435 h : 'ஒரு மணி நேரம்',
18436 hh : '%d மணி நேரம்',
18437 d : 'ஒரு நாள்',
18438 dd : '%d நாட்கள்',
18439 M : 'ஒரு மாதம்',
18440 MM : '%d மாதங்கள்',
18441 y : 'ஒரு வருடம்',
18442 yy : '%d ஆண்டுகள்'
18443 },
18444 dayOfMonthOrdinalParse: /\d{1,2}வது/,
18445 ordinal : function (number) {
18446 return number + 'வது';
18447 },
18448 preparse: function (string) {
18449 return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
18450 return numberMap[match];
18451 });
18452 },
18453 postformat: function (string) {
18454 return string.replace(/\d/g, function (match) {
18455 return symbolMap[match];
18456 });
18457 },
18458 // refer http://ta.wikipedia.org/s/1er1
18459 meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
18460 meridiem : function (hour, minute, isLower) {
18461 if (hour < 2) {
18462 return ' யாமம்';
18463 } else if (hour < 6) {
18464 return ' வைகறை'; // வைகறை
18465 } else if (hour < 10) {
18466 return ' காலை'; // காலை
18467 } else if (hour < 14) {
18468 return ' நண்பகல்'; // நண்பகல்
18469 } else if (hour < 18) {
18470 return ' எற்பாடு'; // எற்பாடு
18471 } else if (hour < 22) {
18472 return ' மாலை'; // மாலை
18473 } else {
18474 return ' யாமம்';
18475 }
18476 },
18477 meridiemHour : function (hour, meridiem) {
18478 if (hour === 12) {
18479 hour = 0;
18480 }
18481 if (meridiem === 'யாமம்') {
18482 return hour < 2 ? hour : hour + 12;
18483 } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
18484 return hour;
18485 } else if (meridiem === 'நண்பகல்') {
18486 return hour >= 10 ? hour : hour + 12;
18487 } else {
18488 return hour + 12;
18489 }
18490 },
18491 week : {
18492 dow : 0, // Sunday is the first day of the week.
18493 doy : 6 // The week that contains Jan 1st is the first week of the year.
18494 }
18495 });
18496
18497 return ta;
18498
18499})));
18500
18501
18502/***/ }),
18503/* 124 */
18504/***/ (function(module, exports, __webpack_require__) {
18505
18506//! moment.js locale configuration
18507
18508;(function (global, factory) {
18509 true ? factory(__webpack_require__(0)) :
18510 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18511 factory(global.moment)
18512}(this, (function (moment) { 'use strict';
18513
18514
18515 var te = moment.defineLocale('te', {
18516 months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
18517 monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
18518 monthsParseExact : true,
18519 weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
18520 weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
18521 weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
18522 longDateFormat : {
18523 LT : 'A h:mm',
18524 LTS : 'A h:mm:ss',
18525 L : 'DD/MM/YYYY',
18526 LL : 'D MMMM YYYY',
18527 LLL : 'D MMMM YYYY, A h:mm',
18528 LLLL : 'dddd, D MMMM YYYY, A h:mm'
18529 },
18530 calendar : {
18531 sameDay : '[నేడు] LT',
18532 nextDay : '[రేపు] LT',
18533 nextWeek : 'dddd, LT',
18534 lastDay : '[నిన్న] LT',
18535 lastWeek : '[గత] dddd, LT',
18536 sameElse : 'L'
18537 },
18538 relativeTime : {
18539 future : '%s లో',
18540 past : '%s క్రితం',
18541 s : 'కొన్ని క్షణాలు',
18542 ss : '%d సెకన్లు',
18543 m : 'ఒక నిమిషం',
18544 mm : '%d నిమిషాలు',
18545 h : 'ఒక గంట',
18546 hh : '%d గంటలు',
18547 d : 'ఒక రోజు',
18548 dd : '%d రోజులు',
18549 M : 'ఒక నెల',
18550 MM : '%d నెలలు',
18551 y : 'ఒక సంవత్సరం',
18552 yy : '%d సంవత్సరాలు'
18553 },
18554 dayOfMonthOrdinalParse : /\d{1,2}వ/,
18555 ordinal : '%dవ',
18556 meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
18557 meridiemHour : function (hour, meridiem) {
18558 if (hour === 12) {
18559 hour = 0;
18560 }
18561 if (meridiem === 'రాత్రి') {
18562 return hour < 4 ? hour : hour + 12;
18563 } else if (meridiem === 'ఉదయం') {
18564 return hour;
18565 } else if (meridiem === 'మధ్యాహ్నం') {
18566 return hour >= 10 ? hour : hour + 12;
18567 } else if (meridiem === 'సాయంత్రం') {
18568 return hour + 12;
18569 }
18570 },
18571 meridiem : function (hour, minute, isLower) {
18572 if (hour < 4) {
18573 return 'రాత్రి';
18574 } else if (hour < 10) {
18575 return 'ఉదయం';
18576 } else if (hour < 17) {
18577 return 'మధ్యాహ్నం';
18578 } else if (hour < 20) {
18579 return 'సాయంత్రం';
18580 } else {
18581 return 'రాత్రి';
18582 }
18583 },
18584 week : {
18585 dow : 0, // Sunday is the first day of the week.
18586 doy : 6 // The week that contains Jan 1st is the first week of the year.
18587 }
18588 });
18589
18590 return te;
18591
18592})));
18593
18594
18595/***/ }),
18596/* 125 */
18597/***/ (function(module, exports, __webpack_require__) {
18598
18599//! moment.js locale configuration
18600
18601;(function (global, factory) {
18602 true ? factory(__webpack_require__(0)) :
18603 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18604 factory(global.moment)
18605}(this, (function (moment) { 'use strict';
18606
18607
18608 var tet = moment.defineLocale('tet', {
18609 months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
18610 monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
18611 weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
18612 weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
18613 weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
18614 longDateFormat : {
18615 LT : 'HH:mm',
18616 LTS : 'HH:mm:ss',
18617 L : 'DD/MM/YYYY',
18618 LL : 'D MMMM YYYY',
18619 LLL : 'D MMMM YYYY HH:mm',
18620 LLLL : 'dddd, D MMMM YYYY HH:mm'
18621 },
18622 calendar : {
18623 sameDay: '[Ohin iha] LT',
18624 nextDay: '[Aban iha] LT',
18625 nextWeek: 'dddd [iha] LT',
18626 lastDay: '[Horiseik iha] LT',
18627 lastWeek: 'dddd [semana kotuk] [iha] LT',
18628 sameElse: 'L'
18629 },
18630 relativeTime : {
18631 future : 'iha %s',
18632 past : '%s liuba',
18633 s : 'minutu balun',
18634 ss : 'minutu %d',
18635 m : 'minutu ida',
18636 mm : 'minutu %d',
18637 h : 'oras ida',
18638 hh : 'oras %d',
18639 d : 'loron ida',
18640 dd : 'loron %d',
18641 M : 'fulan ida',
18642 MM : 'fulan %d',
18643 y : 'tinan ida',
18644 yy : 'tinan %d'
18645 },
18646 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
18647 ordinal : function (number) {
18648 var b = number % 10,
18649 output = (~~(number % 100 / 10) === 1) ? 'th' :
18650 (b === 1) ? 'st' :
18651 (b === 2) ? 'nd' :
18652 (b === 3) ? 'rd' : 'th';
18653 return number + output;
18654 },
18655 week : {
18656 dow : 1, // Monday is the first day of the week.
18657 doy : 4 // The week that contains Jan 4th is the first week of the year.
18658 }
18659 });
18660
18661 return tet;
18662
18663})));
18664
18665
18666/***/ }),
18667/* 126 */
18668/***/ (function(module, exports, __webpack_require__) {
18669
18670//! moment.js locale configuration
18671
18672;(function (global, factory) {
18673 true ? factory(__webpack_require__(0)) :
18674 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18675 factory(global.moment)
18676}(this, (function (moment) { 'use strict';
18677
18678
18679 var suffixes = {
18680 0: '-ум',
18681 1: '-ум',
18682 2: '-юм',
18683 3: '-юм',
18684 4: '-ум',
18685 5: '-ум',
18686 6: '-ум',
18687 7: '-ум',
18688 8: '-ум',
18689 9: '-ум',
18690 10: '-ум',
18691 12: '-ум',
18692 13: '-ум',
18693 20: '-ум',
18694 30: '-юм',
18695 40: '-ум',
18696 50: '-ум',
18697 60: '-ум',
18698 70: '-ум',
18699 80: '-ум',
18700 90: '-ум',
18701 100: '-ум'
18702 };
18703
18704 var tg = moment.defineLocale('tg', {
18705 months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
18706 monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
18707 weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),
18708 weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
18709 weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
18710 longDateFormat : {
18711 LT : 'HH:mm',
18712 LTS : 'HH:mm:ss',
18713 L : 'DD/MM/YYYY',
18714 LL : 'D MMMM YYYY',
18715 LLL : 'D MMMM YYYY HH:mm',
18716 LLLL : 'dddd, D MMMM YYYY HH:mm'
18717 },
18718 calendar : {
18719 sameDay : '[Имрӯз соати] LT',
18720 nextDay : '[Пагоҳ соати] LT',
18721 lastDay : '[Дирӯз соати] LT',
18722 nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',
18723 lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',
18724 sameElse : 'L'
18725 },
18726 relativeTime : {
18727 future : 'баъди %s',
18728 past : '%s пеш',
18729 s : 'якчанд сония',
18730 m : 'як дақиқа',
18731 mm : '%d дақиқа',
18732 h : 'як соат',
18733 hh : '%d соат',
18734 d : 'як рӯз',
18735 dd : '%d рӯз',
18736 M : 'як моҳ',
18737 MM : '%d моҳ',
18738 y : 'як сол',
18739 yy : '%d сол'
18740 },
18741 meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
18742 meridiemHour: function (hour, meridiem) {
18743 if (hour === 12) {
18744 hour = 0;
18745 }
18746 if (meridiem === 'шаб') {
18747 return hour < 4 ? hour : hour + 12;
18748 } else if (meridiem === 'субҳ') {
18749 return hour;
18750 } else if (meridiem === 'рӯз') {
18751 return hour >= 11 ? hour : hour + 12;
18752 } else if (meridiem === 'бегоҳ') {
18753 return hour + 12;
18754 }
18755 },
18756 meridiem: function (hour, minute, isLower) {
18757 if (hour < 4) {
18758 return 'шаб';
18759 } else if (hour < 11) {
18760 return 'субҳ';
18761 } else if (hour < 16) {
18762 return 'рӯз';
18763 } else if (hour < 19) {
18764 return 'бегоҳ';
18765 } else {
18766 return 'шаб';
18767 }
18768 },
18769 dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
18770 ordinal: function (number) {
18771 var a = number % 10,
18772 b = number >= 100 ? 100 : null;
18773 return number + (suffixes[number] || suffixes[a] || suffixes[b]);
18774 },
18775 week : {
18776 dow : 1, // Monday is the first day of the week.
18777 doy : 7 // The week that contains Jan 1th is the first week of the year.
18778 }
18779 });
18780
18781 return tg;
18782
18783})));
18784
18785
18786/***/ }),
18787/* 127 */
18788/***/ (function(module, exports, __webpack_require__) {
18789
18790//! moment.js locale configuration
18791
18792;(function (global, factory) {
18793 true ? factory(__webpack_require__(0)) :
18794 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18795 factory(global.moment)
18796}(this, (function (moment) { 'use strict';
18797
18798
18799 var th = moment.defineLocale('th', {
18800 months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
18801 monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
18802 monthsParseExact: true,
18803 weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
18804 weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
18805 weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
18806 weekdaysParseExact : true,
18807 longDateFormat : {
18808 LT : 'H:mm',
18809 LTS : 'H:mm:ss',
18810 L : 'DD/MM/YYYY',
18811 LL : 'D MMMM YYYY',
18812 LLL : 'D MMMM YYYY เวลา H:mm',
18813 LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
18814 },
18815 meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
18816 isPM: function (input) {
18817 return input === 'หลังเที่ยง';
18818 },
18819 meridiem : function (hour, minute, isLower) {
18820 if (hour < 12) {
18821 return 'ก่อนเที่ยง';
18822 } else {
18823 return 'หลังเที่ยง';
18824 }
18825 },
18826 calendar : {
18827 sameDay : '[วันนี้ เวลา] LT',
18828 nextDay : '[พรุ่งนี้ เวลา] LT',
18829 nextWeek : 'dddd[หน้า เวลา] LT',
18830 lastDay : '[เมื่อวานนี้ เวลา] LT',
18831 lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
18832 sameElse : 'L'
18833 },
18834 relativeTime : {
18835 future : 'อีก %s',
18836 past : '%sที่แล้ว',
18837 s : 'ไม่กี่วินาที',
18838 ss : '%d วินาที',
18839 m : '1 นาที',
18840 mm : '%d นาที',
18841 h : '1 ชั่วโมง',
18842 hh : '%d ชั่วโมง',
18843 d : '1 วัน',
18844 dd : '%d วัน',
18845 M : '1 เดือน',
18846 MM : '%d เดือน',
18847 y : '1 ปี',
18848 yy : '%d ปี'
18849 }
18850 });
18851
18852 return th;
18853
18854})));
18855
18856
18857/***/ }),
18858/* 128 */
18859/***/ (function(module, exports, __webpack_require__) {
18860
18861//! moment.js locale configuration
18862
18863;(function (global, factory) {
18864 true ? factory(__webpack_require__(0)) :
18865 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18866 factory(global.moment)
18867}(this, (function (moment) { 'use strict';
18868
18869
18870 var tlPh = moment.defineLocale('tl-ph', {
18871 months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
18872 monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
18873 weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
18874 weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
18875 weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
18876 longDateFormat : {
18877 LT : 'HH:mm',
18878 LTS : 'HH:mm:ss',
18879 L : 'MM/D/YYYY',
18880 LL : 'MMMM D, YYYY',
18881 LLL : 'MMMM D, YYYY HH:mm',
18882 LLLL : 'dddd, MMMM DD, YYYY HH:mm'
18883 },
18884 calendar : {
18885 sameDay: 'LT [ngayong araw]',
18886 nextDay: '[Bukas ng] LT',
18887 nextWeek: 'LT [sa susunod na] dddd',
18888 lastDay: 'LT [kahapon]',
18889 lastWeek: 'LT [noong nakaraang] dddd',
18890 sameElse: 'L'
18891 },
18892 relativeTime : {
18893 future : 'sa loob ng %s',
18894 past : '%s ang nakalipas',
18895 s : 'ilang segundo',
18896 ss : '%d segundo',
18897 m : 'isang minuto',
18898 mm : '%d minuto',
18899 h : 'isang oras',
18900 hh : '%d oras',
18901 d : 'isang araw',
18902 dd : '%d araw',
18903 M : 'isang buwan',
18904 MM : '%d buwan',
18905 y : 'isang taon',
18906 yy : '%d taon'
18907 },
18908 dayOfMonthOrdinalParse: /\d{1,2}/,
18909 ordinal : function (number) {
18910 return number;
18911 },
18912 week : {
18913 dow : 1, // Monday is the first day of the week.
18914 doy : 4 // The week that contains Jan 4th is the first week of the year.
18915 }
18916 });
18917
18918 return tlPh;
18919
18920})));
18921
18922
18923/***/ }),
18924/* 129 */
18925/***/ (function(module, exports, __webpack_require__) {
18926
18927//! moment.js locale configuration
18928
18929;(function (global, factory) {
18930 true ? factory(__webpack_require__(0)) :
18931 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
18932 factory(global.moment)
18933}(this, (function (moment) { 'use strict';
18934
18935
18936 var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
18937
18938 function translateFuture(output) {
18939 var time = output;
18940 time = (output.indexOf('jaj') !== -1) ?
18941 time.slice(0, -3) + 'leS' :
18942 (output.indexOf('jar') !== -1) ?
18943 time.slice(0, -3) + 'waQ' :
18944 (output.indexOf('DIS') !== -1) ?
18945 time.slice(0, -3) + 'nem' :
18946 time + ' pIq';
18947 return time;
18948 }
18949
18950 function translatePast(output) {
18951 var time = output;
18952 time = (output.indexOf('jaj') !== -1) ?
18953 time.slice(0, -3) + 'Hu’' :
18954 (output.indexOf('jar') !== -1) ?
18955 time.slice(0, -3) + 'wen' :
18956 (output.indexOf('DIS') !== -1) ?
18957 time.slice(0, -3) + 'ben' :
18958 time + ' ret';
18959 return time;
18960 }
18961
18962 function translate(number, withoutSuffix, string, isFuture) {
18963 var numberNoun = numberAsNoun(number);
18964 switch (string) {
18965 case 'ss':
18966 return numberNoun + ' lup';
18967 case 'mm':
18968 return numberNoun + ' tup';
18969 case 'hh':
18970 return numberNoun + ' rep';
18971 case 'dd':
18972 return numberNoun + ' jaj';
18973 case 'MM':
18974 return numberNoun + ' jar';
18975 case 'yy':
18976 return numberNoun + ' DIS';
18977 }
18978 }
18979
18980 function numberAsNoun(number) {
18981 var hundred = Math.floor((number % 1000) / 100),
18982 ten = Math.floor((number % 100) / 10),
18983 one = number % 10,
18984 word = '';
18985 if (hundred > 0) {
18986 word += numbersNouns[hundred] + 'vatlh';
18987 }
18988 if (ten > 0) {
18989 word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
18990 }
18991 if (one > 0) {
18992 word += ((word !== '') ? ' ' : '') + numbersNouns[one];
18993 }
18994 return (word === '') ? 'pagh' : word;
18995 }
18996
18997 var tlh = moment.defineLocale('tlh', {
18998 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('_'),
18999 monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
19000 monthsParseExact : true,
19001 weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
19002 weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
19003 weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
19004 longDateFormat : {
19005 LT : 'HH:mm',
19006 LTS : 'HH:mm:ss',
19007 L : 'DD.MM.YYYY',
19008 LL : 'D MMMM YYYY',
19009 LLL : 'D MMMM YYYY HH:mm',
19010 LLLL : 'dddd, D MMMM YYYY HH:mm'
19011 },
19012 calendar : {
19013 sameDay: '[DaHjaj] LT',
19014 nextDay: '[wa’leS] LT',
19015 nextWeek: 'LLL',
19016 lastDay: '[wa’Hu’] LT',
19017 lastWeek: 'LLL',
19018 sameElse: 'L'
19019 },
19020 relativeTime : {
19021 future : translateFuture,
19022 past : translatePast,
19023 s : 'puS lup',
19024 ss : translate,
19025 m : 'wa’ tup',
19026 mm : translate,
19027 h : 'wa’ rep',
19028 hh : translate,
19029 d : 'wa’ jaj',
19030 dd : translate,
19031 M : 'wa’ jar',
19032 MM : translate,
19033 y : 'wa’ DIS',
19034 yy : translate
19035 },
19036 dayOfMonthOrdinalParse: /\d{1,2}\./,
19037 ordinal : '%d.',
19038 week : {
19039 dow : 1, // Monday is the first day of the week.
19040 doy : 4 // The week that contains Jan 4th is the first week of the year.
19041 }
19042 });
19043
19044 return tlh;
19045
19046})));
19047
19048
19049/***/ }),
19050/* 130 */
19051/***/ (function(module, exports, __webpack_require__) {
19052
19053
19054;(function (global, factory) {
19055 true ? factory(__webpack_require__(0)) :
19056 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19057 factory(global.moment)
19058}(this, (function (moment) { 'use strict';
19059
19060 var suffixes = {
19061 1: '\'inci',
19062 5: '\'inci',
19063 8: '\'inci',
19064 70: '\'inci',
19065 80: '\'inci',
19066 2: '\'nci',
19067 7: '\'nci',
19068 20: '\'nci',
19069 50: '\'nci',
19070 3: '\'üncü',
19071 4: '\'üncü',
19072 100: '\'üncü',
19073 6: '\'ncı',
19074 9: '\'uncu',
19075 10: '\'uncu',
19076 30: '\'uncu',
19077 60: '\'ıncı',
19078 90: '\'ıncı'
19079 };
19080
19081 var tr = moment.defineLocale('tr', {
19082 months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
19083 monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
19084 weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
19085 weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
19086 weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
19087 longDateFormat : {
19088 LT : 'HH:mm',
19089 LTS : 'HH:mm:ss',
19090 L : 'DD.MM.YYYY',
19091 LL : 'D MMMM YYYY',
19092 LLL : 'D MMMM YYYY HH:mm',
19093 LLLL : 'dddd, D MMMM YYYY HH:mm'
19094 },
19095 calendar : {
19096 sameDay : '[bugün saat] LT',
19097 nextDay : '[yarın saat] LT',
19098 nextWeek : '[gelecek] dddd [saat] LT',
19099 lastDay : '[dün] LT',
19100 lastWeek : '[geçen] dddd [saat] LT',
19101 sameElse : 'L'
19102 },
19103 relativeTime : {
19104 future : '%s sonra',
19105 past : '%s önce',
19106 s : 'birkaç saniye',
19107 ss : '%d saniye',
19108 m : 'bir dakika',
19109 mm : '%d dakika',
19110 h : 'bir saat',
19111 hh : '%d saat',
19112 d : 'bir gün',
19113 dd : '%d gün',
19114 M : 'bir ay',
19115 MM : '%d ay',
19116 y : 'bir yıl',
19117 yy : '%d yıl'
19118 },
19119 ordinal: function (number, period) {
19120 switch (period) {
19121 case 'd':
19122 case 'D':
19123 case 'Do':
19124 case 'DD':
19125 return number;
19126 default:
19127 if (number === 0) { // special case for zero
19128 return number + '\'ıncı';
19129 }
19130 var a = number % 10,
19131 b = number % 100 - a,
19132 c = number >= 100 ? 100 : null;
19133 return number + (suffixes[a] || suffixes[b] || suffixes[c]);
19134 }
19135 },
19136 week : {
19137 dow : 1, // Monday is the first day of the week.
19138 doy : 7 // The week that contains Jan 1st is the first week of the year.
19139 }
19140 });
19141
19142 return tr;
19143
19144})));
19145
19146
19147/***/ }),
19148/* 131 */
19149/***/ (function(module, exports, __webpack_require__) {
19150
19151//! moment.js locale configuration
19152
19153;(function (global, factory) {
19154 true ? factory(__webpack_require__(0)) :
19155 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19156 factory(global.moment)
19157}(this, (function (moment) { 'use strict';
19158
19159
19160 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
19161 // This is currently too difficult (maybe even impossible) to add.
19162 var tzl = moment.defineLocale('tzl', {
19163 months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
19164 monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
19165 weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
19166 weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
19167 weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
19168 longDateFormat : {
19169 LT : 'HH.mm',
19170 LTS : 'HH.mm.ss',
19171 L : 'DD.MM.YYYY',
19172 LL : 'D. MMMM [dallas] YYYY',
19173 LLL : 'D. MMMM [dallas] YYYY HH.mm',
19174 LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
19175 },
19176 meridiemParse: /d\'o|d\'a/i,
19177 isPM : function (input) {
19178 return 'd\'o' === input.toLowerCase();
19179 },
19180 meridiem : function (hours, minutes, isLower) {
19181 if (hours > 11) {
19182 return isLower ? 'd\'o' : 'D\'O';
19183 } else {
19184 return isLower ? 'd\'a' : 'D\'A';
19185 }
19186 },
19187 calendar : {
19188 sameDay : '[oxhi à] LT',
19189 nextDay : '[demà à] LT',
19190 nextWeek : 'dddd [à] LT',
19191 lastDay : '[ieiri à] LT',
19192 lastWeek : '[sür el] dddd [lasteu à] LT',
19193 sameElse : 'L'
19194 },
19195 relativeTime : {
19196 future : 'osprei %s',
19197 past : 'ja%s',
19198 s : processRelativeTime,
19199 ss : processRelativeTime,
19200 m : processRelativeTime,
19201 mm : processRelativeTime,
19202 h : processRelativeTime,
19203 hh : processRelativeTime,
19204 d : processRelativeTime,
19205 dd : processRelativeTime,
19206 M : processRelativeTime,
19207 MM : processRelativeTime,
19208 y : processRelativeTime,
19209 yy : processRelativeTime
19210 },
19211 dayOfMonthOrdinalParse: /\d{1,2}\./,
19212 ordinal : '%d.',
19213 week : {
19214 dow : 1, // Monday is the first day of the week.
19215 doy : 4 // The week that contains Jan 4th is the first week of the year.
19216 }
19217 });
19218
19219 function processRelativeTime(number, withoutSuffix, key, isFuture) {
19220 var format = {
19221 's': ['viensas secunds', '\'iensas secunds'],
19222 'ss': [number + ' secunds', '' + number + ' secunds'],
19223 'm': ['\'n míut', '\'iens míut'],
19224 'mm': [number + ' míuts', '' + number + ' míuts'],
19225 'h': ['\'n þora', '\'iensa þora'],
19226 'hh': [number + ' þoras', '' + number + ' þoras'],
19227 'd': ['\'n ziua', '\'iensa ziua'],
19228 'dd': [number + ' ziuas', '' + number + ' ziuas'],
19229 'M': ['\'n mes', '\'iens mes'],
19230 'MM': [number + ' mesen', '' + number + ' mesen'],
19231 'y': ['\'n ar', '\'iens ar'],
19232 'yy': [number + ' ars', '' + number + ' ars']
19233 };
19234 return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
19235 }
19236
19237 return tzl;
19238
19239})));
19240
19241
19242/***/ }),
19243/* 132 */
19244/***/ (function(module, exports, __webpack_require__) {
19245
19246//! moment.js locale configuration
19247
19248;(function (global, factory) {
19249 true ? factory(__webpack_require__(0)) :
19250 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19251 factory(global.moment)
19252}(this, (function (moment) { 'use strict';
19253
19254
19255 var tzmLatn = moment.defineLocale('tzm-latn', {
19256 months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
19257 monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
19258 weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
19259 weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
19260 weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
19261 longDateFormat : {
19262 LT : 'HH:mm',
19263 LTS : 'HH:mm:ss',
19264 L : 'DD/MM/YYYY',
19265 LL : 'D MMMM YYYY',
19266 LLL : 'D MMMM YYYY HH:mm',
19267 LLLL : 'dddd D MMMM YYYY HH:mm'
19268 },
19269 calendar : {
19270 sameDay: '[asdkh g] LT',
19271 nextDay: '[aska g] LT',
19272 nextWeek: 'dddd [g] LT',
19273 lastDay: '[assant g] LT',
19274 lastWeek: 'dddd [g] LT',
19275 sameElse: 'L'
19276 },
19277 relativeTime : {
19278 future : 'dadkh s yan %s',
19279 past : 'yan %s',
19280 s : 'imik',
19281 ss : '%d imik',
19282 m : 'minuḍ',
19283 mm : '%d minuḍ',
19284 h : 'saɛa',
19285 hh : '%d tassaɛin',
19286 d : 'ass',
19287 dd : '%d ossan',
19288 M : 'ayowr',
19289 MM : '%d iyyirn',
19290 y : 'asgas',
19291 yy : '%d isgasn'
19292 },
19293 week : {
19294 dow : 6, // Saturday is the first day of the week.
19295 doy : 12 // The week that contains Jan 1st is the first week of the year.
19296 }
19297 });
19298
19299 return tzmLatn;
19300
19301})));
19302
19303
19304/***/ }),
19305/* 133 */
19306/***/ (function(module, exports, __webpack_require__) {
19307
19308//! moment.js locale configuration
19309
19310;(function (global, factory) {
19311 true ? factory(__webpack_require__(0)) :
19312 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19313 factory(global.moment)
19314}(this, (function (moment) { 'use strict';
19315
19316
19317 var tzm = moment.defineLocale('tzm', {
19318 months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
19319 monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
19320 weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
19321 weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
19322 weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
19323 longDateFormat : {
19324 LT : 'HH:mm',
19325 LTS: 'HH:mm:ss',
19326 L : 'DD/MM/YYYY',
19327 LL : 'D MMMM YYYY',
19328 LLL : 'D MMMM YYYY HH:mm',
19329 LLLL : 'dddd D MMMM YYYY HH:mm'
19330 },
19331 calendar : {
19332 sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
19333 nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
19334 nextWeek: 'dddd [ⴴ] LT',
19335 lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
19336 lastWeek: 'dddd [ⴴ] LT',
19337 sameElse: 'L'
19338 },
19339 relativeTime : {
19340 future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
19341 past : 'ⵢⴰⵏ %s',
19342 s : 'ⵉⵎⵉⴽ',
19343 ss : '%d ⵉⵎⵉⴽ',
19344 m : 'ⵎⵉⵏⵓⴺ',
19345 mm : '%d ⵎⵉⵏⵓⴺ',
19346 h : 'ⵙⴰⵄⴰ',
19347 hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
19348 d : 'ⴰⵙⵙ',
19349 dd : '%d oⵙⵙⴰⵏ',
19350 M : 'ⴰⵢoⵓⵔ',
19351 MM : '%d ⵉⵢⵢⵉⵔⵏ',
19352 y : 'ⴰⵙⴳⴰⵙ',
19353 yy : '%d ⵉⵙⴳⴰⵙⵏ'
19354 },
19355 week : {
19356 dow : 6, // Saturday is the first day of the week.
19357 doy : 12 // The week that contains Jan 1st is the first week of the year.
19358 }
19359 });
19360
19361 return tzm;
19362
19363})));
19364
19365
19366/***/ }),
19367/* 134 */
19368/***/ (function(module, exports, __webpack_require__) {
19369
19370//! moment.js language configuration
19371
19372;(function (global, factory) {
19373 true ? factory(__webpack_require__(0)) :
19374 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19375 factory(global.moment)
19376}(this, (function (moment) { 'use strict';
19377
19378
19379 var ugCn = moment.defineLocale('ug-cn', {
19380 months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
19381 '_'
19382 ),
19383 monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
19384 '_'
19385 ),
19386 weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
19387 '_'
19388 ),
19389 weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
19390 weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
19391 longDateFormat: {
19392 LT: 'HH:mm',
19393 LTS: 'HH:mm:ss',
19394 L: 'YYYY-MM-DD',
19395 LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
19396 LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
19397 LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
19398 },
19399 meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
19400 meridiemHour: function (hour, meridiem) {
19401 if (hour === 12) {
19402 hour = 0;
19403 }
19404 if (
19405 meridiem === 'يېرىم كېچە' ||
19406 meridiem === 'سەھەر' ||
19407 meridiem === 'چۈشتىن بۇرۇن'
19408 ) {
19409 return hour;
19410 } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
19411 return hour + 12;
19412 } else {
19413 return hour >= 11 ? hour : hour + 12;
19414 }
19415 },
19416 meridiem: function (hour, minute, isLower) {
19417 var hm = hour * 100 + minute;
19418 if (hm < 600) {
19419 return 'يېرىم كېچە';
19420 } else if (hm < 900) {
19421 return 'سەھەر';
19422 } else if (hm < 1130) {
19423 return 'چۈشتىن بۇرۇن';
19424 } else if (hm < 1230) {
19425 return 'چۈش';
19426 } else if (hm < 1800) {
19427 return 'چۈشتىن كېيىن';
19428 } else {
19429 return 'كەچ';
19430 }
19431 },
19432 calendar: {
19433 sameDay: '[بۈگۈن سائەت] LT',
19434 nextDay: '[ئەتە سائەت] LT',
19435 nextWeek: '[كېلەركى] dddd [سائەت] LT',
19436 lastDay: '[تۆنۈگۈن] LT',
19437 lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
19438 sameElse: 'L'
19439 },
19440 relativeTime: {
19441 future: '%s كېيىن',
19442 past: '%s بۇرۇن',
19443 s: 'نەچچە سېكونت',
19444 ss: '%d سېكونت',
19445 m: 'بىر مىنۇت',
19446 mm: '%d مىنۇت',
19447 h: 'بىر سائەت',
19448 hh: '%d سائەت',
19449 d: 'بىر كۈن',
19450 dd: '%d كۈن',
19451 M: 'بىر ئاي',
19452 MM: '%d ئاي',
19453 y: 'بىر يىل',
19454 yy: '%d يىل'
19455 },
19456
19457 dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
19458 ordinal: function (number, period) {
19459 switch (period) {
19460 case 'd':
19461 case 'D':
19462 case 'DDD':
19463 return number + '-كۈنى';
19464 case 'w':
19465 case 'W':
19466 return number + '-ھەپتە';
19467 default:
19468 return number;
19469 }
19470 },
19471 preparse: function (string) {
19472 return string.replace(/،/g, ',');
19473 },
19474 postformat: function (string) {
19475 return string.replace(/,/g, '،');
19476 },
19477 week: {
19478 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
19479 dow: 1, // Monday is the first day of the week.
19480 doy: 7 // The week that contains Jan 1st is the first week of the year.
19481 }
19482 });
19483
19484 return ugCn;
19485
19486})));
19487
19488
19489/***/ }),
19490/* 135 */
19491/***/ (function(module, exports, __webpack_require__) {
19492
19493//! moment.js locale configuration
19494
19495;(function (global, factory) {
19496 true ? factory(__webpack_require__(0)) :
19497 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19498 factory(global.moment)
19499}(this, (function (moment) { 'use strict';
19500
19501
19502 function plural(word, num) {
19503 var forms = word.split('_');
19504 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
19505 }
19506 function relativeTimeWithPlural(number, withoutSuffix, key) {
19507 var format = {
19508 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
19509 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
19510 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
19511 'dd': 'день_дні_днів',
19512 'MM': 'місяць_місяці_місяців',
19513 'yy': 'рік_роки_років'
19514 };
19515 if (key === 'm') {
19516 return withoutSuffix ? 'хвилина' : 'хвилину';
19517 }
19518 else if (key === 'h') {
19519 return withoutSuffix ? 'година' : 'годину';
19520 }
19521 else {
19522 return number + ' ' + plural(format[key], +number);
19523 }
19524 }
19525 function weekdaysCaseReplace(m, format) {
19526 var weekdays = {
19527 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
19528 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
19529 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
19530 };
19531
19532 if (!m) {
19533 return weekdays['nominative'];
19534 }
19535
19536 var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
19537 'accusative' :
19538 ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
19539 'genitive' :
19540 'nominative');
19541 return weekdays[nounCase][m.day()];
19542 }
19543 function processHoursFunction(str) {
19544 return function () {
19545 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
19546 };
19547 }
19548
19549 var uk = moment.defineLocale('uk', {
19550 months : {
19551 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
19552 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
19553 },
19554 monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
19555 weekdays : weekdaysCaseReplace,
19556 weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
19557 weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
19558 longDateFormat : {
19559 LT : 'HH:mm',
19560 LTS : 'HH:mm:ss',
19561 L : 'DD.MM.YYYY',
19562 LL : 'D MMMM YYYY р.',
19563 LLL : 'D MMMM YYYY р., HH:mm',
19564 LLLL : 'dddd, D MMMM YYYY р., HH:mm'
19565 },
19566 calendar : {
19567 sameDay: processHoursFunction('[Сьогодні '),
19568 nextDay: processHoursFunction('[Завтра '),
19569 lastDay: processHoursFunction('[Вчора '),
19570 nextWeek: processHoursFunction('[У] dddd ['),
19571 lastWeek: function () {
19572 switch (this.day()) {
19573 case 0:
19574 case 3:
19575 case 5:
19576 case 6:
19577 return processHoursFunction('[Минулої] dddd [').call(this);
19578 case 1:
19579 case 2:
19580 case 4:
19581 return processHoursFunction('[Минулого] dddd [').call(this);
19582 }
19583 },
19584 sameElse: 'L'
19585 },
19586 relativeTime : {
19587 future : 'за %s',
19588 past : '%s тому',
19589 s : 'декілька секунд',
19590 ss : relativeTimeWithPlural,
19591 m : relativeTimeWithPlural,
19592 mm : relativeTimeWithPlural,
19593 h : 'годину',
19594 hh : relativeTimeWithPlural,
19595 d : 'день',
19596 dd : relativeTimeWithPlural,
19597 M : 'місяць',
19598 MM : relativeTimeWithPlural,
19599 y : 'рік',
19600 yy : relativeTimeWithPlural
19601 },
19602 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
19603 meridiemParse: /ночі|ранку|дня|вечора/,
19604 isPM: function (input) {
19605 return /^(дня|вечора)$/.test(input);
19606 },
19607 meridiem : function (hour, minute, isLower) {
19608 if (hour < 4) {
19609 return 'ночі';
19610 } else if (hour < 12) {
19611 return 'ранку';
19612 } else if (hour < 17) {
19613 return 'дня';
19614 } else {
19615 return 'вечора';
19616 }
19617 },
19618 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
19619 ordinal: function (number, period) {
19620 switch (period) {
19621 case 'M':
19622 case 'd':
19623 case 'DDD':
19624 case 'w':
19625 case 'W':
19626 return number + '-й';
19627 case 'D':
19628 return number + '-го';
19629 default:
19630 return number;
19631 }
19632 },
19633 week : {
19634 dow : 1, // Monday is the first day of the week.
19635 doy : 7 // The week that contains Jan 1st is the first week of the year.
19636 }
19637 });
19638
19639 return uk;
19640
19641})));
19642
19643
19644/***/ }),
19645/* 136 */
19646/***/ (function(module, exports, __webpack_require__) {
19647
19648//! moment.js locale configuration
19649
19650;(function (global, factory) {
19651 true ? factory(__webpack_require__(0)) :
19652 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19653 factory(global.moment)
19654}(this, (function (moment) { 'use strict';
19655
19656
19657 var months = [
19658 'جنوری',
19659 'فروری',
19660 'مارچ',
19661 'اپریل',
19662 'مئی',
19663 'جون',
19664 'جولائی',
19665 'اگست',
19666 'ستمبر',
19667 'اکتوبر',
19668 'نومبر',
19669 'دسمبر'
19670 ];
19671 var days = [
19672 'اتوار',
19673 'پیر',
19674 'منگل',
19675 'بدھ',
19676 'جمعرات',
19677 'جمعہ',
19678 'ہفتہ'
19679 ];
19680
19681 var ur = moment.defineLocale('ur', {
19682 months : months,
19683 monthsShort : months,
19684 weekdays : days,
19685 weekdaysShort : days,
19686 weekdaysMin : days,
19687 longDateFormat : {
19688 LT : 'HH:mm',
19689 LTS : 'HH:mm:ss',
19690 L : 'DD/MM/YYYY',
19691 LL : 'D MMMM YYYY',
19692 LLL : 'D MMMM YYYY HH:mm',
19693 LLLL : 'dddd، D MMMM YYYY HH:mm'
19694 },
19695 meridiemParse: /صبح|شام/,
19696 isPM : function (input) {
19697 return 'شام' === input;
19698 },
19699 meridiem : function (hour, minute, isLower) {
19700 if (hour < 12) {
19701 return 'صبح';
19702 }
19703 return 'شام';
19704 },
19705 calendar : {
19706 sameDay : '[آج بوقت] LT',
19707 nextDay : '[کل بوقت] LT',
19708 nextWeek : 'dddd [بوقت] LT',
19709 lastDay : '[گذشتہ روز بوقت] LT',
19710 lastWeek : '[گذشتہ] dddd [بوقت] LT',
19711 sameElse : 'L'
19712 },
19713 relativeTime : {
19714 future : '%s بعد',
19715 past : '%s قبل',
19716 s : 'چند سیکنڈ',
19717 ss : '%d سیکنڈ',
19718 m : 'ایک منٹ',
19719 mm : '%d منٹ',
19720 h : 'ایک گھنٹہ',
19721 hh : '%d گھنٹے',
19722 d : 'ایک دن',
19723 dd : '%d دن',
19724 M : 'ایک ماہ',
19725 MM : '%d ماہ',
19726 y : 'ایک سال',
19727 yy : '%d سال'
19728 },
19729 preparse: function (string) {
19730 return string.replace(/،/g, ',');
19731 },
19732 postformat: function (string) {
19733 return string.replace(/,/g, '،');
19734 },
19735 week : {
19736 dow : 1, // Monday is the first day of the week.
19737 doy : 4 // The week that contains Jan 4th is the first week of the year.
19738 }
19739 });
19740
19741 return ur;
19742
19743})));
19744
19745
19746/***/ }),
19747/* 137 */
19748/***/ (function(module, exports, __webpack_require__) {
19749
19750//! moment.js locale configuration
19751
19752;(function (global, factory) {
19753 true ? factory(__webpack_require__(0)) :
19754 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19755 factory(global.moment)
19756}(this, (function (moment) { 'use strict';
19757
19758
19759 var uzLatn = moment.defineLocale('uz-latn', {
19760 months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
19761 monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
19762 weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
19763 weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
19764 weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
19765 longDateFormat : {
19766 LT : 'HH:mm',
19767 LTS : 'HH:mm:ss',
19768 L : 'DD/MM/YYYY',
19769 LL : 'D MMMM YYYY',
19770 LLL : 'D MMMM YYYY HH:mm',
19771 LLLL : 'D MMMM YYYY, dddd HH:mm'
19772 },
19773 calendar : {
19774 sameDay : '[Bugun soat] LT [da]',
19775 nextDay : '[Ertaga] LT [da]',
19776 nextWeek : 'dddd [kuni soat] LT [da]',
19777 lastDay : '[Kecha soat] LT [da]',
19778 lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
19779 sameElse : 'L'
19780 },
19781 relativeTime : {
19782 future : 'Yaqin %s ichida',
19783 past : 'Bir necha %s oldin',
19784 s : 'soniya',
19785 ss : '%d soniya',
19786 m : 'bir daqiqa',
19787 mm : '%d daqiqa',
19788 h : 'bir soat',
19789 hh : '%d soat',
19790 d : 'bir kun',
19791 dd : '%d kun',
19792 M : 'bir oy',
19793 MM : '%d oy',
19794 y : 'bir yil',
19795 yy : '%d yil'
19796 },
19797 week : {
19798 dow : 1, // Monday is the first day of the week.
19799 doy : 7 // The week that contains Jan 1st is the first week of the year.
19800 }
19801 });
19802
19803 return uzLatn;
19804
19805})));
19806
19807
19808/***/ }),
19809/* 138 */
19810/***/ (function(module, exports, __webpack_require__) {
19811
19812//! moment.js locale configuration
19813
19814;(function (global, factory) {
19815 true ? factory(__webpack_require__(0)) :
19816 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19817 factory(global.moment)
19818}(this, (function (moment) { 'use strict';
19819
19820
19821 var uz = moment.defineLocale('uz', {
19822 months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
19823 monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
19824 weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
19825 weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
19826 weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
19827 longDateFormat : {
19828 LT : 'HH:mm',
19829 LTS : 'HH:mm:ss',
19830 L : 'DD/MM/YYYY',
19831 LL : 'D MMMM YYYY',
19832 LLL : 'D MMMM YYYY HH:mm',
19833 LLLL : 'D MMMM YYYY, dddd HH:mm'
19834 },
19835 calendar : {
19836 sameDay : '[Бугун соат] LT [да]',
19837 nextDay : '[Эртага] LT [да]',
19838 nextWeek : 'dddd [куни соат] LT [да]',
19839 lastDay : '[Кеча соат] LT [да]',
19840 lastWeek : '[Утган] dddd [куни соат] LT [да]',
19841 sameElse : 'L'
19842 },
19843 relativeTime : {
19844 future : 'Якин %s ичида',
19845 past : 'Бир неча %s олдин',
19846 s : 'фурсат',
19847 ss : '%d фурсат',
19848 m : 'бир дакика',
19849 mm : '%d дакика',
19850 h : 'бир соат',
19851 hh : '%d соат',
19852 d : 'бир кун',
19853 dd : '%d кун',
19854 M : 'бир ой',
19855 MM : '%d ой',
19856 y : 'бир йил',
19857 yy : '%d йил'
19858 },
19859 week : {
19860 dow : 1, // Monday is the first day of the week.
19861 doy : 7 // The week that contains Jan 4th is the first week of the year.
19862 }
19863 });
19864
19865 return uz;
19866
19867})));
19868
19869
19870/***/ }),
19871/* 139 */
19872/***/ (function(module, exports, __webpack_require__) {
19873
19874//! moment.js locale configuration
19875
19876;(function (global, factory) {
19877 true ? factory(__webpack_require__(0)) :
19878 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19879 factory(global.moment)
19880}(this, (function (moment) { 'use strict';
19881
19882
19883 var vi = moment.defineLocale('vi', {
19884 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('_'),
19885 monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
19886 monthsParseExact : true,
19887 weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
19888 weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
19889 weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
19890 weekdaysParseExact : true,
19891 meridiemParse: /sa|ch/i,
19892 isPM : function (input) {
19893 return /^ch$/i.test(input);
19894 },
19895 meridiem : function (hours, minutes, isLower) {
19896 if (hours < 12) {
19897 return isLower ? 'sa' : 'SA';
19898 } else {
19899 return isLower ? 'ch' : 'CH';
19900 }
19901 },
19902 longDateFormat : {
19903 LT : 'HH:mm',
19904 LTS : 'HH:mm:ss',
19905 L : 'DD/MM/YYYY',
19906 LL : 'D MMMM [năm] YYYY',
19907 LLL : 'D MMMM [năm] YYYY HH:mm',
19908 LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
19909 l : 'DD/M/YYYY',
19910 ll : 'D MMM YYYY',
19911 lll : 'D MMM YYYY HH:mm',
19912 llll : 'ddd, D MMM YYYY HH:mm'
19913 },
19914 calendar : {
19915 sameDay: '[Hôm nay lúc] LT',
19916 nextDay: '[Ngày mai lúc] LT',
19917 nextWeek: 'dddd [tuần tới lúc] LT',
19918 lastDay: '[Hôm qua lúc] LT',
19919 lastWeek: 'dddd [tuần rồi lúc] LT',
19920 sameElse: 'L'
19921 },
19922 relativeTime : {
19923 future : '%s tới',
19924 past : '%s trước',
19925 s : 'vài giây',
19926 ss : '%d giây' ,
19927 m : 'một phút',
19928 mm : '%d phút',
19929 h : 'một giờ',
19930 hh : '%d giờ',
19931 d : 'một ngày',
19932 dd : '%d ngày',
19933 M : 'một tháng',
19934 MM : '%d tháng',
19935 y : 'một năm',
19936 yy : '%d năm'
19937 },
19938 dayOfMonthOrdinalParse: /\d{1,2}/,
19939 ordinal : function (number) {
19940 return number;
19941 },
19942 week : {
19943 dow : 1, // Monday is the first day of the week.
19944 doy : 4 // The week that contains Jan 4th is the first week of the year.
19945 }
19946 });
19947
19948 return vi;
19949
19950})));
19951
19952
19953/***/ }),
19954/* 140 */
19955/***/ (function(module, exports, __webpack_require__) {
19956
19957//! moment.js locale configuration
19958
19959;(function (global, factory) {
19960 true ? factory(__webpack_require__(0)) :
19961 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
19962 factory(global.moment)
19963}(this, (function (moment) { 'use strict';
19964
19965
19966 var xPseudo = moment.defineLocale('x-pseudo', {
19967 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('_'),
19968 monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),
19969 monthsParseExact : true,
19970 weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
19971 weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
19972 weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
19973 weekdaysParseExact : true,
19974 longDateFormat : {
19975 LT : 'HH:mm',
19976 L : 'DD/MM/YYYY',
19977 LL : 'D MMMM YYYY',
19978 LLL : 'D MMMM YYYY HH:mm',
19979 LLLL : 'dddd, D MMMM YYYY HH:mm'
19980 },
19981 calendar : {
19982 sameDay : '[T~ódá~ý át] LT',
19983 nextDay : '[T~ómó~rró~w át] LT',
19984 nextWeek : 'dddd [át] LT',
19985 lastDay : '[Ý~ést~érdá~ý át] LT',
19986 lastWeek : '[L~ást] dddd [át] LT',
19987 sameElse : 'L'
19988 },
19989 relativeTime : {
19990 future : 'í~ñ %s',
19991 past : '%s á~gó',
19992 s : 'á ~féw ~sécó~ñds',
19993 ss : '%d s~écóñ~ds',
19994 m : 'á ~míñ~úté',
19995 mm : '%d m~íñú~tés',
19996 h : 'á~ñ hó~úr',
19997 hh : '%d h~óúrs',
19998 d : 'á ~dáý',
19999 dd : '%d d~áýs',
20000 M : 'á ~móñ~th',
20001 MM : '%d m~óñt~hs',
20002 y : 'á ~ýéár',
20003 yy : '%d ý~éárs'
20004 },
20005 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
20006 ordinal : function (number) {
20007 var b = number % 10,
20008 output = (~~(number % 100 / 10) === 1) ? 'th' :
20009 (b === 1) ? 'st' :
20010 (b === 2) ? 'nd' :
20011 (b === 3) ? 'rd' : 'th';
20012 return number + output;
20013 },
20014 week : {
20015 dow : 1, // Monday is the first day of the week.
20016 doy : 4 // The week that contains Jan 4th is the first week of the year.
20017 }
20018 });
20019
20020 return xPseudo;
20021
20022})));
20023
20024
20025/***/ }),
20026/* 141 */
20027/***/ (function(module, exports, __webpack_require__) {
20028
20029//! moment.js locale configuration
20030
20031;(function (global, factory) {
20032 true ? factory(__webpack_require__(0)) :
20033 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20034 factory(global.moment)
20035}(this, (function (moment) { 'use strict';
20036
20037
20038 var yo = moment.defineLocale('yo', {
20039 months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
20040 monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
20041 weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
20042 weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
20043 weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
20044 longDateFormat : {
20045 LT : 'h:mm A',
20046 LTS : 'h:mm:ss A',
20047 L : 'DD/MM/YYYY',
20048 LL : 'D MMMM YYYY',
20049 LLL : 'D MMMM YYYY h:mm A',
20050 LLLL : 'dddd, D MMMM YYYY h:mm A'
20051 },
20052 calendar : {
20053 sameDay : '[Ònì ni] LT',
20054 nextDay : '[Ọ̀la ni] LT',
20055 nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
20056 lastDay : '[Àna ni] LT',
20057 lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
20058 sameElse : 'L'
20059 },
20060 relativeTime : {
20061 future : 'ní %s',
20062 past : '%s kọjá',
20063 s : 'ìsẹjú aayá die',
20064 ss :'aayá %d',
20065 m : 'ìsẹjú kan',
20066 mm : 'ìsẹjú %d',
20067 h : 'wákati kan',
20068 hh : 'wákati %d',
20069 d : 'ọjọ́ kan',
20070 dd : 'ọjọ́ %d',
20071 M : 'osù kan',
20072 MM : 'osù %d',
20073 y : 'ọdún kan',
20074 yy : 'ọdún %d'
20075 },
20076 dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
20077 ordinal : 'ọjọ́ %d',
20078 week : {
20079 dow : 1, // Monday is the first day of the week.
20080 doy : 4 // The week that contains Jan 4th is the first week of the year.
20081 }
20082 });
20083
20084 return yo;
20085
20086})));
20087
20088
20089/***/ }),
20090/* 142 */
20091/***/ (function(module, exports, __webpack_require__) {
20092
20093//! moment.js locale configuration
20094
20095;(function (global, factory) {
20096 true ? factory(__webpack_require__(0)) :
20097 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20098 factory(global.moment)
20099}(this, (function (moment) { 'use strict';
20100
20101
20102 var zhCn = moment.defineLocale('zh-cn', {
20103 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
20104 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
20105 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
20106 weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
20107 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
20108 longDateFormat : {
20109 LT : 'HH:mm',
20110 LTS : 'HH:mm:ss',
20111 L : 'YYYY/MM/DD',
20112 LL : 'YYYY年M月D日',
20113 LLL : 'YYYY年M月D日Ah点mm分',
20114 LLLL : 'YYYY年M月D日ddddAh点mm分',
20115 l : 'YYYY/M/D',
20116 ll : 'YYYY年M月D日',
20117 lll : 'YYYY年M月D日 HH:mm',
20118 llll : 'YYYY年M月D日dddd HH:mm'
20119 },
20120 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
20121 meridiemHour: function (hour, meridiem) {
20122 if (hour === 12) {
20123 hour = 0;
20124 }
20125 if (meridiem === '凌晨' || meridiem === '早上' ||
20126 meridiem === '上午') {
20127 return hour;
20128 } else if (meridiem === '下午' || meridiem === '晚上') {
20129 return hour + 12;
20130 } else {
20131 // '中午'
20132 return hour >= 11 ? hour : hour + 12;
20133 }
20134 },
20135 meridiem : function (hour, minute, isLower) {
20136 var hm = hour * 100 + minute;
20137 if (hm < 600) {
20138 return '凌晨';
20139 } else if (hm < 900) {
20140 return '早上';
20141 } else if (hm < 1130) {
20142 return '上午';
20143 } else if (hm < 1230) {
20144 return '中午';
20145 } else if (hm < 1800) {
20146 return '下午';
20147 } else {
20148 return '晚上';
20149 }
20150 },
20151 calendar : {
20152 sameDay : '[今天]LT',
20153 nextDay : '[明天]LT',
20154 nextWeek : '[下]ddddLT',
20155 lastDay : '[昨天]LT',
20156 lastWeek : '[上]ddddLT',
20157 sameElse : 'L'
20158 },
20159 dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
20160 ordinal : function (number, period) {
20161 switch (period) {
20162 case 'd':
20163 case 'D':
20164 case 'DDD':
20165 return number + '日';
20166 case 'M':
20167 return number + '月';
20168 case 'w':
20169 case 'W':
20170 return number + '周';
20171 default:
20172 return number;
20173 }
20174 },
20175 relativeTime : {
20176 future : '%s内',
20177 past : '%s前',
20178 s : '几秒',
20179 ss : '%d 秒',
20180 m : '1 分钟',
20181 mm : '%d 分钟',
20182 h : '1 小时',
20183 hh : '%d 小时',
20184 d : '1 天',
20185 dd : '%d 天',
20186 M : '1 个月',
20187 MM : '%d 个月',
20188 y : '1 年',
20189 yy : '%d 年'
20190 },
20191 week : {
20192 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
20193 dow : 1, // Monday is the first day of the week.
20194 doy : 4 // The week that contains Jan 4th is the first week of the year.
20195 }
20196 });
20197
20198 return zhCn;
20199
20200})));
20201
20202
20203/***/ }),
20204/* 143 */
20205/***/ (function(module, exports, __webpack_require__) {
20206
20207//! moment.js locale configuration
20208
20209;(function (global, factory) {
20210 true ? factory(__webpack_require__(0)) :
20211 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20212 factory(global.moment)
20213}(this, (function (moment) { 'use strict';
20214
20215
20216 var zhHk = moment.defineLocale('zh-hk', {
20217 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
20218 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
20219 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
20220 weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
20221 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
20222 longDateFormat : {
20223 LT : 'HH:mm',
20224 LTS : 'HH:mm:ss',
20225 L : 'YYYY/MM/DD',
20226 LL : 'YYYY年M月D日',
20227 LLL : 'YYYY年M月D日 HH:mm',
20228 LLLL : 'YYYY年M月D日dddd HH:mm',
20229 l : 'YYYY/M/D',
20230 ll : 'YYYY年M月D日',
20231 lll : 'YYYY年M月D日 HH:mm',
20232 llll : 'YYYY年M月D日dddd HH:mm'
20233 },
20234 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
20235 meridiemHour : function (hour, meridiem) {
20236 if (hour === 12) {
20237 hour = 0;
20238 }
20239 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
20240 return hour;
20241 } else if (meridiem === '中午') {
20242 return hour >= 11 ? hour : hour + 12;
20243 } else if (meridiem === '下午' || meridiem === '晚上') {
20244 return hour + 12;
20245 }
20246 },
20247 meridiem : function (hour, minute, isLower) {
20248 var hm = hour * 100 + minute;
20249 if (hm < 600) {
20250 return '凌晨';
20251 } else if (hm < 900) {
20252 return '早上';
20253 } else if (hm < 1130) {
20254 return '上午';
20255 } else if (hm < 1230) {
20256 return '中午';
20257 } else if (hm < 1800) {
20258 return '下午';
20259 } else {
20260 return '晚上';
20261 }
20262 },
20263 calendar : {
20264 sameDay : '[今天]LT',
20265 nextDay : '[明天]LT',
20266 nextWeek : '[下]ddddLT',
20267 lastDay : '[昨天]LT',
20268 lastWeek : '[上]ddddLT',
20269 sameElse : 'L'
20270 },
20271 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
20272 ordinal : function (number, period) {
20273 switch (period) {
20274 case 'd' :
20275 case 'D' :
20276 case 'DDD' :
20277 return number + '日';
20278 case 'M' :
20279 return number + '月';
20280 case 'w' :
20281 case 'W' :
20282 return number + '週';
20283 default :
20284 return number;
20285 }
20286 },
20287 relativeTime : {
20288 future : '%s內',
20289 past : '%s前',
20290 s : '幾秒',
20291 ss : '%d 秒',
20292 m : '1 分鐘',
20293 mm : '%d 分鐘',
20294 h : '1 小時',
20295 hh : '%d 小時',
20296 d : '1 天',
20297 dd : '%d 天',
20298 M : '1 個月',
20299 MM : '%d 個月',
20300 y : '1 年',
20301 yy : '%d 年'
20302 }
20303 });
20304
20305 return zhHk;
20306
20307})));
20308
20309
20310/***/ }),
20311/* 144 */
20312/***/ (function(module, exports, __webpack_require__) {
20313
20314//! moment.js locale configuration
20315
20316;(function (global, factory) {
20317 true ? factory(__webpack_require__(0)) :
20318 typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20319 factory(global.moment)
20320}(this, (function (moment) { 'use strict';
20321
20322
20323 var zhTw = moment.defineLocale('zh-tw', {
20324 months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
20325 monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
20326 weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
20327 weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
20328 weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
20329 longDateFormat : {
20330 LT : 'HH:mm',
20331 LTS : 'HH:mm:ss',
20332 L : 'YYYY/MM/DD',
20333 LL : 'YYYY年M月D日',
20334 LLL : 'YYYY年M月D日 HH:mm',
20335 LLLL : 'YYYY年M月D日dddd HH:mm',
20336 l : 'YYYY/M/D',
20337 ll : 'YYYY年M月D日',
20338 lll : 'YYYY年M月D日 HH:mm',
20339 llll : 'YYYY年M月D日dddd HH:mm'
20340 },
20341 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
20342 meridiemHour : function (hour, meridiem) {
20343 if (hour === 12) {
20344 hour = 0;
20345 }
20346 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
20347 return hour;
20348 } else if (meridiem === '中午') {
20349 return hour >= 11 ? hour : hour + 12;
20350 } else if (meridiem === '下午' || meridiem === '晚上') {
20351 return hour + 12;
20352 }
20353 },
20354 meridiem : function (hour, minute, isLower) {
20355 var hm = hour * 100 + minute;
20356 if (hm < 600) {
20357 return '凌晨';
20358 } else if (hm < 900) {
20359 return '早上';
20360 } else if (hm < 1130) {
20361 return '上午';
20362 } else if (hm < 1230) {
20363 return '中午';
20364 } else if (hm < 1800) {
20365 return '下午';
20366 } else {
20367 return '晚上';
20368 }
20369 },
20370 calendar : {
20371 sameDay : '[今天] LT',
20372 nextDay : '[明天] LT',
20373 nextWeek : '[下]dddd LT',
20374 lastDay : '[昨天] LT',
20375 lastWeek : '[上]dddd LT',
20376 sameElse : 'L'
20377 },
20378 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
20379 ordinal : function (number, period) {
20380 switch (period) {
20381 case 'd' :
20382 case 'D' :
20383 case 'DDD' :
20384 return number + '日';
20385 case 'M' :
20386 return number + '月';
20387 case 'w' :
20388 case 'W' :
20389 return number + '週';
20390 default :
20391 return number;
20392 }
20393 },
20394 relativeTime : {
20395 future : '%s內',
20396 past : '%s前',
20397 s : '幾秒',
20398 ss : '%d 秒',
20399 m : '1 分鐘',
20400 mm : '%d 分鐘',
20401 h : '1 小時',
20402 hh : '%d 小時',
20403 d : '1 天',
20404 dd : '%d 天',
20405 M : '1 個月',
20406 MM : '%d 個月',
20407 y : '1 年',
20408 yy : '%d 年'
20409 }
20410 });
20411
20412 return zhTw;
20413
20414})));
20415
20416
20417/***/ }),
20418/* 145 */
20419/***/ (function(module, exports, __webpack_require__) {
20420
20421"use strict";
20422/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
20423//
20424// Permission is hereby granted, free of charge, to any person obtaining a
20425// copy of this software and associated documentation files (the
20426// "Software"), to deal in the Software without restriction, including
20427// without limitation the rights to use, copy, modify, merge, publish,
20428// distribute, sublicense, and/or sell copies of the Software, and to permit
20429// persons to whom the Software is furnished to do so, subject to the
20430// following conditions:
20431//
20432// The above copyright notice and this permission notice shall be included
20433// in all copies or substantial portions of the Software.
20434//
20435// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20436// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20437// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20438// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20439// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20440// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20441// USE OR OTHER DEALINGS IN THE SOFTWARE.
20442
20443
20444
20445/*<replacement>*/
20446
20447var pna = __webpack_require__(13);
20448/*</replacement>*/
20449
20450module.exports = Readable;
20451
20452/*<replacement>*/
20453var isArray = __webpack_require__(21);
20454/*</replacement>*/
20455
20456/*<replacement>*/
20457var Duplex;
20458/*</replacement>*/
20459
20460Readable.ReadableState = ReadableState;
20461
20462/*<replacement>*/
20463var EE = __webpack_require__(20).EventEmitter;
20464
20465var EElistenerCount = function (emitter, type) {
20466 return emitter.listeners(type).length;
20467};
20468/*</replacement>*/
20469
20470/*<replacement>*/
20471var Stream = __webpack_require__(149);
20472/*</replacement>*/
20473
20474/*<replacement>*/
20475
20476var Buffer = __webpack_require__(14).Buffer;
20477var OurUint8Array = global.Uint8Array || function () {};
20478function _uint8ArrayToBuffer(chunk) {
20479 return Buffer.from(chunk);
20480}
20481function _isUint8Array(obj) {
20482 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
20483}
20484
20485/*</replacement>*/
20486
20487/*<replacement>*/
20488var util = __webpack_require__(10);
20489util.inherits = __webpack_require__(5);
20490/*</replacement>*/
20491
20492/*<replacement>*/
20493var debugUtil = __webpack_require__(191);
20494var debug = void 0;
20495if (debugUtil && debugUtil.debuglog) {
20496 debug = debugUtil.debuglog('stream');
20497} else {
20498 debug = function () {};
20499}
20500/*</replacement>*/
20501
20502var BufferList = __webpack_require__(182);
20503var destroyImpl = __webpack_require__(148);
20504var StringDecoder;
20505
20506util.inherits(Readable, Stream);
20507
20508var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
20509
20510function prependListener(emitter, event, fn) {
20511 // Sadly this is not cacheable as some libraries bundle their own
20512 // event emitter implementation with them.
20513 if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
20514
20515 // This is a hack to make sure that our error handler is attached before any
20516 // userland ones. NEVER DO THIS. This is here only because this code needs
20517 // to continue to work with older versions of Node.js that do not include
20518 // the prependListener() method. The goal is to eventually remove this hack.
20519 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
20520}
20521
20522function ReadableState(options, stream) {
20523 Duplex = Duplex || __webpack_require__(8);
20524
20525 options = options || {};
20526
20527 // Duplex streams are both readable and writable, but share
20528 // the same options object.
20529 // However, some cases require setting options to different
20530 // values for the readable and the writable sides of the duplex stream.
20531 // These options can be provided separately as readableXXX and writableXXX.
20532 var isDuplex = stream instanceof Duplex;
20533
20534 // object stream flag. Used to make read(n) ignore n and to
20535 // make all the buffer merging and length checks go away
20536 this.objectMode = !!options.objectMode;
20537
20538 if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
20539
20540 // the point at which it stops calling _read() to fill the buffer
20541 // Note: 0 is a valid value, means "don't call _read preemptively ever"
20542 var hwm = options.highWaterMark;
20543 var readableHwm = options.readableHighWaterMark;
20544 var defaultHwm = this.objectMode ? 16 : 16 * 1024;
20545
20546 if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
20547
20548 // cast to ints.
20549 this.highWaterMark = Math.floor(this.highWaterMark);
20550
20551 // A linked list is used to store data chunks instead of an array because the
20552 // linked list can remove elements from the beginning faster than
20553 // array.shift()
20554 this.buffer = new BufferList();
20555 this.length = 0;
20556 this.pipes = null;
20557 this.pipesCount = 0;
20558 this.flowing = null;
20559 this.ended = false;
20560 this.endEmitted = false;
20561 this.reading = false;
20562
20563 // a flag to be able to tell if the event 'readable'/'data' is emitted
20564 // immediately, or on a later tick. We set this to true at first, because
20565 // any actions that shouldn't happen until "later" should generally also
20566 // not happen before the first read call.
20567 this.sync = true;
20568
20569 // whenever we return null, then we set a flag to say
20570 // that we're awaiting a 'readable' event emission.
20571 this.needReadable = false;
20572 this.emittedReadable = false;
20573 this.readableListening = false;
20574 this.resumeScheduled = false;
20575
20576 // has it been destroyed
20577 this.destroyed = false;
20578
20579 // Crypto is kind of old and crusty. Historically, its default string
20580 // encoding is 'binary' so we have to make this configurable.
20581 // Everything else in the universe uses 'utf8', though.
20582 this.defaultEncoding = options.defaultEncoding || 'utf8';
20583
20584 // the number of writers that are awaiting a drain event in .pipe()s
20585 this.awaitDrain = 0;
20586
20587 // if true, a maybeReadMore has been scheduled
20588 this.readingMore = false;
20589
20590 this.decoder = null;
20591 this.encoding = null;
20592 if (options.encoding) {
20593 if (!StringDecoder) StringDecoder = __webpack_require__(155).StringDecoder;
20594 this.decoder = new StringDecoder(options.encoding);
20595 this.encoding = options.encoding;
20596 }
20597}
20598
20599function Readable(options) {
20600 Duplex = Duplex || __webpack_require__(8);
20601
20602 if (!(this instanceof Readable)) return new Readable(options);
20603
20604 this._readableState = new ReadableState(options, this);
20605
20606 // legacy
20607 this.readable = true;
20608
20609 if (options) {
20610 if (typeof options.read === 'function') this._read = options.read;
20611
20612 if (typeof options.destroy === 'function') this._destroy = options.destroy;
20613 }
20614
20615 Stream.call(this);
20616}
20617
20618Object.defineProperty(Readable.prototype, 'destroyed', {
20619 get: function () {
20620 if (this._readableState === undefined) {
20621 return false;
20622 }
20623 return this._readableState.destroyed;
20624 },
20625 set: function (value) {
20626 // we ignore the value if the stream
20627 // has not been initialized yet
20628 if (!this._readableState) {
20629 return;
20630 }
20631
20632 // backward compatibility, the user is explicitly
20633 // managing destroyed
20634 this._readableState.destroyed = value;
20635 }
20636});
20637
20638Readable.prototype.destroy = destroyImpl.destroy;
20639Readable.prototype._undestroy = destroyImpl.undestroy;
20640Readable.prototype._destroy = function (err, cb) {
20641 this.push(null);
20642 cb(err);
20643};
20644
20645// Manually shove something into the read() buffer.
20646// This returns true if the highWaterMark has not been hit yet,
20647// similar to how Writable.write() returns true if you should
20648// write() some more.
20649Readable.prototype.push = function (chunk, encoding) {
20650 var state = this._readableState;
20651 var skipChunkCheck;
20652
20653 if (!state.objectMode) {
20654 if (typeof chunk === 'string') {
20655 encoding = encoding || state.defaultEncoding;
20656 if (encoding !== state.encoding) {
20657 chunk = Buffer.from(chunk, encoding);
20658 encoding = '';
20659 }
20660 skipChunkCheck = true;
20661 }
20662 } else {
20663 skipChunkCheck = true;
20664 }
20665
20666 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
20667};
20668
20669// Unshift should *always* be something directly out of read()
20670Readable.prototype.unshift = function (chunk) {
20671 return readableAddChunk(this, chunk, null, true, false);
20672};
20673
20674function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
20675 var state = stream._readableState;
20676 if (chunk === null) {
20677 state.reading = false;
20678 onEofChunk(stream, state);
20679 } else {
20680 var er;
20681 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
20682 if (er) {
20683 stream.emit('error', er);
20684 } else if (state.objectMode || chunk && chunk.length > 0) {
20685 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
20686 chunk = _uint8ArrayToBuffer(chunk);
20687 }
20688
20689 if (addToFront) {
20690 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
20691 } else if (state.ended) {
20692 stream.emit('error', new Error('stream.push() after EOF'));
20693 } else {
20694 state.reading = false;
20695 if (state.decoder && !encoding) {
20696 chunk = state.decoder.write(chunk);
20697 if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
20698 } else {
20699 addChunk(stream, state, chunk, false);
20700 }
20701 }
20702 } else if (!addToFront) {
20703 state.reading = false;
20704 }
20705 }
20706
20707 return needMoreData(state);
20708}
20709
20710function addChunk(stream, state, chunk, addToFront) {
20711 if (state.flowing && state.length === 0 && !state.sync) {
20712 stream.emit('data', chunk);
20713 stream.read(0);
20714 } else {
20715 // update the buffer info.
20716 state.length += state.objectMode ? 1 : chunk.length;
20717 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
20718
20719 if (state.needReadable) emitReadable(stream);
20720 }
20721 maybeReadMore(stream, state);
20722}
20723
20724function chunkInvalid(state, chunk) {
20725 var er;
20726 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
20727 er = new TypeError('Invalid non-string/buffer chunk');
20728 }
20729 return er;
20730}
20731
20732// if it's past the high water mark, we can push in some more.
20733// Also, if we have no data yet, we can stand some
20734// more bytes. This is to work around cases where hwm=0,
20735// such as the repl. Also, if the push() triggered a
20736// readable event, and the user called read(largeNumber) such that
20737// needReadable was set, then we ought to push more, so that another
20738// 'readable' event will be triggered.
20739function needMoreData(state) {
20740 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
20741}
20742
20743Readable.prototype.isPaused = function () {
20744 return this._readableState.flowing === false;
20745};
20746
20747// backwards compatibility.
20748Readable.prototype.setEncoding = function (enc) {
20749 if (!StringDecoder) StringDecoder = __webpack_require__(155).StringDecoder;
20750 this._readableState.decoder = new StringDecoder(enc);
20751 this._readableState.encoding = enc;
20752 return this;
20753};
20754
20755// Don't raise the hwm > 8MB
20756var MAX_HWM = 0x800000;
20757function computeNewHighWaterMark(n) {
20758 if (n >= MAX_HWM) {
20759 n = MAX_HWM;
20760 } else {
20761 // Get the next highest power of 2 to prevent increasing hwm excessively in
20762 // tiny amounts
20763 n--;
20764 n |= n >>> 1;
20765 n |= n >>> 2;
20766 n |= n >>> 4;
20767 n |= n >>> 8;
20768 n |= n >>> 16;
20769 n++;
20770 }
20771 return n;
20772}
20773
20774// This function is designed to be inlinable, so please take care when making
20775// changes to the function body.
20776function howMuchToRead(n, state) {
20777 if (n <= 0 || state.length === 0 && state.ended) return 0;
20778 if (state.objectMode) return 1;
20779 if (n !== n) {
20780 // Only flow one buffer at a time
20781 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
20782 }
20783 // If we're asking for more than the current hwm, then raise the hwm.
20784 if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
20785 if (n <= state.length) return n;
20786 // Don't have enough
20787 if (!state.ended) {
20788 state.needReadable = true;
20789 return 0;
20790 }
20791 return state.length;
20792}
20793
20794// you can override either this method, or the async _read(n) below.
20795Readable.prototype.read = function (n) {
20796 debug('read', n);
20797 n = parseInt(n, 10);
20798 var state = this._readableState;
20799 var nOrig = n;
20800
20801 if (n !== 0) state.emittedReadable = false;
20802
20803 // if we're doing read(0) to trigger a readable event, but we
20804 // already have a bunch of data in the buffer, then just trigger
20805 // the 'readable' event and move on.
20806 if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
20807 debug('read: emitReadable', state.length, state.ended);
20808 if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
20809 return null;
20810 }
20811
20812 n = howMuchToRead(n, state);
20813
20814 // if we've ended, and we're now clear, then finish it up.
20815 if (n === 0 && state.ended) {
20816 if (state.length === 0) endReadable(this);
20817 return null;
20818 }
20819
20820 // All the actual chunk generation logic needs to be
20821 // *below* the call to _read. The reason is that in certain
20822 // synthetic stream cases, such as passthrough streams, _read
20823 // may be a completely synchronous operation which may change
20824 // the state of the read buffer, providing enough data when
20825 // before there was *not* enough.
20826 //
20827 // So, the steps are:
20828 // 1. Figure out what the state of things will be after we do
20829 // a read from the buffer.
20830 //
20831 // 2. If that resulting state will trigger a _read, then call _read.
20832 // Note that this may be asynchronous, or synchronous. Yes, it is
20833 // deeply ugly to write APIs this way, but that still doesn't mean
20834 // that the Readable class should behave improperly, as streams are
20835 // designed to be sync/async agnostic.
20836 // Take note if the _read call is sync or async (ie, if the read call
20837 // has returned yet), so that we know whether or not it's safe to emit
20838 // 'readable' etc.
20839 //
20840 // 3. Actually pull the requested chunks out of the buffer and return.
20841
20842 // if we need a readable event, then we need to do some reading.
20843 var doRead = state.needReadable;
20844 debug('need readable', doRead);
20845
20846 // if we currently have less than the highWaterMark, then also read some
20847 if (state.length === 0 || state.length - n < state.highWaterMark) {
20848 doRead = true;
20849 debug('length less than watermark', doRead);
20850 }
20851
20852 // however, if we've ended, then there's no point, and if we're already
20853 // reading, then it's unnecessary.
20854 if (state.ended || state.reading) {
20855 doRead = false;
20856 debug('reading or ended', doRead);
20857 } else if (doRead) {
20858 debug('do read');
20859 state.reading = true;
20860 state.sync = true;
20861 // if the length is currently zero, then we *need* a readable event.
20862 if (state.length === 0) state.needReadable = true;
20863 // call internal read method
20864 this._read(state.highWaterMark);
20865 state.sync = false;
20866 // If _read pushed data synchronously, then `reading` will be false,
20867 // and we need to re-evaluate how much data we can return to the user.
20868 if (!state.reading) n = howMuchToRead(nOrig, state);
20869 }
20870
20871 var ret;
20872 if (n > 0) ret = fromList(n, state);else ret = null;
20873
20874 if (ret === null) {
20875 state.needReadable = true;
20876 n = 0;
20877 } else {
20878 state.length -= n;
20879 }
20880
20881 if (state.length === 0) {
20882 // If we have nothing in the buffer, then we want to know
20883 // as soon as we *do* get something into the buffer.
20884 if (!state.ended) state.needReadable = true;
20885
20886 // If we tried to read() past the EOF, then emit end on the next tick.
20887 if (nOrig !== n && state.ended) endReadable(this);
20888 }
20889
20890 if (ret !== null) this.emit('data', ret);
20891
20892 return ret;
20893};
20894
20895function onEofChunk(stream, state) {
20896 if (state.ended) return;
20897 if (state.decoder) {
20898 var chunk = state.decoder.end();
20899 if (chunk && chunk.length) {
20900 state.buffer.push(chunk);
20901 state.length += state.objectMode ? 1 : chunk.length;
20902 }
20903 }
20904 state.ended = true;
20905
20906 // emit 'readable' now to make sure it gets picked up.
20907 emitReadable(stream);
20908}
20909
20910// Don't emit readable right away in sync mode, because this can trigger
20911// another read() call => stack overflow. This way, it might trigger
20912// a nextTick recursion warning, but that's not so bad.
20913function emitReadable(stream) {
20914 var state = stream._readableState;
20915 state.needReadable = false;
20916 if (!state.emittedReadable) {
20917 debug('emitReadable', state.flowing);
20918 state.emittedReadable = true;
20919 if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
20920 }
20921}
20922
20923function emitReadable_(stream) {
20924 debug('emit readable');
20925 stream.emit('readable');
20926 flow(stream);
20927}
20928
20929// at this point, the user has presumably seen the 'readable' event,
20930// and called read() to consume some data. that may have triggered
20931// in turn another _read(n) call, in which case reading = true if
20932// it's in progress.
20933// However, if we're not ended, or reading, and the length < hwm,
20934// then go ahead and try to read some more preemptively.
20935function maybeReadMore(stream, state) {
20936 if (!state.readingMore) {
20937 state.readingMore = true;
20938 pna.nextTick(maybeReadMore_, stream, state);
20939 }
20940}
20941
20942function maybeReadMore_(stream, state) {
20943 var len = state.length;
20944 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
20945 debug('maybeReadMore read 0');
20946 stream.read(0);
20947 if (len === state.length)
20948 // didn't get any data, stop spinning.
20949 break;else len = state.length;
20950 }
20951 state.readingMore = false;
20952}
20953
20954// abstract method. to be overridden in specific implementation classes.
20955// call cb(er, data) where data is <= n in length.
20956// for virtual (non-string, non-buffer) streams, "length" is somewhat
20957// arbitrary, and perhaps not very meaningful.
20958Readable.prototype._read = function (n) {
20959 this.emit('error', new Error('_read() is not implemented'));
20960};
20961
20962Readable.prototype.pipe = function (dest, pipeOpts) {
20963 var src = this;
20964 var state = this._readableState;
20965
20966 switch (state.pipesCount) {
20967 case 0:
20968 state.pipes = dest;
20969 break;
20970 case 1:
20971 state.pipes = [state.pipes, dest];
20972 break;
20973 default:
20974 state.pipes.push(dest);
20975 break;
20976 }
20977 state.pipesCount += 1;
20978 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
20979
20980 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
20981
20982 var endFn = doEnd ? onend : unpipe;
20983 if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
20984
20985 dest.on('unpipe', onunpipe);
20986 function onunpipe(readable, unpipeInfo) {
20987 debug('onunpipe');
20988 if (readable === src) {
20989 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
20990 unpipeInfo.hasUnpiped = true;
20991 cleanup();
20992 }
20993 }
20994 }
20995
20996 function onend() {
20997 debug('onend');
20998 dest.end();
20999 }
21000
21001 // when the dest drains, it reduces the awaitDrain counter
21002 // on the source. This would be more elegant with a .once()
21003 // handler in flow(), but adding and removing repeatedly is
21004 // too slow.
21005 var ondrain = pipeOnDrain(src);
21006 dest.on('drain', ondrain);
21007
21008 var cleanedUp = false;
21009 function cleanup() {
21010 debug('cleanup');
21011 // cleanup event handlers once the pipe is broken
21012 dest.removeListener('close', onclose);
21013 dest.removeListener('finish', onfinish);
21014 dest.removeListener('drain', ondrain);
21015 dest.removeListener('error', onerror);
21016 dest.removeListener('unpipe', onunpipe);
21017 src.removeListener('end', onend);
21018 src.removeListener('end', unpipe);
21019 src.removeListener('data', ondata);
21020
21021 cleanedUp = true;
21022
21023 // if the reader is waiting for a drain event from this
21024 // specific writer, then it would cause it to never start
21025 // flowing again.
21026 // So, if this is awaiting a drain, then we just call it now.
21027 // If we don't know, then assume that we are waiting for one.
21028 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
21029 }
21030
21031 // If the user pushes more data while we're writing to dest then we'll end up
21032 // in ondata again. However, we only want to increase awaitDrain once because
21033 // dest will only emit one 'drain' event for the multiple writes.
21034 // => Introduce a guard on increasing awaitDrain.
21035 var increasedAwaitDrain = false;
21036 src.on('data', ondata);
21037 function ondata(chunk) {
21038 debug('ondata');
21039 increasedAwaitDrain = false;
21040 var ret = dest.write(chunk);
21041 if (false === ret && !increasedAwaitDrain) {
21042 // If the user unpiped during `dest.write()`, it is possible
21043 // to get stuck in a permanently paused state if that write
21044 // also returned false.
21045 // => Check whether `dest` is still a piping destination.
21046 if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
21047 debug('false write response, pause', src._readableState.awaitDrain);
21048 src._readableState.awaitDrain++;
21049 increasedAwaitDrain = true;
21050 }
21051 src.pause();
21052 }
21053 }
21054
21055 // if the dest has an error, then stop piping into it.
21056 // however, don't suppress the throwing behavior for this.
21057 function onerror(er) {
21058 debug('onerror', er);
21059 unpipe();
21060 dest.removeListener('error', onerror);
21061 if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
21062 }
21063
21064 // Make sure our error handler is attached before userland ones.
21065 prependListener(dest, 'error', onerror);
21066
21067 // Both close and finish should trigger unpipe, but only once.
21068 function onclose() {
21069 dest.removeListener('finish', onfinish);
21070 unpipe();
21071 }
21072 dest.once('close', onclose);
21073 function onfinish() {
21074 debug('onfinish');
21075 dest.removeListener('close', onclose);
21076 unpipe();
21077 }
21078 dest.once('finish', onfinish);
21079
21080 function unpipe() {
21081 debug('unpipe');
21082 src.unpipe(dest);
21083 }
21084
21085 // tell the dest that it's being piped to
21086 dest.emit('pipe', src);
21087
21088 // start the flow if it hasn't been started already.
21089 if (!state.flowing) {
21090 debug('pipe resume');
21091 src.resume();
21092 }
21093
21094 return dest;
21095};
21096
21097function pipeOnDrain(src) {
21098 return function () {
21099 var state = src._readableState;
21100 debug('pipeOnDrain', state.awaitDrain);
21101 if (state.awaitDrain) state.awaitDrain--;
21102 if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
21103 state.flowing = true;
21104 flow(src);
21105 }
21106 };
21107}
21108
21109Readable.prototype.unpipe = function (dest) {
21110 var state = this._readableState;
21111 var unpipeInfo = { hasUnpiped: false };
21112
21113 // if we're not piping anywhere, then do nothing.
21114 if (state.pipesCount === 0) return this;
21115
21116 // just one destination. most common case.
21117 if (state.pipesCount === 1) {
21118 // passed in one, but it's not the right one.
21119 if (dest && dest !== state.pipes) return this;
21120
21121 if (!dest) dest = state.pipes;
21122
21123 // got a match.
21124 state.pipes = null;
21125 state.pipesCount = 0;
21126 state.flowing = false;
21127 if (dest) dest.emit('unpipe', this, unpipeInfo);
21128 return this;
21129 }
21130
21131 // slow case. multiple pipe destinations.
21132
21133 if (!dest) {
21134 // remove all.
21135 var dests = state.pipes;
21136 var len = state.pipesCount;
21137 state.pipes = null;
21138 state.pipesCount = 0;
21139 state.flowing = false;
21140
21141 for (var i = 0; i < len; i++) {
21142 dests[i].emit('unpipe', this, unpipeInfo);
21143 }return this;
21144 }
21145
21146 // try to find the right one.
21147 var index = indexOf(state.pipes, dest);
21148 if (index === -1) return this;
21149
21150 state.pipes.splice(index, 1);
21151 state.pipesCount -= 1;
21152 if (state.pipesCount === 1) state.pipes = state.pipes[0];
21153
21154 dest.emit('unpipe', this, unpipeInfo);
21155
21156 return this;
21157};
21158
21159// set up data events if they are asked for
21160// Ensure readable listeners eventually get something
21161Readable.prototype.on = function (ev, fn) {
21162 var res = Stream.prototype.on.call(this, ev, fn);
21163
21164 if (ev === 'data') {
21165 // Start flowing on next tick if stream isn't explicitly paused
21166 if (this._readableState.flowing !== false) this.resume();
21167 } else if (ev === 'readable') {
21168 var state = this._readableState;
21169 if (!state.endEmitted && !state.readableListening) {
21170 state.readableListening = state.needReadable = true;
21171 state.emittedReadable = false;
21172 if (!state.reading) {
21173 pna.nextTick(nReadingNextTick, this);
21174 } else if (state.length) {
21175 emitReadable(this);
21176 }
21177 }
21178 }
21179
21180 return res;
21181};
21182Readable.prototype.addListener = Readable.prototype.on;
21183
21184function nReadingNextTick(self) {
21185 debug('readable nexttick read 0');
21186 self.read(0);
21187}
21188
21189// pause() and resume() are remnants of the legacy readable stream API
21190// If the user uses them, then switch into old mode.
21191Readable.prototype.resume = function () {
21192 var state = this._readableState;
21193 if (!state.flowing) {
21194 debug('resume');
21195 state.flowing = true;
21196 resume(this, state);
21197 }
21198 return this;
21199};
21200
21201function resume(stream, state) {
21202 if (!state.resumeScheduled) {
21203 state.resumeScheduled = true;
21204 pna.nextTick(resume_, stream, state);
21205 }
21206}
21207
21208function resume_(stream, state) {
21209 if (!state.reading) {
21210 debug('resume read 0');
21211 stream.read(0);
21212 }
21213
21214 state.resumeScheduled = false;
21215 state.awaitDrain = 0;
21216 stream.emit('resume');
21217 flow(stream);
21218 if (state.flowing && !state.reading) stream.read(0);
21219}
21220
21221Readable.prototype.pause = function () {
21222 debug('call pause flowing=%j', this._readableState.flowing);
21223 if (false !== this._readableState.flowing) {
21224 debug('pause');
21225 this._readableState.flowing = false;
21226 this.emit('pause');
21227 }
21228 return this;
21229};
21230
21231function flow(stream) {
21232 var state = stream._readableState;
21233 debug('flow', state.flowing);
21234 while (state.flowing && stream.read() !== null) {}
21235}
21236
21237// wrap an old-style stream as the async data source.
21238// This is *not* part of the readable stream interface.
21239// It is an ugly unfortunate mess of history.
21240Readable.prototype.wrap = function (stream) {
21241 var _this = this;
21242
21243 var state = this._readableState;
21244 var paused = false;
21245
21246 stream.on('end', function () {
21247 debug('wrapped end');
21248 if (state.decoder && !state.ended) {
21249 var chunk = state.decoder.end();
21250 if (chunk && chunk.length) _this.push(chunk);
21251 }
21252
21253 _this.push(null);
21254 });
21255
21256 stream.on('data', function (chunk) {
21257 debug('wrapped data');
21258 if (state.decoder) chunk = state.decoder.write(chunk);
21259
21260 // don't skip over falsy values in objectMode
21261 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
21262
21263 var ret = _this.push(chunk);
21264 if (!ret) {
21265 paused = true;
21266 stream.pause();
21267 }
21268 });
21269
21270 // proxy all the other methods.
21271 // important when wrapping filters and duplexes.
21272 for (var i in stream) {
21273 if (this[i] === undefined && typeof stream[i] === 'function') {
21274 this[i] = function (method) {
21275 return function () {
21276 return stream[method].apply(stream, arguments);
21277 };
21278 }(i);
21279 }
21280 }
21281
21282 // proxy certain important events.
21283 for (var n = 0; n < kProxyEvents.length; n++) {
21284 stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
21285 }
21286
21287 // when we try to consume some more bytes, simply unpause the
21288 // underlying stream.
21289 this._read = function (n) {
21290 debug('wrapped _read', n);
21291 if (paused) {
21292 paused = false;
21293 stream.resume();
21294 }
21295 };
21296
21297 return this;
21298};
21299
21300Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
21301 // making it explicit this property is not enumerable
21302 // because otherwise some prototype manipulation in
21303 // userland will fail
21304 enumerable: false,
21305 get: function () {
21306 return this._readableState.highWaterMark;
21307 }
21308});
21309
21310// exposed for testing purposes only.
21311Readable._fromList = fromList;
21312
21313// Pluck off n bytes from an array of buffers.
21314// Length is the combined lengths of all the buffers in the list.
21315// This function is designed to be inlinable, so please take care when making
21316// changes to the function body.
21317function fromList(n, state) {
21318 // nothing buffered
21319 if (state.length === 0) return null;
21320
21321 var ret;
21322 if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
21323 // read it all, truncate the list
21324 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
21325 state.buffer.clear();
21326 } else {
21327 // read part of list
21328 ret = fromListPartial(n, state.buffer, state.decoder);
21329 }
21330
21331 return ret;
21332}
21333
21334// Extracts only enough buffered data to satisfy the amount requested.
21335// This function is designed to be inlinable, so please take care when making
21336// changes to the function body.
21337function fromListPartial(n, list, hasStrings) {
21338 var ret;
21339 if (n < list.head.data.length) {
21340 // slice is the same for buffers and strings
21341 ret = list.head.data.slice(0, n);
21342 list.head.data = list.head.data.slice(n);
21343 } else if (n === list.head.data.length) {
21344 // first chunk is a perfect match
21345 ret = list.shift();
21346 } else {
21347 // result spans more than one buffer
21348 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
21349 }
21350 return ret;
21351}
21352
21353// Copies a specified amount of characters from the list of buffered data
21354// chunks.
21355// This function is designed to be inlinable, so please take care when making
21356// changes to the function body.
21357function copyFromBufferString(n, list) {
21358 var p = list.head;
21359 var c = 1;
21360 var ret = p.data;
21361 n -= ret.length;
21362 while (p = p.next) {
21363 var str = p.data;
21364 var nb = n > str.length ? str.length : n;
21365 if (nb === str.length) ret += str;else ret += str.slice(0, n);
21366 n -= nb;
21367 if (n === 0) {
21368 if (nb === str.length) {
21369 ++c;
21370 if (p.next) list.head = p.next;else list.head = list.tail = null;
21371 } else {
21372 list.head = p;
21373 p.data = str.slice(nb);
21374 }
21375 break;
21376 }
21377 ++c;
21378 }
21379 list.length -= c;
21380 return ret;
21381}
21382
21383// Copies a specified amount of bytes from the list of buffered data chunks.
21384// This function is designed to be inlinable, so please take care when making
21385// changes to the function body.
21386function copyFromBuffer(n, list) {
21387 var ret = Buffer.allocUnsafe(n);
21388 var p = list.head;
21389 var c = 1;
21390 p.data.copy(ret);
21391 n -= p.data.length;
21392 while (p = p.next) {
21393 var buf = p.data;
21394 var nb = n > buf.length ? buf.length : n;
21395 buf.copy(ret, ret.length - n, 0, nb);
21396 n -= nb;
21397 if (n === 0) {
21398 if (nb === buf.length) {
21399 ++c;
21400 if (p.next) list.head = p.next;else list.head = list.tail = null;
21401 } else {
21402 list.head = p;
21403 p.data = buf.slice(nb);
21404 }
21405 break;
21406 }
21407 ++c;
21408 }
21409 list.length -= c;
21410 return ret;
21411}
21412
21413function endReadable(stream) {
21414 var state = stream._readableState;
21415
21416 // If we get here before consuming all the bytes, then that is a
21417 // bug in node. Should never happen.
21418 if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
21419
21420 if (!state.endEmitted) {
21421 state.ended = true;
21422 pna.nextTick(endReadableNT, state, stream);
21423 }
21424}
21425
21426function endReadableNT(state, stream) {
21427 // Check that we didn't get one last unshift.
21428 if (!state.endEmitted && state.length === 0) {
21429 state.endEmitted = true;
21430 stream.readable = false;
21431 stream.emit('end');
21432 }
21433}
21434
21435function indexOf(xs, x) {
21436 for (var i = 0, l = xs.length; i < l; i++) {
21437 if (xs[i] === x) return i;
21438 }
21439 return -1;
21440}
21441/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)))
21442
21443/***/ }),
21444/* 146 */
21445/***/ (function(module, exports, __webpack_require__) {
21446
21447"use strict";
21448// Copyright Joyent, Inc. and other Node contributors.
21449//
21450// Permission is hereby granted, free of charge, to any person obtaining a
21451// copy of this software and associated documentation files (the
21452// "Software"), to deal in the Software without restriction, including
21453// without limitation the rights to use, copy, modify, merge, publish,
21454// distribute, sublicense, and/or sell copies of the Software, and to permit
21455// persons to whom the Software is furnished to do so, subject to the
21456// following conditions:
21457//
21458// The above copyright notice and this permission notice shall be included
21459// in all copies or substantial portions of the Software.
21460//
21461// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21462// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21463// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
21464// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
21465// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21466// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21467// USE OR OTHER DEALINGS IN THE SOFTWARE.
21468
21469// a transform stream is a readable/writable stream where you do
21470// something with the data. Sometimes it's called a "filter",
21471// but that's not a great name for it, since that implies a thing where
21472// some bits pass through, and others are simply ignored. (That would
21473// be a valid example of a transform, of course.)
21474//
21475// While the output is causally related to the input, it's not a
21476// necessarily symmetric or synchronous transformation. For example,
21477// a zlib stream might take multiple plain-text writes(), and then
21478// emit a single compressed chunk some time in the future.
21479//
21480// Here's how this works:
21481//
21482// The Transform stream has all the aspects of the readable and writable
21483// stream classes. When you write(chunk), that calls _write(chunk,cb)
21484// internally, and returns false if there's a lot of pending writes
21485// buffered up. When you call read(), that calls _read(n) until
21486// there's enough pending readable data buffered up.
21487//
21488// In a transform stream, the written data is placed in a buffer. When
21489// _read(n) is called, it transforms the queued up data, calling the
21490// buffered _write cb's as it consumes chunks. If consuming a single
21491// written chunk would result in multiple output chunks, then the first
21492// outputted bit calls the readcb, and subsequent chunks just go into
21493// the read buffer, and will cause it to emit 'readable' if necessary.
21494//
21495// This way, back-pressure is actually determined by the reading side,
21496// since _read has to be called to start processing a new chunk. However,
21497// a pathological inflate type of transform can cause excessive buffering
21498// here. For example, imagine a stream where every byte of input is
21499// interpreted as an integer from 0-255, and then results in that many
21500// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
21501// 1kb of data being output. In this case, you could write a very small
21502// amount of input, and end up with a very large amount of output. In
21503// such a pathological inflating mechanism, there'd be no way to tell
21504// the system to stop doing the transform. A single 4MB write could
21505// cause the system to run out of memory.
21506//
21507// However, even in such a pathological case, only a single written chunk
21508// would be consumed, and then the rest would wait (un-transformed) until
21509// the results of the previous transformed chunk were consumed.
21510
21511
21512
21513module.exports = Transform;
21514
21515var Duplex = __webpack_require__(8);
21516
21517/*<replacement>*/
21518var util = __webpack_require__(10);
21519util.inherits = __webpack_require__(5);
21520/*</replacement>*/
21521
21522util.inherits(Transform, Duplex);
21523
21524function afterTransform(er, data) {
21525 var ts = this._transformState;
21526 ts.transforming = false;
21527
21528 var cb = ts.writecb;
21529
21530 if (!cb) {
21531 return this.emit('error', new Error('write callback called multiple times'));
21532 }
21533
21534 ts.writechunk = null;
21535 ts.writecb = null;
21536
21537 if (data != null) // single equals check for both `null` and `undefined`
21538 this.push(data);
21539
21540 cb(er);
21541
21542 var rs = this._readableState;
21543 rs.reading = false;
21544 if (rs.needReadable || rs.length < rs.highWaterMark) {
21545 this._read(rs.highWaterMark);
21546 }
21547}
21548
21549function Transform(options) {
21550 if (!(this instanceof Transform)) return new Transform(options);
21551
21552 Duplex.call(this, options);
21553
21554 this._transformState = {
21555 afterTransform: afterTransform.bind(this),
21556 needTransform: false,
21557 transforming: false,
21558 writecb: null,
21559 writechunk: null,
21560 writeencoding: null
21561 };
21562
21563 // start out asking for a readable event once data is transformed.
21564 this._readableState.needReadable = true;
21565
21566 // we have implemented the _read method, and done the other things
21567 // that Readable wants before the first _read call, so unset the
21568 // sync guard flag.
21569 this._readableState.sync = false;
21570
21571 if (options) {
21572 if (typeof options.transform === 'function') this._transform = options.transform;
21573
21574 if (typeof options.flush === 'function') this._flush = options.flush;
21575 }
21576
21577 // When the writable side finishes, then flush out anything remaining.
21578 this.on('prefinish', prefinish);
21579}
21580
21581function prefinish() {
21582 var _this = this;
21583
21584 if (typeof this._flush === 'function') {
21585 this._flush(function (er, data) {
21586 done(_this, er, data);
21587 });
21588 } else {
21589 done(this, null, null);
21590 }
21591}
21592
21593Transform.prototype.push = function (chunk, encoding) {
21594 this._transformState.needTransform = false;
21595 return Duplex.prototype.push.call(this, chunk, encoding);
21596};
21597
21598// This is the part where you do stuff!
21599// override this function in implementation classes.
21600// 'chunk' is an input chunk.
21601//
21602// Call `push(newChunk)` to pass along transformed output
21603// to the readable side. You may call 'push' zero or more times.
21604//
21605// Call `cb(err)` when you are done with this chunk. If you pass
21606// an error, then that'll put the hurt on the whole operation. If you
21607// never call cb(), then you'll never get another chunk.
21608Transform.prototype._transform = function (chunk, encoding, cb) {
21609 throw new Error('_transform() is not implemented');
21610};
21611
21612Transform.prototype._write = function (chunk, encoding, cb) {
21613 var ts = this._transformState;
21614 ts.writecb = cb;
21615 ts.writechunk = chunk;
21616 ts.writeencoding = encoding;
21617 if (!ts.transforming) {
21618 var rs = this._readableState;
21619 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
21620 }
21621};
21622
21623// Doesn't matter what the args are here.
21624// _transform does all the work.
21625// That we got here means that the readable side wants more data.
21626Transform.prototype._read = function (n) {
21627 var ts = this._transformState;
21628
21629 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
21630 ts.transforming = true;
21631 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
21632 } else {
21633 // mark that we need a transform, so that any data that comes in
21634 // will get processed, now that we've asked for it.
21635 ts.needTransform = true;
21636 }
21637};
21638
21639Transform.prototype._destroy = function (err, cb) {
21640 var _this2 = this;
21641
21642 Duplex.prototype._destroy.call(this, err, function (err2) {
21643 cb(err2);
21644 _this2.emit('close');
21645 });
21646};
21647
21648function done(stream, er, data) {
21649 if (er) return stream.emit('error', er);
21650
21651 if (data != null) // single equals check for both `null` and `undefined`
21652 stream.push(data);
21653
21654 // if there's nothing in the write buffer, then that means
21655 // that nothing more will ever be provided
21656 if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
21657
21658 if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
21659
21660 return stream.push(null);
21661}
21662
21663/***/ }),
21664/* 147 */
21665/***/ (function(module, exports, __webpack_require__) {
21666
21667"use strict";
21668/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
21669//
21670// Permission is hereby granted, free of charge, to any person obtaining a
21671// copy of this software and associated documentation files (the
21672// "Software"), to deal in the Software without restriction, including
21673// without limitation the rights to use, copy, modify, merge, publish,
21674// distribute, sublicense, and/or sell copies of the Software, and to permit
21675// persons to whom the Software is furnished to do so, subject to the
21676// following conditions:
21677//
21678// The above copyright notice and this permission notice shall be included
21679// in all copies or substantial portions of the Software.
21680//
21681// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21682// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21683// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
21684// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
21685// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21686// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21687// USE OR OTHER DEALINGS IN THE SOFTWARE.
21688
21689// A bit simpler than readable streams.
21690// Implement an async ._write(chunk, encoding, cb), and it'll handle all
21691// the drain event emission and buffering.
21692
21693
21694
21695/*<replacement>*/
21696
21697var pna = __webpack_require__(13);
21698/*</replacement>*/
21699
21700module.exports = Writable;
21701
21702/* <replacement> */
21703function WriteReq(chunk, encoding, cb) {
21704 this.chunk = chunk;
21705 this.encoding = encoding;
21706 this.callback = cb;
21707 this.next = null;
21708}
21709
21710// It seems a linked list but it is not
21711// there will be only 2 of these for each stream
21712function CorkedRequest(state) {
21713 var _this = this;
21714
21715 this.next = null;
21716 this.entry = null;
21717 this.finish = function () {
21718 onCorkedFinish(_this, state);
21719 };
21720}
21721/* </replacement> */
21722
21723/*<replacement>*/
21724var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
21725/*</replacement>*/
21726
21727/*<replacement>*/
21728var Duplex;
21729/*</replacement>*/
21730
21731Writable.WritableState = WritableState;
21732
21733/*<replacement>*/
21734var util = __webpack_require__(10);
21735util.inherits = __webpack_require__(5);
21736/*</replacement>*/
21737
21738/*<replacement>*/
21739var internalUtil = {
21740 deprecate: __webpack_require__(188)
21741};
21742/*</replacement>*/
21743
21744/*<replacement>*/
21745var Stream = __webpack_require__(149);
21746/*</replacement>*/
21747
21748/*<replacement>*/
21749
21750var Buffer = __webpack_require__(14).Buffer;
21751var OurUint8Array = global.Uint8Array || function () {};
21752function _uint8ArrayToBuffer(chunk) {
21753 return Buffer.from(chunk);
21754}
21755function _isUint8Array(obj) {
21756 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
21757}
21758
21759/*</replacement>*/
21760
21761var destroyImpl = __webpack_require__(148);
21762
21763util.inherits(Writable, Stream);
21764
21765function nop() {}
21766
21767function WritableState(options, stream) {
21768 Duplex = Duplex || __webpack_require__(8);
21769
21770 options = options || {};
21771
21772 // Duplex streams are both readable and writable, but share
21773 // the same options object.
21774 // However, some cases require setting options to different
21775 // values for the readable and the writable sides of the duplex stream.
21776 // These options can be provided separately as readableXXX and writableXXX.
21777 var isDuplex = stream instanceof Duplex;
21778
21779 // object stream flag to indicate whether or not this stream
21780 // contains buffers or objects.
21781 this.objectMode = !!options.objectMode;
21782
21783 if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
21784
21785 // the point at which write() starts returning false
21786 // Note: 0 is a valid value, means that we always return false if
21787 // the entire buffer is not flushed immediately on write()
21788 var hwm = options.highWaterMark;
21789 var writableHwm = options.writableHighWaterMark;
21790 var defaultHwm = this.objectMode ? 16 : 16 * 1024;
21791
21792 if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
21793
21794 // cast to ints.
21795 this.highWaterMark = Math.floor(this.highWaterMark);
21796
21797 // if _final has been called
21798 this.finalCalled = false;
21799
21800 // drain event flag.
21801 this.needDrain = false;
21802 // at the start of calling end()
21803 this.ending = false;
21804 // when end() has been called, and returned
21805 this.ended = false;
21806 // when 'finish' is emitted
21807 this.finished = false;
21808
21809 // has it been destroyed
21810 this.destroyed = false;
21811
21812 // should we decode strings into buffers before passing to _write?
21813 // this is here so that some node-core streams can optimize string
21814 // handling at a lower level.
21815 var noDecode = options.decodeStrings === false;
21816 this.decodeStrings = !noDecode;
21817
21818 // Crypto is kind of old and crusty. Historically, its default string
21819 // encoding is 'binary' so we have to make this configurable.
21820 // Everything else in the universe uses 'utf8', though.
21821 this.defaultEncoding = options.defaultEncoding || 'utf8';
21822
21823 // not an actual buffer we keep track of, but a measurement
21824 // of how much we're waiting to get pushed to some underlying
21825 // socket or file.
21826 this.length = 0;
21827
21828 // a flag to see when we're in the middle of a write.
21829 this.writing = false;
21830
21831 // when true all writes will be buffered until .uncork() call
21832 this.corked = 0;
21833
21834 // a flag to be able to tell if the onwrite cb is called immediately,
21835 // or on a later tick. We set this to true at first, because any
21836 // actions that shouldn't happen until "later" should generally also
21837 // not happen before the first write call.
21838 this.sync = true;
21839
21840 // a flag to know if we're processing previously buffered items, which
21841 // may call the _write() callback in the same tick, so that we don't
21842 // end up in an overlapped onwrite situation.
21843 this.bufferProcessing = false;
21844
21845 // the callback that's passed to _write(chunk,cb)
21846 this.onwrite = function (er) {
21847 onwrite(stream, er);
21848 };
21849
21850 // the callback that the user supplies to write(chunk,encoding,cb)
21851 this.writecb = null;
21852
21853 // the amount that is being written when _write is called.
21854 this.writelen = 0;
21855
21856 this.bufferedRequest = null;
21857 this.lastBufferedRequest = null;
21858
21859 // number of pending user-supplied write callbacks
21860 // this must be 0 before 'finish' can be emitted
21861 this.pendingcb = 0;
21862
21863 // emit prefinish if the only thing we're waiting for is _write cbs
21864 // This is relevant for synchronous Transform streams
21865 this.prefinished = false;
21866
21867 // True if the error was already emitted and should not be thrown again
21868 this.errorEmitted = false;
21869
21870 // count buffered requests
21871 this.bufferedRequestCount = 0;
21872
21873 // allocate the first CorkedRequest, there is always
21874 // one allocated and free to use, and we maintain at most two
21875 this.corkedRequestsFree = new CorkedRequest(this);
21876}
21877
21878WritableState.prototype.getBuffer = function getBuffer() {
21879 var current = this.bufferedRequest;
21880 var out = [];
21881 while (current) {
21882 out.push(current);
21883 current = current.next;
21884 }
21885 return out;
21886};
21887
21888(function () {
21889 try {
21890 Object.defineProperty(WritableState.prototype, 'buffer', {
21891 get: internalUtil.deprecate(function () {
21892 return this.getBuffer();
21893 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
21894 });
21895 } catch (_) {}
21896})();
21897
21898// Test _writableState for inheritance to account for Duplex streams,
21899// whose prototype chain only points to Readable.
21900var realHasInstance;
21901if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
21902 realHasInstance = Function.prototype[Symbol.hasInstance];
21903 Object.defineProperty(Writable, Symbol.hasInstance, {
21904 value: function (object) {
21905 if (realHasInstance.call(this, object)) return true;
21906 if (this !== Writable) return false;
21907
21908 return object && object._writableState instanceof WritableState;
21909 }
21910 });
21911} else {
21912 realHasInstance = function (object) {
21913 return object instanceof this;
21914 };
21915}
21916
21917function Writable(options) {
21918 Duplex = Duplex || __webpack_require__(8);
21919
21920 // Writable ctor is applied to Duplexes, too.
21921 // `realHasInstance` is necessary because using plain `instanceof`
21922 // would return false, as no `_writableState` property is attached.
21923
21924 // Trying to use the custom `instanceof` for Writable here will also break the
21925 // Node.js LazyTransform implementation, which has a non-trivial getter for
21926 // `_writableState` that would lead to infinite recursion.
21927 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
21928 return new Writable(options);
21929 }
21930
21931 this._writableState = new WritableState(options, this);
21932
21933 // legacy.
21934 this.writable = true;
21935
21936 if (options) {
21937 if (typeof options.write === 'function') this._write = options.write;
21938
21939 if (typeof options.writev === 'function') this._writev = options.writev;
21940
21941 if (typeof options.destroy === 'function') this._destroy = options.destroy;
21942
21943 if (typeof options.final === 'function') this._final = options.final;
21944 }
21945
21946 Stream.call(this);
21947}
21948
21949// Otherwise people can pipe Writable streams, which is just wrong.
21950Writable.prototype.pipe = function () {
21951 this.emit('error', new Error('Cannot pipe, not readable'));
21952};
21953
21954function writeAfterEnd(stream, cb) {
21955 var er = new Error('write after end');
21956 // TODO: defer error events consistently everywhere, not just the cb
21957 stream.emit('error', er);
21958 pna.nextTick(cb, er);
21959}
21960
21961// Checks that a user-supplied chunk is valid, especially for the particular
21962// mode the stream is in. Currently this means that `null` is never accepted
21963// and undefined/non-string values are only allowed in object mode.
21964function validChunk(stream, state, chunk, cb) {
21965 var valid = true;
21966 var er = false;
21967
21968 if (chunk === null) {
21969 er = new TypeError('May not write null values to stream');
21970 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
21971 er = new TypeError('Invalid non-string/buffer chunk');
21972 }
21973 if (er) {
21974 stream.emit('error', er);
21975 pna.nextTick(cb, er);
21976 valid = false;
21977 }
21978 return valid;
21979}
21980
21981Writable.prototype.write = function (chunk, encoding, cb) {
21982 var state = this._writableState;
21983 var ret = false;
21984 var isBuf = !state.objectMode && _isUint8Array(chunk);
21985
21986 if (isBuf && !Buffer.isBuffer(chunk)) {
21987 chunk = _uint8ArrayToBuffer(chunk);
21988 }
21989
21990 if (typeof encoding === 'function') {
21991 cb = encoding;
21992 encoding = null;
21993 }
21994
21995 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
21996
21997 if (typeof cb !== 'function') cb = nop;
21998
21999 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
22000 state.pendingcb++;
22001 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
22002 }
22003
22004 return ret;
22005};
22006
22007Writable.prototype.cork = function () {
22008 var state = this._writableState;
22009
22010 state.corked++;
22011};
22012
22013Writable.prototype.uncork = function () {
22014 var state = this._writableState;
22015
22016 if (state.corked) {
22017 state.corked--;
22018
22019 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
22020 }
22021};
22022
22023Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
22024 // node::ParseEncoding() requires lower case.
22025 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
22026 if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
22027 this._writableState.defaultEncoding = encoding;
22028 return this;
22029};
22030
22031function decodeChunk(state, chunk, encoding) {
22032 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
22033 chunk = Buffer.from(chunk, encoding);
22034 }
22035 return chunk;
22036}
22037
22038Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
22039 // making it explicit this property is not enumerable
22040 // because otherwise some prototype manipulation in
22041 // userland will fail
22042 enumerable: false,
22043 get: function () {
22044 return this._writableState.highWaterMark;
22045 }
22046});
22047
22048// if we're already writing something, then just put this
22049// in the queue, and wait our turn. Otherwise, call _write
22050// If we return false, then we need a drain event, so set that flag.
22051function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
22052 if (!isBuf) {
22053 var newChunk = decodeChunk(state, chunk, encoding);
22054 if (chunk !== newChunk) {
22055 isBuf = true;
22056 encoding = 'buffer';
22057 chunk = newChunk;
22058 }
22059 }
22060 var len = state.objectMode ? 1 : chunk.length;
22061
22062 state.length += len;
22063
22064 var ret = state.length < state.highWaterMark;
22065 // we must ensure that previous needDrain will not be reset to false.
22066 if (!ret) state.needDrain = true;
22067
22068 if (state.writing || state.corked) {
22069 var last = state.lastBufferedRequest;
22070 state.lastBufferedRequest = {
22071 chunk: chunk,
22072 encoding: encoding,
22073 isBuf: isBuf,
22074 callback: cb,
22075 next: null
22076 };
22077 if (last) {
22078 last.next = state.lastBufferedRequest;
22079 } else {
22080 state.bufferedRequest = state.lastBufferedRequest;
22081 }
22082 state.bufferedRequestCount += 1;
22083 } else {
22084 doWrite(stream, state, false, len, chunk, encoding, cb);
22085 }
22086
22087 return ret;
22088}
22089
22090function doWrite(stream, state, writev, len, chunk, encoding, cb) {
22091 state.writelen = len;
22092 state.writecb = cb;
22093 state.writing = true;
22094 state.sync = true;
22095 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
22096 state.sync = false;
22097}
22098
22099function onwriteError(stream, state, sync, er, cb) {
22100 --state.pendingcb;
22101
22102 if (sync) {
22103 // defer the callback if we are being called synchronously
22104 // to avoid piling up things on the stack
22105 pna.nextTick(cb, er);
22106 // this can emit finish, and it will always happen
22107 // after error
22108 pna.nextTick(finishMaybe, stream, state);
22109 stream._writableState.errorEmitted = true;
22110 stream.emit('error', er);
22111 } else {
22112 // the caller expect this to happen before if
22113 // it is async
22114 cb(er);
22115 stream._writableState.errorEmitted = true;
22116 stream.emit('error', er);
22117 // this can emit finish, but finish must
22118 // always follow error
22119 finishMaybe(stream, state);
22120 }
22121}
22122
22123function onwriteStateUpdate(state) {
22124 state.writing = false;
22125 state.writecb = null;
22126 state.length -= state.writelen;
22127 state.writelen = 0;
22128}
22129
22130function onwrite(stream, er) {
22131 var state = stream._writableState;
22132 var sync = state.sync;
22133 var cb = state.writecb;
22134
22135 onwriteStateUpdate(state);
22136
22137 if (er) onwriteError(stream, state, sync, er, cb);else {
22138 // Check if we're actually ready to finish, but don't emit yet
22139 var finished = needFinish(state);
22140
22141 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
22142 clearBuffer(stream, state);
22143 }
22144
22145 if (sync) {
22146 /*<replacement>*/
22147 asyncWrite(afterWrite, stream, state, finished, cb);
22148 /*</replacement>*/
22149 } else {
22150 afterWrite(stream, state, finished, cb);
22151 }
22152 }
22153}
22154
22155function afterWrite(stream, state, finished, cb) {
22156 if (!finished) onwriteDrain(stream, state);
22157 state.pendingcb--;
22158 cb();
22159 finishMaybe(stream, state);
22160}
22161
22162// Must force callback to be called on nextTick, so that we don't
22163// emit 'drain' before the write() consumer gets the 'false' return
22164// value, and has a chance to attach a 'drain' listener.
22165function onwriteDrain(stream, state) {
22166 if (state.length === 0 && state.needDrain) {
22167 state.needDrain = false;
22168 stream.emit('drain');
22169 }
22170}
22171
22172// if there's something in the buffer waiting, then process it
22173function clearBuffer(stream, state) {
22174 state.bufferProcessing = true;
22175 var entry = state.bufferedRequest;
22176
22177 if (stream._writev && entry && entry.next) {
22178 // Fast case, write everything using _writev()
22179 var l = state.bufferedRequestCount;
22180 var buffer = new Array(l);
22181 var holder = state.corkedRequestsFree;
22182 holder.entry = entry;
22183
22184 var count = 0;
22185 var allBuffers = true;
22186 while (entry) {
22187 buffer[count] = entry;
22188 if (!entry.isBuf) allBuffers = false;
22189 entry = entry.next;
22190 count += 1;
22191 }
22192 buffer.allBuffers = allBuffers;
22193
22194 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
22195
22196 // doWrite is almost always async, defer these to save a bit of time
22197 // as the hot path ends with doWrite
22198 state.pendingcb++;
22199 state.lastBufferedRequest = null;
22200 if (holder.next) {
22201 state.corkedRequestsFree = holder.next;
22202 holder.next = null;
22203 } else {
22204 state.corkedRequestsFree = new CorkedRequest(state);
22205 }
22206 state.bufferedRequestCount = 0;
22207 } else {
22208 // Slow case, write chunks one-by-one
22209 while (entry) {
22210 var chunk = entry.chunk;
22211 var encoding = entry.encoding;
22212 var cb = entry.callback;
22213 var len = state.objectMode ? 1 : chunk.length;
22214
22215 doWrite(stream, state, false, len, chunk, encoding, cb);
22216 entry = entry.next;
22217 state.bufferedRequestCount--;
22218 // if we didn't call the onwrite immediately, then
22219 // it means that we need to wait until it does.
22220 // also, that means that the chunk and cb are currently
22221 // being processed, so move the buffer counter past them.
22222 if (state.writing) {
22223 break;
22224 }
22225 }
22226
22227 if (entry === null) state.lastBufferedRequest = null;
22228 }
22229
22230 state.bufferedRequest = entry;
22231 state.bufferProcessing = false;
22232}
22233
22234Writable.prototype._write = function (chunk, encoding, cb) {
22235 cb(new Error('_write() is not implemented'));
22236};
22237
22238Writable.prototype._writev = null;
22239
22240Writable.prototype.end = function (chunk, encoding, cb) {
22241 var state = this._writableState;
22242
22243 if (typeof chunk === 'function') {
22244 cb = chunk;
22245 chunk = null;
22246 encoding = null;
22247 } else if (typeof encoding === 'function') {
22248 cb = encoding;
22249 encoding = null;
22250 }
22251
22252 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
22253
22254 // .end() fully uncorks
22255 if (state.corked) {
22256 state.corked = 1;
22257 this.uncork();
22258 }
22259
22260 // ignore unnecessary end() calls.
22261 if (!state.ending && !state.finished) endWritable(this, state, cb);
22262};
22263
22264function needFinish(state) {
22265 return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
22266}
22267function callFinal(stream, state) {
22268 stream._final(function (err) {
22269 state.pendingcb--;
22270 if (err) {
22271 stream.emit('error', err);
22272 }
22273 state.prefinished = true;
22274 stream.emit('prefinish');
22275 finishMaybe(stream, state);
22276 });
22277}
22278function prefinish(stream, state) {
22279 if (!state.prefinished && !state.finalCalled) {
22280 if (typeof stream._final === 'function') {
22281 state.pendingcb++;
22282 state.finalCalled = true;
22283 pna.nextTick(callFinal, stream, state);
22284 } else {
22285 state.prefinished = true;
22286 stream.emit('prefinish');
22287 }
22288 }
22289}
22290
22291function finishMaybe(stream, state) {
22292 var need = needFinish(state);
22293 if (need) {
22294 prefinish(stream, state);
22295 if (state.pendingcb === 0) {
22296 state.finished = true;
22297 stream.emit('finish');
22298 }
22299 }
22300 return need;
22301}
22302
22303function endWritable(stream, state, cb) {
22304 state.ending = true;
22305 finishMaybe(stream, state);
22306 if (cb) {
22307 if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
22308 }
22309 state.ended = true;
22310 stream.writable = false;
22311}
22312
22313function onCorkedFinish(corkReq, state, err) {
22314 var entry = corkReq.entry;
22315 corkReq.entry = null;
22316 while (entry) {
22317 var cb = entry.callback;
22318 state.pendingcb--;
22319 cb(err);
22320 entry = entry.next;
22321 }
22322 if (state.corkedRequestsFree) {
22323 state.corkedRequestsFree.next = corkReq;
22324 } else {
22325 state.corkedRequestsFree = corkReq;
22326 }
22327}
22328
22329Object.defineProperty(Writable.prototype, 'destroyed', {
22330 get: function () {
22331 if (this._writableState === undefined) {
22332 return false;
22333 }
22334 return this._writableState.destroyed;
22335 },
22336 set: function (value) {
22337 // we ignore the value if the stream
22338 // has not been initialized yet
22339 if (!this._writableState) {
22340 return;
22341 }
22342
22343 // backward compatibility, the user is explicitly
22344 // managing destroyed
22345 this._writableState.destroyed = value;
22346 }
22347});
22348
22349Writable.prototype.destroy = destroyImpl.destroy;
22350Writable.prototype._undestroy = destroyImpl.undestroy;
22351Writable.prototype._destroy = function (err, cb) {
22352 this.end();
22353 cb(err);
22354};
22355/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(185).setImmediate, __webpack_require__(2)))
22356
22357/***/ }),
22358/* 148 */
22359/***/ (function(module, exports, __webpack_require__) {
22360
22361"use strict";
22362
22363
22364/*<replacement>*/
22365
22366var pna = __webpack_require__(13);
22367/*</replacement>*/
22368
22369// undocumented cb() API, needed for core, not for public API
22370function destroy(err, cb) {
22371 var _this = this;
22372
22373 var readableDestroyed = this._readableState && this._readableState.destroyed;
22374 var writableDestroyed = this._writableState && this._writableState.destroyed;
22375
22376 if (readableDestroyed || writableDestroyed) {
22377 if (cb) {
22378 cb(err);
22379 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
22380 pna.nextTick(emitErrorNT, this, err);
22381 }
22382 return this;
22383 }
22384
22385 // we set destroyed to true before firing error callbacks in order
22386 // to make it re-entrance safe in case destroy() is called within callbacks
22387
22388 if (this._readableState) {
22389 this._readableState.destroyed = true;
22390 }
22391
22392 // if this is a duplex stream mark the writable part as destroyed as well
22393 if (this._writableState) {
22394 this._writableState.destroyed = true;
22395 }
22396
22397 this._destroy(err || null, function (err) {
22398 if (!cb && err) {
22399 pna.nextTick(emitErrorNT, _this, err);
22400 if (_this._writableState) {
22401 _this._writableState.errorEmitted = true;
22402 }
22403 } else if (cb) {
22404 cb(err);
22405 }
22406 });
22407
22408 return this;
22409}
22410
22411function undestroy() {
22412 if (this._readableState) {
22413 this._readableState.destroyed = false;
22414 this._readableState.reading = false;
22415 this._readableState.ended = false;
22416 this._readableState.endEmitted = false;
22417 }
22418
22419 if (this._writableState) {
22420 this._writableState.destroyed = false;
22421 this._writableState.ended = false;
22422 this._writableState.ending = false;
22423 this._writableState.finished = false;
22424 this._writableState.errorEmitted = false;
22425 }
22426}
22427
22428function emitErrorNT(self, err) {
22429 self.emit('error', err);
22430}
22431
22432module.exports = {
22433 destroy: destroy,
22434 undestroy: undestroy
22435};
22436
22437/***/ }),
22438/* 149 */
22439/***/ (function(module, exports, __webpack_require__) {
22440
22441module.exports = __webpack_require__(20).EventEmitter;
22442
22443
22444/***/ }),
22445/* 150 */
22446/***/ (function(module, exports, __webpack_require__) {
22447
22448exports = module.exports = __webpack_require__(145);
22449exports.Stream = exports;
22450exports.Readable = exports;
22451exports.Writable = __webpack_require__(147);
22452exports.Duplex = __webpack_require__(8);
22453exports.Transform = __webpack_require__(146);
22454exports.PassThrough = __webpack_require__(181);
22455
22456
22457/***/ }),
22458/* 151 */
22459/***/ (function(module, exports, __webpack_require__) {
22460
22461/* WEBPACK VAR INJECTION */(function(process) {exports = module.exports = SemVer;
22462
22463// The debug function is excluded entirely from the minified version.
22464/* nomin */ var debug;
22465/* nomin */ if (typeof process === 'object' &&
22466 /* nomin */ __webpack_require__.i({"NODE_ENV":"development","CRAFT_TOKEN":undefined,"CRAFT_URL":undefined}) &&
22467 /* nomin */ __webpack_require__.i({"NODE_ENV":"development","CRAFT_TOKEN":undefined,"CRAFT_URL":undefined}).NODE_DEBUG &&
22468 /* nomin */ /\bsemver\b/i.test(__webpack_require__.i({"NODE_ENV":"development","CRAFT_TOKEN":undefined,"CRAFT_URL":undefined}).NODE_DEBUG))
22469 /* nomin */ debug = function() {
22470 /* nomin */ var args = Array.prototype.slice.call(arguments, 0);
22471 /* nomin */ args.unshift('SEMVER');
22472 /* nomin */ console.log.apply(console, args);
22473 /* nomin */ };
22474/* nomin */ else
22475 /* nomin */ debug = function() {};
22476
22477// Note: this is the semver.org version of the spec that it implements
22478// Not necessarily the package version of this code.
22479exports.SEMVER_SPEC_VERSION = '2.0.0';
22480
22481var MAX_LENGTH = 256;
22482var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
22483
22484// Max safe segment length for coercion.
22485var MAX_SAFE_COMPONENT_LENGTH = 16;
22486
22487// The actual regexps go on exports.re
22488var re = exports.re = [];
22489var src = exports.src = [];
22490var R = 0;
22491
22492// The following Regular Expressions can be used for tokenizing,
22493// validating, and parsing SemVer version strings.
22494
22495// ## Numeric Identifier
22496// A single `0`, or a non-zero digit followed by zero or more digits.
22497
22498var NUMERICIDENTIFIER = R++;
22499src[NUMERICIDENTIFIER] = '0|[1-9]\\d*';
22500var NUMERICIDENTIFIERLOOSE = R++;
22501src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';
22502
22503
22504// ## Non-numeric Identifier
22505// Zero or more digits, followed by a letter or hyphen, and then zero or
22506// more letters, digits, or hyphens.
22507
22508var NONNUMERICIDENTIFIER = R++;
22509src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';
22510
22511
22512// ## Main Version
22513// Three dot-separated numeric identifiers.
22514
22515var MAINVERSION = R++;
22516src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
22517 '(' + src[NUMERICIDENTIFIER] + ')\\.' +
22518 '(' + src[NUMERICIDENTIFIER] + ')';
22519
22520var MAINVERSIONLOOSE = R++;
22521src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
22522 '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
22523 '(' + src[NUMERICIDENTIFIERLOOSE] + ')';
22524
22525// ## Pre-release Version Identifier
22526// A numeric identifier, or a non-numeric identifier.
22527
22528var PRERELEASEIDENTIFIER = R++;
22529src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
22530 '|' + src[NONNUMERICIDENTIFIER] + ')';
22531
22532var PRERELEASEIDENTIFIERLOOSE = R++;
22533src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
22534 '|' + src[NONNUMERICIDENTIFIER] + ')';
22535
22536
22537// ## Pre-release Version
22538// Hyphen, followed by one or more dot-separated pre-release version
22539// identifiers.
22540
22541var PRERELEASE = R++;
22542src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
22543 '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))';
22544
22545var PRERELEASELOOSE = R++;
22546src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
22547 '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';
22548
22549// ## Build Metadata Identifier
22550// Any combination of digits, letters, or hyphens.
22551
22552var BUILDIDENTIFIER = R++;
22553src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';
22554
22555// ## Build Metadata
22556// Plus sign, followed by one or more period-separated build metadata
22557// identifiers.
22558
22559var BUILD = R++;
22560src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
22561 '(?:\\.' + src[BUILDIDENTIFIER] + ')*))';
22562
22563
22564// ## Full Version String
22565// A main version, followed optionally by a pre-release version and
22566// build metadata.
22567
22568// Note that the only major, minor, patch, and pre-release sections of
22569// the version string are capturing groups. The build metadata is not a
22570// capturing group, because it should not ever be used in version
22571// comparison.
22572
22573var FULL = R++;
22574var FULLPLAIN = 'v?' + src[MAINVERSION] +
22575 src[PRERELEASE] + '?' +
22576 src[BUILD] + '?';
22577
22578src[FULL] = '^' + FULLPLAIN + '$';
22579
22580// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
22581// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
22582// common in the npm registry.
22583var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
22584 src[PRERELEASELOOSE] + '?' +
22585 src[BUILD] + '?';
22586
22587var LOOSE = R++;
22588src[LOOSE] = '^' + LOOSEPLAIN + '$';
22589
22590var GTLT = R++;
22591src[GTLT] = '((?:<|>)?=?)';
22592
22593// Something like "2.*" or "1.2.x".
22594// Note that "x.x" is a valid xRange identifer, meaning "any version"
22595// Only the first item is strictly required.
22596var XRANGEIDENTIFIERLOOSE = R++;
22597src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*';
22598var XRANGEIDENTIFIER = R++;
22599src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*';
22600
22601var XRANGEPLAIN = R++;
22602src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
22603 '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
22604 '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
22605 '(?:' + src[PRERELEASE] + ')?' +
22606 src[BUILD] + '?' +
22607 ')?)?';
22608
22609var XRANGEPLAINLOOSE = R++;
22610src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
22611 '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
22612 '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
22613 '(?:' + src[PRERELEASELOOSE] + ')?' +
22614 src[BUILD] + '?' +
22615 ')?)?';
22616
22617var XRANGE = R++;
22618src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
22619var XRANGELOOSE = R++;
22620src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$';
22621
22622// Coercion.
22623// Extract anything that could conceivably be a part of a valid semver
22624var COERCE = R++;
22625src[COERCE] = '(?:^|[^\\d])' +
22626 '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
22627 '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
22628 '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
22629 '(?:$|[^\\d])';
22630
22631// Tilde ranges.
22632// Meaning is "reasonably at or greater than"
22633var LONETILDE = R++;
22634src[LONETILDE] = '(?:~>?)';
22635
22636var TILDETRIM = R++;
22637src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+';
22638re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g');
22639var tildeTrimReplace = '$1~';
22640
22641var TILDE = R++;
22642src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$';
22643var TILDELOOSE = R++;
22644src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$';
22645
22646// Caret ranges.
22647// Meaning is "at least and backwards compatible with"
22648var LONECARET = R++;
22649src[LONECARET] = '(?:\\^)';
22650
22651var CARETTRIM = R++;
22652src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+';
22653re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g');
22654var caretTrimReplace = '$1^';
22655
22656var CARET = R++;
22657src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$';
22658var CARETLOOSE = R++;
22659src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$';
22660
22661// A simple gt/lt/eq thing, or just "" to indicate "any version"
22662var COMPARATORLOOSE = R++;
22663src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$';
22664var COMPARATOR = R++;
22665src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$';
22666
22667
22668// An expression to strip any whitespace between the gtlt and the thing
22669// it modifies, so that `> 1.2.3` ==> `>1.2.3`
22670var COMPARATORTRIM = R++;
22671src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
22672 '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')';
22673
22674// this one has to use the /g flag
22675re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g');
22676var comparatorTrimReplace = '$1$2$3';
22677
22678
22679// Something like `1.2.3 - 1.2.4`
22680// Note that these all use the loose form, because they'll be
22681// checked against either the strict or loose comparator form
22682// later.
22683var HYPHENRANGE = R++;
22684src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
22685 '\\s+-\\s+' +
22686 '(' + src[XRANGEPLAIN] + ')' +
22687 '\\s*$';
22688
22689var HYPHENRANGELOOSE = R++;
22690src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
22691 '\\s+-\\s+' +
22692 '(' + src[XRANGEPLAINLOOSE] + ')' +
22693 '\\s*$';
22694
22695// Star ranges basically just allow anything at all.
22696var STAR = R++;
22697src[STAR] = '(<|>)?=?\\s*\\*';
22698
22699// Compile to actual regexp objects.
22700// All are flag-free, unless they were created above with a flag.
22701for (var i = 0; i < R; i++) {
22702 debug(i, src[i]);
22703 if (!re[i])
22704 re[i] = new RegExp(src[i]);
22705}
22706
22707exports.parse = parse;
22708function parse(version, loose) {
22709 if (version instanceof SemVer)
22710 return version;
22711
22712 if (typeof version !== 'string')
22713 return null;
22714
22715 if (version.length > MAX_LENGTH)
22716 return null;
22717
22718 var r = loose ? re[LOOSE] : re[FULL];
22719 if (!r.test(version))
22720 return null;
22721
22722 try {
22723 return new SemVer(version, loose);
22724 } catch (er) {
22725 return null;
22726 }
22727}
22728
22729exports.valid = valid;
22730function valid(version, loose) {
22731 var v = parse(version, loose);
22732 return v ? v.version : null;
22733}
22734
22735
22736exports.clean = clean;
22737function clean(version, loose) {
22738 var s = parse(version.trim().replace(/^[=v]+/, ''), loose);
22739 return s ? s.version : null;
22740}
22741
22742exports.SemVer = SemVer;
22743
22744function SemVer(version, loose) {
22745 if (version instanceof SemVer) {
22746 if (version.loose === loose)
22747 return version;
22748 else
22749 version = version.version;
22750 } else if (typeof version !== 'string') {
22751 throw new TypeError('Invalid Version: ' + version);
22752 }
22753
22754 if (version.length > MAX_LENGTH)
22755 throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
22756
22757 if (!(this instanceof SemVer))
22758 return new SemVer(version, loose);
22759
22760 debug('SemVer', version, loose);
22761 this.loose = loose;
22762 var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);
22763
22764 if (!m)
22765 throw new TypeError('Invalid Version: ' + version);
22766
22767 this.raw = version;
22768
22769 // these are actually numbers
22770 this.major = +m[1];
22771 this.minor = +m[2];
22772 this.patch = +m[3];
22773
22774 if (this.major > MAX_SAFE_INTEGER || this.major < 0)
22775 throw new TypeError('Invalid major version')
22776
22777 if (this.minor > MAX_SAFE_INTEGER || this.minor < 0)
22778 throw new TypeError('Invalid minor version')
22779
22780 if (this.patch > MAX_SAFE_INTEGER || this.patch < 0)
22781 throw new TypeError('Invalid patch version')
22782
22783 // numberify any prerelease numeric ids
22784 if (!m[4])
22785 this.prerelease = [];
22786 else
22787 this.prerelease = m[4].split('.').map(function(id) {
22788 if (/^[0-9]+$/.test(id)) {
22789 var num = +id;
22790 if (num >= 0 && num < MAX_SAFE_INTEGER)
22791 return num;
22792 }
22793 return id;
22794 });
22795
22796 this.build = m[5] ? m[5].split('.') : [];
22797 this.format();
22798}
22799
22800SemVer.prototype.format = function() {
22801 this.version = this.major + '.' + this.minor + '.' + this.patch;
22802 if (this.prerelease.length)
22803 this.version += '-' + this.prerelease.join('.');
22804 return this.version;
22805};
22806
22807SemVer.prototype.toString = function() {
22808 return this.version;
22809};
22810
22811SemVer.prototype.compare = function(other) {
22812 debug('SemVer.compare', this.version, this.loose, other);
22813 if (!(other instanceof SemVer))
22814 other = new SemVer(other, this.loose);
22815
22816 return this.compareMain(other) || this.comparePre(other);
22817};
22818
22819SemVer.prototype.compareMain = function(other) {
22820 if (!(other instanceof SemVer))
22821 other = new SemVer(other, this.loose);
22822
22823 return compareIdentifiers(this.major, other.major) ||
22824 compareIdentifiers(this.minor, other.minor) ||
22825 compareIdentifiers(this.patch, other.patch);
22826};
22827
22828SemVer.prototype.comparePre = function(other) {
22829 if (!(other instanceof SemVer))
22830 other = new SemVer(other, this.loose);
22831
22832 // NOT having a prerelease is > having one
22833 if (this.prerelease.length && !other.prerelease.length)
22834 return -1;
22835 else if (!this.prerelease.length && other.prerelease.length)
22836 return 1;
22837 else if (!this.prerelease.length && !other.prerelease.length)
22838 return 0;
22839
22840 var i = 0;
22841 do {
22842 var a = this.prerelease[i];
22843 var b = other.prerelease[i];
22844 debug('prerelease compare', i, a, b);
22845 if (a === undefined && b === undefined)
22846 return 0;
22847 else if (b === undefined)
22848 return 1;
22849 else if (a === undefined)
22850 return -1;
22851 else if (a === b)
22852 continue;
22853 else
22854 return compareIdentifiers(a, b);
22855 } while (++i);
22856};
22857
22858// preminor will bump the version up to the next minor release, and immediately
22859// down to pre-release. premajor and prepatch work the same way.
22860SemVer.prototype.inc = function(release, identifier) {
22861 switch (release) {
22862 case 'premajor':
22863 this.prerelease.length = 0;
22864 this.patch = 0;
22865 this.minor = 0;
22866 this.major++;
22867 this.inc('pre', identifier);
22868 break;
22869 case 'preminor':
22870 this.prerelease.length = 0;
22871 this.patch = 0;
22872 this.minor++;
22873 this.inc('pre', identifier);
22874 break;
22875 case 'prepatch':
22876 // If this is already a prerelease, it will bump to the next version
22877 // drop any prereleases that might already exist, since they are not
22878 // relevant at this point.
22879 this.prerelease.length = 0;
22880 this.inc('patch', identifier);
22881 this.inc('pre', identifier);
22882 break;
22883 // If the input is a non-prerelease version, this acts the same as
22884 // prepatch.
22885 case 'prerelease':
22886 if (this.prerelease.length === 0)
22887 this.inc('patch', identifier);
22888 this.inc('pre', identifier);
22889 break;
22890
22891 case 'major':
22892 // If this is a pre-major version, bump up to the same major version.
22893 // Otherwise increment major.
22894 // 1.0.0-5 bumps to 1.0.0
22895 // 1.1.0 bumps to 2.0.0
22896 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0)
22897 this.major++;
22898 this.minor = 0;
22899 this.patch = 0;
22900 this.prerelease = [];
22901 break;
22902 case 'minor':
22903 // If this is a pre-minor version, bump up to the same minor version.
22904 // Otherwise increment minor.
22905 // 1.2.0-5 bumps to 1.2.0
22906 // 1.2.1 bumps to 1.3.0
22907 if (this.patch !== 0 || this.prerelease.length === 0)
22908 this.minor++;
22909 this.patch = 0;
22910 this.prerelease = [];
22911 break;
22912 case 'patch':
22913 // If this is not a pre-release version, it will increment the patch.
22914 // If it is a pre-release it will bump up to the same patch version.
22915 // 1.2.0-5 patches to 1.2.0
22916 // 1.2.0 patches to 1.2.1
22917 if (this.prerelease.length === 0)
22918 this.patch++;
22919 this.prerelease = [];
22920 break;
22921 // This probably shouldn't be used publicly.
22922 // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
22923 case 'pre':
22924 if (this.prerelease.length === 0)
22925 this.prerelease = [0];
22926 else {
22927 var i = this.prerelease.length;
22928 while (--i >= 0) {
22929 if (typeof this.prerelease[i] === 'number') {
22930 this.prerelease[i]++;
22931 i = -2;
22932 }
22933 }
22934 if (i === -1) // didn't increment anything
22935 this.prerelease.push(0);
22936 }
22937 if (identifier) {
22938 // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
22939 // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
22940 if (this.prerelease[0] === identifier) {
22941 if (isNaN(this.prerelease[1]))
22942 this.prerelease = [identifier, 0];
22943 } else
22944 this.prerelease = [identifier, 0];
22945 }
22946 break;
22947
22948 default:
22949 throw new Error('invalid increment argument: ' + release);
22950 }
22951 this.format();
22952 this.raw = this.version;
22953 return this;
22954};
22955
22956exports.inc = inc;
22957function inc(version, release, loose, identifier) {
22958 if (typeof(loose) === 'string') {
22959 identifier = loose;
22960 loose = undefined;
22961 }
22962
22963 try {
22964 return new SemVer(version, loose).inc(release, identifier).version;
22965 } catch (er) {
22966 return null;
22967 }
22968}
22969
22970exports.diff = diff;
22971function diff(version1, version2) {
22972 if (eq(version1, version2)) {
22973 return null;
22974 } else {
22975 var v1 = parse(version1);
22976 var v2 = parse(version2);
22977 if (v1.prerelease.length || v2.prerelease.length) {
22978 for (var key in v1) {
22979 if (key === 'major' || key === 'minor' || key === 'patch') {
22980 if (v1[key] !== v2[key]) {
22981 return 'pre'+key;
22982 }
22983 }
22984 }
22985 return 'prerelease';
22986 }
22987 for (var key in v1) {
22988 if (key === 'major' || key === 'minor' || key === 'patch') {
22989 if (v1[key] !== v2[key]) {
22990 return key;
22991 }
22992 }
22993 }
22994 }
22995}
22996
22997exports.compareIdentifiers = compareIdentifiers;
22998
22999var numeric = /^[0-9]+$/;
23000function compareIdentifiers(a, b) {
23001 var anum = numeric.test(a);
23002 var bnum = numeric.test(b);
23003
23004 if (anum && bnum) {
23005 a = +a;
23006 b = +b;
23007 }
23008
23009 return (anum && !bnum) ? -1 :
23010 (bnum && !anum) ? 1 :
23011 a < b ? -1 :
23012 a > b ? 1 :
23013 0;
23014}
23015
23016exports.rcompareIdentifiers = rcompareIdentifiers;
23017function rcompareIdentifiers(a, b) {
23018 return compareIdentifiers(b, a);
23019}
23020
23021exports.major = major;
23022function major(a, loose) {
23023 return new SemVer(a, loose).major;
23024}
23025
23026exports.minor = minor;
23027function minor(a, loose) {
23028 return new SemVer(a, loose).minor;
23029}
23030
23031exports.patch = patch;
23032function patch(a, loose) {
23033 return new SemVer(a, loose).patch;
23034}
23035
23036exports.compare = compare;
23037function compare(a, b, loose) {
23038 return new SemVer(a, loose).compare(new SemVer(b, loose));
23039}
23040
23041exports.compareLoose = compareLoose;
23042function compareLoose(a, b) {
23043 return compare(a, b, true);
23044}
23045
23046exports.rcompare = rcompare;
23047function rcompare(a, b, loose) {
23048 return compare(b, a, loose);
23049}
23050
23051exports.sort = sort;
23052function sort(list, loose) {
23053 return list.sort(function(a, b) {
23054 return exports.compare(a, b, loose);
23055 });
23056}
23057
23058exports.rsort = rsort;
23059function rsort(list, loose) {
23060 return list.sort(function(a, b) {
23061 return exports.rcompare(a, b, loose);
23062 });
23063}
23064
23065exports.gt = gt;
23066function gt(a, b, loose) {
23067 return compare(a, b, loose) > 0;
23068}
23069
23070exports.lt = lt;
23071function lt(a, b, loose) {
23072 return compare(a, b, loose) < 0;
23073}
23074
23075exports.eq = eq;
23076function eq(a, b, loose) {
23077 return compare(a, b, loose) === 0;
23078}
23079
23080exports.neq = neq;
23081function neq(a, b, loose) {
23082 return compare(a, b, loose) !== 0;
23083}
23084
23085exports.gte = gte;
23086function gte(a, b, loose) {
23087 return compare(a, b, loose) >= 0;
23088}
23089
23090exports.lte = lte;
23091function lte(a, b, loose) {
23092 return compare(a, b, loose) <= 0;
23093}
23094
23095exports.cmp = cmp;
23096function cmp(a, op, b, loose) {
23097 var ret;
23098 switch (op) {
23099 case '===':
23100 if (typeof a === 'object') a = a.version;
23101 if (typeof b === 'object') b = b.version;
23102 ret = a === b;
23103 break;
23104 case '!==':
23105 if (typeof a === 'object') a = a.version;
23106 if (typeof b === 'object') b = b.version;
23107 ret = a !== b;
23108 break;
23109 case '': case '=': case '==': ret = eq(a, b, loose); break;
23110 case '!=': ret = neq(a, b, loose); break;
23111 case '>': ret = gt(a, b, loose); break;
23112 case '>=': ret = gte(a, b, loose); break;
23113 case '<': ret = lt(a, b, loose); break;
23114 case '<=': ret = lte(a, b, loose); break;
23115 default: throw new TypeError('Invalid operator: ' + op);
23116 }
23117 return ret;
23118}
23119
23120exports.Comparator = Comparator;
23121function Comparator(comp, loose) {
23122 if (comp instanceof Comparator) {
23123 if (comp.loose === loose)
23124 return comp;
23125 else
23126 comp = comp.value;
23127 }
23128
23129 if (!(this instanceof Comparator))
23130 return new Comparator(comp, loose);
23131
23132 debug('comparator', comp, loose);
23133 this.loose = loose;
23134 this.parse(comp);
23135
23136 if (this.semver === ANY)
23137 this.value = '';
23138 else
23139 this.value = this.operator + this.semver.version;
23140
23141 debug('comp', this);
23142}
23143
23144var ANY = {};
23145Comparator.prototype.parse = function(comp) {
23146 var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
23147 var m = comp.match(r);
23148
23149 if (!m)
23150 throw new TypeError('Invalid comparator: ' + comp);
23151
23152 this.operator = m[1];
23153 if (this.operator === '=')
23154 this.operator = '';
23155
23156 // if it literally is just '>' or '' then allow anything.
23157 if (!m[2])
23158 this.semver = ANY;
23159 else
23160 this.semver = new SemVer(m[2], this.loose);
23161};
23162
23163Comparator.prototype.toString = function() {
23164 return this.value;
23165};
23166
23167Comparator.prototype.test = function(version) {
23168 debug('Comparator.test', version, this.loose);
23169
23170 if (this.semver === ANY)
23171 return true;
23172
23173 if (typeof version === 'string')
23174 version = new SemVer(version, this.loose);
23175
23176 return cmp(version, this.operator, this.semver, this.loose);
23177};
23178
23179Comparator.prototype.intersects = function(comp, loose) {
23180 if (!(comp instanceof Comparator)) {
23181 throw new TypeError('a Comparator is required');
23182 }
23183
23184 var rangeTmp;
23185
23186 if (this.operator === '') {
23187 rangeTmp = new Range(comp.value, loose);
23188 return satisfies(this.value, rangeTmp, loose);
23189 } else if (comp.operator === '') {
23190 rangeTmp = new Range(this.value, loose);
23191 return satisfies(comp.semver, rangeTmp, loose);
23192 }
23193
23194 var sameDirectionIncreasing =
23195 (this.operator === '>=' || this.operator === '>') &&
23196 (comp.operator === '>=' || comp.operator === '>');
23197 var sameDirectionDecreasing =
23198 (this.operator === '<=' || this.operator === '<') &&
23199 (comp.operator === '<=' || comp.operator === '<');
23200 var sameSemVer = this.semver.version === comp.semver.version;
23201 var differentDirectionsInclusive =
23202 (this.operator === '>=' || this.operator === '<=') &&
23203 (comp.operator === '>=' || comp.operator === '<=');
23204 var oppositeDirectionsLessThan =
23205 cmp(this.semver, '<', comp.semver, loose) &&
23206 ((this.operator === '>=' || this.operator === '>') &&
23207 (comp.operator === '<=' || comp.operator === '<'));
23208 var oppositeDirectionsGreaterThan =
23209 cmp(this.semver, '>', comp.semver, loose) &&
23210 ((this.operator === '<=' || this.operator === '<') &&
23211 (comp.operator === '>=' || comp.operator === '>'));
23212
23213 return sameDirectionIncreasing || sameDirectionDecreasing ||
23214 (sameSemVer && differentDirectionsInclusive) ||
23215 oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
23216};
23217
23218
23219exports.Range = Range;
23220function Range(range, loose) {
23221 if (range instanceof Range) {
23222 if (range.loose === loose) {
23223 return range;
23224 } else {
23225 return new Range(range.raw, loose);
23226 }
23227 }
23228
23229 if (range instanceof Comparator) {
23230 return new Range(range.value, loose);
23231 }
23232
23233 if (!(this instanceof Range))
23234 return new Range(range, loose);
23235
23236 this.loose = loose;
23237
23238 // First, split based on boolean or ||
23239 this.raw = range;
23240 this.set = range.split(/\s*\|\|\s*/).map(function(range) {
23241 return this.parseRange(range.trim());
23242 }, this).filter(function(c) {
23243 // throw out any that are not relevant for whatever reason
23244 return c.length;
23245 });
23246
23247 if (!this.set.length) {
23248 throw new TypeError('Invalid SemVer Range: ' + range);
23249 }
23250
23251 this.format();
23252}
23253
23254Range.prototype.format = function() {
23255 this.range = this.set.map(function(comps) {
23256 return comps.join(' ').trim();
23257 }).join('||').trim();
23258 return this.range;
23259};
23260
23261Range.prototype.toString = function() {
23262 return this.range;
23263};
23264
23265Range.prototype.parseRange = function(range) {
23266 var loose = this.loose;
23267 range = range.trim();
23268 debug('range', range, loose);
23269 // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
23270 var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];
23271 range = range.replace(hr, hyphenReplace);
23272 debug('hyphen replace', range);
23273 // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
23274 range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace);
23275 debug('comparator trim', range, re[COMPARATORTRIM]);
23276
23277 // `~ 1.2.3` => `~1.2.3`
23278 range = range.replace(re[TILDETRIM], tildeTrimReplace);
23279
23280 // `^ 1.2.3` => `^1.2.3`
23281 range = range.replace(re[CARETTRIM], caretTrimReplace);
23282
23283 // normalize spaces
23284 range = range.split(/\s+/).join(' ');
23285
23286 // At this point, the range is completely trimmed and
23287 // ready to be split into comparators.
23288
23289 var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
23290 var set = range.split(' ').map(function(comp) {
23291 return parseComparator(comp, loose);
23292 }).join(' ').split(/\s+/);
23293 if (this.loose) {
23294 // in loose mode, throw out any that are not valid comparators
23295 set = set.filter(function(comp) {
23296 return !!comp.match(compRe);
23297 });
23298 }
23299 set = set.map(function(comp) {
23300 return new Comparator(comp, loose);
23301 });
23302
23303 return set;
23304};
23305
23306Range.prototype.intersects = function(range, loose) {
23307 if (!(range instanceof Range)) {
23308 throw new TypeError('a Range is required');
23309 }
23310
23311 return this.set.some(function(thisComparators) {
23312 return thisComparators.every(function(thisComparator) {
23313 return range.set.some(function(rangeComparators) {
23314 return rangeComparators.every(function(rangeComparator) {
23315 return thisComparator.intersects(rangeComparator, loose);
23316 });
23317 });
23318 });
23319 });
23320};
23321
23322// Mostly just for testing and legacy API reasons
23323exports.toComparators = toComparators;
23324function toComparators(range, loose) {
23325 return new Range(range, loose).set.map(function(comp) {
23326 return comp.map(function(c) {
23327 return c.value;
23328 }).join(' ').trim().split(' ');
23329 });
23330}
23331
23332// comprised of xranges, tildes, stars, and gtlt's at this point.
23333// already replaced the hyphen ranges
23334// turn into a set of JUST comparators.
23335function parseComparator(comp, loose) {
23336 debug('comp', comp);
23337 comp = replaceCarets(comp, loose);
23338 debug('caret', comp);
23339 comp = replaceTildes(comp, loose);
23340 debug('tildes', comp);
23341 comp = replaceXRanges(comp, loose);
23342 debug('xrange', comp);
23343 comp = replaceStars(comp, loose);
23344 debug('stars', comp);
23345 return comp;
23346}
23347
23348function isX(id) {
23349 return !id || id.toLowerCase() === 'x' || id === '*';
23350}
23351
23352// ~, ~> --> * (any, kinda silly)
23353// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
23354// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
23355// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
23356// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
23357// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
23358function replaceTildes(comp, loose) {
23359 return comp.trim().split(/\s+/).map(function(comp) {
23360 return replaceTilde(comp, loose);
23361 }).join(' ');
23362}
23363
23364function replaceTilde(comp, loose) {
23365 var r = loose ? re[TILDELOOSE] : re[TILDE];
23366 return comp.replace(r, function(_, M, m, p, pr) {
23367 debug('tilde', comp, _, M, m, p, pr);
23368 var ret;
23369
23370 if (isX(M))
23371 ret = '';
23372 else if (isX(m))
23373 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
23374 else if (isX(p))
23375 // ~1.2 == >=1.2.0 <1.3.0
23376 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
23377 else if (pr) {
23378 debug('replaceTilde pr', pr);
23379 if (pr.charAt(0) !== '-')
23380 pr = '-' + pr;
23381 ret = '>=' + M + '.' + m + '.' + p + pr +
23382 ' <' + M + '.' + (+m + 1) + '.0';
23383 } else
23384 // ~1.2.3 == >=1.2.3 <1.3.0
23385 ret = '>=' + M + '.' + m + '.' + p +
23386 ' <' + M + '.' + (+m + 1) + '.0';
23387
23388 debug('tilde return', ret);
23389 return ret;
23390 });
23391}
23392
23393// ^ --> * (any, kinda silly)
23394// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
23395// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
23396// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
23397// ^1.2.3 --> >=1.2.3 <2.0.0
23398// ^1.2.0 --> >=1.2.0 <2.0.0
23399function replaceCarets(comp, loose) {
23400 return comp.trim().split(/\s+/).map(function(comp) {
23401 return replaceCaret(comp, loose);
23402 }).join(' ');
23403}
23404
23405function replaceCaret(comp, loose) {
23406 debug('caret', comp, loose);
23407 var r = loose ? re[CARETLOOSE] : re[CARET];
23408 return comp.replace(r, function(_, M, m, p, pr) {
23409 debug('caret', comp, _, M, m, p, pr);
23410 var ret;
23411
23412 if (isX(M))
23413 ret = '';
23414 else if (isX(m))
23415 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
23416 else if (isX(p)) {
23417 if (M === '0')
23418 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
23419 else
23420 ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0';
23421 } else if (pr) {
23422 debug('replaceCaret pr', pr);
23423 if (pr.charAt(0) !== '-')
23424 pr = '-' + pr;
23425 if (M === '0') {
23426 if (m === '0')
23427 ret = '>=' + M + '.' + m + '.' + p + pr +
23428 ' <' + M + '.' + m + '.' + (+p + 1);
23429 else
23430 ret = '>=' + M + '.' + m + '.' + p + pr +
23431 ' <' + M + '.' + (+m + 1) + '.0';
23432 } else
23433 ret = '>=' + M + '.' + m + '.' + p + pr +
23434 ' <' + (+M + 1) + '.0.0';
23435 } else {
23436 debug('no pr');
23437 if (M === '0') {
23438 if (m === '0')
23439 ret = '>=' + M + '.' + m + '.' + p +
23440 ' <' + M + '.' + m + '.' + (+p + 1);
23441 else
23442 ret = '>=' + M + '.' + m + '.' + p +
23443 ' <' + M + '.' + (+m + 1) + '.0';
23444 } else
23445 ret = '>=' + M + '.' + m + '.' + p +
23446 ' <' + (+M + 1) + '.0.0';
23447 }
23448
23449 debug('caret return', ret);
23450 return ret;
23451 });
23452}
23453
23454function replaceXRanges(comp, loose) {
23455 debug('replaceXRanges', comp, loose);
23456 return comp.split(/\s+/).map(function(comp) {
23457 return replaceXRange(comp, loose);
23458 }).join(' ');
23459}
23460
23461function replaceXRange(comp, loose) {
23462 comp = comp.trim();
23463 var r = loose ? re[XRANGELOOSE] : re[XRANGE];
23464 return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
23465 debug('xRange', comp, ret, gtlt, M, m, p, pr);
23466 var xM = isX(M);
23467 var xm = xM || isX(m);
23468 var xp = xm || isX(p);
23469 var anyX = xp;
23470
23471 if (gtlt === '=' && anyX)
23472 gtlt = '';
23473
23474 if (xM) {
23475 if (gtlt === '>' || gtlt === '<') {
23476 // nothing is allowed
23477 ret = '<0.0.0';
23478 } else {
23479 // nothing is forbidden
23480 ret = '*';
23481 }
23482 } else if (gtlt && anyX) {
23483 // replace X with 0
23484 if (xm)
23485 m = 0;
23486 if (xp)
23487 p = 0;
23488
23489 if (gtlt === '>') {
23490 // >1 => >=2.0.0
23491 // >1.2 => >=1.3.0
23492 // >1.2.3 => >= 1.2.4
23493 gtlt = '>=';
23494 if (xm) {
23495 M = +M + 1;
23496 m = 0;
23497 p = 0;
23498 } else if (xp) {
23499 m = +m + 1;
23500 p = 0;
23501 }
23502 } else if (gtlt === '<=') {
23503 // <=0.7.x is actually <0.8.0, since any 0.7.x should
23504 // pass. Similarly, <=7.x is actually <8.0.0, etc.
23505 gtlt = '<';
23506 if (xm)
23507 M = +M + 1;
23508 else
23509 m = +m + 1;
23510 }
23511
23512 ret = gtlt + M + '.' + m + '.' + p;
23513 } else if (xm) {
23514 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
23515 } else if (xp) {
23516 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
23517 }
23518
23519 debug('xRange return', ret);
23520
23521 return ret;
23522 });
23523}
23524
23525// Because * is AND-ed with everything else in the comparator,
23526// and '' means "any version", just remove the *s entirely.
23527function replaceStars(comp, loose) {
23528 debug('replaceStars', comp, loose);
23529 // Looseness is ignored here. star is always as loose as it gets!
23530 return comp.trim().replace(re[STAR], '');
23531}
23532
23533// This function is passed to string.replace(re[HYPHENRANGE])
23534// M, m, patch, prerelease, build
23535// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
23536// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
23537// 1.2 - 3.4 => >=1.2.0 <3.5.0
23538function hyphenReplace($0,
23539 from, fM, fm, fp, fpr, fb,
23540 to, tM, tm, tp, tpr, tb) {
23541
23542 if (isX(fM))
23543 from = '';
23544 else if (isX(fm))
23545 from = '>=' + fM + '.0.0';
23546 else if (isX(fp))
23547 from = '>=' + fM + '.' + fm + '.0';
23548 else
23549 from = '>=' + from;
23550
23551 if (isX(tM))
23552 to = '';
23553 else if (isX(tm))
23554 to = '<' + (+tM + 1) + '.0.0';
23555 else if (isX(tp))
23556 to = '<' + tM + '.' + (+tm + 1) + '.0';
23557 else if (tpr)
23558 to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;
23559 else
23560 to = '<=' + to;
23561
23562 return (from + ' ' + to).trim();
23563}
23564
23565
23566// if ANY of the sets match ALL of its comparators, then pass
23567Range.prototype.test = function(version) {
23568 if (!version)
23569 return false;
23570
23571 if (typeof version === 'string')
23572 version = new SemVer(version, this.loose);
23573
23574 for (var i = 0; i < this.set.length; i++) {
23575 if (testSet(this.set[i], version))
23576 return true;
23577 }
23578 return false;
23579};
23580
23581function testSet(set, version) {
23582 for (var i = 0; i < set.length; i++) {
23583 if (!set[i].test(version))
23584 return false;
23585 }
23586
23587 if (version.prerelease.length) {
23588 // Find the set of versions that are allowed to have prereleases
23589 // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
23590 // That should allow `1.2.3-pr.2` to pass.
23591 // However, `1.2.4-alpha.notready` should NOT be allowed,
23592 // even though it's within the range set by the comparators.
23593 for (var i = 0; i < set.length; i++) {
23594 debug(set[i].semver);
23595 if (set[i].semver === ANY)
23596 continue;
23597
23598 if (set[i].semver.prerelease.length > 0) {
23599 var allowed = set[i].semver;
23600 if (allowed.major === version.major &&
23601 allowed.minor === version.minor &&
23602 allowed.patch === version.patch)
23603 return true;
23604 }
23605 }
23606
23607 // Version has a -pre, but it's not one of the ones we like.
23608 return false;
23609 }
23610
23611 return true;
23612}
23613
23614exports.satisfies = satisfies;
23615function satisfies(version, range, loose) {
23616 try {
23617 range = new Range(range, loose);
23618 } catch (er) {
23619 return false;
23620 }
23621 return range.test(version);
23622}
23623
23624exports.maxSatisfying = maxSatisfying;
23625function maxSatisfying(versions, range, loose) {
23626 var max = null;
23627 var maxSV = null;
23628 try {
23629 var rangeObj = new Range(range, loose);
23630 } catch (er) {
23631 return null;
23632 }
23633 versions.forEach(function (v) {
23634 if (rangeObj.test(v)) { // satisfies(v, range, loose)
23635 if (!max || maxSV.compare(v) === -1) { // compare(max, v, true)
23636 max = v;
23637 maxSV = new SemVer(max, loose);
23638 }
23639 }
23640 })
23641 return max;
23642}
23643
23644exports.minSatisfying = minSatisfying;
23645function minSatisfying(versions, range, loose) {
23646 var min = null;
23647 var minSV = null;
23648 try {
23649 var rangeObj = new Range(range, loose);
23650 } catch (er) {
23651 return null;
23652 }
23653 versions.forEach(function (v) {
23654 if (rangeObj.test(v)) { // satisfies(v, range, loose)
23655 if (!min || minSV.compare(v) === 1) { // compare(min, v, true)
23656 min = v;
23657 minSV = new SemVer(min, loose);
23658 }
23659 }
23660 })
23661 return min;
23662}
23663
23664exports.validRange = validRange;
23665function validRange(range, loose) {
23666 try {
23667 // Return '*' instead of '' so that truthiness works.
23668 // This will throw if it's invalid anyway
23669 return new Range(range, loose).range || '*';
23670 } catch (er) {
23671 return null;
23672 }
23673}
23674
23675// Determine if version is less than all the versions possible in the range
23676exports.ltr = ltr;
23677function ltr(version, range, loose) {
23678 return outside(version, range, '<', loose);
23679}
23680
23681// Determine if version is greater than all the versions possible in the range.
23682exports.gtr = gtr;
23683function gtr(version, range, loose) {
23684 return outside(version, range, '>', loose);
23685}
23686
23687exports.outside = outside;
23688function outside(version, range, hilo, loose) {
23689 version = new SemVer(version, loose);
23690 range = new Range(range, loose);
23691
23692 var gtfn, ltefn, ltfn, comp, ecomp;
23693 switch (hilo) {
23694 case '>':
23695 gtfn = gt;
23696 ltefn = lte;
23697 ltfn = lt;
23698 comp = '>';
23699 ecomp = '>=';
23700 break;
23701 case '<':
23702 gtfn = lt;
23703 ltefn = gte;
23704 ltfn = gt;
23705 comp = '<';
23706 ecomp = '<=';
23707 break;
23708 default:
23709 throw new TypeError('Must provide a hilo val of "<" or ">"');
23710 }
23711
23712 // If it satisifes the range it is not outside
23713 if (satisfies(version, range, loose)) {
23714 return false;
23715 }
23716
23717 // From now on, variable terms are as if we're in "gtr" mode.
23718 // but note that everything is flipped for the "ltr" function.
23719
23720 for (var i = 0; i < range.set.length; ++i) {
23721 var comparators = range.set[i];
23722
23723 var high = null;
23724 var low = null;
23725
23726 comparators.forEach(function(comparator) {
23727 if (comparator.semver === ANY) {
23728 comparator = new Comparator('>=0.0.0')
23729 }
23730 high = high || comparator;
23731 low = low || comparator;
23732 if (gtfn(comparator.semver, high.semver, loose)) {
23733 high = comparator;
23734 } else if (ltfn(comparator.semver, low.semver, loose)) {
23735 low = comparator;
23736 }
23737 });
23738
23739 // If the edge version comparator has a operator then our version
23740 // isn't outside it
23741 if (high.operator === comp || high.operator === ecomp) {
23742 return false;
23743 }
23744
23745 // If the lowest version comparator has an operator and our version
23746 // is less than it then it isn't higher than the range
23747 if ((!low.operator || low.operator === comp) &&
23748 ltefn(version, low.semver)) {
23749 return false;
23750 } else if (low.operator === ecomp && ltfn(version, low.semver)) {
23751 return false;
23752 }
23753 }
23754 return true;
23755}
23756
23757exports.prerelease = prerelease;
23758function prerelease(version, loose) {
23759 var parsed = parse(version, loose);
23760 return (parsed && parsed.prerelease.length) ? parsed.prerelease : null;
23761}
23762
23763exports.intersects = intersects;
23764function intersects(r1, r2, loose) {
23765 r1 = new Range(r1, loose)
23766 r2 = new Range(r2, loose)
23767 return r1.intersects(r2)
23768}
23769
23770exports.coerce = coerce;
23771function coerce(version) {
23772 if (version instanceof SemVer)
23773 return version;
23774
23775 if (typeof version !== 'string')
23776 return null;
23777
23778 var match = version.match(re[COERCE]);
23779
23780 if (match == null)
23781 return null;
23782
23783 return parse((match[1] || '0') + '.' + (match[2] || '0') + '.' + (match[3] || '0'));
23784}
23785
23786/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
23787
23788/***/ }),
23789/* 152 */
23790/***/ (function(module, exports, __webpack_require__) {
23791
23792/* WEBPACK VAR INJECTION */(function(global) {var ClientRequest = __webpack_require__(184)
23793var response = __webpack_require__(154)
23794var extend = __webpack_require__(189)
23795var statusCodes = __webpack_require__(166)
23796var url = __webpack_require__(156)
23797
23798var http = exports
23799
23800http.request = function (opts, cb) {
23801 if (typeof opts === 'string')
23802 opts = url.parse(opts)
23803 else
23804 opts = extend(opts)
23805
23806 // Normally, the page is loaded from http or https, so not specifying a protocol
23807 // will result in a (valid) protocol-relative url. However, this won't work if
23808 // the protocol is something else, like 'file:'
23809 var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''
23810
23811 var protocol = opts.protocol || defaultProtocol
23812 var host = opts.hostname || opts.host
23813 var port = opts.port
23814 var path = opts.path || '/'
23815
23816 // Necessary for IPv6 addresses
23817 if (host && host.indexOf(':') !== -1)
23818 host = '[' + host + ']'
23819
23820 // This may be a relative url. The browser should always be able to interpret it correctly.
23821 opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path
23822 opts.method = (opts.method || 'GET').toUpperCase()
23823 opts.headers = opts.headers || {}
23824
23825 // Also valid opts.auth, opts.mode
23826
23827 var req = new ClientRequest(opts)
23828 if (cb)
23829 req.on('response', cb)
23830 return req
23831}
23832
23833http.get = function get (opts, cb) {
23834 var req = http.request(opts, cb)
23835 req.end()
23836 return req
23837}
23838
23839http.ClientRequest = ClientRequest
23840http.IncomingMessage = response.IncomingMessage
23841
23842http.Agent = function () {}
23843http.Agent.defaultMaxSockets = 4
23844
23845http.globalAgent = new http.Agent()
23846
23847http.STATUS_CODES = statusCodes
23848
23849http.METHODS = [
23850 'CHECKOUT',
23851 'CONNECT',
23852 'COPY',
23853 'DELETE',
23854 'GET',
23855 'HEAD',
23856 'LOCK',
23857 'M-SEARCH',
23858 'MERGE',
23859 'MKACTIVITY',
23860 'MKCOL',
23861 'MOVE',
23862 'NOTIFY',
23863 'OPTIONS',
23864 'PATCH',
23865 'POST',
23866 'PROPFIND',
23867 'PROPPATCH',
23868 'PURGE',
23869 'PUT',
23870 'REPORT',
23871 'SEARCH',
23872 'SUBSCRIBE',
23873 'TRACE',
23874 'UNLOCK',
23875 'UNSUBSCRIBE'
23876]
23877/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
23878
23879/***/ }),
23880/* 153 */
23881/***/ (function(module, exports, __webpack_require__) {
23882
23883/* WEBPACK VAR INJECTION */(function(global) {exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)
23884
23885exports.writableStream = isFunction(global.WritableStream)
23886
23887exports.abortController = isFunction(global.AbortController)
23888
23889exports.blobConstructor = false
23890try {
23891 new Blob([new ArrayBuffer(1)])
23892 exports.blobConstructor = true
23893} catch (e) {}
23894
23895// The xhr request to example.com may violate some restrictive CSP configurations,
23896// so if we're running in a browser that supports `fetch`, avoid calling getXHR()
23897// and assume support for certain features below.
23898var xhr
23899function getXHR () {
23900 // Cache the xhr value
23901 if (xhr !== undefined) return xhr
23902
23903 if (global.XMLHttpRequest) {
23904 xhr = new global.XMLHttpRequest()
23905 // If XDomainRequest is available (ie only, where xhr might not work
23906 // cross domain), use the page location. Otherwise use example.com
23907 // Note: this doesn't actually make an http request.
23908 try {
23909 xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')
23910 } catch(e) {
23911 xhr = null
23912 }
23913 } else {
23914 // Service workers don't have XHR
23915 xhr = null
23916 }
23917 return xhr
23918}
23919
23920function checkTypeSupport (type) {
23921 var xhr = getXHR()
23922 if (!xhr) return false
23923 try {
23924 xhr.responseType = type
23925 return xhr.responseType === type
23926 } catch (e) {}
23927 return false
23928}
23929
23930// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.
23931// Safari 7.1 appears to have fixed this bug.
23932var haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'
23933var haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)
23934
23935// If fetch is supported, then arraybuffer will be supported too. Skip calling
23936// checkTypeSupport(), since that calls getXHR().
23937exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))
23938
23939// These next two tests unavoidably show warnings in Chrome. Since fetch will always
23940// be used if it's available, just return false for these to avoid the warnings.
23941exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')
23942exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&
23943 checkTypeSupport('moz-chunked-arraybuffer')
23944
23945// If fetch is supported, then overrideMimeType will be supported too. Skip calling
23946// getXHR().
23947exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)
23948
23949exports.vbArray = isFunction(global.VBArray)
23950
23951function isFunction (value) {
23952 return typeof value === 'function'
23953}
23954
23955xhr = null // Help gc
23956
23957/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
23958
23959/***/ }),
23960/* 154 */
23961/***/ (function(module, exports, __webpack_require__) {
23962
23963/* WEBPACK VAR INJECTION */(function(process, Buffer, global) {var capability = __webpack_require__(153)
23964var inherits = __webpack_require__(5)
23965var stream = __webpack_require__(150)
23966
23967var rStates = exports.readyStates = {
23968 UNSENT: 0,
23969 OPENED: 1,
23970 HEADERS_RECEIVED: 2,
23971 LOADING: 3,
23972 DONE: 4
23973}
23974
23975var IncomingMessage = exports.IncomingMessage = function (xhr, response, mode) {
23976 var self = this
23977 stream.Readable.call(self)
23978
23979 self._mode = mode
23980 self.headers = {}
23981 self.rawHeaders = []
23982 self.trailers = {}
23983 self.rawTrailers = []
23984
23985 // Fake the 'close' event, but only once 'end' fires
23986 self.on('end', function () {
23987 // The nextTick is necessary to prevent the 'request' module from causing an infinite loop
23988 process.nextTick(function () {
23989 self.emit('close')
23990 })
23991 })
23992
23993 if (mode === 'fetch') {
23994 self._fetchResponse = response
23995
23996 self.url = response.url
23997 self.statusCode = response.status
23998 self.statusMessage = response.statusText
23999
24000 response.headers.forEach(function (header, key){
24001 self.headers[key.toLowerCase()] = header
24002 self.rawHeaders.push(key, header)
24003 })
24004
24005 if (capability.writableStream) {
24006 var writable = new WritableStream({
24007 write: function (chunk) {
24008 return new Promise(function (resolve, reject) {
24009 if (self._destroyed) {
24010 return
24011 } else if(self.push(new Buffer(chunk))) {
24012 resolve()
24013 } else {
24014 self._resumeFetch = resolve
24015 }
24016 })
24017 },
24018 close: function () {
24019 if (!self._destroyed)
24020 self.push(null)
24021 },
24022 abort: function (err) {
24023 if (!self._destroyed)
24024 self.emit('error', err)
24025 }
24026 })
24027
24028 try {
24029 response.body.pipeTo(writable)
24030 return
24031 } catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this
24032 }
24033 // fallback for when writableStream or pipeTo aren't available
24034 var reader = response.body.getReader()
24035 function read () {
24036 reader.read().then(function (result) {
24037 if (self._destroyed)
24038 return
24039 if (result.done) {
24040 self.push(null)
24041 return
24042 }
24043 self.push(new Buffer(result.value))
24044 read()
24045 }).catch(function(err) {
24046 if (!self._destroyed)
24047 self.emit('error', err)
24048 })
24049 }
24050 read()
24051 } else {
24052 self._xhr = xhr
24053 self._pos = 0
24054
24055 self.url = xhr.responseURL
24056 self.statusCode = xhr.status
24057 self.statusMessage = xhr.statusText
24058 var headers = xhr.getAllResponseHeaders().split(/\r?\n/)
24059 headers.forEach(function (header) {
24060 var matches = header.match(/^([^:]+):\s*(.*)/)
24061 if (matches) {
24062 var key = matches[1].toLowerCase()
24063 if (key === 'set-cookie') {
24064 if (self.headers[key] === undefined) {
24065 self.headers[key] = []
24066 }
24067 self.headers[key].push(matches[2])
24068 } else if (self.headers[key] !== undefined) {
24069 self.headers[key] += ', ' + matches[2]
24070 } else {
24071 self.headers[key] = matches[2]
24072 }
24073 self.rawHeaders.push(matches[1], matches[2])
24074 }
24075 })
24076
24077 self._charset = 'x-user-defined'
24078 if (!capability.overrideMimeType) {
24079 var mimeType = self.rawHeaders['mime-type']
24080 if (mimeType) {
24081 var charsetMatch = mimeType.match(/;\s*charset=([^;])(;|$)/)
24082 if (charsetMatch) {
24083 self._charset = charsetMatch[1].toLowerCase()
24084 }
24085 }
24086 if (!self._charset)
24087 self._charset = 'utf-8' // best guess
24088 }
24089 }
24090}
24091
24092inherits(IncomingMessage, stream.Readable)
24093
24094IncomingMessage.prototype._read = function () {
24095 var self = this
24096
24097 var resolve = self._resumeFetch
24098 if (resolve) {
24099 self._resumeFetch = null
24100 resolve()
24101 }
24102}
24103
24104IncomingMessage.prototype._onXHRProgress = function () {
24105 var self = this
24106
24107 var xhr = self._xhr
24108
24109 var response = null
24110 switch (self._mode) {
24111 case 'text:vbarray': // For IE9
24112 if (xhr.readyState !== rStates.DONE)
24113 break
24114 try {
24115 // This fails in IE8
24116 response = new global.VBArray(xhr.responseBody).toArray()
24117 } catch (e) {}
24118 if (response !== null) {
24119 self.push(new Buffer(response))
24120 break
24121 }
24122 // Falls through in IE8
24123 case 'text':
24124 try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4
24125 response = xhr.responseText
24126 } catch (e) {
24127 self._mode = 'text:vbarray'
24128 break
24129 }
24130 if (response.length > self._pos) {
24131 var newData = response.substr(self._pos)
24132 if (self._charset === 'x-user-defined') {
24133 var buffer = new Buffer(newData.length)
24134 for (var i = 0; i < newData.length; i++)
24135 buffer[i] = newData.charCodeAt(i) & 0xff
24136
24137 self.push(buffer)
24138 } else {
24139 self.push(newData, self._charset)
24140 }
24141 self._pos = response.length
24142 }
24143 break
24144 case 'arraybuffer':
24145 if (xhr.readyState !== rStates.DONE || !xhr.response)
24146 break
24147 response = xhr.response
24148 self.push(new Buffer(new Uint8Array(response)))
24149 break
24150 case 'moz-chunked-arraybuffer': // take whole
24151 response = xhr.response
24152 if (xhr.readyState !== rStates.LOADING || !response)
24153 break
24154 self.push(new Buffer(new Uint8Array(response)))
24155 break
24156 case 'ms-stream':
24157 response = xhr.response
24158 if (xhr.readyState !== rStates.LOADING)
24159 break
24160 var reader = new global.MSStreamReader()
24161 reader.onprogress = function () {
24162 if (reader.result.byteLength > self._pos) {
24163 self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))
24164 self._pos = reader.result.byteLength
24165 }
24166 }
24167 reader.onload = function () {
24168 self.push(null)
24169 }
24170 // reader.onerror = ??? // TODO: this
24171 reader.readAsArrayBuffer(response)
24172 break
24173 }
24174
24175 // The ms-stream case handles end separately in reader.onload()
24176 if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {
24177 self.push(null)
24178 }
24179}
24180
24181/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(11).Buffer, __webpack_require__(2)))
24182
24183/***/ }),
24184/* 155 */
24185/***/ (function(module, exports, __webpack_require__) {
24186
24187"use strict";
24188// Copyright Joyent, Inc. and other Node contributors.
24189//
24190// Permission is hereby granted, free of charge, to any person obtaining a
24191// copy of this software and associated documentation files (the
24192// "Software"), to deal in the Software without restriction, including
24193// without limitation the rights to use, copy, modify, merge, publish,
24194// distribute, sublicense, and/or sell copies of the Software, and to permit
24195// persons to whom the Software is furnished to do so, subject to the
24196// following conditions:
24197//
24198// The above copyright notice and this permission notice shall be included
24199// in all copies or substantial portions of the Software.
24200//
24201// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24202// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24203// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24204// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24205// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24206// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24207// USE OR OTHER DEALINGS IN THE SOFTWARE.
24208
24209
24210
24211/*<replacement>*/
24212
24213var Buffer = __webpack_require__(14).Buffer;
24214/*</replacement>*/
24215
24216var isEncoding = Buffer.isEncoding || function (encoding) {
24217 encoding = '' + encoding;
24218 switch (encoding && encoding.toLowerCase()) {
24219 case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
24220 return true;
24221 default:
24222 return false;
24223 }
24224};
24225
24226function _normalizeEncoding(enc) {
24227 if (!enc) return 'utf8';
24228 var retried;
24229 while (true) {
24230 switch (enc) {
24231 case 'utf8':
24232 case 'utf-8':
24233 return 'utf8';
24234 case 'ucs2':
24235 case 'ucs-2':
24236 case 'utf16le':
24237 case 'utf-16le':
24238 return 'utf16le';
24239 case 'latin1':
24240 case 'binary':
24241 return 'latin1';
24242 case 'base64':
24243 case 'ascii':
24244 case 'hex':
24245 return enc;
24246 default:
24247 if (retried) return; // undefined
24248 enc = ('' + enc).toLowerCase();
24249 retried = true;
24250 }
24251 }
24252};
24253
24254// Do not cache `Buffer.isEncoding` when checking encoding names as some
24255// modules monkey-patch it to support additional encodings
24256function normalizeEncoding(enc) {
24257 var nenc = _normalizeEncoding(enc);
24258 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
24259 return nenc || enc;
24260}
24261
24262// StringDecoder provides an interface for efficiently splitting a series of
24263// buffers into a series of JS strings without breaking apart multi-byte
24264// characters.
24265exports.StringDecoder = StringDecoder;
24266function StringDecoder(encoding) {
24267 this.encoding = normalizeEncoding(encoding);
24268 var nb;
24269 switch (this.encoding) {
24270 case 'utf16le':
24271 this.text = utf16Text;
24272 this.end = utf16End;
24273 nb = 4;
24274 break;
24275 case 'utf8':
24276 this.fillLast = utf8FillLast;
24277 nb = 4;
24278 break;
24279 case 'base64':
24280 this.text = base64Text;
24281 this.end = base64End;
24282 nb = 3;
24283 break;
24284 default:
24285 this.write = simpleWrite;
24286 this.end = simpleEnd;
24287 return;
24288 }
24289 this.lastNeed = 0;
24290 this.lastTotal = 0;
24291 this.lastChar = Buffer.allocUnsafe(nb);
24292}
24293
24294StringDecoder.prototype.write = function (buf) {
24295 if (buf.length === 0) return '';
24296 var r;
24297 var i;
24298 if (this.lastNeed) {
24299 r = this.fillLast(buf);
24300 if (r === undefined) return '';
24301 i = this.lastNeed;
24302 this.lastNeed = 0;
24303 } else {
24304 i = 0;
24305 }
24306 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
24307 return r || '';
24308};
24309
24310StringDecoder.prototype.end = utf8End;
24311
24312// Returns only complete characters in a Buffer
24313StringDecoder.prototype.text = utf8Text;
24314
24315// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
24316StringDecoder.prototype.fillLast = function (buf) {
24317 if (this.lastNeed <= buf.length) {
24318 buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
24319 return this.lastChar.toString(this.encoding, 0, this.lastTotal);
24320 }
24321 buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
24322 this.lastNeed -= buf.length;
24323};
24324
24325// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
24326// continuation byte. If an invalid byte is detected, -2 is returned.
24327function utf8CheckByte(byte) {
24328 if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
24329 return byte >> 6 === 0x02 ? -1 : -2;
24330}
24331
24332// Checks at most 3 bytes at the end of a Buffer in order to detect an
24333// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
24334// needed to complete the UTF-8 character (if applicable) are returned.
24335function utf8CheckIncomplete(self, buf, i) {
24336 var j = buf.length - 1;
24337 if (j < i) return 0;
24338 var nb = utf8CheckByte(buf[j]);
24339 if (nb >= 0) {
24340 if (nb > 0) self.lastNeed = nb - 1;
24341 return nb;
24342 }
24343 if (--j < i || nb === -2) return 0;
24344 nb = utf8CheckByte(buf[j]);
24345 if (nb >= 0) {
24346 if (nb > 0) self.lastNeed = nb - 2;
24347 return nb;
24348 }
24349 if (--j < i || nb === -2) return 0;
24350 nb = utf8CheckByte(buf[j]);
24351 if (nb >= 0) {
24352 if (nb > 0) {
24353 if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
24354 }
24355 return nb;
24356 }
24357 return 0;
24358}
24359
24360// Validates as many continuation bytes for a multi-byte UTF-8 character as
24361// needed or are available. If we see a non-continuation byte where we expect
24362// one, we "replace" the validated continuation bytes we've seen so far with
24363// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
24364// behavior. The continuation byte check is included three times in the case
24365// where all of the continuation bytes for a character exist in the same buffer.
24366// It is also done this way as a slight performance increase instead of using a
24367// loop.
24368function utf8CheckExtraBytes(self, buf, p) {
24369 if ((buf[0] & 0xC0) !== 0x80) {
24370 self.lastNeed = 0;
24371 return '\ufffd';
24372 }
24373 if (self.lastNeed > 1 && buf.length > 1) {
24374 if ((buf[1] & 0xC0) !== 0x80) {
24375 self.lastNeed = 1;
24376 return '\ufffd';
24377 }
24378 if (self.lastNeed > 2 && buf.length > 2) {
24379 if ((buf[2] & 0xC0) !== 0x80) {
24380 self.lastNeed = 2;
24381 return '\ufffd';
24382 }
24383 }
24384 }
24385}
24386
24387// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
24388function utf8FillLast(buf) {
24389 var p = this.lastTotal - this.lastNeed;
24390 var r = utf8CheckExtraBytes(this, buf, p);
24391 if (r !== undefined) return r;
24392 if (this.lastNeed <= buf.length) {
24393 buf.copy(this.lastChar, p, 0, this.lastNeed);
24394 return this.lastChar.toString(this.encoding, 0, this.lastTotal);
24395 }
24396 buf.copy(this.lastChar, p, 0, buf.length);
24397 this.lastNeed -= buf.length;
24398}
24399
24400// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
24401// partial character, the character's bytes are buffered until the required
24402// number of bytes are available.
24403function utf8Text(buf, i) {
24404 var total = utf8CheckIncomplete(this, buf, i);
24405 if (!this.lastNeed) return buf.toString('utf8', i);
24406 this.lastTotal = total;
24407 var end = buf.length - (total - this.lastNeed);
24408 buf.copy(this.lastChar, 0, end);
24409 return buf.toString('utf8', i, end);
24410}
24411
24412// For UTF-8, a replacement character is added when ending on a partial
24413// character.
24414function utf8End(buf) {
24415 var r = buf && buf.length ? this.write(buf) : '';
24416 if (this.lastNeed) return r + '\ufffd';
24417 return r;
24418}
24419
24420// UTF-16LE typically needs two bytes per character, but even if we have an even
24421// number of bytes available, we need to check if we end on a leading/high
24422// surrogate. In that case, we need to wait for the next two bytes in order to
24423// decode the last character properly.
24424function utf16Text(buf, i) {
24425 if ((buf.length - i) % 2 === 0) {
24426 var r = buf.toString('utf16le', i);
24427 if (r) {
24428 var c = r.charCodeAt(r.length - 1);
24429 if (c >= 0xD800 && c <= 0xDBFF) {
24430 this.lastNeed = 2;
24431 this.lastTotal = 4;
24432 this.lastChar[0] = buf[buf.length - 2];
24433 this.lastChar[1] = buf[buf.length - 1];
24434 return r.slice(0, -1);
24435 }
24436 }
24437 return r;
24438 }
24439 this.lastNeed = 1;
24440 this.lastTotal = 2;
24441 this.lastChar[0] = buf[buf.length - 1];
24442 return buf.toString('utf16le', i, buf.length - 1);
24443}
24444
24445// For UTF-16LE we do not explicitly append special replacement characters if we
24446// end on a partial character, we simply let v8 handle that.
24447function utf16End(buf) {
24448 var r = buf && buf.length ? this.write(buf) : '';
24449 if (this.lastNeed) {
24450 var end = this.lastTotal - this.lastNeed;
24451 return r + this.lastChar.toString('utf16le', 0, end);
24452 }
24453 return r;
24454}
24455
24456function base64Text(buf, i) {
24457 var n = (buf.length - i) % 3;
24458 if (n === 0) return buf.toString('base64', i);
24459 this.lastNeed = 3 - n;
24460 this.lastTotal = 3;
24461 if (n === 1) {
24462 this.lastChar[0] = buf[buf.length - 1];
24463 } else {
24464 this.lastChar[0] = buf[buf.length - 2];
24465 this.lastChar[1] = buf[buf.length - 1];
24466 }
24467 return buf.toString('base64', i, buf.length - n);
24468}
24469
24470function base64End(buf) {
24471 var r = buf && buf.length ? this.write(buf) : '';
24472 if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
24473 return r;
24474}
24475
24476// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
24477function simpleWrite(buf) {
24478 return buf.toString(this.encoding);
24479}
24480
24481function simpleEnd(buf) {
24482 return buf && buf.length ? this.write(buf) : '';
24483}
24484
24485/***/ }),
24486/* 156 */
24487/***/ (function(module, exports, __webpack_require__) {
24488
24489"use strict";
24490// Copyright Joyent, Inc. and other Node contributors.
24491//
24492// Permission is hereby granted, free of charge, to any person obtaining a
24493// copy of this software and associated documentation files (the
24494// "Software"), to deal in the Software without restriction, including
24495// without limitation the rights to use, copy, modify, merge, publish,
24496// distribute, sublicense, and/or sell copies of the Software, and to permit
24497// persons to whom the Software is furnished to do so, subject to the
24498// following conditions:
24499//
24500// The above copyright notice and this permission notice shall be included
24501// in all copies or substantial portions of the Software.
24502//
24503// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24504// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24505// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24506// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24507// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24508// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24509// USE OR OTHER DEALINGS IN THE SOFTWARE.
24510
24511
24512
24513var punycode = __webpack_require__(177);
24514var util = __webpack_require__(187);
24515
24516exports.parse = urlParse;
24517exports.resolve = urlResolve;
24518exports.resolveObject = urlResolveObject;
24519exports.format = urlFormat;
24520
24521exports.Url = Url;
24522
24523function Url() {
24524 this.protocol = null;
24525 this.slashes = null;
24526 this.auth = null;
24527 this.host = null;
24528 this.port = null;
24529 this.hostname = null;
24530 this.hash = null;
24531 this.search = null;
24532 this.query = null;
24533 this.pathname = null;
24534 this.path = null;
24535 this.href = null;
24536}
24537
24538// Reference: RFC 3986, RFC 1808, RFC 2396
24539
24540// define these here so at least they only have to be
24541// compiled once on the first module load.
24542var protocolPattern = /^([a-z0-9.+-]+:)/i,
24543 portPattern = /:[0-9]*$/,
24544
24545 // Special case for a simple path URL
24546 simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
24547
24548 // RFC 2396: characters reserved for delimiting URLs.
24549 // We actually just auto-escape these.
24550 delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],
24551
24552 // RFC 2396: characters not allowed for various reasons.
24553 unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),
24554
24555 // Allowed by RFCs, but cause of XSS attacks. Always escape these.
24556 autoEscape = ['\''].concat(unwise),
24557 // Characters that are never ever allowed in a hostname.
24558 // Note that any invalid chars are also handled, but these
24559 // are the ones that are *expected* to be seen, so we fast-path
24560 // them.
24561 nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),
24562 hostEndingChars = ['/', '?', '#'],
24563 hostnameMaxLen = 255,
24564 hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,
24565 hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
24566 // protocols that can allow "unsafe" and "unwise" chars.
24567 unsafeProtocol = {
24568 'javascript': true,
24569 'javascript:': true
24570 },
24571 // protocols that never have a hostname.
24572 hostlessProtocol = {
24573 'javascript': true,
24574 'javascript:': true
24575 },
24576 // protocols that always contain a // bit.
24577 slashedProtocol = {
24578 'http': true,
24579 'https': true,
24580 'ftp': true,
24581 'gopher': true,
24582 'file': true,
24583 'http:': true,
24584 'https:': true,
24585 'ftp:': true,
24586 'gopher:': true,
24587 'file:': true
24588 },
24589 querystring = __webpack_require__(180);
24590
24591function urlParse(url, parseQueryString, slashesDenoteHost) {
24592 if (url && util.isObject(url) && url instanceof Url) return url;
24593
24594 var u = new Url;
24595 u.parse(url, parseQueryString, slashesDenoteHost);
24596 return u;
24597}
24598
24599Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
24600 if (!util.isString(url)) {
24601 throw new TypeError("Parameter 'url' must be a string, not " + typeof url);
24602 }
24603
24604 // Copy chrome, IE, opera backslash-handling behavior.
24605 // Back slashes before the query string get converted to forward slashes
24606 // See: https://code.google.com/p/chromium/issues/detail?id=25916
24607 var queryIndex = url.indexOf('?'),
24608 splitter =
24609 (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',
24610 uSplit = url.split(splitter),
24611 slashRegex = /\\/g;
24612 uSplit[0] = uSplit[0].replace(slashRegex, '/');
24613 url = uSplit.join(splitter);
24614
24615 var rest = url;
24616
24617 // trim before proceeding.
24618 // This is to support parse stuff like " http://foo.com \n"
24619 rest = rest.trim();
24620
24621 if (!slashesDenoteHost && url.split('#').length === 1) {
24622 // Try fast path regexp
24623 var simplePath = simplePathPattern.exec(rest);
24624 if (simplePath) {
24625 this.path = rest;
24626 this.href = rest;
24627 this.pathname = simplePath[1];
24628 if (simplePath[2]) {
24629 this.search = simplePath[2];
24630 if (parseQueryString) {
24631 this.query = querystring.parse(this.search.substr(1));
24632 } else {
24633 this.query = this.search.substr(1);
24634 }
24635 } else if (parseQueryString) {
24636 this.search = '';
24637 this.query = {};
24638 }
24639 return this;
24640 }
24641 }
24642
24643 var proto = protocolPattern.exec(rest);
24644 if (proto) {
24645 proto = proto[0];
24646 var lowerProto = proto.toLowerCase();
24647 this.protocol = lowerProto;
24648 rest = rest.substr(proto.length);
24649 }
24650
24651 // figure out if it's got a host
24652 // user@server is *always* interpreted as a hostname, and url
24653 // resolution will treat //foo/bar as host=foo,path=bar because that's
24654 // how the browser resolves relative URLs.
24655 if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
24656 var slashes = rest.substr(0, 2) === '//';
24657 if (slashes && !(proto && hostlessProtocol[proto])) {
24658 rest = rest.substr(2);
24659 this.slashes = true;
24660 }
24661 }
24662
24663 if (!hostlessProtocol[proto] &&
24664 (slashes || (proto && !slashedProtocol[proto]))) {
24665
24666 // there's a hostname.
24667 // the first instance of /, ?, ;, or # ends the host.
24668 //
24669 // If there is an @ in the hostname, then non-host chars *are* allowed
24670 // to the left of the last @ sign, unless some host-ending character
24671 // comes *before* the @-sign.
24672 // URLs are obnoxious.
24673 //
24674 // ex:
24675 // http://a@b@c/ => user:a@b host:c
24676 // http://a@b?@c => user:a host:c path:/?@c
24677
24678 // v0.12 TODO(isaacs): This is not quite how Chrome does things.
24679 // Review our test case against browsers more comprehensively.
24680
24681 // find the first instance of any hostEndingChars
24682 var hostEnd = -1;
24683 for (var i = 0; i < hostEndingChars.length; i++) {
24684 var hec = rest.indexOf(hostEndingChars[i]);
24685 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
24686 hostEnd = hec;
24687 }
24688
24689 // at this point, either we have an explicit point where the
24690 // auth portion cannot go past, or the last @ char is the decider.
24691 var auth, atSign;
24692 if (hostEnd === -1) {
24693 // atSign can be anywhere.
24694 atSign = rest.lastIndexOf('@');
24695 } else {
24696 // atSign must be in auth portion.
24697 // http://a@b/c@d => host:b auth:a path:/c@d
24698 atSign = rest.lastIndexOf('@', hostEnd);
24699 }
24700
24701 // Now we have a portion which is definitely the auth.
24702 // Pull that off.
24703 if (atSign !== -1) {
24704 auth = rest.slice(0, atSign);
24705 rest = rest.slice(atSign + 1);
24706 this.auth = decodeURIComponent(auth);
24707 }
24708
24709 // the host is the remaining to the left of the first non-host char
24710 hostEnd = -1;
24711 for (var i = 0; i < nonHostChars.length; i++) {
24712 var hec = rest.indexOf(nonHostChars[i]);
24713 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
24714 hostEnd = hec;
24715 }
24716 // if we still have not hit it, then the entire thing is a host.
24717 if (hostEnd === -1)
24718 hostEnd = rest.length;
24719
24720 this.host = rest.slice(0, hostEnd);
24721 rest = rest.slice(hostEnd);
24722
24723 // pull out port.
24724 this.parseHost();
24725
24726 // we've indicated that there is a hostname,
24727 // so even if it's empty, it has to be present.
24728 this.hostname = this.hostname || '';
24729
24730 // if hostname begins with [ and ends with ]
24731 // assume that it's an IPv6 address.
24732 var ipv6Hostname = this.hostname[0] === '[' &&
24733 this.hostname[this.hostname.length - 1] === ']';
24734
24735 // validate a little.
24736 if (!ipv6Hostname) {
24737 var hostparts = this.hostname.split(/\./);
24738 for (var i = 0, l = hostparts.length; i < l; i++) {
24739 var part = hostparts[i];
24740 if (!part) continue;
24741 if (!part.match(hostnamePartPattern)) {
24742 var newpart = '';
24743 for (var j = 0, k = part.length; j < k; j++) {
24744 if (part.charCodeAt(j) > 127) {
24745 // we replace non-ASCII char with a temporary placeholder
24746 // we need this to make sure size of hostname is not
24747 // broken by replacing non-ASCII by nothing
24748 newpart += 'x';
24749 } else {
24750 newpart += part[j];
24751 }
24752 }
24753 // we test again with ASCII char only
24754 if (!newpart.match(hostnamePartPattern)) {
24755 var validParts = hostparts.slice(0, i);
24756 var notHost = hostparts.slice(i + 1);
24757 var bit = part.match(hostnamePartStart);
24758 if (bit) {
24759 validParts.push(bit[1]);
24760 notHost.unshift(bit[2]);
24761 }
24762 if (notHost.length) {
24763 rest = '/' + notHost.join('.') + rest;
24764 }
24765 this.hostname = validParts.join('.');
24766 break;
24767 }
24768 }
24769 }
24770 }
24771
24772 if (this.hostname.length > hostnameMaxLen) {
24773 this.hostname = '';
24774 } else {
24775 // hostnames are always lower case.
24776 this.hostname = this.hostname.toLowerCase();
24777 }
24778
24779 if (!ipv6Hostname) {
24780 // IDNA Support: Returns a punycoded representation of "domain".
24781 // It only converts parts of the domain name that
24782 // have non-ASCII characters, i.e. it doesn't matter if
24783 // you call it with a domain that already is ASCII-only.
24784 this.hostname = punycode.toASCII(this.hostname);
24785 }
24786
24787 var p = this.port ? ':' + this.port : '';
24788 var h = this.hostname || '';
24789 this.host = h + p;
24790 this.href += this.host;
24791
24792 // strip [ and ] from the hostname
24793 // the host field still retains them, though
24794 if (ipv6Hostname) {
24795 this.hostname = this.hostname.substr(1, this.hostname.length - 2);
24796 if (rest[0] !== '/') {
24797 rest = '/' + rest;
24798 }
24799 }
24800 }
24801
24802 // now rest is set to the post-host stuff.
24803 // chop off any delim chars.
24804 if (!unsafeProtocol[lowerProto]) {
24805
24806 // First, make 100% sure that any "autoEscape" chars get
24807 // escaped, even if encodeURIComponent doesn't think they
24808 // need to be.
24809 for (var i = 0, l = autoEscape.length; i < l; i++) {
24810 var ae = autoEscape[i];
24811 if (rest.indexOf(ae) === -1)
24812 continue;
24813 var esc = encodeURIComponent(ae);
24814 if (esc === ae) {
24815 esc = escape(ae);
24816 }
24817 rest = rest.split(ae).join(esc);
24818 }
24819 }
24820
24821
24822 // chop off from the tail first.
24823 var hash = rest.indexOf('#');
24824 if (hash !== -1) {
24825 // got a fragment string.
24826 this.hash = rest.substr(hash);
24827 rest = rest.slice(0, hash);
24828 }
24829 var qm = rest.indexOf('?');
24830 if (qm !== -1) {
24831 this.search = rest.substr(qm);
24832 this.query = rest.substr(qm + 1);
24833 if (parseQueryString) {
24834 this.query = querystring.parse(this.query);
24835 }
24836 rest = rest.slice(0, qm);
24837 } else if (parseQueryString) {
24838 // no query string, but parseQueryString still requested
24839 this.search = '';
24840 this.query = {};
24841 }
24842 if (rest) this.pathname = rest;
24843 if (slashedProtocol[lowerProto] &&
24844 this.hostname && !this.pathname) {
24845 this.pathname = '/';
24846 }
24847
24848 //to support http.request
24849 if (this.pathname || this.search) {
24850 var p = this.pathname || '';
24851 var s = this.search || '';
24852 this.path = p + s;
24853 }
24854
24855 // finally, reconstruct the href based on what has been validated.
24856 this.href = this.format();
24857 return this;
24858};
24859
24860// format a parsed object into a url string
24861function urlFormat(obj) {
24862 // ensure it's an object, and not a string url.
24863 // If it's an obj, this is a no-op.
24864 // this way, you can call url_format() on strings
24865 // to clean up potentially wonky urls.
24866 if (util.isString(obj)) obj = urlParse(obj);
24867 if (!(obj instanceof Url)) return Url.prototype.format.call(obj);
24868 return obj.format();
24869}
24870
24871Url.prototype.format = function() {
24872 var auth = this.auth || '';
24873 if (auth) {
24874 auth = encodeURIComponent(auth);
24875 auth = auth.replace(/%3A/i, ':');
24876 auth += '@';
24877 }
24878
24879 var protocol = this.protocol || '',
24880 pathname = this.pathname || '',
24881 hash = this.hash || '',
24882 host = false,
24883 query = '';
24884
24885 if (this.host) {
24886 host = auth + this.host;
24887 } else if (this.hostname) {
24888 host = auth + (this.hostname.indexOf(':') === -1 ?
24889 this.hostname :
24890 '[' + this.hostname + ']');
24891 if (this.port) {
24892 host += ':' + this.port;
24893 }
24894 }
24895
24896 if (this.query &&
24897 util.isObject(this.query) &&
24898 Object.keys(this.query).length) {
24899 query = querystring.stringify(this.query);
24900 }
24901
24902 var search = this.search || (query && ('?' + query)) || '';
24903
24904 if (protocol && protocol.substr(-1) !== ':') protocol += ':';
24905
24906 // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.
24907 // unless they had them to begin with.
24908 if (this.slashes ||
24909 (!protocol || slashedProtocol[protocol]) && host !== false) {
24910 host = '//' + (host || '');
24911 if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;
24912 } else if (!host) {
24913 host = '';
24914 }
24915
24916 if (hash && hash.charAt(0) !== '#') hash = '#' + hash;
24917 if (search && search.charAt(0) !== '?') search = '?' + search;
24918
24919 pathname = pathname.replace(/[?#]/g, function(match) {
24920 return encodeURIComponent(match);
24921 });
24922 search = search.replace('#', '%23');
24923
24924 return protocol + host + pathname + search + hash;
24925};
24926
24927function urlResolve(source, relative) {
24928 return urlParse(source, false, true).resolve(relative);
24929}
24930
24931Url.prototype.resolve = function(relative) {
24932 return this.resolveObject(urlParse(relative, false, true)).format();
24933};
24934
24935function urlResolveObject(source, relative) {
24936 if (!source) return relative;
24937 return urlParse(source, false, true).resolveObject(relative);
24938}
24939
24940Url.prototype.resolveObject = function(relative) {
24941 if (util.isString(relative)) {
24942 var rel = new Url();
24943 rel.parse(relative, false, true);
24944 relative = rel;
24945 }
24946
24947 var result = new Url();
24948 var tkeys = Object.keys(this);
24949 for (var tk = 0; tk < tkeys.length; tk++) {
24950 var tkey = tkeys[tk];
24951 result[tkey] = this[tkey];
24952 }
24953
24954 // hash is always overridden, no matter what.
24955 // even href="" will remove it.
24956 result.hash = relative.hash;
24957
24958 // if the relative url is empty, then there's nothing left to do here.
24959 if (relative.href === '') {
24960 result.href = result.format();
24961 return result;
24962 }
24963
24964 // hrefs like //foo/bar always cut to the protocol.
24965 if (relative.slashes && !relative.protocol) {
24966 // take everything except the protocol from relative
24967 var rkeys = Object.keys(relative);
24968 for (var rk = 0; rk < rkeys.length; rk++) {
24969 var rkey = rkeys[rk];
24970 if (rkey !== 'protocol')
24971 result[rkey] = relative[rkey];
24972 }
24973
24974 //urlParse appends trailing / to urls like http://www.example.com
24975 if (slashedProtocol[result.protocol] &&
24976 result.hostname && !result.pathname) {
24977 result.path = result.pathname = '/';
24978 }
24979
24980 result.href = result.format();
24981 return result;
24982 }
24983
24984 if (relative.protocol && relative.protocol !== result.protocol) {
24985 // if it's a known url protocol, then changing
24986 // the protocol does weird things
24987 // first, if it's not file:, then we MUST have a host,
24988 // and if there was a path
24989 // to begin with, then we MUST have a path.
24990 // if it is file:, then the host is dropped,
24991 // because that's known to be hostless.
24992 // anything else is assumed to be absolute.
24993 if (!slashedProtocol[relative.protocol]) {
24994 var keys = Object.keys(relative);
24995 for (var v = 0; v < keys.length; v++) {
24996 var k = keys[v];
24997 result[k] = relative[k];
24998 }
24999 result.href = result.format();
25000 return result;
25001 }
25002
25003 result.protocol = relative.protocol;
25004 if (!relative.host && !hostlessProtocol[relative.protocol]) {
25005 var relPath = (relative.pathname || '').split('/');
25006 while (relPath.length && !(relative.host = relPath.shift()));
25007 if (!relative.host) relative.host = '';
25008 if (!relative.hostname) relative.hostname = '';
25009 if (relPath[0] !== '') relPath.unshift('');
25010 if (relPath.length < 2) relPath.unshift('');
25011 result.pathname = relPath.join('/');
25012 } else {
25013 result.pathname = relative.pathname;
25014 }
25015 result.search = relative.search;
25016 result.query = relative.query;
25017 result.host = relative.host || '';
25018 result.auth = relative.auth;
25019 result.hostname = relative.hostname || relative.host;
25020 result.port = relative.port;
25021 // to support http.request
25022 if (result.pathname || result.search) {
25023 var p = result.pathname || '';
25024 var s = result.search || '';
25025 result.path = p + s;
25026 }
25027 result.slashes = result.slashes || relative.slashes;
25028 result.href = result.format();
25029 return result;
25030 }
25031
25032 var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),
25033 isRelAbs = (
25034 relative.host ||
25035 relative.pathname && relative.pathname.charAt(0) === '/'
25036 ),
25037 mustEndAbs = (isRelAbs || isSourceAbs ||
25038 (result.host && relative.pathname)),
25039 removeAllDots = mustEndAbs,
25040 srcPath = result.pathname && result.pathname.split('/') || [],
25041 relPath = relative.pathname && relative.pathname.split('/') || [],
25042 psychotic = result.protocol && !slashedProtocol[result.protocol];
25043
25044 // if the url is a non-slashed url, then relative
25045 // links like ../.. should be able
25046 // to crawl up to the hostname, as well. This is strange.
25047 // result.protocol has already been set by now.
25048 // Later on, put the first path part into the host field.
25049 if (psychotic) {
25050 result.hostname = '';
25051 result.port = null;
25052 if (result.host) {
25053 if (srcPath[0] === '') srcPath[0] = result.host;
25054 else srcPath.unshift(result.host);
25055 }
25056 result.host = '';
25057 if (relative.protocol) {
25058 relative.hostname = null;
25059 relative.port = null;
25060 if (relative.host) {
25061 if (relPath[0] === '') relPath[0] = relative.host;
25062 else relPath.unshift(relative.host);
25063 }
25064 relative.host = null;
25065 }
25066 mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');
25067 }
25068
25069 if (isRelAbs) {
25070 // it's absolute.
25071 result.host = (relative.host || relative.host === '') ?
25072 relative.host : result.host;
25073 result.hostname = (relative.hostname || relative.hostname === '') ?
25074 relative.hostname : result.hostname;
25075 result.search = relative.search;
25076 result.query = relative.query;
25077 srcPath = relPath;
25078 // fall through to the dot-handling below.
25079 } else if (relPath.length) {
25080 // it's relative
25081 // throw away the existing file, and take the new path instead.
25082 if (!srcPath) srcPath = [];
25083 srcPath.pop();
25084 srcPath = srcPath.concat(relPath);
25085 result.search = relative.search;
25086 result.query = relative.query;
25087 } else if (!util.isNullOrUndefined(relative.search)) {
25088 // just pull out the search.
25089 // like href='?foo'.
25090 // Put this after the other two cases because it simplifies the booleans
25091 if (psychotic) {
25092 result.hostname = result.host = srcPath.shift();
25093 //occationaly the auth can get stuck only in host
25094 //this especially happens in cases like
25095 //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
25096 var authInHost = result.host && result.host.indexOf('@') > 0 ?
25097 result.host.split('@') : false;
25098 if (authInHost) {
25099 result.auth = authInHost.shift();
25100 result.host = result.hostname = authInHost.shift();
25101 }
25102 }
25103 result.search = relative.search;
25104 result.query = relative.query;
25105 //to support http.request
25106 if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
25107 result.path = (result.pathname ? result.pathname : '') +
25108 (result.search ? result.search : '');
25109 }
25110 result.href = result.format();
25111 return result;
25112 }
25113
25114 if (!srcPath.length) {
25115 // no path at all. easy.
25116 // we've already handled the other stuff above.
25117 result.pathname = null;
25118 //to support http.request
25119 if (result.search) {
25120 result.path = '/' + result.search;
25121 } else {
25122 result.path = null;
25123 }
25124 result.href = result.format();
25125 return result;
25126 }
25127
25128 // if a url ENDs in . or .., then it must get a trailing slash.
25129 // however, if it ends in anything else non-slashy,
25130 // then it must NOT get a trailing slash.
25131 var last = srcPath.slice(-1)[0];
25132 var hasTrailingSlash = (
25133 (result.host || relative.host || srcPath.length > 1) &&
25134 (last === '.' || last === '..') || last === '');
25135
25136 // strip single dots, resolve double dots to parent dir
25137 // if the path tries to go above the root, `up` ends up > 0
25138 var up = 0;
25139 for (var i = srcPath.length; i >= 0; i--) {
25140 last = srcPath[i];
25141 if (last === '.') {
25142 srcPath.splice(i, 1);
25143 } else if (last === '..') {
25144 srcPath.splice(i, 1);
25145 up++;
25146 } else if (up) {
25147 srcPath.splice(i, 1);
25148 up--;
25149 }
25150 }
25151
25152 // if the path is allowed to go above the root, restore leading ..s
25153 if (!mustEndAbs && !removeAllDots) {
25154 for (; up--; up) {
25155 srcPath.unshift('..');
25156 }
25157 }
25158
25159 if (mustEndAbs && srcPath[0] !== '' &&
25160 (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {
25161 srcPath.unshift('');
25162 }
25163
25164 if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {
25165 srcPath.push('');
25166 }
25167
25168 var isAbsolute = srcPath[0] === '' ||
25169 (srcPath[0] && srcPath[0].charAt(0) === '/');
25170
25171 // put the host back
25172 if (psychotic) {
25173 result.hostname = result.host = isAbsolute ? '' :
25174 srcPath.length ? srcPath.shift() : '';
25175 //occationaly the auth can get stuck only in host
25176 //this especially happens in cases like
25177 //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
25178 var authInHost = result.host && result.host.indexOf('@') > 0 ?
25179 result.host.split('@') : false;
25180 if (authInHost) {
25181 result.auth = authInHost.shift();
25182 result.host = result.hostname = authInHost.shift();
25183 }
25184 }
25185
25186 mustEndAbs = mustEndAbs || (result.host && srcPath.length);
25187
25188 if (mustEndAbs && !isAbsolute) {
25189 srcPath.unshift('');
25190 }
25191
25192 if (!srcPath.length) {
25193 result.pathname = null;
25194 result.path = null;
25195 } else {
25196 result.pathname = srcPath.join('/');
25197 }
25198
25199 //to support request.http
25200 if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
25201 result.path = (result.pathname ? result.pathname : '') +
25202 (result.search ? result.search : '');
25203 }
25204 result.auth = relative.auth || result.auth;
25205 result.slashes = result.slashes || relative.slashes;
25206 result.href = result.format();
25207 return result;
25208};
25209
25210Url.prototype.parseHost = function() {
25211 var host = this.host;
25212 var port = portPattern.exec(host);
25213 if (port) {
25214 port = port[0];
25215 if (port !== ':') {
25216 this.port = port.substr(1);
25217 }
25218 host = host.substr(0, host.length - port.length);
25219 }
25220 if (host) this.hostname = host;
25221};
25222
25223
25224/***/ }),
25225/* 157 */
25226/***/ (function(module, exports, __webpack_require__) {
25227
25228"use strict";
25229
25230
25231var _index = __webpack_require__(160);
25232
25233var _index2 = _interopRequireDefault(_index);
25234
25235function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25236
25237window.craftai = _index2.default;
25238
25239/***/ }),
25240/* 158 */
25241/***/ (function(module, exports, __webpack_require__) {
25242
25243"use strict";
25244
25245
25246Object.defineProperty(exports, "__esModule", {
25247 value: true
25248});
25249exports.default = createClient;
25250
25251var _lodash = __webpack_require__(1);
25252
25253var _lodash2 = _interopRequireDefault(_lodash);
25254
25255var _request = __webpack_require__(165);
25256
25257var _request2 = _interopRequireDefault(_request);
25258
25259var _debug = __webpack_require__(19);
25260
25261var _debug2 = _interopRequireDefault(_debug);
25262
25263var _interpreter = __webpack_require__(18);
25264
25265var _defaults = __webpack_require__(17);
25266
25267var _defaults2 = _interopRequireDefault(_defaults);
25268
25269var _jwtDecode2 = __webpack_require__(172);
25270
25271var _jwtDecode3 = _interopRequireDefault(_jwtDecode2);
25272
25273var _time = __webpack_require__(7);
25274
25275var _time2 = _interopRequireDefault(_time);
25276
25277var _constants = __webpack_require__(6);
25278
25279var _errors = __webpack_require__(4);
25280
25281function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25282
25283var debug = (0, _debug2.default)('craft-ai:client');
25284
25285function resolveAfterTimeout(timeout) {
25286 return new Promise(function (resolve) {
25287 return setTimeout(function () {
25288 return resolve();
25289 }, timeout);
25290 });
25291}
25292
25293// A very simple regex, helps detect some issues.
25294var SIMPLE_HTTP_URL_REGEX = /^https?:\/\/.*$/;
25295
25296function isUrl(url) {
25297 return SIMPLE_HTTP_URL_REGEX.test(url);
25298}
25299
25300var isUnvalidId = function isUnvalidId(id) {
25301 return !_lodash2.default.isUndefined(id) && !_constants.AGENT_ID_ALLOWED_REGEXP.test(id);
25302};
25303var isUnvalidConfiguration = function isUnvalidConfiguration(configuration) {
25304 return _lodash2.default.isUndefined(configuration) || !_lodash2.default.isObject(configuration);
25305};
25306var areUnvalidOperations = function areUnvalidOperations(operations) {
25307 return _lodash2.default.isUndefined(operations) || !_lodash2.default.isArray(operations);
25308};
25309
25310function checkBulkParameters(bulkArray) {
25311 if (_lodash2.default.isUndefined(bulkArray)) {
25312 throw new _errors.CraftAiBadRequestError('Bad Request, unable to use bulk functionalities without list provided.');
25313 }
25314 if (!_lodash2.default.isArray(bulkArray)) {
25315 throw new _errors.CraftAiBadRequestError('Bad Request, bulk inputs should be provided within an array.');
25316 }
25317 if (!bulkArray.length) {
25318 throw new _errors.CraftAiBadRequestError('Bad Request, the array containing bulk inputs is empty.');
25319 }
25320}
25321
25322function createClient(tokenOrCfg) {
25323 var cfg = _lodash2.default.defaults({}, _lodash2.default.isString(tokenOrCfg) ? { token: tokenOrCfg } : tokenOrCfg, _defaults2.default);
25324
25325 // Initialization check
25326 if (!_lodash2.default.has(cfg, 'token') || !_lodash2.default.isString(cfg.token)) {
25327 throw new _errors.CraftAiBadRequestError('Bad Request, unable to create a client with no or invalid token provided.');
25328 }
25329 try {
25330 var _jwtDecode = (0, _jwtDecode3.default)(cfg.token),
25331 owner = _jwtDecode.owner,
25332 platform = _jwtDecode.platform,
25333 project = _jwtDecode.project;
25334
25335 // Keep the provided values
25336
25337
25338 cfg.owner = cfg.owner || owner;
25339 cfg.project = cfg.project || project;
25340 cfg.url = cfg.url || platform;
25341 } catch (e) {
25342 throw new _errors.CraftAiCredentialsError();
25343 }
25344 if (!_lodash2.default.has(cfg, 'url') || !isUrl(cfg.url)) {
25345 throw new _errors.CraftAiBadRequestError('Bad Request, unable to create a client with no or invalid url provided.');
25346 }
25347 if (!_lodash2.default.has(cfg, 'project') || !_lodash2.default.isString(cfg.project)) {
25348 throw new _errors.CraftAiBadRequestError('Bad Request, unable to create a client with no or invalid project provided.');
25349 } else {
25350 var splittedProject = cfg.project.split('/');
25351 if (splittedProject.length >= 2) {
25352 cfg.owner = splittedProject[0];
25353 cfg.project = splittedProject[1];
25354 }
25355 }
25356 if (!_lodash2.default.has(cfg, 'owner') || !_lodash2.default.isString(cfg.owner)) {
25357 throw new _errors.CraftAiBadRequestError('Bad Request, unable to create a client with no or invalid owner provided.');
25358 }
25359 if (cfg.proxy != null && !isUrl(cfg.proxy)) {
25360 throw new _errors.CraftAiBadRequestError('Bad Request, unable to create a client with an invalid proxy url provided.');
25361 }
25362
25363 debug('Creating a client instance for project \'' + cfg.owner + '/' + cfg.project + '\' on \'' + cfg.url + '\'.');
25364
25365 var request = (0, _request2.default)(cfg);
25366
25367 // 'Public' attributes & methods
25368 var instance = {
25369 cfg: cfg,
25370 createAgent: function createAgent(configuration) {
25371 var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25372
25373 if (isUnvalidConfiguration(configuration)) {
25374 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to create an agent with no or invalid configuration provided.'));
25375 }
25376
25377 if (isUnvalidId(id)) {
25378 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to create an agent with invalid agent id. It must only contain characters in \'a-zA-Z0-9_-\' and must be a string between 1 and ' + _constants.AGENT_ID_MAX_LENGTH + ' characters.'));
25379 }
25380
25381 return request({
25382 method: 'POST',
25383 path: '/agents',
25384 body: {
25385 id: id,
25386 configuration: configuration
25387 }
25388 }).then(function (_ref) {
25389 var body = _ref.body;
25390
25391 debug('Agent \'' + body.id + '\' created.');
25392 return body;
25393 });
25394 },
25395 createAgentBulk: function createAgentBulk(agentsList) {
25396 checkBulkParameters(agentsList);
25397
25398 return request({
25399 method: 'POST',
25400 path: '/bulk/agents',
25401 body: agentsList
25402 }).then(function (_ref2) {
25403 var body = _ref2.body;
25404 return body;
25405 });
25406 },
25407 getAgent: function getAgent(agentId) {
25408 if (!_constants.AGENT_ID_ALLOWED_REGEXP.test(agentId)) {
25409 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get an agent with invalid agent id. It must only contain characters in \'a-zA-Z0-9_-\' and cannot be the empty string.'));
25410 }
25411
25412 return request({
25413 method: 'GET',
25414 path: '/agents/' + agentId
25415 }).then(function (_ref3) {
25416 var body = _ref3.body;
25417 return body;
25418 });
25419 },
25420 listAgents: function listAgents(agentId) {
25421 return request({
25422 method: 'GET',
25423 path: '/agents'
25424 }).then(function (_ref4) {
25425 var body = _ref4.body;
25426 return body.agentsList;
25427 });
25428 },
25429 deleteAgent: function deleteAgent(agentId) {
25430 if (_lodash2.default.isUndefined(agentId)) {
25431 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to delete an agent with no agentId provided.'));
25432 }
25433
25434 return request({
25435 method: 'DELETE',
25436 path: '/agents/' + agentId
25437 }).then(function (_ref5) {
25438 var body = _ref5.body;
25439
25440 debug('Agent \'' + agentId + '\' deleted');
25441 return body;
25442 });
25443 },
25444 deleteAgentBulk: function deleteAgentBulk(agentsList) {
25445 checkBulkParameters(agentsList);
25446
25447 return request({
25448 method: 'DELETE',
25449 path: '/bulk/agents',
25450 body: agentsList
25451 }).then(function (_ref6) {
25452 var body = _ref6.body;
25453 return body;
25454 });
25455 },
25456 destroyAgent: function destroyAgent(agentId) {
25457 (0, _constants.deprecation)('client.destroyAgent', 'client.deleteAgent');
25458 return this.deleteAgent(agentId);
25459 },
25460 getAgentContext: function getAgentContext(agentId) {
25461 var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25462
25463 if (_lodash2.default.isUndefined(agentId)) {
25464 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get the agent context with no agentId provided.'));
25465 }
25466 var posixTimestamp = (0, _time2.default)(t).timestamp;
25467 if (_lodash2.default.isUndefined(posixTimestamp)) {
25468 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get the agent context with an invalid timestamp provided.'));
25469 }
25470
25471 return request({
25472 method: 'GET',
25473 path: '/agents/' + agentId + '/context/state',
25474 query: {
25475 t: posixTimestamp
25476 }
25477 }).then(function (_ref7) {
25478 var body = _ref7.body;
25479 return body;
25480 });
25481 },
25482 addAgentContextOperations: function addAgentContextOperations(agentId, operations) {
25483 if (_lodash2.default.isUndefined(agentId)) {
25484 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to add agent context operations with no agentId provided.'));
25485 }
25486 if (!_lodash2.default.isArray(operations)) {
25487 // Only one given operation
25488 operations = [operations];
25489 }
25490 operations = _lodash2.default.compact(operations);
25491
25492 if (!operations.length) {
25493 var message = 'No operation to add to the agent ' + cfg.owner + '/' + cfg.project + '/' + agentId + ' context.';
25494
25495 debug(message);
25496
25497 return Promise.resolve({ message: message });
25498 }
25499
25500 return (0, _lodash2.default)(operations).map(function (_ref8) {
25501 var context = _ref8.context,
25502 timestamp = _ref8.timestamp;
25503 return {
25504 context: context,
25505 timestamp: (0, _time2.default)(timestamp).timestamp
25506 };
25507 }).orderBy('timestamp').chunk(cfg.operationsChunksSize).reduce(function (p, chunk) {
25508 return p.then(function () {
25509 return request({
25510 method: 'POST',
25511 path: '/agents/' + agentId + '/context',
25512 body: chunk
25513 });
25514 });
25515 }, Promise.resolve()).then(function () {
25516 var message = 'Successfully added ' + operations.length + ' operation(s) to the agent ' + cfg.owner + '/' + cfg.project + '/' + agentId + ' context.';
25517 debug(message);
25518 return { message: message };
25519 });
25520 },
25521 addAgentContextOperationsBulk: function addAgentContextOperationsBulk(agentsOperationsList) {
25522 var _this = this;
25523
25524 checkBulkParameters(agentsOperationsList);
25525 agentsOperationsList.map(function (_ref9) {
25526 var id = _ref9.id,
25527 operations = _ref9.operations;
25528
25529 if (areUnvalidOperations(operations)) {
25530 throw new _errors.CraftAiBadRequestError('Bad Request, unable to handle operations for agent ' + id + '. Operations should be provided within an array.');
25531 }
25532 });
25533
25534 var chunkedData = [];
25535 var currentChunk = [];
25536 var currentChunkSize = 0;
25537
25538 var _iteratorNormalCompletion = true;
25539 var _didIteratorError = false;
25540 var _iteratorError = undefined;
25541
25542 try {
25543 for (var _iterator = agentsOperationsList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
25544 var agent = _step.value;
25545
25546 if (agent.operations && _lodash2.default.isArray(agent.operations)) {
25547 if (currentChunkSize + agent.operations.length > cfg.operationsChunksSize && currentChunkSize.length) {
25548 chunkedData.push(currentChunk);
25549 currentChunkSize = 0;
25550 currentChunk = [];
25551 }
25552
25553 if (agent.operations.length > cfg.operationsChunksSize) {
25554 chunkedData.push([agent]);
25555 currentChunkSize = 0;
25556 } else {
25557 currentChunkSize += agent.operations.length;
25558 currentChunk.push(agent);
25559 }
25560 }
25561 }
25562 } catch (err) {
25563 _didIteratorError = true;
25564 _iteratorError = err;
25565 } finally {
25566 try {
25567 if (!_iteratorNormalCompletion && _iterator.return) {
25568 _iterator.return();
25569 }
25570 } finally {
25571 if (_didIteratorError) {
25572 throw _iteratorError;
25573 }
25574 }
25575 }
25576
25577 if (currentChunk.length) {
25578 chunkedData.push(currentChunk);
25579 }
25580
25581 return Promise.all(chunkedData.map(function (chunk) {
25582 if (chunk.length > 1) {
25583 return request({
25584 method: 'POST',
25585 path: '/bulk/context',
25586 body: chunk
25587 }).then(function (_ref10) {
25588 var body = _ref10.body;
25589 return body;
25590 });
25591 } else {
25592 return _this.addAgentContextOperations(chunk[0].id, chunk[0].operations).then(function (_ref11) {
25593 var message = _ref11.message;
25594 return [{ id: chunk[0].id, status: 201, message: message }];
25595 });
25596 }
25597 })).then(_lodash2.default.flattenDeep);
25598 },
25599 getAgentContextOperations: function getAgentContextOperations(agentId) {
25600 var _this2 = this;
25601
25602 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25603 var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
25604
25605 if (_lodash2.default.isUndefined(agentId)) {
25606 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent context operations with no agentId provided.'));
25607 }
25608 var startTimestamp = void 0;
25609 if (start) {
25610 startTimestamp = (0, _time2.default)(start).timestamp;
25611 if (_lodash2.default.isUndefined(startTimestamp)) {
25612 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent context operations with an invalid \'start\' timestamp provided.'));
25613 }
25614 }
25615 var endTimestamp = void 0;
25616 if (end) {
25617 endTimestamp = (0, _time2.default)(end).timestamp;
25618 if (_lodash2.default.isUndefined(endTimestamp)) {
25619 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent context operations with an invalid \'end\' timestamp provided.'));
25620 }
25621 }
25622
25623 var requestFollowingPages = function requestFollowingPages(_ref12) {
25624 var operations = _ref12.operations,
25625 nextPageUrl = _ref12.nextPageUrl;
25626
25627 if (!nextPageUrl) {
25628 return Promise.resolve(operations);
25629 }
25630 return request({ url: nextPageUrl }, _this2).then(function (_ref13) {
25631 var body = _ref13.body,
25632 nextPageUrl = _ref13.nextPageUrl;
25633 return requestFollowingPages({
25634 operations: operations.concat(body),
25635 nextPageUrl: nextPageUrl
25636 });
25637 });
25638 };
25639
25640 return request({
25641 method: 'GET',
25642 path: '/agents/' + agentId + '/context',
25643 query: {
25644 start: startTimestamp,
25645 end: endTimestamp
25646 }
25647 }).then(function (_ref14) {
25648 var body = _ref14.body,
25649 nextPageUrl = _ref14.nextPageUrl;
25650 return requestFollowingPages({
25651 operations: body,
25652 nextPageUrl: nextPageUrl
25653 });
25654 });
25655 },
25656 getAgentStateHistory: function getAgentStateHistory(agentId) {
25657 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25658 var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
25659
25660 if (_lodash2.default.isUndefined(agentId)) {
25661 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent state history with no agentId provided.'));
25662 }
25663 var startTimestamp = void 0;
25664 if (start) {
25665 startTimestamp = (0, _time2.default)(start).timestamp;
25666 if (_lodash2.default.isUndefined(startTimestamp)) {
25667 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent state history with an invalid \'start\' timestamp provided.'));
25668 }
25669 }
25670 var endTimestamp = void 0;
25671 if (end) {
25672 endTimestamp = (0, _time2.default)(end).timestamp;
25673 if (_lodash2.default.isUndefined(endTimestamp)) {
25674 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to get agent state history with an invalid \'end\' timestamp provided.'));
25675 }
25676 }
25677
25678 var requestFollowingPages = function requestFollowingPages(_ref15) {
25679 var stateHistory = _ref15.stateHistory,
25680 nextPageUrl = _ref15.nextPageUrl;
25681
25682 if (!nextPageUrl) {
25683 return Promise.resolve(stateHistory);
25684 }
25685 return request({ url: nextPageUrl }).then(function (_ref16) {
25686 var body = _ref16.body,
25687 nextPageUrl = _ref16.nextPageUrl;
25688 return requestFollowingPages({
25689 stateHistory: stateHistory.concat(body),
25690 nextPageUrl: nextPageUrl
25691 });
25692 });
25693 };
25694
25695 return request({
25696 method: 'GET',
25697 path: '/agents/' + agentId + '/context/state/history',
25698 query: {
25699 start: startTimestamp,
25700 end: endTimestamp
25701 }
25702 }).then(function (_ref17) {
25703 var body = _ref17.body,
25704 nextPageUrl = _ref17.nextPageUrl;
25705 return requestFollowingPages({
25706 stateHistory: body,
25707 nextPageUrl: nextPageUrl
25708 });
25709 });
25710 },
25711 getAgentInspectorUrl: function getAgentInspectorUrl(agentId) {
25712 var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25713
25714 (0, _constants.deprecation)('client.getAgentInspectorUrl', 'client.getSharedAgentInspectorUrl');
25715 return this.getSharedAgentInspectorUrl(agentId, t);
25716 },
25717 getSharedAgentInspectorUrl: function getSharedAgentInspectorUrl(agentId) {
25718 var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25719
25720 return request({
25721 method: 'GET',
25722 path: '/agents/' + agentId + '/shared'
25723 }).then(function (_ref18) {
25724 var body = _ref18.body;
25725
25726 if (_lodash2.default.isUndefined(t)) {
25727 return body.shortUrl;
25728 } else {
25729 var posixTimestamp = (0, _time2.default)(t).timestamp;
25730 return body.shortUrl + '?t=' + posixTimestamp;
25731 }
25732 });
25733 },
25734 deleteSharedAgentInspectorUrl: function deleteSharedAgentInspectorUrl(agentId) {
25735 return request({
25736 method: 'DELETE',
25737 path: '/agents/' + agentId + '/shared'
25738 }).then(function () {
25739 debug('Delete shared inspector link for agent \'' + agentId + '\'.');
25740 });
25741 },
25742 getAgentDecisionTree: function getAgentDecisionTree(agentId) {
25743 var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
25744 var version = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.DEFAULT_DECISION_TREE_VERSION;
25745
25746 if (_lodash2.default.isUndefined(agentId)) {
25747 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to retrieve an agent decision tree with no agentId provided.'));
25748 }
25749 var posixTimestamp = (0, _time2.default)(t).timestamp;
25750 if (_lodash2.default.isUndefined(posixTimestamp)) {
25751 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to retrieve an agent decision tree with an invalid timestamp provided.'));
25752 }
25753
25754 var agentDecisionTreeRequest = function agentDecisionTreeRequest() {
25755 return request({
25756 method: 'GET',
25757 path: '/agents/' + agentId + '/decision/tree',
25758 query: {
25759 t: posixTimestamp
25760 },
25761 headers: {
25762 'x-craft-ai-tree-version': version
25763 }
25764 }).then(function (_ref19) {
25765 var body = _ref19.body;
25766 return body;
25767 });
25768 };
25769
25770 if (!cfg.decisionTreeRetrievalTimeout) {
25771 // Don't retry
25772 return agentDecisionTreeRequest();
25773 } else {
25774 var start = Date.now();
25775 return Promise.race([agentDecisionTreeRequest().catch(function (error) {
25776 var requestDuration = Date.now() - start;
25777 var expectedRetryDuration = requestDuration + 2000; // Let's add some margin
25778 var timeoutBeforeRetrying = cfg.decisionTreeRetrievalTimeout - requestDuration - expectedRetryDuration;
25779 if (error instanceof _errors.CraftAiLongRequestTimeOutError && timeoutBeforeRetrying > 0) {
25780 // First timeout, let's retry once near the end of the set timeout
25781 return resolveAfterTimeout(timeoutBeforeRetrying).then(function () {
25782 return agentDecisionTreeRequest();
25783 });
25784 } else {
25785 return Promise.reject(error);
25786 }
25787 }), resolveAfterTimeout(cfg.decisionTreeRetrievalTimeout).then(function () {
25788 throw new _errors.CraftAiLongRequestTimeOutError();
25789 })]);
25790 }
25791 },
25792 getAgentDecisionTreeBulk: function getAgentDecisionTreeBulk(agentsList) {
25793 checkBulkParameters(agentsList);
25794
25795 return request({
25796 method: 'POST',
25797 path: '/bulk/decision_tree',
25798 body: agentsList
25799 }).then(function (_ref20) {
25800 var body = _ref20.body;
25801 return body;
25802 });
25803 },
25804 computeAgentDecision: function computeAgentDecision(agentId, t) {
25805 for (var _len = arguments.length, contexts = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
25806 contexts[_key - 2] = arguments[_key];
25807 }
25808
25809 if (_lodash2.default.isUndefined(agentId)) {
25810 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to compute an agent decision with no agentId provided.'));
25811 }
25812 var posixTimestamp = (0, _time2.default)(t).timestamp;
25813 if (_lodash2.default.isUndefined(posixTimestamp)) {
25814 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to compute an agent decision with no or invalid timestamp provided.'));
25815 }
25816 if (_lodash2.default.isUndefined(contexts) || _lodash2.default.size(contexts) === 0) {
25817 return Promise.reject(new _errors.CraftAiBadRequestError('Bad Request, unable to compute an agent decision with no context provided.'));
25818 }
25819
25820 return request({
25821 method: 'GET',
25822 path: '/agents/' + agentId + '/decision/tree',
25823 query: {
25824 t: posixTimestamp
25825 }
25826 }).then(function (_ref21) {
25827 var body = _ref21.body;
25828
25829 var decision = _interpreter.decide.apply(undefined, [body].concat(contexts));
25830 decision.timestamp = posixTimestamp;
25831 return decision;
25832 });
25833 }
25834 };
25835
25836 return instance;
25837}
25838
25839/***/ }),
25840/* 159 */
25841/***/ (function(module, exports, __webpack_require__) {
25842
25843"use strict";
25844
25845
25846Object.defineProperty(exports, "__esModule", {
25847 value: true
25848});
25849exports.default = createContext;
25850
25851var _lodash = __webpack_require__(1);
25852
25853var _lodash2 = _interopRequireDefault(_lodash);
25854
25855var _time = __webpack_require__(7);
25856
25857var _time2 = _interopRequireDefault(_time);
25858
25859function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25860
25861function createContext(configuration) {
25862 if (_lodash2.default.isUndefined(configuration) || _lodash2.default.isUndefined(configuration.context)) {
25863 throw new Error('Unable to create context, the given configuration is not valid');
25864 }
25865
25866 var inputContext = _lodash2.default.omit(configuration.context, configuration.output);
25867
25868 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
25869 args[_key - 1] = arguments[_key];
25870 }
25871
25872 return _lodash2.default.reduce(args, function (context, arg) {
25873 if (arg instanceof _time2.default) {
25874 var day_of_month = arg.day_of_month,
25875 day_of_week = arg.day_of_week,
25876 month_of_year = arg.month_of_year,
25877 time_of_day = arg.time_of_day,
25878 timezone = arg.timezone;
25879
25880
25881 return _lodash2.default.mapValues(inputContext, function (v, k) {
25882 if (v.type === 'day_of_week' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
25883 return day_of_week;
25884 } else if (v.type === 'time_of_day' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
25885 return time_of_day;
25886 } else if (v.type === 'day_of_month' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
25887 return day_of_month;
25888 } else if (v.type === 'month_of_year' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
25889 return month_of_year;
25890 } else if (v.type === 'timezone') {
25891 return timezone;
25892 } else {
25893 return context[k];
25894 }
25895 });
25896 } else {
25897 return _lodash2.default.mapValues(inputContext, function (v, k) {
25898 return _lodash2.default.isUndefined(arg[k]) ? context[k] : arg[k];
25899 });
25900 }
25901 }, _lodash2.default.mapValues(inputContext, function () {
25902 return undefined;
25903 }));
25904}
25905
25906/***/ }),
25907/* 160 */
25908/***/ (function(module, exports, __webpack_require__) {
25909
25910"use strict";
25911
25912
25913Object.defineProperty(exports, "__esModule", {
25914 value: true
25915});
25916exports.Properties = exports.Time = exports.interpreter = exports.errors = exports.DEFAULT = exports.decide = exports.createClient = undefined;
25917
25918var _client = __webpack_require__(158);
25919
25920var _client2 = _interopRequireDefault(_client);
25921
25922var _defaults = __webpack_require__(17);
25923
25924var _defaults2 = _interopRequireDefault(_defaults);
25925
25926var _constants = __webpack_require__(6);
25927
25928var _time = __webpack_require__(7);
25929
25930var _time2 = _interopRequireDefault(_time);
25931
25932var _errors = __webpack_require__(4);
25933
25934var errors = _interopRequireWildcard(_errors);
25935
25936var _interpreter = __webpack_require__(18);
25937
25938var interpreter = _interopRequireWildcard(_interpreter);
25939
25940var _properties = __webpack_require__(164);
25941
25942var Properties = _interopRequireWildcard(_properties);
25943
25944function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
25945
25946function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25947
25948exports.default = _client2.default;
25949
25950
25951function decide(tree) {
25952 (0, _constants.deprecation)('decide', 'interpreter.decide');
25953
25954 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
25955 args[_key - 1] = arguments[_key];
25956 }
25957
25958 return interpreter.decide.apply(interpreter, [tree].concat(args));
25959}
25960
25961_client2.default.decide = decide;
25962_client2.default.DEFAULT = _defaults2.default;
25963_client2.default.errors = errors;
25964_client2.default.interpreter = interpreter;
25965_client2.default.Time = _time2.default;
25966_client2.default.Properties = Properties;
25967
25968exports.createClient = _client2.default;
25969exports.decide = decide;
25970exports.DEFAULT = _defaults2.default;
25971exports.errors = errors;
25972exports.interpreter = interpreter;
25973exports.Time = _time2.default;
25974exports.Properties = Properties;
25975
25976/***/ }),
25977/* 161 */
25978/***/ (function(module, exports, __webpack_require__) {
25979
25980"use strict";
25981
25982
25983Object.defineProperty(exports, "__esModule", {
25984 value: true
25985});
25986exports.decide = exports.reduceDecisionRules = exports.formatProperty = exports.formatDecisionRules = undefined;
25987
25988var _lodash = __webpack_require__(1);
25989
25990var _lodash2 = _interopRequireDefault(_lodash);
25991
25992var _reducer = __webpack_require__(12);
25993
25994var _time = __webpack_require__(7);
25995
25996var _errors = __webpack_require__(4);
25997
25998var _formatter = __webpack_require__(9);
25999
26000var _timezones = __webpack_require__(15);
26001
26002var _timezones2 = _interopRequireDefault(_timezones);
26003
26004function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26005
26006function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26007
26008function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
26009
26010var DECISION_FORMAT_VERSION = '1.1.0';
26011
26012var OPERATORS = {
26013 'is': function is(context, value) {
26014 return context === value;
26015 },
26016 '>=': function _(context, value) {
26017 return context * 1 >= value;
26018 },
26019 '<': function _(context, value) {
26020 return context * 1 < value;
26021 },
26022 '[in[': function _in(context, value) {
26023 var context_val = context * 1;
26024 var from = value[0];
26025 var to = value[1];
26026 //the interval is not looping
26027 if (from < to) {
26028 return context_val >= from && context_val < to;
26029 }
26030 //the interval IS looping
26031 else {
26032 return context_val >= from || context_val < to;
26033 }
26034 }
26035};
26036
26037var VALUE_VALIDATOR = {
26038 continuous: function continuous(value) {
26039 return _lodash2.default.isFinite(value);
26040 },
26041 enum: function _enum(value) {
26042 return _lodash2.default.isString(value);
26043 },
26044 timezone: function timezone(value) {
26045 return (0, _timezones2.default)(value);
26046 },
26047 time_of_day: function time_of_day(value) {
26048 return _lodash2.default.isFinite(value) && value >= 0 && value < 24;
26049 },
26050 day_of_week: function day_of_week(value) {
26051 return _lodash2.default.isInteger(value) && value >= 0 && value <= 6;
26052 },
26053 day_of_month: function day_of_month(value) {
26054 return _lodash2.default.isInteger(value) && value >= 1 && value <= 31;
26055 },
26056 month_of_year: function month_of_year(value) {
26057 return _lodash2.default.isInteger(value) && value >= 1 && value <= 12;
26058 }
26059};
26060
26061function decideRecursion(node, context) {
26062 // Leaf
26063 if (!(node.children && node.children.length)) {
26064 if (node.predicted_value == null) {
26065 return {
26066 predicted_value: undefined,
26067 confidence: undefined,
26068 decision_rules: [],
26069 error: {
26070 name: 'CraftAiNullDecisionError',
26071 message: 'Unable to take decision: the decision tree has no valid predicted value for the given context.'
26072 }
26073 };
26074 }
26075
26076 var leafNode = {
26077 predicted_value: node.predicted_value,
26078 confidence: node.confidence || 0,
26079 decision_rules: []
26080 };
26081
26082 if (!_lodash2.default.isUndefined(node.standard_deviation)) {
26083 leafNode.standard_deviation = node.standard_deviation;
26084 }
26085
26086 return leafNode;
26087 }
26088
26089 // Regular node
26090 var matchingChild = _lodash2.default.find(node.children, function (child) {
26091 var decision_rule = child.decision_rule;
26092 var property = decision_rule.property;
26093 if (_lodash2.default.isUndefined(context[property])) {
26094 // Should not happen
26095 return {
26096 predicted_value: undefined,
26097 confidence: undefined,
26098 error: {
26099 name: 'CraftAiUnknownError',
26100 message: 'Unable to take decision: property \'' + property + '\' is missing from the given context.'
26101 }
26102 };
26103 }
26104
26105 return OPERATORS[decision_rule.operator](context[property], decision_rule.operand);
26106 });
26107
26108 // matching child property error
26109 if (matchingChild && matchingChild.error) {
26110 return matchingChild;
26111 }
26112
26113 if (_lodash2.default.isUndefined(matchingChild)) {
26114 // Should only happens when an unexpected value for an enum is encountered
26115 var operandList = _lodash2.default.uniq(_lodash2.default.map(_lodash2.default.values(node.children), function (child) {
26116 return child.decision_rule.operand;
26117 }));
26118 var property = _lodash2.default.head(node.children).decision_rule.property;
26119 return {
26120 predicted_value: undefined,
26121 confidence: undefined,
26122 decision_rules: [],
26123 error: {
26124 name: 'CraftAiNullDecisionError',
26125 message: 'Unable to take decision: value \'' + context[property] + '\' for property \'' + property + '\' doesn\'t validate any of the decision rules.',
26126 metadata: {
26127 property: property,
26128 value: context[property],
26129 expected_values: operandList
26130 }
26131 }
26132 };
26133 }
26134
26135 // matching child found: recurse !
26136 var result = decideRecursion(matchingChild, context);
26137
26138 var finalResult = _lodash2.default.extend(result, {
26139 decision_rules: [matchingChild.decision_rule].concat(result.decision_rules)
26140 });
26141
26142 return finalResult;
26143}
26144
26145function checkContext(configuration) {
26146 // Extract the required properties (i.e. those that are not the output)
26147 var expectedProperties = _lodash2.default.difference(_lodash2.default.keys(configuration.context), configuration.output);
26148
26149 // Build a context validator
26150 var validators = _lodash2.default.map(expectedProperties, function (property) {
26151 var otherValidator = function otherValidator() {
26152 console.warn('WARNING: "' + configuration.context[property].type + '" is not a supported type. Please refer to the documention to see what type you can use');
26153 return true;
26154 };
26155 return {
26156 property: property,
26157 type: configuration.context[property].type,
26158 validator: VALUE_VALIDATOR[configuration.context[property].type] || otherValidator
26159 };
26160 });
26161
26162 return function (context) {
26163 var _$reduce = _lodash2.default.reduce(validators, function (_ref, _ref2) {
26164 var badProperties = _ref.badProperties,
26165 missingProperties = _ref.missingProperties;
26166 var property = _ref2.property,
26167 type = _ref2.type,
26168 validator = _ref2.validator;
26169
26170 var value = context[property];
26171 if (value === undefined) {
26172 missingProperties.push(property);
26173 } else if (!validator(value)) {
26174 badProperties.push({ property: property, type: type, value: value });
26175 }
26176 return { badProperties: badProperties, missingProperties: missingProperties };
26177 }, { badProperties: [], missingProperties: [] }),
26178 badProperties = _$reduce.badProperties,
26179 missingProperties = _$reduce.missingProperties;
26180
26181 if (missingProperties.length || badProperties.length) {
26182 var messages = _lodash2.default.concat(_lodash2.default.map(missingProperties, function (property) {
26183 return 'expected property \'' + property + '\' is not defined';
26184 }), _lodash2.default.map(badProperties, function (_ref3) {
26185 var property = _ref3.property,
26186 type = _ref3.type,
26187 value = _ref3.value;
26188 return '\'' + value + '\' is not a valid value for property \'' + property + '\' of type \'' + type + '\'';
26189 }));
26190 throw new _errors.CraftAiDecisionError({
26191 message: 'Unable to take decision, the given context is not valid: ' + messages.join(', ') + '.',
26192 metadata: _lodash2.default.assign({}, missingProperties.length && { missingProperties: missingProperties }, badProperties.length && { badProperties: badProperties })
26193 });
26194 }
26195 };
26196}
26197
26198function decide(configuration, trees, context) {
26199 checkContext(configuration)(context);
26200 // Convert timezones as integers to the standard +/-hh:mm format
26201 // This should only happen when no Time() object is passed to the interpreter
26202 var timezoneProperty = (0, _timezones.getTimezoneKey)(configuration.context);
26203 if (!_lodash2.default.isUndefined(timezoneProperty)) {
26204 context[timezoneProperty] = (0, _time.tzFromOffset)(context[timezoneProperty]);
26205 }
26206 return {
26207 _version: DECISION_FORMAT_VERSION,
26208 context: context,
26209 output: _lodash2.default.assign.apply(_lodash2.default, _toConsumableArray(_lodash2.default.map(configuration.output, function (output) {
26210 var decision = decideRecursion(trees[output], context);
26211 if (decision.error) {
26212 switch (decision.error.name) {
26213 case 'CraftAiNullDecisionError':
26214 throw new _errors.CraftAiNullDecisionError({
26215 message: decision.error.message,
26216 metadata: _lodash2.default.extend(decision.error.metadata, {
26217 decision_rules: decision.decision_rules
26218 })
26219 });
26220 default:
26221 throw new _errors.CraftAiUnknownError({
26222 message: decision.error.message
26223 });
26224 }
26225 }
26226 return _defineProperty({}, output, decision);
26227 })))
26228 };
26229}
26230
26231exports.formatDecisionRules = _formatter.formatDecisionRules;
26232exports.formatProperty = _formatter.formatProperty;
26233exports.reduceDecisionRules = _reducer.reduceDecisionRules;
26234exports.decide = decide;
26235
26236/***/ }),
26237/* 162 */
26238/***/ (function(module, exports, __webpack_require__) {
26239
26240"use strict";
26241
26242
26243Object.defineProperty(exports, "__esModule", {
26244 value: true
26245});
26246exports.decide = exports.reduceDecisionRules = exports.formatProperty = exports.formatDecisionRules = undefined;
26247
26248var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
26249
26250exports.distribution = distribution;
26251exports.computeMeanValues = computeMeanValues;
26252exports.computeMeanDistributions = computeMeanDistributions;
26253
26254var _lodash = __webpack_require__(1);
26255
26256var _lodash2 = _interopRequireDefault(_lodash);
26257
26258var _reducer = __webpack_require__(12);
26259
26260var _time = __webpack_require__(7);
26261
26262var _errors = __webpack_require__(4);
26263
26264var _formatter = __webpack_require__(9);
26265
26266var _timezones = __webpack_require__(15);
26267
26268var _timezones2 = _interopRequireDefault(_timezones);
26269
26270function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26271
26272function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26273
26274function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
26275
26276var DECISION_FORMAT_VERSION = '2.0.0';
26277
26278var OPERATORS = {
26279 'is': function is(context, value) {
26280 if (_lodash2.default.isObject(context) && _lodash2.default.isObject(value)) {
26281 return _lodash2.default.isEmpty(context) && _lodash2.default.isEmpty(value);
26282 } else {
26283 return context === value;
26284 }
26285 },
26286 '>=': function _(context, value) {
26287 return !_lodash2.default.isNull(context) && context * 1 >= value;
26288 },
26289 '<': function _(context, value) {
26290 return !_lodash2.default.isNull(context) && context * 1 < value;
26291 },
26292 '[in[': function _in(context, value) {
26293 var context_val = context * 1;
26294 var from = value[0];
26295 var to = value[1];
26296 //the interval is not looping
26297 if (from < to) {
26298 return !_lodash2.default.isNull(context) && context_val >= from && context_val < to;
26299 }
26300 //the interval IS looping
26301 else {
26302 return !_lodash2.default.isNull(context) && (context_val >= from || context_val < to);
26303 }
26304 },
26305 'in': function _in(context, value) {
26306 return value.indexOf(context) > -1;
26307 }
26308};
26309
26310var VALUE_VALIDATOR = {
26311 continuous: function continuous(value) {
26312 return _lodash2.default.isFinite(value);
26313 },
26314 enum: function _enum(value) {
26315 return _lodash2.default.isString(value);
26316 },
26317 boolean: function boolean(value) {
26318 return _lodash2.default.isBoolean(value);
26319 },
26320 timezone: function timezone(value) {
26321 return (0, _timezones2.default)(value);
26322 },
26323 time_of_day: function time_of_day(value) {
26324 return _lodash2.default.isFinite(value) && value >= 0 && value < 24;
26325 },
26326 day_of_week: function day_of_week(value) {
26327 return _lodash2.default.isInteger(value) && value >= 0 && value <= 6;
26328 },
26329 day_of_month: function day_of_month(value) {
26330 return _lodash2.default.isInteger(value) && value >= 1 && value <= 31;
26331 },
26332 month_of_year: function month_of_year(value) {
26333 return _lodash2.default.isInteger(value) && value >= 1 && value <= 12;
26334 }
26335};
26336
26337function decideRecursion(node, context, configuration, outputType, outputValues) {
26338 // Leaf
26339 if (!(node.children && node.children.length)) {
26340 var prediction = node.prediction;
26341 if (prediction.value == null) {
26342 return {
26343 predicted_value: undefined,
26344 confidence: undefined,
26345 decision_rules: [],
26346 error: {
26347 name: 'CraftAiNullDecisionError',
26348 message: 'Unable to take decision: the decision tree has no valid predicted value for the given context.'
26349 }
26350 };
26351 }
26352
26353 var leafNode = {
26354 predicted_value: prediction.value,
26355 confidence: prediction.confidence || 0,
26356 decision_rules: [],
26357 nb_samples: prediction.nb_samples
26358 };
26359
26360 if (!_lodash2.default.isUndefined(prediction.distribution.standard_deviation)) {
26361 leafNode.standard_deviation = prediction.distribution.standard_deviation;
26362 var min_value = prediction.distribution.min;
26363 var max_value = prediction.distribution.max;
26364 if (!_lodash2.default.isUndefined(min_value)) {
26365 leafNode.min = min_value;
26366 }
26367 if (!_lodash2.default.isUndefined(max_value)) {
26368 leafNode.max = max_value;
26369 }
26370 } else {
26371 leafNode.distribution = prediction.distribution;
26372 }
26373
26374 return leafNode;
26375 }
26376
26377 // Regular node
26378 var matchingChild = _lodash2.default.find(node.children, function (child) {
26379 var decision_rule = child.decision_rule;
26380 var property = decision_rule.property;
26381 if (configuration.deactivate_missing_values && _lodash2.default.isNull(property)) {
26382 return {
26383 predicted_value: undefined,
26384 confidence: undefined,
26385 error: {
26386 name: 'CraftAiUnknownError',
26387 message: 'Unable to take decision: property \'' + property + '\' is missing from the given context.'
26388 }
26389 };
26390 }
26391 return OPERATORS[decision_rule.operator](context[property], decision_rule.operand);
26392 });
26393
26394 // matching child property error
26395 if (matchingChild && matchingChild.error) {
26396 return matchingChild;
26397 }
26398
26399 if (_lodash2.default.isUndefined(matchingChild)) {
26400 if (!configuration.deactivate_missing_values) {
26401 var _distribution = distribution(node),
26402 value = _distribution.value,
26403 standard_deviation = _distribution.standard_deviation,
26404 size = _distribution.size;
26405
26406 var _finalResult = {};
26407 // If it is a classification problem we return the class with the highest
26408 // probability. Otherwise, if the current output type is continuous/periodic
26409 // then the returned value corresponds to the subtree weighted output values.
26410 if (outputType === 'enum' || outputType === 'boolean') {
26411 // Compute the argmax function on the returned distribution:
26412 var argmax = value.map(function (x, i) {
26413 return [x, i];
26414 }).reduce(function (r, a) {
26415 return a[0] > r[0] ? a : r;
26416 })[1];
26417
26418 var predicted_value = outputValues[argmax];
26419 _finalResult = {
26420 predicted_value: predicted_value,
26421 distribution: value
26422 };
26423 } else {
26424 _finalResult = {
26425 predicted_value: value,
26426 standard_deviation: standard_deviation
26427 };
26428 }
26429 return _lodash2.default.extend(_finalResult, {
26430 confidence: null,
26431 decision_rules: [],
26432 nb_samples: size
26433 });
26434 } else {
26435 // Should only happens when an unexpected value for an enum is encountered
26436 var operandList = _lodash2.default.uniq(_lodash2.default.map(_lodash2.default.values(node.children), function (child) {
26437 return child.decision_rule.operand;
26438 }));
26439 var property = _lodash2.default.head(node.children).decision_rule.property;
26440 return {
26441 predicted_value: undefined,
26442 confidence: undefined,
26443 decision_rules: [],
26444 error: {
26445 name: 'CraftAiNullDecisionError',
26446 message: 'Unable to take decision: value \'' + context[property] + '\' for property \'' + property + '\' doesn\'t validate any of the decision rules.',
26447 metadata: {
26448 property: property,
26449 value: context[property],
26450 expected_values: operandList
26451 }
26452 }
26453 };
26454 }
26455 }
26456 // matching child found: recurse !
26457 var result = decideRecursion(matchingChild, context, configuration, outputType, outputValues);
26458
26459 var finalResult = _lodash2.default.extend(result, {
26460 decision_rules: [matchingChild.decision_rule].concat(result.decision_rules)
26461 });
26462
26463 return finalResult;
26464}
26465
26466function checkContext(configuration) {
26467 // Extract the required properties (i.e. those that are not the output)
26468 var expectedProperties = _lodash2.default.difference(_lodash2.default.keys(configuration.context), configuration.output);
26469
26470 // Build a context validator
26471 var validators = _lodash2.default.map(expectedProperties, function (property) {
26472 var otherValidator = function otherValidator() {
26473 console.warn('WARNING: "' + configuration.context[property].type + '" is not a supported type. Please refer to the documention to see what type you can use');
26474 return true;
26475 };
26476 return {
26477 property: property,
26478 type: configuration.context[property].type,
26479 is_optional: configuration.context[property].is_optional,
26480 validator: VALUE_VALIDATOR[configuration.context[property].type] || otherValidator
26481 };
26482 });
26483
26484 return function (context) {
26485 var _$reduce = _lodash2.default.reduce(validators, function (_ref, _ref2) {
26486 var badProperties = _ref.badProperties,
26487 missingProperties = _ref.missingProperties;
26488 var property = _ref2.property,
26489 type = _ref2.type,
26490 is_optional = _ref2.is_optional,
26491 validator = _ref2.validator;
26492
26493 var value = context[property];
26494 var isNullAuthorized = _lodash2.default.isNull(value) && !configuration.deactivate_missing_values;
26495 var isOptionalAuthorized = _lodash2.default.isEmpty(value) && is_optional;
26496 if (value === undefined) {
26497 missingProperties.push(property);
26498 } else if (!validator(value) && !isNullAuthorized && !isOptionalAuthorized) {
26499 badProperties.push({ property: property, type: type, value: value });
26500 }
26501 return { badProperties: badProperties, missingProperties: missingProperties };
26502 }, { badProperties: [], missingProperties: [] }),
26503 badProperties = _$reduce.badProperties,
26504 missingProperties = _$reduce.missingProperties;
26505
26506 if (missingProperties.length || badProperties.length) {
26507 var messages = _lodash2.default.concat(_lodash2.default.map(missingProperties, function (property) {
26508 return 'expected property \'' + property + '\' is not defined';
26509 }), _lodash2.default.map(badProperties, function (_ref3) {
26510 var property = _ref3.property,
26511 type = _ref3.type,
26512 value = _ref3.value;
26513 return '\'' + value + '\' is not a valid value for property \'' + property + '\' of type \'' + type + '\'';
26514 }));
26515 throw new _errors.CraftAiDecisionError({
26516 message: 'Unable to take decision, the given context is not valid: ' + messages.join(', ') + '.',
26517 metadata: _lodash2.default.assign({}, missingProperties.length && { missingProperties: missingProperties }, badProperties.length && { badProperties: badProperties })
26518 });
26519 }
26520 };
26521}
26522
26523function distribution(node) {
26524 if (!(node.children && node.children.length)) {
26525 // If the distribution attribute is an array it means that it is
26526 // a classification problem. We therefore compute the distribution of
26527 // the classes in this leaf and return the branch size.
26528 if (_lodash2.default.isArray(node.prediction.distribution)) {
26529 return {
26530 value: node.prediction.distribution,
26531 size: node.prediction.nb_samples
26532 };
26533 }
26534 // Otherwise it is a regression problem, and we return the mean value
26535 // of the leaf, the standard_deviation and the branch size.
26536 return {
26537 value: node.prediction.value,
26538 standard_deviation: node.prediction.distribution.standard_deviation,
26539 size: node.prediction.nb_samples,
26540 min: node.prediction.distribution.min,
26541 max: node.prediction.distribution.max
26542 };
26543 }
26544
26545 // If it is not a leaf, we recurse into the children and store the distributions
26546 // and sizes of each child branch.
26547
26548 var _$map$reduce = _lodash2.default.map(node.children, function (child) {
26549 return distribution(child);
26550 }).reduce(function (acc, _ref4) {
26551 var value = _ref4.value,
26552 standard_deviation = _ref4.standard_deviation,
26553 size = _ref4.size,
26554 min = _ref4.min,
26555 max = _ref4.max;
26556
26557 acc.values.push(value);
26558 acc.sizes.push(size);
26559 if (!_lodash2.default.isUndefined(standard_deviation)) {
26560 acc.stds.push(standard_deviation);
26561 acc.mins.push(min);
26562 acc.maxs.push(max);
26563 }
26564 return acc;
26565 }, {
26566 values: [],
26567 stds: [],
26568 sizes: [],
26569 mins: [],
26570 maxs: []
26571 }),
26572 values = _$map$reduce.values,
26573 stds = _$map$reduce.stds,
26574 sizes = _$map$reduce.sizes,
26575 mins = _$map$reduce.mins,
26576 maxs = _$map$reduce.maxs;
26577
26578 if (_lodash2.default.isArray(values[0])) {
26579 return computeMeanDistributions(values, sizes);
26580 }
26581 return computeMeanValues(values, sizes, stds, mins, maxs);
26582}
26583
26584function computeMeanValues(values, sizes, stds, mins, maxs) {
26585 // Compute the weighted mean of the given array of values.
26586 // Example, for values = [ 4, 3, 6 ], sizes = [1, 2, 1]
26587 // This function computes (4*1 + 3*2 + 1*6) / (1+2+1) = 16/4 = 4
26588 // If no standard deviation array is given, use classical weighted mean formula:
26589 if (_lodash2.default.isUndefined(stds)) {
26590 var totalSize = _lodash2.default.sum(sizes);
26591 var newMean = _lodash2.default.zip(values, sizes).map(function (_ref5) {
26592 var _ref6 = _slicedToArray(_ref5, 2),
26593 mean = _ref6[0],
26594 size = _ref6[1];
26595
26596 return mean * (1.0 * size) / (1.0 * totalSize);
26597 }).reduce(_lodash2.default.add);
26598 return {
26599 value: newMean,
26600 size: totalSize
26601 };
26602 }
26603 // Otherwise, to compute the weighted standard deviation the following formula is used:
26604 // https://math.stackexchange.com/questions/2238086/calculate-variance-of-a-subset
26605
26606 var _$zip$map$reduce = _lodash2.default.zip(values, stds, sizes, mins, maxs).map(function (_ref7) {
26607 var _ref8 = _slicedToArray(_ref7, 5),
26608 mean = _ref8[0],
26609 std = _ref8[1],
26610 size = _ref8[2],
26611 min = _ref8[3],
26612 max = _ref8[4];
26613
26614 return {
26615 mean: mean,
26616 variance: std * std,
26617 size: size,
26618 min: min,
26619 max: max
26620 };
26621 }).reduce(function (acc, _ref9) {
26622 var mean = _ref9.mean,
26623 variance = _ref9.variance,
26624 size = _ref9.size,
26625 min = _ref9.min,
26626 max = _ref9.max;
26627
26628 if (_lodash2.default.isUndefined(acc.mean)) {
26629 return {
26630 mean: mean,
26631 variance: variance,
26632 size: size,
26633 min: min,
26634 max: max
26635 };
26636 }
26637 var totalSize = 1.0 * (acc.size + size);
26638 if (!totalSize > 0.0) {
26639 return {
26640 mean: acc.mean,
26641 variance: acc.variance,
26642 size: acc.size
26643 };
26644 }
26645 var newVariance = 1.0 / (totalSize - 1) * ((acc.size - 1) * acc.variance + (size - 1) * variance + acc.size * size / totalSize * (acc.mean - mean) * (acc.mean - mean));
26646 var newMean = 1.0 / totalSize * (acc.size * acc.mean + size * mean);
26647 var newMin = min < acc.min ? min : acc.min;
26648 var newMax = max > acc.max ? max : acc.max;
26649 return {
26650 mean: newMean,
26651 variance: newVariance,
26652 size: totalSize,
26653 min: newMin,
26654 max: newMax
26655 };
26656 }, {
26657 mean: undefined,
26658 variance: undefined,
26659 size: undefined,
26660 min: undefined,
26661 max: undefined
26662 }),
26663 mean = _$zip$map$reduce.mean,
26664 variance = _$zip$map$reduce.variance,
26665 size = _$zip$map$reduce.size,
26666 min = _$zip$map$reduce.min,
26667 max = _$zip$map$reduce.max;
26668
26669 return {
26670 value: mean,
26671 standard_deviation: Math.sqrt(variance),
26672 size: size,
26673 min: min,
26674 max: max
26675 };
26676}
26677
26678function computeMeanDistributions(values, sizes) {
26679 // Compute the weighted mean of the given array of distributions (array of probabilities).
26680 // Example, for values = [[ 4, 3, 6 ], [1, 2, 3], [3, 4, 5]], sizes = [1, 2, 1]
26681 // This function computes ([ 4, 3, 6]*1 + [1, 2, 3]*2 + [3, 4, 5]*6) / (1+2+1) = ...
26682 var totalSize = _lodash2.default.sum(sizes);
26683 var multiplyByBranchRatio = _lodash2.default.zip(values, sizes).map(function (zipped) {
26684 return _lodash2.default.map(zipped[0], function (val) {
26685 return val * zipped[1] / totalSize;
26686 });
26687 });
26688 var sumArrays = _sumArrays(multiplyByBranchRatio);
26689 return { value: sumArrays, size: totalSize };
26690}
26691
26692function _sumArrays(arrays) {
26693 return _lodash2.default.reduce(arrays, function (acc_sum, array) {
26694 return _lodash2.default.map(array, function (val, i) {
26695 return (acc_sum[i] || 0.) + val;
26696 });
26697 }, new Array(arrays[0].length));
26698}
26699
26700function decide(configuration, trees, context) {
26701 checkContext(configuration)(context);
26702 // Convert timezones as integers to the standard +/-hh:mm format
26703 // This should only happen when no Time() object is passed to the interpreter
26704 var timezoneProperty = (0, _timezones.getTimezoneKey)(configuration.context);
26705 if (!_lodash2.default.isUndefined(timezoneProperty)) {
26706 context[timezoneProperty] = (0, _time.tzFromOffset)(context[timezoneProperty]);
26707 }
26708 return {
26709 _version: DECISION_FORMAT_VERSION,
26710 context: context,
26711 output: _lodash2.default.assign.apply(_lodash2.default, _toConsumableArray(_lodash2.default.map(configuration.output, function (output) {
26712 var outputType = configuration.context[output].type;
26713 var decision = decideRecursion(trees[output], context, configuration, outputType, trees[output].output_values);
26714 if (decision.error) {
26715 switch (decision.error.name) {
26716 case 'CraftAiNullDecisionError':
26717 throw new _errors.CraftAiNullDecisionError({
26718 message: decision.error.message,
26719 metadata: _lodash2.default.extend(decision.error.metadata, {
26720 decision_rules: decision.decision_rules
26721 })
26722 });
26723 default:
26724 throw new _errors.CraftAiUnknownError({
26725 message: decision.error.message
26726 });
26727 }
26728 }
26729 return _defineProperty({}, output, decision);
26730 })))
26731 };
26732}
26733
26734exports.formatDecisionRules = _formatter.formatDecisionRules;
26735exports.formatProperty = _formatter.formatProperty;
26736exports.reduceDecisionRules = _reducer.reduceDecisionRules;
26737exports.decide = decide;
26738
26739/***/ }),
26740/* 163 */
26741/***/ (function(module, exports, __webpack_require__) {
26742
26743"use strict";
26744
26745
26746Object.defineProperty(exports, "__esModule", {
26747 value: true
26748});
26749exports.default = parse;
26750
26751var _lodash = __webpack_require__(1);
26752
26753var _lodash2 = _interopRequireDefault(_lodash);
26754
26755var _errors = __webpack_require__(4);
26756
26757var _semver = __webpack_require__(151);
26758
26759var _semver2 = _interopRequireDefault(_semver);
26760
26761function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26762
26763function parse(input) {
26764 var json = _lodash2.default.isObject(input) ? input : JSON.parse(input);
26765 if (!_lodash2.default.isObject(json) || _lodash2.default.isArray(input)) {
26766 throw new _errors.CraftAiDecisionError('Invalid decision tree format, the given json is not an object.');
26767 }
26768 if (_lodash2.default.isUndefined(json) || _lodash2.default.isUndefined(json._version)) {
26769 throw new _errors.CraftAiDecisionError('Invalid decision tree format, unable to find the version informations.');
26770 }
26771
26772 var version = json._version;
26773 if (!_semver2.default.valid(version)) {
26774 throw new _errors.CraftAiDecisionError('Invalid decision tree format, "' + version + '" is not a valid version.');
26775 } else if (_semver2.default.satisfies(version, '>=1.0.0 <3.0.0')) {
26776 return json;
26777 } else {
26778 throw new _errors.CraftAiDecisionError('Invalid decision tree format, "' + version + '" is not a supported version.');
26779 }
26780}
26781
26782/***/ }),
26783/* 164 */
26784/***/ (function(module, exports, __webpack_require__) {
26785
26786"use strict";
26787
26788
26789Object.defineProperty(exports, "__esModule", {
26790 value: true
26791});
26792exports.TYPES = exports.OPERATORS = undefined;
26793
26794var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
26795
26796exports.reduceDecisionRule = reduceDecisionRule;
26797exports.formatDecisionRule = formatDecisionRule;
26798exports.formatProperty = formatProperty;
26799
26800var _reducer = __webpack_require__(12);
26801
26802var _formatter = __webpack_require__(9);
26803
26804var _constants = __webpack_require__(6);
26805
26806function reduceDecisionRule(decisionRules) {
26807 (0, _constants.deprecation)('Properties.reduceDecisionRule', 'interpreter.reduceDecisionRules');
26808
26809 var _reduceDecisionRules = (0, _reducer.reduceDecisionRules)(decisionRules),
26810 _reduceDecisionRules2 = _slicedToArray(_reduceDecisionRules, 1),
26811 output = _reduceDecisionRules2[0];
26812
26813 return output;
26814}
26815
26816function formatDecisionRule(decisionRule) {
26817 (0, _constants.deprecation)('Properties.formatDecisionRule', 'interpreter.formatDecisionRules');
26818 return (0, _formatter.formatDecisionRules)([decisionRule]);
26819}
26820
26821function formatProperty(property) {
26822 (0, _constants.deprecation)('Properties.formatProperty', 'interpreter.formatProperty');
26823 return (0, _formatter.formatProperty)(property);
26824}
26825
26826exports.OPERATORS = _constants.OPERATORS;
26827exports.TYPES = _constants.TYPES;
26828
26829/***/ }),
26830/* 165 */
26831/***/ (function(module, exports, __webpack_require__) {
26832
26833"use strict";
26834/* WEBPACK VAR INJECTION */(function(process) {
26835
26836Object.defineProperty(exports, "__esModule", {
26837 value: true
26838});
26839
26840var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
26841
26842exports.default = createRequest;
26843
26844var _lodash = __webpack_require__(1);
26845
26846var _lodash2 = _interopRequireDefault(_lodash);
26847
26848var _debug = __webpack_require__(19);
26849
26850var _debug2 = _interopRequireDefault(_debug);
26851
26852var _constants = __webpack_require__(6);
26853
26854var _package = __webpack_require__(190);
26855
26856var _errors = __webpack_require__(4);
26857
26858function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26859
26860var fetch = !_constants.IN_BROWSER && typeof fetch === 'undefined' ? __webpack_require__(175) : window.fetch;
26861
26862var debug = (0, _debug2.default)('craft-ai:client');
26863
26864var USER_AGENT = 'craft-ai-client-js/' + _package.version + ' [' + (_constants.IN_BROWSER ? navigator.userAgent : 'Node.js ' + process.version) + ']';
26865
26866debug('Client user agent set to \'' + USER_AGENT + '\'');
26867
26868function parseBody(req, resBody) {
26869 var resBodyUtf8 = void 0;
26870 try {
26871 resBodyUtf8 = resBody.toString('utf-8');
26872 } catch (err) {
26873 debug('Invalid response format from ' + req.method + ' ' + req.path + ': ' + resBody, err);
26874 throw new _errors.CraftAiInternalError('Internal Error, the craft ai server responded in an invalid format.', {
26875 request: req
26876 });
26877 }
26878 var resBodyJson = void 0;
26879 try {
26880 if (resBodyUtf8.length > 0) {
26881 resBodyJson = JSON.parse(resBodyUtf8);
26882 } else {
26883 resBodyJson = {};
26884 }
26885 } catch (err) {
26886 debug('Invalid json response from ' + req.method + ' ' + req.path + ': ' + resBody, err);
26887 throw new _errors.CraftAiInternalError('Internal Error, the craft ai server responded an invalid json document.', {
26888 more: resBodyUtf8,
26889 request: req
26890 });
26891 }
26892 return resBodyJson;
26893}
26894
26895function parseBulk(req, res, resBody) {
26896 if (_lodash2.default.isArray(JSON.parse(resBody))) {
26897 return { body: parseBody(req, resBody) };
26898 } else {
26899 throw new _errors.CraftAiBadRequestError({
26900 message: parseBody(req, resBody).message,
26901 request: req
26902 });
26903 }
26904}
26905
26906function parseResponse(req, res, resBody) {
26907 switch (res.status) {
26908 case 200:
26909 case 201:
26910 case 204:
26911 return {
26912 body: parseBody(req, resBody),
26913 nextPageUrl: res.headers.get('x-craft-ai-next-page-url')
26914 };
26915 case 202:
26916 throw new _errors.CraftAiLongRequestTimeOutError({
26917 message: parseBody(req, resBody).message,
26918 request: req
26919 });
26920 case 207:
26921 return parseBulk(req, res, resBody);
26922 case 401:
26923 case 403:
26924 throw new _errors.CraftAiCredentialsError({
26925 message: parseBody(req, resBody).message,
26926 request: req
26927 });
26928 case 400:
26929 case 404:
26930 return parseBulk(req, res, resBody);
26931 case 413:
26932 throw new _errors.CraftAiBadRequestError({
26933 message: 'Given payload is too large',
26934 request: req
26935 });
26936 case 500:
26937 throw new _errors.CraftAiInternalError(parseBody(req, resBody).message, {
26938 request: req
26939 });
26940 case 504:
26941 throw new _errors.CraftAiInternalError({
26942 message: 'Response has timed out',
26943 request: req,
26944 status: res.status
26945 });
26946 default:
26947 throw new _errors.CraftAiUnknownError({
26948 more: parseBody(req, resBody).message,
26949 request: req,
26950 status: res.status
26951 });
26952 }
26953}
26954
26955function createHttpAgent() {
26956 var proxy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
26957
26958 if (_constants.IN_BROWSER) {
26959 return undefined;
26960 } else if (proxy) {
26961 var HttpProxyAgent = __webpack_require__(193);
26962
26963 return new HttpProxyAgent(proxy);
26964 } else {
26965 var http = __webpack_require__(152);
26966
26967 return new http.Agent({
26968 keepAlive: true
26969 });
26970 }
26971}
26972
26973function createHttpsAgent() {
26974 var proxy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
26975
26976 if (_constants.IN_BROWSER) {
26977 return undefined;
26978 } else if (proxy) {
26979 var HttpsProxyAgent = __webpack_require__(194);
26980
26981 return new HttpsProxyAgent(proxy);
26982 } else {
26983 var https = __webpack_require__(168);
26984
26985 return new https.Agent({
26986 keepAlive: true
26987 });
26988 }
26989}
26990
26991function createRequest(cfg) {
26992 var defaultHeaders = {
26993 'Authorization': 'Bearer ' + cfg.token,
26994 'Content-Type': 'application/json; charset=utf-8',
26995 'Accept': 'application/json'
26996 };
26997
26998 if (!_constants.IN_BROWSER) {
26999 // Don't set the user agent in browsers it can cause CORS issues
27000 // e.g. Safari v10.1.2 (12603.3.8)
27001 defaultHeaders['User-Agent'] = USER_AGENT;
27002 }
27003
27004 var baseUrl = cfg.url + '/api/v1/' + cfg.owner + '/' + cfg.project;
27005
27006 var agent = baseUrl.slice(0, 5) === 'https' ? createHttpsAgent(cfg.proxy) : createHttpAgent(cfg.proxy);
27007
27008 return function (req) {
27009 req = _lodash2.default.defaults(req || {}, {
27010 agent: agent,
27011 method: 'GET',
27012 path: '',
27013 body: undefined,
27014 query: {},
27015 headers: {}
27016 });
27017
27018 req.url = req.url || '' + baseUrl + req.path;
27019
27020 var queryStr = (0, _lodash2.default)(req.query).map(function (value, key) {
27021 return [key, value];
27022 }).filter(function (_ref) {
27023 var _ref2 = _slicedToArray(_ref, 2),
27024 key = _ref2[0],
27025 value = _ref2[1];
27026
27027 return !_lodash2.default.isUndefined(value);
27028 }).map(function (keyVal) {
27029 return keyVal.join('=');
27030 }).join('&');
27031
27032 if (queryStr.length > 0) {
27033 req.url += '?' + queryStr;
27034 }
27035 req.headers = _lodash2.default.defaults(req.headers, defaultHeaders);
27036
27037 req.body = req.body && JSON.stringify(req.body);
27038
27039 return fetch(req.url, req).catch(function (err) {
27040 debug('Network error while executing ' + req.method + ' ' + req.path, err);
27041 return Promise.reject(new _errors.CraftAiNetworkError({
27042 more: err.message
27043 }));
27044 }).then(function (res) {
27045 return res.text().catch(function (err) {
27046 debug('Invalid response from ' + req.method + ' ' + req.path, err);
27047
27048 throw new _errors.CraftAiInternalError('Internal Error, the craft ai server responded an invalid response, see err.more for details.', {
27049 request: req,
27050 more: err.message
27051 });
27052 }).then(function (resBody) {
27053 return parseResponse(req, res, resBody);
27054 });
27055 });
27056 };
27057}
27058/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
27059
27060/***/ }),
27061/* 166 */
27062/***/ (function(module, exports) {
27063
27064module.exports = {
27065 "100": "Continue",
27066 "101": "Switching Protocols",
27067 "102": "Processing",
27068 "200": "OK",
27069 "201": "Created",
27070 "202": "Accepted",
27071 "203": "Non-Authoritative Information",
27072 "204": "No Content",
27073 "205": "Reset Content",
27074 "206": "Partial Content",
27075 "207": "Multi-Status",
27076 "208": "Already Reported",
27077 "226": "IM Used",
27078 "300": "Multiple Choices",
27079 "301": "Moved Permanently",
27080 "302": "Found",
27081 "303": "See Other",
27082 "304": "Not Modified",
27083 "305": "Use Proxy",
27084 "307": "Temporary Redirect",
27085 "308": "Permanent Redirect",
27086 "400": "Bad Request",
27087 "401": "Unauthorized",
27088 "402": "Payment Required",
27089 "403": "Forbidden",
27090 "404": "Not Found",
27091 "405": "Method Not Allowed",
27092 "406": "Not Acceptable",
27093 "407": "Proxy Authentication Required",
27094 "408": "Request Timeout",
27095 "409": "Conflict",
27096 "410": "Gone",
27097 "411": "Length Required",
27098 "412": "Precondition Failed",
27099 "413": "Payload Too Large",
27100 "414": "URI Too Long",
27101 "415": "Unsupported Media Type",
27102 "416": "Range Not Satisfiable",
27103 "417": "Expectation Failed",
27104 "418": "I'm a teapot",
27105 "421": "Misdirected Request",
27106 "422": "Unprocessable Entity",
27107 "423": "Locked",
27108 "424": "Failed Dependency",
27109 "425": "Unordered Collection",
27110 "426": "Upgrade Required",
27111 "428": "Precondition Required",
27112 "429": "Too Many Requests",
27113 "431": "Request Header Fields Too Large",
27114 "451": "Unavailable For Legal Reasons",
27115 "500": "Internal Server Error",
27116 "501": "Not Implemented",
27117 "502": "Bad Gateway",
27118 "503": "Service Unavailable",
27119 "504": "Gateway Timeout",
27120 "505": "HTTP Version Not Supported",
27121 "506": "Variant Also Negotiates",
27122 "507": "Insufficient Storage",
27123 "508": "Loop Detected",
27124 "509": "Bandwidth Limit Exceeded",
27125 "510": "Not Extended",
27126 "511": "Network Authentication Required"
27127}
27128
27129
27130/***/ }),
27131/* 167 */
27132/***/ (function(module, exports, __webpack_require__) {
27133
27134
27135/**
27136 * This is the common logic for both the Node.js and web browser
27137 * implementations of `debug()`.
27138 *
27139 * Expose `debug()` as the module.
27140 */
27141
27142exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
27143exports.coerce = coerce;
27144exports.disable = disable;
27145exports.enable = enable;
27146exports.enabled = enabled;
27147exports.humanize = __webpack_require__(174);
27148
27149/**
27150 * Active `debug` instances.
27151 */
27152exports.instances = [];
27153
27154/**
27155 * The currently active debug mode names, and names to skip.
27156 */
27157
27158exports.names = [];
27159exports.skips = [];
27160
27161/**
27162 * Map of special "%n" handling functions, for the debug "format" argument.
27163 *
27164 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
27165 */
27166
27167exports.formatters = {};
27168
27169/**
27170 * Select a color.
27171 * @param {String} namespace
27172 * @return {Number}
27173 * @api private
27174 */
27175
27176function selectColor(namespace) {
27177 var hash = 0, i;
27178
27179 for (i in namespace) {
27180 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
27181 hash |= 0; // Convert to 32bit integer
27182 }
27183
27184 return exports.colors[Math.abs(hash) % exports.colors.length];
27185}
27186
27187/**
27188 * Create a debugger with the given `namespace`.
27189 *
27190 * @param {String} namespace
27191 * @return {Function}
27192 * @api public
27193 */
27194
27195function createDebug(namespace) {
27196
27197 var prevTime;
27198
27199 function debug() {
27200 // disabled?
27201 if (!debug.enabled) return;
27202
27203 var self = debug;
27204
27205 // set `diff` timestamp
27206 var curr = +new Date();
27207 var ms = curr - (prevTime || curr);
27208 self.diff = ms;
27209 self.prev = prevTime;
27210 self.curr = curr;
27211 prevTime = curr;
27212
27213 // turn the `arguments` into a proper Array
27214 var args = new Array(arguments.length);
27215 for (var i = 0; i < args.length; i++) {
27216 args[i] = arguments[i];
27217 }
27218
27219 args[0] = exports.coerce(args[0]);
27220
27221 if ('string' !== typeof args[0]) {
27222 // anything else let's inspect with %O
27223 args.unshift('%O');
27224 }
27225
27226 // apply any `formatters` transformations
27227 var index = 0;
27228 args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
27229 // if we encounter an escaped % then don't increase the array index
27230 if (match === '%%') return match;
27231 index++;
27232 var formatter = exports.formatters[format];
27233 if ('function' === typeof formatter) {
27234 var val = args[index];
27235 match = formatter.call(self, val);
27236
27237 // now we need to remove `args[index]` since it's inlined in the `format`
27238 args.splice(index, 1);
27239 index--;
27240 }
27241 return match;
27242 });
27243
27244 // apply env-specific formatting (colors, etc.)
27245 exports.formatArgs.call(self, args);
27246
27247 var logFn = debug.log || exports.log || console.log.bind(console);
27248 logFn.apply(self, args);
27249 }
27250
27251 debug.namespace = namespace;
27252 debug.enabled = exports.enabled(namespace);
27253 debug.useColors = exports.useColors();
27254 debug.color = selectColor(namespace);
27255 debug.destroy = destroy;
27256
27257 // env-specific initialization logic for debug instances
27258 if ('function' === typeof exports.init) {
27259 exports.init(debug);
27260 }
27261
27262 exports.instances.push(debug);
27263
27264 return debug;
27265}
27266
27267function destroy () {
27268 var index = exports.instances.indexOf(this);
27269 if (index !== -1) {
27270 exports.instances.splice(index, 1);
27271 return true;
27272 } else {
27273 return false;
27274 }
27275}
27276
27277/**
27278 * Enables a debug mode by namespaces. This can include modes
27279 * separated by a colon and wildcards.
27280 *
27281 * @param {String} namespaces
27282 * @api public
27283 */
27284
27285function enable(namespaces) {
27286 exports.save(namespaces);
27287
27288 exports.names = [];
27289 exports.skips = [];
27290
27291 var i;
27292 var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
27293 var len = split.length;
27294
27295 for (i = 0; i < len; i++) {
27296 if (!split[i]) continue; // ignore empty strings
27297 namespaces = split[i].replace(/\*/g, '.*?');
27298 if (namespaces[0] === '-') {
27299 exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
27300 } else {
27301 exports.names.push(new RegExp('^' + namespaces + '$'));
27302 }
27303 }
27304
27305 for (i = 0; i < exports.instances.length; i++) {
27306 var instance = exports.instances[i];
27307 instance.enabled = exports.enabled(instance.namespace);
27308 }
27309}
27310
27311/**
27312 * Disable debug output.
27313 *
27314 * @api public
27315 */
27316
27317function disable() {
27318 exports.enable('');
27319}
27320
27321/**
27322 * Returns true if the given mode name is enabled, false otherwise.
27323 *
27324 * @param {String} name
27325 * @return {Boolean}
27326 * @api public
27327 */
27328
27329function enabled(name) {
27330 if (name[name.length - 1] === '*') {
27331 return true;
27332 }
27333 var i, len;
27334 for (i = 0, len = exports.skips.length; i < len; i++) {
27335 if (exports.skips[i].test(name)) {
27336 return false;
27337 }
27338 }
27339 for (i = 0, len = exports.names.length; i < len; i++) {
27340 if (exports.names[i].test(name)) {
27341 return true;
27342 }
27343 }
27344 return false;
27345}
27346
27347/**
27348 * Coerce `val`.
27349 *
27350 * @param {Mixed} val
27351 * @return {Mixed}
27352 * @api private
27353 */
27354
27355function coerce(val) {
27356 if (val instanceof Error) return val.stack || val.message;
27357 return val;
27358}
27359
27360
27361/***/ }),
27362/* 168 */
27363/***/ (function(module, exports, __webpack_require__) {
27364
27365var http = __webpack_require__(152)
27366var url = __webpack_require__(156)
27367
27368var https = module.exports
27369
27370for (var key in http) {
27371 if (http.hasOwnProperty(key)) https[key] = http[key]
27372}
27373
27374https.request = function (params, cb) {
27375 params = validateParams(params)
27376 return http.request.call(this, params, cb)
27377}
27378
27379https.get = function (params, cb) {
27380 params = validateParams(params)
27381 return http.get.call(this, params, cb)
27382}
27383
27384function validateParams (params) {
27385 if (typeof params === 'string') {
27386 params = url.parse(params)
27387 }
27388 if (!params.protocol) {
27389 params.protocol = 'https:'
27390 }
27391 if (params.protocol !== 'https:') {
27392 throw new Error('Protocol "' + params.protocol + '" not supported. Expected "https:"')
27393 }
27394 return params
27395}
27396
27397
27398/***/ }),
27399/* 169 */
27400/***/ (function(module, exports) {
27401
27402exports.read = function (buffer, offset, isLE, mLen, nBytes) {
27403 var e, m
27404 var eLen = (nBytes * 8) - mLen - 1
27405 var eMax = (1 << eLen) - 1
27406 var eBias = eMax >> 1
27407 var nBits = -7
27408 var i = isLE ? (nBytes - 1) : 0
27409 var d = isLE ? -1 : 1
27410 var s = buffer[offset + i]
27411
27412 i += d
27413
27414 e = s & ((1 << (-nBits)) - 1)
27415 s >>= (-nBits)
27416 nBits += eLen
27417 for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
27418
27419 m = e & ((1 << (-nBits)) - 1)
27420 e >>= (-nBits)
27421 nBits += mLen
27422 for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
27423
27424 if (e === 0) {
27425 e = 1 - eBias
27426 } else if (e === eMax) {
27427 return m ? NaN : ((s ? -1 : 1) * Infinity)
27428 } else {
27429 m = m + Math.pow(2, mLen)
27430 e = e - eBias
27431 }
27432 return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
27433}
27434
27435exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
27436 var e, m, c
27437 var eLen = (nBytes * 8) - mLen - 1
27438 var eMax = (1 << eLen) - 1
27439 var eBias = eMax >> 1
27440 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
27441 var i = isLE ? 0 : (nBytes - 1)
27442 var d = isLE ? 1 : -1
27443 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
27444
27445 value = Math.abs(value)
27446
27447 if (isNaN(value) || value === Infinity) {
27448 m = isNaN(value) ? 1 : 0
27449 e = eMax
27450 } else {
27451 e = Math.floor(Math.log(value) / Math.LN2)
27452 if (value * (c = Math.pow(2, -e)) < 1) {
27453 e--
27454 c *= 2
27455 }
27456 if (e + eBias >= 1) {
27457 value += rt / c
27458 } else {
27459 value += rt * Math.pow(2, 1 - eBias)
27460 }
27461 if (value * c >= 2) {
27462 e++
27463 c /= 2
27464 }
27465
27466 if (e + eBias >= eMax) {
27467 m = 0
27468 e = eMax
27469 } else if (e + eBias >= 1) {
27470 m = ((value * c) - 1) * Math.pow(2, mLen)
27471 e = e + eBias
27472 } else {
27473 m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
27474 e = 0
27475 }
27476 }
27477
27478 for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
27479
27480 e = (e << mLen) | m
27481 eLen += mLen
27482 for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
27483
27484 buffer[offset + i - d] |= s * 128
27485}
27486
27487
27488/***/ }),
27489/* 170 */
27490/***/ (function(module, exports) {
27491
27492/**
27493 * The code was extracted from:
27494 * https://github.com/davidchambers/Base64.js
27495 */
27496
27497var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
27498
27499function InvalidCharacterError(message) {
27500 this.message = message;
27501}
27502
27503InvalidCharacterError.prototype = new Error();
27504InvalidCharacterError.prototype.name = 'InvalidCharacterError';
27505
27506function polyfill (input) {
27507 var str = String(input).replace(/=+$/, '');
27508 if (str.length % 4 == 1) {
27509 throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.");
27510 }
27511 for (
27512 // initialize result and counters
27513 var bc = 0, bs, buffer, idx = 0, output = '';
27514 // get next character
27515 buffer = str.charAt(idx++);
27516 // character found in table? initialize bit storage and add its ascii value;
27517 ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
27518 // and if not first of each 4 characters,
27519 // convert the first 8 bits to one ascii character
27520 bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
27521 ) {
27522 // try to find character in table (0-63, not found => -1)
27523 buffer = chars.indexOf(buffer);
27524 }
27525 return output;
27526}
27527
27528
27529module.exports = typeof window !== 'undefined' && window.atob && window.atob.bind(window) || polyfill;
27530
27531
27532/***/ }),
27533/* 171 */
27534/***/ (function(module, exports, __webpack_require__) {
27535
27536var atob = __webpack_require__(170);
27537
27538function b64DecodeUnicode(str) {
27539 return decodeURIComponent(atob(str).replace(/(.)/g, function (m, p) {
27540 var code = p.charCodeAt(0).toString(16).toUpperCase();
27541 if (code.length < 2) {
27542 code = '0' + code;
27543 }
27544 return '%' + code;
27545 }));
27546}
27547
27548module.exports = function(str) {
27549 var output = str.replace(/-/g, "+").replace(/_/g, "/");
27550 switch (output.length % 4) {
27551 case 0:
27552 break;
27553 case 2:
27554 output += "==";
27555 break;
27556 case 3:
27557 output += "=";
27558 break;
27559 default:
27560 throw "Illegal base64url string!";
27561 }
27562
27563 try{
27564 return b64DecodeUnicode(output);
27565 } catch (err) {
27566 return atob(output);
27567 }
27568};
27569
27570
27571/***/ }),
27572/* 172 */
27573/***/ (function(module, exports, __webpack_require__) {
27574
27575"use strict";
27576
27577
27578var base64_url_decode = __webpack_require__(171);
27579
27580function InvalidTokenError(message) {
27581 this.message = message;
27582}
27583
27584InvalidTokenError.prototype = new Error();
27585InvalidTokenError.prototype.name = 'InvalidTokenError';
27586
27587module.exports = function (token,options) {
27588 if (typeof token !== 'string') {
27589 throw new InvalidTokenError('Invalid token specified');
27590 }
27591
27592 options = options || {};
27593 var pos = options.header === true ? 0 : 1;
27594 try {
27595 return JSON.parse(base64_url_decode(token.split('.')[pos]));
27596 } catch (e) {
27597 throw new InvalidTokenError('Invalid token specified: ' + e.message);
27598 }
27599};
27600
27601module.exports.InvalidTokenError = InvalidTokenError;
27602
27603
27604/***/ }),
27605/* 173 */
27606/***/ (function(module, exports, __webpack_require__) {
27607
27608var map = {
27609 "./af": 22,
27610 "./af.js": 22,
27611 "./ar": 29,
27612 "./ar-dz": 23,
27613 "./ar-dz.js": 23,
27614 "./ar-kw": 24,
27615 "./ar-kw.js": 24,
27616 "./ar-ly": 25,
27617 "./ar-ly.js": 25,
27618 "./ar-ma": 26,
27619 "./ar-ma.js": 26,
27620 "./ar-sa": 27,
27621 "./ar-sa.js": 27,
27622 "./ar-tn": 28,
27623 "./ar-tn.js": 28,
27624 "./ar.js": 29,
27625 "./az": 30,
27626 "./az.js": 30,
27627 "./be": 31,
27628 "./be.js": 31,
27629 "./bg": 32,
27630 "./bg.js": 32,
27631 "./bm": 33,
27632 "./bm.js": 33,
27633 "./bn": 34,
27634 "./bn.js": 34,
27635 "./bo": 35,
27636 "./bo.js": 35,
27637 "./br": 36,
27638 "./br.js": 36,
27639 "./bs": 37,
27640 "./bs.js": 37,
27641 "./ca": 38,
27642 "./ca.js": 38,
27643 "./cs": 39,
27644 "./cs.js": 39,
27645 "./cv": 40,
27646 "./cv.js": 40,
27647 "./cy": 41,
27648 "./cy.js": 41,
27649 "./da": 42,
27650 "./da.js": 42,
27651 "./de": 45,
27652 "./de-at": 43,
27653 "./de-at.js": 43,
27654 "./de-ch": 44,
27655 "./de-ch.js": 44,
27656 "./de.js": 45,
27657 "./dv": 46,
27658 "./dv.js": 46,
27659 "./el": 47,
27660 "./el.js": 47,
27661 "./en-au": 48,
27662 "./en-au.js": 48,
27663 "./en-ca": 49,
27664 "./en-ca.js": 49,
27665 "./en-gb": 50,
27666 "./en-gb.js": 50,
27667 "./en-ie": 51,
27668 "./en-ie.js": 51,
27669 "./en-il": 52,
27670 "./en-il.js": 52,
27671 "./en-nz": 53,
27672 "./en-nz.js": 53,
27673 "./eo": 54,
27674 "./eo.js": 54,
27675 "./es": 57,
27676 "./es-do": 55,
27677 "./es-do.js": 55,
27678 "./es-us": 56,
27679 "./es-us.js": 56,
27680 "./es.js": 57,
27681 "./et": 58,
27682 "./et.js": 58,
27683 "./eu": 59,
27684 "./eu.js": 59,
27685 "./fa": 60,
27686 "./fa.js": 60,
27687 "./fi": 61,
27688 "./fi.js": 61,
27689 "./fo": 62,
27690 "./fo.js": 62,
27691 "./fr": 65,
27692 "./fr-ca": 63,
27693 "./fr-ca.js": 63,
27694 "./fr-ch": 64,
27695 "./fr-ch.js": 64,
27696 "./fr.js": 65,
27697 "./fy": 66,
27698 "./fy.js": 66,
27699 "./gd": 67,
27700 "./gd.js": 67,
27701 "./gl": 68,
27702 "./gl.js": 68,
27703 "./gom-latn": 69,
27704 "./gom-latn.js": 69,
27705 "./gu": 70,
27706 "./gu.js": 70,
27707 "./he": 71,
27708 "./he.js": 71,
27709 "./hi": 72,
27710 "./hi.js": 72,
27711 "./hr": 73,
27712 "./hr.js": 73,
27713 "./hu": 74,
27714 "./hu.js": 74,
27715 "./hy-am": 75,
27716 "./hy-am.js": 75,
27717 "./id": 76,
27718 "./id.js": 76,
27719 "./is": 77,
27720 "./is.js": 77,
27721 "./it": 78,
27722 "./it.js": 78,
27723 "./ja": 79,
27724 "./ja.js": 79,
27725 "./jv": 80,
27726 "./jv.js": 80,
27727 "./ka": 81,
27728 "./ka.js": 81,
27729 "./kk": 82,
27730 "./kk.js": 82,
27731 "./km": 83,
27732 "./km.js": 83,
27733 "./kn": 84,
27734 "./kn.js": 84,
27735 "./ko": 85,
27736 "./ko.js": 85,
27737 "./ky": 86,
27738 "./ky.js": 86,
27739 "./lb": 87,
27740 "./lb.js": 87,
27741 "./lo": 88,
27742 "./lo.js": 88,
27743 "./lt": 89,
27744 "./lt.js": 89,
27745 "./lv": 90,
27746 "./lv.js": 90,
27747 "./me": 91,
27748 "./me.js": 91,
27749 "./mi": 92,
27750 "./mi.js": 92,
27751 "./mk": 93,
27752 "./mk.js": 93,
27753 "./ml": 94,
27754 "./ml.js": 94,
27755 "./mn": 95,
27756 "./mn.js": 95,
27757 "./mr": 96,
27758 "./mr.js": 96,
27759 "./ms": 98,
27760 "./ms-my": 97,
27761 "./ms-my.js": 97,
27762 "./ms.js": 98,
27763 "./mt": 99,
27764 "./mt.js": 99,
27765 "./my": 100,
27766 "./my.js": 100,
27767 "./nb": 101,
27768 "./nb.js": 101,
27769 "./ne": 102,
27770 "./ne.js": 102,
27771 "./nl": 104,
27772 "./nl-be": 103,
27773 "./nl-be.js": 103,
27774 "./nl.js": 104,
27775 "./nn": 105,
27776 "./nn.js": 105,
27777 "./pa-in": 106,
27778 "./pa-in.js": 106,
27779 "./pl": 107,
27780 "./pl.js": 107,
27781 "./pt": 109,
27782 "./pt-br": 108,
27783 "./pt-br.js": 108,
27784 "./pt.js": 109,
27785 "./ro": 110,
27786 "./ro.js": 110,
27787 "./ru": 111,
27788 "./ru.js": 111,
27789 "./sd": 112,
27790 "./sd.js": 112,
27791 "./se": 113,
27792 "./se.js": 113,
27793 "./si": 114,
27794 "./si.js": 114,
27795 "./sk": 115,
27796 "./sk.js": 115,
27797 "./sl": 116,
27798 "./sl.js": 116,
27799 "./sq": 117,
27800 "./sq.js": 117,
27801 "./sr": 119,
27802 "./sr-cyrl": 118,
27803 "./sr-cyrl.js": 118,
27804 "./sr.js": 119,
27805 "./ss": 120,
27806 "./ss.js": 120,
27807 "./sv": 121,
27808 "./sv.js": 121,
27809 "./sw": 122,
27810 "./sw.js": 122,
27811 "./ta": 123,
27812 "./ta.js": 123,
27813 "./te": 124,
27814 "./te.js": 124,
27815 "./tet": 125,
27816 "./tet.js": 125,
27817 "./tg": 126,
27818 "./tg.js": 126,
27819 "./th": 127,
27820 "./th.js": 127,
27821 "./tl-ph": 128,
27822 "./tl-ph.js": 128,
27823 "./tlh": 129,
27824 "./tlh.js": 129,
27825 "./tr": 130,
27826 "./tr.js": 130,
27827 "./tzl": 131,
27828 "./tzl.js": 131,
27829 "./tzm": 133,
27830 "./tzm-latn": 132,
27831 "./tzm-latn.js": 132,
27832 "./tzm.js": 133,
27833 "./ug-cn": 134,
27834 "./ug-cn.js": 134,
27835 "./uk": 135,
27836 "./uk.js": 135,
27837 "./ur": 136,
27838 "./ur.js": 136,
27839 "./uz": 138,
27840 "./uz-latn": 137,
27841 "./uz-latn.js": 137,
27842 "./uz.js": 138,
27843 "./vi": 139,
27844 "./vi.js": 139,
27845 "./x-pseudo": 140,
27846 "./x-pseudo.js": 140,
27847 "./yo": 141,
27848 "./yo.js": 141,
27849 "./zh-cn": 142,
27850 "./zh-cn.js": 142,
27851 "./zh-hk": 143,
27852 "./zh-hk.js": 143,
27853 "./zh-tw": 144,
27854 "./zh-tw.js": 144
27855};
27856function webpackContext(req) {
27857 return __webpack_require__(webpackContextResolve(req));
27858};
27859function webpackContextResolve(req) {
27860 var id = map[req];
27861 if(!(id + 1)) // check for number or string
27862 throw new Error("Cannot find module '" + req + "'.");
27863 return id;
27864};
27865webpackContext.keys = function webpackContextKeys() {
27866 return Object.keys(map);
27867};
27868webpackContext.resolve = webpackContextResolve;
27869module.exports = webpackContext;
27870webpackContext.id = 173;
27871
27872/***/ }),
27873/* 174 */
27874/***/ (function(module, exports) {
27875
27876/**
27877 * Helpers.
27878 */
27879
27880var s = 1000;
27881var m = s * 60;
27882var h = m * 60;
27883var d = h * 24;
27884var y = d * 365.25;
27885
27886/**
27887 * Parse or format the given `val`.
27888 *
27889 * Options:
27890 *
27891 * - `long` verbose formatting [false]
27892 *
27893 * @param {String|Number} val
27894 * @param {Object} [options]
27895 * @throws {Error} throw an error if val is not a non-empty string or a number
27896 * @return {String|Number}
27897 * @api public
27898 */
27899
27900module.exports = function(val, options) {
27901 options = options || {};
27902 var type = typeof val;
27903 if (type === 'string' && val.length > 0) {
27904 return parse(val);
27905 } else if (type === 'number' && isNaN(val) === false) {
27906 return options.long ? fmtLong(val) : fmtShort(val);
27907 }
27908 throw new Error(
27909 'val is not a non-empty string or a valid number. val=' +
27910 JSON.stringify(val)
27911 );
27912};
27913
27914/**
27915 * Parse the given `str` and return milliseconds.
27916 *
27917 * @param {String} str
27918 * @return {Number}
27919 * @api private
27920 */
27921
27922function parse(str) {
27923 str = String(str);
27924 if (str.length > 100) {
27925 return;
27926 }
27927 var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
27928 str
27929 );
27930 if (!match) {
27931 return;
27932 }
27933 var n = parseFloat(match[1]);
27934 var type = (match[2] || 'ms').toLowerCase();
27935 switch (type) {
27936 case 'years':
27937 case 'year':
27938 case 'yrs':
27939 case 'yr':
27940 case 'y':
27941 return n * y;
27942 case 'days':
27943 case 'day':
27944 case 'd':
27945 return n * d;
27946 case 'hours':
27947 case 'hour':
27948 case 'hrs':
27949 case 'hr':
27950 case 'h':
27951 return n * h;
27952 case 'minutes':
27953 case 'minute':
27954 case 'mins':
27955 case 'min':
27956 case 'm':
27957 return n * m;
27958 case 'seconds':
27959 case 'second':
27960 case 'secs':
27961 case 'sec':
27962 case 's':
27963 return n * s;
27964 case 'milliseconds':
27965 case 'millisecond':
27966 case 'msecs':
27967 case 'msec':
27968 case 'ms':
27969 return n;
27970 default:
27971 return undefined;
27972 }
27973}
27974
27975/**
27976 * Short format for `ms`.
27977 *
27978 * @param {Number} ms
27979 * @return {String}
27980 * @api private
27981 */
27982
27983function fmtShort(ms) {
27984 if (ms >= d) {
27985 return Math.round(ms / d) + 'd';
27986 }
27987 if (ms >= h) {
27988 return Math.round(ms / h) + 'h';
27989 }
27990 if (ms >= m) {
27991 return Math.round(ms / m) + 'm';
27992 }
27993 if (ms >= s) {
27994 return Math.round(ms / s) + 's';
27995 }
27996 return ms + 'ms';
27997}
27998
27999/**
28000 * Long format for `ms`.
28001 *
28002 * @param {Number} ms
28003 * @return {String}
28004 * @api private
28005 */
28006
28007function fmtLong(ms) {
28008 return plural(ms, d, 'day') ||
28009 plural(ms, h, 'hour') ||
28010 plural(ms, m, 'minute') ||
28011 plural(ms, s, 'second') ||
28012 ms + ' ms';
28013}
28014
28015/**
28016 * Pluralization helper.
28017 */
28018
28019function plural(ms, n, name) {
28020 if (ms < n) {
28021 return;
28022 }
28023 if (ms < n * 1.5) {
28024 return Math.floor(ms / n) + ' ' + name;
28025 }
28026 return Math.ceil(ms / n) + ' ' + name + 's';
28027}
28028
28029
28030/***/ }),
28031/* 175 */
28032/***/ (function(module, exports, __webpack_require__) {
28033
28034"use strict";
28035
28036
28037module.exports = exports = self.fetch;
28038
28039// Needed for TypeScript and Webpack.
28040exports.default = self.fetch.bind(self);
28041
28042exports.Headers = self.Headers;
28043exports.Request = self.Request;
28044exports.Response = self.Response;
28045
28046
28047/***/ }),
28048/* 176 */
28049/***/ (function(module, exports, __webpack_require__) {
28050
28051"use strict";
28052
28053
28054exports.byteLength = byteLength
28055exports.toByteArray = toByteArray
28056exports.fromByteArray = fromByteArray
28057
28058var lookup = []
28059var revLookup = []
28060var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
28061
28062var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
28063for (var i = 0, len = code.length; i < len; ++i) {
28064 lookup[i] = code[i]
28065 revLookup[code.charCodeAt(i)] = i
28066}
28067
28068// Support decoding URL-safe base64 strings, as Node.js does.
28069// See: https://en.wikipedia.org/wiki/Base64#URL_applications
28070revLookup['-'.charCodeAt(0)] = 62
28071revLookup['_'.charCodeAt(0)] = 63
28072
28073function getLens (b64) {
28074 var len = b64.length
28075
28076 if (len % 4 > 0) {
28077 throw new Error('Invalid string. Length must be a multiple of 4')
28078 }
28079
28080 // Trim off extra bytes after placeholder bytes are found
28081 // See: https://github.com/beatgammit/base64-js/issues/42
28082 var validLen = b64.indexOf('=')
28083 if (validLen === -1) validLen = len
28084
28085 var placeHoldersLen = validLen === len
28086 ? 0
28087 : 4 - (validLen % 4)
28088
28089 return [validLen, placeHoldersLen]
28090}
28091
28092// base64 is 4/3 + up to two characters of the original data
28093function byteLength (b64) {
28094 var lens = getLens(b64)
28095 var validLen = lens[0]
28096 var placeHoldersLen = lens[1]
28097 return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
28098}
28099
28100function _byteLength (b64, validLen, placeHoldersLen) {
28101 return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
28102}
28103
28104function toByteArray (b64) {
28105 var tmp
28106 var lens = getLens(b64)
28107 var validLen = lens[0]
28108 var placeHoldersLen = lens[1]
28109
28110 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
28111
28112 var curByte = 0
28113
28114 // if there are placeholders, only get up to the last complete 4 chars
28115 var len = placeHoldersLen > 0
28116 ? validLen - 4
28117 : validLen
28118
28119 for (var i = 0; i < len; i += 4) {
28120 tmp =
28121 (revLookup[b64.charCodeAt(i)] << 18) |
28122 (revLookup[b64.charCodeAt(i + 1)] << 12) |
28123 (revLookup[b64.charCodeAt(i + 2)] << 6) |
28124 revLookup[b64.charCodeAt(i + 3)]
28125 arr[curByte++] = (tmp >> 16) & 0xFF
28126 arr[curByte++] = (tmp >> 8) & 0xFF
28127 arr[curByte++] = tmp & 0xFF
28128 }
28129
28130 if (placeHoldersLen === 2) {
28131 tmp =
28132 (revLookup[b64.charCodeAt(i)] << 2) |
28133 (revLookup[b64.charCodeAt(i + 1)] >> 4)
28134 arr[curByte++] = tmp & 0xFF
28135 }
28136
28137 if (placeHoldersLen === 1) {
28138 tmp =
28139 (revLookup[b64.charCodeAt(i)] << 10) |
28140 (revLookup[b64.charCodeAt(i + 1)] << 4) |
28141 (revLookup[b64.charCodeAt(i + 2)] >> 2)
28142 arr[curByte++] = (tmp >> 8) & 0xFF
28143 arr[curByte++] = tmp & 0xFF
28144 }
28145
28146 return arr
28147}
28148
28149function tripletToBase64 (num) {
28150 return lookup[num >> 18 & 0x3F] +
28151 lookup[num >> 12 & 0x3F] +
28152 lookup[num >> 6 & 0x3F] +
28153 lookup[num & 0x3F]
28154}
28155
28156function encodeChunk (uint8, start, end) {
28157 var tmp
28158 var output = []
28159 for (var i = start; i < end; i += 3) {
28160 tmp =
28161 ((uint8[i] << 16) & 0xFF0000) +
28162 ((uint8[i + 1] << 8) & 0xFF00) +
28163 (uint8[i + 2] & 0xFF)
28164 output.push(tripletToBase64(tmp))
28165 }
28166 return output.join('')
28167}
28168
28169function fromByteArray (uint8) {
28170 var tmp
28171 var len = uint8.length
28172 var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
28173 var parts = []
28174 var maxChunkLength = 16383 // must be multiple of 3
28175
28176 // go through the array every three bytes, we'll deal with trailing stuff later
28177 for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
28178 parts.push(encodeChunk(
28179 uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
28180 ))
28181 }
28182
28183 // pad the end with zeros, but make sure to not forget the extra bytes
28184 if (extraBytes === 1) {
28185 tmp = uint8[len - 1]
28186 parts.push(
28187 lookup[tmp >> 2] +
28188 lookup[(tmp << 4) & 0x3F] +
28189 '=='
28190 )
28191 } else if (extraBytes === 2) {
28192 tmp = (uint8[len - 2] << 8) + uint8[len - 1]
28193 parts.push(
28194 lookup[tmp >> 10] +
28195 lookup[(tmp >> 4) & 0x3F] +
28196 lookup[(tmp << 2) & 0x3F] +
28197 '='
28198 )
28199 }
28200
28201 return parts.join('')
28202}
28203
28204
28205/***/ }),
28206/* 177 */
28207/***/ (function(module, exports, __webpack_require__) {
28208
28209/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */
28210;(function(root) {
28211
28212 /** Detect free variables */
28213 var freeExports = typeof exports == 'object' && exports &&
28214 !exports.nodeType && exports;
28215 var freeModule = typeof module == 'object' && module &&
28216 !module.nodeType && module;
28217 var freeGlobal = typeof global == 'object' && global;
28218 if (
28219 freeGlobal.global === freeGlobal ||
28220 freeGlobal.window === freeGlobal ||
28221 freeGlobal.self === freeGlobal
28222 ) {
28223 root = freeGlobal;
28224 }
28225
28226 /**
28227 * The `punycode` object.
28228 * @name punycode
28229 * @type Object
28230 */
28231 var punycode,
28232
28233 /** Highest positive signed 32-bit float value */
28234 maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
28235
28236 /** Bootstring parameters */
28237 base = 36,
28238 tMin = 1,
28239 tMax = 26,
28240 skew = 38,
28241 damp = 700,
28242 initialBias = 72,
28243 initialN = 128, // 0x80
28244 delimiter = '-', // '\x2D'
28245
28246 /** Regular expressions */
28247 regexPunycode = /^xn--/,
28248 regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
28249 regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
28250
28251 /** Error messages */
28252 errors = {
28253 'overflow': 'Overflow: input needs wider integers to process',
28254 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
28255 'invalid-input': 'Invalid input'
28256 },
28257
28258 /** Convenience shortcuts */
28259 baseMinusTMin = base - tMin,
28260 floor = Math.floor,
28261 stringFromCharCode = String.fromCharCode,
28262
28263 /** Temporary variable */
28264 key;
28265
28266 /*--------------------------------------------------------------------------*/
28267
28268 /**
28269 * A generic error utility function.
28270 * @private
28271 * @param {String} type The error type.
28272 * @returns {Error} Throws a `RangeError` with the applicable error message.
28273 */
28274 function error(type) {
28275 throw new RangeError(errors[type]);
28276 }
28277
28278 /**
28279 * A generic `Array#map` utility function.
28280 * @private
28281 * @param {Array} array The array to iterate over.
28282 * @param {Function} callback The function that gets called for every array
28283 * item.
28284 * @returns {Array} A new array of values returned by the callback function.
28285 */
28286 function map(array, fn) {
28287 var length = array.length;
28288 var result = [];
28289 while (length--) {
28290 result[length] = fn(array[length]);
28291 }
28292 return result;
28293 }
28294
28295 /**
28296 * A simple `Array#map`-like wrapper to work with domain name strings or email
28297 * addresses.
28298 * @private
28299 * @param {String} domain The domain name or email address.
28300 * @param {Function} callback The function that gets called for every
28301 * character.
28302 * @returns {Array} A new string of characters returned by the callback
28303 * function.
28304 */
28305 function mapDomain(string, fn) {
28306 var parts = string.split('@');
28307 var result = '';
28308 if (parts.length > 1) {
28309 // In email addresses, only the domain name should be punycoded. Leave
28310 // the local part (i.e. everything up to `@`) intact.
28311 result = parts[0] + '@';
28312 string = parts[1];
28313 }
28314 // Avoid `split(regex)` for IE8 compatibility. See #17.
28315 string = string.replace(regexSeparators, '\x2E');
28316 var labels = string.split('.');
28317 var encoded = map(labels, fn).join('.');
28318 return result + encoded;
28319 }
28320
28321 /**
28322 * Creates an array containing the numeric code points of each Unicode
28323 * character in the string. While JavaScript uses UCS-2 internally,
28324 * this function will convert a pair of surrogate halves (each of which
28325 * UCS-2 exposes as separate characters) into a single code point,
28326 * matching UTF-16.
28327 * @see `punycode.ucs2.encode`
28328 * @see <https://mathiasbynens.be/notes/javascript-encoding>
28329 * @memberOf punycode.ucs2
28330 * @name decode
28331 * @param {String} string The Unicode input string (UCS-2).
28332 * @returns {Array} The new array of code points.
28333 */
28334 function ucs2decode(string) {
28335 var output = [],
28336 counter = 0,
28337 length = string.length,
28338 value,
28339 extra;
28340 while (counter < length) {
28341 value = string.charCodeAt(counter++);
28342 if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
28343 // high surrogate, and there is a next character
28344 extra = string.charCodeAt(counter++);
28345 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
28346 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
28347 } else {
28348 // unmatched surrogate; only append this code unit, in case the next
28349 // code unit is the high surrogate of a surrogate pair
28350 output.push(value);
28351 counter--;
28352 }
28353 } else {
28354 output.push(value);
28355 }
28356 }
28357 return output;
28358 }
28359
28360 /**
28361 * Creates a string based on an array of numeric code points.
28362 * @see `punycode.ucs2.decode`
28363 * @memberOf punycode.ucs2
28364 * @name encode
28365 * @param {Array} codePoints The array of numeric code points.
28366 * @returns {String} The new Unicode string (UCS-2).
28367 */
28368 function ucs2encode(array) {
28369 return map(array, function(value) {
28370 var output = '';
28371 if (value > 0xFFFF) {
28372 value -= 0x10000;
28373 output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
28374 value = 0xDC00 | value & 0x3FF;
28375 }
28376 output += stringFromCharCode(value);
28377 return output;
28378 }).join('');
28379 }
28380
28381 /**
28382 * Converts a basic code point into a digit/integer.
28383 * @see `digitToBasic()`
28384 * @private
28385 * @param {Number} codePoint The basic numeric code point value.
28386 * @returns {Number} The numeric value of a basic code point (for use in
28387 * representing integers) in the range `0` to `base - 1`, or `base` if
28388 * the code point does not represent a value.
28389 */
28390 function basicToDigit(codePoint) {
28391 if (codePoint - 48 < 10) {
28392 return codePoint - 22;
28393 }
28394 if (codePoint - 65 < 26) {
28395 return codePoint - 65;
28396 }
28397 if (codePoint - 97 < 26) {
28398 return codePoint - 97;
28399 }
28400 return base;
28401 }
28402
28403 /**
28404 * Converts a digit/integer into a basic code point.
28405 * @see `basicToDigit()`
28406 * @private
28407 * @param {Number} digit The numeric value of a basic code point.
28408 * @returns {Number} The basic code point whose value (when used for
28409 * representing integers) is `digit`, which needs to be in the range
28410 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
28411 * used; else, the lowercase form is used. The behavior is undefined
28412 * if `flag` is non-zero and `digit` has no uppercase form.
28413 */
28414 function digitToBasic(digit, flag) {
28415 // 0..25 map to ASCII a..z or A..Z
28416 // 26..35 map to ASCII 0..9
28417 return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
28418 }
28419
28420 /**
28421 * Bias adaptation function as per section 3.4 of RFC 3492.
28422 * https://tools.ietf.org/html/rfc3492#section-3.4
28423 * @private
28424 */
28425 function adapt(delta, numPoints, firstTime) {
28426 var k = 0;
28427 delta = firstTime ? floor(delta / damp) : delta >> 1;
28428 delta += floor(delta / numPoints);
28429 for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
28430 delta = floor(delta / baseMinusTMin);
28431 }
28432 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
28433 }
28434
28435 /**
28436 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
28437 * symbols.
28438 * @memberOf punycode
28439 * @param {String} input The Punycode string of ASCII-only symbols.
28440 * @returns {String} The resulting string of Unicode symbols.
28441 */
28442 function decode(input) {
28443 // Don't use UCS-2
28444 var output = [],
28445 inputLength = input.length,
28446 out,
28447 i = 0,
28448 n = initialN,
28449 bias = initialBias,
28450 basic,
28451 j,
28452 index,
28453 oldi,
28454 w,
28455 k,
28456 digit,
28457 t,
28458 /** Cached calculation results */
28459 baseMinusT;
28460
28461 // Handle the basic code points: let `basic` be the number of input code
28462 // points before the last delimiter, or `0` if there is none, then copy
28463 // the first basic code points to the output.
28464
28465 basic = input.lastIndexOf(delimiter);
28466 if (basic < 0) {
28467 basic = 0;
28468 }
28469
28470 for (j = 0; j < basic; ++j) {
28471 // if it's not a basic code point
28472 if (input.charCodeAt(j) >= 0x80) {
28473 error('not-basic');
28474 }
28475 output.push(input.charCodeAt(j));
28476 }
28477
28478 // Main decoding loop: start just after the last delimiter if any basic code
28479 // points were copied; start at the beginning otherwise.
28480
28481 for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
28482
28483 // `index` is the index of the next character to be consumed.
28484 // Decode a generalized variable-length integer into `delta`,
28485 // which gets added to `i`. The overflow checking is easier
28486 // if we increase `i` as we go, then subtract off its starting
28487 // value at the end to obtain `delta`.
28488 for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
28489
28490 if (index >= inputLength) {
28491 error('invalid-input');
28492 }
28493
28494 digit = basicToDigit(input.charCodeAt(index++));
28495
28496 if (digit >= base || digit > floor((maxInt - i) / w)) {
28497 error('overflow');
28498 }
28499
28500 i += digit * w;
28501 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
28502
28503 if (digit < t) {
28504 break;
28505 }
28506
28507 baseMinusT = base - t;
28508 if (w > floor(maxInt / baseMinusT)) {
28509 error('overflow');
28510 }
28511
28512 w *= baseMinusT;
28513
28514 }
28515
28516 out = output.length + 1;
28517 bias = adapt(i - oldi, out, oldi == 0);
28518
28519 // `i` was supposed to wrap around from `out` to `0`,
28520 // incrementing `n` each time, so we'll fix that now:
28521 if (floor(i / out) > maxInt - n) {
28522 error('overflow');
28523 }
28524
28525 n += floor(i / out);
28526 i %= out;
28527
28528 // Insert `n` at position `i` of the output
28529 output.splice(i++, 0, n);
28530
28531 }
28532
28533 return ucs2encode(output);
28534 }
28535
28536 /**
28537 * Converts a string of Unicode symbols (e.g. a domain name label) to a
28538 * Punycode string of ASCII-only symbols.
28539 * @memberOf punycode
28540 * @param {String} input The string of Unicode symbols.
28541 * @returns {String} The resulting Punycode string of ASCII-only symbols.
28542 */
28543 function encode(input) {
28544 var n,
28545 delta,
28546 handledCPCount,
28547 basicLength,
28548 bias,
28549 j,
28550 m,
28551 q,
28552 k,
28553 t,
28554 currentValue,
28555 output = [],
28556 /** `inputLength` will hold the number of code points in `input`. */
28557 inputLength,
28558 /** Cached calculation results */
28559 handledCPCountPlusOne,
28560 baseMinusT,
28561 qMinusT;
28562
28563 // Convert the input in UCS-2 to Unicode
28564 input = ucs2decode(input);
28565
28566 // Cache the length
28567 inputLength = input.length;
28568
28569 // Initialize the state
28570 n = initialN;
28571 delta = 0;
28572 bias = initialBias;
28573
28574 // Handle the basic code points
28575 for (j = 0; j < inputLength; ++j) {
28576 currentValue = input[j];
28577 if (currentValue < 0x80) {
28578 output.push(stringFromCharCode(currentValue));
28579 }
28580 }
28581
28582 handledCPCount = basicLength = output.length;
28583
28584 // `handledCPCount` is the number of code points that have been handled;
28585 // `basicLength` is the number of basic code points.
28586
28587 // Finish the basic string - if it is not empty - with a delimiter
28588 if (basicLength) {
28589 output.push(delimiter);
28590 }
28591
28592 // Main encoding loop:
28593 while (handledCPCount < inputLength) {
28594
28595 // All non-basic code points < n have been handled already. Find the next
28596 // larger one:
28597 for (m = maxInt, j = 0; j < inputLength; ++j) {
28598 currentValue = input[j];
28599 if (currentValue >= n && currentValue < m) {
28600 m = currentValue;
28601 }
28602 }
28603
28604 // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
28605 // but guard against overflow
28606 handledCPCountPlusOne = handledCPCount + 1;
28607 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
28608 error('overflow');
28609 }
28610
28611 delta += (m - n) * handledCPCountPlusOne;
28612 n = m;
28613
28614 for (j = 0; j < inputLength; ++j) {
28615 currentValue = input[j];
28616
28617 if (currentValue < n && ++delta > maxInt) {
28618 error('overflow');
28619 }
28620
28621 if (currentValue == n) {
28622 // Represent delta as a generalized variable-length integer
28623 for (q = delta, k = base; /* no condition */; k += base) {
28624 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
28625 if (q < t) {
28626 break;
28627 }
28628 qMinusT = q - t;
28629 baseMinusT = base - t;
28630 output.push(
28631 stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
28632 );
28633 q = floor(qMinusT / baseMinusT);
28634 }
28635
28636 output.push(stringFromCharCode(digitToBasic(q, 0)));
28637 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
28638 delta = 0;
28639 ++handledCPCount;
28640 }
28641 }
28642
28643 ++delta;
28644 ++n;
28645
28646 }
28647 return output.join('');
28648 }
28649
28650 /**
28651 * Converts a Punycode string representing a domain name or an email address
28652 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
28653 * it doesn't matter if you call it on a string that has already been
28654 * converted to Unicode.
28655 * @memberOf punycode
28656 * @param {String} input The Punycoded domain name or email address to
28657 * convert to Unicode.
28658 * @returns {String} The Unicode representation of the given Punycode
28659 * string.
28660 */
28661 function toUnicode(input) {
28662 return mapDomain(input, function(string) {
28663 return regexPunycode.test(string)
28664 ? decode(string.slice(4).toLowerCase())
28665 : string;
28666 });
28667 }
28668
28669 /**
28670 * Converts a Unicode string representing a domain name or an email address to
28671 * Punycode. Only the non-ASCII parts of the domain name will be converted,
28672 * i.e. it doesn't matter if you call it with a domain that's already in
28673 * ASCII.
28674 * @memberOf punycode
28675 * @param {String} input The domain name or email address to convert, as a
28676 * Unicode string.
28677 * @returns {String} The Punycode representation of the given domain name or
28678 * email address.
28679 */
28680 function toASCII(input) {
28681 return mapDomain(input, function(string) {
28682 return regexNonASCII.test(string)
28683 ? 'xn--' + encode(string)
28684 : string;
28685 });
28686 }
28687
28688 /*--------------------------------------------------------------------------*/
28689
28690 /** Define the public API */
28691 punycode = {
28692 /**
28693 * A string representing the current Punycode.js version number.
28694 * @memberOf punycode
28695 * @type String
28696 */
28697 'version': '1.4.1',
28698 /**
28699 * An object of methods to convert from JavaScript's internal character
28700 * representation (UCS-2) to Unicode code points, and back.
28701 * @see <https://mathiasbynens.be/notes/javascript-encoding>
28702 * @memberOf punycode
28703 * @type Object
28704 */
28705 'ucs2': {
28706 'decode': ucs2decode,
28707 'encode': ucs2encode
28708 },
28709 'decode': decode,
28710 'encode': encode,
28711 'toASCII': toASCII,
28712 'toUnicode': toUnicode
28713 };
28714
28715 /** Expose `punycode` */
28716 // Some AMD build optimizers, like r.js, check for specific condition patterns
28717 // like the following:
28718 if (
28719 true
28720 ) {
28721 !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
28722 return punycode;
28723 }.call(exports, __webpack_require__, exports, module),
28724 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
28725 } else if (freeExports && freeModule) {
28726 if (module.exports == freeExports) {
28727 // in Node.js, io.js, or RingoJS v0.8.0+
28728 freeModule.exports = punycode;
28729 } else {
28730 // in Narwhal or RingoJS v0.7.0-
28731 for (key in punycode) {
28732 punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
28733 }
28734 }
28735 } else {
28736 // in Rhino or a web browser
28737 root.punycode = punycode;
28738 }
28739
28740}(this));
28741
28742/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module), __webpack_require__(2)))
28743
28744/***/ }),
28745/* 178 */
28746/***/ (function(module, exports, __webpack_require__) {
28747
28748"use strict";
28749// Copyright Joyent, Inc. and other Node contributors.
28750//
28751// Permission is hereby granted, free of charge, to any person obtaining a
28752// copy of this software and associated documentation files (the
28753// "Software"), to deal in the Software without restriction, including
28754// without limitation the rights to use, copy, modify, merge, publish,
28755// distribute, sublicense, and/or sell copies of the Software, and to permit
28756// persons to whom the Software is furnished to do so, subject to the
28757// following conditions:
28758//
28759// The above copyright notice and this permission notice shall be included
28760// in all copies or substantial portions of the Software.
28761//
28762// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28763// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28764// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28765// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28766// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28767// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28768// USE OR OTHER DEALINGS IN THE SOFTWARE.
28769
28770
28771
28772// If obj.hasOwnProperty has been overridden, then calling
28773// obj.hasOwnProperty(prop) will break.
28774// See: https://github.com/joyent/node/issues/1707
28775function hasOwnProperty(obj, prop) {
28776 return Object.prototype.hasOwnProperty.call(obj, prop);
28777}
28778
28779module.exports = function(qs, sep, eq, options) {
28780 sep = sep || '&';
28781 eq = eq || '=';
28782 var obj = {};
28783
28784 if (typeof qs !== 'string' || qs.length === 0) {
28785 return obj;
28786 }
28787
28788 var regexp = /\+/g;
28789 qs = qs.split(sep);
28790
28791 var maxKeys = 1000;
28792 if (options && typeof options.maxKeys === 'number') {
28793 maxKeys = options.maxKeys;
28794 }
28795
28796 var len = qs.length;
28797 // maxKeys <= 0 means that we should not limit keys count
28798 if (maxKeys > 0 && len > maxKeys) {
28799 len = maxKeys;
28800 }
28801
28802 for (var i = 0; i < len; ++i) {
28803 var x = qs[i].replace(regexp, '%20'),
28804 idx = x.indexOf(eq),
28805 kstr, vstr, k, v;
28806
28807 if (idx >= 0) {
28808 kstr = x.substr(0, idx);
28809 vstr = x.substr(idx + 1);
28810 } else {
28811 kstr = x;
28812 vstr = '';
28813 }
28814
28815 k = decodeURIComponent(kstr);
28816 v = decodeURIComponent(vstr);
28817
28818 if (!hasOwnProperty(obj, k)) {
28819 obj[k] = v;
28820 } else if (isArray(obj[k])) {
28821 obj[k].push(v);
28822 } else {
28823 obj[k] = [obj[k], v];
28824 }
28825 }
28826
28827 return obj;
28828};
28829
28830var isArray = Array.isArray || function (xs) {
28831 return Object.prototype.toString.call(xs) === '[object Array]';
28832};
28833
28834
28835/***/ }),
28836/* 179 */
28837/***/ (function(module, exports, __webpack_require__) {
28838
28839"use strict";
28840// Copyright Joyent, Inc. and other Node contributors.
28841//
28842// Permission is hereby granted, free of charge, to any person obtaining a
28843// copy of this software and associated documentation files (the
28844// "Software"), to deal in the Software without restriction, including
28845// without limitation the rights to use, copy, modify, merge, publish,
28846// distribute, sublicense, and/or sell copies of the Software, and to permit
28847// persons to whom the Software is furnished to do so, subject to the
28848// following conditions:
28849//
28850// The above copyright notice and this permission notice shall be included
28851// in all copies or substantial portions of the Software.
28852//
28853// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28854// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28855// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28856// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28857// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28858// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28859// USE OR OTHER DEALINGS IN THE SOFTWARE.
28860
28861
28862
28863var stringifyPrimitive = function(v) {
28864 switch (typeof v) {
28865 case 'string':
28866 return v;
28867
28868 case 'boolean':
28869 return v ? 'true' : 'false';
28870
28871 case 'number':
28872 return isFinite(v) ? v : '';
28873
28874 default:
28875 return '';
28876 }
28877};
28878
28879module.exports = function(obj, sep, eq, name) {
28880 sep = sep || '&';
28881 eq = eq || '=';
28882 if (obj === null) {
28883 obj = undefined;
28884 }
28885
28886 if (typeof obj === 'object') {
28887 return map(objectKeys(obj), function(k) {
28888 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
28889 if (isArray(obj[k])) {
28890 return map(obj[k], function(v) {
28891 return ks + encodeURIComponent(stringifyPrimitive(v));
28892 }).join(sep);
28893 } else {
28894 return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
28895 }
28896 }).join(sep);
28897
28898 }
28899
28900 if (!name) return '';
28901 return encodeURIComponent(stringifyPrimitive(name)) + eq +
28902 encodeURIComponent(stringifyPrimitive(obj));
28903};
28904
28905var isArray = Array.isArray || function (xs) {
28906 return Object.prototype.toString.call(xs) === '[object Array]';
28907};
28908
28909function map (xs, f) {
28910 if (xs.map) return xs.map(f);
28911 var res = [];
28912 for (var i = 0; i < xs.length; i++) {
28913 res.push(f(xs[i], i));
28914 }
28915 return res;
28916}
28917
28918var objectKeys = Object.keys || function (obj) {
28919 var res = [];
28920 for (var key in obj) {
28921 if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
28922 }
28923 return res;
28924};
28925
28926
28927/***/ }),
28928/* 180 */
28929/***/ (function(module, exports, __webpack_require__) {
28930
28931"use strict";
28932
28933
28934exports.decode = exports.parse = __webpack_require__(178);
28935exports.encode = exports.stringify = __webpack_require__(179);
28936
28937
28938/***/ }),
28939/* 181 */
28940/***/ (function(module, exports, __webpack_require__) {
28941
28942"use strict";
28943// Copyright Joyent, Inc. and other Node contributors.
28944//
28945// Permission is hereby granted, free of charge, to any person obtaining a
28946// copy of this software and associated documentation files (the
28947// "Software"), to deal in the Software without restriction, including
28948// without limitation the rights to use, copy, modify, merge, publish,
28949// distribute, sublicense, and/or sell copies of the Software, and to permit
28950// persons to whom the Software is furnished to do so, subject to the
28951// following conditions:
28952//
28953// The above copyright notice and this permission notice shall be included
28954// in all copies or substantial portions of the Software.
28955//
28956// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28957// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28958// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28959// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28960// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28961// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28962// USE OR OTHER DEALINGS IN THE SOFTWARE.
28963
28964// a passthrough stream.
28965// basically just the most minimal sort of Transform stream.
28966// Every written chunk gets output as-is.
28967
28968
28969
28970module.exports = PassThrough;
28971
28972var Transform = __webpack_require__(146);
28973
28974/*<replacement>*/
28975var util = __webpack_require__(10);
28976util.inherits = __webpack_require__(5);
28977/*</replacement>*/
28978
28979util.inherits(PassThrough, Transform);
28980
28981function PassThrough(options) {
28982 if (!(this instanceof PassThrough)) return new PassThrough(options);
28983
28984 Transform.call(this, options);
28985}
28986
28987PassThrough.prototype._transform = function (chunk, encoding, cb) {
28988 cb(null, chunk);
28989};
28990
28991/***/ }),
28992/* 182 */
28993/***/ (function(module, exports, __webpack_require__) {
28994
28995"use strict";
28996
28997
28998function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
28999
29000var Buffer = __webpack_require__(14).Buffer;
29001var util = __webpack_require__(192);
29002
29003function copyBuffer(src, target, offset) {
29004 src.copy(target, offset);
29005}
29006
29007module.exports = function () {
29008 function BufferList() {
29009 _classCallCheck(this, BufferList);
29010
29011 this.head = null;
29012 this.tail = null;
29013 this.length = 0;
29014 }
29015
29016 BufferList.prototype.push = function push(v) {
29017 var entry = { data: v, next: null };
29018 if (this.length > 0) this.tail.next = entry;else this.head = entry;
29019 this.tail = entry;
29020 ++this.length;
29021 };
29022
29023 BufferList.prototype.unshift = function unshift(v) {
29024 var entry = { data: v, next: this.head };
29025 if (this.length === 0) this.tail = entry;
29026 this.head = entry;
29027 ++this.length;
29028 };
29029
29030 BufferList.prototype.shift = function shift() {
29031 if (this.length === 0) return;
29032 var ret = this.head.data;
29033 if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
29034 --this.length;
29035 return ret;
29036 };
29037
29038 BufferList.prototype.clear = function clear() {
29039 this.head = this.tail = null;
29040 this.length = 0;
29041 };
29042
29043 BufferList.prototype.join = function join(s) {
29044 if (this.length === 0) return '';
29045 var p = this.head;
29046 var ret = '' + p.data;
29047 while (p = p.next) {
29048 ret += s + p.data;
29049 }return ret;
29050 };
29051
29052 BufferList.prototype.concat = function concat(n) {
29053 if (this.length === 0) return Buffer.alloc(0);
29054 if (this.length === 1) return this.head.data;
29055 var ret = Buffer.allocUnsafe(n >>> 0);
29056 var p = this.head;
29057 var i = 0;
29058 while (p) {
29059 copyBuffer(p.data, ret, i);
29060 i += p.data.length;
29061 p = p.next;
29062 }
29063 return ret;
29064 };
29065
29066 return BufferList;
29067}();
29068
29069if (util && util.inspect && util.inspect.custom) {
29070 module.exports.prototype[util.inspect.custom] = function () {
29071 var obj = util.inspect({ length: this.length });
29072 return this.constructor.name + ' ' + obj;
29073 };
29074}
29075
29076/***/ }),
29077/* 183 */
29078/***/ (function(module, exports, __webpack_require__) {
29079
29080/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
29081 "use strict";
29082
29083 if (global.setImmediate) {
29084 return;
29085 }
29086
29087 var nextHandle = 1; // Spec says greater than zero
29088 var tasksByHandle = {};
29089 var currentlyRunningATask = false;
29090 var doc = global.document;
29091 var registerImmediate;
29092
29093 function setImmediate(callback) {
29094 // Callback can either be a function or a string
29095 if (typeof callback !== "function") {
29096 callback = new Function("" + callback);
29097 }
29098 // Copy function arguments
29099 var args = new Array(arguments.length - 1);
29100 for (var i = 0; i < args.length; i++) {
29101 args[i] = arguments[i + 1];
29102 }
29103 // Store and register the task
29104 var task = { callback: callback, args: args };
29105 tasksByHandle[nextHandle] = task;
29106 registerImmediate(nextHandle);
29107 return nextHandle++;
29108 }
29109
29110 function clearImmediate(handle) {
29111 delete tasksByHandle[handle];
29112 }
29113
29114 function run(task) {
29115 var callback = task.callback;
29116 var args = task.args;
29117 switch (args.length) {
29118 case 0:
29119 callback();
29120 break;
29121 case 1:
29122 callback(args[0]);
29123 break;
29124 case 2:
29125 callback(args[0], args[1]);
29126 break;
29127 case 3:
29128 callback(args[0], args[1], args[2]);
29129 break;
29130 default:
29131 callback.apply(undefined, args);
29132 break;
29133 }
29134 }
29135
29136 function runIfPresent(handle) {
29137 // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
29138 // So if we're currently running a task, we'll need to delay this invocation.
29139 if (currentlyRunningATask) {
29140 // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
29141 // "too much recursion" error.
29142 setTimeout(runIfPresent, 0, handle);
29143 } else {
29144 var task = tasksByHandle[handle];
29145 if (task) {
29146 currentlyRunningATask = true;
29147 try {
29148 run(task);
29149 } finally {
29150 clearImmediate(handle);
29151 currentlyRunningATask = false;
29152 }
29153 }
29154 }
29155 }
29156
29157 function installNextTickImplementation() {
29158 registerImmediate = function(handle) {
29159 process.nextTick(function () { runIfPresent(handle); });
29160 };
29161 }
29162
29163 function canUsePostMessage() {
29164 // The test against `importScripts` prevents this implementation from being installed inside a web worker,
29165 // where `global.postMessage` means something completely different and can't be used for this purpose.
29166 if (global.postMessage && !global.importScripts) {
29167 var postMessageIsAsynchronous = true;
29168 var oldOnMessage = global.onmessage;
29169 global.onmessage = function() {
29170 postMessageIsAsynchronous = false;
29171 };
29172 global.postMessage("", "*");
29173 global.onmessage = oldOnMessage;
29174 return postMessageIsAsynchronous;
29175 }
29176 }
29177
29178 function installPostMessageImplementation() {
29179 // Installs an event handler on `global` for the `message` event: see
29180 // * https://developer.mozilla.org/en/DOM/window.postMessage
29181 // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
29182
29183 var messagePrefix = "setImmediate$" + Math.random() + "$";
29184 var onGlobalMessage = function(event) {
29185 if (event.source === global &&
29186 typeof event.data === "string" &&
29187 event.data.indexOf(messagePrefix) === 0) {
29188 runIfPresent(+event.data.slice(messagePrefix.length));
29189 }
29190 };
29191
29192 if (global.addEventListener) {
29193 global.addEventListener("message", onGlobalMessage, false);
29194 } else {
29195 global.attachEvent("onmessage", onGlobalMessage);
29196 }
29197
29198 registerImmediate = function(handle) {
29199 global.postMessage(messagePrefix + handle, "*");
29200 };
29201 }
29202
29203 function installMessageChannelImplementation() {
29204 var channel = new MessageChannel();
29205 channel.port1.onmessage = function(event) {
29206 var handle = event.data;
29207 runIfPresent(handle);
29208 };
29209
29210 registerImmediate = function(handle) {
29211 channel.port2.postMessage(handle);
29212 };
29213 }
29214
29215 function installReadyStateChangeImplementation() {
29216 var html = doc.documentElement;
29217 registerImmediate = function(handle) {
29218 // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
29219 // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
29220 var script = doc.createElement("script");
29221 script.onreadystatechange = function () {
29222 runIfPresent(handle);
29223 script.onreadystatechange = null;
29224 html.removeChild(script);
29225 script = null;
29226 };
29227 html.appendChild(script);
29228 };
29229 }
29230
29231 function installSetTimeoutImplementation() {
29232 registerImmediate = function(handle) {
29233 setTimeout(runIfPresent, 0, handle);
29234 };
29235 }
29236
29237 // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
29238 var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
29239 attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
29240
29241 // Don't get fooled by e.g. browserify environments.
29242 if ({}.toString.call(global.process) === "[object process]") {
29243 // For Node.js before 0.9
29244 installNextTickImplementation();
29245
29246 } else if (canUsePostMessage()) {
29247 // For non-IE10 modern browsers
29248 installPostMessageImplementation();
29249
29250 } else if (global.MessageChannel) {
29251 // For web workers, where supported
29252 installMessageChannelImplementation();
29253
29254 } else if (doc && "onreadystatechange" in doc.createElement("script")) {
29255 // For IE 6–8
29256 installReadyStateChangeImplementation();
29257
29258 } else {
29259 // For older browsers
29260 installSetTimeoutImplementation();
29261 }
29262
29263 attachTo.setImmediate = setImmediate;
29264 attachTo.clearImmediate = clearImmediate;
29265}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
29266
29267/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)))
29268
29269/***/ }),
29270/* 184 */
29271/***/ (function(module, exports, __webpack_require__) {
29272
29273/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {var capability = __webpack_require__(153)
29274var inherits = __webpack_require__(5)
29275var response = __webpack_require__(154)
29276var stream = __webpack_require__(150)
29277var toArrayBuffer = __webpack_require__(186)
29278
29279var IncomingMessage = response.IncomingMessage
29280var rStates = response.readyStates
29281
29282function decideMode (preferBinary, useFetch) {
29283 if (capability.fetch && useFetch) {
29284 return 'fetch'
29285 } else if (capability.mozchunkedarraybuffer) {
29286 return 'moz-chunked-arraybuffer'
29287 } else if (capability.msstream) {
29288 return 'ms-stream'
29289 } else if (capability.arraybuffer && preferBinary) {
29290 return 'arraybuffer'
29291 } else if (capability.vbArray && preferBinary) {
29292 return 'text:vbarray'
29293 } else {
29294 return 'text'
29295 }
29296}
29297
29298var ClientRequest = module.exports = function (opts) {
29299 var self = this
29300 stream.Writable.call(self)
29301
29302 self._opts = opts
29303 self._body = []
29304 self._headers = {}
29305 if (opts.auth)
29306 self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))
29307 Object.keys(opts.headers).forEach(function (name) {
29308 self.setHeader(name, opts.headers[name])
29309 })
29310
29311 var preferBinary
29312 var useFetch = true
29313 if (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {
29314 // If the use of XHR should be preferred. Not typically needed.
29315 useFetch = false
29316 preferBinary = true
29317 } else if (opts.mode === 'prefer-streaming') {
29318 // If streaming is a high priority but binary compatibility and
29319 // the accuracy of the 'content-type' header aren't
29320 preferBinary = false
29321 } else if (opts.mode === 'allow-wrong-content-type') {
29322 // If streaming is more important than preserving the 'content-type' header
29323 preferBinary = !capability.overrideMimeType
29324 } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {
29325 // Use binary if text streaming may corrupt data or the content-type header, or for speed
29326 preferBinary = true
29327 } else {
29328 throw new Error('Invalid value for opts.mode')
29329 }
29330 self._mode = decideMode(preferBinary, useFetch)
29331
29332 self.on('finish', function () {
29333 self._onFinish()
29334 })
29335}
29336
29337inherits(ClientRequest, stream.Writable)
29338
29339ClientRequest.prototype.setHeader = function (name, value) {
29340 var self = this
29341 var lowerName = name.toLowerCase()
29342 // This check is not necessary, but it prevents warnings from browsers about setting unsafe
29343 // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but
29344 // http-browserify did it, so I will too.
29345 if (unsafeHeaders.indexOf(lowerName) !== -1)
29346 return
29347
29348 self._headers[lowerName] = {
29349 name: name,
29350 value: value
29351 }
29352}
29353
29354ClientRequest.prototype.getHeader = function (name) {
29355 var header = this._headers[name.toLowerCase()]
29356 if (header)
29357 return header.value
29358 return null
29359}
29360
29361ClientRequest.prototype.removeHeader = function (name) {
29362 var self = this
29363 delete self._headers[name.toLowerCase()]
29364}
29365
29366ClientRequest.prototype._onFinish = function () {
29367 var self = this
29368
29369 if (self._destroyed)
29370 return
29371 var opts = self._opts
29372
29373 var headersObj = self._headers
29374 var body = null
29375 if (opts.method !== 'GET' && opts.method !== 'HEAD') {
29376 if (capability.arraybuffer) {
29377 body = toArrayBuffer(Buffer.concat(self._body))
29378 } else if (capability.blobConstructor) {
29379 body = new global.Blob(self._body.map(function (buffer) {
29380 return toArrayBuffer(buffer)
29381 }), {
29382 type: (headersObj['content-type'] || {}).value || ''
29383 })
29384 } else {
29385 // get utf8 string
29386 body = Buffer.concat(self._body).toString()
29387 }
29388 }
29389
29390 // create flattened list of headers
29391 var headersList = []
29392 Object.keys(headersObj).forEach(function (keyName) {
29393 var name = headersObj[keyName].name
29394 var value = headersObj[keyName].value
29395 if (Array.isArray(value)) {
29396 value.forEach(function (v) {
29397 headersList.push([name, v])
29398 })
29399 } else {
29400 headersList.push([name, value])
29401 }
29402 })
29403
29404 if (self._mode === 'fetch') {
29405 var signal = null
29406 if (capability.abortController) {
29407 var controller = new AbortController()
29408 signal = controller.signal
29409 self._fetchAbortController = controller
29410
29411 if ('requestTimeout' in opts && opts.requestTimeout !== 0) {
29412 global.setTimeout(function () {
29413 self.emit('requestTimeout')
29414 if (self._fetchAbortController)
29415 self._fetchAbortController.abort()
29416 }, opts.requestTimeout)
29417 }
29418 }
29419
29420 global.fetch(self._opts.url, {
29421 method: self._opts.method,
29422 headers: headersList,
29423 body: body || undefined,
29424 mode: 'cors',
29425 credentials: opts.withCredentials ? 'include' : 'same-origin',
29426 signal: signal
29427 }).then(function (response) {
29428 self._fetchResponse = response
29429 self._connect()
29430 }, function (reason) {
29431 self.emit('error', reason)
29432 })
29433 } else {
29434 var xhr = self._xhr = new global.XMLHttpRequest()
29435 try {
29436 xhr.open(self._opts.method, self._opts.url, true)
29437 } catch (err) {
29438 process.nextTick(function () {
29439 self.emit('error', err)
29440 })
29441 return
29442 }
29443
29444 // Can't set responseType on really old browsers
29445 if ('responseType' in xhr)
29446 xhr.responseType = self._mode.split(':')[0]
29447
29448 if ('withCredentials' in xhr)
29449 xhr.withCredentials = !!opts.withCredentials
29450
29451 if (self._mode === 'text' && 'overrideMimeType' in xhr)
29452 xhr.overrideMimeType('text/plain; charset=x-user-defined')
29453
29454 if ('requestTimeout' in opts) {
29455 xhr.timeout = opts.requestTimeout
29456 xhr.ontimeout = function () {
29457 self.emit('requestTimeout')
29458 }
29459 }
29460
29461 headersList.forEach(function (header) {
29462 xhr.setRequestHeader(header[0], header[1])
29463 })
29464
29465 self._response = null
29466 xhr.onreadystatechange = function () {
29467 switch (xhr.readyState) {
29468 case rStates.LOADING:
29469 case rStates.DONE:
29470 self._onXHRProgress()
29471 break
29472 }
29473 }
29474 // Necessary for streaming in Firefox, since xhr.response is ONLY defined
29475 // in onprogress, not in onreadystatechange with xhr.readyState = 3
29476 if (self._mode === 'moz-chunked-arraybuffer') {
29477 xhr.onprogress = function () {
29478 self._onXHRProgress()
29479 }
29480 }
29481
29482 xhr.onerror = function () {
29483 if (self._destroyed)
29484 return
29485 self.emit('error', new Error('XHR error'))
29486 }
29487
29488 try {
29489 xhr.send(body)
29490 } catch (err) {
29491 process.nextTick(function () {
29492 self.emit('error', err)
29493 })
29494 return
29495 }
29496 }
29497}
29498
29499/**
29500 * Checks if xhr.status is readable and non-zero, indicating no error.
29501 * Even though the spec says it should be available in readyState 3,
29502 * accessing it throws an exception in IE8
29503 */
29504function statusValid (xhr) {
29505 try {
29506 var status = xhr.status
29507 return (status !== null && status !== 0)
29508 } catch (e) {
29509 return false
29510 }
29511}
29512
29513ClientRequest.prototype._onXHRProgress = function () {
29514 var self = this
29515
29516 if (!statusValid(self._xhr) || self._destroyed)
29517 return
29518
29519 if (!self._response)
29520 self._connect()
29521
29522 self._response._onXHRProgress()
29523}
29524
29525ClientRequest.prototype._connect = function () {
29526 var self = this
29527
29528 if (self._destroyed)
29529 return
29530
29531 self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode)
29532 self._response.on('error', function(err) {
29533 self.emit('error', err)
29534 })
29535
29536 self.emit('response', self._response)
29537}
29538
29539ClientRequest.prototype._write = function (chunk, encoding, cb) {
29540 var self = this
29541
29542 self._body.push(chunk)
29543 cb()
29544}
29545
29546ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {
29547 var self = this
29548 self._destroyed = true
29549 if (self._response)
29550 self._response._destroyed = true
29551 if (self._xhr)
29552 self._xhr.abort()
29553 else if (self._fetchAbortController)
29554 self._fetchAbortController.abort()
29555}
29556
29557ClientRequest.prototype.end = function (data, encoding, cb) {
29558 var self = this
29559 if (typeof data === 'function') {
29560 cb = data
29561 data = undefined
29562 }
29563
29564 stream.Writable.prototype.end.call(self, data, encoding, cb)
29565}
29566
29567ClientRequest.prototype.flushHeaders = function () {}
29568ClientRequest.prototype.setTimeout = function () {}
29569ClientRequest.prototype.setNoDelay = function () {}
29570ClientRequest.prototype.setSocketKeepAlive = function () {}
29571
29572// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method
29573var unsafeHeaders = [
29574 'accept-charset',
29575 'accept-encoding',
29576 'access-control-request-headers',
29577 'access-control-request-method',
29578 'connection',
29579 'content-length',
29580 'cookie',
29581 'cookie2',
29582 'date',
29583 'dnt',
29584 'expect',
29585 'host',
29586 'keep-alive',
29587 'origin',
29588 'referer',
29589 'te',
29590 'trailer',
29591 'transfer-encoding',
29592 'upgrade',
29593 'user-agent',
29594 'via'
29595]
29596
29597/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).Buffer, __webpack_require__(2), __webpack_require__(3)))
29598
29599/***/ }),
29600/* 185 */
29601/***/ (function(module, exports, __webpack_require__) {
29602
29603/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
29604 (typeof self !== "undefined" && self) ||
29605 window;
29606var apply = Function.prototype.apply;
29607
29608// DOM APIs, for completeness
29609
29610exports.setTimeout = function() {
29611 return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
29612};
29613exports.setInterval = function() {
29614 return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
29615};
29616exports.clearTimeout =
29617exports.clearInterval = function(timeout) {
29618 if (timeout) {
29619 timeout.close();
29620 }
29621};
29622
29623function Timeout(id, clearFn) {
29624 this._id = id;
29625 this._clearFn = clearFn;
29626}
29627Timeout.prototype.unref = Timeout.prototype.ref = function() {};
29628Timeout.prototype.close = function() {
29629 this._clearFn.call(scope, this._id);
29630};
29631
29632// Does not start the time, just sets up the members needed.
29633exports.enroll = function(item, msecs) {
29634 clearTimeout(item._idleTimeoutId);
29635 item._idleTimeout = msecs;
29636};
29637
29638exports.unenroll = function(item) {
29639 clearTimeout(item._idleTimeoutId);
29640 item._idleTimeout = -1;
29641};
29642
29643exports._unrefActive = exports.active = function(item) {
29644 clearTimeout(item._idleTimeoutId);
29645
29646 var msecs = item._idleTimeout;
29647 if (msecs >= 0) {
29648 item._idleTimeoutId = setTimeout(function onTimeout() {
29649 if (item._onTimeout)
29650 item._onTimeout();
29651 }, msecs);
29652 }
29653};
29654
29655// setimmediate attaches itself to the global object
29656__webpack_require__(183);
29657// On some exotic environments, it's not clear which object `setimmediate` was
29658// able to install onto. Search each possibility in the same order as the
29659// `setimmediate` library.
29660exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
29661 (typeof global !== "undefined" && global.setImmediate) ||
29662 (this && this.setImmediate);
29663exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
29664 (typeof global !== "undefined" && global.clearImmediate) ||
29665 (this && this.clearImmediate);
29666
29667/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
29668
29669/***/ }),
29670/* 186 */
29671/***/ (function(module, exports, __webpack_require__) {
29672
29673var Buffer = __webpack_require__(11).Buffer
29674
29675module.exports = function (buf) {
29676 // If the buffer is backed by a Uint8Array, a faster version will work
29677 if (buf instanceof Uint8Array) {
29678 // If the buffer isn't a subarray, return the underlying ArrayBuffer
29679 if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
29680 return buf.buffer
29681 } else if (typeof buf.buffer.slice === 'function') {
29682 // Otherwise we need to get a proper copy
29683 return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)
29684 }
29685 }
29686
29687 if (Buffer.isBuffer(buf)) {
29688 // This is the slow version that will work with any Buffer
29689 // implementation (even in old browsers)
29690 var arrayCopy = new Uint8Array(buf.length)
29691 var len = buf.length
29692 for (var i = 0; i < len; i++) {
29693 arrayCopy[i] = buf[i]
29694 }
29695 return arrayCopy.buffer
29696 } else {
29697 throw new Error('Argument must be a Buffer')
29698 }
29699}
29700
29701
29702/***/ }),
29703/* 187 */
29704/***/ (function(module, exports, __webpack_require__) {
29705
29706"use strict";
29707
29708
29709module.exports = {
29710 isString: function(arg) {
29711 return typeof(arg) === 'string';
29712 },
29713 isObject: function(arg) {
29714 return typeof(arg) === 'object' && arg !== null;
29715 },
29716 isNull: function(arg) {
29717 return arg === null;
29718 },
29719 isNullOrUndefined: function(arg) {
29720 return arg == null;
29721 }
29722};
29723
29724
29725/***/ }),
29726/* 188 */
29727/***/ (function(module, exports, __webpack_require__) {
29728
29729/* WEBPACK VAR INJECTION */(function(global) {
29730/**
29731 * Module exports.
29732 */
29733
29734module.exports = deprecate;
29735
29736/**
29737 * Mark that a method should not be used.
29738 * Returns a modified function which warns once by default.
29739 *
29740 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
29741 *
29742 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
29743 * will throw an Error when invoked.
29744 *
29745 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
29746 * will invoke `console.trace()` instead of `console.error()`.
29747 *
29748 * @param {Function} fn - the function to deprecate
29749 * @param {String} msg - the string to print to the console when `fn` is invoked
29750 * @returns {Function} a new "deprecated" version of `fn`
29751 * @api public
29752 */
29753
29754function deprecate (fn, msg) {
29755 if (config('noDeprecation')) {
29756 return fn;
29757 }
29758
29759 var warned = false;
29760 function deprecated() {
29761 if (!warned) {
29762 if (config('throwDeprecation')) {
29763 throw new Error(msg);
29764 } else if (config('traceDeprecation')) {
29765 console.trace(msg);
29766 } else {
29767 console.warn(msg);
29768 }
29769 warned = true;
29770 }
29771 return fn.apply(this, arguments);
29772 }
29773
29774 return deprecated;
29775}
29776
29777/**
29778 * Checks `localStorage` for boolean values for the given `name`.
29779 *
29780 * @param {String} name
29781 * @returns {Boolean}
29782 * @api private
29783 */
29784
29785function config (name) {
29786 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
29787 try {
29788 if (!global.localStorage) return false;
29789 } catch (_) {
29790 return false;
29791 }
29792 var val = global.localStorage[name];
29793 if (null == val) return false;
29794 return String(val).toLowerCase() === 'true';
29795}
29796
29797/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
29798
29799/***/ }),
29800/* 189 */
29801/***/ (function(module, exports) {
29802
29803module.exports = extend
29804
29805var hasOwnProperty = Object.prototype.hasOwnProperty;
29806
29807function extend() {
29808 var target = {}
29809
29810 for (var i = 0; i < arguments.length; i++) {
29811 var source = arguments[i]
29812
29813 for (var key in source) {
29814 if (hasOwnProperty.call(source, key)) {
29815 target[key] = source[key]
29816 }
29817 }
29818 }
29819
29820 return target
29821}
29822
29823
29824/***/ }),
29825/* 190 */
29826/***/ (function(module, exports) {
29827
29828module.exports = {"name":"craft-ai","version":"1.17.0","description":"craft ai API isomorphic (compatible with browser and nodejs) javascript client","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"homepage":"https://github.com/craft-ai/craft-ai-client-js","license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-client-js/issues"},"main":"lib/index.js","typings":"src/index.d.ts","repository":{"type":"git","url":"https://github.com/craft-ai/craft-ai-client-js"},"browser":{"lodash":"lodash/lodash.min.js","https-proxy-agent":false,"http-proxy-agent":false},"keywords":["ai","craft-ai"],"scripts":{"update_readme":"download https://www.craft.ai/content/api/js.md > README.md && git add README.md && git commit -m 'Updated README file'","build":"babel src --out-dir lib","build_browser":"npm run build_browser:production && npm run build_browser:dev","build_browser:production":"cross-env NODE_ENV=production webpack","build_browser:dev":"cross-env NODE_ENV=development webpack","lint":"eslint . && tsc src/index.d.ts","fix_lint":"eslint --fix .","test":"npm run test_node && npm run lint","test_node":"mocha","dev_browser":"cd test/browser && webpack-dev-server","prepublish":"npm run build && npm run build_browser"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.3","babel-eslint":"10.0.1","babel-loader":"7.1.5","babel-polyfill":"6.26.0","babel-preset-env":"1.7.0","babel-register":"6.26.0","chai":"4.1.2","cross-env":"5.2.0","dotenv":"5.0.0","download-cli":"1.1.1","eslint":"5.9.0","eslint-config-craft-ai":"3.0.2","mocha":"^5.2.0","mocha-loader":"1.1.3","moment-timezone":"0.5.21","typescript":"2.8.1","webpack":"2.4.1","webpack-dev-server":"2.4.2"},"dependencies":{"debug":"3.1.0","http-proxy-agent":"2.1.0","https-proxy-agent":"2.2.1","inherits":"2.0.3","jwt-decode":"2.2.0","lodash":"4.17.10","moment":"2.22.2","node-fetch":"2.2.0","semver":"5.5.0","whatwg-fetch":"2.0.4"},"engines":{"node":">=0.12"}}
29829
29830/***/ }),
29831/* 191 */
29832/***/ (function(module, exports) {
29833
29834/* (ignored) */
29835
29836/***/ }),
29837/* 192 */
29838/***/ (function(module, exports) {
29839
29840/* (ignored) */
29841
29842/***/ }),
29843/* 193 */
29844/***/ (function(module, exports) {
29845
29846/* (ignored) */
29847
29848/***/ }),
29849/* 194 */
29850/***/ (function(module, exports) {
29851
29852/* (ignored) */
29853
29854/***/ }),
29855/* 195 */
29856/***/ (function(module, exports, __webpack_require__) {
29857
29858module.exports = __webpack_require__(157);
29859
29860
29861/***/ })
29862/******/ ]);
\No newline at end of file